    naechsten Block einer Partition holen
    A: c: 1: Track wurde gewechselt;
       z: 1: Ende der Partition erreicht

    Einsprung von $86D3, $B342, $B7CD, $B830, $B8AD:

    B2EF: AD EE 01  LDA $01EE        Anzahl der uebrigen Blocks -1
    B2F2: D0 08     BNE $B2FC        Lo-Byte >0, ==>
    B2F4: AD ED 01  LDA $01ED        Hi-Byte =0 (fertig), ==>
    B2F7: F0 1D     BEQ $B316
    B2F9: CE ED 01  DEC $01ED        Hi-Byte -1

    Einsprung von $B2F2:

    B2FC: CE EE 01  DEC $01EE        Lo-Byte -1
    B2FF: E6 4E     INC $4E          Sektornummer erhoehen
    B301: A5 75     LDA $75          'letzter Sektor +1' erreicht ?
    B303: C5 4E     CMP $4E
    B305: D0 0F     BNE $B316        nein, ==>
    B307: A9 00     LDA #$00         Sektornummer =0
    B309: 85 4E     STA $4E
    B30B: A5 4D     LDA $4D          Aktueller Track =
    B30D: CD 2B 02  CMP $022B        Direktory-Track ?
    B310: F0 0C     BEQ $B31E        ja, ==>
    B312: E6 4D     INC $4D          Tracknummer +1
    [Es ist ein Fehler, dass die Tracknummer erst nach der Gueltigkeitsabfrage
     erhoeht wird; so merkt die Routine es erst am Ende des Tracks, wenn die
     Partition Directory-Blocks umfassen soll. Trotzdem ist das Directory davor
     geschuetzt, ueberschrieben zu werden, da der erste Block im Directory
     (Verzeichnis-Header) immer als belegt gekennzeichnet ist und dadurch der
     Partition-Befehl abbricht. Ausserdem verhindert eine zusaetzliche Abfrage
     ($b822), dass eine Partition im Track 40 beginnt. Innerhalb von Partitions
     ist es moeglich, im Verzeichnis-Track eine Partition zu definieren, die den
     letzten Block des Tracks nicht beinhalten darf.]

    B314: 38        SEC              c=1: Track wurde gewechselt
    B315: 24         B $24

    Einsprung von $B2F7, $B305:

    B316: 18        CLC              c=0: gleicher Track
    B317: AD ED 01  LDA $01ED        Ist die Anzahl der uebrigen Blocks =0 ?
    B31A: 0D EE 01  ORA $01EE        ja, dann z=1
    B31D: 60        RTS

    Einsprung von $B310:

    B31E: A9 67     LDA #$67         67, Illegal Track or Sector
    B320: 4C 3F FF  JMP $FF3F

        Previous Page / Next Page