monitor command set memory adapted

This commit is contained in:
FeralChild64 committed 2021-01-17 10:28:19 +01:00
1 parent d47b0cf841
commit 96bdf93b76
12 files changed
+59 -44

No files matched your search

+2 -29
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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
+2 -2
View File
@@ -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
+38
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+4
View File
@@ -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