1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2025-08-09 01:25:00 +00:00

Found broken recursive calls on 65802

This commit is contained in:
David Schmenk
2018-01-14 12:41:19 -08:00
parent 4c49fb0c0e
commit 06a04701c3
4 changed files with 33 additions and 32 deletions

View File

@@ -925,8 +925,8 @@ ICALADR JSR $FFFF
STA IPH STA IPH
PLA PLA
STA IPL STA IPL
LDY #$00 LDY #$01
JMP NEXTOP JMP FETCHOP
;* ;*
;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT ;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT
;* ;*
@@ -952,8 +952,8 @@ ENTER INY
DEY DEY
STA (IFP),Y STA (IFP),Y
BNE - BNE -
+ LDY #$02 + LDY #$03
JMP NEXTOP JMP FETCHOP
;* ;*
;* LEAVE FUNCTION ;* LEAVE FUNCTION
;* ;*

View File

@@ -1419,8 +1419,8 @@ CALL +INC_IP
BIT LCRWEN+LCBNK2 BIT LCRWEN+LCBNK2
BIT LCRWEN+LCBNK2 BIT LCRWEN+LCBNK2
} }
LDY #$00 LDY #$01
JMP NEXTOP JMP FETCHOP
; ;
CALLX +INC_IP CALLX +INC_IP
LDA (IP),Y LDA (IP),Y
@@ -1455,8 +1455,8 @@ CALLX +INC_IP
BIT LCRWEN+LCBNK2 BIT LCRWEN+LCBNK2
BIT LCRWEN+LCBNK2 BIT LCRWEN+LCBNK2
} }
LDY #$00 LDY #$01
JMP NEXTOP JMP FETCHOP
;* ;*
;* INDIRECT CALL TO ADDRESS (NATIVE CODE) ;* INDIRECT CALL TO ADDRESS (NATIVE CODE)
;* ;*
@@ -1483,8 +1483,8 @@ ICAL LDA ESTKL,X
BIT LCRWEN+LCBNK2 BIT LCRWEN+LCBNK2
BIT LCRWEN+LCBNK2 BIT LCRWEN+LCBNK2
} }
LDY #$00 LDY #$01
JMP NEXTOP JMP FETCHOP
; ;
ICALX LDA ESTKL,X ICALX LDA ESTKL,X
STA TMPL STA TMPL
@@ -1517,8 +1517,8 @@ ICALX LDA ESTKL,X
BIT LCRWEN+LCBNK2 BIT LCRWEN+LCBNK2
BIT LCRWEN+LCBNK2 BIT LCRWEN+LCBNK2
} }
LDY #$00 LDY #$01
JMP NEXTOP JMP FETCHOP
;* ;*
;* JUMP INDIRECT TRHOUGH TMP ;* JUMP INDIRECT TRHOUGH TMP
;* ;*
@@ -1551,8 +1551,8 @@ ENTER INY
DEY DEY
STA (IFP),Y STA (IFP),Y
BNE - BNE -
+ LDY #$02 + LDY #$03
JMP NEXTOP JMP FETCHOP
;* ;*
;* LEAVE FUNCTION ;* LEAVE FUNCTION
;* ;*

View File

@@ -1064,8 +1064,8 @@ CALLADR JSR $FFFF
STA IPH STA IPH
PLA PLA
STA IPL STA IPL
LDY #$00 LDY #$01
JMP NEXTOP JMP FETCHOP
;* ;*
;* INDIRECT CALL TO ADDRESS (NATIVE CODE) ;* INDIRECT CALL TO ADDRESS (NATIVE CODE)
;* ;*
@@ -1090,8 +1090,8 @@ ICALADR JSR $FFFF
STA IPH STA IPH
PLA PLA
STA IPL STA IPL
LDY #$00 LDY #$01
JMP NEXTOP JMP FETCHOP
;* ;*
;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT ;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT
;* ;*
@@ -1120,8 +1120,8 @@ ENTER INY
DEY DEY
STA (IFP),Y STA (IFP),Y
BNE - BNE -
+ LDY #$02 + LDY #$03
JMP NEXTOP JMP FETCHOP
;* ;*
;* LEAVE FUNCTION ;* LEAVE FUNCTION
;* ;*

