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