monitor integration - more work on memory dump

This commit is contained in:
FeralChild64 committed 2020-12-27 19:55:47 +01:00
1 parent d453c6fd1d
commit ffbd593256
4 files changed
+65 -60

No files matched your search

-60
View File
@@ -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.
+65
View File
@@ -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.