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