Inhaltsverzeichnis
Das Inhaltsverzeichnis des Mini-DOS ist wie folgt aufgebaut:
Der Speicherplatz ist auf den Sektoren 1,2,3,4,5 auf Spur 0, Seite 0 festgelgt. Jeder Sektor besteht aus 16 Einträgen mit jeweils 32 Byte. Der letzte Eintrag im 5. Sektor wird nicht benutzt. Somit ergibt sich eine maximal Anzahl von 79 Einträgen.
Für jedes File wird pro Angefange 4k-Byte ein Eintrag belegt. Files die mehr als einen Eintrag belegen (Dateigröße > 4KB) werden als “Mehrfach-Eintrag” bezeichnet.
Files, die nur einen Eintrag belegen (Dateigröße <= 4KB), werden als “Einzel-Eintrag” bezeichnet.
Bei Mehrfach-Einträgen befinden sich die Einträge zu den einzelnen 4KB-Blöcken in der Reihenfolge, in der die einzelnen Blöcke beim Absichern im Speicher standen.
Ein Eintrag enthält folgende Information:
1. Byte | Kennbyte |
2. – 13. Byte | Filename inclusive “.” (rechts mit 80h aufgefüllt) |
14. – 15. Byte | Startadresse (bei Mehrfacheinträgen Startadresse des 1. Blocks |
16. – 17. Byte | Länge (bei Mehrfacheinträgen Länge des gesamten Files) |
18. – 32. Byte | ohne Bedeutung |
Aufbau des Kennbytes
0000 0000 | Eintrag ist frei |
1xxx xxxx | Teil 1 … N eines N-teiligen Mehrfacheintrag |
0xxx xxxx | Teil N eines N-teiligen Mehrfacheintrages oder Einzeleintrag |
X000 0001 X000 0010 X000 0011 X000 0100 X000 0101 | MAT SPS BAS GAL TXT |
Die Position eines Eintrages innerhalb des Verzeichnisses gibt an, wo die im Eintrag angegebene Datei auf der Diskette gespeichert ist. Dazu werden die einzelnen Directory-Einträge über alle Directory-Sektoren von 1 bis 79 durchnummeriert.
Stellt man die Eintragsnummer (1..79) Binär da, so ergibt Bit 0 die Diskettenseite an:
XXXX XXX0 -> Seite 0 der Diskette
XXXX XXX1 -> Seite 1 der Diskette
Die Bits 1 bis 7 geben die Spur an:
Eintrags- Nummer | Binär | Seite | Spur |
---|---|---|---|
0 (Verzeichnis) | 0000 0000 | 0 | 0 |
1 | 0000 0001 | 1 | 0 |
2 | 0000 0010 | 0 | 1 |
3 | 0000 0011 | 1 | 1 |
4 | 0000 0100 | 0 | 2 |
5 | 0000 0101 | 1 | 2 |
… | |||
78 | 0100 1110 | 0 | 39 |
79 | 0100 1111 | 1 | 39 |
Dateiformate
Mini-DOS unterscheidet verschiedene Dateiformate. Diese werden anhand des aktuellen Bereiches aus dem das Mini-DOS aufgerufen wurde identifiziert. Dazu wird im Akku das entsprechende Dateiformat vor dem Absprung in DOS (Code: MVI A,02 ;JMP DOS1) abgelegt.
Dateiformate die von Mini-DOS unterstützt werden (Siehe Kennbyte im Dateieintrag).
Typ | Hex | Binär | Dateiformat | Bemerkung |
---|---|---|---|---|
??? | 0 | X000 0000 | unbekannter Dateityp | |
MAT | 1 | X000 0001 | MAT-Betriebssystem | Speicherbereich wird manuell eingegeben |
SPS | 2 | X000 0010 | SPS | Speicherbereich ist vorgegeben Anfang E0ED bis SPS-Programmende |
BAS | 3 | X000 0011 | BASIC | Speicherbereich ist vorgegeben Anfang 8000 bis BASIC-Programmende |
GAL | 4 | X000 0100 | GAL-Programmierer | Speicherbereich ist vorgegeben Anfang D000 – DFFF ??? |
TXT | 5 | X000 0101 | BFZ-Editor | Speicherbereich ist vorgegeben Anfang 8002 bis Editorbuffer-Ende |
ROM | 6 | X000 0110 | EPROM-Programm | Speicherbereich wird manuell eingegeben Vorgesehen für EPROM-Programmierer Derzeit noch in der Entwicklung für V 1.8.7 |
– | 7 | X000 0111 | Frei |
Ursprünglich werden im Mini-DOS nur die Formate MAT und SPS erkannt. Die Dateiformate BAS, GAL und TXT werden erst seit der MAT32k-Version 1.8.5 unterstützt. Denn erst ab dieser Version ist es möglich, aus den Modulen Basic, GAL und BFZ-Editor heraus die Floppy-Routinen anzusprechen.
Diskettenformat
Anzahl | Byte (Hex) | Bemerkung | Info |
---|---|---|---|
80 | 4E | Kennungsfeld | Vor-GAP |
12 | 00 | Kennungsfeld | Vor-GAP |
3 | F6 | FDC 1793 schreibt C2h auf die Diskette, dabei wird der Taktimpuls zwischen Bit 3 und 4 weggelassen | Vor-GAP |
1 | FC | Index-Marke | Vor-GAP |
50 | 4E | Kennungsfeld | Vor-GAP |
Sektor 1 | |||
12 | 00 | Kennungsfeld | GAP |
3 | F5 | FDC 1793 schreibt A1h auf die Diskette, dabei wurd der Taktimpuls wischen Bit 2 und 3 weggelassen | GAP |
1 | FE | Marke für das Sektorkennungsfeld | Marke |
1 | (00) | Spurnummer (hier 00) | Sektor-Kennungsfeld |
1 | (00) | Seitennummer (hier 00) | Sektor-Kennungsfeld |
1 | (01) | Sektornummer (zwischen 01 und 08) | Sektor-Kennungsfeld |
1 | 02 | Sektorlänge | Sektor-Kennungsfeld |
00 entspricht 128 Bytes / Sektor 01 entspricht 256 Bytes / Sektor 02 entspricht 512 Bytes / Sektor 03 entspricht 1024 Bytes / Sektor | Sektor-Kennungsfeld | ||
1 | F7 | FDC schreibt 2 Byte Prüfsumme auf der Diskette (CRC) | Sektor-Kennungsfeld |
22 | 4E | Kennungsfeld | Gap |
12 | 00 | Kennungsfeld | Gap |
3 | F5 | FDC schreibt A1h (Taktimpuls zwischen Bit 2 und 3 fehlt) | Gap |
1 | FB | Marke für das Datenfeld | Marke |
512 | E5 | Datenfeld | Datenfeld |
1 | F7 | FDC schreibt 2 Byte Prüfsumme auf die Diskette (CRC) | Prüfsumme |
54 | 4E | Kennungsfeld | Gap |
Sektor 2 – 8 | Sektoren 2 bis 8 mit geänderten Sektor-Kennungsfeldern | ||
max. 1536 | 4E | FDC 1793 schreibt 4Eh bis zum Eintreffen des neuen Indeximpulses | Nach-Gap |