Block in BAM belegen ($ef93)
E: $4d, $4e: T&S

Einsprung von $8B42, $B2CA, $B2E6, $B33F, $B417, $B41C, $B421, $B429, $B4FD,
              $B502, $B507, $B50F, $B6DE, $B73E, $B828, $B8AA:

B572: 20 B4 B5  JSR $B5B4        BAM-Zeiger auf aktuellen Track setzen
B575: 20 D8 B5  JSR $B5D8        ist Block schon belegt ?
B578: F0 39     BEQ $B5B3        ja, ==>
B57A: B1 31     LDA ($31),Y      Block belegen
B57C: 5D EA B5  EOR $B5EA,X
B57F: 91 31     STA ($31),Y
B581: A9 01     LDA #$01         Flag fuer 'BAM geaendert' setzen
B583: 85 35     STA $35
B585: A0 00     LDY #$00
B587: B1 31     LDA ($31),Y      Anzahl der freien Blocks -1
B589: 38        SEC
B58A: E9 01     SBC #$01
B58C: 91 31     STA ($31),Y
B58E: A5 4D     LDA $4D          Aktueller Track
B590: CD 2B 02  CMP $022B        = Direktory-Track
B593: F0 0B     BEQ $B5A0        ja, ==>
B595: AD A9 02  LDA $02A9        Anzahl 'Blocks free' -1
B598: D0 03     BNE $B59D
B59A: CE AA 02  DEC $02AA

Einsprung von $B598, $B567:

B59D: CE A9 02  DEC $02A9

Einsprung von $B593:

B5A0: AD AA 02  LDA $02AA        Sind weniger als 3 Blocks frei ?
B5A3: D0 0E     BNE $B5B3
B5A5: AD A9 02  LDA $02A9
B5A8: C9 03     CMP #$03
B5AA: B0 05     BCS $B5B1
B5AC: A9 72     LDA #$72         72, Disk full ausgeben, aber nicht als
B5AE: 4C 6D A8  JMP $A86D        Fehler behandeln, sondern als Hinweis

Einsprung von $B5AA:

B5B1: A9 01     LDA #$01         z=0: Block ist belegt worden

Einsprung von $B578, $B5A3:

B5B3: 60        RTS              (z=1: Block war schon belegt)
    Previous Page / Next Page