    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