diff --git a/src/libsrc/apple/cleanjit.pla b/src/libsrc/apple/cleanjit.pla
index 8a86ff2..d8a6cb3 100644
--- a/src/libsrc/apple/cleanjit.pla
+++ b/src/libsrc/apple/cleanjit.pla
@@ -87,16 +87,10 @@ def compiler(defptr)#0
     //
     isdata = addrxlate // Use this buffer
     i = 0
-    while i <= defptr->bytecodesize
+    while i < defptr->bytecodesize
         if not ^(isdata+i)
             when (^(bytecode+i) & $FE)
                 //
-                // Multi-byte operands
-                //
-                is $2E // CS
-                    i = i + ^(bytecode+i+1)// + 1
-                    break
-                //
                 // Double byte operands
                 //
                 is $26 // LA
@@ -113,7 +107,13 @@ def compiler(defptr)#0
                 is $B6 // ADDAW
                 is $BC // IDXAB
                 is $BE // IDXAW
-                    i++
+                    i = i + 2
+                    break
+                //
+                // Multi-byte operands
+                //
+                is $2E // CS
+                    i = i + ^(bytecode+i+1)
                 //
                 // Single byte operands
                 //
@@ -340,8 +340,8 @@ def compiler(defptr)#0
                     break
                 is $26 // LA
                 is $2C // CW
-                    i++
-                    dest = *(bytecode+i)
+                    dest = *(bytecode+i+1)
+                    i    = i + 2
                     //puts("LA/CW $"); puth(dest)
                     if A_IS_TOSL & TOS_DIRTY
                         *codeptr = $D095+(VX<<8)  // STA ESTKL,X
@@ -353,7 +353,6 @@ def compiler(defptr)#0
                     codeptr=>4 = $A9+(dest<<8)    // LDA #>VAL
                     codeptr    = codeptr + 6
                     A_IS_TOSL = TOS_DIRTY         // STA ESTKL,X
-                    i++
                     break
                 is $28 // LLA
                     i++
@@ -758,7 +757,6 @@ def compiler(defptr)#0
                     A_IS_TOSL = FALSE
                     break
                 is $54 // CALL
-                    i++
                     //puts("CALL $"); puth(*(bytecode+i))
                     //
                     // Call address
@@ -769,11 +767,11 @@ def compiler(defptr)#0
                         codeptr  = codeptr + 2
                     fin
                     codeptr->0 = $20               // JSR abs
-                    codeptr=>1 = *(bytecode+i)
+                    codeptr=>1 = *(bytecode+i+1)
                     codeptr    = codeptr + 3
                     VY         = UNKNOWN
                     A_IS_TOSL  = FALSE
-                    i++
+                    i          = i + 2
                     break
                 is $56 // ICAL
                     //puts("ICAL")
@@ -941,8 +939,8 @@ def compiler(defptr)#0
                     i++
                     break
                 is $6A // LAW
-                    i++
-                    dest = *(bytecode+i)
+                    dest = *(bytecode+i+1)
+                    i    = i + 2
                     //puts("LAW $"); puth(dest)
                     if A_IS_TOSL & TOS_DIRTY
                         *codeptr = $D095+(VX<<8) // STA ESTKL,X
@@ -956,7 +954,6 @@ def compiler(defptr)#0
                     codeptr=>6 = dest
                     codeptr    = codeptr + 8
                     A_IS_TOSL  = TOS_DIRTY       // STA ESTKL,X
-                    i++
                     break
                 is $6C // DLB
                     i++
@@ -968,11 +965,18 @@ def compiler(defptr)#0
                         A_IS_TOSL = TOS_CLEAN
                     fin
                     if VY <> j
-                        *codeptr = $A0+(j<<8)    // LDY #imm
+                        *codeptr = $A0+(j<<8)     // LDY #imm
                         codeptr  = codeptr + 2
                         VY       = j
                     fin
-                    *codeptr = $E091             // STA (IFP),Y
+                    *codeptr = $E091              // STA (IFP),Y
+                    codeptr  = codeptr + 2
+                    if VY <> 0
+                        *codeptr = $00A0          // LDY #$00
+                        codeptr  = codeptr + 2
+                        VY       = 0
+                    fin
+                    *codeptr = $C094+(VX<<8)      // STY ESTKH,X
                     codeptr  = codeptr + 2
                     break
                 is $6E // DLW
