1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2024-09-28 10:55:04 +00:00

Save a few bytes, somehing I meant to do a long time ago...

This commit is contained in:
dschmenk 2017-01-28 12:27:34 -08:00
parent cf2d90b4cb
commit 988645cf8d
7 changed files with 216 additions and 153 deletions

BIN
SANDBOX.PO Normal file → Executable file

Binary file not shown.

View File

@ -39,7 +39,7 @@ predef loadmod, execmod, lookupstrmod
//
// System variables.
//
word version = $0092 // 00.92
word version = $0094 // 00.94
word systemflags = 0
word heap
word symtbl, lastsym

View File

@ -33,7 +33,7 @@ predef loadmod, execmod, lookupstrmod
//
// System variable.
//
word version = $0093 // 00.93
word version = $0094 // 00.94
word systemflags = 0
word heap
word xheap = $0800

View File

@ -77,9 +77,10 @@ MULLP LSR TMPH ; MULTPLRH
DEY
BNE MULLP
STA ESTKH+1,X ; PRODH
INX
LDY IPY
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* INCREMENT TOS
;*
@ -210,8 +211,9 @@ ADD LDA ESTKL,X
LDA ESTKH,X
ADC ESTKH+1,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* SUB TOS FROM TOS-1
;*
@ -222,8 +224,9 @@ SUB LDA ESTKL+1,X
LDA ESTKH+1,X
SBC ESTKH,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;
;*
;* SHIFT TOS LEFT BY 1, ADD TO TOS-1
@ -237,8 +240,9 @@ IDXW LDA ESTKL,X
LDA ESTKH,X
ADC ESTKH+1,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* BITWISE AND TOS TO TOS-1
;*
@ -248,8 +252,9 @@ BAND LDA ESTKL+1,X
LDA ESTKH+1,X
AND ESTKH,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* INCLUSIVE OR TOS TO TOS-1
;*
@ -259,8 +264,9 @@ IOR LDA ESTKL+1,X
LDA ESTKH+1,X
ORA ESTKH,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* EXLUSIVE OR TOS TO TOS-1
;*
@ -270,8 +276,9 @@ XOR LDA ESTKL+1,X
LDA ESTKH+1,X
EOR ESTKH,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* SHIFT TOS-1 LEFT BY TOS
;*
@ -290,9 +297,10 @@ SHL2 ASL ESTKL+1,X
ROL ESTKH+1,X
DEY
BNE SHL2
SHL3 INX
LDY IPY
JMP NEXTOP
SHL3 LDY IPY
; INX
; JMP NEXTOP
JMP DROP
;*
;* SHIFT TOS-1 RIGHT BY TOS
;*
@ -318,9 +326,10 @@ SHR3 CMP #$80
DEY
BNE SHR3
STA ESTKH+1,X
SHR4 INX
LDY IPY
JMP NEXTOP
SHR4 LDY IPY
; INX
; JMP NEXTOP
JMP DROP
;*
;* LOGICAL NOT
;*
@ -344,8 +353,9 @@ LAND LDA ESTKL+1,X
LDA #$FF
LAND1 STA ESTKL+1,X
STA ESTKH+1,X
LAND2 INX
JMP NEXTOP
;LAND2 INX
; JMP NEXTOP
LAND2 JMP DROP
;*
;* LOGICAL OR
;*
@ -357,8 +367,9 @@ LOR LDA ESTKL,X
LDA #$FF
STA ESTKL+1,X
STA ESTKH+1,X
LOR1 INX
JMP NEXTOP
;LOR1 INX
; JMP NEXTOP
LOR1 JMP DROP
;*
;* DUPLICATE TOS
;*
@ -375,8 +386,9 @@ PUSH LDA ESTKL,X
PHA
LDA ESTKH,X
PHA
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* PULL FROM CALL STACK TO EVAL STACK
;*
@ -541,10 +553,11 @@ SB LDA ESTKL+1,X
STY IPY
LDY #$00
STA (TMP),Y
INX
INX
LDY IPY
JMP NEXTOP
INX
; INX
; JMP NEXTOP
JMP DROP
SW LDA ESTKL+1,X
STA TMPL
LDA ESTKH+1,X
@ -556,10 +569,11 @@ SW LDA ESTKL+1,X
INY
LDA ESTKH,X
STA (TMP),Y
INX
INX
LDY IPY
JMP NEXTOP
INX
; INX
; JMP NEXTOP
JMP DROP
;*
;* STORE VALUE TO LOCAL FRAME OFFSET
;*
@ -569,9 +583,10 @@ SLB +INC_IP
TAY
LDA ESTKL,X
STA (IFP),Y
INX
LDY IPY
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
SLW +INC_IP
LDA (IP),Y
STY IPY
@ -581,9 +596,10 @@ SLW +INC_IP
INY
LDA ESTKH,X
STA (IFP),Y
INX
LDY IPY
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* STORE VALUE TO LOCAL FRAME OFFSET WITHOUT POPPING STACK
;*
@ -619,9 +635,10 @@ SAB +INC_IP
STY IPY
LDY #$00
STA (TMP),Y
INX
LDY IPY
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
SAW +INC_IP
LDA (IP),Y
STA TMPL
@ -635,9 +652,10 @@ SAW +INC_IP
INY
LDA ESTKH,X
STA (TMP),Y
INX
LDY IPY
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* STORE VALUE TO ABSOLUTE ADDRESS WITHOUT POPPING STACK
;*
@ -678,10 +696,11 @@ ISEQ LDA ESTKL,X
CMP ESTKH+1,X
BNE ISFLS
ISTRU LDA #$FF
INX
STA ESTKL,X
STA ESTKH,X
JMP NEXTOP
STA ESTKL+1,X
STA ESTKH+1,X
; INX
; JMP NEXTOP
JMP DROP
;
ISNE LDA ESTKL,X
CMP ESTKL+1,X
@ -690,10 +709,11 @@ ISNE LDA ESTKL,X
CMP ESTKH+1,X
BNE ISTRU
ISFLS LDA #$00
INX
STA ESTKL,X
STA ESTKH,X
JMP NEXTOP
STA ESTKL+1,X
STA ESTKH+1,X
; INX
; JMP NEXTOP
JMP DROP
;
ISGE LDA ESTKL+1,X
CMP ESTKL,X
@ -797,8 +817,9 @@ IBRNCH LDA IPL
LDA IPH
ADC ESTKH,X
STA IPH
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* CALL INTO ABSOLUTE ADDRESS (NATIVE CODE)
;*

