FSM: Byte ausgeben (bei der 1571: $9228)

Einsprung von $BF91:

BF83: 4C 15 AD  JMP $AD15        ATN-Modus testen

Einsprung von $AAC8, $BAE3, $BB59, $BE8E, $BE93, $BE99, $BE9F, $BEA4, $BEB2,
              $BFAD:

BF86: 48        PHA              <-- Einsprung

Einsprung von $BF8D, $BF97:

BF87: AD 01 40  LDA $4001        Normalen Bus auslesen
BF8A: CD 01 40  CMP $4001
BF8D: D0 F8     BNE $BF87        und entprellen
BF8F: 29 FF     AND #$FF         nz-Flags neu setzen
BF91: 30 F0     BMI $BF83        ATN, (dann Abbruch) ==>
BF93: 45 76     EOR $76          letzter FSM-Clock-Zustand
BF95: 29 04     AND #$04         (b2: CLOCK IN)
BF97: F0 EE     BEQ $BF87        Clock-gekippt ? nein, ==>
BF99: 68        PLA              Ja: Byte ausgeben
BF9A: 8D 0C 40  STA $400C        Byte in FSM-Schieberegister schreiben
BF9D: A5 76     LDA $76          neuen Clock-Zustand merken
BF9F: 49 04     EOR #$04
BFA1: 85 76     STA $76
BFA3: A9 08     LDA #$08         Schiebevorgang abwarten

Einsprung von $BFA8:

BFA5: 2C 0D 40  BIT $400D        b3=1: Vorgang beendet ?
BFA8: F0 FB     BEQ $BFA5        nein, ==>
BFAA: 60        RTS

    Previous Page / Next Page