C64 ROM | Routines |
Prev: F68F | Up: Map | Next: F6DD |
Used by the routine at FFEA.
|
||||
F69B | A2 00 | LDX #$00 | clear X | |
F69D | E6 A2 | INC $A2 | increment the jiffy clock low byte | |
F69F | D0 06 | BNE $F6A7 | if no rollover ?? | |
F6A1 | E6 A1 | INC $A1 | increment the jiffy clock mid byte | |
F6A3 | D0 02 | BNE $F6A7 | branch if no rollover | |
F6A5 | E6 A0 | INC $A0 | increment the jiffy clock high byte | |
now subtract a days worth of jiffies from current count and remember only the Cb result
|
||||
F6A7 | 38 | SEC | set carry for subtract | |
F6A8 | A5 A2 | LDA $A2 | get the jiffy clock low byte | |
F6AA | E9 01 | SBC #$01 | subtract $4F1A01 low byte | |
F6AC | A5 A1 | LDA $A1 | get the jiffy clock mid byte | |
F6AE | E9 1A | SBC #$1A | subtract $4F1A01 mid byte | |
F6B0 | A5 A0 | LDA $A0 | get the jiffy clock high byte | |
F6B2 | E9 4F | SBC #$4F | subtract $4F1A01 high byte | |
F6B4 | 90 06 | BCC $F6BC | if less than $4F1A01 jiffies skip the clock reset | |
else ..
|
||||
F6B6 | 86 A0 | STX $A0 | clear the jiffy clock high byte | |
F6B8 | 86 A1 | STX $A1 | clear the jiffy clock mid byte | |
F6BA | 86 A2 | STX $A2 | clear the jiffy clock low byte | |
F6BC | AD 01 DC | LDA $DC01 | read VIA 1 DRB, keyboard row port | |
F6BF | CD 01 DC | CMP $DC01 | compare it with itself | |
F6C2 | D0 F8 | BNE $F6BC | loop if changing | |
F6C4 | AA | TAX | ||
F6C5 | 30 13 | BMI $F6DA | ||
F6C7 | A2 BD | LDX #$BD | set c6 | |
F6C9 | 8E 00 DC | STX $DC00 | save VIA 1 DRA, keyboard column drive | |
F6CC | AE 01 DC | LDX $DC01 | read VIA 1 DRB, keyboard row port | |
F6CF | EC 01 DC | CPX $DC01 | compare it with itself | |
F6D2 | D0 F8 | BNE $F6CC | loop if changing | |
F6D4 | 8D 00 DC | STA $DC00 | save VIA 1 DRA, keyboard column drive | |
F6D7 | E8 | INX | ||
F6D8 | D0 02 | BNE $F6DC | ||
F6DA | 85 91 | STA $91 | save the stop key column | |
F6DC | 60 | RTS |
Prev: F68F | Up: Map | Next: F6DD |