;  Disketten-Erweiterungs-Programm DEP V3.0  A - Grundlagen E - Entstehung C - Erstellen einer CAOS-Startdiskette S - Start von DEP, Stapelverarbeitung R - RAM-Floppy im TPA K - Koppel-RAM 1 - Steuerbyte 1 F - Fehlercodes 2 - Steuerbyte 2 D - Schnittstelle in SERVICE.KCC und DIENST.KCC :A  Grundlagen  DEP ist das Programm, welches in der CAOS-Betriebsart des KC-Floppy-Systems den Zugriff auf das Speichermedium Diskette organisiert. DEP arbeitet dabei im Hintergrund im D004 unter einem modifizierten CP/M-Betriebssystem. Der Datenaustausch erfolgt ueber eine definierte Schnittstelle im Koppel-RAM. Fuer die DEP-Versionen 2.x ist ein modifiziertes MicroDOS erforderlich, damit die Laufwerkwechsel korrekt durchgefuehrt werden koennen. Ab Version 3.0 muss im D004 das neue Betriebssystem mit ZDDOS/ZSDOS laufen. DEP 3.0 ist speziell fuer die Anforderungen bei der Nutzung einer Fest- platte weiterentwickelt worden, kann aber mit dem neuen System auch fuer reine Diskettensysteme verwendet werden. Alle entstandenen Programme und Quelltexte sind zur Nachnutzung frei. Es darf jedoch kein privater Vorteil von Nachnutzern daraus gezogen werden. Fuer eventuell auftretende Fehler wird keine Haftung uebernommen. Die Weitergabe (unter Wahrung der Urheberrechte) ist erwuenscht. :C  Erstellen einer CAOS-Startdiskette  Die Arbeitsschritte zur Erstellung einer CAOS-Startdiskette sind die gleichen wie fuer das CP/M-System. Benutzt wird das Programm SYSGEN.COM. Es sollte die gleiche Systemdatei *.SYS oder zumindest das gleiche BIOS verwendet werden, dann sind die installierten Laufwerke in beiden Betriebsarten identisch. Als DOS-Version empfehle ich ZDDOS, da dieses ohne zusaetzlichen Treiber automatisch die Datumseintraege verwaltet. Das Einbinden der Treiber LST, KOP und ZAS kann entfallen, da diese in der CAOS-Betriebsart nicht benoetigt werden. Um nach dem Bootvorgang sofort automatisch zur CAOS-Betriebsart zu wechseln ist der Start-SUBMIT so zu waehlen, dass DEP 3.0 und eventuell eine CAOS-Stapeldatei abgearbeitet wird. Das so erzeugte System kann nun in die Systemspuren einer mit 780 KByte formatierten Diskette geschrieben werden. Wenn diese Diskette mit JUMP FC gestartet wird, laeuft zunaechst der normale Bootvorgang von CP/M ab, DEP 3.0 wird gestartet und wechselt zur CAOS-Betriebsart. Eine Rueckkehr zu CP/M ist nur mit JUMP FC moeglich indem wieder eine CP/M-Startdiskette eingelegt wird. :S  Starten von DEP 3.0  Der Aufruf von DEP 3.0 ist nur unter ZSDOS/ZDDOS moeglich. DEP modifiziert dann die BIOS-Funktionen, organisiert das RAM-Floppy neu zur Verwendung des freien TPA-Speichers und uebergibt die Steuerung zurueck an CAOS. Als Parameter kann noch eine CAOS-Datei angegeben werden, die automatisch ausgefuehrt wird. Im Gegensatz zu den bisherigen DEP-Versionen sucht die Version 3.0 nicht automatisch nach der CAOS-Kommandodatei B:INITIAL.UUU. Soll eine derartige Datei abgearbeitet werden, ist dies als Parameter in der Kommandozeile beim Aufruf von DEP 3.0 anzugeben. Dadurch kann jede beliebige Kommandodatei und jedes beliebige Laufwerk verwendet werden. Wird in der Kommandodatei der Dateityp .KC? oder .SSS angegeben, dann erzeugt DEP daraus CAOS-Kommandos zum Laden der MC- bzw. BASIC-Programme. - Ohne Angabe eines Dateityps wird .UUU ergaenzt. - Ohne Angabe eines Dateinamen wird nur der Laufwerkwechsel ausgefuehrt. - Ohne Angabe des Laufwerkes wird das aktuelle Laufwerk benutzt.  Beispiele:  (1) A0>B:DEP3 B:INITIAL.UUU (2) A0>C0:DEP3 D7:START (3) A0>E0:DEP3 E14:UNIPIC.KCC (4) A0>E0:DEP3 E15:BAC854.SSS (1) laedt DEP3.COM und INITIAL.UUU von der Diskette in Laufwerk B: (2) laedt DEP3.COM von Laufwerk C0:, wechselt dann zu D7: und uebergibt den Inhalt der dort befindlichen Datei START.UUU zur Abarbeitung an CAOS weiter. (3) laedt DEP3 von E0: und startet E14:UNIPIC.KCC mit dem FLOAD-Kommando des CAOS. (4) laedt DEP3 von E0: und stellt das Laufwerk E15: ein. Im CAOS wird der BASIC-Interpreter gestartet das BASIC-Kommando CLOAD"BAC854" ausgefuehrt. Das funktioniert jedoch nur ab CAOS4.3, da hier BASEX nicht erforderlich ist und sofort auf die D004-Schnittstelle zugegriffen werden kann. :E  Entstehung  Die Originalversion von DEP kannte nur das 780K-Bootlaufwerk B: und wurde deshalb in wesentlichen Punkten ueberarbeitet:  V1.0  - Originalversion von der Systemdiskette (CAOSDISK.COM)  V2.0  - Laufwerkwechsel moeglich, das Laufwerk wird vor jeder Funktion neu angewaehlt, um eventuellen Diskettenwechsel zu erkennen - USER-Bereich kann gewechselt werden - Uebergabe der DEP-Versionsnummer im Koppel-RAM - Uebergabe von Fehlertexten (mit Dateiname)  V2.1  - Anzeige "Keine Datei.", wenn Diskette leer ist - RAM-Laufwerk A: im TPA, selbstkonfigurierend (nach Uwe Felgentreu), Blockgroesse = 1 KByte, Kapazitaet = 46 KByte  V2.2  - Laufwerkwechsel ueber Dateiname moeglich - bei undefinierten Fehlern erscheint HEX-Zahl im Fehlertext - Bit 7 wird bei Dateinamen im Fehlertext rueckgesetzt  V3.0  - Systemtest auf ZSDOS oder ZDDOS - RAM-Floppy passt sich automatisch der TPA-Groesse an - Start mit frei waehlbaren Laufwerk - Abarbeitung einer frei waehlbaren CAOS-Stapeldatei - USER-Bereich ist im Dateinamen dezimal anzugeben - Ueberpruefung auf gueltige Zeichen im Dateiname, dabei werden Nullen und Leerzeichen entfernt und Kleinbuchstaben in Gross- buchstaben umgewandelt - Konvertierung des Zeichens '*' als Jokerzeichen - Jokerzeichen im 2. Dateiname bei REN zulaessig - Laufwerk+User+Dateiname im Fehlertext - Sortierung von bis zu 255 DIR-Eintraegen - Create-Datum wird erhalten, wenn Datei ueberschrieben wird  Kontaktadressen  Uwe Felgentreu Mario Leubner Am Fuerstenberg 46 Chemnitztalstrasse 25 99310 Arnstadt 09236 Markersdorf (c) 20.09.1992 (c) 30.12.1993 - 03.05.1997 :F  Fehlererkennung  DEP 3.0 uebergibt neben der Fehlernummer auch einen Fehlertext im Koppel- RAM. Folgende Fehlermeldungen koennen auftreten: Code | Fehlertext | Hinweis -----+----------------------------------------+----------------------------- 00 | Datei DIR:FILENAME.TYP nicht vorhanden | 01 | Diskettenfehler | physischer Lesefehler 02 | Diskette voll | 03 | Datei DIR:FILENAME.TYP geschuetzt | 04 | falsches Diskettenformat | bei Laufwerksauswahl 08 | Datei DIR:FILENAME.TYP schon vorhanden | beim Umbenennen 09 | Dateibezeichnung nicht eindeutig | Joker ? oder * enthalten 77 | unzulaessige Dateibezeichnung | CP/M-Konvention verletzt 81 | Dateiende ueberschritten | beim Lesen einer Datei 82 | Diskette voll | 83 | Directory voll | 84 | Falsches Laufwerk | nur installierte Laufwerke 85 | Falscher USER-Bereich | USER 0-15 moeglich ?? | ??: Systemfehler | ?? ist dabei Fehlernummer :K  Belegung des Koppel-RAM  Der Koppel-RAM, also der 1K-Speicherbereich im D004, der vom KC ueber I/O- Adressen erreicht wird, dient zum Datenaustausch der beiden Prozessoren im KC-Floppy-System. Dieser Speicherbereich ist in 4 Seiten aufgeteilt, allgemein gilt die folgende Belegung: Seite D004-Adresse I/O-Adresse KC Verwendung 0 FC00H..FCFFH 00F0H..FFF0H Belegungsvektor RAM-Floppy 1 FD00H..FDFFH 00F1H..FFF1H DEP-Erweiterungen 2 FE00H..FEFFH 00F2H..FFF2H Bytekoppelpuffer 3 FF00H..FFFFH 00F3H..FFF3H von CP/M verwendet  Uebersicht der kompletten Koppelsteuerung  (DEP-Schnittstelle) Name | D004 | KC | Laenge | Bedeutung --------+-------+-------+--------+------------------------------------------ ERRTX | FD00H | 00F1H | 42 | Fehlertext (max. 38 Textzeichen und die | | | | Steuerzeichen BEEP, CR, LF, Ende-0) STBYT2 | FD80H | 80F1H | 1 | 2. Steuerbyte (Erweiterungen) LWANF | FD81H | 81F1H | 1 | Laufwerksbuchstabe ('A'...'H') UANF | FD82H | 82F1H | 1 | aktuelle User-Nummer (00H ... 0FH) VERSION | FD83H | 83F1H | 1 | DEP-Versionsnummer BCD (21H = V2.1 usw.) TIME | FD84H | 84F1H | 6 | Datum/Uhrzeit BCD (Jahr, Monat, Tag, | | | | Stunde, Minute, Sekunde) | | | | DATEN | FE80H | 80F2H | 128 | Datenpuffer (CP/M-Sektor bzw. CAOS-Block) | | | | STBYTE | FF80H | 80F3H | 1 | 1. Steuerbyte (Muehlhausen) FCODE | FF81H | 81F3H | 1 | Fehlercode DIRBUF | FF82H | 82F3H | 12/39 | Puffer fuer Dateiname bzw. Directory BASBYT | FF8EH | 8EF3H | 1 | Daten fuer BASIC-Byte-Schnittstelle UROK | FFB3H | B3F3H | 1 | D004-Zustand (5 = CAOS-Betriebsart) :1  7 | 6 | 5 | 4 | 3 | 2 | 1 | 0  1. Steuerbyte (Muehlhausen) ^ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | | 1 = Anforderung, 0 = ausgefuehrt | | | | | | 1 = schreiben, 0 = lesen | | | | open | | close | | | Fehlerflag | | | |---|-------|-- Funktionsauswahl: 0 0 0 Sektor lesen/schreiben 0 0 1 DIR-Anforderung 0 1 0 ERA 0 1 1 STAT 1 0 0 REN 1 0 1 SETRO 1 1 0 SETWR 1 1 1 BASIC-Byte lesen/schreiben Aus Steuerbyte 1 ergeben sich folgende Kommandos:  Sektor schreiben  open: 0BH normal: 03H close: 43H  Sektor lesen  open: 09H normal: 01H close: 41H  BASIC Byte lesen  open: 3BH normal: 35H close: 75H  BASIC Byte schreiben  open: 3FH normal: 37H close: 77H  Directory-Anforderung  open mit Sortierung: 0DH -> 39 Zeichen ab DIRBUF open ohne Sortierung: 4DH -> 39 Zeichen ab DIRBUF naechste Eintraege: 05H -> 39 Zeichen ab DIRBUF Rueckmeldung 04H im Steuerbyte = Ende  Datei loeschen  Name im Puffer Steuerbyte: 11H  Laufwerkstatusanzeige  Steuerbyte: 15H -> 20 Zeichen ab DIRBUF  Datei umbenennen  Alter Name im Puffer Steuerbyte: 29H (open) Neuer Name im Puffer Steuerbyte: 21H  Schreibschutz setzen  Name im Puffer Steuerbyte: 25H  Schreibschutz aufheben  Name im Puffer Steuerbyte: 31H :2  7 | 6 | 5 | 4 | 3 | 2 | 1 | 0  2. Steuerbyte (Erweiterungen) ^ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | | Anforderung | | | | | | Laufwerkwechsel | | | | | Userwechsel | |---|---|---| | reserviert | Fehlerflag Aus Steuerbyte 2 ergeben sich folgende Kommandos:  aktuelles Laufwerk abfragen  Steuerbyte: 01H -> aktuelles Laufwerk in LWANF -> aktueller USER-Bereich in UANF  Laufwerkwechsel  gefordertes Laufwerk in LWANF Steuerbyte: 03H  Wechsel des USER-Bereiches  geforderten USER-Bereich in UANF Steuerbyte: 05H  Wechsel von Laufwerk und USER-Bereich  gefordertes Laufwerk in LWANF geforderten USER-Bereich in UANF Steuerbyte: 07H :R  RAM-Floppy im TPA  Da im Original-DEP der TPA (Speicher im D004) fast ungenutzt war, wurde ueber eine Loesung nachgedacht, diesen Speicher sinnvoll zu nutzen. Bei der Erarbeitung der Funktionen fuer den Laufwerkwechsel wurde davon ausgegangen, dass die selbe Laufwerkskonfiguration wie unter CP/M benutzt wird. Was liegt also naeher, als den freien Speicherplatz des TPA als RAM-Floppy zu organisieren. Da mit dem neuen System keine feste Adresszuordnung mehr vorliegt, muss DEP 3.0 das RAM-Floppy beim Start nach dem zur Verfuegung stehenden TPA konfigurieren. Die Blockgroesse betraegt 1 KByte und maximal 32 Eintraege (1 Block) sind im Directory reserviert. Das RAM-Laufwerk A: wird wie jedes andere Laufwerk verwendet, ein RESET am Grundgeraet oder ein Sprung zur Adresse F000H veraendert den Inhalt des RAM-Floppy nicht. Mit JUMP FC wird jedoch im D004 ein RESET ausgeloest und der Inhalt des RAM-Floppy im TPA ist unwiderruflich verloren. :D  Schnittstellenbeschreibung SERVICE.KCC und DIENST.KCC  Name: BASIC-Aufruf UP-Nr. (MC) Bemerkungen FLOAD CALL*D8 0 Name ab Adr. 0 FSAVE CALL*DB 1 Name ab Adr. 0 DIR CALL*DE 2 DIR & STAT STAT CALL*E1 3 LW & STAT REN CALL*E4 4 Namen eingeben SETRO CALL*E7 5 Name eingeben SETWR CALL*EA 6 Name eingeben ERA CALL*ED 7 Name eingeben DRIVE CALL*F0 8 LW eingeben \ USER CALL*F3 9 User eingeben | nur bei TYPTX CALL*F6 10 Name eingeben | DIENST.KCC TYPTP CALL*F9 11 Name eingeben | vorhanden DUMP CALL*FC 12 Name eingeben / Diese Schnittstelle ist bis UP-Nr. 8 auch in CAOS 4.3 enthalten. Einsprungadresse fuer MC-Programme ist dann F021H statt BE00H, die UP-Nummer ist in Register A zu uebergeben.