mirror of
https://github.com/dschmenk/PLASMA.git
synced 2024-10-18 22:24:28 +00:00
Remove SELFMODIFY references for Apple II
This commit is contained in:
parent
2175ce0d78
commit
1f999a86e8
@ -5,7 +5,6 @@
|
|||||||
;* SYSTEM ROUTINES AND LOCATIONS
|
;* SYSTEM ROUTINES AND LOCATIONS
|
||||||
;*
|
;*
|
||||||
;**********************************************************
|
;**********************************************************
|
||||||
SELFMODIFY = 0
|
|
||||||
;*
|
;*
|
||||||
;* MONITOR SPECIAL LOCATIONS
|
;* MONITOR SPECIAL LOCATIONS
|
||||||
;*
|
;*
|
||||||
@ -1299,11 +1298,19 @@ BRLT INX
|
|||||||
BMI BRNCH
|
BMI BRNCH
|
||||||
+ BPL BRNCH
|
+ BPL BRNCH
|
||||||
BMI NOBRNCH
|
BMI NOBRNCH
|
||||||
IBRNCH LDA IPL
|
IBRNCH TYA ; FLATTEN IP
|
||||||
CLC
|
CLC
|
||||||
|
ADC IPL
|
||||||
|
STA TMPL
|
||||||
|
LDA #$00
|
||||||
|
TAY
|
||||||
|
ADC IPH
|
||||||
|
STA TMPH ; ADD BRANCH OFFSET
|
||||||
|
LDA TMPL
|
||||||
|
;CLC ; BETTER NOT CARRY OUT OF IP+Y
|
||||||
ADC ESTKL,X
|
ADC ESTKL,X
|
||||||
STA IPL
|
STA IPL
|
||||||
LDA IPH
|
LDA TMPH
|
||||||
ADC ESTKH,X
|
ADC ESTKH,X
|
||||||
STA IPH
|
STA IPH
|
||||||
JMP DROP
|
JMP DROP
|
||||||
|
@ -6,7 +6,6 @@
|
|||||||
;*
|
;*
|
||||||
;**********************************************************
|
;**********************************************************
|
||||||
!CPU 65816
|
!CPU 65816
|
||||||
SELFMODIFY = 0
|
|
||||||
DEBUG = 0
|
DEBUG = 0
|
||||||
;*
|
;*
|
||||||
;* THE DEFAULT CPU MODE FOR EXECUTING OPCODES IS:
|
;* THE DEFAULT CPU MODE FOR EXECUTING OPCODES IS:
|
||||||
@ -262,10 +261,6 @@ DINTRP PHP
|
|||||||
BRA SETDBG
|
BRA SETDBG
|
||||||
} ELSE {
|
} ELSE {
|
||||||
STX OPPAGE
|
STX OPPAGE
|
||||||
!IF SELFMODIFY {
|
|
||||||
LDX LCRWEN+LCBNK2
|
|
||||||
LDX LCRWEN+LCBNK2
|
|
||||||
}
|
|
||||||
LDY #$00
|
LDY #$00
|
||||||
JMP FETCHOP
|
JMP FETCHOP
|
||||||
}
|
}
|
||||||
@ -290,10 +285,6 @@ IINTRP PHP
|
|||||||
BRA SETDBG
|
BRA SETDBG
|
||||||
} ELSE {
|
} ELSE {
|
||||||
STX OPPAGE
|
STX OPPAGE
|
||||||
!IF SELFMODIFY {
|
|
||||||
LDX LCRWEN+LCBNK2
|
|
||||||
LDX LCRWEN+LCBNK2
|
|
||||||
}
|
|
||||||
JMP FETCHOP
|
JMP FETCHOP
|
||||||
}
|
}
|
||||||
!AS
|
!AS
|
||||||
@ -323,10 +314,6 @@ SETDBG LDY LCRWEN+LCBNK2
|
|||||||
LDY #$00
|
LDY #$00
|
||||||
}
|
}
|
||||||
STX OPPAGE
|
STX OPPAGE
|
||||||
!IF SELFMODIFY {
|
|
||||||
LDX LCRWEN+LCBNK2
|
|
||||||
LDX LCRWEN+LCBNK2
|
|
||||||
}
|
|
||||||
JMP FETCHOP
|
JMP FETCHOP
|
||||||
;************************************************************
|
;************************************************************
|
||||||
;* *
|
;* *
|
||||||
@ -845,14 +832,6 @@ _CEXSX LDA (IP) ; SKIP TO NEXT OP ADDR AFTER STRING
|
|||||||
;*
|
;*
|
||||||
;* LOAD VALUE FROM ADDRESS TAG
|
;* LOAD VALUE FROM ADDRESS TAG
|
||||||
;*
|
;*
|
||||||
!IF SELFMODIFY {
|
|
||||||
LB LDA TOS,S
|
|
||||||
STA LBLDX+1
|
|
||||||
LBLDX LDX $FFFF
|
|
||||||
TXA
|
|
||||||
STA TOS,S
|
|
||||||
JMP NEXTOP
|
|
||||||
} ELSE {
|
|
||||||
LB TYX
|
LB TYX
|
||||||
LDY #$00
|
LDY #$00
|
||||||
TYA ; QUICKY CLEAR OUT MSB
|
TYA ; QUICKY CLEAR OUT MSB
|
||||||
@ -862,7 +841,6 @@ LB TYX
|
|||||||
STA TOS,S
|
STA TOS,S
|
||||||
TXY
|
TXY
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
}
|
|
||||||
LW TYX
|
LW TYX
|
||||||
LDY #$00
|
LDY #$00
|
||||||
LDA (TOS,S),Y
|
LDA (TOS,S),Y
|
||||||
@ -870,16 +848,6 @@ LW TYX
|
|||||||
TXY
|
TXY
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
;
|
;
|
||||||
!IF SELFMODIFY {
|
|
||||||
LBX LDA TOS,S
|
|
||||||
STA LBXLDX+1
|
|
||||||
STX ALTRDOFF
|
|
||||||
LBXLDX LDX $FFFF
|
|
||||||
STX ALTRDON
|
|
||||||
TXA
|
|
||||||
STA TOS,S
|
|
||||||
JMP NEXTOP
|
|
||||||
} ELSE {
|
|
||||||
LBX TYX
|
LBX TYX
|
||||||
LDY #$00
|
LDY #$00
|
||||||
TYA ; QUICKY CLEAR OUT MSB
|
TYA ; QUICKY CLEAR OUT MSB
|
||||||
@ -891,7 +859,6 @@ LBX TYX
|
|||||||
STA TOS,S
|
STA TOS,S
|
||||||
TXY
|
TXY
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
}
|
|
||||||
LWX TYX
|
LWX TYX
|
||||||
LDY #$00
|
LDY #$00
|
||||||
STX ALTRDOFF
|
STX ALTRDOFF
|
||||||
@ -961,16 +928,6 @@ LLWX INY ;+INC_IP
|
|||||||
;*
|
;*
|
||||||
;* LOAD VALUE FROM ABSOLUTE ADDRESS
|
;* LOAD VALUE FROM ABSOLUTE ADDRESS
|
||||||
;*
|
;*
|
||||||
!IF SELFMODIFY {
|
|
||||||
LAB INY ;+INC_IP
|
|
||||||
LDA (IP),Y
|
|
||||||
STA LABLDX+1
|
|
||||||
LABLDX LDX $FFFF
|
|
||||||
TXA
|
|
||||||
PHA
|
|
||||||
INY ;+INC_IP
|
|
||||||
JMP NEXTOP
|
|
||||||
} ELSE {
|
|
||||||
LAB INY ;+INC_IP
|
LAB INY ;+INC_IP
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
STA TMP
|
STA TMP
|
||||||
@ -981,7 +938,6 @@ LAB INY ;+INC_IP
|
|||||||
PHA
|
PHA
|
||||||
INY ;+INC_IP
|
INY ;+INC_IP
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
}
|
|
||||||
LAW INY ;+INC_IP
|
LAW INY ;+INC_IP
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
STA TMP
|
STA TMP
|
||||||
@ -990,18 +946,6 @@ LAW INY ;+INC_IP
|
|||||||
INY ;+INC_IP
|
INY ;+INC_IP
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
;
|
;
|
||||||
!IF SELFMODIFY {
|
|
||||||
LABX INY ;+INC_IP
|
|
||||||
LDA (IP),Y
|
|
||||||
STA LABXLDX+1
|
|
||||||
STX ALTRDOFF
|
|
||||||
LABXLDX LDX $FFFF
|
|
||||||
STX ALTRDON
|
|
||||||
TXA
|
|
||||||
PHA
|
|
||||||
INY ;+INC_IP
|
|
||||||
JMP NEXTOP
|
|
||||||
} ELSE {
|
|
||||||
LABX INY ;+INC_IP
|
LABX INY ;+INC_IP
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
STA TMP
|
STA TMP
|
||||||
@ -1014,7 +958,6 @@ LABX INY ;+INC_IP
|
|||||||
PHA
|
PHA
|
||||||
INY ;+INC_IP
|
INY ;+INC_IP
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
}
|
|
||||||
LAWX INY ;+INC_IP
|
LAWX INY ;+INC_IP
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
STA TMP
|
STA TMP
|
||||||
@ -1028,15 +971,6 @@ LAWX INY ;+INC_IP
|
|||||||
;*
|
;*
|
||||||
;* STORE VALUE TO ADDRESS
|
;* STORE VALUE TO ADDRESS
|
||||||
;*
|
;*
|
||||||
!IF SELFMODIFY {
|
|
||||||
SB LDA TOS,S
|
|
||||||
STA SBSTX+1
|
|
||||||
LDA NOS,S
|
|
||||||
TAX
|
|
||||||
SBSTX STX $FFFF
|
|
||||||
PLA
|
|
||||||
JMP DROP
|
|
||||||
} ELSE {
|
|
||||||
SB TYX
|
SB TYX
|
||||||
LDY #$00
|
LDY #$00
|
||||||
+ACCMEM8 ; 8 BIT A/M
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
@ -1046,7 +980,6 @@ SB TYX
|
|||||||
TXY
|
TXY
|
||||||
PLA
|
PLA
|
||||||
JMP DROP
|
JMP DROP
|
||||||
}
|
|
||||||
SW TYX
|
SW TYX
|
||||||
LDY #$00
|
LDY #$00
|
||||||
LDA NOS,S
|
LDA NOS,S
|
||||||
@ -1057,24 +990,6 @@ SW TYX
|
|||||||
;*
|
;*
|
||||||
;* STORE VALUE TO LOCAL FRAME OFFSET
|
;* STORE VALUE TO LOCAL FRAME OFFSET
|
||||||
;*
|
;*
|
||||||
!IF SELFMODIFY {
|
|
||||||
- TYA
|
|
||||||
CLC
|
|
||||||
ADC IP
|
|
||||||
STA IP
|
|
||||||
LDY #$FF
|
|
||||||
SLB INY ;+INC_IP
|
|
||||||
BMI -
|
|
||||||
LDA (IP),Y
|
|
||||||
AND #$00FF
|
|
||||||
CLC
|
|
||||||
ADC IFP
|
|
||||||
STA SLBSTX+1
|
|
||||||
PLA
|
|
||||||
TAX
|
|
||||||
SLBSTX STX $FFFF
|
|
||||||
JMP NEXTOP
|
|
||||||
} ELSE {
|
|
||||||
SLB INY ;+INC_IP
|
SLB INY ;+INC_IP
|
||||||
TYX
|
TYX
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
@ -1087,7 +1002,6 @@ SLB INY ;+INC_IP
|
|||||||
BMI +
|
BMI +
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
+ JMP FIXNEXT
|
+ JMP FIXNEXT
|
||||||
}
|
|
||||||
SLW INY ;+INC_IP
|
SLW INY ;+INC_IP
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
TYX
|
TYX
|
||||||
@ -1101,18 +1015,6 @@ SLW INY ;+INC_IP
|
|||||||
;*
|
;*
|
||||||
;* STORE VALUE TO LOCAL FRAME OFFSET WITHOUT POPPING STACK
|
;* STORE VALUE TO LOCAL FRAME OFFSET WITHOUT POPPING STACK
|
||||||
;*
|
;*
|
||||||
!IF SELFMODIFY {
|
|
||||||
DLB INY ;+INC_IP
|
|
||||||
LDA (IP),Y
|
|
||||||
AND #$00FF
|
|
||||||
CLC
|
|
||||||
ADC IFP
|
|
||||||
STA DLBSTX+1
|
|
||||||
LDA TOS,S
|
|
||||||
TAX
|
|
||||||
DLBSTX STX $FFFF
|
|
||||||
JMP NEXTOP
|
|
||||||
} ELSE {
|
|
||||||
DLB INY ;+INC_IP
|
DLB INY ;+INC_IP
|
||||||
TYX
|
TYX
|
||||||
+ACCMEM8 ; 8 BIT A/M
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
@ -1123,7 +1025,6 @@ DLB INY ;+INC_IP
|
|||||||
+ACCMEM16 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
TXY
|
TXY
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
}
|
|
||||||
DLW INY ;+INC_IP
|
DLW INY ;+INC_IP
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
TYX
|
TYX
|
||||||
@ -1135,18 +1036,6 @@ DLW INY ;+INC_IP
|
|||||||
;*
|
;*
|
||||||
;* STORE VALUE TO ABSOLUTE ADDRESS
|
;* STORE VALUE TO ABSOLUTE ADDRESS
|
||||||
;*
|
;*
|
||||||
!IF SELFMODIFY {
|
|
||||||
SAB INY ;+INC_IP
|
|
||||||
LDA (IP),Y
|
|
||||||
STA SABSTX+1
|
|
||||||
PLA
|
|
||||||
TAX
|
|
||||||
SABSTX STX $FFFF
|
|
||||||
INY
|
|
||||||
BMI +
|
|
||||||
JMP NEXTOP
|
|
||||||
+ JMP FIXNEXT
|
|
||||||
} ELSE {
|
|
||||||
SAB INY ;+INC_IP
|
SAB INY ;+INC_IP
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
STA TMP
|
STA TMP
|
||||||
@ -1158,7 +1047,6 @@ SAB INY ;+INC_IP
|
|||||||
BMI +
|
BMI +
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
+ JMP FIXNEXT
|
+ JMP FIXNEXT
|
||||||
}
|
|
||||||
SAW INY ;+INC_IP
|
SAW INY ;+INC_IP
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
STA TMP
|
STA TMP
|
||||||
@ -1171,16 +1059,6 @@ SAW INY ;+INC_IP
|
|||||||
;*
|
;*
|
||||||
;* STORE VALUE TO ABSOLUTE ADDRESS WITHOUT POPPING STACK
|
;* STORE VALUE TO ABSOLUTE ADDRESS WITHOUT POPPING STACK
|
||||||
;*
|
;*
|
||||||
!IF SELFMODIFY {
|
|
||||||
DAB INY ;+INC_IP
|
|
||||||
LDA (IP),Y
|
|
||||||
STA DABSTX+1
|
|
||||||
LDA TOS,S
|
|
||||||
TAX
|
|
||||||
DABSTX STX $FFFF
|
|
||||||
INY ;+INC_IP
|
|
||||||
JMP NEXTOP
|
|
||||||
} ELSE {
|
|
||||||
DAB INY ;+INC_IP
|
DAB INY ;+INC_IP
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
STA TMP
|
STA TMP
|
||||||
@ -1190,7 +1068,6 @@ DAB INY ;+INC_IP
|
|||||||
+ACCMEM16 ; 16 BIT A/M
|
+ACCMEM16 ; 16 BIT A/M
|
||||||
INY ;+INC_IP
|
INY ;+INC_IP
|
||||||
JMP NEXTOP
|
JMP NEXTOP
|
||||||
}
|
|
||||||
DAW INY ;+INC_IP
|
DAW INY ;+INC_IP
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
STA TMP
|
STA TMP
|
||||||
@ -1306,22 +1183,22 @@ BRLT PLA
|
|||||||
+ BMI BRNCH
|
+ BMI BRNCH
|
||||||
BEQ BRNCH
|
BEQ BRNCH
|
||||||
BPL NOBRNCH
|
BPL NOBRNCH
|
||||||
IBRNCH PLA
|
IBRNCH TYA ; FLATTEN IP
|
||||||
CLC
|
CLC
|
||||||
ADC IP
|
ADC IP
|
||||||
STA IP
|
STA IP
|
||||||
JMP NEXTOP
|
PLA
|
||||||
|
;CLC ; ADD BRANCH OFFSET (BETTER NOT CARRY OUT OF IP+Y)
|
||||||
|
ADC IP
|
||||||
|
STA IP
|
||||||
|
LDY #$01
|
||||||
|
JMP FETCHOP
|
||||||
;*
|
;*
|
||||||
;* CALL INTO ABSOLUTE ADDRESS (NATIVE CODE)
|
;* CALL INTO ABSOLUTE ADDRESS (NATIVE CODE)
|
||||||
;*
|
;*
|
||||||
CALL INY ;+INC_IP
|
CALL INY ;+INC_IP
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
INY
|
INY
|
||||||
BNE EMUSTK
|
|
||||||
LDX IPH
|
|
||||||
INX
|
|
||||||
STX IPH
|
|
||||||
BRA EMUSTK
|
|
||||||
;*
|
;*
|
||||||
;* INDIRECT CALL TO ADDRESS (NATIVE CODE)
|
;* INDIRECT CALL TO ADDRESS (NATIVE CODE)
|
||||||
;*
|
;*
|
||||||
@ -1421,10 +1298,6 @@ EMUSTK STA TMP
|
|||||||
LDX #>DBGTBL
|
LDX #>DBGTBL
|
||||||
}
|
}
|
||||||
STX OPPAGE
|
STX OPPAGE
|
||||||
!IF SELFMODIFY {
|
|
||||||
LDX LCRWEN+LCBNK2
|
|
||||||
LDX LCRWEN+LCBNK2
|
|
||||||
}
|
|
||||||
LDY #$01
|
LDY #$01
|
||||||
JMP FETCHOP
|
JMP FETCHOP
|
||||||
;*
|
;*
|
||||||
@ -1433,10 +1306,6 @@ EMUSTK STA TMP
|
|||||||
CALLX INY ;+INC_IP
|
CALLX INY ;+INC_IP
|
||||||
LDA (IP),Y
|
LDA (IP),Y
|
||||||
INY
|
INY
|
||||||
BNE EMUSTKX
|
|
||||||
LDX IPH
|
|
||||||
INX
|
|
||||||
STX IPH
|
|
||||||
BRA EMUSTKX
|
BRA EMUSTKX
|
||||||
;*
|
;*
|
||||||
;* INDIRECT CALL TO ADDRESS (NATIVE CODE)
|
;* INDIRECT CALL TO ADDRESS (NATIVE CODE)
|
||||||
@ -1447,9 +1316,7 @@ EMUSTKX STA TMP
|
|||||||
CLC
|
CLC
|
||||||
ADC IP
|
ADC IP
|
||||||
STA IP
|
STA IP
|
||||||
SEC ; SWITCH TO EMULATED MODE
|
+ACCMEM8 ; 8 BIT A/M
|
||||||
XCE
|
|
||||||
!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
|
||||||
@ -1539,10 +1406,6 @@ EMUSTKX STA TMP
|
|||||||
LDX #>DBGTBL
|
LDX #>DBGTBL
|
||||||
}
|
}
|
||||||
STX OPPAGE
|
STX OPPAGE
|
||||||
!IF SELFMODIFY {
|
|
||||||
LDX LCRWEN+LCBNK2
|
|
||||||
LDX LCRWEN+LCBNK2
|
|
||||||
}
|
|
||||||
LDY #$01
|
LDY #$01
|
||||||
JMP FETCHOP
|
JMP FETCHOP
|
||||||
;*
|
;*
|
||||||
@ -1648,14 +1511,10 @@ LEAVE INY ;+INC_IP
|
|||||||
STA PP
|
STA PP
|
||||||
PLA ; RESTORE PREVIOUS FRAME
|
PLA ; RESTORE PREVIOUS FRAME
|
||||||
STA IFP
|
STA IFP
|
||||||
SEC ; SWITCH TO EMULATED MODE
|
LDY PSR
|
||||||
XCE
|
PHY
|
||||||
!AS
|
|
||||||
LDA PSR
|
|
||||||
PHA
|
|
||||||
PLP
|
PLP
|
||||||
RTS
|
RTS
|
||||||
+ACCMEM16 ; 16 BIT A/M
|
|
||||||
;
|
;
|
||||||
RETX STX ALTRDOFF
|
RETX STX ALTRDOFF
|
||||||
RET +ACCMEM8 ; 8 BIT A/M
|
RET +ACCMEM8 ; 8 BIT A/M
|
||||||
@ -1696,12 +1555,8 @@ RET +ACCMEM8 ; 8 BIT A/M
|
|||||||
+
|
+
|
||||||
}
|
}
|
||||||
TYX
|
TYX
|
||||||
+ACCMEM16
|
LDY PSR
|
||||||
SEC ; SWITCH TO EMULATED MODE
|
PHY
|
||||||
XCE
|
|
||||||
!AS
|
|
||||||
LDA PSR
|
|
||||||
PHA
|
|
||||||
PLP
|
PLP
|
||||||
RTS
|
RTS
|
||||||
!IF DEBUG {
|
!IF DEBUG {
|
||||||
|
Loading…
Reference in New Issue
Block a user