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 |