mirror of
https://github.com/dschmenk/PLASMA.git
synced 2025-02-10 10:30:58 +00:00
Weird accum size switching bug
This commit is contained in:
parent
4c168fe377
commit
02129d49b9
@ -75,13 +75,38 @@ NOS = $03 ; TOS-1
|
|||||||
;*
|
;*
|
||||||
!MACRO INC_IP {
|
!MACRO INC_IP {
|
||||||
INY
|
INY
|
||||||
BNE * + 8
|
BNE +
|
||||||
SEP #$20 ; SET 8 BIT MODE
|
LDX IPH
|
||||||
!AS
|
INX
|
||||||
INC IPH
|
STX IPH
|
||||||
!AL
|
+
|
||||||
REP #$20 ; SET 16 BIT MODE
|
|
||||||
}
|
}
|
||||||
|
;*
|
||||||
|
;* ACCUM/MEM SIZE MACROS
|
||||||
|
;*
|
||||||
|
!MACRO ACCMEM8 {
|
||||||
|
SEP #$20 ; 8 BIT A/M
|
||||||
|
!AS
|
||||||
|
}
|
||||||
|
!MACRO ACCMEM16 {
|
||||||
|
REP #$20 ; 16 BIT A/M
|
||||||
|
!AL
|
||||||
|
}
|
||||||
|
;*
|
||||||
|
;* SIZE SWITCHING HACK
|
||||||
|
;*
|
||||||
|
!IF DEBUG {
|
||||||
|
!MACRO HACK816 {
|
||||||
|
}
|
||||||
|
} ELSE {
|
||||||
|
!MACRO HACK816 {
|
||||||
|
SEP #$20 ; 8 BIT A/M
|
||||||
|
!AS
|
||||||
|
BIT TMPH
|
||||||
|
REP #$20 ; 16 BIT A/M
|
||||||
|
!AL
|
||||||
|
}
|
||||||
|
}
|
||||||
;******************************
|
;******************************
|
||||||
;* *
|
;* *
|
||||||
;* INTERPRETER INITIALIZATION *
|
;* INTERPRETER INITIALIZATION *
|
||||||
@ -219,13 +244,12 @@ DINTRP PHP
|
|||||||
SEI
|
SEI
|
||||||
CLC ; SWITCH TO NATIVE MODE
|
CLC ; SWITCH TO NATIVE MODE
|
||||||
XCE
|
XCE
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
+HACK816
|
||||||
PLA
|
PLA
|
||||||
INC
|
INC
|
||||||
STA IP
|
STA IP
|
||||||
LDA IFP
|
PEI (IFP) ; SAVE ON STACK FOR LEAVE/RET
|
||||||
PHA ; SAVE ON STACK FOR LEAVE/RET
|
|
||||||
LDA PP ; SET FP TO PP
|
LDA PP ; SET FP TO PP
|
||||||
STA IFP
|
STA IFP
|
||||||
STX ESP
|
STX ESP
|
||||||
@ -246,8 +270,8 @@ IINTRP PHP
|
|||||||
SEI
|
SEI
|
||||||
CLC ; SWITCH TO NATIVE MODE
|
CLC ; SWITCH TO NATIVE MODE
|
||||||
XCE
|
XCE
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
+HACK816
|
||||||
LDY #$01
|
LDY #$01
|
||||||
LDA (TOS,S),Y
|
LDA (TOS,S),Y
|
||||||
DEY
|
DEY
|
||||||
@ -273,8 +297,8 @@ IINTRPX PHP
|
|||||||
SEI
|
SEI
|
||||||
CLC ; SWITCH TO NATIVE MODE
|
CLC ; SWITCH TO NATIVE MODE
|
||||||
XCE
|
XCE
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
+HACK816
|
||||||
LDY #$01
|
LDY #$01
|
||||||
LDA (TOS,S),Y
|
LDA (TOS,S),Y
|
||||||
DEY
|
DEY
|
||||||
@ -292,6 +316,7 @@ IINTRPX PHP
|
|||||||
SETDBG LDY LCRWEN+LCBNK2
|
SETDBG LDY LCRWEN+LCBNK2
|
||||||
LDY LCRWEN+LCBNK2
|
LDY LCRWEN+LCBNK2
|
||||||
STX DBG_OP+2
|
STX DBG_OP+2
|
||||||
|
LDY LCRDEN+LCBNK2
|
||||||
LDX #>DBGTBL
|
LDX #>DBGTBL
|
||||||
LDY #$00
|
LDY #$00
|
||||||
}
|
}
|
||||||
@ -770,8 +795,7 @@ CSX +INC_IP
|
|||||||
_CMPPSX STA TMP
|
_CMPPSX STA TMP
|
||||||
CMP IFP ; CHECK FOR END OF POOL
|
CMP IFP ; CHECK FOR END OF POOL
|
||||||
BCS _CPYSX ; AT OR BEYOND END OF POOL, COPY STRING OVER
|
BCS _CPYSX ; AT OR BEYOND END OF POOL, COPY STRING OVER
|
||||||
_CMPSX SEP #$20 ; 8 BIT A/M
|
_CMPSX +ACCMEM8 ; 8 BIT A/M
|
||||||
!AS
|
|
||||||
STX ALTRDOFF ; CHECK FOR MATCHING STRING
|
STX ALTRDOFF ; CHECK FOR MATCHING STRING
|
||||||
LDA (TMP) ; COMPARE STRINGS FROM AUX MEM TO STRINGS IN MAIN MEM
|
LDA (TMP) ; COMPARE STRINGS FROM AUX MEM TO STRINGS IN MAIN MEM
|
||||||
STX ALTRDON
|
STX ALTRDON
|
||||||
@ -793,8 +817,7 @@ _CMPSX SEP #$20 ; 8 BIT A/M
|
|||||||
_CNXTSX STX ALTRDOFF
|
_CNXTSX STX ALTRDOFF
|
||||||
LDA (TMP)
|
LDA (TMP)
|
||||||
STX ALTRDON
|
STX ALTRDON
|
||||||
_CNXTSX1 REP #$20 ; 16 BIT A/M
|
_CNXTSX1 +ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
|
||||||
AND #$00FF
|
AND #$00FF
|
||||||
SEC ; SKIP OVER STRING+LEN BYTE
|
SEC ; SKIP OVER STRING+LEN BYTE
|
||||||
ADC TMP
|
ADC TMP
|
||||||
@ -807,8 +830,7 @@ _CPYSX LDA (IP) ; COPY STRING FROM AUX TO MAIN MEM POOL
|
|||||||
ADC PP
|
ADC PP
|
||||||
STA PP
|
STA PP
|
||||||
PHA ; SAVE ADDRESS ON ESTK
|
PHA ; SAVE ADDRESS ON ESTK
|
||||||
SEP #$20 ; 8 BIT A/M
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
!AS
|
|
||||||
- LDA (IP),Y ; ALTRD IS ON, NO NEED TO CHANGE IT HERE
|
- LDA (IP),Y ; ALTRD IS ON, NO NEED TO CHANGE IT HERE
|
||||||
STA (PP),Y ; ALTWR IS OFF, NO NEED TO CHANGE IT HERE
|
STA (PP),Y ; ALTWR IS OFF, NO NEED TO CHANGE IT HERE
|
||||||
DEY
|
DEY
|
||||||
@ -816,20 +838,17 @@ _CPYSX LDA (IP) ; COPY STRING FROM AUX TO MAIN MEM POOL
|
|||||||
BNE -
|
BNE -
|
||||||
_CEXSX LDA (IP) ; SKIP TO NEXT OP ADDR AFTER STRING
|
_CEXSX LDA (IP) ; SKIP TO NEXT OP ADDR AFTER STRING
|
||||||
TAY
|
TAY
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
;*
|
;*
|
||||||
;* LOAD VALUE FROM ADDRESS TAG
|
;* LOAD VALUE FROM ADDRESS TAG
|
||||||
;*
|
;*
|
||||||
LB TYX
|
LB TYX
|
||||||
LDY #$00
|
LDY #$00
|
||||||
SEP #$20 ; 8 BIT A/M
|
TYA ; QUICKY CLEAR OUT MSB
|
||||||
!AS
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
LDA (TOS,S),Y
|
LDA (TOS,S),Y
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
|
||||||
AND #$00FF
|
|
||||||
STA TOS,S
|
STA TOS,S
|
||||||
TXY
|
TXY
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
@ -842,14 +861,12 @@ LW TYX
|
|||||||
;
|
;
|
||||||
LBX TYX
|
LBX TYX
|
||||||
LDY #$00
|
LDY #$00
|
||||||
|
TYA ; QUICKY CLEAR OUT MSB
|
||||||
STX ALTRDOFF
|
STX ALTRDOFF
|
||||||
SEP #$20 ; 8 BIT A/M
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
!AS
|
|
||||||
LDA (TOS,S),Y
|
LDA (TOS,S),Y
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
|
||||||
STX ALTRDON
|
STX ALTRDON
|
||||||
AND #$00FF
|
|
||||||
STA TOS,S
|
STA TOS,S
|
||||||
TXY
|
TXY
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
@ -875,8 +892,8 @@ LLA +INC_IP
|
|||||||
;* LOAD VALUE FROM LOCAL FRAME OFFSET
|
;* LOAD VALUE FROM LOCAL FRAME OFFSET
|
||||||
;*
|
;*
|
||||||
LLB +INC_IP
|
LLB +INC_IP
|
||||||
LDA (IP),Y
|
|
||||||
TYX
|
TYX
|
||||||
|
LDA (IP),Y
|
||||||
TAY
|
TAY
|
||||||
LDA (IFP),Y
|
LDA (IFP),Y
|
||||||
AND #$00FF
|
AND #$00FF
|
||||||
@ -884,8 +901,8 @@ LLB +INC_IP
|
|||||||
TXY
|
TXY
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
LLW +INC_IP
|
LLW +INC_IP
|
||||||
LDA (IP),Y
|
|
||||||
TYX
|
TYX
|
||||||
|
LDA (IP),Y
|
||||||
TAY
|
TAY
|
||||||
LDA (IFP),Y
|
LDA (IFP),Y
|
||||||
PHA
|
PHA
|
||||||
@ -893,8 +910,8 @@ LLW +INC_IP
|
|||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
;
|
;
|
||||||
LLBX +INC_IP
|
LLBX +INC_IP
|
||||||
LDA (IP),Y
|
|
||||||
TYX
|
TYX
|
||||||
|
LDA (IP),Y
|
||||||
TAY
|
TAY
|
||||||
STX ALTRDOFF
|
STX ALTRDOFF
|
||||||
LDA (IFP),Y
|
LDA (IFP),Y
|
||||||
@ -904,8 +921,8 @@ LLBX +INC_IP
|
|||||||
TXY
|
TXY
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
LLWX +INC_IP
|
LLWX +INC_IP
|
||||||
LDA (IP),Y
|
|
||||||
TYX
|
TYX
|
||||||
|
LDA (IP),Y
|
||||||
TAY
|
TAY
|
||||||
STX ALTRDOFF
|
STX ALTRDOFF
|
||||||
LDA (IFP),Y
|
LDA (IFP),Y
|
||||||
@ -920,12 +937,10 @@ LAB +INC_IP
|
|||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
+INC_IP
|
+INC_IP
|
||||||
STA TMP
|
STA TMP
|
||||||
SEP #$20 ; 8 BIT A/M
|
TYA ; QUICKY CLEAR OUT MSB
|
||||||
!AS
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
LDA (TMP)
|
LDA (TMP)
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
|
||||||
AND #$00FF
|
|
||||||
PHA
|
PHA
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
LAW +INC_IP
|
LAW +INC_IP
|
||||||
@ -940,14 +955,12 @@ LABX +INC_IP
|
|||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
+INC_IP
|
+INC_IP
|
||||||
STA TMP
|
STA TMP
|
||||||
SEP #$20 ; 8 BIT A/M
|
TYA ; QUICKY CLEAR OUT MSB
|
||||||
!AS
|
|
||||||
STX ALTRDOFF
|
STX ALTRDOFF
|
||||||
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
LDA (TMP)
|
LDA (TMP)
|
||||||
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
STX ALTRDON
|
STX ALTRDON
|
||||||
REP #$20 ; 16 BIT A/M
|
|
||||||
!AL
|
|
||||||
AND #$00FF
|
|
||||||
PHA
|
PHA
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
LAWX +INC_IP
|
LAWX +INC_IP
|
||||||
@ -965,12 +978,10 @@ LAWX +INC_IP
|
|||||||
;*
|
;*
|
||||||
SB TYX
|
SB TYX
|
||||||
LDY #$00
|
LDY #$00
|
||||||
SEP #$20 ; 8 BIT A/M
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
!AS
|
|
||||||
LDA NOS,S
|
LDA NOS,S
|
||||||
STA (TOS,S),Y
|
STA (TOS,S),Y
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
|
||||||
TXY
|
TXY
|
||||||
PLA
|
PLA
|
||||||
JMP DROP
|
JMP DROP
|
||||||
@ -989,11 +1000,9 @@ SLB +INC_IP
|
|||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
TAY
|
TAY
|
||||||
PLA
|
PLA
|
||||||
SEP #$20 ; 8 BIT A/M
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
!AS
|
|
||||||
STA (IFP),Y
|
STA (IFP),Y
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
|
||||||
TXY
|
TXY
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
SLW +INC_IP
|
SLW +INC_IP
|
||||||
@ -1009,14 +1018,12 @@ SLW +INC_IP
|
|||||||
;*
|
;*
|
||||||
DLB +INC_IP
|
DLB +INC_IP
|
||||||
TYX
|
TYX
|
||||||
SEP #$20 ; 8 BIT A/M
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
!AS
|
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
TAY
|
TAY
|
||||||
LDA TOS,S
|
LDA TOS,S
|
||||||
STA (IFP),Y
|
STA (IFP),Y
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
|
||||||
TXY
|
TXY
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
DLW +INC_IP
|
DLW +INC_IP
|
||||||
@ -1035,11 +1042,9 @@ SAB +INC_IP
|
|||||||
+INC_IP
|
+INC_IP
|
||||||
STA TMP
|
STA TMP
|
||||||
PLA
|
PLA
|
||||||
SEP #$20 ; 8 BIT A/M
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
!AS
|
|
||||||
STA (TMP)
|
STA (TMP)
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
SAW +INC_IP
|
SAW +INC_IP
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
@ -1055,12 +1060,10 @@ DAB +INC_IP
|
|||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
+INC_IP
|
+INC_IP
|
||||||
STA TMP
|
STA TMP
|
||||||
SEP #$20 ; 8 BIT A/M
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
!AS
|
|
||||||
LDA TOS,S
|
LDA TOS,S
|
||||||
STA (TMP)
|
STA (TMP)
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
DAW +INC_IP
|
DAW +INC_IP
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
@ -1227,10 +1230,7 @@ EMUSTK STA TMP
|
|||||||
LDX $C010
|
LDX $C010
|
||||||
+ TAX
|
+ TAX
|
||||||
}
|
}
|
||||||
LDA IPH
|
PEI (IP) ; SAVE INSTRUCTION POINTER
|
||||||
PHA
|
|
||||||
LDA IPL
|
|
||||||
PHA
|
|
||||||
PHX ; SAVE BASELINE ESP
|
PHX ; SAVE BASELINE ESP
|
||||||
TYX
|
TYX
|
||||||
LDA PSR
|
LDA PSR
|
||||||
@ -1270,17 +1270,18 @@ EMUSTK STA TMP
|
|||||||
BNE -
|
BNE -
|
||||||
CLC ; SWITCH BACK TO NATIVE MODE
|
CLC ; SWITCH BACK TO NATIVE MODE
|
||||||
XCE
|
XCE
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
|
||||||
LDX #>OPTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
|
LDX #>OPTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
|
||||||
!IF DEBUG {
|
!IF DEBUG {
|
||||||
LDY LCRWEN+LCBNK2
|
LDY LCRWEN+LCBNK2
|
||||||
LDY LCRWEN+LCBNK2
|
LDY LCRWEN+LCBNK2
|
||||||
STX DBG_OP+2
|
STX DBG_OP+2
|
||||||
|
LDY LCRDEN+LCBNK2
|
||||||
LDX #>DBGTBL
|
LDX #>DBGTBL
|
||||||
}
|
}
|
||||||
STX OPPAGE
|
STX OPPAGE
|
||||||
LDY #$00
|
LDY #$00
|
||||||
|
+HACK816
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
;*
|
;*
|
||||||
;* CALL INTO ABSOLUTE ADDRESS (NATIVE CODE)
|
;* CALL INTO ABSOLUTE ADDRESS (NATIVE CODE)
|
||||||
@ -1342,10 +1343,7 @@ EMUSTKX STA TMP
|
|||||||
LDX $C010
|
LDX $C010
|
||||||
+ TAX
|
+ TAX
|
||||||
}
|
}
|
||||||
LDA IPH
|
PEI (IP) ; SAVE INSTRUCTION POINTER
|
||||||
PHA
|
|
||||||
LDA IPL
|
|
||||||
PHA
|
|
||||||
PHX ; SAVE BASELINE ESP
|
PHX ; SAVE BASELINE ESP
|
||||||
TYX
|
TYX
|
||||||
STX ALTRDOFF
|
STX ALTRDOFF
|
||||||
@ -1387,17 +1385,18 @@ EMUSTKX STA TMP
|
|||||||
BNE -
|
BNE -
|
||||||
CLC ; SWITCH BACK TO NATIVE MODE
|
CLC ; SWITCH BACK TO NATIVE MODE
|
||||||
XCE
|
XCE
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
LDX #>OPXTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
|
||||||
LDX #>OPXTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
|
|
||||||
!IF DEBUG {
|
!IF DEBUG {
|
||||||
LDY LCRWEN+LCBNK2
|
LDY LCRWEN+LCBNK2
|
||||||
LDY LCRWEN+LCBNK2
|
LDY LCRWEN+LCBNK2
|
||||||
STX DBG_OP+2
|
STX DBG_OP+2
|
||||||
|
LDY LCRDEN+LCBNK2
|
||||||
LDX #>DBGTBL
|
LDX #>DBGTBL
|
||||||
}
|
}
|
||||||
STX OPPAGE
|
STX OPPAGE
|
||||||
LDY #$00
|
LDY #$00
|
||||||
|
+HACK816
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
;*
|
;*
|
||||||
;* JUMP INDIRECT THROUGH TMP
|
;* JUMP INDIRECT THROUGH TMP
|
||||||
@ -1407,8 +1406,8 @@ JMPTMP JMP (TMP)
|
|||||||
;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT
|
;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT
|
||||||
;*
|
;*
|
||||||
ENTER INY
|
ENTER INY
|
||||||
SEP #$20 ; 8 BIT A/M
|
TYA ; QUICKY CLEAR OUT MSB
|
||||||
!AS
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
!IF DEBUG {
|
!IF DEBUG {
|
||||||
PHA
|
PHA
|
||||||
@ -1419,16 +1418,14 @@ ENTER INY
|
|||||||
}
|
}
|
||||||
PHA ; SAVE ON STACK FOR LEAVE
|
PHA ; SAVE ON STACK FOR LEAVE
|
||||||
DEC HWSP ; UPDATE HWSP TO SKIP FRAME SIZE
|
DEC HWSP ; UPDATE HWSP TO SKIP FRAME SIZE
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
; AND #$00FF
|
||||||
AND #$00FF
|
|
||||||
EOR #$FFFF ; ALLOCATE FRAME
|
EOR #$FFFF ; ALLOCATE FRAME
|
||||||
SEC
|
SEC
|
||||||
ADC PP
|
ADC PP
|
||||||
STA PP
|
STA PP
|
||||||
STA IFP
|
STA IFP
|
||||||
SEP #$20 ; 8 BIT A/M
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
!AS
|
|
||||||
INY
|
INY
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
BEQ +
|
BEQ +
|
||||||
@ -1444,16 +1441,14 @@ ENTER INY
|
|||||||
STA (IFP),Y
|
STA (IFP),Y
|
||||||
BNE -
|
BNE -
|
||||||
STX ESP
|
STX ESP
|
||||||
+ REP #$20 ; 16 BIT A/M
|
+ +ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
|
||||||
LDY #$02
|
LDY #$02
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
;*
|
;*
|
||||||
;* LEAVE FUNCTION
|
;* LEAVE FUNCTION
|
||||||
;*
|
;*
|
||||||
LEAVEX STX ALTRDOFF
|
LEAVEX STX ALTRDOFF
|
||||||
LEAVE SEP #$20 ; 8 BIT A/M
|
LEAVE +ACCMEM8 ; 8 BIT A/M
|
||||||
!AS
|
|
||||||
TSC ; MOVE HW EVAL STACK TO ZP EVAL STACK
|
TSC ; MOVE HW EVAL STACK TO ZP EVAL STACK
|
||||||
EOR #$FF
|
EOR #$FF
|
||||||
SEC
|
SEC
|
||||||
@ -1479,7 +1474,7 @@ LEAVE SEP #$20 ; 8 BIT A/M
|
|||||||
INX
|
INX
|
||||||
+ CPX ESP
|
+ CPX ESP
|
||||||
BNE -
|
BNE -
|
||||||
!IF DEBUG {
|
!IF DEBUG {
|
||||||
STX TMPL
|
STX TMPL
|
||||||
TSX
|
TSX
|
||||||
CPX HWSP
|
CPX HWSP
|
||||||
@ -1493,8 +1488,7 @@ LEAVE SEP #$20 ; 8 BIT A/M
|
|||||||
}
|
}
|
||||||
TYX ; RESTORE NEW ESP
|
TYX ; RESTORE NEW ESP
|
||||||
PLA ; DEALLOCATE POOL + FRAME
|
PLA ; DEALLOCATE POOL + FRAME
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
|
||||||
AND #$00FF
|
AND #$00FF
|
||||||
CLC
|
CLC
|
||||||
ADC IFP
|
ADC IFP
|
||||||
@ -1509,8 +1503,7 @@ LEAVE SEP #$20 ; 8 BIT A/M
|
|||||||
RTS
|
RTS
|
||||||
;
|
;
|
||||||
RETX STX ALTRDOFF
|
RETX STX ALTRDOFF
|
||||||
RET SEP #$20 ; 8 BIT A/M
|
RET +ACCMEM8 ; 8 BIT A/M
|
||||||
!AS
|
|
||||||
TSC ; MOVE HW EVAL STACK TO ZP EVAL STACK
|
TSC ; MOVE HW EVAL STACK TO ZP EVAL STACK
|
||||||
EOR #$FF
|
EOR #$FF
|
||||||
SEC
|
SEC
|
||||||
@ -1549,8 +1542,7 @@ RET SEP #$20 ; 8 BIT A/M
|
|||||||
+ LDX TMPL
|
+ LDX TMPL
|
||||||
}
|
}
|
||||||
TYX
|
TYX
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
|
||||||
LDA IFP ; DEALLOCATE POOL
|
LDA IFP ; DEALLOCATE POOL
|
||||||
STA PP
|
STA PP
|
||||||
PLA ; RESTORE PREVIOUS FRAME
|
PLA ; RESTORE PREVIOUS FRAME
|
||||||
@ -1621,15 +1613,37 @@ PRWORD PHA
|
|||||||
PLA
|
PLA
|
||||||
JMP PRHEX
|
JMP PRHEX
|
||||||
!AL
|
!AL
|
||||||
|
; MESSAGES
|
||||||
|
BADEMU !TEXT "IN EMULATION MODE!", 0
|
||||||
|
BADMODE !TEXT "IN 8 BIT A/M MODE!", 0
|
||||||
;*
|
;*
|
||||||
;* DEBUG STEP ROUTINE
|
;* DEBUG STEP ROUTINE
|
||||||
;*
|
;*
|
||||||
STEP STX TMPL
|
STEP STX TMPL
|
||||||
LDX $C013 ; SAVE RAMRD
|
PHP ; VALIDATE MODES
|
||||||
|
SEC ; SWITCH TO EMULATED MODE
|
||||||
|
XCE
|
||||||
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
|
BCC +
|
||||||
|
LDX #$00
|
||||||
|
-- LDA BADEMU,X
|
||||||
|
- BEQ -
|
||||||
|
JSR PRCHR
|
||||||
|
BRA --
|
||||||
|
+ XCE ; SWITCH BACK TO NATIVE MODE
|
||||||
|
PLX
|
||||||
|
TXA
|
||||||
|
AND #$20
|
||||||
|
BEQ ++
|
||||||
|
LDX #$00
|
||||||
|
- LDA BADMODE,X
|
||||||
|
BNE +
|
||||||
|
JMP DBGKEY
|
||||||
|
+ JSR PRCHR
|
||||||
|
BRA -
|
||||||
|
++ LDX $C013 ; SAVE RAMRD
|
||||||
STX $C002
|
STX $C002
|
||||||
STX TMPH
|
STX TMPH
|
||||||
SEP #$20 ; 8 BIT A/M
|
|
||||||
!AS
|
|
||||||
LDX #39 ; SCROLL PREVIOUS LINES UP
|
LDX #39 ; SCROLL PREVIOUS LINES UP
|
||||||
- LDA $6D0,X
|
- LDA $6D0,X
|
||||||
STA $650,X
|
STA $650,X
|
||||||
@ -1639,28 +1653,27 @@ STEP STX TMPL
|
|||||||
STA $750,X
|
STA $750,X
|
||||||
DEX
|
DEX
|
||||||
BPL -
|
BPL -
|
||||||
|
LDA #' '
|
||||||
BIT TMPH ; RAMRD SET?
|
BIT TMPH ; RAMRD SET?
|
||||||
BPL +
|
BPL +
|
||||||
STA $C003
|
STX $C003
|
||||||
|
LDA #'X'
|
||||||
+ LDX #$00
|
+ LDX #$00
|
||||||
REP #$20 ; 16 BIT A/M
|
JSR PRCHR
|
||||||
!AL
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
TYA
|
TYA
|
||||||
CLC
|
CLC
|
||||||
ADC IP
|
ADC IP
|
||||||
SEP #$20 ; 8 BIT A/M
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
!AS
|
|
||||||
JSR PRWORD
|
JSR PRWORD
|
||||||
LDA #':'
|
LDA #':'
|
||||||
JSR PRCHR
|
JSR PRCHR
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
JSR PRBYTE
|
JSR PRBYTE
|
||||||
INX
|
INX
|
||||||
REP #$20 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
|
||||||
TSC
|
TSC
|
||||||
SEP #$20 ; 8 BIT A/M
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
!AS
|
|
||||||
JSR PRWORD
|
JSR PRWORD
|
||||||
LDA #$80+'['
|
LDA #$80+'['
|
||||||
JSR PRCHR
|
JSR PRCHR
|
||||||
@ -1740,8 +1753,7 @@ DBGKEY STX $C010
|
|||||||
LDA #$04
|
LDA #$04
|
||||||
STA $29
|
STA $29
|
||||||
BRK
|
BRK
|
||||||
+ REP #$20 ; 16 BIT A/M
|
+ +ACCMEM16 ; 16 BIT A/M
|
||||||
!AL
|
|
||||||
LDX TMPL
|
LDX TMPL
|
||||||
DBG_OP JMP (OPTBL,X)
|
DBG_OP JMP (OPTBL,X)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user