From ecb815597640659775a17c299a0ada0fd37ed2f2 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Sat, 23 Jan 2021 19:43:39 +0100 Subject: [PATCH] fixed assembling immediate mode --- src/mon_m65/bsmon.s | 17 +++- src/mon_m65/mon_debug.s | 103 +++++++----------------- src/mon_m65/mon_helper_get_val_to_lac.s | 10 ++- 3 files changed, 50 insertions(+), 80 deletions(-) diff --git a/src/mon_m65/bsmon.s b/src/mon_m65/bsmon.s index e5a23d4b..14ae4cda 100644 --- a/src/mon_m65/bsmon.s +++ b/src/mon_m65/bsmon.s @@ -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 diff --git a/src/mon_m65/mon_debug.s b/src/mon_m65/mon_debug.s index 4aacc2b4..0809ea88 100644 --- a/src/mon_m65/mon_debug.s +++ b/src/mon_m65/mon_debug.s @@ -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 - - diff --git a/src/mon_m65/mon_helper_get_val_to_lac.s b/src/mon_m65/mon_helper_get_val_to_lac.s index 259d8de5..52b721a5 100644 --- a/src/mon_m65/mon_helper_get_val_to_lac.s +++ b/src/mon_m65/mon_helper_get_val_to_lac.s @@ -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