View File

@@ -7,7 +7,7 @@
;********************************************************** ;**********************************************************
!CPU 65816 !CPU 65816
SELFMODIFY = 0 SELFMODIFY = 0
DEBUG = 0 DEBUG = 1
;* ;*
;* THE DEFAULT CPU MODE FOR EXECUTING OPCODES IS: ;* THE DEFAULT CPU MODE FOR EXECUTING OPCODES IS:
;* 16 BIT A/M ;* 16 BIT A/M
@@ -592,14 +592,14 @@ _DIV STY IPY
_DIV1 ASL ; DVDND _DIV1 ASL ; DVDND
DEY DEY
BCC _DIV1 BCC _DIV1
STA TMP ;NOS,S ; DVDND STA TMP ; NOS,S ; DVDND
LDA #$0000 ; REMNDR LDA #$0000 ; REMNDR
_DIVLP ROL ; REMNDR _DIVLP ROL ; REMNDR
CMP TOS+2,S ; DVSR CMP TOS+2,S ; DVSR
BCC + BCC +
SBC TOS+2,S ; DVSR SBC TOS+2,S ; DVSR
SEC SEC
+ ROL TMP ;NOS,S ; DVDND + ROL TMP ; NOS,S ; DVDND
DEY DEY
BNE _DIVLP BNE _DIVLP
_DIVEX LDY IPY _DIVEX LDY IPY
@@ -1379,8 +1379,8 @@ EMUSTK STA TMP
LDX LCRWEN+LCBNK2 LDX LCRWEN+LCBNK2
LDX LCRWEN+LCBNK2 LDX LCRWEN+LCBNK2
} }
LDY #$00 LDY #$01
JMP NEXTOP JMP FETCHOP
;* ;*
;* CALL INTO ABSOLUTE ADDRESS (NATIVE CODE) ;* CALL INTO ABSOLUTE ADDRESS (NATIVE CODE)
;* ;*
@@ -1497,8 +1497,8 @@ EMUSTKX STA TMP
LDX LCRWEN+LCBNK2 LDX LCRWEN+LCBNK2
LDX LCRWEN+LCBNK2 LDX LCRWEN+LCBNK2
} }
LDY #$00 LDY #$01
JMP NEXTOP JMP FETCHOP
;* ;*
;* JUMP INDIRECT THROUGH TMP ;* JUMP INDIRECT THROUGH TMP
;* ;*
@@ -1543,8 +1543,8 @@ ENTER INY
BNE - BNE -
STX ESP STX ESP
+ +ACCMEM16 ; 16 BIT A/M + +ACCMEM16 ; 16 BIT A/M
LDY #$02 LDY #$03
JMP NEXTOP JMP FETCHOP
;* ;*
;* LEAVE FUNCTION ;* LEAVE FUNCTION
;* ;*
@@ -1598,6 +1598,7 @@ LEAVE +ACCMEM8 ; 8 BIT A/M
STA IFP STA IFP
SEC ; SWITCH TO EMULATED MODE SEC ; SWITCH TO EMULATED MODE
XCE XCE
!AS
LDA PSR LDA PSR
PHA PHA
PLP PLP
@@ -1828,9 +1829,9 @@ STEP STX TMPL
TSX TSX
CMP #$10 CMP #$10
BCC DBGKEY BCC DBGKEY
; LDX TMPL LDX TMPL
; CPX #$56 ; FORCE PAUSE AT 'ICAL' CPX #$54 ; FORCE PAUSE AT 'CALL'
; BEQ DBGKEY BEQ DBGKEY
- LDX $C000 - LDX $C000
CPX #$9B CPX #$9B
BNE + BNE +