Blockheader lesen
Einsprung von $CFA6:
CD00: A2 05 LDX #$05 Blockheaderpuffer loeschen
Einsprung von $CD06:
CD02: 8A TXA
CD03: 95 1F STA $1F,X 6 Bytes: Track,Seite,Sektor,Groesse,CRC1,CRC2
CD05: CA DEX
CD06: 10 FA BPL $CD02
CD08: 20 BC CD JSR $CDBC Ist eine Diskette im Laufwerk ?
CD0B: B0 2C BCS $CD39 nein, Lesen unmoeglich ==>
CD0D: AD E1 01 LDA $01E1 Controller-Befehl: Read Adress
CD10: 20 F4 CB JSR $CBF4 Kommando in Controller schreiben
CD13: A2 00 LDX #$00
CD15: A0 06 LDY #$06 6 Bytes von Diskette einlesen
Einsprung von $CD1F, $CD28:
CD17: AD 00 60 LDA $6000 Controller-Status holen
CD1A: 29 03 AND #$03
CD1C: 4A LSR
CD1D: 90 0B BCC $CD2A Controller ready, ==>
CD1F: F0 F6 BEQ $CD17 kein Byte ready, ==>
CD21: AD 03 60 LDA $6003 Byte einlesen und
CD24: 95 1F STA $1F,X im Blockheader-Puffer speichern
CD26: E8 INX
CD27: 88 DEY
CD28: D0 ED BNE $CD17 noch ein Byte einlesen, ==>
Einsprung von $CD1D:
CD2A: 20 3F CD JSR $CD3F Controller-Status pruefen
CD2D: F0 02 BEQ $CD31 Kein Fehler, ==>
CD2F: 38 SEC
CD30: 24 B $24
Einsprung von $CD2D:
CD31: 18 CLC
CD32: 24 8D BIT $8D E/A-Byte abfragen
CD34: 50 08 BVC $CD3E b6=0: keine Pruefsumme bilden, ==>
CD36: 4C 63 DA JMP $DA63 Pruefsumme bilden ==>
Einsprung von $CD0B:
CD39: A9 03 LDA #$03 Zwischenspeicher setzen
CD3B: 85 7D STA $7D
CD3D: 38 SEC
Einsprung von $CD34:
CD3E: 60 RTS
Previous Page / Next Page