assembling...

This commit is contained in:
David Schmenk 2014-05-06 09:43:14 -07:00
parent 680cdc557a
commit e230d98e8c

View File

@ -17,63 +17,18 @@ MACHID = $BF98
KEYBD = $C000 KEYBD = $C000
CLRKBD = $C010 CLRKBD = $C010
SPKR = $C030 SPKR = $C030
ROMIN = $C081 LCRDEN = $C080
LCBNK2 = $C083 LCWTEN = $C081
LCBNK1 = $C08B ROMEN = $C082
LCRWEN = $C083
LCBNK2 = $00
LCBNK1 = $08
ALTZPOFF= $C008 ALTZPOFF= $C008
ALTZPON = $C009 ALTZPON = $C009
ALTRDOFF= $C002 ALTRDOFF= $C002
ALTRDON = $C003 ALTRDON = $C003
ALTWROFF= $C004 ALTWROFF= $C004
ALTWRON = $C005 ALTWRON = $C005
;*
;* AUXMEM ACCESS MACROS
;*
.IF IS65C02
.MACRO AUXZP_ACCESS_ON
STA ALTZPON ; TURN ON ALT ZP AND LC
.ENDMACRO
.MACRO AUXZP_ACCESS_OFF
STA ALTZPOFF ; TURN OFF ALT ZP AND LC
.ENDMACRO
.MACRO AUXMEM_RDON
STA ALTRAMRDON
.ENDMACRO
.MACRO STA ALTRAMRDOFF
STA ALTRAMRDOFF
.ENDMACRO
.MACRO AUXMEM_WRON
STA ALTRAMWRON
.ENDMACRO
.MACRO AUXMEM_WROFF
STA ALTRAMWROFF
.ENDMACRO
.ELSE
.MACRO AUXZP_ACCESS_ON
SEI ; TURN INTERRUPTS OFF
STA ALTZPON ; TURN ON ALT ZP AND LC
.ENDMACRO
.MACRO AUXZP_ACCESS_OFF
STA ALTZPOFF ; TURN OFF ALT ZP AND LC
CLI ; TURN INTERRUPTS BACK ON
.ENDMACRO
.MACRO AUXMEM_RDON
SEI
STA ALTRAMRDON
.ENDMACRO
.MACRO STA ALTRAMRDOFF
STA ALTRAMRDOFF
CLI
.ENDMACRO
.MACRO AUXMEM_WRON
SEI
STA ALTRAMWRON
.ENDMACRO
.MACRO AUXMEM_WROFF
STA ALTRAMWROFF
CLI
.ENDMACRO
.ENDIF
;********************************************************** ;**********************************************************
;* ;*
;* VM ZERO PAGE LOCATIONS ;* VM ZERO PAGE LOCATIONS
@ -98,57 +53,51 @@ TMPX = TMP+2
NPARMS = TMPL NPARMS = TMPL
FRMSZ = TMPH FRMSZ = TMPH
DVSIGN = TMPX DVSIGN = TMPX
;**********************************************************
;* ;*
;* COMMAND LOADER CODE ;* INTERPRETER INSTRUCTION POINTER INCREMENT MACRO
;* ;*
CLD ;**********************************************************
CLV !MACRO INC_IP {
BVC + INY
JMP PLASMA BNE * + 4
INC IPH
}
;*********************************************** ;***********************************************
;* ;*
;* INTERPRETER INITIALIZATION ;* INTERPRETER INITIALIZATION
;* ;*
;*********************************************** ;***********************************************
;* * = $2000
;* INIT AND ENTER INTO PLASMA BYTECODE INTERPRETER
;* X Y A = ADDRESS OF INITAL ENTRYPOINT
;*
PLASMA STA PCL
STY PCH
STX TMP
CLD CLD
LDY #$20 BIT LCRWEN+LCBNK2
LDA PAGE3,Y BIT LCRWEN+LCBNK2
LDY #$10
- LDA PAGE3,Y
STA $03D0,Y STA $03D0,Y
DEY DEY
BPL - BPL -
LDX #ESTKSZ/2 LDX #ESTKSZ/2
INY ; LDY #$00 PAGE3 = *
LDA TMP
BEQ FETCHOP
LDA MACHID
AND #$30
CMP #$30
BEQ FETCHOPX
!PSEUDOPC $03D0 { !PSEUDOPC $03D0 {
;* ;*
;* PAGE 3 VECTORS INTO INTERPRETER ;* PAGE 3 VECTORS INTO INTERPRETER
;* ;*
PAGE3 BIT $C080 ; $03D0 - INTERP ENTRY BIT LCRDEN+LCBNK2 ; $03D0 - INTERP ENTRY
JMP INTERP JMP INTERP
CALL3 BIT ROMEN
CALLADR JSR $0000
BIT LCRDEN+LCBNK2
RTS
} }
PLASMA = *
!PSEUDOPC $D000 { !PSEUDOPC $D000 {
;* ;*
;* OPCODE TABLE ;* OPCODE TABLE
;* ;*
OPTBL !WORD ZERO,ADD,SUB,MUL,DIV,DIVMOD,INCR,DECR ; 00 02 04 06 08 0A 0C 0E OPTBL !WORD ZERO,ADD,SUB,MUL,DIV,MOD,INCR,DECR ; 00 02 04 06 08 0A 0C 0E
!WORD NEG,COMP,BAND,IOR,XOR,SHL,SHR,IDXW ; 10 12 14 16 18 1A 1C 1E !WORD NEG,COMP,BAND,IOR,XOR,SHL,SHR,IDXW ; 10 12 14 16 18 1A 1C 1E
!WORD NOT,LOR,LAND,LA,LLA,CB,CW,SWAP ; 20 22 24 26 28 2A 2C 2E !WORD LNOT,LOR,LAND,LA,LLA,CB,CW,SWAP ; 20 22 24 26 28 2A 2C 2E
!WORD DROP,DUP,PUSH,PULL,BRLT,BRGT,BREQ,BRNE ; 30 32 34 36 38 3A 3C 3E !WORD DROP,DUP,PUSH,PULL,BRLT,BRGT,BREQ,BRNE ; 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,IBRNCH,CALL,ICAL,ENTER,LEAVE,RET,NEXTOP ; 50 52 54 56 58 5A 5C 5E !WORD BRNCH,IBRNCH,CALL,ICAL,ENTER,LEAVE,RET,NEXTOP ; 50 52 54 56 58 5A 5C 5E
@ -176,36 +125,38 @@ INTERP PLA
;* ;*
;* INTERP BYTECODE IN MAIN MEM ;* INTERP BYTECODE IN MAIN MEM
;* ;*
NEXTOPH INC IPH
BNE FETCHOP
DROP INX
NEXTOP INY
BEQ NEXTOPH
FETCHOP LDA (IP),Y FETCHOP LDA (IP),Y
STA *+5 STA *+5
JMP (OPTBL) JMP (OPTBL)
NEXTOP INY
BNE FETCHOP
INC IPH
BNE FETCHOP
;* ;*
;* INTERP BYTECODE IN AUX MEM ;* INTERP BYTECODE IN AUX MEM
;* ;*
FETCHOPX SEI NEXTOPHX INC IPH
STA ALTRAMRDON BNE FETCHOPX
LDA (IP),Y DROPX INX
STA *+5
JMP (OPTBLX)
NEXTOPX CLI NEXTOPX CLI
INY INY
BNE FETCHOPX BEQ NEXTOPHX
INC IPH FETCHOPX SEI
BNE FETCHOPX STA ALTRDON
LDA (IP),Y
STA *+5
JMP (OPXTBL)
;* ;*
;* ALIGN TO NEXT PAGE ;* ALIGN TO NEXT PAGE
;* ;*
!FILL 255 !ALIGN 255, 0
;* ;*
;* OPXCODE TABLE ;* OPXCODE TABLE
;* ;*
OPXTBL !WORD ZEROX,ADDX,SUBX,MULX,DIVX,MODX,INCRX,DECRX ; 00 02 04 06 08 0A 0C 0E OPXTBL !WORD ZEROX,ADDX,SUBX,MULX,DIVX,MODX,INCRX,DECRX ; 00 02 04 06 08 0A 0C 0E
!WORD NEGX,COMPX,BANDX,IORX,XORX,SHLX,SHRX,IDXWX ; 10 12 14 16 18 1A 1C 1E !WORD NEGX,COMPX,BANDX,IORX,XORX,SHLX,SHRX,IDXWX ; 10 12 14 16 18 1A 1C 1E
!WORD NOTX,LORX,LANDX,LAX,LLAX,CBX,CWX,SWAPX ; 20 22 24 26 28 2A 2C 2E !WORD LNOTX,LORX,LANDX,LAX,LLAX,CBX,CWX,SWAPX ; 20 22 24 26 28 2A 2C 2E
!WORD DROPX,DUPX,PUSHX,PULLX,BRLTX,BRGTX,BREQX,BRNEX ; 30 32 34 36 38 3A 3C 3E !WORD DROPX,DUPX,PUSHX,PULLX,BRLTX,BRGTX,BREQX,BRNEX ; 30 32 34 36 38 3A 3C 3E
!WORD ISEQX,ISNEX,ISGTX,ISLTX,ISGEX,ISLEX,BRFLSX,BRTRUX; 40 42 44 46 48 4A 4C 4E !WORD ISEQX,ISNEX,ISGTX,ISLTX,ISGEX,ISLEX,BRFLSX,BRTRUX; 40 42 44 46 48 4A 4C 4E
!WORD BRNCHX,IBRNCHX,CALLX,ICALX,ENTERX,LEAVEX,RETX,NEXTOPX; 50 52 54 56 58 5A 5C 5E !WORD BRNCHX,IBRNCHX,CALLX,ICALX,ENTERX,LEAVEX,RETX,NEXTOPX; 50 52 54 56 58 5A 5C 5E
@ -533,7 +484,7 @@ XORX LDA ESTKL+1,X
EOR ESTKH,X EOR ESTKH,X
STA ESTKH+1,X STA ESTKH+1,X
INX INX
NEXTOPX JMP NEXTOPX
;* ;*
;* SHIFT TOS-1 LEFT BY TOS ;* SHIFT TOS-1 LEFT BY TOS
;* ;*
@ -554,7 +505,7 @@ SHL2 ASL ESTKL+1,X
BNE SHL2 BNE SHL2
SHL3 INX SHL3 INX
LDY IPY LDY IPY
NEXTOP JMP NEXTOP
; ;
SHLX STY IPY SHLX STY IPY
LDA ESTKL,X LDA ESTKL,X
@ -573,7 +524,7 @@ SHLX2 ASL ESTKL+1,X
BNE SHLX2 BNE SHLX2
SHLX3 INX SHLX3 INX
LDY IPY LDY IPY
NEXTOPX JMP NEXTOPX
;* ;*
;* SHIFT TOS-1 RIGHT BY TOS ;* SHIFT TOS-1 RIGHT BY TOS
;* ;*
@ -631,20 +582,20 @@ SHRX4 INX
;* ;*
;* LOGICAL NOT ;* LOGICAL NOT
;* ;*
NOT LDA ESTKL,X LNOT LDA ESTKL,X
ORA ESTKH,X ORA ESTKH,X
BEQ NOT1 BEQ LNOT1
LDA #$FF LDA #$FF
NOT1 EOR #$FF LNOT1 EOR #$FF
STA ESTKL,X STA ESTKL,X
STA ESTKH,X STA ESTKH,X
JMP NEXTOP JMP NEXTOP
; ;
NOTX LDA ESTKL,X LNOTX LDA ESTKL,X
ORA ESTKH,X ORA ESTKH,X
BEQ NOTX1 BEQ LNOTX1
LDA #$FF LDA #$FF
NOTX1 EOR #$FF LNOTX1 EOR #$FF
STA ESTKL,X STA ESTKL,X
STA ESTKH,X STA ESTKH,X
JMP NEXTOPX JMP NEXTOPX
@ -675,7 +626,7 @@ LANDX1 STA ESTKL+1,X
INX INX
JMP NEXTOPX JMP NEXTOPX
;* ;*
;* LOGICAL OR & DROP TOS ;* LOGICAL OR
;* ;*
LOR LDA ESTKL,X LOR LDA ESTKL,X
ORA ESTKH,X ORA ESTKH,X
@ -685,7 +636,7 @@ LOR LDA ESTKL,X
LDA #$FF LDA #$FF
LOR1 STA ESTKL+1,X LOR1 STA ESTKL+1,X
STA ESTKH+1,X STA ESTKH+1,X
DROP INX INX
JMP NEXTOP JMP NEXTOP
; ;
LORX LDA ESTKL,X LORX LDA ESTKL,X
@ -696,7 +647,7 @@ LORX LDA ESTKL,X
LDA #$FF LDA #$FF
LORX1 STA ESTKL+1,X LORX1 STA ESTKL+1,X
STA ESTKH+1,X STA ESTKH+1,X
DROPX INX INX
JMP NEXTOPX JMP NEXTOPX
;* ;*
;* SWAP TOS WITH TOS-1 ;* SWAP TOS WITH TOS-1
@ -782,7 +733,7 @@ ZERO DEX
STA ESTKH,X STA ESTKH,X
JMP NEXTOP JMP NEXTOP
CB DEX CB DEX
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA ESTKL,X STA ESTKL,X
LDA #$00 LDA #$00
@ -795,7 +746,7 @@ ZEROX DEX
STA ESTKH,X STA ESTKH,X
JMP NEXTOPX JMP NEXTOPX
CBX DEX CBX DEX
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA ESTKL,X STA ESTKL,X
LDA #$00 LDA #$00
@ -804,22 +755,22 @@ CBX DEX
;* ;*
;* LOAD ADDRESS & LOAD CONSTANT WORD (SAME THING, WITH OR WITHOUT FIXUP) ;* LOAD ADDRESS & LOAD CONSTANT WORD (SAME THING, WITH OR WITHOUT FIXUP)
;* ;*
LA LA = *
CW DEX CW DEX
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA ESTKL,X STA ESTKL,X
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA ESTKH,X STA ESTKH,X
JMP NEXTOP JMP NEXTOP
; ;
LAX LAX = *
CWX DEX CWX DEX
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA ESTKL,X STA ESTKL,X
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA ESTKH,X STA ESTKH,X
JMP NEXTOPX JMP NEXTOPX
@ -851,7 +802,7 @@ LW LDA ESTKL,X
LDY IPY LDY IPY
JMP NEXTOP JMP NEXTOP
; ;
LBX STA ALTRAMRDOFF LBX STA ALTRDOFF
LDA ESTKL,X LDA ESTKL,X
STA TMPL STA TMPL
LDA ESTKH,X LDA ESTKH,X
@ -863,7 +814,7 @@ LBX STA ALTRAMRDOFF
STY ESTKH,X STY ESTKH,X
LDY IPY LDY IPY
JMP NEXTOPX JMP NEXTOPX
LWX STA ALTRAMRDOFF LWX STA ALTRDOFF
LDA ESTKL,X LDA ESTKL,X
STA TMPL STA TMPL
LDA ESTKH,X LDA ESTKH,X
@ -880,7 +831,7 @@ LWX STA ALTRAMRDOFF
;* ;*
;* LOAD ADDRESS OF LOCAL FRAME OFFSET ;* LOAD ADDRESS OF LOCAL FRAME OFFSET
;* ;*
LLA INC_IP LLA +INC_IP
LDA (IP),Y LDA (IP),Y
DEX DEX
CLC CLC
@ -891,7 +842,7 @@ LLA INC_IP
STA ESTKH,X STA ESTKH,X
JMP NEXTOP JMP NEXTOP
; ;
LLAX INC_IP LLAX +INC_IP
LDA (IP),Y LDA (IP),Y
DEX DEX
CLC CLC
@ -904,7 +855,7 @@ LLAX INC_IP
;* ;*
;* LOAD VALUE FROM LOCAL FRAME OFFSET ;* LOAD VALUE FROM LOCAL FRAME OFFSET
;* ;*
LLB INC_IP LLB +INC_IP
LDA (IP),Y LDA (IP),Y
STY IPY STY IPY
TAY TAY
@ -915,7 +866,7 @@ LLB INC_IP
STA ESTKH,X STA ESTKH,X
LDY IPY LDY IPY
JMP NEXTOP JMP NEXTOP
LLW INC_IP LLW +INC_IP
LDA (IP),Y LDA (IP),Y
STY IPY STY IPY
TAY TAY
@ -928,24 +879,24 @@ LLW INC_IP
LDY IPY LDY IPY
JMP NEXTOP JMP NEXTOP
; ;
LLBX INC_IP LLBX +INC_IP
LDA (IP),Y LDA (IP),Y
STY IPY STY IPY
TAY TAY
DEX DEX
STA ALTRAMRDOFF STA ALTRDOFF
LDA (IFP),Y LDA (IFP),Y
STA ESTKL,X STA ESTKL,X
LDA #$00 LDA #$00
STA ESTKH,X STA ESTKH,X
LDY IPY LDY IPY
JMP NEXTOP JMP NEXTOP
LLWX INC_IP LLWX +INC_IP
LDA (IP),Y LDA (IP),Y
STY IPY STY IPY
TAY TAY
DEX DEX
STA ALTRAMRDOFF STA ALTRDOFF
LDA (IFP),Y LDA (IFP),Y
STA ESTKL,X STA ESTKL,X
INY INY
@ -956,10 +907,10 @@ LLWX INC_IP
;* ;*
;* LOAD VALUE FROM ABSOLUTE ADDRESS ;* LOAD VALUE FROM ABSOLUTE ADDRESS
;* ;*
LAB INC_IP LAB +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPL STA TMPL
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPH STA TMPH
STY IPY STY IPY
@ -970,10 +921,10 @@ LAB INC_IP
STY ESTKH,X STY ESTKH,X
LDY IPY LDY IPY
JMP NEXTOP JMP NEXTOP
LAW INC_IP LAW +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPL STA TMPL
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPH STA TMPH
STY IPY STY IPY
@ -987,14 +938,14 @@ LAW INC_IP
LDY IPY LDY IPY
JMP NEXTOP JMP NEXTOP
; ;
LABX INC_IP LABX +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPL STA TMPL
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPH STA TMPH
STY IPY STY IPY
STA ALTRAMRDOFF STA ALTRDOFF
LDY #$00 LDY #$00
LDA (TMP),Y LDA (TMP),Y
DEX DEX
@ -1002,14 +953,14 @@ LABX INC_IP
STY ESTKH,X STY ESTKH,X
LDY IPY LDY IPY
JMP NEXTOPX JMP NEXTOPX
LAWX INC_IP LAWX +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPL STA TMPL
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPH STA TMPH
STY IPY STY IPY
STA ALTRAMRDOFF STA ALTRDOFF
LDY #$00 LDY #$00
LDA (TMP),Y LDA (TMP),Y
DEX DEX
@ -1056,7 +1007,7 @@ SBX LDA ESTKL+1,X
STA TMPH STA TMPH
LDA ESTKL,X LDA ESTKL,X
STY IPY STY IPY
STA ALTRAMRDOFF STA ALTRDOFF
LDY #$00 LDY #$00
STA (TMP),Y STA (TMP),Y
INX INX
@ -1068,7 +1019,7 @@ SWX LDA ESTKL+1,X
LDA ESTKH+1,X LDA ESTKH+1,X
STA TMPH STA TMPH
STY IPY STY IPY
STA ALTRAMRDOFF STA ALTRDOFF
LDY #$00 LDY #$00
LDA ESTKL,X LDA ESTKL,X
STA (TMP),Y STA (TMP),Y
@ -1082,7 +1033,7 @@ SWX LDA ESTKL+1,X
;* ;*
;* STORE VALUE TO LOCAL FRAME OFFSET ;* STORE VALUE TO LOCAL FRAME OFFSET
;* ;*
SLB INC_IP SLB +INC_IP
LDA (IP),Y LDA (IP),Y
STY IPY STY IPY
TAY TAY
@ -1091,46 +1042,46 @@ SLB INC_IP
INX INX
LDY IPY LDY IPY
JMP NEXTOP JMP NEXTOP
SLW INC_IP SLW +INC_IP
LDA (IP),Y LDA (IP),Y
STY IPY STY IPY
TAY TAY
LDA ESTKL,X LDA ESTKL,X
STA (FRMP),Y STA (IFP),Y
INY INY
LDA ESTKH,X LDA ESTKH,X
STA (FRMP),Y STA (IFP),Y
INX INX
LDY IPY LDY IPY
JMP NEXTOP JMP NEXTOP
; ;
SLBX INC_IP SLBX +INC_IP
LDA (IP),Y LDA (IP),Y
STY IPY STY IPY
STA ALTRAMRDOFF STA ALTRDOFF
TAY TAY
LDA ESTKL,X LDA ESTKL,X
STA (IFP),Y STA (IFP),Y
INX INX
LDY IPY LDY IPY
JMP NEXTOPX JMP NEXTOPX
SLWX INC_IP SLWX +INC_IP
LDA (IP),Y LDA (IP),Y
STY IPY STY IPY
STA ALTRAMRDOFF STA ALTRDOFF
TAY TAY
LDA ESTKL,X LDA ESTKL,X
STA (FRMP),Y STA (IFP),Y
INY INY
LDA ESTKH,X LDA ESTKH,X
STA (FRMP),Y STA (IFP),Y
INX INX
LDY IPY LDY IPY
JMP NEXTOPX JMP NEXTOPX
;* ;*
;* STORE VALUE TO LOCAL FRAME OFFSET WITHOUT POPPING STACK ;* STORE VALUE TO LOCAL FRAME OFFSET WITHOUT POPPING STACK
;* ;*
DLB INC_IP DLB +INC_IP
LDA (IP),Y LDA (IP),Y
STY IPY STY IPY
TAY TAY
@ -1138,7 +1089,7 @@ DLB INC_IP
STA (IFP),Y STA (IFP),Y
LDY IPY LDY IPY
JMP NEXTOP JMP NEXTOP
DLW INC_IP DLW +INC_IP
LDA (IP),Y LDA (IP),Y
STY IPY STY IPY
TAY TAY
@ -1150,19 +1101,19 @@ DLW INC_IP
LDY IPY LDY IPY
JMP NEXTOP JMP NEXTOP
; ;
DLBX INC_IP DLBX +INC_IP
LDA (IP),Y LDA (IP),Y
STY IPY STY IPY
STA ALTRAMRDOFF STA ALTRDOFF
TAY TAY
LDA ESTKL,X LDA ESTKL,X
STA (IFP),Y STA (IFP),Y
LDY IPY LDY IPY
JMP NEXTOPX JMP NEXTOPX
DLWX INC_IP DLWX +INC_IP
LDA (IP),Y LDA (IP),Y
STY IPY STY IPY
STA ALTRAMRDOFF STA ALTRDOFF
TAY TAY
LDA ESTKL,X LDA ESTKL,X
STA (IFP),Y STA (IFP),Y
@ -1174,10 +1125,10 @@ DLWX INC_IP
;* ;*
;* STORE VALUE TO ABSOLUTE ADDRESS ;* STORE VALUE TO ABSOLUTE ADDRESS
;* ;*
SAB INC_IP SAB +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPL STA TMPL
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPH STA TMPH
LDA ESTKL,X LDA ESTKL,X
@ -1187,10 +1138,10 @@ SAB INC_IP
INX INX
LDY IPY LDY IPY
JMP NEXTOP JMP NEXTOP
SAW INC_IP SAW +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPL STA TMPL
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPH STA TMPH
STY IPY STY IPY
@ -1204,28 +1155,28 @@ SAW INC_IP
LDY IPY LDY IPY
JMP NEXTOP JMP NEXTOP
; ;
SABX INC_IP SABX +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPL STA TMPL
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPH STA TMPH
LDA ESTKL,X LDA ESTKL,X
STY IPY STY IPY
STA ALTRAMRDOFF STA ALTRDOFF
LDY #$00 LDY #$00
STA (TMP),Y STA (TMP),Y
INX INX
LDY IPY LDY IPY
JMP NEXTOPX JMP NEXTOPX
SAWX INC_IP SAWX +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPL STA TMPL
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPH STA TMPH
STY IPY STY IPY
STA ALTRAMRDOFF STA ALTRDOFF
LDY #$00 LDY #$00
LDA ESTKL,X LDA ESTKL,X
STA (TMP),Y STA (TMP),Y
@ -1238,10 +1189,10 @@ SAWX INC_IP
;* ;*
;* STORE VALUE TO ABSOLUTE ADDRESS WITHOUT POPPING STACK ;* STORE VALUE TO ABSOLUTE ADDRESS WITHOUT POPPING STACK
;* ;*
DAB INC_IP DAB +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPL STA TMPL
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPH STA TMPH
STY IPY STY IPY
@ -1250,10 +1201,10 @@ DAB INC_IP
STA (TMP),Y STA (TMP),Y
LDY IPY LDY IPY
JMP NEXTOP JMP NEXTOP
DAW INC_IP DAW +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPL STA TMPL
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPH STA TMPH
STY IPY STY IPY
@ -1266,27 +1217,27 @@ DAW INC_IP
LDY IPY LDY IPY
JMP NEXTOP JMP NEXTOP
; ;
DABX INC_IP DABX +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPL STA TMPL
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPH STA TMPH
STY IPY STY IPY
STA ALTRAMRDOFF STA ALTRDOFF
LDY #$00 LDY #$00
LDA ESTKL,X LDA ESTKL,X
STA (TMP),Y STA (TMP),Y
LDY IPY LDY IPY
JMP NEXTOPX JMP NEXTOPX
DAWX INC_IP DAWX +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPL STA TMPL
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPH STA TMPH
STY IPY STY IPY
STA ALTRAMRDOFF STA ALTRDOFF
LDY #$00 LDY #$00
LDA ESTKL,X LDA ESTKL,X
STA (TMP),Y STA (TMP),Y
@ -1492,8 +1443,8 @@ BRTRU INX
LDA ESTKH-1,X LDA ESTKH-1,X
ORA ESTKL-1,X ORA ESTKL-1,X
BNE BRNCH BNE BRNCH
NOBRNCH INC_IP NOBRNCH +INC_IP
INC_IP +INC_IP
JMP NEXTOP JMP NEXTOP
BRFLS INX BRFLS INX
LDA ESTKH-1,X LDA ESTKH-1,X
@ -1503,12 +1454,12 @@ BRNCH STY IPY
LDA IPH LDA IPH
STA TMPH STA TMPH
LDA IPL LDA IPL
INC_IP +INC_IP
CLC CLC
ADC (IP),Y ADC (IP),Y
STA TMPL STA TMPL
LDA TMPH LDA TMPH
INC_IP +INC_IP
ADC (IP),Y ADC (IP),Y
STA IPH STA IPH
LDA TMPL LDA TMPL
@ -1559,8 +1510,8 @@ BRTRUX INX
LDA ESTKH-1,X LDA ESTKH-1,X
ORA ESTKL-1,X ORA ESTKL-1,X
BNE BRNCHX BNE BRNCHX
NOBRNCHX INC_IP NOBRNCHX +INC_IP
INC_IP +INC_IP
JMP NEXTOPX JMP NEXTOPX
BRFLSX INX BRFLSX INX
LDA ESTKH-1,X LDA ESTKH-1,X
@ -1570,12 +1521,12 @@ BRNCHX STY IPY
LDA IPH LDA IPH
STA TMPH STA TMPH
LDA IPL LDA IPL
INC_IP +INC_IP
CLC CLC
ADC (IP),Y ADC (IP),Y
STA TMPL STA TMPL
LDA TMPH LDA TMPH
INC_IP +INC_IP
ADC (IP),Y ADC (IP),Y
STA IPH STA IPH
LDA TMPL LDA TMPL
@ -1624,19 +1575,19 @@ IBRNCHX LDA IPL
;* ;*
;* CALL INTO ABSOLUTE ADDRESS (NATIVE CODE) ;* CALL INTO ABSOLUTE ADDRESS (NATIVE CODE)
;* ;*
CALL INC_IP CALL +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPL STA CALLADR+1
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPH STA CALLADR+2
LDA IPH LDA IPH
PHA PHA
LDA IPL LDA IPL
PHA PHA
TYA TYA
PHA PHA
JSR TMPJMP JSR CALL3
PLA PLA
TAY TAY
PLA PLA
@ -1645,21 +1596,23 @@ CALL INC_IP
STA IPH STA IPH
JMP NEXTOP JMP NEXTOP
; ;
CALLX INC_IP CALLX +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPL PHA
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA TMPH STA ALTRDOFF
STA CALLADR+2
PLA
STA CALLADR+1
LDA IPH LDA IPH
PHA PHA
LDA IPL LDA IPL
PHA PHA
TYA TYA
PHA PHA
STA ALTRAMRDOFF
CLI CLI
JSR TMPJMP JSR CALL3
PLA PLA
TAY TAY
PLA PLA
@ -1683,14 +1636,12 @@ ICAL LDA ESTKL,X
PHA PHA
LDY #$00 LDY #$00
LDA (TMP),Y LDA (TMP),Y
PHA STA CALLADR+1
INY INY
LDA (TMP),Y LDA (TMP),Y
STA TMPH STA CALLADR+2
PLA
STA TMPL
CLI CLI
JSR TMPJMP JSR CALL3
PLA PLA
TAY TAY
PLA PLA
@ -1710,17 +1661,15 @@ ICALX LDA ESTKL,X
PHA PHA
TYA TYA
PHA PHA
STA ALTRAMRDOFF STA ALTRDOFF
LDY #$00 LDY #$00
LDA (TMP),Y LDA (TMP),Y
PHA STA CALLADR+1
INY INY
LDA (TMP),Y LDA (TMP),Y
STA TMPH STA CALLADR+2
PLA
STA TMPL
CLI CLI
JSR TMPJMP JSR CALL3
PLA PLA
TAY TAY
PLA PLA
@ -1731,10 +1680,10 @@ ICALX LDA ESTKL,X
;* ;*
;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT ;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT
;* ;*
ENTER INC_IP ENTER +INC_IP
LDA (IP),Y LDA (IP),Y
STA FRMSZ STA FRMSZ
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA NPARMS STA NPARMS
STY IPY STY IPY
@ -1770,14 +1719,14 @@ ENTER4 LDA ESTKH,X
ENTER5 LDY IPY ENTER5 LDY IPY
JMP NEXTOP JMP NEXTOP
; ;
ENTERX INC_IP ENTERX +INC_IP
LDA (IP),Y LDA (IP),Y
STA FRMSZ STA FRMSZ
INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA NPARMS STA NPARMS
STY IPY STY IPY
STA ALTRAMRDOFF STA ALTRDOFF
LDA IFPL LDA IFPL
PHA PHA
SEC SEC
@ -1822,7 +1771,7 @@ LEAVE LDY #$01
STA IFPH STA IFPH
RET RTS RET RTS
; ;
LEAVEX STA ALTRAMRDOFF LEAVEX STA ALTRDOFF
LDY #$01 LDY #$01
LDA (IFP),Y LDA (IFP),Y
DEY DEY
@ -1833,7 +1782,7 @@ LEAVEX STA ALTRAMRDOFF
STA IFPH STA IFPH
CLI CLI
RTS RTS
RETX STA ALTRAMRDOFF RETX STA ALTRDOFF
CLI CLI
RTS RTS
} }