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