fixed assembling immediate mode

This commit is contained in:
FeralChild64 committed 2021-01-23 19:43:39 +01:00
1 parent 88f6be8a0f
commit ecb8155976
3 files changed
+50 -80

No files matched your search

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