fixed assembling immediate mode
This commit is contained in:
1 parent
88f6be8a0f
commit
ecb8155976
3 files changed
+50
-80
No files matched your search
+14
-3
@@ -476,6 +476,10 @@ Dump_Row:
|
||||
Mon_Assemble:
|
||||
; ***********
|
||||
|
||||
lda #$0D
|
||||
jsr DBG_print_char
|
||||
jsr DBG_print_Buf_Index
|
||||
|
||||
LDA #$00
|
||||
STA Addr_Mode
|
||||
JSR Get_Val_To_LAC ; get 1st. parameter
|
||||
@@ -581,12 +585,14 @@ Mon_Assemble:
|
||||
|
||||
; XXX start debugging from here
|
||||
|
||||
@labc LDA #0
|
||||
@labc jsr DBG_print_Buf_Index
|
||||
LDA #0
|
||||
@labd STA Mode_Flags
|
||||
LDA #0
|
||||
STA Addr_Mode
|
||||
JSR Got_Val_To_LAC
|
||||
JSR Get_Val_To_LAC
|
||||
BEQ @labg ; no operand
|
||||
jsr DBG_print_long_ac
|
||||
LDA Addr_Mode
|
||||
LBNE Mon_Error ; -> overflow
|
||||
LDY #2 ; Y=2 word operand
|
||||
@@ -603,6 +609,7 @@ Mon_Assemble:
|
||||
@labg
|
||||
@lpnop JSR Get_Char ; get delimiter
|
||||
LBEQ @adjust ; end of operand
|
||||
jsr DBG_print_char
|
||||
CMP #' '
|
||||
BEQ @lpnop
|
||||
|
||||
@@ -841,7 +848,11 @@ Mon_Assemble:
|
||||
@store1 LDA Op_Code
|
||||
JSR Put_To_Memory_LPC
|
||||
|
||||
@print JSR PRIMM
|
||||
@print pha
|
||||
lda #$0D
|
||||
jsr DBG_print_char
|
||||
pla
|
||||
JSR PRIMM
|
||||
!pet 13,$91,"a ", KEY_ESC, 'q', 0
|
||||
JSR Print_Code
|
||||
INC Op_Size
|
||||
|
||||
+29
-74
@@ -13,8 +13,8 @@ DBG_print_Buf_Index:
|
||||
phy
|
||||
phz
|
||||
|
||||
jsr PRIMM
|
||||
!pet $0D, "buf idx : ", 0
|
||||
lda #':'
|
||||
jsr CHROUT
|
||||
|
||||
lda Buf_Index
|
||||
jsr Print_Hex
|
||||
@@ -28,6 +28,25 @@ DBG_print_Buf_Index:
|
||||
rts
|
||||
|
||||
|
||||
DBG_print_char:
|
||||
|
||||
php
|
||||
pha
|
||||
phx
|
||||
phy
|
||||
phz
|
||||
|
||||
jsr CHROUT
|
||||
|
||||
plz
|
||||
ply
|
||||
plx
|
||||
pla
|
||||
plp
|
||||
|
||||
rts
|
||||
|
||||
|
||||
DBG_print_long_ac:
|
||||
|
||||
php
|
||||
@@ -36,8 +55,14 @@ DBG_print_long_ac:
|
||||
phy
|
||||
phz
|
||||
|
||||
jsr PRIMM
|
||||
!pet $0D, "long ac : ", 0
|
||||
lda #'*'
|
||||
jsr CHROUT
|
||||
|
||||
lda Dig_Cnt
|
||||
jsr Print_Hex
|
||||
|
||||
lda #'*'
|
||||
jsr CHROUT
|
||||
|
||||
lda Long_AC+3
|
||||
jsr Print_Hex
|
||||
@@ -48,15 +73,6 @@ DBG_print_long_ac:
|
||||
lda Long_AC+0
|
||||
jsr Print_Hex
|
||||
|
||||
jsr PRIMM
|
||||
!pet " addr mode : ", 0
|
||||
|
||||
lda Addr_Mode
|
||||
jsr Print_Hex
|
||||
|
||||
jsr PRIMM
|
||||
!pet " :: ", 0
|
||||
|
||||
plz
|
||||
ply
|
||||
plx
|
||||
@@ -64,64 +80,3 @@ DBG_print_long_ac:
|
||||
plp
|
||||
|
||||
rts
|
||||
|
||||
DBG_print_hex:
|
||||
|
||||
php
|
||||
pha
|
||||
phx
|
||||
phy
|
||||
phz
|
||||
|
||||
pha
|
||||
jsr PRIMM
|
||||
!pet $0D, "hex : ", 0
|
||||
pla
|
||||
|
||||
jsr Print_Hex
|
||||
|
||||
plz
|
||||
ply
|
||||
plx
|
||||
pla
|
||||
plp
|
||||
|
||||
rts
|
||||
|
||||
DBG_print_CP1:
|
||||
|
||||
php
|
||||
pha
|
||||
phx
|
||||
phy
|
||||
phz
|
||||
|
||||
jsr PRIMM
|
||||
!pet $0D, "checkpoint 1", 0
|
||||
|
||||
jmp DBG_END
|
||||
|
||||
DBG_print_CP2:
|
||||
|
||||
php
|
||||
pha
|
||||
phx
|
||||
phy
|
||||
phz
|
||||
|
||||
jsr PRIMM
|
||||
!pet $0D, "checkpoint 2", 0
|
||||
|
||||
; FALLTROUGH
|
||||
|
||||
DBG_END:
|
||||
|
||||
plz
|
||||
ply
|
||||
plx
|
||||
pla
|
||||
plp
|
||||
|
||||
rts
|
||||
|
||||
|
||||
@@ -42,13 +42,13 @@ Get_Val_To_LAC:
|
||||
jsr Get_Char
|
||||
beq @exit ; branch if terminated
|
||||
cmp #'0'
|
||||
bcc @exit
|
||||
bcc @exit_invalid_digit
|
||||
cmp #':'
|
||||
bcc @valid_digit ; 0-9
|
||||
cmp #'A'
|
||||
bcc @exit
|
||||
bcc @exit_invalid_digit
|
||||
cmp #'G'
|
||||
bcs @exit
|
||||
bcs @exit_invalid_digit
|
||||
sbc #$07 ; hex conversion
|
||||
|
||||
@valid_digit:
|
||||
@@ -120,6 +120,10 @@ Get_Val_To_LAC:
|
||||
|
||||
jmp Mon_Error ; number too large
|
||||
|
||||
@exit_invalid_digit:
|
||||
|
||||
dec Buf_Index
|
||||
|
||||
@exit:
|
||||
|
||||
lda Long_AC+3
|
||||
|
||||
Reference in new issue
Block a user