mirror of
https://github.com/dschmenk/PLASMA.git
synced 2024-08-25 18:29:11 +00:00
Better TOSL cache checks
This commit is contained in:
parent
36c2506a24
commit
3c72bb9df3
@ -29,6 +29,11 @@ const codemax = $BEE0
|
||||
//
|
||||
const interpentry = $03DC
|
||||
//
|
||||
// TOS caching values
|
||||
//
|
||||
const TOSL_DIRTY = 1
|
||||
const TOSL_CLEAN = 2
|
||||
//
|
||||
// Resolve virtual X with real X
|
||||
//
|
||||
def resolveX(codeptr, VX)#2
|
||||
@ -214,7 +219,7 @@ def compiler(defptr)#0
|
||||
//
|
||||
// Optimization fence
|
||||
//
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = FALSE
|
||||
@ -241,7 +246,7 @@ def compiler(defptr)#0
|
||||
// CN,CN,CN,CN,CN,CN,CN,CN ; 00 02 04 06 08 0A 0C 0E
|
||||
// CN,CN,CN,CN,CN,CN,CN,CN ; 10 12 14 16 18 1A 1C 1E
|
||||
//puts("CN $"); putb(^(bytecode+i)/2)
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -256,13 +261,13 @@ def compiler(defptr)#0
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
else
|
||||
when opcode
|
||||
// MINUS1,BREQ,BRNE,LA,LLA,CB,CW,CS ; 20 22 24 26 28 2A 2C 2E
|
||||
is $20
|
||||
//puts("MINUS_ONE")
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -273,7 +278,7 @@ def compiler(defptr)#0
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $22
|
||||
i++
|
||||
@ -338,7 +343,7 @@ def compiler(defptr)#0
|
||||
is $26
|
||||
i++
|
||||
//puts("LA $"); puth(*(bytecode+i))
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -351,13 +356,13 @@ def compiler(defptr)#0
|
||||
^codeptr = ^(bytecode+i); codeptr++
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
i++
|
||||
break
|
||||
is $28
|
||||
i++
|
||||
//puts("LLA "); puti(^(bytecode+i))
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -383,7 +388,7 @@ def compiler(defptr)#0
|
||||
is $2A
|
||||
i++
|
||||
//puts("CB $"); putb(^(bytecode+i))
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -394,12 +399,12 @@ def compiler(defptr)#0
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $2C
|
||||
i++
|
||||
//puts("CW $"); puth(*(bytecode+i))
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -416,7 +421,7 @@ def compiler(defptr)#0
|
||||
fin
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
i++
|
||||
break
|
||||
is $2E
|
||||
@ -425,7 +430,7 @@ def compiler(defptr)#0
|
||||
dest = i + j + 1
|
||||
//puts("CS "); //puts(bytecode+i); //puts("-->"); puti(dest)
|
||||
if isule(codeptr + 12 + j, codemax)
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -467,7 +472,7 @@ def compiler(defptr)#0
|
||||
break
|
||||
is $34
|
||||
//puts("DUP")
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
else
|
||||
@ -485,7 +490,7 @@ def compiler(defptr)#0
|
||||
//^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $36
|
||||
//puts("DIVMOD")
|
||||
@ -509,7 +514,7 @@ def compiler(defptr)#0
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $3A
|
||||
i++
|
||||
@ -527,7 +532,7 @@ def compiler(defptr)#0
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $3C
|
||||
i++
|
||||
@ -542,7 +547,7 @@ def compiler(defptr)#0
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $3E
|
||||
i++
|
||||
@ -555,7 +560,7 @@ def compiler(defptr)#0
|
||||
^codeptr = ^(bytecode+i); codeptr++
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
// ISEQ,ISNE,ISGT,ISLT,ISGE,ISLE,BRFLS,BRTRU ; 40 42 44 46 48 4A 4C 4E
|
||||
is $40
|
||||
@ -583,7 +588,7 @@ def compiler(defptr)#0
|
||||
VX++ //^codeptr = $E8; codeptr++ // INX
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $42
|
||||
//puts("ISNE")
|
||||
@ -610,7 +615,7 @@ def compiler(defptr)#0
|
||||
VX++ //^codeptr = $E8; codeptr++ // INX
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $44
|
||||
//puts("ISGT")
|
||||
@ -639,11 +644,11 @@ def compiler(defptr)#0
|
||||
VX++ //^codeptr = $E8; codeptr++ // INX
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $46
|
||||
//puts("ISLT")
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -670,11 +675,11 @@ def compiler(defptr)#0
|
||||
VX++ //^codeptr = $E8; codeptr++ // INX
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $48
|
||||
//puts("ISGE")
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -701,11 +706,11 @@ def compiler(defptr)#0
|
||||
VX++ //^codeptr = $E8; codeptr++ // INX
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $4A
|
||||
//puts("ISLE")
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -730,7 +735,7 @@ def compiler(defptr)#0
|
||||
VX++ //^codeptr = $E8; codeptr++ // INX
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $4C
|
||||
i++
|
||||
@ -785,7 +790,7 @@ def compiler(defptr)#0
|
||||
i++
|
||||
//puts("BRNCH "); puti(dest)
|
||||
codeptr, VX = resolveX(codeptr, VX)
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -860,7 +865,7 @@ def compiler(defptr)#0
|
||||
//
|
||||
// Call address
|
||||
//
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -905,7 +910,7 @@ def compiler(defptr)#0
|
||||
//
|
||||
// Call into VM
|
||||
//
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -918,7 +923,7 @@ def compiler(defptr)#0
|
||||
break
|
||||
is $5C
|
||||
//puts("RET")
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -929,7 +934,7 @@ def compiler(defptr)#0
|
||||
is $5E
|
||||
i++
|
||||
//puts("CFFB $FF"); putb(^(bytecode+i))
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -942,7 +947,7 @@ def compiler(defptr)#0
|
||||
^codeptr = ^(bytecode+i); codeptr++
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
// LB,LW,LLB,LLW,LAB,LAW,DLB,DLW ; 60 62 64 66 68 6A 6C 6E
|
||||
is $60
|
||||
@ -959,7 +964,7 @@ def compiler(defptr)#0
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $62
|
||||
//puts("LW")
|
||||
@ -988,7 +993,7 @@ def compiler(defptr)#0
|
||||
is $64
|
||||
i++
|
||||
//puts("LLB "); puti(^(bytecode+i))
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -1007,12 +1012,12 @@ def compiler(defptr)#0
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $66
|
||||
i++
|
||||
//puts("LLW "); puti(^(bytecode+i))
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -1041,7 +1046,7 @@ def compiler(defptr)#0
|
||||
is $68
|
||||
i++
|
||||
//puts("LAB $"); puth(*(bytecode+i))
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -1052,13 +1057,13 @@ def compiler(defptr)#0
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
i++
|
||||
break
|
||||
is $6A
|
||||
i++
|
||||
//puts("LAW $"); puth(*(bytecode+i))
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -1071,7 +1076,7 @@ def compiler(defptr)#0
|
||||
*codeptr = *(bytecode+i); codeptr = codeptr + 2
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
i++
|
||||
break
|
||||
is $6C
|
||||
@ -1080,6 +1085,7 @@ def compiler(defptr)#0
|
||||
if not A_IS_TOSL
|
||||
^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TOSL_CLEAN
|
||||
fin
|
||||
if ^(bytecode+i) <> 0
|
||||
^codeptr = $A0; codeptr++ // LDY #imm
|
||||
@ -1091,12 +1097,11 @@ def compiler(defptr)#0
|
||||
^codeptr = $A0; codeptr++ // LDY #imm
|
||||
^codeptr = $00; codeptr++ // $00
|
||||
fin
|
||||
A_IS_TOSL = TRUE
|
||||
break
|
||||
is $6E
|
||||
i++
|
||||
//puts("DLW "); puti(^(bytecode+i))
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -1119,7 +1124,7 @@ def compiler(defptr)#0
|
||||
^codeptr = $A0; codeptr++ // LDY #imm
|
||||
^codeptr = $00; codeptr++ // $00
|
||||
fin
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_CLEAN
|
||||
break
|
||||
// SB,SW,SLB,SLW,SAB,SAW,DAB,DAW ; 70 72 74 76 78 7A 7C 7E
|
||||
is $70
|
||||
@ -1249,10 +1254,10 @@ def compiler(defptr)#0
|
||||
if not A_IS_TOSL
|
||||
^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TOSL_CLEAN
|
||||
fin
|
||||
^codeptr = $8D; codeptr++ // STA abs
|
||||
*codeptr = *(bytecode+i); codeptr = codeptr + 2
|
||||
A_IS_TOSL = TRUE
|
||||
i++
|
||||
break
|
||||
is $7E
|
||||
@ -1270,7 +1275,7 @@ def compiler(defptr)#0
|
||||
*codeptr = *(bytecode+i)+1; codeptr = codeptr + 2
|
||||
^codeptr = $A0; codeptr++ // LDY #imm
|
||||
^codeptr = $00; codeptr++ // $00
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_CLEAN
|
||||
i++
|
||||
break
|
||||
// LNOT,ADD,SUB,MUL,DIV,MOD,INCR,DECR ; 80 82 84 86 88 8A 8C 8E
|
||||
@ -1292,7 +1297,7 @@ def compiler(defptr)#0
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $82
|
||||
//puts("ADD")
|
||||
@ -1316,7 +1321,7 @@ def compiler(defptr)#0
|
||||
break
|
||||
is $84
|
||||
//puts("SUB")
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -1357,7 +1362,7 @@ def compiler(defptr)#0
|
||||
//
|
||||
// Call into VM
|
||||
//
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -1385,7 +1390,7 @@ def compiler(defptr)#0
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $8E
|
||||
//puts("DECR")
|
||||
@ -1402,12 +1407,12 @@ def compiler(defptr)#0
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
// NEG,COMP,BAND,IOR,XOR,SHL,SHR,IDXW ; 90 92 94 96 98 9A 9C 9E
|
||||
is $90
|
||||
//puts("NEG")
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -1529,7 +1534,7 @@ def compiler(defptr)#0
|
||||
//puts("BRGT "); puti(dest)
|
||||
i++
|
||||
codeptr, VX = resolveX(codeptr, VX)
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -1750,7 +1755,7 @@ def compiler(defptr)#0
|
||||
//
|
||||
// SUB
|
||||
//
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -1802,7 +1807,7 @@ def compiler(defptr)#0
|
||||
i++
|
||||
//puts("BRAND "); puti(dest)
|
||||
codeptr, VX = resolveX(codeptr, VX)
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
else
|
||||
@ -1828,7 +1833,7 @@ def compiler(defptr)#0
|
||||
i++
|
||||
//puts("BROR "); puti(dest)
|
||||
codeptr, VX = resolveX(codeptr, VX)
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
else
|
||||
@ -1873,7 +1878,7 @@ def compiler(defptr)#0
|
||||
fin
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $B2
|
||||
i++
|
||||
@ -1922,7 +1927,7 @@ def compiler(defptr)#0
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
A_IS_TOSL = TRUE
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
i++
|
||||
break
|
||||
is $B6
|
||||
@ -1949,7 +1954,7 @@ def compiler(defptr)#0
|
||||
is $B8
|
||||
i++
|
||||
//puts("IDXLB "); puti(^(bytecode+i))
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -1984,7 +1989,7 @@ def compiler(defptr)#0
|
||||
is $BA
|
||||
i++
|
||||
//puts("IDXLW "); puti(^(bytecode+i))
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -2021,7 +2026,7 @@ def compiler(defptr)#0
|
||||
is $BC
|
||||
i++
|
||||
//puts("IDXAB $"); puth(*(bytecode+i))
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
@ -2049,7 +2054,7 @@ def compiler(defptr)#0
|
||||
is $BE
|
||||
i++
|
||||
//puts("IDXAW $"); puth(*(bytecode+i))
|
||||
if A_IS_TOSL
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
fin
|
||||
|
Loading…
Reference in New Issue
Block a user