$EADD/60125:   Process Key Image

EADD: 6C 8F 02  JMP ($028F)   ; Vector: Routine to determine Keyboard table

Jump from $EB76:

EAE0: A4 CB     LDY $CB       ; Matrix value of last Key pressed
EAE2: B1 F5     LDA ($F5),Y   ; Vector: Current Keyboard decoding Table
EAE4: AA        TAX
EAE5: C4 C5     CPY $C5       ; Matrix value of last Key pressed
EAE7: F0 07     BEQ $EAF0
EAE9: A0 10     LDY #$10
EAEB: 8C 8C 02  STY $028C     ; Repeat Key: First repeat delay Counter
EAEE: D0 36     BNE $EB26

Jump from $EAE7:

EAF0: 29 7F     AND #$7F
EAF2: 2C 8A 02  BIT $028A     ; Flag: Repeat keys
EAF5: 30 16     BMI $EB0D
EAF7: 70 49     BVS $EB42
EAF9: C9 7F     CMP #$7F

Jump from $EA98:

EAFB: F0 29     BEQ $EB26
EAFD: C9 14     CMP #$14
EAFF: F0 0C     BEQ $EB0D
EB01: C9 20     CMP #$20
EB03: F0 08     BEQ $EB0D
EB05: C9 1D     CMP #$1D
EB07: F0 04     BEQ $EB0D
EB09: C9 11     CMP #$11
EB0B: D0 35     BNE $EB42

Jump from $EAF5, $EAFF, $EB03, $EB07:

EB0D: AC 8C 02  LDY $028C     ; Repeat Key: First repeat delay Counter
EB10: F0 05     BEQ $EB17
EB12: CE 8C 02  DEC $028C     ; Repeat Key: First repeat delay Counter
EB15: D0 2B     BNE $EB42

Jump from $EB10:

EB17: CE 8B 02  DEC $028B     ; Repeat Key: Speed Counter
EB1A: D0 26     BNE $EB42
EB1C: A0 04     LDY #$04
EB1E: 8C 8B 02  STY $028B     ; Repeat Key: Speed Counter
EB21: A4 C6     LDY $C6       ; Number of Characters in Keyboard Buffer queue
EB23: 88        DEY
EB24: 10 1C     BPL $EB42

Jump from $EAEE, $EAFB:

EB26: A4 CB     LDY $CB       ; Matrix value of last Key pressed
EB28: 84 C5     STY $C5       ; Matrix value of last Key pressed
EB2A: AC 8D 02  LDY $028D     ; Flag: Shift Keys
EB2D: 8C 8E 02  STY $028E     ; Last Shift Key used for debouncing
EB30: E0 FF     CPX #$FF
EB32: F0 0E     BEQ $EB42
EB34: 8A        TXA
EB35: A6 C6     LDX $C6       ; Number of Characters in Keyboard Buffer queue
EB37: EC 89 02  CPX $0289     ; Maximum number of Bytes in Keyboard Buffer
EB3A: B0 06     BCS $EB42
EB3C: 9D 77 02  STA $0277,X   ; Keyboard Buffer Queue (FIFO)
EB3F: E8        INX
EB40: 86 C6     STX $C6       ; Number of Characters in Keyboard Buffer queue

Jump from $EAF7, $EB0B, $EB15, $EB1A, $EB24, $EB32, $EB3A, $EB52:

EB42: A9 7F     LDA #$7F
EB44: 8D 00 DC  STA $DC00     ; CIA1: Data Port A (Keyboard, Joystick, Paddles)
EB47: 60        RTS

    Previous Page / Next Page