Burst-Befehl: Read mit logischen Blockangaben (bei der 1571: $83a4)
Einsprung von $BAB5:
BAAE: A9 8D LDA #$8D b0-3: kein logisches Diskettenformat
BAB0: 4C FC BA JMP $BAFC b7: Fremdformat; Burststatus ausgeben
Einsprung von $BAF1, $BB1A:
BAB3: A5 8A LDA $8A <-- Burst-Status OR-Maske holen
BAB5: 30 F7 BMI $BAAE b7=1: Fremdformat ? ja, ==>
BAB7: A2 00 LDX #$00
BAB9: AD 03 02 LDA $0203 Tracknummer in Jobspeicher schreiben
BABC: 95 0B STA $0B,X
BABE: AD 04 02 LDA $0204 Sektornummer in Jobspeicher schreiben
BAC1: 95 0C STA $0C,X
BAC3: A9 80 LDA #$80 Job $80: READ_DV: Block einlesen
BAC5: 20 B0 BF JSR $BFB0 Job ausfuehren
BAC8: 20 66 BF JSR $BF66 Burst-Status setzen
BACB: 24 7C BIT $7C E-Flag (b6)=1: Lesefehler ignorieren ?
BACD: 70 07 BVS $BAD6 ja, ==>
BACF: C9 02 CMP #$02 ist ein Fehler aufgetreten ?
BAD1: 90 03 BCC $BAD6 nein, ==>
BAD3: 4C FC BA JMP $BAFC Burst-Status setzen und ausgeben ==>
Einsprung von $BACD, $BAD1:
BAD6: 20 AB BF JSR $BFAB Burst-Status ausgeben
BAD9: A0 00 LDY #$00 Pufferzeiger auf $0300 setzen
BADB: 84 7E STY $7E
BADD: A9 03 LDA #$03
BADF: 85 7F STA $7F
Einsprung von $BAE7:
BAE1: B1 7E LDA ($7E),Y Datenbyte holen
BAE3: 20 86 BF JSR $BF86 und an Computer senden
BAE6: C8 INY
BAE7: D0 F8 BNE $BAE1 ganzen Datenblock senden, ==>
BAE9: CE 05 02 DEC $0205 Anzahl zu sendender Bloecke -1
BAEC: F0 06 BEQ $BAF4 =0 ? ja, ==>
BAEE: 20 7A C0 JSR $C07A naechsten logischen Sektor holen
BAF1: 4C B3 BA JMP $BAB3 Block laden und ausgeben ==>
Einsprung von $BAEC:
BAF4: 4C 44 BF JMP $BF44 ggf. die angegebene Spur anfahren
Previous Page / Next Page