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:
|
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
@@ -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
|
|
||||||
|
|
||||||
|
|
||||||
@@ -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
|
||||||
|
|||||||
Reference in new issue
Block a user