1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2024-08-25 18:29:11 +00:00

WIP opcodes $40-$4E

This commit is contained in:
David Schmenk 2018-03-24 17:17:06 -07:00
parent 6cfb957df4
commit 2c9373c962

View File

@ -584,7 +584,7 @@ def compiler(defptr)#0
*codeptr = $D0B5+(VX<<8) // LDA ESTKL,X
codeptr = codeptr + 2
fin
codeptr->0 = $18 // CLC
codeptr->0 = $38 // SEC
//^codeptr = $38; codeptr++ // SEC
codeptr=>1 = $E9+(^(bytecode+i)<<8) // SBC #imm
//^codeptr = $E9; codeptr++ // SBC #imm
@ -637,8 +637,8 @@ def compiler(defptr)#0
is $40
//puts("ISEQ")
if not A_IS_TOSL
^codeptr = $B5; codeptr++ // LDA zp,X
^codeptr = $D0+VX; codeptr++ // ESTKL
*codeptr = $D0B5+(VX<<8) // LDA ESTKL,X
codeptr = codeptr + 2
fin
^codeptr = $D5; codeptr++ // CMP zp,X
^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
@ -656,7 +656,7 @@ def compiler(defptr)#0
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
^codeptr = $A0; codeptr++ // LDY #imm
^codeptr = $00; codeptr++ // $00
VX++ //^codeptr = $E8; codeptr++ // INX
VX++ // INX
//^codeptr = $95; codeptr++ // STA zp,X
//^codeptr = $D0+VX; codeptr++ // ESTKL
A_IS_TOSL = TOSL_DIRTY
@ -664,8 +664,8 @@ def compiler(defptr)#0
is $42
//puts("ISNE")
if not A_IS_TOSL
^codeptr = $B5; codeptr++ // LDA zp,X
^codeptr = $D0+VX; codeptr++ // ESTKL
*codeptr = $D0B5+(VX<<8) // LDA ESTKL,X
codeptr = codeptr + 2
fin
^codeptr = $D5; codeptr++ // CMP zp,X
^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
@ -683,7 +683,7 @@ def compiler(defptr)#0
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
^codeptr = $A0; codeptr++ // LDY #imm
^codeptr = $00; codeptr++ // $00
VX++ //^codeptr = $E8; codeptr++ // INX
VX++ // INX
//^codeptr = $95; codeptr++ // STA zp,X
//^codeptr = $D0+VX; codeptr++ // ESTKL
A_IS_TOSL = TOSL_DIRTY
@ -691,8 +691,8 @@ def compiler(defptr)#0
is $44
//puts("ISGT")
if not A_IS_TOSL
^codeptr = $B5; codeptr++ // LDA zp,X
^codeptr = $D0+VX; codeptr++ // ESTKL
*codeptr = $D0B5+(VX<<8) // LDA ESTKL,X
codeptr = codeptr + 2
fin
^codeptr = $D5; codeptr++ // CMP zp,X
^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
@ -712,7 +712,7 @@ def compiler(defptr)#0
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
^codeptr = $A0; codeptr++ // LDY #imm
^codeptr = $00; codeptr++ // $00
VX++ //^codeptr = $E8; codeptr++ // INX
VX++ // INX
//^codeptr = $95; codeptr++ // STA zp,X
//^codeptr = $D0+VX; codeptr++ // ESTKL
A_IS_TOSL = TOSL_DIRTY
@ -743,7 +743,7 @@ def compiler(defptr)#0
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
^codeptr = $A0; codeptr++ // LDY #imm
^codeptr = $00; codeptr++ // $00
VX++ //^codeptr = $E8; codeptr++ // INX
VX++ // INX
//^codeptr = $95; codeptr++ // STA zp,X
//^codeptr = $D0+VX; codeptr++ // ESTKL
A_IS_TOSL = TOSL_DIRTY
@ -774,7 +774,7 @@ def compiler(defptr)#0
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
^codeptr = $A0; codeptr++ // LDY #imm
^codeptr = $00; codeptr++ // $00
VX++ //^codeptr = $E8; codeptr++ // INX
VX++ // INX
//^codeptr = $95; codeptr++ // STA zp,X
//^codeptr = $D0+VX; codeptr++ // ESTKL
A_IS_TOSL = TOSL_DIRTY
@ -782,8 +782,8 @@ def compiler(defptr)#0
is $4A
//puts("ISLE")
if not A_IS_TOSL
^codeptr = $B5; codeptr++ // LDA zp,X
^codeptr = $D0+VX; codeptr++ // ESTKL
*codeptr = $D0B5+(VX<<8) // LDA ESTKL,X
codeptr = codeptr + 2
fin
^codeptr = $D5; codeptr++ // CMP zp,X
^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
@ -803,7 +803,7 @@ def compiler(defptr)#0
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
^codeptr = $A0; codeptr++ // LDY #imm
^codeptr = $00; codeptr++ // $00
VX++ //^codeptr = $E8; codeptr++ // INX
VX++ // INX
//^codeptr = $95; codeptr++ // STA zp,X
//^codeptr = $D0+VX; codeptr++ // ESTKL
A_IS_TOSL = TOSL_DIRTY
@ -816,8 +816,8 @@ def compiler(defptr)#0
//VX++ //^codeptr = $E8; codeptr++ // INX
codeptr, VX = resolveX(codeptr, VX + 1)
if not A_IS_TOSL
^codeptr = $B5; codeptr++ // LDA zp,X
^codeptr = $D0-1+VX; codeptr++ // ESTKL-1
*codeptr = ($D0B5-$0100)+(VX<<8) // LDA ESTKL-1,X
codeptr = codeptr + 2
fin
^codeptr = $15; codeptr++ // ORA zp,X
^codeptr = $C0-1+VX; codeptr++ // ESTKH-1
@ -839,8 +839,8 @@ def compiler(defptr)#0
//VX++ //^codeptr = $E8; codeptr++ // INX
codeptr, VX = resolveX(codeptr, VX + 1)
if not A_IS_TOSL
^codeptr = $B5; codeptr++ // LDA zp,X
^codeptr = $D0-1+VX; codeptr++ // ESTKL-1
*codeptr = ($D0B5-$0100)+(VX<<8) // LDA ESTKL-1,X
codeptr = codeptr + 2
fin
^codeptr = $15; codeptr++ // ORA zp,X
^codeptr = $C0-1+VX; codeptr++ // ESTKH-1