Block-Allocate ($cd03)

8B2F: 20 AE 84  JSR $84AE        Auf Diskettenwechsel testen
8B32: 20 32 8C  JSR $8C32        Blockparameter holen
8B35: A5 4E     LDA $4E          Sektornummer merken
8B37: 48        PHA
8B38: 20 46 B7  JSR $B746        naechsten freien Block auf dem Track suchen
8B3B: F0 0B     BEQ $8B48        kein Block frei, ==>
8B3D: 68        PLA              mit altem Sektor vergleichen
8B3E: C5 4E     CMP $4E          Ist der freie Sektor der gewuenschte ?
8B40: D0 19     BNE $8B5B        nein, ==>
8B42: 20 72 B5  JSR $B572        Block belegen
8B45: 4C 50 80  JMP $8050        00, ok,00,00 ==>

Einsprung von $8B3B:

8B48: 68        PLA

Einsprung von $8B59:

8B49: A9 00     LDA #$00         mit Sektor 0 beginnen
8B4B: 85 4E     STA $4E
8B4D: E6 4D     INC $4D          naechsten Track probieren
8B4F: A5 4D     LDA $4D          ist maximale Tracknummer + 1 erreicht ?
8B51: CD 2C 02  CMP $022C
8B54: B0 0A     BCS $8B60        ja, ==>
8B56: 20 46 B7  JSR $B746        einen freien Block auf dem Track suchen
8B59: F0 EE     BEQ $8B49        nicht gefunden, ==>

Einsprung von $8B40:

8B5B: A9 65     LDA #$65         65, no Block,tt,ss
8B5D: 20 3F FF  JSR $FF3F        CMDERR-Ende

Einsprung von $8B54:

8B60: A9 65     LDA #$65         65, no Block,00,00
8B62: 20 7C 80  JSR $807C        T&S=0, Ende

    Previous Page / Next Page