From 2c9373c962ad3f976604fd8ae861784bfc8b3103 Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Sat, 24 Mar 2018 17:17:06 -0700 Subject: [PATCH] WIP opcodes $40-$4E --- src/libsrc/apple/jit.pla | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/libsrc/apple/jit.pla b/src/libsrc/apple/jit.pla index d02f4bb..4f5c27f 100644 --- a/src/libsrc/apple/jit.pla +++ b/src/libsrc/apple/jit.pla @@ -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