@@ -1069,22 +1073,22 @@ def compiler(defptr)#0
                     A_IS_TOSL  = FALSE
                     break
                 is $78 // SAB
-                    i++
+                    dest = *(bytecode+i+1)
+                    i    = i + 2
                     //puts("SAB $"); puth(*(bytecode+i))
                     if not A_IS_TOSL
                         *codeptr = $D0B5+(VX<<8) // LDA ESTKL,X
                         codeptr  = codeptr + 2
                     fin
                     codeptr->0 = $8D             // STA abs
-                    codeptr=>1 = *(bytecode+i)
+                    codeptr=>1 = dest
                     codeptr    = codeptr + 3
                     VX++                         // INX
                     A_IS_TOSL  = FALSE
-                    i++
                     break
                 is $7A // SAW
-                    i++
-                    dest = *(bytecode+i)
+                    dest = *(bytecode+i+1)
+                    i    = i + 2
                     //puts("SAW $"); puth(dest)
                     if not A_IS_TOSL
                         *codeptr = $D0B5+(VX<<8) // LDA ESTKL,X
@@ -1098,24 +1102,29 @@ def compiler(defptr)#0
                     codeptr    = codeptr + 8
                     VX++                         // INX
                     A_IS_TOSL  = FALSE
-                    i++
                     break
                 is $7C // DAB
-                    i++
+                    dest = *(bytecode+i+1)
+                    i    = i + 2
                     //puts("DAB $"); puth(*(bytecode+i))
                     if not A_IS_TOSL
                         *codeptr  = $D0B5+(VX<<8) // LDA ESTKL,X
                         codeptr   = codeptr + 2
                         A_IS_TOSL = TOS_CLEAN
                     fin
+                    if VY <> 0
+                        *codeptr = $00A0          // LDY #$00
+                        codeptr  = codeptr + 2
+                        VY       = 0
+                    fin
                     codeptr->0 = $8D              // STA abs
-                    codeptr=>1 = *(bytecode+i)
-                    codeptr    = codeptr + 3
-                    i++
+                    codeptr=>1 = dest
+                    codeptr=>3 = $C094+(VX<<8)    // STY ESTKH,X
+                    codeptr    = codeptr + 5
                     break
                 is $7E // DAW
-                    i++
-                    dest = *(bytecode+i)
+                    dest = *(bytecode+i+1)
+                    i    = i + 2
                     //puts("DAW $"); puth(*(bytecode+i))
                     if not A_IS_TOSL
                         *codeptr  = $D0B5+(VX<<8) // LDA ESTKL,X
@@ -1129,7 +1138,6 @@ def compiler(defptr)#0
                     codeptr=>6 = dest+1
                     codeptr    = codeptr + 8
                     VY         = UNKNOWN
-                    i++
                     break
                 is $80 // NOT
                     //puts("NOT")
@@ -1630,24 +1638,23 @@ def compiler(defptr)#0
                     A_IS_TOSL = FALSE
                     break
                 is $B4 // ADDAB
-                    i++
+                    dest = *(bytecode+i+1)
+                    i    = i + 2
                     //puts("ADDAB $"); puth(*(bytecode+i))
                     if not A_IS_TOSL
                         *codeptr = $D0B5+(VX<<8) // LDA ESTKL,X
                         codeptr  = codeptr + 2
                     fin
                     codeptr=>0 = $6D18           // CLC; ADC abs                    
-                    codeptr=>2 = *(bytecode+i)
+                    codeptr=>2 = dest
                     codeptr=>4 = $0290           // BCC +2
                     codeptr=>6 = $C0F6+(VX<<8)   // INC ESTKH,X
                     codeptr    = codeptr + 8
                     A_IS_TOSL  = TOS_DIRTY       // STA ESTKL,X
-                    i++
                     break
                 is $B6 // ADDAW
-                    i++
-                    dest = *(bytecode+i)
-                    i++
+                    dest = *(bytecode+i+1)
+                    i    = i + 2
                     //puts("ADDAW $"); puth(dest)
                     if not A_IS_TOSL
                         *codeptr = $D0B5+(VX<<8) // LDA ESTKL,X
@@ -1723,7 +1730,8 @@ def compiler(defptr)#0
                     A_IS_TOSL   = FALSE
                     break
                 is $BC // IDXAB
-                    i++
+                    dest = *(bytecode+i+1)
+                    i    = i + 2
                     //puts("IDXAB $"); puth(*(bytecode+i))
                     if A_IS_TOSL & TOS_DIRTY
                         *codeptr = $D095+(VX<<8) // STA ESTKL,X
@@ -1734,7 +1742,7 @@ def compiler(defptr)#0
                         codeptr  = codeptr + 2
                     fin
                     codeptr->0  = $AD            // LDA abs
-                    codeptr=>1  = *(bytecode+i)
+                    codeptr=>1  = dest
                     codeptr->3  = $0A            // ASL
                     codeptr=>4  = $0290          // BCC +2
                     codeptr=>6  = $18C8          // INY; CLC
@@ -1746,12 +1754,10 @@ def compiler(defptr)#0
                     codeptr     = codeptr + 17
                     VY          = UNKNOWN
                     A_IS_TOSL   = FALSE
-                    i++
                     break
-                is $BE
-                    i++
-                    dest = *(bytecode+i)
-                    i++
+                is $BE // IDXAW
+                    dest = *(bytecode+i+1)
+                    i    = i + 2
                     //puts("IDXAW $"); puth(dest)
                     if A_IS_TOSL & TOS_DIRTY
                         *codeptr = $D095+(VX<<8) // STA ESTKL,X
diff --git a/src/libsrc/jitcore.pla b/src/libsrc/jitcore.pla
index 752caeb..ccfc336 100644
--- a/src/libsrc/jitcore.pla
+++ b/src/libsrc/jitcore.pla
@@ -851,18 +851,18 @@ def compiler(defptr)#0
                         A_IS_TOSL = TOS_CLEAN
                     fin
                     if VY <> j
-                        *codeptr = $A0+(j<<8)    // LDY #imm
+                        *codeptr = $A0+(j<<8)     // LDY #imm
                         codeptr  = codeptr + 2
                         VY       = j
                     fin
-                    *codeptr = $E091            // STA (IFP),Y
+                    *codeptr = $E091              // STA (IFP),Y
                     codeptr  = codeptr + 2
                     if VY <> 0
-                        *codeptr = $00A0       // LDY #$00
+                        *codeptr = $00A0          // LDY #$00
                         codeptr  = codeptr + 2
                         VY       = 0
                     fin
-                    *codeptr = $C094+(VX<<8)   // STY ESTKH,X
+                    *codeptr = $C094+(VX<<8)      // STY ESTKH,X
                     codeptr  = codeptr + 2
                  break
                 is $6E // DLW
@@ -1474,7 +1474,8 @@ def compiler(defptr)#0
                     A_IS_TOSL   = FALSE
                     break
                 is $BC // IDXAB
-                    i++
+                    dest = *(bytecode+i+1)
+                    i    = i + 2
                     //puts("IDXAB $"); puth(*(bytecode+i))
                     if A_IS_TOSL & TOS_DIRTY
                         *codeptr = $D095+(VX<<8) // STA ESTKL,X
@@ -1485,7 +1486,7 @@ def compiler(defptr)#0
                         codeptr  = codeptr + 2
                     fin
                     codeptr->0  = $AD            // LDA abs
-                    codeptr=>1  = *(bytecode+i)
+                    codeptr=>1  = dest
                     codeptr->3  = $0A            // ASL
                     codeptr=>4  = $0290          // BCC +2
                     codeptr=>6  = $18C8          // INY; CLC
@@ -1497,7 +1498,6 @@ def compiler(defptr)#0
                     codeptr     = codeptr + 17
                     VY          = UNKNOWN
                     A_IS_TOSL   = FALSE
-                    i++
                     break
                 is $BE // IDXAW
                     dest = *(bytecode+i+1)