diff --git a/PLASMA-BLD2.PO b/PLASMA-BLD2.PO index 0f5e150..0d1691e 100644 Binary files a/PLASMA-BLD2.PO and b/PLASMA-BLD2.PO differ diff --git a/PLASMA-DEM2.PO b/PLASMA-DEM2.PO index 1ee5364..1bca81b 100644 Binary files a/PLASMA-DEM2.PO and b/PLASMA-DEM2.PO differ diff --git a/PLASMA-SYS2.PO b/PLASMA-SYS2.PO index bf5330d..ab8573b 100755 Binary files a/PLASMA-SYS2.PO and b/PLASMA-SYS2.PO differ diff --git a/src/libsrc/jit16core.pla b/src/libsrc/jit16core.pla index a04dd93..e86c8e9 100644 --- a/src/libsrc/jit16core.pla +++ b/src/libsrc/jit16core.pla @@ -366,14 +366,6 @@ def compiler(defptr)#0 codeptr = codeptr + 4 A_IS_TOS = TRUE // PHA break - is $8C // INCR - //puts("INCR") - if not A_IS_TOS - ^codeptr = $68; codeptr++ // PLA - fin - ^codeptr = $1A; codeptr++ // INC A - A_IS_TOS = TRUE // PHA - break is $3A // SUBI i++ //puts("SUBI $"); putb(^(bytecode+i)) @@ -385,14 +377,6 @@ def compiler(defptr)#0 codeptr = codeptr + 4 A_IS_TOS = TRUE // PHA break - is $8E // DECR - //puts("DECR") - if not A_IS_TOS - ^codeptr = $68; codeptr++ // PLA - fin - ^codeptr = $3A; codeptr++ // DEC A - A_IS_TOS = TRUE // PHA - break is $3C // ANDI i++ //puts("ANDI $"); putb(^(bytecode+i)) @@ -441,12 +425,12 @@ def compiler(defptr)#0 ^codeptr = $68; codeptr++ // PLA fin codeptr->0 = $A0 // LDY #$0000 - codeptr=>1 = $0000 - codeptr->3 = $38 // SEC - codeptr=>4 = $E3+(TOS<<8) // SBC TOS,S - codeptr=>6 = $0350 // BVC +3 - codeptr->8 = $49 // EOR #$8000 - codeptr=>9 = $8000 + codeptr=>1 = $0000 + codeptr->3 = $38 // SEC + codeptr=>4 = $E3+(TOS<<8) // SBC TOS,S + codeptr=>6 = $0350 // BVC +3 + codeptr->8 = $49 // EOR #$8000 + codeptr=>9 = $8000 if opcode == $44 //puts("ISGT") codeptr=>11 = $0110 // BPL +1 @@ -895,6 +879,22 @@ def compiler(defptr)#0 X_IS_IFP = FALSE A_IS_TOS = FALSE break + is $8C // INCR + //puts("INCR") + if not A_IS_TOS + ^codeptr = $68; codeptr++ // PLA + fin + ^codeptr = $1A; codeptr++ // INC A + A_IS_TOS = TRUE // PHA + break + is $8E // DECR + //puts("DECR") + if not A_IS_TOS + ^codeptr = $68; codeptr++ // PLA + fin + ^codeptr = $3A; codeptr++ // DEC A + A_IS_TOS = TRUE // PHA + break is $90 // NEG //puts("NEG") if not A_IS_TOS