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