DOS Wedge now fully works from within the MONITOR

This commit is contained in:
FeralChild64 committed 2021-01-13 23:05:30 +01:00
1 parent 966f2fbefb
commit 9ccd94b36e
7 files changed
+52 -12

No files matched your search

+2 -3
View File
@@ -26,9 +26,8 @@
; Helper aliases for DOS Wedge under MONITOR
;
!addr __wedge_mon = $0A ; VERCKB
!addr __wedge_spstore = $09 ; TRMPOS
!addr __wedge_mon = $0A ; VERCKB
!addr __wedge_spstore = $09 ; TRMPOS
;
; Aliases for the tokeniser - reuse the CPU stack
@@ -28,7 +28,7 @@
!addr VB1__helper_ask_if_sure = $4000 + 2 * 13
!addr VB1__helper_eggshell = $4000 + 2 * 14
!addr VB1__wedge_dos = $4000 + 2 * 15
!addr VB1__wedge_dos_monitor = $4000 + 2 * 15
!addr VB1__wedge_dos_monitor = $4000 + 2 * 16
} else {
+1
View File
@@ -41,6 +41,7 @@
;; #ALIAS# do_error_fetch = BASIC_0.do_error_fetch
;; #ALIAS# do_basic_error = BASIC_0.do_basic_error
;; #ALIAS# str_rev_question = BASIC_0.str_rev_question
;; #ALIAS# do_error_print_only = BASIC_0.proxy_B1_do_error_print_only
;; #ALIAS# fetch_character = BASIC_0.proxy_B1_fetch_character
;; #ALIAS# fetch_character_skip_spaces = BASIC_0.proxy_B1_fetch_character_skip_spaces
;; #ALIAS# fetch_uint8 = BASIC_0.proxy_B1_fetch_uint8
+7
View File
@@ -138,4 +138,11 @@ proxy_B1_shell_main_loop:
jsr map_NORMAL
jmp shell_main_loop
proxy_B1_do_error_print_only:
jsr map_NORMAL
jsr do_error_print_only
bra proxy_B1_end_2
}
+18
View File
@@ -200,6 +200,7 @@ do_basic_error: ; error code in .X
+phx_trash_a
jsr tmpstr_free_all
ldx #IDX__STR_RET_QM
jsr print_packed_misc_str
+plx_trash_a
@@ -233,4 +234,21 @@ do_basic_error: ; error code in .X
jmp shell_main_loop
!ifdef CONFIG_MB_M65 {
do_error_print_only: ; used by DOS Wedge
+phx_trash_a
lda #'?'
jsr JCHROUT
+plx_trash_a
jsr print_packed_error
ldx #IDX__STR_ERROR
jmp print_packed_misc_str
}
} ; ROM layout
+21 -7
View File
@@ -199,7 +199,11 @@ wedge_dos_change_drive:
pla
sta FA
!ifdef CONFIG_MB_M65 {
jmp wedge_dos_wrapper_exit
} else {
jmp shell_main_loop
}
wedge_dos_status_get:
@@ -447,27 +451,37 @@ wedge_dos_wrapper_exit_nocheck:
wedge_dos_wrapper_SYNTAX_error:
bbr7 __wedge_mon, wedge_dos_SYNTAX_error
; XXX
ldx #$0A
bra wedge_dos_wrapper_error_common
wedge_dos_wrapper_ILLEGAL_DEVICE_NUMBER_error:
bbr7 __wedge_mon, wedge_dos_ILLEGAL_DEVICE_NUMBER_error
; XXX
ldx #$08
bra wedge_dos_wrapper_error_common
wedge_dos_wrapper_OVERFLOW_error:
bbr7 __wedge_mon, wedge_dos_OVERFLOW_error
; XXX
ldx #$0E
bra wedge_dos_wrapper_error_common
wedge_dos_wrapper_kernal_error:
bbr7 __wedge_mon, wedge_dos_kernal_error
tax
bne @1
ldx #$1E ; BREAK error + 1
@1:
dex
; XXX
; FALLTROUGH
wedge_dos_wrapper_error_common:
; Print error - within the MONITOR
jsr do_error_print_only
bra wedge_dos_wrapper_exit_nocheck
wedge_dos_SYNTAX_error: