mirror of https://github.com/dschmenk/PLASMA.git
16 bit VM is a disaster. Needed complete architecture overhaul
This commit is contained in:
parent
9f45afe3d0
commit
eaa0e3c7d4
|
@ -1,4 +1,4 @@
|
||||||
cp ../sysfiles/BLANK143.po PLASMA2-4TH.po
|
cp ../sysfiles/BLANK140.po PLASMA2-4TH.po
|
||||||
./ac.jar -n PLASMA2-4TH.po PLASMA.4TH
|
./ac.jar -n PLASMA2-4TH.po PLASMA.4TH
|
||||||
cat rel/HRFORTH#FE1000 | ./ac.jar -p PLASMA2-4TH.po sys/HRFORTH REL
|
cat rel/HRFORTH#FE1000 | ./ac.jar -p PLASMA2-4TH.po sys/HRFORTH REL
|
||||||
cat rel/HR2FORTH#FE1000 | ./ac.jar -p PLASMA2-4TH.po sys/HR2FORTH REL
|
cat rel/HR2FORTH#FE1000 | ./ac.jar -p PLASMA2-4TH.po sys/HR2FORTH REL
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
cp ../sysfiles/BLANK143.po PLASMA2-BLD.po
|
cp ../sysfiles/BLANK140.po PLASMA2-BLD.po
|
||||||
./ac.jar -n PLASMA2-BLD.po PLASMA.BLD
|
./ac.jar -n PLASMA2-BLD.po PLASMA.BLD
|
||||||
cat rel/PLASM#FE1000 | ./ac.jar -p PLASMA2-BLD.po bld/PLASM REL
|
cat rel/PLASM#FE1000 | ./ac.jar -p PLASMA2-BLD.po bld/PLASM REL
|
||||||
cat rel/CODEOPT#FE1000 | ./ac.jar -p PLASMA2-BLD.po bld/CODEOPT REL
|
cat rel/CODEOPT#FE1000 | ./ac.jar -p PLASMA2-BLD.po bld/CODEOPT REL
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
cp ../sysfiles/BLANK143.po PLASMA2-DEMOS.po
|
cp ../sysfiles/BLANK140.po PLASMA2-DEMOS.po
|
||||||
./ac.jar -n PLASMA2-INET.po PLASMA.DEMOS
|
./ac.jar -n PLASMA2-INET.po PLASMA.DEMOS
|
||||||
cat rel/INT32TEST#FE1000 | ./ac.jar -p PLASMA2-DEMOS.po demos/INT32TEST REL
|
cat rel/INT32TEST#FE1000 | ./ac.jar -p PLASMA2-DEMOS.po demos/INT32TEST REL
|
||||||
cat rel/apple/CONIOTST#FE1000 | ./ac.jar -p PLASMA2-DEMOS.po demos/CONIOTST REL
|
cat rel/apple/CONIOTST#FE1000 | ./ac.jar -p PLASMA2-DEMOS.po demos/CONIOTST REL
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
cp ../sysfiles/BLANK143.po PLASMA2-FPSOS.po
|
cp ../sysfiles/BLANK140.po PLASMA2-FPSOS.po
|
||||||
./ac.jar -n PLASMA2-FPSOS.po PLASMA.FPSOS
|
./ac.jar -n PLASMA2-FPSOS.po PLASMA.FPSOS
|
||||||
cat ../sysfiles/SOS.KERNEL#0C0000 | ./ac.jar -p PLASMA2-FPSOS.po SOS.KERNEL \$0C
|
cat ../sysfiles/SOS.KERNEL#0C0000 | ./ac.jar -p PLASMA2-FPSOS.po SOS.KERNEL \$0C
|
||||||
cat ../sysfiles/SOS.DRIVER#0C0000 | ./ac.jar -p PLASMA2-FPSOS.po SOS.DRIVER \$0C
|
cat ../sysfiles/SOS.DRIVER#0C0000 | ./ac.jar -p PLASMA2-FPSOS.po SOS.DRIVER \$0C
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
cp ../sysfiles/BLANK143.po PLASMA2-INET.po
|
cp ../sysfiles/BLANK140.po PLASMA2-INET.po
|
||||||
./ac.jar -n PLASMA2-INET.po PLASMA.INET
|
./ac.jar -n PLASMA2-INET.po PLASMA.INET
|
||||||
cat rel/INET#FE1000 | ./ac.jar -p PLASMA2-INET.po sys/INET REL
|
cat rel/INET#FE1000 | ./ac.jar -p PLASMA2-INET.po sys/INET REL
|
||||||
cat rel/DHCP#FE1000 | ./ac.jar -p PLASMA2-INET.po sys/DHCP REL
|
cat rel/DHCP#FE1000 | ./ac.jar -p PLASMA2-INET.po sys/DHCP REL
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
cp ../sysfiles/BLANK143.po PLASMA2-SYS.po
|
cp ../sysfiles/BLANK140.po PLASMA2-SYS.po
|
||||||
./ac.jar -n PLASMA2-SYS.po PLASMA.SYS
|
./ac.jar -n PLASMA2-SYS.po PLASMA.SYS
|
||||||
#cat ../sysfiles/PRODOS#FF0000 | ./ac.jar -p PLASMA2-SYS.po PRODOS SYS
|
#cat ../sysfiles/PRODOS#FF0000 | ./ac.jar -p PLASMA2-SYS.po PRODOS SYS
|
||||||
cat rel/apple/CMD#061000 | ./ac.jar -p PLASMA2-SYS.po CMD BIN $1000
|
cat rel/apple/CMD#061000 | ./ac.jar -p PLASMA2-SYS.po CMD BIN $1000
|
||||||
|
|
|
@ -210,7 +210,7 @@ RAMDONE ;CLI UNTIL I KNOW WHAT TO DO WITH THE UNENHANCED IIE
|
||||||
JSR PRODOS ; GET PREFIX
|
JSR PRODOS ; GET PREFIX
|
||||||
!BYTE $C7
|
!BYTE $C7
|
||||||
!WORD GETPFXPARMS
|
!WORD GETPFXPARMS
|
||||||
LDY STRBUF ; APPEND "CMDJIT"
|
LDY STRBUF ; APPEND "CMD128"
|
||||||
LDA #"/"
|
LDA #"/"
|
||||||
CMP STRBUF,Y
|
CMP STRBUF,Y
|
||||||
BEQ +
|
BEQ +
|
||||||
|
@ -287,9 +287,19 @@ DINTRP PHP
|
||||||
STX ESP
|
STX ESP
|
||||||
TSX
|
TSX
|
||||||
STX HWSP
|
STX HWSP
|
||||||
LDX #>OPTBL
|
LDX #ESTKSZ/2 ; COPY ZERO PAGE EVAL STACK TO HW STACK
|
||||||
|
CMP ESP
|
||||||
|
BEQ +
|
||||||
|
- LDY ESTKH,X
|
||||||
|
PHY
|
||||||
|
LDY ESTKL,X
|
||||||
|
PHY
|
||||||
|
DEX
|
||||||
|
CPX ESP
|
||||||
|
BNE -
|
||||||
|
+ LDX #>OPTBL
|
||||||
STX OPPAGE
|
STX OPPAGE
|
||||||
LDY #$00
|
LDY #$00 ; Y MUST BE ZERO FOR ENTER (DON'T CHANGE THIS)
|
||||||
JMP FETCHOP
|
JMP FETCHOP
|
||||||
;************************************************************
|
;************************************************************
|
||||||
;* *
|
;* *
|
||||||
|
@ -436,10 +446,9 @@ PAGE3 = *
|
||||||
BIT LCRDEN+LCBNK2 ; $03DC - INDIRECT INTERPX ENTRY
|
BIT LCRDEN+LCBNK2 ; $03DC - INDIRECT INTERPX ENTRY
|
||||||
JMP IINTRPX
|
JMP IINTRPX
|
||||||
}
|
}
|
||||||
DEFCMD !FILL 28
|
DEFCMD = *
|
||||||
ENDBYE = *
|
|
||||||
}
|
}
|
||||||
LCDEFCMD = *-28 ; DEFCMD IN LC MEMORY
|
LCDEFCMD = * ; DEFCMD IN LC MEMORY
|
||||||
|
|
||||||
;*****************
|
;*****************
|
||||||
;* *
|
;* *
|
||||||
|
@ -452,7 +461,7 @@ OPXTBL !WORD ZERO,CN,CN,CN,CN,CN,CN,CN ; 00 02
|
||||||
!WORD MINUS1,BREQ,BRNE,LA,LLA,CB,CW,CSX ; 20 22 24 26 28 2A 2C 2E
|
!WORD MINUS1,BREQ,BRNE,LA,LLA,CB,CW,CSX ; 20 22 24 26 28 2A 2C 2E
|
||||||
!WORD DROP,DROP2,DUP,DIVMOD,ADDI,SUBI,ANDI,ORI ; 30 32 34 36 38 3A 3C 3E
|
!WORD DROP,DROP2,DUP,DIVMOD,ADDI,SUBI,ANDI,ORI ; 30 32 34 36 38 3A 3C 3E
|
||||||
!WORD ISEQ,ISNE,ISGT,ISLT,ISGE,ISLE,BRFLS,BRTRU ; 40 42 44 46 48 4A 4C 4E
|
!WORD ISEQ,ISNE,ISGT,ISLT,ISGE,ISLE,BRFLS,BRTRU ; 40 42 44 46 48 4A 4C 4E
|
||||||
!WORD BRNCH,SEL,CALLX,ICALX,ENTER,LEAVEX,RETX,CFFB ; 50 52 54 56 58 5A 5C 5E
|
!WORD BRNCH,SEL,CALLX,ICALX,ENTER,LEAVE,RET,CFFB ; 50 52 54 56 58 5A 5C 5E
|
||||||
!WORD LBX,LWX,LLBX,LLWX,LABX,LAWX,DLB,DLW ; 60 62 64 66 68 6A 6C 6E
|
!WORD LBX,LWX,LLBX,LLWX,LABX,LAWX,DLB,DLW ; 60 62 64 66 68 6A 6C 6E
|
||||||
!WORD SB,SW,SLB,SLW,SAB,SAW,DAB,DAW ; 70 72 74 76 78 7A 7C 7E
|
!WORD SB,SW,SLB,SLW,SAB,SAW,DAB,DAW ; 70 72 74 76 78 7A 7C 7E
|
||||||
!WORD LNOT,ADD,SUB,MUL,DIV,MOD,INCR,DECR ; 80 82 84 86 88 8A 8C 8E
|
!WORD LNOT,ADD,SUB,MUL,DIV,MOD,INCR,DECR ; 80 82 84 86 88 8A 8C 8E
|
||||||
|
@ -470,18 +479,28 @@ IINTRPX PHP
|
||||||
SEI
|
SEI
|
||||||
CLC ; SWITCH TO NATIVE MODE
|
CLC ; SWITCH TO NATIVE MODE
|
||||||
XCE
|
XCE
|
||||||
+ACCMEM16 ; 16 BIT A/M
|
_INTRPX +ACCMEM16 ; 16 BIT A/M
|
||||||
LDY #$01
|
LDY #$01
|
||||||
LDA (TOS,S),Y
|
LDA (TOS,S),Y
|
||||||
DEY
|
|
||||||
STA IP
|
STA IP
|
||||||
PLA
|
PLA ; DROP RETURN ADDRESS
|
||||||
STX ESP
|
STX ESP
|
||||||
TSX
|
TSX
|
||||||
STX HWSP
|
STX HWSP
|
||||||
STX ALTRDON
|
LDX #ESTKSZ/2 ; COPY ZERO PAGE EVAL STACK TO HW STACK
|
||||||
|
CMP ESP
|
||||||
|
BEQ +
|
||||||
|
- LDY ESTKH,X
|
||||||
|
PHY
|
||||||
|
LDY ESTKL,X
|
||||||
|
PHY
|
||||||
|
DEX
|
||||||
|
CPX ESP
|
||||||
|
BNE -
|
||||||
|
+ STX ALTRDON
|
||||||
LDX #>OPXTBL
|
LDX #>OPXTBL
|
||||||
STX OPPAGE
|
STX OPPAGE
|
||||||
|
LDY #$00
|
||||||
JMP FETCHOP
|
JMP FETCHOP
|
||||||
;*
|
;*
|
||||||
;* JIT PROFILING ENTRY INTO INTERPRETER
|
;* JIT PROFILING ENTRY INTO INTERPRETER
|
||||||
|
@ -497,22 +516,8 @@ JITINTRPX PHP
|
||||||
LDA (TOS,S),Y
|
LDA (TOS,S),Y
|
||||||
DEC
|
DEC
|
||||||
STA (TOS,S),Y
|
STA (TOS,S),Y
|
||||||
|
BNE _INTRPX
|
||||||
+ACCMEM16 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
BEQ RUNJIT
|
|
||||||
LDY #$01
|
|
||||||
LDA (TOS,S),Y
|
|
||||||
DEY
|
|
||||||
STA IP
|
|
||||||
PLA
|
|
||||||
STX ESP
|
|
||||||
TSX
|
|
||||||
STX HWSP
|
|
||||||
STX ALTRDON
|
|
||||||
LDX #>OPXTBL
|
|
||||||
STX OPPAGE
|
|
||||||
JMP FETCHOP
|
|
||||||
;
|
|
||||||
!AL
|
|
||||||
RUNJIT PLA ; BACK UP DEF ENTRY TO POINT TO JSR
|
RUNJIT PLA ; BACK UP DEF ENTRY TO POINT TO JSR
|
||||||
SEC
|
SEC
|
||||||
SBC #$0002
|
SBC #$0002
|
||||||
|
@ -619,7 +624,6 @@ _MULSLP ASL
|
||||||
BNE _MULSLP
|
BNE _MULSLP
|
||||||
STA NOS,S ; PROD
|
STA NOS,S ; PROD
|
||||||
JMP DROP
|
JMP DROP
|
||||||
|
|
||||||
;MUL LDX #$04
|
;MUL LDX #$04
|
||||||
; LDA NOS,S
|
; LDA NOS,S
|
||||||
; EOR #$FFFF
|
; EOR #$FFFF
|
||||||
|
@ -1617,24 +1621,23 @@ EMUSTK STA TMP
|
||||||
XCE
|
XCE
|
||||||
!AS
|
!AS
|
||||||
TSC ; MOVE HW EVAL STACK TO ZP EVAL STACK
|
TSC ; MOVE HW EVAL STACK TO ZP EVAL STACK
|
||||||
|
CLC
|
||||||
|
ADC #ESTKSZ
|
||||||
SEC
|
SEC
|
||||||
SBC HWSP ; STACK DEPTH = (HWSP - SP)/2
|
SBC HWSP ; PARAM STACK SIZE
|
||||||
CMP #$80
|
LSR ; PARAM STACK COUNT
|
||||||
ROR
|
|
||||||
ADC ESP ; ESP - STACK DEPTH
|
|
||||||
TAX
|
TAX
|
||||||
TAY
|
CPX #ESTKSZ/2
|
||||||
CPY ESP
|
|
||||||
BEQ +
|
BEQ +
|
||||||
|
TAY
|
||||||
- PLA
|
- PLA
|
||||||
STA ESTKL,Y
|
STA ESTKL,Y
|
||||||
PLA
|
PLA
|
||||||
STA ESTKH,Y
|
STA ESTKH,Y
|
||||||
INY
|
INY
|
||||||
CPY ESP
|
CPY #ESTKSZ/2
|
||||||
BNE -
|
BNE -
|
||||||
+ PEI (IP) ; SAVE INSTRUCTION POINTER
|
+ PEI (IP) ; SAVE INSTRUCTION POINTER
|
||||||
PHY ; SAVE BASELINE ESP
|
|
||||||
LDA PSR
|
LDA PSR
|
||||||
PHA
|
PHA
|
||||||
PLP
|
PLP
|
||||||
|
@ -1646,21 +1649,20 @@ EMUSTK STA TMP
|
||||||
CLC ; SWITCH BACK TO NATIVE MODE
|
CLC ; SWITCH BACK TO NATIVE MODE
|
||||||
XCE
|
XCE
|
||||||
+ACCMEM16 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
PLY ; MOVE RETURN VALUES TO HW EVAL STACK
|
|
||||||
STY ESP ; RESTORE BASELINE ESP
|
|
||||||
PLA
|
PLA
|
||||||
STA IP
|
STA IP
|
||||||
STX TMPL
|
STX ESP
|
||||||
TSX ; RESTORE BASELINE HWSP
|
TSX
|
||||||
STX HWSP
|
STX HWSP
|
||||||
CPY TMPL
|
LDX #ESTKSZ/2 ; COPY ZERO PAGE EVAL STACK TO HW STACK
|
||||||
|
CMP ESP
|
||||||
BEQ +
|
BEQ +
|
||||||
- DEY
|
- LDY ESTKH,X
|
||||||
LDX ESTKH,Y
|
PHY
|
||||||
PHX
|
LDY ESTKL,X
|
||||||
LDX ESTKL,Y
|
PHY
|
||||||
PHX
|
DEX
|
||||||
CPY TMPL
|
CPX ESP
|
||||||
BNE -
|
BNE -
|
||||||
+ LDX #>OPTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
|
+ LDX #>OPTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
|
||||||
STX OPPAGE
|
STX OPPAGE
|
||||||
|
@ -1686,24 +1688,23 @@ EMUSTKX STA TMP
|
||||||
XCE
|
XCE
|
||||||
!AS
|
!AS
|
||||||
TSC ; MOVE HW EVAL STACK TO ZP EVAL STACK
|
TSC ; MOVE HW EVAL STACK TO ZP EVAL STACK
|
||||||
|
CLC
|
||||||
|
ADC #ESTKSZ
|
||||||
SEC
|
SEC
|
||||||
SBC HWSP ; STACK DEPTH = (HWSP - SP)/2
|
SBC HWSP ; PARAM STACK SIZE
|
||||||
CMP #$80
|
LSR ; PARAM STACK COUNT
|
||||||
ROR
|
|
||||||
ADC ESP ; ESP - STACK DEPTH
|
|
||||||
TAX
|
TAX
|
||||||
TAY
|
CPX #ESTKSZ/2
|
||||||
CPY ESP
|
|
||||||
BEQ +
|
BEQ +
|
||||||
|
TAY
|
||||||
- PLA
|
- PLA
|
||||||
STA ESTKL,Y
|
STA ESTKL,Y
|
||||||
PLA
|
PLA
|
||||||
STA ESTKH,Y
|
STA ESTKH,Y
|
||||||
INY
|
INY
|
||||||
CPY ESP
|
CPY #ESTKSZ/2
|
||||||
BNE -
|
BNE -
|
||||||
+ PEI (IP) ; SAVE INSTRUCTION POINTER
|
+ PEI (IP) ; SAVE INSTRUCTION POINTER
|
||||||
PHY ; SAVE BASELINE ESP
|
|
||||||
STA ALTRDOFF
|
STA ALTRDOFF
|
||||||
LDA PSR
|
LDA PSR
|
||||||
PHA
|
PHA
|
||||||
|
@ -1713,130 +1714,97 @@ EMUSTKX STA TMP
|
||||||
PLA
|
PLA
|
||||||
STA PSR
|
STA PSR
|
||||||
SEI
|
SEI
|
||||||
STX ALTRDON
|
|
||||||
CLC ; SWITCH BACK TO NATIVE MODE
|
CLC ; SWITCH BACK TO NATIVE MODE
|
||||||
XCE
|
XCE
|
||||||
+ACCMEM16 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
PLY ; MOVE RETURN VALUES TO HW EVAL STACK
|
|
||||||
STY ESP ; RESTORE BASELINE ESP
|
|
||||||
PLA
|
PLA
|
||||||
STA IP
|
STA IP
|
||||||
STX TMPL
|
STX ESP
|
||||||
TSX ; RESTORE BASELINE HWSP
|
TSX
|
||||||
STX HWSP
|
STX HWSP
|
||||||
CPY TMPL
|
LDX #ESTKSZ/2 ; COPY ZERO PAGE EVAL STACK TO HW STACK
|
||||||
|
CMP ESP
|
||||||
BEQ +
|
BEQ +
|
||||||
- DEY
|
- LDY ESTKH,X
|
||||||
LDX ESTKH,Y
|
PHY
|
||||||
PHX
|
LDY ESTKL,X
|
||||||
LDX ESTKL,Y
|
PHY
|
||||||
PHX
|
DEX
|
||||||
CPY TMPL
|
CPX ESP
|
||||||
BNE -
|
BNE -
|
||||||
+ LDX #>OPXTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
|
+ STX ALTRDON
|
||||||
|
LDX #>OPXTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
|
||||||
STX OPPAGE
|
STX OPPAGE
|
||||||
LDY #$00
|
LDY #$00
|
||||||
JMP FETCHOP
|
JMP FETCHOP
|
||||||
;*
|
;*
|
||||||
;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT
|
;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT
|
||||||
;*
|
;*
|
||||||
ENTER PEI (IFP) ; SAVE ON STACK FOR LEAVE
|
ENTER LDA IFP
|
||||||
TSX ; REFLECT SP IN SAVED HWSP
|
STA TMP
|
||||||
STX HWSP
|
|
||||||
INY
|
INY
|
||||||
LDA (IP),Y
|
LDA (IP),Y ; FRAME SIZE
|
||||||
AND #$00FF
|
AND #$00FF
|
||||||
|
TAX
|
||||||
|
INC
|
||||||
|
INC ; SAVE SPACE FOR PREV IFP
|
||||||
EOR #$FFFF ; ALLOCATE FRAME
|
EOR #$FFFF ; ALLOCATE FRAME
|
||||||
SEC
|
SEC
|
||||||
ADC PP
|
ADC PP
|
||||||
STA PP
|
STA PP
|
||||||
STA IFP
|
STA IFP
|
||||||
+ACCMEM8 ; 8 BIT A/M
|
|
||||||
INY
|
INY
|
||||||
LDA (IP),Y
|
LDA (IP),Y ; PARAM COUNT
|
||||||
|
AND #$00FF
|
||||||
BEQ +
|
BEQ +
|
||||||
ASL
|
ASL
|
||||||
TAY
|
TAY
|
||||||
LDX ESP ; MOVE PARAMETERS TO CALL FRAME
|
- PLA ; COPY PARAMS FROM STACK INTO FRAME
|
||||||
- LDA ESTKH,X
|
DEY
|
||||||
DEY
|
DEY
|
||||||
STA (IFP),Y
|
STA (IFP),Y
|
||||||
LDA ESTKL,X
|
BNE -
|
||||||
INX
|
+ TXY ; SAVE PREVIOUS IFP AT TOP OF FRAME
|
||||||
DEY
|
LDA TMP
|
||||||
STA (IFP),Y
|
STA (IFP),Y
|
||||||
BNE -
|
|
||||||
STX ESP
|
|
||||||
+ +ACCMEM16 ; 16 BIT A/M
|
|
||||||
LDY #$03
|
LDY #$03
|
||||||
JMP FETCHOP
|
JMP FETCHOP
|
||||||
;*
|
;*
|
||||||
;* LEAVE FUNCTION
|
;* LEAVE FUNCTION
|
||||||
;*
|
;*
|
||||||
LEAVE INY ;+INC_IP
|
LEAVE STX ALTRDOFF
|
||||||
+ACCMEM8 ; 8 BIT A/M
|
INY ;+INC_IP
|
||||||
LDA (IP),Y ; DEALLOCATE POOL + FRAME
|
LDA (IP),Y ; DEALLOCATE POOL + FRAME
|
||||||
BRA +
|
AND #$00FF
|
||||||
LEAVEX INY ;+INC_IP
|
|
||||||
+ACCMEM8 ; 8 BIT A/M
|
|
||||||
LDA (IP),Y ; DEALLOCATE POOL + FRAME
|
|
||||||
STA ALTRDOFF
|
|
||||||
+ STA TMPL
|
|
||||||
TSC ; MOVE HW EVAL STACK TO ZP EVAL STACK
|
|
||||||
SEC
|
|
||||||
SBC HWSP ; STACK DEPTH = (HWSP - SP)/2
|
|
||||||
CMP #$80
|
|
||||||
ROR
|
|
||||||
ADC ESP ; ESP - STACK DEPTH
|
|
||||||
TAX
|
|
||||||
CPX ESP
|
|
||||||
BEQ ++
|
|
||||||
TAY
|
TAY
|
||||||
- PLA
|
|
||||||
STA ESTKL,Y
|
|
||||||
PLA
|
|
||||||
STA ESTKH,Y
|
|
||||||
INY
|
|
||||||
CPY ESP
|
|
||||||
BNE -
|
|
||||||
++ +ACCMEM16 ; 16 BIT A/M
|
|
||||||
LDY TMPL ; DEALLOCATE POOL + FRAME
|
|
||||||
TYA
|
|
||||||
CLC
|
CLC
|
||||||
|
ADC #$02 ; PREVIOUS IFP HIDDEN AT END OF FRAME
|
||||||
ADC IFP
|
ADC IFP
|
||||||
STA PP
|
STA PP
|
||||||
PLA ; RESTORE PREVIOUS FRAME
|
LDA (IFP),Y ; RESTORE PREVIOUS FRAME
|
||||||
STA IFP
|
STA IFP
|
||||||
|
RET STX ALTRDOFF
|
||||||
SEC ; SWITCH TO EMULATION MODE
|
SEC ; SWITCH TO EMULATION MODE
|
||||||
XCE
|
|
||||||
!AS
|
|
||||||
LDA PSR
|
|
||||||
PHA
|
|
||||||
PLP
|
|
||||||
RTS ; RETURN IN EMULATION MODE
|
|
||||||
!AL
|
|
||||||
RETX STX ALTRDOFF
|
|
||||||
RET SEC ; SWITCH TO EMULATION MODE
|
|
||||||
XCE
|
XCE
|
||||||
!AS
|
!AS
|
||||||
TSC ; MOVE HW EVAL STACK TO ZP EVAL STACK
|
TSC ; MOVE HW EVAL STACK TO ZP EVAL STACK
|
||||||
|
CLC
|
||||||
|
ADC #ESTKSZ
|
||||||
SEC
|
SEC
|
||||||
SBC HWSP ; STACK DEPTH = (HWSP - SP)/2
|
SBC HWSP ; PARAM STACK SIZE
|
||||||
CMP #$80
|
LSR ; PARAM STACK COUNT
|
||||||
ROR
|
|
||||||
ADC ESP ; ESP - STACK DEPTH
|
|
||||||
TAX
|
TAX
|
||||||
CPX ESP
|
CPX #ESTKSZ/2
|
||||||
BEQ ++
|
BEQ +
|
||||||
TAY
|
TAY
|
||||||
- PLA
|
- PLA
|
||||||
STA ESTKL,Y
|
STA ESTKL,Y
|
||||||
PLA
|
PLA
|
||||||
STA ESTKH,Y
|
STA ESTKH,Y
|
||||||
INY
|
INY
|
||||||
CPY ESP
|
CPY #ESTKSZ/2
|
||||||
BNE -
|
BNE -
|
||||||
++ LDA PSR
|
+ LDA PSR
|
||||||
PHA
|
PHA
|
||||||
PLP
|
PLP
|
||||||
RTS ; RETURN IN EMULATION MODE
|
RTS ; RETURN IN EMULATION MODE
|
||||||
|
|
Loading…
Reference in New Issue