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
|
; Helper aliases for DOS Wedge under MONITOR
|
||||||
;
|
;
|
||||||
|
|
||||||
!addr __wedge_mon = $0A ; VERCKB
|
!addr __wedge_mon = $0A ; VERCKB
|
||||||
!addr __wedge_spstore = $09 ; TRMPOS
|
!addr __wedge_spstore = $09 ; TRMPOS
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
; Aliases for the tokeniser - reuse the CPU stack
|
; Aliases for the tokeniser - reuse the CPU stack
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
!addr VB1__helper_ask_if_sure = $4000 + 2 * 13
|
!addr VB1__helper_ask_if_sure = $4000 + 2 * 13
|
||||||
!addr VB1__helper_eggshell = $4000 + 2 * 14
|
!addr VB1__helper_eggshell = $4000 + 2 * 14
|
||||||
!addr VB1__wedge_dos = $4000 + 2 * 15
|
!addr VB1__wedge_dos = $4000 + 2 * 15
|
||||||
!addr VB1__wedge_dos_monitor = $4000 + 2 * 15
|
!addr VB1__wedge_dos_monitor = $4000 + 2 * 16
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,7 @@
|
|||||||
;; #ALIAS# do_error_fetch = BASIC_0.do_error_fetch
|
;; #ALIAS# do_error_fetch = BASIC_0.do_error_fetch
|
||||||
;; #ALIAS# do_basic_error = BASIC_0.do_basic_error
|
;; #ALIAS# do_basic_error = BASIC_0.do_basic_error
|
||||||
;; #ALIAS# str_rev_question = BASIC_0.str_rev_question
|
;; #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 = BASIC_0.proxy_B1_fetch_character
|
||||||
;; #ALIAS# fetch_character_skip_spaces = BASIC_0.proxy_B1_fetch_character_skip_spaces
|
;; #ALIAS# fetch_character_skip_spaces = BASIC_0.proxy_B1_fetch_character_skip_spaces
|
||||||
;; #ALIAS# fetch_uint8 = BASIC_0.proxy_B1_fetch_uint8
|
;; #ALIAS# fetch_uint8 = BASIC_0.proxy_B1_fetch_uint8
|
||||||
|
|||||||
@@ -138,4 +138,11 @@ proxy_B1_shell_main_loop:
|
|||||||
|
|
||||||
jsr map_NORMAL
|
jsr map_NORMAL
|
||||||
jmp shell_main_loop
|
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
|
+phx_trash_a
|
||||||
jsr tmpstr_free_all
|
jsr tmpstr_free_all
|
||||||
|
|
||||||
ldx #IDX__STR_RET_QM
|
ldx #IDX__STR_RET_QM
|
||||||
jsr print_packed_misc_str
|
jsr print_packed_misc_str
|
||||||
+plx_trash_a
|
+plx_trash_a
|
||||||
@@ -233,4 +234,21 @@ do_basic_error: ; error code in .X
|
|||||||
|
|
||||||
jmp shell_main_loop
|
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
|
} ; ROM layout
|
||||||
@@ -199,7 +199,11 @@ wedge_dos_change_drive:
|
|||||||
|
|
||||||
pla
|
pla
|
||||||
sta FA
|
sta FA
|
||||||
|
!ifdef CONFIG_MB_M65 {
|
||||||
|
jmp wedge_dos_wrapper_exit
|
||||||
|
} else {
|
||||||
jmp shell_main_loop
|
jmp shell_main_loop
|
||||||
|
}
|
||||||
|
|
||||||
wedge_dos_status_get:
|
wedge_dos_status_get:
|
||||||
|
|
||||||
@@ -447,27 +451,37 @@ wedge_dos_wrapper_exit_nocheck:
|
|||||||
wedge_dos_wrapper_SYNTAX_error:
|
wedge_dos_wrapper_SYNTAX_error:
|
||||||
|
|
||||||
bbr7 __wedge_mon, wedge_dos_SYNTAX_error
|
bbr7 __wedge_mon, wedge_dos_SYNTAX_error
|
||||||
|
ldx #$0A
|
||||||
; XXX
|
bra wedge_dos_wrapper_error_common
|
||||||
|
|
||||||
wedge_dos_wrapper_ILLEGAL_DEVICE_NUMBER_error:
|
wedge_dos_wrapper_ILLEGAL_DEVICE_NUMBER_error:
|
||||||
|
|
||||||
bbr7 __wedge_mon, wedge_dos_ILLEGAL_DEVICE_NUMBER_error
|
bbr7 __wedge_mon, wedge_dos_ILLEGAL_DEVICE_NUMBER_error
|
||||||
|
ldx #$08
|
||||||
; XXX
|
bra wedge_dos_wrapper_error_common
|
||||||
|
|
||||||
wedge_dos_wrapper_OVERFLOW_error:
|
wedge_dos_wrapper_OVERFLOW_error:
|
||||||
|
|
||||||
bbr7 __wedge_mon, wedge_dos_OVERFLOW_error
|
bbr7 __wedge_mon, wedge_dos_OVERFLOW_error
|
||||||
|
ldx #$0E
|
||||||
; XXX
|
bra wedge_dos_wrapper_error_common
|
||||||
|
|
||||||
wedge_dos_wrapper_kernal_error:
|
wedge_dos_wrapper_kernal_error:
|
||||||
|
|
||||||
bbr7 __wedge_mon, wedge_dos_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
|
bra wedge_dos_wrapper_exit_nocheck
|
||||||
|
|
||||||
wedge_dos_SYNTAX_error:
|
wedge_dos_SYNTAX_error:
|
||||||
|
|||||||
+2
-1
@@ -201,7 +201,7 @@ Jump_Table:
|
|||||||
!word Mon_Register ; R
|
!word Mon_Register ; R
|
||||||
!word Mon_Transfer ; T XXX to be debugged/adapted
|
!word Mon_Transfer ; T XXX to be debugged/adapted
|
||||||
!word Mon_Exit ; X
|
!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_Assemble ; . XXX to be debugged/adapted
|
||||||
!word Mon_Set_Memory ; > XXX to be debugged/adapted
|
!word Mon_Set_Memory ; > XXX to be debugged/adapted
|
||||||
!word Mon_Set_Register ; ; 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 wedge_dos_monitor
|
||||||
|
JSR Print_CR
|
||||||
JMP Main
|
JMP Main
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user