bugfixes in monitor integration code

This commit is contained in:
FeralChild64 committed 2020-12-24 18:24:56 +01:00
1 parent 312abd150a
commit 5888f7987d
1 file changed
+12 -12
+12 -12
View File
@@ -448,7 +448,7 @@ Mon_Memory:
jsr Set_MODE_80 ; check if we have 80 columns jsr Set_MODE_80 ; check if we have 80 columns
jsr Get_Addr_To_LAC ; get 1st. parameter jsr Get_Addr_To_LAC ; get 1st. parameter
+bcs Mon_Error +beq Mon_Error
; XXX !!! adapt from here ; XXX !!! adapt from here
@@ -1718,7 +1718,7 @@ Get_Addr_To_LAC:
lda #$00 lda #$00
sta Dig_Cnt ; count columns read sta Dig_Cnt ; count columns read
sta Long_AC+0 ; clear result Long_AC sta Long_AC+0 ; clear result Long_AC
lda Long_AC+1 sta Long_AC+1
sta Long_AC+2 sta Long_AC+2
sta Long_AC+3 sta Long_AC+3
@@ -1757,7 +1757,7 @@ Get_Addr_To_LAC:
sbc #'0'-1 sbc #'0'-1
cmp Num_Base,Y cmp Num_Base,Y
bcs @error ; branch if digit above numerical system limit +bcs Mon_Error ; branch if digit above numerical system limit
pha ; push digit to the stack pha ; push digit to the stack
inc Dig_Cnt inc Dig_Cnt
@@ -1784,8 +1784,8 @@ Get_Addr_To_LAC:
asl Long_AC+0 asl Long_AC+0
rol Long_AC+1 rol Long_AC+1
row Long_AC+2 row Long_AC+2
bcs @error ; overflow +bcs Mon_Error ; overflow
dec dex
bne @shift bne @shift
cpy #$01 ; decimal adjustment cpy #$01 ; decimal adjustment
@@ -1815,13 +1815,14 @@ Get_Addr_To_LAC:
inw Long_AC+2 inw Long_AC+2
bne @valid_prefix bne @valid_prefix
@error: jmp Mon_Error ; number foo large
sec
bra @return
@exit: @exit:
lda Long_AC+3
and #%11110000
+bne Mon_Error ; MEGA65 has a 28-bit address bu
lda Dig_Cnt ; check if we should enable long addressing mode lda Dig_Cnt ; check if we should enable long addressing mode
cmp Num_Limit,Y cmp Num_Limit,Y
bcc @check_done bcc @check_done
@@ -1841,13 +1842,12 @@ Get_Addr_To_LAC:
@check_done: @check_done:
lda Dig_Cnt lda Dig_Cnt
clc
@return:
plz plz
ply ply
plx plx
cmp #$00 ; allow to easily check if a parameter was given
rts rts
; ****** ; ******