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