monitor command set memory adapted
This commit is contained in:
1 parent
d47b0cf841
commit
96bdf93b76
12 files changed
+59
-44
No files matched your search
+2
-29
@@ -203,7 +203,7 @@ Jump_Table:
|
|||||||
!word Mon_Exit ; X
|
!word Mon_Exit ; X
|
||||||
!word Mon_DOS ; @
|
!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 ; >
|
||||||
!word Mon_Set_Register ; ; XXX to be debugged/adapted
|
!word Mon_Set_Register ; ; XXX to be debugged/adapted
|
||||||
!word Mon_Help ; ?
|
!word Mon_Help ; ?
|
||||||
!word Converter ; $
|
!word Converter ; $
|
||||||
@@ -439,33 +439,6 @@ Mon_Set_Register: ; XXX this needs adaptation
|
|||||||
BCC @loop
|
BCC @loop
|
||||||
@exit JMP Main
|
@exit JMP Main
|
||||||
|
|
||||||
; *************
|
|
||||||
Mon_Set_Memory:
|
|
||||||
; *************
|
|
||||||
|
|
||||||
JSR Set_MODE_80
|
|
||||||
|
|
||||||
JSR Get_LAC ; get 1st. parameter
|
|
||||||
BCS @exit
|
|
||||||
JSR LAC_To_LPC ; Long_PC = row address
|
|
||||||
LDZ #0
|
|
||||||
@loop JSR Get_LAC
|
|
||||||
BCS @exit
|
|
||||||
LDA Long_AC
|
|
||||||
BBS7 Long_PC+3,@banked ; trigger banked access
|
|
||||||
+NOP ; use STA [Long_PC],Z
|
|
||||||
@banked STA (Long_PC),Z
|
|
||||||
INZ
|
|
||||||
CPZ #16
|
|
||||||
BBR7 MODE_80,@next
|
|
||||||
CPZ #8
|
|
||||||
@next BCC @loop
|
|
||||||
|
|
||||||
@exit JSR PRIMM
|
|
||||||
!pet KEY_ESC, 'o'
|
|
||||||
!pet $91,$00
|
|
||||||
JSR Dump_Row
|
|
||||||
JMP Main
|
|
||||||
|
|
||||||
; *****
|
; *****
|
||||||
Mon_Go:
|
Mon_Go:
|
||||||
@@ -1727,7 +1700,7 @@ Converter:
|
|||||||
|
|
||||||
LDX #0
|
LDX #0
|
||||||
STX Buf_Index
|
STX Buf_Index
|
||||||
JSR Get_Addr_To_LAC
|
JSR Get_Val_To_LAC
|
||||||
LBEQ Mon_Error
|
LBEQ Mon_Error
|
||||||
JSR Print_CR
|
JSR Print_CR
|
||||||
LDX #0
|
LDX #0
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ Mon_Bits:
|
|||||||
lda #$00
|
lda #$00
|
||||||
sta Addr_Mode ; by default use C64-style addressing
|
sta Addr_Mode ; by default use C64-style addressing
|
||||||
|
|
||||||
jsr Get_Addr_To_LAC ; get 1st parameter (start address)
|
jsr Get_Val_To_LAC ; get 1st parameter (start address)
|
||||||
beq @nopar
|
beq @nopar
|
||||||
pla ; drop previous addressing mode
|
pla ; drop previous addressing mode
|
||||||
jsr LAC_To_LPC ; Long_PC = start address
|
jsr LAC_To_LPC ; Long_PC = start address
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Mon_Compare:
|
|||||||
+bcs Mon_Error ; Long_CT = count
|
+bcs Mon_Error ; Long_CT = count
|
||||||
lda #$00
|
lda #$00
|
||||||
sta Addr_Mode
|
sta Addr_Mode
|
||||||
jsr Get_Addr_To_LAC ; Long_AC = target
|
jsr Get_Val_To_LAC ; Long_AC = target
|
||||||
+beq Mon_Error
|
+beq Mon_Error
|
||||||
|
|
||||||
lda Src_Addr_Mode
|
lda Src_Addr_Mode
|
||||||
|
|||||||
@@ -9,11 +9,11 @@ Mon_Disassemble:
|
|||||||
lda #$00
|
lda #$00
|
||||||
sta Addr_Mode ; by default use C64-style addressing
|
sta Addr_Mode ; by default use C64-style addressing
|
||||||
|
|
||||||
jsr Get_Addr_To_LAC ; get 1st parameter (start address)
|
jsr Get_Val_To_LAC ; get 1st parameter (start address)
|
||||||
beq @nopar
|
beq @nopar
|
||||||
pla ; drop previous addressing mode
|
pla ; drop previous addressing mode
|
||||||
jsr LAC_To_LPC ; Long_PC = start address
|
jsr LAC_To_LPC ; Long_PC = start address
|
||||||
jsr Get_Addr_To_LAC ; get 2nd parameter (end address)
|
jsr Get_Val_To_LAC ; get 2nd parameter (end address)
|
||||||
beq @norange
|
beq @norange
|
||||||
jsr LAC_Minus_LPC ; Long_CT = range
|
jsr LAC_Minus_LPC ; Long_CT = range
|
||||||
+bcc Mon_Error ; -> negative
|
+bcc Mon_Error ; -> negative
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ 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
|
||||||
|
|
||||||
jsr Get_Addr_To_LAC ; Long_AC = fill byte
|
jsr Get_Val_To_LAC ; Long_AC = fill byte
|
||||||
+beq Mon_Error
|
+beq Mon_Error
|
||||||
jsr Syntax_Byte_AC ; only 1 fill byte allowed
|
jsr Syntax_Byte_AC ; only 1 fill byte allowed
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ Mon_Hunt:
|
|||||||
|
|
||||||
@bin:
|
@bin:
|
||||||
|
|
||||||
jsr Got_Addr_To_LAC
|
jsr Got_Val_To_LAC
|
||||||
jsr Syntax_Byte_AC
|
jsr Syntax_Byte_AC
|
||||||
|
|
||||||
@lpbin:
|
@lpbin:
|
||||||
@@ -35,7 +35,7 @@ Mon_Hunt:
|
|||||||
lda Long_AC
|
lda Long_AC
|
||||||
sta Mon_Data,Y
|
sta Mon_Data,Y
|
||||||
iny
|
iny
|
||||||
jsr Get_Addr_To_LAC
|
jsr Get_Val_To_LAC
|
||||||
beq @hunt
|
beq @hunt
|
||||||
jsr Syntax_Byte_AC
|
jsr Syntax_Byte_AC
|
||||||
|
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ Mon_Memory:
|
|||||||
lda #$00
|
lda #$00
|
||||||
sta Addr_Mode ; by default use C64-style addressing
|
sta Addr_Mode ; by default use C64-style addressing
|
||||||
|
|
||||||
jsr Get_Addr_To_LAC ; get 1st parameter (start address)
|
jsr Get_Val_To_LAC ; get 1st parameter (start address)
|
||||||
+beq Mon_Error
|
+beq Mon_Error
|
||||||
jsr LAC_To_LPC ; Long_PC = start address
|
jsr LAC_To_LPC ; Long_PC = start address
|
||||||
|
|
||||||
jsr Get_Addr_To_LAC ; get 2nd parameter (end address)
|
jsr Get_Val_To_LAC ; get 2nd parameter (end address)
|
||||||
bne @calcdiff
|
bne @calcdiff
|
||||||
|
|
||||||
lda #$10 ; by default display 16 rows
|
lda #$10 ; by default display 16 rows
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
; Based on BSM (Bit Shifter's Monitor)
|
||||||
|
|
||||||
|
|
||||||
|
Mon_Set_Memory:
|
||||||
|
|
||||||
|
jsr Get_Val_To_LAC ; get 1st. parameter
|
||||||
|
beq @exit
|
||||||
|
jsr LAC_To_LPC ; Long_PC = row address
|
||||||
|
lda Addr_Mode
|
||||||
|
sta Dst_Addr_Mode
|
||||||
|
|
||||||
|
ldz #$00
|
||||||
|
|
||||||
|
@loop:
|
||||||
|
|
||||||
|
jsr Get_Glyph
|
||||||
|
cmp #KEY_COLON
|
||||||
|
beq @exit
|
||||||
|
jsr Got_Val_To_LAC
|
||||||
|
beq @exit
|
||||||
|
jsr Syntax_Byte_AC
|
||||||
|
|
||||||
|
lda Dst_Addr_Mode
|
||||||
|
sta Addr_Mode
|
||||||
|
|
||||||
|
lda Long_AC+0
|
||||||
|
jsr Put_To_Memory_LPC
|
||||||
|
|
||||||
|
inz
|
||||||
|
bra @loop
|
||||||
|
|
||||||
|
@exit:
|
||||||
|
|
||||||
|
jsr PRIMM
|
||||||
|
!pet KEY_ESC, 'o', $91, $00
|
||||||
|
jsr Dump_Row
|
||||||
|
jmp Main
|
||||||
@@ -7,7 +7,7 @@ Mon_Transfer:
|
|||||||
jsr Get_Param_Range ; Long_PC = source
|
jsr Get_Param_Range ; Long_PC = source
|
||||||
; Long_CT = count
|
; Long_CT = count
|
||||||
|
|
||||||
jsr Get_Addr_To_LAC ; Long_AC = target
|
jsr Get_Val_To_LAC ; Long_AC = target
|
||||||
+beq Mon_Error
|
+beq Mon_Error
|
||||||
|
|
||||||
lda Src_Addr_Mode
|
lda Src_Addr_Mode
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ Get_Param_Range:
|
|||||||
|
|
||||||
lda #$00
|
lda #$00
|
||||||
sta Addr_Mode
|
sta Addr_Mode
|
||||||
jsr Get_Addr_To_LAC
|
jsr Get_Val_To_LAC
|
||||||
beq @error
|
beq @error
|
||||||
lda Addr_Mode
|
lda Addr_Mode
|
||||||
rts
|
rts
|
||||||
@@ -2,13 +2,13 @@
|
|||||||
; Based on BSM (Bit Shifter's Monitor)
|
; Based on BSM (Bit Shifter's Monitor)
|
||||||
|
|
||||||
|
|
||||||
Got_Addr_To_LAC: ; to be used when first byte already fetched
|
Got_Val_To_LAC: ; to be used when first byte already fetched
|
||||||
|
|
||||||
dec Buf_Index
|
dec Buf_Index
|
||||||
|
|
||||||
; FALLTROUGH
|
; FALLTROUGH
|
||||||
|
|
||||||
Get_Addr_To_LAC:
|
Get_Val_To_LAC:
|
||||||
|
|
||||||
phx
|
phx
|
||||||
phy
|
phy
|
||||||
@@ -118,13 +118,13 @@ Get_Addr_To_LAC:
|
|||||||
inw Long_AC+2
|
inw Long_AC+2
|
||||||
bne @valid_prefix
|
bne @valid_prefix
|
||||||
|
|
||||||
jmp Mon_Error ; number foo large
|
jmp Mon_Error ; number too large
|
||||||
|
|
||||||
@exit:
|
@exit:
|
||||||
|
|
||||||
lda Long_AC+3
|
lda Long_AC+3
|
||||||
and #%11110000
|
and #%11110000
|
||||||
+bne Mon_Error ; MEGA65 has a 28-bit address bu
|
+bne Mon_Error ; MEGA65 has a 28-bit address bus
|
||||||
|
|
||||||
lda Dig_Cnt ; check if we should enable long addressing mode
|
lda Dig_Cnt ; check if we should enable long addressing mode
|
||||||
cmp Num_Limit,Y
|
cmp Num_Limit,Y
|
||||||
@@ -7,6 +7,8 @@ Syntax_Byte_AC: ; ensure AC contains a 1-byte value
|
|||||||
php
|
php
|
||||||
pha
|
pha
|
||||||
|
|
||||||
|
; XXX improve this - check for numeric system and Dig_Cnt, will require Got_Addr_To_LAC rework
|
||||||
|
|
||||||
lda Long_AC+1
|
lda Long_AC+1
|
||||||
ora Long_AC+2
|
ora Long_AC+2
|
||||||
ora Long_AC+3
|
ora Long_AC+3
|
||||||
@@ -15,3 +17,5 @@ Syntax_Byte_AC: ; ensure AC contains a 1-byte value
|
|||||||
pla
|
pla
|
||||||
plp
|
plp
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
; XXX add routine to check if this was last character
|
||||||
Reference in new issue
Block a user