monitor command set memory adapted
This commit is contained in:
1 parent
67fedc1e7f
commit
e0549d1424
12 files changed
+59
-44
No files matched your search
+2
-29
@@ -203,7 +203,7 @@ Jump_Table:
|
||||
!word Mon_Exit ; X
|
||||
!word Mon_DOS ; @
|
||||
!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_Help ; ?
|
||||
!word Converter ; $
|
||||
@@ -439,33 +439,6 @@ Mon_Set_Register: ; XXX this needs adaptation
|
||||
BCC @loop
|
||||
@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:
|
||||
@@ -1727,7 +1700,7 @@ Converter:
|
||||
|
||||
LDX #0
|
||||
STX Buf_Index
|
||||
JSR Get_Addr_To_LAC
|
||||
JSR Get_Val_To_LAC
|
||||
LBEQ Mon_Error
|
||||
JSR Print_CR
|
||||
LDX #0
|
||||
|
||||
@@ -10,7 +10,7 @@ Mon_Bits:
|
||||
lda #$00
|
||||
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
|
||||
pla ; drop previous addressing mode
|
||||
jsr LAC_To_LPC ; Long_PC = start address
|
||||
|
||||
@@ -8,7 +8,7 @@ Mon_Compare:
|
||||
+bcs Mon_Error ; Long_CT = count
|
||||
lda #$00
|
||||
sta Addr_Mode
|
||||
jsr Get_Addr_To_LAC ; Long_AC = target
|
||||
jsr Get_Val_To_LAC ; Long_AC = target
|
||||
+beq Mon_Error
|
||||
|
||||
lda Src_Addr_Mode
|
||||
|
||||
@@ -9,11 +9,11 @@ Mon_Disassemble:
|
||||
lda #$00
|
||||
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
|
||||
pla ; drop previous addressing mode
|
||||
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
|
||||
jsr LAC_Minus_LPC ; Long_CT = range
|
||||
+bcc Mon_Error ; -> negative
|
||||
|
||||
@@ -9,7 +9,7 @@ Mon_Fill:
|
||||
jsr Get_Param_Range ; Long_PC = target
|
||||
+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
|
||||
jsr Syntax_Byte_AC ; only 1 fill byte allowed
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ Mon_Hunt:
|
||||
|
||||
@bin:
|
||||
|
||||
jsr Got_Addr_To_LAC
|
||||
jsr Got_Val_To_LAC
|
||||
jsr Syntax_Byte_AC
|
||||
|
||||
@lpbin:
|
||||
@@ -35,7 +35,7 @@ Mon_Hunt:
|
||||
lda Long_AC
|
||||
sta Mon_Data,Y
|
||||
iny
|
||||
jsr Get_Addr_To_LAC
|
||||
jsr Get_Val_To_LAC
|
||||
beq @hunt
|
||||
jsr Syntax_Byte_AC
|
||||
|
||||
|
||||
@@ -8,11 +8,11 @@ Mon_Memory:
|
||||
lda #$00
|
||||
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
|
||||
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
|
||||
|
||||
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
|
||||
; Long_CT = count
|
||||
|
||||
jsr Get_Addr_To_LAC ; Long_AC = target
|
||||
jsr Get_Val_To_LAC ; Long_AC = target
|
||||
+beq Mon_Error
|
||||
|
||||
lda Src_Addr_Mode
|
||||
|
||||
@@ -36,7 +36,7 @@ Get_Param_Range:
|
||||
|
||||
lda #$00
|
||||
sta Addr_Mode
|
||||
jsr Get_Addr_To_LAC
|
||||
jsr Get_Val_To_LAC
|
||||
beq @error
|
||||
lda Addr_Mode
|
||||
rts
|
||||
@@ -2,13 +2,13 @@
|
||||
; 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
|
||||
|
||||
; FALLTROUGH
|
||||
|
||||
Get_Addr_To_LAC:
|
||||
Get_Val_To_LAC:
|
||||
|
||||
phx
|
||||
phy
|
||||
@@ -118,13 +118,13 @@ Get_Addr_To_LAC:
|
||||
inw Long_AC+2
|
||||
bne @valid_prefix
|
||||
|
||||
jmp Mon_Error ; number foo large
|
||||
jmp Mon_Error ; number too large
|
||||
|
||||
@exit:
|
||||
|
||||
lda Long_AC+3
|
||||
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
|
||||
cmp Num_Limit,Y
|
||||
@@ -7,6 +7,8 @@ Syntax_Byte_AC: ; ensure AC contains a 1-byte value
|
||||
php
|
||||
pha
|
||||
|
||||
; XXX improve this - check for numeric system and Dig_Cnt, will require Got_Addr_To_LAC rework
|
||||
|
||||
lda Long_AC+1
|
||||
ora Long_AC+2
|
||||
ora Long_AC+3
|
||||
@@ -15,3 +17,5 @@ Syntax_Byte_AC: ; ensure AC contains a 1-byte value
|
||||
pla
|
||||
plp
|
||||
rts
|
||||
|
||||
; XXX add routine to check if this was last character
|
||||
Reference in new issue
Block a user