    Burst-Befehle $00,$10: Read (bei der 1571: $8371)

    BB11: A5 25     LDA $25          wurde die Diskette gewechselt ?
    BB13: D0 E2     BNE $BAF7        ja, ==>

    Einsprung von $BB6E:

    BB15: 20 D4 AC  JSR $ACD4        FSM auf Ausgabe schalten
    BB18: A5 7C     LDA $7C          Burst-Kommandobyte holen
    BB1A: 30 97     BMI $BAB3        L-Flag (b7)=1: logische T&S angegeben, ==>

    (bei der 1571: $8d67)

    BB1C: A2 00     LDX #$00         Job 0 benutzen
    BB1E: AD 03 02  LDA $0203        Tracknummer holen
    BB21: 95 0B     STA $0B,X        und in Jobpuffer eintragen
    BB23: AD 04 02  LDA $0204        Sektornummer holen
    BB26: 95 0C     STA $0C,X        und in Jobpuffer eintragen
    BB28: A5 7C     LDA $7C          Burst-Kommandobyte holen
    BB2A: 29 10     AND #$10         b4: Seitennummer isolieren
    BB2C: 9D CE 01  STA $01CE,X      und in Job-Puffer (SIDS) eintragen
    BB2F: A9 B2     LDA #$B2         TPREAD_DV: physikalische Spur einlesen
    BB31: 20 B0 BF  JSR $BFB0        Job aufrufen
    BB34: 20 66 BF  JSR $BF66        Burst-Status setzen
    BB37: 24 7C     BIT $7C          Burst-Kommandobyte holen;
    BB39: 70 04     BVS $BB3F        E-Flag (b6)=1: Fehler ignorieren ? ja, ==>
    BB3B: C9 02     CMP #$02         Jobrueckmeldung < 2 (Ok.) ?
    BB3D: B0 BD     BCS $BAFC        nein, (Status ausgeben, Ende) ==>

    Einsprung von $BB39:

    BB3F: 20 AB BF  JSR $BFAB        Burst-Status an Computer uebertragen
    BB42: A0 00     LDY #$00
    BB44: 84 7E     STY $7E          Pufferzeiger Lo =0 setzen
    BB46: B9 9F 00  LDA $009F,Y      Zeiger auf den Block im Cache holen
    BB49: 29 7F     AND #$7F         Umwandlungs-Flag ausblenden
    BB4B: 18        CLC
    BB4C: 65 8C     ADC $8C          + Cache-Start
    BB4E: 85 7F     STA $7F          als Pufferzeiger Hi merken
    BB50: A6 91     LDX $91          Sektorgroesse holen
    BB52: E0 03     CPX #$03         Anzahl auszugebender Speicherseiten merken
    BB54: D0 01     BNE $BB57        1 oder 2 Seiten, ==>
    BB56: E8        INX              4 Seiten ausgeben

    Einsprung von $BB54, $BB5D, $BB64:

    BB57: B1 7E     LDA ($7E),Y      Byte aus Cachepuffer holen
    BB59: 20 86 BF  JSR $BF86        und an Computer senden
    BB5C: C8        INY
    BB5D: D0 F8     BNE $BB57        ganze Speicherseite ausgeben, ==>
    BB5F: CA        DEX              naechste Seite holen
    BB60: F0 04     BEQ $BB66        keine Seite mehr auszugeben, ==>
    BB62: E6 7F     INC $7F          Pufferzeiger Hi erhoehen
    BB64: D0 F1     BNE $BB57        ==>

    Einsprung von $BB60:

    BB66: CE 05 02  DEC $0205        Anzahl auszugebender Sektoren -1
    BB69: F0 06     BEQ $BB71        fertig, ==>
    BB6B: 20 40 C0  JSR $C040        naechste Blocknummer holen
    BB6E: 4C 15 BB  JMP $BB15        Block lesen und ausgeben

    Einsprung von $BB69:

    BB71: 4C 47 BF  JMP $BF47        ggf. Kopf auf die angegebene Spur setzen

        Previous Page / Next Page