Die Disketten sind so organisiert, dass in der ersten verfügbaren Spur (Track 0 bei Daten, Track 1 bei IBM und Track 2 bei Einleitung: CP/MCP/M) das Inhaltsverzeichnis angelegt wird. Das umfasst 4 Sektoren oder 2 kByte.
Das Inhaltsverzeichnis ist in 64 Einträge, die sogenannten 'Extents' zu je 32 Datentypen: Bytes Datenbreite: BytesByte unterteilt. Jeder Extent kann maximal eine Datei mit 16 kByte verwalten, bei längeren Dateien werden automatisch mehrere Extents benutzt.
Datentypen: Bytes Datenbreite: BytesBytes | Bedeutung
--------+----------------------------------------------------------
00 | &E5 => nicht belegt (oder gelöscht)
| 0...15 => User-Nummer
01 - 08 | Name des Files
09 - 11 | Extension des Files
09 | Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 7 gesetzt => Datei ist schreibgeschützt.
10 | Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 7 gesetzt => Datei wird nicht im Inhaltsverzeichnis angezeigt.
12 | Nummer des Extents
13 / 14 | unbenutzt
15 | Länge dieses Extents in Datenspeicherung und Datenstrukturen: RecordsRecords (=128 Datentypen: Bytes Datenbreite: BytesBytes)
16 - 31 | Blockbelegungs-Tabelle (1 Die Speicherkonfiguration im Schneider CPC: BlockBlock = 2 Sektoren = 8 Datenspeicherung und Datenstrukturen: RecordsRecords)
--------+----------------------------------------------------------
In die Block-Belegungstabelle sind alle Die Speicherkonfiguration im Schneider CPC: BlockBlocks eingetragen, die Daten für diese Datei enthalten. Ein Die Speicherkonfiguration im Schneider CPC: BlockBlock umfasst bei 40 Track/einseitigen Disketten normalerweise immer 1 kByte. So auch bei Amstrad. Da die Sektoren aber genau halb so lang sind, werden immer zwei von ihnen zu einem logischen 'Die Speicherkonfiguration im Schneider CPC: BlockBlock' zusammengefasst. Dabei können, bedingt durch die ungerade Anzahl von Sektoren pro Spur, auch zwei Sektoren von zwei aufeinanderfolgenden Tracks zu einem Die Speicherkonfiguration im Schneider CPC: BlockBlock zusammengefasst werden. Die Block-Nummerierung startet immer in der Spur mit dem Inhaltsverzeichnis, wobei das Inhaltsverzeichnis selbst die Bloecke 0 und 1 belegt.
Die Nummer des Extents wird im Datentypen: Bytes Datenbreite: BytesByte 12 festgehalten. Der erste Extent einer Datei hat die Nummer 0. Dateien, die länger als 16 kByte sind, bekommen einen weiteren Extent zugeordnet, der dann die Nummer 1 erhält, usw..
In Datentypen: Bytes Datenbreite: BytesByte 15 wird eingetragen, wieviele Datenspeicherung und Datenstrukturen: RecordsRecords dieser Extent umfasst. Das stammt noch aus guten, alten Zeiten, als die CP/M-Welt noch in Ordnung war. Damals, als es nur 8-Zoll-Laufwerke gab, hatten alle CP/M-Sektoren eine Länge von 128 Datentypen: Bytes Datenbreite: BytesBytes. Als dann aber andere Amsdos: FormateFormate aufkamen, und vor allem, als die Speicherkapazität pro Laufwerk immer weiter stieg, kamen dann nach und nach 256-Datentypen: Bytes Datenbreite: BytesByte-, 512-, 1024- und 2048-Byte-Sektoren.
Einleitung: CP/MCP/M kennt aber nach wie vor nur Sektoren mit 128 Datentypen: Bytes Datenbreite: BytesBytes! Diese werden auch als 'Datenspeicherung und Datenstrukturen: RecordsRecord' bezeichnet. Weicht diese logische Sektor-Länge von der physikalischen auf der Diskette ab, so ist es Aufgabe des BIOS, die größeren Sektoren in die kleineren Datenspeicherung und Datenstrukturen: RecordsRecords zu zerfleddern.
Bei Die Abteilungen des Betriebssystems: AmsdosAmsdos ergibt sich deshalb folgende Zuordnungen:
+---------------------------------------+
| 1 Die Speicherkonfiguration im Schneider CPC: BlockBlock = 2 Sektoren = 8 Datenspeicherung und Datenstrukturen: RecordsRecords. |
+---------------------------------------+
Die Anzahl der durch einen Extent belegten Datenspeicherung und Datenstrukturen: RecordsRecords wird in Datentypen: Bytes Datenbreite: BytesByte 15 festgehalten. Da ein Extent maximal 16 Die Speicherkonfiguration im Schneider CPC: BlockBlocks verwalten kann, ist der höchste Wert, den dieses Datentypen: Bytes Datenbreite: BytesByte annehmen kann, 16*8 = 128. An diesem Wert erkennt man dann auch, dass 'höchstwahrscheinlich' noch ein weiterer Extent folgt, weil die Datei für einen zu lang war. Das muss aber nicht sein, weil die Datei ja auch zufällig genau so lang sein könnte.
|