DOS Wedge now fully works from within the MONITOR
This commit is contained in:
1 parent
966f2fbefb
commit
9ccd94b36e
7 files changed
+52
-12
No files matched your search
@@ -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 {
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
}
|
||||
@@ -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
|
||||
@@ -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:
|
||||
|
||||
+2
-1
@@ -201,7 +201,7 @@ Jump_Table:
|
||||
!word Mon_Register ; R
|
||||
!word Mon_Transfer ; T XXX to be debugged/adapted
|
||||
!word Mon_Exit ; X
|
||||
!word Mon_DOS ; @ XXX to be debugged/adapted
|
||||
!word Mon_DOS ; @
|
||||
!word Mon_Assemble ; . XXX to be debugged/adapted
|
||||
!word Mon_Set_Memory ; > XXX to be debugged/adapted
|
||||
!word Mon_Set_Register ; ; XXX to be debugged/adapted
|
||||
@@ -2025,6 +2025,7 @@ Mon_DOS:
|
||||
; ******
|
||||
|
||||
JSR wedge_dos_monitor
|
||||
JSR Print_CR
|
||||
JMP Main
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user