From 8b6b47041743ee5622c827c370f61e81ac8a2ae8 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Wed, 19 Aug 2020 22:51:33 +0200 Subject: [PATCH] MEGA65 native mode fixes --- src/basic/basic_commands/cmd_go_goto_run.s | 15 +++----------- src/basic/basic_commands/cmd_sys.s | 2 +- .../{mega65_ismode64.s => mega65_ismode65.s} | 12 ++++++++++- src/kernal/screen/chrout_screen.s | 2 +- src/kernal/screen_m65/mega65_chrout_screen.s | 20 +++++++++---------- src/kernal/tape/tape_common_screen.s | 4 ++-- 6 files changed, 28 insertions(+), 27 deletions(-) rename src/kernal/extapi_m65/{mega65_ismode64.s => mega65_ismode65.s} (61%) diff --git a/src/basic/basic_commands/cmd_go_goto_run.s b/src/basic/basic_commands/cmd_go_goto_run.s index 2665c9a6..848a1c30 100644 --- a/src/basic/basic_commands/cmd_go_goto_run.s +++ b/src/basic/basic_commands/cmd_go_goto_run.s @@ -32,7 +32,7 @@ cmd_go_syntax_error: // If in native mode - switch to C64 compatibilty jsr M65_ISMODE65 - bne cmd_go_rts + bcs cmd_go_rts jsr helper_ask_if_sure bcs cmd_go_rts @@ -45,21 +45,12 @@ cmd_go_syntax_error: // If in C64 compatibility mode - switch to native mode jsr M65_ISMODE65 - beq cmd_go_rts + bcc cmd_go_rts jsr helper_ask_if_sure bcs cmd_go_rts jsr M65_MODE65 - // XXX test code, replace by jmp do_clr - - jsr do_clr - - lda #$41 - jsr JCHROUT -testx: - jmp testx - - + jmp do_clr !: jmp do_ILLEGAL_QUANTITY_error diff --git a/src/basic/basic_commands/cmd_sys.s b/src/basic/basic_commands/cmd_sys.s index 87d91b64..d689b488 100644 --- a/src/basic/basic_commands/cmd_sys.s +++ b/src/basic/basic_commands/cmd_sys.s @@ -27,7 +27,7 @@ cmd_sys: // Make sure we are in C64 compatibility mode jsr M65_ISMODE65 - bne cmd_sys_nsys_common + bcs cmd_sys_nsys_common jsr M65_MODE64 // FALLTROUGH diff --git a/src/kernal/extapi_m65/mega65_ismode64.s b/src/kernal/extapi_m65/mega65_ismode65.s similarity index 61% rename from src/kernal/extapi_m65/mega65_ismode64.s rename to src/kernal/extapi_m65/mega65_ismode65.s index 88637375..428233d9 100644 --- a/src/kernal/extapi_m65/mega65_ismode64.s +++ b/src/kernal/extapi_m65/mega65_ismode65.s @@ -2,7 +2,7 @@ // #LAYOUT# * * #IGNORE -M65_ISMODE65: // checks if mode is native M65 one, BEQ = jump if native mode +M65_ISMODE65: // checks if mode is native M65 one, BCC = jump if native mode pha @@ -14,6 +14,16 @@ M65_ISMODE65: // checks if mode is native M65 one, BEQ = jump if native mode bne !+ lda M65_MAGICSTR+2 cmp #$35 // '5' + bne !+ + + // M65 native mode + + clc + pla + rts !: + // C64 compatibility mode + + sec pla rts diff --git a/src/kernal/screen/chrout_screen.s b/src/kernal/screen/chrout_screen.s index e7e38bb0..596a3ce9 100644 --- a/src/kernal/screen/chrout_screen.s +++ b/src/kernal/screen/chrout_screen.s @@ -13,7 +13,7 @@ chrout_screen: #if ROM_LAYOUT_M65 jsr M65_ISMODE65 - beq_16 m65_chrout_screen + bcc_16 m65_chrout_screen #endif diff --git a/src/kernal/screen_m65/mega65_chrout_screen.s b/src/kernal/screen_m65/mega65_chrout_screen.s index fa09e070..5bae0d37 100644 --- a/src/kernal/screen_m65/mega65_chrout_screen.s +++ b/src/kernal/screen_m65/mega65_chrout_screen.s @@ -37,35 +37,35 @@ m65_chrout_screen_literal: // entry point for m65_chrout_screen_quote phz ldz M65__TXTCOL - // Start from setting M65_SCRSEG to point colour memory (starts from $FF80000) + // Start from setting M65_LPNT_SCR to point colour memory (starts from $FF80000) lda #$0F - sta M65_SCRSEG+3 + sta M65_LPNT_SCR+3 lda #$F8 - sta M65_SCRSEG+2 + sta M65_LPNT_SCR+2 lda M65_COLVIEW+1 - sta M65_SCRSEG+1 + sta M65_LPNT_SCR+1 lda M65_COLVIEW+0 - sta M65_SCRSEG+0 + sta M65_LPNT_SCR+0 // Add screen row to the address ldy M65__TXTROW clc lda m65_scrtab_rowoffset_lo,y - adc M65_SCRSEG+0 - sta M65_SCRSEG+0 + adc M65_LPNT_SCR+0 + sta M65_LPNT_SCR+0 lda m65_scrtab_rowoffset_hi,y - adc M65_SCRSEG+1 - sta M65_SCRSEG+1 + adc M65_LPNT_SCR+1 + sta M65_LPNT_SCR+1 // Store the new color in screen memory lda COLOR sta_lp (M65_LPNT_SCR),z - // Now change M65_LPNT_SCRb to point to screen memory + // Now change M65_LPNT_SCR to point to screen memory // XXX deduplicate this part lda M65_SCRSEG+1 diff --git a/src/kernal/tape/tape_common_screen.s b/src/kernal/tape/tape_common_screen.s index 083e917c..bd44c5b3 100644 --- a/src/kernal/tape/tape_common_screen.s +++ b/src/kernal/tape/tape_common_screen.s @@ -26,7 +26,7 @@ tape_screen_on_motor_off: #else jsr M65_ISMODE65 - bne_16 screen_on // MEGA65 native mode does not have badlines, no need to enable/disable screen + bcs_16 screen_on // MEGA65 native mode does not have badlines, no need to enable/disable screen rts #endif @@ -52,7 +52,7 @@ tape_screen_off_motor_on: #else jsr M65_ISMODE65 - beq !+ // MEGA65 native mode does not have badlines, no need to enable/disable screen + bcs !+ // MEGA65 native mode does not have badlines, no need to enable/disable screen jsr screen_off !: