BAM
Aus C64-Wiki
Zur Navigation springenZur Suche springenDie Abkürzung BAM steht für Block Availability Map. In ihr werden von Commodore DOS Anzahl und Position der belegten/freien Blöcke einer Diskette verwaltet. Die BAM wird nach jedem Schreibzugriff aktualisiert. Die BAM befindet sich bei einer 1541 auf Spur 18, Sektor 0. Bei anderen Laufwerkstypen kann die BAM auf anderen Sektoren liegen oder/und aus mehreren Blöcken bestehen. Die Verwaltung der gespeicherten Dateien (also insbesondere die Zuordnung von Dateiname zu Startsektor der jeweiligen Datei) ist Aufgabe des Directorys, das normalerweise im Sektor nach der BAM folgt, bei einigen Laufwerkstypen aber auch im selben Sektor an die BAM anschließt.
Aufbau[Bearbeiten | Quelltext bearbeiten]
Dies ist der Aufbau der BAM einer Diskette im 1541- bzw. 1571-Format:
Byte dezimal |
Byte hexdezimal |
Beschreibung | Inhalt |
---|---|---|---|
0 | $00 | Spurnummer für Directory | 18 ($12) |
1 | $01 | Startsektor für Directory | 1 ($01) |
2 | $02 | Formatkennzeichen | "A" bei 1541/1570/1571 |
3 | $03 | Flag für doppelseitige Disketten | $00 = einseitige Disk (1541) $80 = doppelseitige Disk (1571) |
4 | $04 | Anzahl der freien Blöcke von Spur 1 | |
5 | $05 | Belegung für Sektor 0-7 | Bit=0: Sektor belegt Bit=1: Sektor frei |
6 | $06 | Belegung für Sektor 8-15 | Bit=0: Sektor belegt Bit=1: Sektor frei |
7 | $07 | Belegung für Sektor 16-20 (Sektoren 21-23 nicht vorhanden) |
Bit=0: Sektor belegt Bit=1: Sektor frei |
8-143 | $08-$8F | Bedeutung wie Byte 4-7, aber für Spuren 2-35 | |
144-159 | $90-$9F | Diskettenname, der bei der Formatierung angegeben wurde aufgefüllt mit "Shift Space" 160 ($A0) |
|
160-161 | $A0-$A1 | jeweils "Shift Space" | 160 ($A0) |
162-163 | $A2-$A3 | Diskettenidentifikation (ID), die bei der Formatierung angegeben wurde | |
164 | $A4 | "Shift Space" | 160 ($A0) |
165 | $A5 | DOS-Version mit der gearbeitet wird | 2 = CBM DOS V2.6 (spätere Versionen werden nicht aktualisiert!) |
166 | $A6 | Kopie von Byte 2 | bei 1541: "A" bei 8050: "C" |
167-170 | $A7-$AA | jeweils "Shift Space" | 160 ($A0) |
171-179 | $AB-$B3 | Modus | $00=1541 $A0=1571 |
180-220 | $B4-$DC | unbenutzt | 0 |
221-237 | $DD-$ED | bei 1541 unbenutzt; bei 1571: Anzahl der freien Blöcke für Spur 36-52 | |
238 | $EE | bei 1541 unbenutzt; bei 1571: Anzahl der freien Blöcke für Spur 53 | |
239-244 | $EF-$F4 | bei 1541 unbenutzt; bei 1571: Anzahl der freien Blöcke für Spur 54-59 | |
245-250 | $F5-$FA | bei 1541 unbenutzt; bei 1571: Anzahl der freien Blöcke für Spur 60-65 | |
251-255 | $FB-$FF | bei 1541 unbenutzt; bei 1571: Anzahl der freien Blöcke für Spur 66-70 |
Weblinks[Bearbeiten | Quelltext bearbeiten]
- D64-Format inkl. Beschreibung des Formats der BAM und des Directorys
- 1541: The floppy disk - von der Magnetisierung bis zur Datei
- Archive.org: http://viceteam.org/plain/drive_info.txt mit allerhand Infos zu CBM-Diskettenlaufwerken und den benutzten Formaten