Burst-Befehl: Write mit logischen Blockangaben
Einsprung von $BB83:
BB74: A9 8D LDA #$8D b0-3: kein logisches Diskettenformat
BB76: 8D EA 01 STA $01EA b7: Fremdformat; Burststatus ausgeben
BB79: A5 7C LDA $7C Burst-Kommandobyte holen
BB7B: 09 08 ORA #$08 Flag: 'Nachdem die Daten empfangen worden
BB7D: 85 7C STA $7C sind, Fehlermeldung ausgeben' setzen
BB7F: D0 04 BNE $BB85 ==>
(bei der 1571: $840e)
Einsprung von $BBF0, $BC09:
BB81: A5 8A LDA $8A <-- Burst-Status-OR-Maske holen
BB83: 30 EF BMI $BB74 b7=1: Fremdformat ?
Einsprung von $BB7F:
BB85: A0 00 LDY #$00
BB87: 84 7E STY $7E Pufferzeiger auf $0300 setzen
BB89: A9 03 LDA #$03
BB8B: 85 7F STA $7F
Einsprung von $BBAA:
BB8D: AD 01 40 LDA $4001 Burst-Clock kippen (und damit ein neues
BB90: 49 08 EOR #$08 Byte anfordern)
BB92: 2C 0D 40 BIT $400D Flag: 'Byte empfangen' des SDR loeschen
BB95: 8D 01 40 STA $4001 Burst-Clock setzen
BB98: A9 08 LDA #$08
Einsprung von $BBA2, $BBB1:
BB9A: 2C 01 40 BIT $4001 ist b7=1: ATN empfangen ?
BB9D: 30 0F BMI $BBAE ja, ==>
BB9F: 2C 0D 40 BIT $400D
BBA2: F0 F6 BEQ $BB9A warten, bis b3=1: Byte empfangen, ==>
BBA4: AD 0C 40 LDA $400C Byte aus dem Schieberegister holen
BBA7: 91 7E STA ($7E),Y und in Puffer schreiben
BBA9: C8 INY
BBAA: D0 E1 BNE $BB8D ganzen Block einlesen, ==>
BBAC: F0 0C BEQ $BBBA ==>
Einsprung von $BB9D:
BBAE: 20 15 AD JSR $AD15 ATN-Modus testen
BBB1: 4C 9A BB JMP $BB9A weiter auf Byte warten ==>
Einsprung von $BBC1:
BBB4: AD EA 01 LDA $01EA Burst-Status aus Zwischenspeicher holen
BBB7: 4C FC BA JMP $BAFC und an Computer senden
Einsprung von $BBAC:
BBBA: 20 03 AD JSR $AD03 CLOCK OUT auf Lo setzen
BBBD: A5 7C LDA $7C Burst-Kommandobyte holen
BBBF: 29 08 AND #$08 b3=1: kein logisches Format ?
BBC1: D0 F1 BNE $BBB4 ja, (Fehler ausgeben) ==>
BBC3: A2 00 LDX #$00
BBC5: AD 03 02 LDA $0203 Zielblock setzen
BBC8: 95 0B STA $0B,X Tracknummer
BBCA: AD 04 02 LDA $0204
BBCD: 95 0C STA $0C,X Sektornummer
BBCF: A9 90 LDA #$90 Job $90: WRITE_DV
BBD1: 20 B0 BF JSR $BFB0 Job aufrufen
BBD4: 20 66 BF JSR $BF66 Burst-Status setzen
BBD7: 20 5A BF JSR $BF5A und an Computer senden
BBDA: 24 7C BIT $7C Burst-Kommandobyte holen
BBDC: 70 0A BVS $BBE8 E-Flag (b6)=1: Fehler ignorieren ? ja, ==>
BBDE: AD EA 01 LDA $01EA Fehlercode holen
BBE1: C9 02 CMP #$02 < 2 ?
BBE3: 90 03 BCC $BBE8 ja, ==>
BBE5: 4C 0A BB JMP $BB0A Fehler im Klartext ausgeben
Einsprung von $BBDC, $BBE3:
BBE8: CE 05 02 DEC $0205 Anzahl zu schreibender Bloecke -1
BBEB: F0 06 BEQ $BBF3 alle Bloecke geschrieben, ==>
BBED: 20 7A C0 JSR $C07A naechsten logischen Sektor holen
BBF0: 4C 81 BB JMP $BB81 Daten vom Compi holen und abspeichern ==>
Einsprung von $BBEB:
BBF3: 4C 44 BF JMP $BF44 Kopf ggf. auf die angegebene Spur setzen
Previous Page / Next Page