diff --git a/bin/basic_generic.rom b/bin/basic_generic.rom index 8e22472d..11b0d17c 100644 Binary files a/bin/basic_generic.rom and b/bin/basic_generic.rom differ diff --git a/bin/basic_mega65.rom b/bin/basic_mega65.rom index 53c01b59..fe3ebcf3 100644 Binary files a/bin/basic_mega65.rom and b/bin/basic_mega65.rom differ diff --git a/bin/basic_ultimate64.rom b/bin/basic_ultimate64.rom index dd99f270..5c33e194 100644 Binary files a/bin/basic_ultimate64.rom and b/bin/basic_ultimate64.rom differ diff --git a/bin/kernal_generic.rom b/bin/kernal_generic.rom index 8db48313..16990dec 100644 Binary files a/bin/kernal_generic.rom and b/bin/kernal_generic.rom differ diff --git a/bin/kernal_mega65.rom b/bin/kernal_mega65.rom index a0e4a3bf..1dbda167 100644 Binary files a/bin/kernal_mega65.rom and b/bin/kernal_mega65.rom differ diff --git a/bin/kernal_ultimate64.rom b/bin/kernal_ultimate64.rom index e1db9442..bc015e10 100644 Binary files a/bin/kernal_ultimate64.rom and b/bin/kernal_ultimate64.rom differ diff --git a/c64/kernal/cint_real.s b/c64/kernal/cint_real.s index 9111700a..21a5490f 100644 --- a/c64/kernal/cint_real.s +++ b/c64/kernal/cint_real.s @@ -96,7 +96,9 @@ cint_brk: // entry for BRK and STOP+RESTORE - XXX, where should it start? // Set maximum keyboard buffer size (Compute's Mapping the 64 p215) ldx #10 stx XMAX + // Put non-zero value in MODE to enable case switch + ldx #$00 stx MODE // Set default I/O devices (see SCINIT description at http://sta.c64.org/cbm64krnfunc.html) diff --git a/c64/kernal/scnkey_tww_ctr.s b/c64/kernal/scnkey_tww_ctr.s index 899ecf94..a678082e 100644 --- a/c64/kernal/scnkey_tww_ctr.s +++ b/c64/kernal/scnkey_tww_ctr.s @@ -367,11 +367,11 @@ next_row: beq no_case_toggle lda MODE - beq no_case_toggle + bne no_case_toggle - lda $D018 + lda VIC_YMCSB eor #$02 - sta $d018 + sta VIC_YMCSB no_case_toggle: diff --git a/c64/kernal/screen/chrout_screen_control.s b/c64/kernal/screen/chrout_screen_control.s index d028d077..440ace12 100644 --- a/c64/kernal/screen/chrout_screen_control.s +++ b/c64/kernal/screen/chrout_screen_control.s @@ -110,17 +110,19 @@ chrout_try_MODE_TXT: cmp #$0E bne !+ - // XXX - - jmp chrout_screen_done + lda VIC_YMCSB + ora #$02 // to lower case + bne mode_l1 // branch always !: chrout_try_MODE_GFX: cmp #$8E bne !+ - // XXX - + lda VIC_YMCSB + and #$02 // to upper case +mode_l1: + sta VIC_YMCSB jmp chrout_screen_done !: chrout_try_COLOR: @@ -140,7 +142,8 @@ chrout_try_SHIFT_ENABLE: cmp #$09 bne !+ - // XXX + lda #$00 // enable SHIFT+VENDOR combination + sta MODE jmp chrout_screen_done !: @@ -149,7 +152,8 @@ chrout_try_SHIFT_DISABLE: cmp #$08 bne !+ - // XXX + lda #$80 // disable SHIFT+VENDOR combination + sta MODE jmp chrout_screen_done !: @@ -167,16 +171,12 @@ chrout_try_CLR: bne !+ jsr clear_screen +clr_l1: jmp chrout_screen_done !: chrout_try_INS: cmp #$94 - bne !+ + bne clr_l1 // unknown code or key does not need handling jmp chrout_screen_ins -!: -chrout_screen_control_done: - - // unknown code or key does not needs - jmp chrout_screen_done