diff --git a/src/basic/,imports.s b/src/basic/,imports.s index 9972264a..767bf70a 100644 --- a/src/basic/,imports.s +++ b/src/basic/,imports.s @@ -48,6 +48,7 @@ ;; #ALIAS# m65_colorset = KERNAL_0.m65_colorset ;; #ALIAS# m65_shadow_BZP = KERNAL_0.m65_shadow_BZP +;; #ALIAS# proxy_M1_IO_end = KERNAL_0.proxy_M1_IO_end ; ; Ultimate 64 specific parts diff --git a/src/basic/board_m65/mega65_proxies.s b/src/basic/board_m65/mega65_proxies.s index f6927909..a218be22 100644 --- a/src/basic/board_m65/mega65_proxies.s +++ b/src/basic/board_m65/mega65_proxies.s @@ -145,15 +145,14 @@ proxy_B1_do_error_print_only: jsr do_error_print_only bra proxy_B1_end_2 -proxy_B1_do_mon_kernal_error: ; for the MONITOR only +proxy_M1_print_kernal_error: - jsr map_NORMAL tax bne @1 ldx #$1E ; BREAK error + 1 @1: dex + jsr m65_shadow_BZP jsr do_error_print_only - bra proxy_B1_end_2 - + jmp proxy_M1_IO_end } diff --git a/src/kernal/board_m65/mega65_proxies_monitor.s b/src/kernal/board_m65/mega65_proxies_monitor.s index 6baeea29..e40b4bf7 100644 --- a/src/kernal/board_m65/mega65_proxies_monitor.s +++ b/src/kernal/board_m65/mega65_proxies_monitor.s @@ -19,22 +19,10 @@ proxy_M1_CHROUT: ; FALLTROUGH -proxy_M1_jmpout_ret: ; reused by monitor proxy_M1_end: jmp map_MON_1 -proxy_M1_JLOAD: - - jsr map_NORMAL - jsr JLOAD - bra proxy_M1_end - -proxy_M1_JSAVE: - - jsr map_NORMAL - jsr JSAVE - bra proxy_M1_end ; Memory acccess routines @@ -58,6 +46,8 @@ proxy_M1_memwrite: proxy_M1_jmpout: + jsr m65_shadow_BZP + plz ; ZR ply ; YR plx ; XR @@ -67,3 +57,24 @@ proxy_M1_jmpout: plp ; SR jmp map_NORMAL + +; LOAD/SAVE + +proxy_M1_JLOAD: + + jsr m65_shadow_BZP + jsr JLOAD + + ; FALLTROUGH + +proxy_M1_jmpout_ret: ; reused by monitor +proxy_M1_IO_end: + + jsr m65_shadow_BZP + bra proxy_M1_end + +proxy_M1_JSAVE: + + jsr m65_shadow_BZP + jsr JSAVE + bra proxy_M1_IO_end diff --git a/src/mon_m65/imports.s b/src/mon_m65/imports.s index 91b4a8b4..2ea099c5 100644 --- a/src/mon_m65/imports.s +++ b/src/mon_m65/imports.s @@ -22,10 +22,8 @@ ;; #ALIAS# monitor_jmpout = KERNAL_0.proxy_M1_jmpout ;; #ALIAS# monitor_jmpout_ret = KERNAL_0.proxy_M1_jmpout_ret -;; #ALIAS# m65_shadow_BZP = KERNAL_0.m65_shadow_BZP - ;; #ALIAS# wedge_dos_monitor = BASIC_0.wedge_dos_monitor -;; #ALIAS# do_mon_kernal_error = BASIC_0.proxy_B1_do_mon_kernal_error +;; #ALIAS# print_kernal_error = BASIC_0.proxy_M1_print_kernal_error ; 'Print immediate', original implementation by Mike Barry, adapted to 65CE02, modified to preserve .Y diff --git a/src/mon_m65/mon_command_jmp_jsr.s b/src/mon_m65/mon_command_jmp_jsr.s index dfbe7167..fe7cdf04 100644 --- a/src/mon_m65/mon_command_jmp_jsr.s +++ b/src/mon_m65/mon_command_jmp_jsr.s @@ -66,13 +66,10 @@ Mon_Go_JSR_comon: lda ZR pha - jsr m65_shadow_BZP jmp monitor_jmpout Mon_JSR_ret: - jsr m65_shadow_BZP - ; Retrieve registers pha diff --git a/src/mon_m65/mon_command_load_save.s b/src/mon_m65/mon_command_load_save.s index f40a5b8c..f06b2ee5 100644 --- a/src/mon_m65/mon_command_load_save.s +++ b/src/mon_m65/mon_command_load_save.s @@ -83,8 +83,9 @@ Mon_Load_Verify: @load: sta SA + + jsr Print_CR lda VERCKK - jsr m65_shadow_BZP jsr LOAD bra Mon_Load_Save_Common @@ -123,22 +124,25 @@ Mon_Save: ldx Long_AC+0 ldy Long_AC+1 - jsr m65_shadow_BZP pla ; set start address for SAVE sta TXTTAB+0 pla sta TXTTAB+1 - lda #TXTTAB + jsr Print_CR + lda #TXTTAB jsr SAVE ; FALLTROUGH Mon_Load_Save_Common: - jsr m65_shadow_BZP bcc @end - jsr do_mon_kernal_error + pha + jsr Print_CR + pla + jsr print_kernal_error + jsr Print_CR @end: