From 179ddc25438d3a4cb158a4f1911549dbf77e2b34 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Fri, 28 Aug 2020 17:17:09 +0200 Subject: [PATCH] MEGA65 CHRIN variant now accepts commands --- src/basic/basic_commands_02/cmd_sysinfo.s | 11 ++++++++++- src/kernal/keyboard/chrin_keyboard.s | 19 +++++++++---------- src/kernal/screen_m65/mega65_chrin_keyboard.s | 16 +++++++++------- 3 files changed, 28 insertions(+), 18 deletions(-) diff --git a/src/basic/basic_commands_02/cmd_sysinfo.s b/src/basic/basic_commands_02/cmd_sysinfo.s index 08b2d6e4..d85cd9b2 100644 --- a/src/basic/basic_commands_02/cmd_sysinfo.s +++ b/src/basic/basic_commands_02/cmd_sysinfo.s @@ -38,13 +38,17 @@ cmd_sysinfo: jsr STROUT jsr print_return + + jsr M65_ISMODE65 + bcs print_sysinfo_video + jsr print_return // FALLTROUGH print_sysinfo_banner: - // Print board type + // Print board type (information not accessible in native mode) ldx #IDX__STR_SI_HDR_HW jsr print_packed_misc_str @@ -68,6 +72,11 @@ print_sysinfo_banner: lda MISC_BOARDID jsr print_hex_byte !: + + // FALLTROUGH + +print_sysinfo_video: + // Print video system information ldx #IDX__STR_SI_HDR_VID diff --git a/src/kernal/keyboard/chrin_keyboard.s b/src/kernal/keyboard/chrin_keyboard.s index 44335795..074fbdde 100644 --- a/src/kernal/keyboard/chrin_keyboard.s +++ b/src/kernal/keyboard/chrin_keyboard.s @@ -10,19 +10,18 @@ chrin_keyboard: +#if ROM_LAYOUT_M65 + + jsr M65_ISMODE65 + bcc_16 m65_chrin_keyboard + +#endif + // Preserve .X and .Y registers stx XSAV phy_trash_a -#if ROM_LAYOUT_M65 - -/* XXX does not work yet - jsr M65_ISMODE65 - bcc_16 m65_chrin_keyboard -*/ -#endif - // FALLTROUGH chrin_keyboard_repeat: @@ -86,7 +85,7 @@ chrin_keyboard_read: lda KEYD cmp #$0D - bne chrkin_keyboard_not_enter + bne chrkn_keyboard_not_enter // FALLTROUGH @@ -147,7 +146,7 @@ chrin_enter_loop: // Return first char of line beq chrin_keyboard_return_byte // branch always -chrkin_keyboard_not_enter: +chrkn_keyboard_not_enter: lda KEYD diff --git a/src/kernal/screen_m65/mega65_chrin_keyboard.s b/src/kernal/screen_m65/mega65_chrin_keyboard.s index ebd92a43..61894679 100644 --- a/src/kernal/screen_m65/mega65_chrin_keyboard.s +++ b/src/kernal/screen_m65/mega65_chrin_keyboard.s @@ -8,8 +8,10 @@ m65_chrin_keyboard: // XXX connnect this function to Kernal - // Preserve .Z register + // Preserve .X, .Y and .Z register + phx + phy phz // FALLTROUGH @@ -46,9 +48,9 @@ m65_chrin_keyboard_empty_line: m65_chrin_keyboard_end: - ldx XSAV plz ply + plx clc rts @@ -81,10 +83,9 @@ m65_chrin_keyboard_read: // Wait for a key lda NDX beq m65_chrin_keyboard_repeat - lda KEYD cmp #$0D - bne m65_chrkin_keyboard_not_enter + bne m65_chrin_keyboard_not_enter // FALLTROUGH @@ -152,14 +153,15 @@ m65_chrin_enter_loop: jmp_8 m65_chrin_keyboard_return_byte // branch always -m65_chrkin_keyboard_not_enter: +m65_chrin_keyboard_not_enter: lda KEYD #if CONFIG_PROGRAMMABLE_KEYS - jsr chrin_programmable_keys - bcc m65_chrin_keyboard_enter + // XXX do not work yet + //jsr chrin_programmable_keys + //bcc m65_chrin_keyboard_enter #endif // CONFIG_PROGRAMMABLE_KEYS