Pruefen, ob alle Blocks der Partition vor dem Anlegen noch frei sind

Einsprung von $B88D:

B811: A5 35     LDA $35          'BAM veraendert'-Flag merken
B813: 48        PHA
B814: AD A9 02  LDA $02A9        Anzahl 'Blocks free' merken
B817: 48        PHA
B818: AD AA 02  LDA $02AA
B81B: 48        PHA
B81C: 20 5F B8  JSR $B85F        Partition-Parameter aus Kommandozeile holen

Einsprung von $B833:

B81F: 20 B5 94  JSR $94B5        auf gueltigen Block testen
B822: A5 4D     LDA $4D          aktueller Track
B824: C9 28     CMP #$28         = Haupt-Directory-Track ?
B826: F0 19     BEQ $B841        ja, ==>

B828: 20 72 B5  JSR $B572        Block in BAM belegen
B82B: F0 14     BEQ $B841        Block war schon belegt, ==>
B82D: 20 46 B5  JSR $B546        Block wieder freigeben
B830: 20 EF B2  JSR $B2EF        naechsten Block der Part. holen
B833: D0 EA     BNE $B81F        noch nicht fertig, ==>
B835: 68        PLA
B836: 8D AA 02  STA $02AA        Anzahl 'Blocks free' zurueckholen
B839: 68        PLA
B83A: 8D A9 02  STA $02A9
B83D: 68        PLA
B83E: 85 35     STA $35          'BAM veraendert'-Flag zurueckholen
B840: 60        RTS

Einsprung von $B826, $B82B:

B841: 68        PLA
B842: 8D AA 02  STA $02AA        Anzahl 'Blocks free' zurueckholen
B845: 68        PLA
B846: 8D A9 02  STA $02A9
B849: 68        PLA
B84A: 85 35     STA $35          'BAM veraendert'-Flag zurueckholen
B84C: A9 67     LDA #$67         67, Illegal Track or Sector
B84E: 4C 3F FF  JMP $FF3F
    Previous Page / Next Page