diff --git a/c64/kernal/,aliases.s b/c64/kernal/,aliases.s index c9ca6929..c0bd4ff0 100644 --- a/c64/kernal/,aliases.s +++ b/c64/kernal/,aliases.s @@ -60,3 +60,13 @@ ;; 128 = all keys repeat ;; 64 = no keys repeat .alias key_repeat_flags $028A ; p58 + ;; https://www.c64-wiki.com/wiki/Page_2 + .alias key_repeat_speed $028B + .alias key_first_repeat_delay $028C + ;; bit 0 = shift, 1 = Vendor Key, 2 = Control + .alias key_bucky_state $028D + .alias key_last_bucky_state $028E + .alias keyboard_decoding_ptr $028F + .alias enable_case_switch $0291 + .alias screen_scroll_disable $0292 + .alias pal_or_ntsc $02A6 diff --git a/c64/kernal/cint.s b/c64/kernal/cint.s index e1caacf0..2968abc1 100644 --- a/c64/kernal/cint.s +++ b/c64/kernal/cint.s @@ -6,14 +6,25 @@ cint: sta $d011 lda #$c8 ; 40 column etc sta $d016 - + ;; Initialise cursor blink flags (Compute's Mapping the 64 p215) + lda #$00 + sta cursor_blink_disable + sta cursor_blink_countdown ;; Set keyboard decode vector (Compute's Mapping the 64 p215) ;; Set key repeat delay (Compute's Mapping the 64 p215) + ;; Making some numbers up here: Repeat every ~1/10th sec + ;; But require key to be held for 4x that long before + ;; repeating + lda #$05 + sta key_repeat_speed ;; Set key frequency counters (Compute's Mapping the 64 p215) + asl + asl + sta key_first_repeat_delay ;; Set current colour for text (Compute's Mapping the 64 p215) lda #$0e ; light blue by default