started work on monitor GO/JSR commands
This commit is contained in:
1 parent
9a35781773
commit
aa6eaaf876
5 files changed
+113
-19
No files matched your search
@@ -19,6 +19,7 @@ proxy_M1_CHROUT:
|
|||||||
|
|
||||||
; FALLTROUGH
|
; FALLTROUGH
|
||||||
|
|
||||||
|
proxy_M1_jmpout_ret: ; reused by monitor
|
||||||
proxy_M1_end:
|
proxy_M1_end:
|
||||||
|
|
||||||
jmp map_MON_1
|
jmp map_MON_1
|
||||||
@@ -40,3 +41,18 @@ proxy_M1_memwrite:
|
|||||||
jsr map_NORMAL
|
jsr map_NORMAL
|
||||||
sta [Long__TMP], z
|
sta [Long__TMP], z
|
||||||
bra proxy_M1_end
|
bra proxy_M1_end
|
||||||
|
|
||||||
|
|
||||||
|
; JMP/JSR to user code
|
||||||
|
|
||||||
|
proxy_M1_jmpout:
|
||||||
|
|
||||||
|
plz ; ZR
|
||||||
|
ply ; YR
|
||||||
|
plx ; XR
|
||||||
|
pla ; BP
|
||||||
|
tab
|
||||||
|
pla ; AC
|
||||||
|
plp ; SR
|
||||||
|
|
||||||
|
jmp map_NORMAL
|
||||||
+2
-17
@@ -197,9 +197,9 @@ Jump_Table:
|
|||||||
!word Mon_Compare ; C
|
!word Mon_Compare ; C
|
||||||
!word Mon_Disassemble ; D
|
!word Mon_Disassemble ; D
|
||||||
!word Mon_Fill ; F
|
!word Mon_Fill ; F
|
||||||
!word Mon_Go ; G XXX to be debugged/adapted
|
!word Mon_Go ; G XXX to be finished/bugfixed
|
||||||
!word Mon_Hunt ; H
|
!word Mon_Hunt ; H
|
||||||
!word Mon_JSR ; J XXX to be debugged/adapted
|
!word Mon_JSR ; J XXX to be finished/bugfixed
|
||||||
!word Mon_Memory ; M
|
!word Mon_Memory ; M
|
||||||
!word Mon_Register ; R
|
!word Mon_Register ; R
|
||||||
!word Mon_Transfer ; T
|
!word Mon_Transfer ; T
|
||||||
@@ -400,21 +400,6 @@ Print_Bits:
|
|||||||
PLZ
|
PLZ
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|
||||||
; *****
|
|
||||||
Mon_Go:
|
|
||||||
; *****
|
|
||||||
|
|
||||||
; XXX to be rewritten for Open ROMs!
|
|
||||||
jmp Main
|
|
||||||
|
|
||||||
; ******
|
|
||||||
Mon_JSR:
|
|
||||||
; ******
|
|
||||||
|
|
||||||
; XXX to be rewritten for Open ROMs!
|
|
||||||
jmp Main
|
|
||||||
|
|
||||||
; ***********
|
; ***********
|
||||||
Dump_4_Bytes:
|
Dump_4_Bytes:
|
||||||
; ***********
|
; ***********
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
;; #ALIAS# monitor_exit = KERNAL_0.m65_shadow_BZP
|
;; #ALIAS# monitor_exit = KERNAL_0.m65_shadow_BZP
|
||||||
;; #ALIAS# monitor_memread_helper = KERNAL_0.proxy_M1_memread
|
;; #ALIAS# monitor_memread_helper = KERNAL_0.proxy_M1_memread
|
||||||
;; #ALIAS# monitor_memwrite_helper = KERNAL_0.proxy_M1_memwrite
|
;; #ALIAS# monitor_memwrite_helper = KERNAL_0.proxy_M1_memwrite
|
||||||
|
;; #ALIAS# monitor_jmpout = KERNAL_0.proxy_M1_jmpout
|
||||||
|
;; #ALIAS# monitor_jmpout_ret = KERNAL_0.proxy_M1_jmpout_ret
|
||||||
|
|
||||||
;; #ALIAS# CHRIN = KERNAL_0.proxy_M1_CHRIN
|
;; #ALIAS# CHRIN = KERNAL_0.proxy_M1_CHRIN
|
||||||
;; #ALIAS# CHROUT = KERNAL_0.proxy_M1_CHROUT
|
;; #ALIAS# CHROUT = KERNAL_0.proxy_M1_CHROUT
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
; Based on BSM (Bit Shifter's Monitor)
|
; Based on BSM (Bit Shifter's Monitor)
|
||||||
|
|
||||||
|
|
||||||
; *******
|
|
||||||
Mon_Fill:
|
Mon_Fill:
|
||||||
; *******
|
|
||||||
|
|
||||||
jsr Get_Param_Range ; Long_PC = target
|
jsr Get_Param_Range ; Long_PC = target
|
||||||
+bcs Mon_Error ; Long_CT = count
|
+bcs Mon_Error ; Long_CT = count
|
||||||
|
|||||||
@@ -0,0 +1,93 @@
|
|||||||
|
|
||||||
|
; Based on BSM (Bit Shifter's Monitor)
|
||||||
|
|
||||||
|
|
||||||
|
Mon_JSR:
|
||||||
|
|
||||||
|
|
||||||
|
lda #$00
|
||||||
|
sta Addr_Mode
|
||||||
|
|
||||||
|
jsr Get_Val_To_LAC ; Long_AC = jump address
|
||||||
|
+beq Mon_Error
|
||||||
|
|
||||||
|
; Push return addresses
|
||||||
|
|
||||||
|
lda #>(Mon_JSR_ret-1) ; XXX return routine should JSR, to store address
|
||||||
|
pha
|
||||||
|
lda #<(Mon_JSR_ret-1)
|
||||||
|
pha
|
||||||
|
|
||||||
|
lda #>(monitor_jmpout_ret-1)
|
||||||
|
pha
|
||||||
|
lda #<(monitor_jmpout_ret-1)
|
||||||
|
pha
|
||||||
|
|
||||||
|
bra Mon_Go_JSR_comon
|
||||||
|
|
||||||
|
Mon_Go:
|
||||||
|
|
||||||
|
lda #$00
|
||||||
|
sta Addr_Mode
|
||||||
|
|
||||||
|
jsr Get_Val_To_LAC ; Long_AC = jump address
|
||||||
|
+bne Mon_Go_JSR_comon
|
||||||
|
|
||||||
|
lda PCL ; use PC as jump address
|
||||||
|
sta Long_AC+0
|
||||||
|
lda PCH
|
||||||
|
sta Long_AC+0
|
||||||
|
|
||||||
|
; FALLTROUGH
|
||||||
|
|
||||||
|
Mon_Go_JSR_comon:
|
||||||
|
|
||||||
|
lda Addr_Mode ; only first 64KB is supported as target
|
||||||
|
+bne Mon_Error
|
||||||
|
|
||||||
|
lda PCH ; push target address for RTS
|
||||||
|
sta Long_TMP+1
|
||||||
|
lda PCL
|
||||||
|
sta Long_TMP+0
|
||||||
|
dew Long_TMP+0
|
||||||
|
|
||||||
|
lda Long_TMP+1
|
||||||
|
pha
|
||||||
|
lda Long_TMP+0
|
||||||
|
pha
|
||||||
|
|
||||||
|
; Prepare registers
|
||||||
|
|
||||||
|
lda SR
|
||||||
|
pha
|
||||||
|
lda AC
|
||||||
|
pha
|
||||||
|
lda BP
|
||||||
|
pha
|
||||||
|
lda XR
|
||||||
|
pha
|
||||||
|
lda YR
|
||||||
|
pha
|
||||||
|
lda ZR
|
||||||
|
pha
|
||||||
|
|
||||||
|
jmp monitor_jmpout
|
||||||
|
|
||||||
|
Mon_JSR_ret:
|
||||||
|
|
||||||
|
; Retrieve registers
|
||||||
|
; XXX address!
|
||||||
|
|
||||||
|
pha
|
||||||
|
php
|
||||||
|
pla
|
||||||
|
sta SR
|
||||||
|
pla
|
||||||
|
sta AC
|
||||||
|
tba
|
||||||
|
sta BP
|
||||||
|
stx XR
|
||||||
|
sty YR
|
||||||
|
stz ZR
|
||||||
|
|
||||||
|
jmp Mon_Register
|
||||||
Reference in new issue
Block a user