From 52f20a41b6fda8c77d77e65784b7a49fd14d5450 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Sun, 29 Nov 2020 23:28:39 +0100 Subject: [PATCH] moved MEGA65 native cursor blink to KERNAL_C segment --- src/,,config_mega65.s | 2 +- .../board_m65/C000.mega65_vectable_kernal_C.s | 4 +++- src/kernal/interrupts/ea31.default_irq_handler.s | 16 +++++++++++++++- src/kernal/screen_m65/mega65_cursor_blink.s | 2 +- .../screen_m65/mega65_screen_helpers_irq.s | 2 +- 5 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/,,config_mega65.s b/src/,,config_mega65.s index a6bfb2d1..b313772b 100644 --- a/src/,,config_mega65.s +++ b/src/,,config_mega65.s @@ -52,7 +52,7 @@ ;; #CONFIG# JOY1_CURSOR NO ;; #CONFIG# JOY2_CURSOR NO -;; #CONFIG# M65_KB_DEV NO ; for development, keep disabled +;; #CONFIG# M65_KB_DEV NO ; for development, keep disabled for release builds ;; #CONFIG# PROGRAMMABLE_KEYS YES diff --git a/src/kernal/board_m65/C000.mega65_vectable_kernal_C.s b/src/kernal/board_m65/C000.mega65_vectable_kernal_C.s index eae8567a..f713e937 100644 --- a/src/kernal/board_m65/C000.mega65_vectable_kernal_C.s +++ b/src/kernal/board_m65/C000.mega65_vectable_kernal_C.s @@ -11,11 +11,13 @@ ; Label definitions - !addr VKC__m65_scnkey = $C000 + 2 * 0 + !addr VKC__m65_cursor_blink = $C000 + 2 * 0 + !addr VKC__m65_scnkey = $C000 + 2 * 1 } else { ; Vector table (Open ROMs private!) + !word m65_cursor_blink !word m65_scnkey } diff --git a/src/kernal/interrupts/ea31.default_irq_handler.s b/src/kernal/interrupts/ea31.default_irq_handler.s index bd43b132..05784c7f 100644 --- a/src/kernal/interrupts/ea31.default_irq_handler.s +++ b/src/kernal/interrupts/ea31.default_irq_handler.s @@ -20,7 +20,21 @@ default_irq_handler: jsr M65_MODEGET bcs @2 - jsr m65_cursor_blink + ; Map KERNAL_C segment + + lda VIC_CTRLA + pha + ora #%00100000 + sta VIC_CTRLA + + ; Call the native mode blink routine + + jsr (VKC__m65_cursor_blink) + + ; Restore mapping and quit + + pla + sta VIC_CTRLA bra default_irq_handler_common @2: diff --git a/src/kernal/screen_m65/mega65_cursor_blink.s b/src/kernal/screen_m65/mega65_cursor_blink.s index e144b74a..c380301c 100644 --- a/src/kernal/screen_m65/mega65_cursor_blink.s +++ b/src/kernal/screen_m65/mega65_cursor_blink.s @@ -1,4 +1,4 @@ -;; #LAYOUT# M65 KERNAL_0 #TAKE +;; #LAYOUT# M65 KERNAL_C #TAKE ;; #LAYOUT# * * #IGNORE ; diff --git a/src/kernal/screen_m65/mega65_screen_helpers_irq.s b/src/kernal/screen_m65/mega65_screen_helpers_irq.s index 75f6d674..870bf171 100644 --- a/src/kernal/screen_m65/mega65_screen_helpers_irq.s +++ b/src/kernal/screen_m65/mega65_screen_helpers_irq.s @@ -1,4 +1,4 @@ -;; #LAYOUT# M65 KERNAL_0 #TAKE +;; #LAYOUT# M65 KERNAL_C #TAKE ;; #LAYOUT# * * #IGNORE