View File

@ -404,8 +404,9 @@ ADD LDA ESTKL,X
LDA ESTKH,X
ADC ESTKH+1,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* SUB TOS FROM TOS-1
;*
@ -416,8 +417,9 @@ SUB LDA ESTKL+1,X
LDA ESTKH+1,X
SBC ESTKH,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* SHIFT TOS LEFT BY 1, ADD TO TOS-1
;*
@ -430,8 +432,9 @@ IDXW LDA ESTKL,X
LDA ESTKH,X
ADC ESTKH+1,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* MUL TOS-1 BY TOS
;*
@ -460,9 +463,10 @@ MULLP LSR TMPH ; MULTPLRH
DEY
BNE MULLP
STA ESTKH+1,X ; PRODH
INX
LDY IPY
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* INTERNAL DIVIDE ALGORITHM
;*
@ -580,8 +584,9 @@ BAND LDA ESTKL+1,X
LDA ESTKH+1,X
AND ESTKH,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* INCLUSIVE OR TOS TO TOS-1
;*
@ -591,8 +596,9 @@ IOR LDA ESTKL+1,X
LDA ESTKH+1,X
ORA ESTKH,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* EXLUSIVE OR TOS TO TOS-1
;*
@ -602,8 +608,9 @@ XOR LDA ESTKL+1,X
LDA ESTKH+1,X
EOR ESTKH,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* SHIFT TOS-1 LEFT BY TOS
;*
@ -622,9 +629,10 @@ SHL2 ASL ESTKL+1,X
ROL ESTKH+1,X
DEY
BNE SHL2
SHL3 INX
LDY IPY
JMP NEXTOP
SHL3 LDY IPY
; INX
; JMP NEXTOP
JMP DROP
;*
;* SHIFT TOS-1 RIGHT BY TOS
;*
@ -650,9 +658,10 @@ SHR3 CMP #$80
DEY
BNE SHR3
STA ESTKH+1,X
SHR4 INX
LDY IPY
JMP NEXTOP
SHR4 LDY IPY
; INX
; JMP NEXTOP
JMP DROP
;*
;* LOGICAL NOT
;*
@ -676,8 +685,9 @@ LAND LDA ESTKL+1,X
LDA #$FF
LAND1 STA ESTKL+1,X
STA ESTKH+1,X
LAND2 INX
JMP NEXTOP
;LAND2 INX
; JMP NEXTOP
LAND2 JMP DROP
;*
;* LOGICAL OR
;*
@ -689,8 +699,9 @@ LOR LDA ESTKL,X
LDA #$FF
STA ESTKL+1,X
STA ESTKH+1,X
LOR1 INX
JMP NEXTOP
;LOR1 INX
; JMP NEXTOP
LOR1 JMP DROP
;*
;* DUPLICATE TOS
;*
@ -707,8 +718,9 @@ PUSH LDA ESTKL,X
PHA
LDA ESTKH,X
PHA
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* PULL FROM CALL STACK TO EVAL STACK
;*
@ -996,10 +1008,11 @@ SB LDA ESTKL+1,X
STY IPY
LDY #$00
STA (TMP),Y
INX
INX
LDY IPY
JMP NEXTOP
INX
; INX
; JMP NEXTOP
JMP DROP
SW LDA ESTKL+1,X
STA TMPL
LDA ESTKH+1,X
@ -1011,10 +1024,11 @@ SW LDA ESTKL+1,X
INY
LDA ESTKH,X
STA (TMP),Y
INX
INX
LDY IPY
JMP NEXTOP
INX
; INX
; JMP NEXTOP
JMP DROP
;*
;* STORE VALUE TO LOCAL FRAME OFFSET
;*
@ -1024,9 +1038,10 @@ SLB +INC_IP
TAY
LDA ESTKL,X
STA (IFP),Y
INX
LDY IPY
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
SLW +INC_IP
LDA (IP),Y
STY IPY
@ -1036,9 +1051,10 @@ SLW +INC_IP
INY
LDA ESTKH,X
STA (IFP),Y
INX
LDY IPY
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* STORE VALUE TO LOCAL FRAME OFFSET WITHOUT POPPING STACK
;*
@ -1074,9 +1090,10 @@ SAB +INC_IP
STY IPY
LDY #$00
STA (TMP),Y
INX
LDY IPY
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
SAW +INC_IP
LDA (IP),Y
STA TMPL
@ -1090,9 +1107,10 @@ SAW +INC_IP
INY
LDA ESTKH,X
STA (TMP),Y
INX
LDY IPY
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* STORE VALUE TO ABSOLUTE ADDRESS WITHOUT POPPING STACK
;*
@ -1133,10 +1151,11 @@ ISEQ LDA ESTKL,X
CMP ESTKH+1,X
BNE ISFLS
ISTRU LDA #$FF
INX
STA ESTKL,X
STA ESTKH,X
JMP NEXTOP
STA ESTKL+1,X
STA ESTKH+1,X
; INX
; JMP NEXTOP
JMP DROP
;
ISNE LDA ESTKL,X
CMP ESTKL+1,X
@ -1145,10 +1164,11 @@ ISNE LDA ESTKL,X
CMP ESTKH+1,X
BNE ISTRU
ISFLS LDA #$00
INX
STA ESTKL,X
STA ESTKH,X
JMP NEXTOP
STA ESTKL+1,X
STA ESTKH+1,X
; INX
; JMP NEXTOP
JMP DROP
;
ISGE LDA ESTKL+1,X
CMP ESTKL,X
@ -1252,8 +1272,9 @@ IBRNCH LDA IPL
LDA IPH
ADC ESTKH,X
STA IPH
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* CALL INTO ABSOLUTE ADDRESS (NATIVE CODE)
;*

