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 |