monitor integration - more work on memory dump
This commit is contained in:
1 parent
d453c6fd1d
commit
ffbd593256
4 files changed
+65
-60
No files matched your search
@@ -399,64 +399,6 @@ Fetch:
|
||||
AND #$ff
|
||||
RTS
|
||||
|
||||
; *********
|
||||
Mon_Memory:
|
||||
; *********
|
||||
|
||||
lda #$00
|
||||
sta Adr_Mode ; by default use C64-style addressing
|
||||
|
||||
jsr Get_Addr_To_LAC ; get 1st parameter (start address)
|
||||
+beq Mon_Error
|
||||
jsr LAC_To_LPC ; Long_PC = start address
|
||||
|
||||
jsr Get_Addr_To_LAC ; get 2nd parameter (end address)
|
||||
bne @got_end_address
|
||||
jsr LPC_Plus_Page_To_LAC ; set default end address by start plus one page
|
||||
|
||||
@got_end_address:
|
||||
|
||||
jsr LAC_Minus_LPC ; Long_CT = range
|
||||
+bcc Mon_Error ; error if negative range
|
||||
|
||||
@loop:
|
||||
|
||||
jsr Print_CR ; XXX for debug only
|
||||
lda Long_CT+3
|
||||
jsr Print_Hex
|
||||
lda Long_CT+2
|
||||
jsr Print_Hex
|
||||
lda Long_CT+1
|
||||
jsr Print_Hex
|
||||
lda Long_CT+0
|
||||
jsr Print_Hex
|
||||
|
||||
jsr Dump_Row
|
||||
|
||||
jsr Print_CR ; XXX for debug only
|
||||
lda Long_CT+3
|
||||
jsr Print_Hex
|
||||
lda Long_CT+2
|
||||
jsr Print_Hex
|
||||
lda Long_CT+1
|
||||
jsr Print_Hex
|
||||
lda Long_CT+0
|
||||
jsr Print_Hex
|
||||
jsr Print_CR
|
||||
|
||||
jsr STOP
|
||||
beq @exit
|
||||
|
||||
|
||||
; !!! loop till end reached
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@exit:
|
||||
|
||||
jmp Main
|
||||
|
||||
|
||||
; *********
|
||||
@@ -623,8 +565,6 @@ Dump_4_Chars: ; XXX to be adapted
|
||||
Dump_Row:
|
||||
; *******
|
||||
|
||||
JSR Set_MODE_80
|
||||
|
||||
PHZ
|
||||
JSR Print_CR
|
||||
LDA #'>'
|
||||
|
||||
File renamed without changes.
@@ -0,0 +1,65 @@
|
||||
|
||||
Mon_Memory:
|
||||
|
||||
jsr Set_MODE_80
|
||||
lda #$00
|
||||
sta Adr_Mode ; by default use C64-style addressing
|
||||
|
||||
jsr Get_Addr_To_LAC ; get 1st parameter (start address)
|
||||
+beq Mon_Error
|
||||
jsr LAC_To_LPC ; Long_PC = start address
|
||||
|
||||
jsr Get_Addr_To_LAC ; get 2nd parameter (end address)
|
||||
bne @calcdiff
|
||||
|
||||
lda #$10 ; by default display 16 rows
|
||||
sta Long_CT+0
|
||||
lda #$00
|
||||
sta Long_CT+1
|
||||
sta Long_CT+2
|
||||
sta Long_CT+3
|
||||
|
||||
bra @loop
|
||||
|
||||
@calcdiff:
|
||||
jsr LAC_Minus_LPC ; Long_CT = range
|
||||
+bcc Mon_Error ; error if negative range
|
||||
|
||||
ldx #$04 ; for 80 character mode - 16 (2^4) bytes/line
|
||||
bbr7 MODE_80,@shift
|
||||
dex ; for 40 character mode - 8 (2^3) bytes/line
|
||||
|
||||
@shift:
|
||||
clc
|
||||
ror Long_CT+3
|
||||
ror Long_CT+2
|
||||
ror Long_CT+1
|
||||
ror Long_CT+0
|
||||
|
||||
dex
|
||||
bne @shift ; at the ned of loop Long_CT contains number of rows to show minus 1
|
||||
|
||||
@loop:
|
||||
|
||||
jsr Dump_Row
|
||||
jsr STOP
|
||||
beq @exit ; end if STOP pressed
|
||||
|
||||
sec ; XXX consider moving this to separate subroutine
|
||||
lda Long_CT+0
|
||||
sbc #$01
|
||||
sta Long_CT+0
|
||||
lda Long_CT+1
|
||||
sbc #$00
|
||||
sta Long_CT+1
|
||||
lda Long_CT+2
|
||||
sbc #$00
|
||||
sta Long_CT+2
|
||||
lda Long_CT+3
|
||||
sbc #$00
|
||||
sta Long_CT+3
|
||||
bcs @loop
|
||||
|
||||
@exit:
|
||||
|
||||
jmp Main
|
||||
File renamed without changes.
Reference in new issue
Block a user