BAM

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Die 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]