Block in Bam freigeben ($ef5f)
E: $4c, $4e: T&S

Einsprung von $86D0, $8713, $8732, $8B29, $B82D:

B546: 20 B4 B5  JSR $B5B4        BAM-Zeiger auf aktuellen Track setzen
B549: 20 D8 B5  JSR $B5D8        ist Block ueberhaupt belegt ?
B54C: D0 23     BNE $B571        nein, ==>
B54E: B1 31     LDA ($31),Y      Block freigeben
B550: 1D EA B5  ORA $B5EA,X      durch setzen des entsprechenden Bits
B553: 91 31     STA ($31),Y
B555: A9 01     LDA #$01         Flag fuer 'BAM geaendert' setzen
B557: 85 35     STA $35
B559: A0 00     LDY #$00
B55B: 18        CLC
B55C: B1 31     LDA ($31),Y      Anzahl der freien Blocks +1
B55E: 69 01     ADC #$01
B560: 91 31     STA ($31),Y
B562: A5 4D     LDA $4D          Aktueller Track
B564: CD 2B 02  CMP $022B        = Direktory-Track
B567: F0 34     BEQ $B59D        ja, ==>
                                [Dieser Sprung sollte nach $b571 oder $b5a0
                                 gehen, aber doch sicherlich nicht nach
                                 $b59d ! Dieser Fehler ist auch schon in
                                 der 1541 vorhanden.]
B569: EE A9 02  INC $02A9        Anzahl der 'Blocks free' +1
B56C: D0 03     BNE $B571
B56E: EE AA 02  INC $02AA

Einsprung von $B54C, $B56C:

B571: 60        RTS

    Previous Page / Next Page