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