View File

@ -250,9 +250,10 @@ MULLP LSR TMPH ; MULTPLRH
DEY
BNE MULLP
STA ESTKH+1,X ; PRODH
INX
LDY IPY
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* NEGATE TOS
;*
@ -292,8 +293,9 @@ ADD LDA ESTKL,X
LDA ESTKH,X
ADC ESTKH+1,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* SUB TOS FROM TOS-1
;*
@ -304,8 +306,9 @@ SUB LDA ESTKL+1,X
LDA ESTKH+1,X
SBC ESTKH,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;
;*
;* SHIFT TOS LEFT BY 1, ADD TO TOS-1
@ -319,8 +322,9 @@ IDXW LDA ESTKL,X
LDA ESTKH,X
ADC ESTKH+1,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* INCREMENT TOS
;*
@ -355,8 +359,9 @@ BAND LDA ESTKL+1,X
LDA ESTKH+1,X
AND ESTKH,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* INCLUSIVE OR TOS TO TOS-1
;*
@ -366,8 +371,9 @@ IOR LDA ESTKL+1,X
LDA ESTKH+1,X
ORA ESTKH,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* EXLUSIVE OR TOS TO TOS-1
;*
@ -377,8 +383,9 @@ XOR LDA ESTKL+1,X
LDA ESTKH+1,X
EOR ESTKH,X
STA ESTKH+1,X
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* SHIFT TOS-1 LEFT BY TOS
;*
@ -397,9 +404,10 @@ SHL2 ASL ESTKL+1,X
ROL ESTKH+1,X
DEY
BNE SHL2
SHL3 INX
LDY IPY
JMP NEXTOP
SHL3 LDY IPY
; INX
; JMP NEXTOP
JMP DROP
;*
;* SHIFT TOS-1 RIGHT BY TOS
;*
@ -425,9 +433,10 @@ SHR3 CMP #$80
DEY
BNE SHR3
STA ESTKH+1,X
SHR4 INX
LDY IPY
JMP NEXTOP
SHR4 LDY IPY
; INX
; JMP NEXTOP
JMP DROP
;*
;* LOGICAL NOT
;*
@ -451,8 +460,9 @@ LAND LDA ESTKL+1,X
LDA #$FF
LAND1 STA ESTKL+1,X
STA ESTKH+1,X
LAND2 INX
JMP NEXTOP
;LAND2 INX
; JMP NEXTOP
LAND2 JMP DROP
;*
;* LOGICAL OR
;*
@ -464,8 +474,9 @@ LOR LDA ESTKL,X
LDA #$FF
STA ESTKL+1,X
STA ESTKH+1,X
LOR1 INX
JMP NEXTOP
;LOR1 INX
; JMP NEXTOP
LOR1 JMP DROP
;*
;* DUPLICATE TOS
;*
@ -482,8 +493,9 @@ PUSH LDA ESTKL,X
PHA
LDA ESTKH,X
PHA
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* PULL FROM CALL STACK TO EVAL STACK
;*
@ -663,10 +675,11 @@ SB LDA ESTKL+1,X
STY IPY
LDY #$00
STA (TMP),Y
INX
INX
LDY IPY
JMP NEXTOP
INX
; INX
; JMP NEXTOP
JMP DROP
SW LDA ESTKL+1,X
STA TMPL
LDA ESTKH+1,X
@ -678,10 +691,11 @@ SW LDA ESTKL+1,X
INY
LDA ESTKH,X
STA (TMP),Y
INX
INX
LDY IPY
JMP NEXTOP
INX
; INX
; JMP NEXTOP
JMP DROP
;*
;* STORE VALUE TO LOCAL FRAME OFFSET
;*
@ -691,9 +705,10 @@ SLB +INC_IP
TAY
LDA ESTKL,X
STA (IFP),Y
INX
LDY IPY
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
SLW +INC_IP
LDA (IP),Y
STY IPY
@ -703,9 +718,10 @@ SLW +INC_IP
INY
LDA ESTKH,X
STA (IFP),Y
INX
LDY IPY
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* STORE VALUE TO LOCAL FRAME OFFSET WITHOUT POPPING STACK
;*
@ -741,9 +757,10 @@ SAB +INC_IP
STY IPY
LDY #$00
STA (TMP),Y
INX
LDY IPY
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
SAW +INC_IP
LDA (IP),Y
STA TMPL
@ -757,9 +774,10 @@ SAW +INC_IP
INY
LDA ESTKH,X
STA (TMP),Y
INX
LDY IPY
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* STORE VALUE TO ABSOLUTE ADDRESS WITHOUT POPPING STACK
;*
@ -800,10 +818,11 @@ ISEQ LDA ESTKL,X
CMP ESTKH+1,X
BNE ISFLS
ISTRU LDA #$FF
INX
STA ESTKL,X
STA ESTKH,X
JMP NEXTOP
STA ESTKL+1,X
STA ESTKH+1,X
; INX
; JMP NEXTOP
JMP DROP
;
ISNE LDA ESTKL,X
CMP ESTKL+1,X
@ -812,10 +831,11 @@ ISNE LDA ESTKL,X
CMP ESTKH+1,X
BNE ISTRU
ISFLS LDA #$00
INX
STA ESTKL,X
STA ESTKH,X
JMP NEXTOP
STA ESTKL+1,X
STA ESTKH+1,X
; INX
; JMP NEXTOP
JMP DROP
;
ISGE LDA ESTKL+1,X
CMP ESTKL,X
@ -919,8 +939,9 @@ IBRNCH LDA IPL
LDA IPH
ADC ESTKH,X
STA IPH
INX
JMP NEXTOP
; INX
; JMP NEXTOP
JMP DROP
;*
;* CALL INTO ABSOLUTE ADDRESS (NATIVE CODE)
;*

View File

@ -34,7 +34,7 @@ predef loadmod, execmod, lookupstrmod
//
// System variables.
//
word version = $0092 // 00.92
word version = $0094 // 00.94
word systemflags = 0
byte refcons = 0
byte devcons = 0