    Dos-Tabellen initialisieren ($eb3a)

    Einsprung von $AFD3:

    AFE9: AD 00 40  LDA $4000        Geraetenummer auslesen
    AFEC: 29 18     AND #$18
    AFEE: 4A        LSR
    AFEF: 4A        LSR
    AFF0: 4A        LSR              Schalter-Bits + 8
    AFF1: 09 48     ORA #$48         TALK (+ $40)
    AFF3: 85 78     STA $78
    AFF5: 49 60     EOR #$60         LISTEN (+ $20)
    AFF7: 85 77     STA $77
    AFF9: A2 08     LDX #$08         Hi-Bytes der Pufferadressen
    AFFB: A9 0B     LDA #$0B         berechnen

    Einsprung von $B004:

    AFFD: 9D F1 01  STA $01F1,X      $01F1: 03 04 .. 0b
    B000: 38        SEC
    B001: E9 01     SBC #$01
    B003: CA        DEX
    B004: 10 F7     BPL $AFFD
    B006: A2 00     LDX #$00         Pufferzeiger initialisieren
    B008: A0 00     LDY #$00

    Einsprung von $B018:

    B00A: A9 00     LDA #$00
    B00C: 95 BB     STA $BB,X        Lo-Byte = 0
    B00E: E8        INX
    B00F: B9 F1 01  LDA $01F1,Y      Hi-Byte = 03 04 .. 0b
    B012: 95 BB     STA $BB,X
    B014: E8        INX
    B015: C8        INY
    B016: C0 09     CPY #$09
    B018: D0 F0     BNE $B00A

    B01A: A9 00     LDA #$00         INPUT-Puffer nach $0200
    B01C: 95 BB     STA $BB,X
    B01E: A9 02     LDA #$02
    B020: 95 BC     STA $BC,X
    B022: A9 D0     LDA #$D0         ERROR-Puffer nach $02d0
    B024: 95 BD     STA $BD,X
    B026: A9 02     LDA #$02
    B028: 95 BE     STA $BE,X

    B02A: A9 FF     LDA #$FF         Kanalzuordnung loeschen
    B02C: A2 12     LDX #$12         (SA sind keinem Kanal zugeordnet)

    Einsprung von $B031:

    B02E: 95 A8     STA $A8,X
    B030: CA        DEX
    B031: 10 FB     BPL $B02E
    B033: A2 06     LDX #$06

    Einsprung von $B03D:

    B035: 95 D1     STA $D1,X        1. Pufferzuordnung freigeben
    B037: 95 D8     STA $D8,X        2. Pufferzuordnung freigeben
    B039: 9D 65 02  STA $0265,X      Side-Sektor Tabelle loeschen
    B03C: CA        DEX              Puffer 7+8 werden nicht
    B03D: 10 F6     BPL $B035        Kanaelen zugeordnet (BAM)
    B03F: A9 09     LDA #$09         Puffer 9 (INPUT) auf Kanal 5
    B041: 85 D6     STA $D6
    B043: A9 0A     LDA #$0A         Puffer 10 (ERROR) auf Kanal 6
    B045: 85 D7     STA $D7
    B047: A9 06     LDA #$06         SA 16 belegt Kanal 6 (lesen)
    B049: 85 B8     STA $B8
    B04B: A9 85     LDA #$85         SA 15 belegt Kanal 5 (schreiben)
    B04D: 85 B7     STA $B7
    B04F: A9 1F     LDA #$1F         Kanal 0-4 freigeben
    B051: 85 70     STA $70
    B053: A9 01     LDA #$01         Kanal 5 auf Schreiben stellen
    B055: 8D 39 02  STA $0239
    B058: A9 88     LDA #$88         Kanal 6 auf Lesen / kein EOI
    B05A: 8D 3A 02  STA $023A
    B05D: A9 80     LDA #$80         Pufferbelegung: Puffer 7 belegen
    B05F: 85 6D     STA $6D          [Puffer 8 hat kein Bit; ist immer belegt]
    B061: A9 01     LDA #$01         Diskette wurde gewechselt
    B063: 85 25     STA $25
    B065: 20 C3 89  JSR $89C3        Standard Uservektoren-Tabelle setzen
    B068: 20 59 8D  JSR $8D59        Reihenfolge der Pufferbelegung festlegen
    B06B: A9 01     LDA #$01         Sektorversatz auf 1
    B06D: 85 2E     STA $2E
    B06F: A9 02     LDA #$02         Anzahl der Leseversuche
    B071: 85 30     STA $30
    B073: A9 00     LDA #$00         Burst-OR-Maske
    B075: 85 8A     STA $8A
    B077: A9 FF     LDA #$FF         Burst-AND-Maske
    B079: 85 89     STA $89
    B07B: A9 00     LDA #$00         Zeiger auf Cachepuffer
    B07D: 85 8B     STA $8B
    B07F: A9 0C     LDA #$0C         nach $0c00
    B081: 85 8C     STA $8C
    B083: A9 08     LDA #$08         FSM-Bus aktiv / C64-Modus
    B085: 85 76     STA $76
    B087: A9 33     LDA #$33         Dos-Version
    B089: 8D EC 01  STA $01EC
    B08C: A9 44     LDA #$44         1581-Formatkennzeichen
    B08E: 8D EB 01  STA $01EB
    B091: A9 C0     LDA #$C0         E/A-Byte: b6=1: CRC-Test ein; b7:Verify ein
    B093: 85 8D     STA $8D          b5=0: Super-Side-Sektoren verwenden
    B095: A9 50     LDA #$50         Anlaufzeit des Motors setzen (0,8 sec)
    B097: 8D D9 01  STA $01D9
    B09A: A9 20     LDA #$20         Cache-Verzoegerung auf 32 (= 320 ms) setzen
    B09C: 85 9D     STA $9D
    B09E: A2 00     LDX #$00         Job 0 benutzen
    B0A0: A9 82     LDA #$82         RESET_DV: Controller initialisieren
    B0A2: 20 9D 95  JSR $959D        Job ausfuehren
    B0A5: C9 02     CMP #$02         Fehler ?
    B0A7: B0 05     BCS $B0AE        ja, (Controller Error) ==>
    B0A9: A9 C0     LDA #$C0         RESTORE_DV: ('Bump')
    B0AB: 4C 9D 95  JMP $959D        Job ausfuehren

    Einsprung von $B0A7:

    B0AE: A9 76     LDA #$76         76, Controller Error
    B0B0: 4C 67 A8  JMP $A867

        Previous Page / Next Page