diff --git a/src/test/ref/bitmap-line-anim-1.asm b/src/test/ref/bitmap-line-anim-1.asm
index d61448a71..a52b67ce7 100644
--- a/src/test/ref/bitmap-line-anim-1.asm
+++ b/src/test/ref/bitmap-line-anim-1.asm
@@ -514,8 +514,9 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // *plotter |= bitmap_plot_bit[(char)x]
+    // BYTE0(x)
     ldx.z x
+    // *plotter |= bitmap_plot_bit[BYTE0(x)]
     lda bitmap_plot_bit,x
     ldy #0
     ora (plotter),y
diff --git a/src/test/ref/bitmap-line-anim-1.cfg b/src/test/ref/bitmap-line-anim-1.cfg
index 65170e9ab..4edaec324 100644
--- a/src/test/ref/bitmap-line-anim-1.cfg
+++ b/src/test/ref/bitmap-line-anim-1.cfg
@@ -252,7 +252,7 @@ bitmap_plot: scope:[bitmap_plot]  from bitmap_line::@3 bitmap_line::@4 bitmap_li
   [118] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4]
   [119] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
   [120] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
-  [121] bitmap_plot::$1 = (byte)bitmap_plot::x#4
+  [121] bitmap_plot::$1 = < bitmap_plot::x#4
   [122] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
   to:bitmap_plot::@return
 bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
diff --git a/src/test/ref/bitmap-line-anim-1.log b/src/test/ref/bitmap-line-anim-1.log
index 0f1651b20..81d9b0bbd 100644
--- a/src/test/ref/bitmap-line-anim-1.log
+++ b/src/test/ref/bitmap-line-anim-1.log
@@ -125,7 +125,7 @@ bitmap_plot: scope:[bitmap_plot]  from bitmap_line::@3 bitmap_line::@4 bitmap_li
   bitmap_plot::plotter#0 = (byte*){ bitmap_plot_yhi[bitmap_plot::y#4], bitmap_plot_ylo[bitmap_plot::y#4] }
   bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
   bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$0
-  bitmap_plot::$1 = (byte)bitmap_plot::x#4
+  bitmap_plot::$1 = < bitmap_plot::x#4
   *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
   to:bitmap_plot::@return
 bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
@@ -1818,7 +1818,7 @@ bitmap_plot: scope:[bitmap_plot]  from bitmap_line::@3 bitmap_line::@4 bitmap_li
   [118] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4]
   [119] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
   [120] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
-  [121] bitmap_plot::$1 = (byte)bitmap_plot::x#4
+  [121] bitmap_plot::$1 = < bitmap_plot::x#4
   [122] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
   to:bitmap_plot::@return
 bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
@@ -1914,7 +1914,7 @@ word bitmap_plot::x
 word bitmap_plot::x#1 10001.0
 word bitmap_plot::x#2 101.0
 word bitmap_plot::x#3 10001.0
-word bitmap_plot::x#4 30026.0
+word bitmap_plot::x#4 55026.25
 byte bitmap_plot::y
 byte bitmap_plot::y#1 20002.0
 byte bitmap_plot::y#2 202.0
@@ -2226,7 +2226,7 @@ Potential registers zp[2]:66 [ bitmap_plot::plotter#1 ] : zp[2]:66 ,
 Potential registers zp[1]:68 [ bitmap_plot::$1 ] : zp[1]:68 , reg byte a , reg byte x , reg byte y , 
 
 REGISTER UPLIFT SCOPES
-Uplift Scope [bitmap_plot] 260,311: zp[1]:31 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#1 bitmap_plot::y#3 ] 200,002: zp[2]:64 [ bitmap_plot::$0 ] 200,002: zp[1]:68 [ bitmap_plot::$1 ] 150,001.5: zp[2]:66 [ bitmap_plot::plotter#1 ] 50,129: zp[2]:32 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ] 50,000.5: zp[2]:62 [ bitmap_plot::plotter#0 ] 
+Uplift Scope [bitmap_plot] 260,311: zp[1]:31 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#1 bitmap_plot::y#3 ] 200,002: zp[2]:64 [ bitmap_plot::$0 ] 200,002: zp[1]:68 [ bitmap_plot::$1 ] 150,001.5: zp[2]:66 [ bitmap_plot::plotter#1 ] 75,129.25: zp[2]:32 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ] 50,000.5: zp[2]:62 [ bitmap_plot::plotter#0 ] 
 Uplift Scope [bitmap_line] 69,036.46: zp[2]:12 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#12 bitmap_line::x#1 ] 55,005.5: zp[2]:14 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y#1 bitmap_line::y#2 ] 52,560.77: zp[2]:10 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] 52,560.77: zp[2]:16 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] 868.77: zp[2]:46 [ bitmap_line::dy#0 ] 800.18: zp[2]:42 [ bitmap_line::dx#0 ] 773.19: zp[2]:54 [ bitmap_line::sy#0 ] 693.21: zp[2]:50 [ bitmap_line::sx#0 ] 340.47: zp[2]:34 [ bitmap_line::x2#0 ] 
 Uplift Scope [abs_u16] 3,531: zp[2]:25 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 ] 2,002: zp[1]:58 [ abs_u16::$0 ] 2,002: zp[1]:59 [ abs_u16::$1 ] 202: zp[2]:40 [ abs_u16::return#0 ] 202: zp[2]:44 [ abs_u16::return#1 ] 
 Uplift Scope [sgn_u16] 2,002: zp[1]:60 [ sgn_u16::$0 ] 2,002: zp[1]:61 [ sgn_u16::$1 ] 1,304: zp[2]:27 [ sgn_u16::w#2 sgn_u16::w#0 ] 202: zp[2]:48 [ sgn_u16::return#0 ] 202: zp[2]:52 [ sgn_u16::return#1 ] 50.5: zp[2]:29 [ sgn_u16::return#4 ] 
@@ -3088,7 +3088,7 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // [121] bitmap_plot::$1 = (byte)bitmap_plot::x#4 -- vbuxx=_byte_vwuz1 
+    // [121] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1 
     ldx.z x
     // [122] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx 
     lda bitmap_plot_bit,x
@@ -3364,7 +3364,7 @@ word bitmap_plot::x
 word bitmap_plot::x#1 x zp[2]:8 10001.0
 word bitmap_plot::x#2 x zp[2]:8 101.0
 word bitmap_plot::x#3 x zp[2]:8 10001.0
-word bitmap_plot::x#4 x zp[2]:8 30026.0
+word bitmap_plot::x#4 x zp[2]:8 55026.25
 byte bitmap_plot::y
 byte bitmap_plot::y#1 reg byte x 20002.0
 byte bitmap_plot::y#2 reg byte x 202.0
@@ -4198,9 +4198,10 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // *plotter |= bitmap_plot_bit[(char)x]
-    // [121] bitmap_plot::$1 = (byte)bitmap_plot::x#4 -- vbuxx=_byte_vwuz1 
+    // BYTE0(x)
+    // [121] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1 
     ldx.z x
+    // *plotter |= bitmap_plot_bit[BYTE0(x)]
     // [122] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx 
     lda bitmap_plot_bit,x
     ldy #0
diff --git a/src/test/ref/bitmap-line-anim-1.sym b/src/test/ref/bitmap-line-anim-1.sym
index 815f5e747..888158e78 100644
--- a/src/test/ref/bitmap-line-anim-1.sym
+++ b/src/test/ref/bitmap-line-anim-1.sym
@@ -99,7 +99,7 @@ word bitmap_plot::x
 word bitmap_plot::x#1 x zp[2]:8 10001.0
 word bitmap_plot::x#2 x zp[2]:8 101.0
 word bitmap_plot::x#3 x zp[2]:8 10001.0
-word bitmap_plot::x#4 x zp[2]:8 30026.0
+word bitmap_plot::x#4 x zp[2]:8 55026.25
 byte bitmap_plot::y
 byte bitmap_plot::y#1 reg byte x 20002.0
 byte bitmap_plot::y#2 reg byte x 202.0
diff --git a/src/test/ref/bitmap-line-anim-2.asm b/src/test/ref/bitmap-line-anim-2.asm
index 8be09f07b..bf110dc29 100644
--- a/src/test/ref/bitmap-line-anim-2.asm
+++ b/src/test/ref/bitmap-line-anim-2.asm
@@ -495,8 +495,9 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // *plotter |= bitmap_plot_bit[(char)x]
+    // BYTE0(x)
     ldx.z x
+    // *plotter |= bitmap_plot_bit[BYTE0(x)]
     lda bitmap_plot_bit,x
     ldy #0
     ora (plotter),y
diff --git a/src/test/ref/bitmap-line-anim-2.cfg b/src/test/ref/bitmap-line-anim-2.cfg
index 945e9606c..8baee8a68 100644
--- a/src/test/ref/bitmap-line-anim-2.cfg
+++ b/src/test/ref/bitmap-line-anim-2.cfg
@@ -239,7 +239,7 @@ bitmap_plot: scope:[bitmap_plot]  from bitmap_line::@3 bitmap_line::@4 bitmap_li
   [113] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4]
   [114] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
   [115] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
-  [116] bitmap_plot::$1 = (byte)bitmap_plot::x#4
+  [116] bitmap_plot::$1 = < bitmap_plot::x#4
   [117] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
   to:bitmap_plot::@return
 bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
diff --git a/src/test/ref/bitmap-line-anim-2.log b/src/test/ref/bitmap-line-anim-2.log
index 3a1f831cd..78b919cd6 100644
--- a/src/test/ref/bitmap-line-anim-2.log
+++ b/src/test/ref/bitmap-line-anim-2.log
@@ -125,7 +125,7 @@ bitmap_plot: scope:[bitmap_plot]  from bitmap_line::@3 bitmap_line::@4 bitmap_li
   bitmap_plot::plotter#0 = (byte*){ bitmap_plot_yhi[bitmap_plot::y#4], bitmap_plot_ylo[bitmap_plot::y#4] }
   bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
   bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$0
-  bitmap_plot::$1 = (byte)bitmap_plot::x#4
+  bitmap_plot::$1 = < bitmap_plot::x#4
   *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
   to:bitmap_plot::@return
 bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
@@ -1799,7 +1799,7 @@ bitmap_plot: scope:[bitmap_plot]  from bitmap_line::@3 bitmap_line::@4 bitmap_li
   [113] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4]
   [114] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
   [115] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
-  [116] bitmap_plot::$1 = (byte)bitmap_plot::x#4
+  [116] bitmap_plot::$1 = < bitmap_plot::x#4
   [117] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
   to:bitmap_plot::@return
 bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
@@ -1895,7 +1895,7 @@ word bitmap_plot::x
 word bitmap_plot::x#1 10001.0
 word bitmap_plot::x#2 101.0
 word bitmap_plot::x#3 10001.0
-word bitmap_plot::x#4 30026.0
+word bitmap_plot::x#4 55026.25
 byte bitmap_plot::y
 byte bitmap_plot::y#1 20002.0
 byte bitmap_plot::y#2 202.0
@@ -2196,7 +2196,7 @@ Potential registers zp[2]:65 [ bitmap_plot::plotter#1 ] : zp[2]:65 ,
 Potential registers zp[1]:67 [ bitmap_plot::$1 ] : zp[1]:67 , reg byte a , reg byte x , reg byte y , 
 
 REGISTER UPLIFT SCOPES
-Uplift Scope [bitmap_plot] 260,311: zp[1]:30 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#1 bitmap_plot::y#3 ] 200,002: zp[2]:63 [ bitmap_plot::$0 ] 200,002: zp[1]:67 [ bitmap_plot::$1 ] 150,001.5: zp[2]:65 [ bitmap_plot::plotter#1 ] 50,129: zp[2]:31 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ] 50,000.5: zp[2]:61 [ bitmap_plot::plotter#0 ] 
+Uplift Scope [bitmap_plot] 260,311: zp[1]:30 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#1 bitmap_plot::y#3 ] 200,002: zp[2]:63 [ bitmap_plot::$0 ] 200,002: zp[1]:67 [ bitmap_plot::$1 ] 150,001.5: zp[2]:65 [ bitmap_plot::plotter#1 ] 75,129.25: zp[2]:31 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ] 50,000.5: zp[2]:61 [ bitmap_plot::plotter#0 ] 
 Uplift Scope [bitmap_line] 69,036.46: zp[2]:11 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#12 bitmap_line::x#1 ] 55,005.5: zp[2]:13 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y#1 bitmap_line::y#2 ] 52,560.77: zp[2]:9 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] 52,560.77: zp[2]:15 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] 868.77: zp[2]:45 [ bitmap_line::dy#0 ] 800.18: zp[2]:41 [ bitmap_line::dx#0 ] 773.19: zp[2]:53 [ bitmap_line::sy#0 ] 693.21: zp[2]:49 [ bitmap_line::sx#0 ] 340.47: zp[2]:33 [ bitmap_line::x2#0 ] 
 Uplift Scope [abs_u16] 3,531: zp[2]:24 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 ] 2,002: zp[1]:57 [ abs_u16::$0 ] 2,002: zp[1]:58 [ abs_u16::$1 ] 202: zp[2]:39 [ abs_u16::return#0 ] 202: zp[2]:43 [ abs_u16::return#1 ] 
 Uplift Scope [sgn_u16] 2,002: zp[1]:59 [ sgn_u16::$0 ] 2,002: zp[1]:60 [ sgn_u16::$1 ] 1,304: zp[2]:26 [ sgn_u16::w#2 sgn_u16::w#0 ] 202: zp[2]:47 [ sgn_u16::return#0 ] 202: zp[2]:51 [ sgn_u16::return#1 ] 50.5: zp[2]:28 [ sgn_u16::return#4 ] 
@@ -3031,7 +3031,7 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // [116] bitmap_plot::$1 = (byte)bitmap_plot::x#4 -- vbuxx=_byte_vwuz1 
+    // [116] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1 
     ldx.z x
     // [117] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx 
     lda bitmap_plot_bit,x
@@ -3315,7 +3315,7 @@ word bitmap_plot::x
 word bitmap_plot::x#1 x zp[2]:10 10001.0
 word bitmap_plot::x#2 x zp[2]:10 101.0
 word bitmap_plot::x#3 x zp[2]:10 10001.0
-word bitmap_plot::x#4 x zp[2]:10 30026.0
+word bitmap_plot::x#4 x zp[2]:10 55026.25
 byte bitmap_plot::y
 byte bitmap_plot::y#1 reg byte x 20002.0
 byte bitmap_plot::y#2 reg byte x 202.0
@@ -4119,9 +4119,10 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // *plotter |= bitmap_plot_bit[(char)x]
-    // [116] bitmap_plot::$1 = (byte)bitmap_plot::x#4 -- vbuxx=_byte_vwuz1 
+    // BYTE0(x)
+    // [116] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1 
     ldx.z x
+    // *plotter |= bitmap_plot_bit[BYTE0(x)]
     // [117] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx 
     lda bitmap_plot_bit,x
     ldy #0
diff --git a/src/test/ref/bitmap-line-anim-2.sym b/src/test/ref/bitmap-line-anim-2.sym
index a1a82ffc8..3478b30fb 100644
--- a/src/test/ref/bitmap-line-anim-2.sym
+++ b/src/test/ref/bitmap-line-anim-2.sym
@@ -100,7 +100,7 @@ word bitmap_plot::x
 word bitmap_plot::x#1 x zp[2]:10 10001.0
 word bitmap_plot::x#2 x zp[2]:10 101.0
 word bitmap_plot::x#3 x zp[2]:10 10001.0
-word bitmap_plot::x#4 x zp[2]:10 30026.0
+word bitmap_plot::x#4 x zp[2]:10 55026.25
 byte bitmap_plot::y
 byte bitmap_plot::y#1 reg byte x 20002.0
 byte bitmap_plot::y#2 reg byte x 202.0
diff --git a/src/test/ref/bitmap-plot-0.asm b/src/test/ref/bitmap-plot-0.asm
index 7baa38949..7c1e551f1 100644
--- a/src/test/ref/bitmap-plot-0.asm
+++ b/src/test/ref/bitmap-plot-0.asm
@@ -315,8 +315,9 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // *plotter |= bitmap_plot_bit[(char)x]
+    // BYTE0(x)
     ldx.z x
+    // *plotter |= bitmap_plot_bit[BYTE0(x)]
     lda bitmap_plot_bit,x
     ldy #0
     ora (plotter),y
diff --git a/src/test/ref/bitmap-plot-0.cfg b/src/test/ref/bitmap-plot-0.cfg
index 8ffc303bd..e62f7cbe3 100644
--- a/src/test/ref/bitmap-plot-0.cfg
+++ b/src/test/ref/bitmap-plot-0.cfg
@@ -162,7 +162,7 @@ bitmap_plot: scope:[bitmap_plot]  from main::@2
   [71] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0]
   [72] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8
   [73] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
-  [74] bitmap_plot::$1 = (byte)bitmap_plot::x#0
+  [74] bitmap_plot::$1 = < bitmap_plot::x#0
   [75] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
   to:bitmap_plot::@return
 bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
diff --git a/src/test/ref/bitmap-plot-0.log b/src/test/ref/bitmap-plot-0.log
index 9eca6b316..1048fa69f 100644
--- a/src/test/ref/bitmap-plot-0.log
+++ b/src/test/ref/bitmap-plot-0.log
@@ -130,7 +130,7 @@ bitmap_plot: scope:[bitmap_plot]  from main::@2
   bitmap_plot::plotter#0 = (byte*){ bitmap_plot_yhi[bitmap_plot::y#1], bitmap_plot_ylo[bitmap_plot::y#1] }
   bitmap_plot::$0 = bitmap_plot::x#1 & $fff8
   bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$0
-  bitmap_plot::$1 = (byte)bitmap_plot::x#1
+  bitmap_plot::$1 = < bitmap_plot::x#1
   *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
   to:bitmap_plot::@return
 bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
@@ -1296,7 +1296,7 @@ bitmap_plot: scope:[bitmap_plot]  from main::@2
   [71] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0]
   [72] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8
   [73] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
-  [74] bitmap_plot::$1 = (byte)bitmap_plot::x#0
+  [74] bitmap_plot::$1 = < bitmap_plot::x#0
   [75] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
   to:bitmap_plot::@return
 bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
@@ -1362,7 +1362,7 @@ byte* bitmap_plot::plotter
 word bitmap_plot::plotter#0 500.5
 byte* bitmap_plot::plotter#1 1501.5
 word bitmap_plot::x
-word bitmap_plot::x#0 220.39999999999998
+word bitmap_plot::x#0 420.59999999999997
 byte bitmap_plot::y
 byte bitmap_plot::y#0 2103.0
 byte* bitmap_screen
@@ -1584,7 +1584,7 @@ Potential registers zp[2]:35 [ memset::end#0 ] : zp[2]:35 ,
 REGISTER UPLIFT SCOPES
 Uplift Scope [memset] 35,672.33: zp[2]:18 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 1,833.67: zp[2]:35 [ memset::end#0 ] 1,250.12: zp[1]:17 [ memset::c#4 ] 1,001: zp[2]:13 [ memset::num#2 ] 0: zp[2]:15 [ memset::str#3 ] 
 Uplift Scope [bitmap_init] 3,628.62: zp[2]:11 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] 3,169.83: zp[1]:8 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] 2,002: zp[1]:9 [ bitmap_init::x#2 bitmap_init::x#1 ] 2,002: zp[1]:10 [ bitmap_init::y#2 bitmap_init::y#1 ] 2,002: zp[1]:25 [ bitmap_init::$4 ] 2,002: zp[1]:26 [ bitmap_init::$5 ] 2,002: zp[1]:27 [ bitmap_init::$6 ] 500.5: zp[1]:24 [ bitmap_init::$7 ] 
-Uplift Scope [bitmap_plot] 2,103: zp[1]:23 [ bitmap_plot::y#0 ] 2,002: zp[2]:30 [ bitmap_plot::$0 ] 2,002: zp[1]:34 [ bitmap_plot::$1 ] 1,501.5: zp[2]:32 [ bitmap_plot::plotter#1 ] 500.5: zp[2]:28 [ bitmap_plot::plotter#0 ] 220.4: zp[2]:21 [ bitmap_plot::x#0 ] 
+Uplift Scope [bitmap_plot] 2,103: zp[1]:23 [ bitmap_plot::y#0 ] 2,002: zp[2]:30 [ bitmap_plot::$0 ] 2,002: zp[1]:34 [ bitmap_plot::$1 ] 1,501.5: zp[2]:32 [ bitmap_plot::plotter#1 ] 500.5: zp[2]:28 [ bitmap_plot::plotter#0 ] 420.6: zp[2]:21 [ bitmap_plot::x#0 ] 
 Uplift Scope [main] 387.17: zp[1]:7 [ main::vy#2 main::vy#8 main::vy#1 ] 303: zp[2]:5 [ main::vx#2 main::vx#6 main::vx#1 ] 112.48: zp[2]:2 [ main::x#2 main::x#1 ] 101: zp[1]:4 [ main::y#2 main::y#1 ] 
 Uplift Scope [] 7.78: zp[1]:20 [ frame_cnt ] 
 Uplift Scope [MOS6526_CIA] 
@@ -2127,7 +2127,7 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // [74] bitmap_plot::$1 = (byte)bitmap_plot::x#0 -- vbuxx=_byte_vwuz1 
+    // [74] bitmap_plot::$1 = < bitmap_plot::x#0 -- vbuxx=_byte0_vwuz1 
     ldx.z x
     // [75] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx 
     lda bitmap_plot_bit,x
@@ -2369,7 +2369,7 @@ byte* bitmap_plot::plotter
 word bitmap_plot::plotter#0 plotter zp[2]:10 500.5
 byte* bitmap_plot::plotter#1 plotter zp[2]:10 1501.5
 word bitmap_plot::x
-word bitmap_plot::x#0 x zp[2]:2 220.39999999999998
+word bitmap_plot::x#0 x zp[2]:2 420.59999999999997
 byte bitmap_plot::y
 byte bitmap_plot::y#0 reg byte x 2103.0
 constant const byte* bitmap_plot_bit[$100]  = { fill( $100, 0) }
@@ -2900,9 +2900,10 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // *plotter |= bitmap_plot_bit[(char)x]
-    // [74] bitmap_plot::$1 = (byte)bitmap_plot::x#0 -- vbuxx=_byte_vwuz1 
+    // BYTE0(x)
+    // [74] bitmap_plot::$1 = < bitmap_plot::x#0 -- vbuxx=_byte0_vwuz1 
     ldx.z x
+    // *plotter |= bitmap_plot_bit[BYTE0(x)]
     // [75] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx 
     lda bitmap_plot_bit,x
     ldy #0
diff --git a/src/test/ref/bitmap-plot-0.sym b/src/test/ref/bitmap-plot-0.sym
index eeddee1c6..e6df86ca7 100644
--- a/src/test/ref/bitmap-plot-0.sym
+++ b/src/test/ref/bitmap-plot-0.sym
@@ -56,7 +56,7 @@ byte* bitmap_plot::plotter
 word bitmap_plot::plotter#0 plotter zp[2]:10 500.5
 byte* bitmap_plot::plotter#1 plotter zp[2]:10 1501.5
 word bitmap_plot::x
-word bitmap_plot::x#0 x zp[2]:2 220.39999999999998
+word bitmap_plot::x#0 x zp[2]:2 420.59999999999997
 byte bitmap_plot::y
 byte bitmap_plot::y#0 reg byte x 2103.0
 constant const byte* bitmap_plot_bit[$100]  = { fill( $100, 0) }
diff --git a/src/test/ref/bitmap-plot-1.asm b/src/test/ref/bitmap-plot-1.asm
index 4a398887b..9e2a42fd5 100644
--- a/src/test/ref/bitmap-plot-1.asm
+++ b/src/test/ref/bitmap-plot-1.asm
@@ -173,8 +173,8 @@ main: {
     rol.z __6+1
     rol.z __6+2
     rol.z __6+3
-    // >(xpos<<4)
-    // word x = (word)(160 + >(xpos<<4))
+    // WORD1(xpos<<4)
+    // word x = (word)(160 + WORD1(xpos<<4))
     clc
     lda #<$a0
     adc.z __6+2
@@ -229,8 +229,8 @@ main: {
     rol.z __10+1
     rol.z __10+2
     rol.z __10+3
-    // >(ypos<<4)
-    // word y = (word)(100 + >(ypos<<4))
+    // WORD1(ypos<<4)
+    // word y = (word)(100 + WORD1(ypos<<4))
     clc
     lda #<$64
     adc.z __10+2
@@ -239,7 +239,7 @@ main: {
     adc.z __10+3
     sta.z y+1
     // bitmap_plot(x, (byte)y)
-    lda.z y
+    ldx.z y
     jsr bitmap_plot
     // if(++idx_x==512)
     inc.z idx_x
@@ -342,19 +342,19 @@ sin16s_gen2: {
     sta.z mul16s.b+1
     jsr mul16s
     // mul16s(sin16s(x), ampl)
-    // >mul16s(sin16s(x), ampl)
+    // WORD1(mul16s(sin16s(x), ampl))
     lda.z __6+2
     sta.z __8
     lda.z __6+3
     sta.z __8+1
-    // *sintab++ = offs + (signed int)>mul16s(sin16s(x), ampl)
+    // *sintab++ = offs + (signed int)WORD1(mul16s(sin16s(x), ampl))
     ldy #0
     lda.z __8
     sta (sintab),y
     iny
     lda.z __8+1
     sta (sintab),y
-    // *sintab++ = offs + (signed int)>mul16s(sin16s(x), ampl);
+    // *sintab++ = offs + (signed int)WORD1(mul16s(sin16s(x), ampl));
     lda #SIZEOF_SIGNED_WORD
     clc
     adc.z sintab
@@ -412,15 +412,15 @@ bitmap_init: {
     // y&$7
     lda #7
     sax.z __7
-    // <yoffs
+    // BYTE0(yoffs)
     lda.z yoffs
-    // y&$7 | <yoffs
+    // y&$7 | BYTE0(yoffs)
     ora.z __7
-    // bitmap_plot_ylo[y] = y&$7 | <yoffs
+    // bitmap_plot_ylo[y] = y&$7 | BYTE0(yoffs)
     sta bitmap_plot_ylo,x
-    // >yoffs
+    // BYTE1(yoffs)
     lda.z yoffs+1
-    // bitmap_plot_yhi[y] = >yoffs
+    // bitmap_plot_yhi[y] = BYTE1(yoffs)
     sta bitmap_plot_yhi,x
     // if((y&$7)==7)
     lda #7
@@ -537,12 +537,12 @@ mul16s: {
     // if(a<0)
     lda.z a+1
     bpl __b1
-    // >m
+    // WORD1(m)
     lda.z m+2
     sta.z __6
     lda.z m+3
     sta.z __6+1
-    // >m = (>m)-(unsigned int)b
+    // WORD1(m) = WORD1(m)-(unsigned int)b
     lda.z __11
     sec
     sbc.z b
@@ -558,12 +558,12 @@ mul16s: {
     // if(b<0)
     lda.z b+1
     bpl __b2
-    // >m
+    // WORD1(m)
     lda.z m+2
     sta.z __9
     lda.z m+3
     sta.z __9+1
-    // >m = (>m)-(unsigned int)a
+    // WORD1(m) = WORD1(m)-(unsigned int)a
     lda.z __9
     sec
     sbc.z __12
@@ -581,16 +581,15 @@ mul16s: {
     rts
 }
 // Plot a single dot in the bitmap
-// bitmap_plot(word zp($17) x, byte register(A) y)
+// bitmap_plot(word zp($17) x, byte register(X) y)
 bitmap_plot: {
     .label __0 = $22
     .label plotter = $20
     .label x = $17
     // char* plotter = (char*) { bitmap_plot_yhi[y], bitmap_plot_ylo[y] }
-    tay
-    lda bitmap_plot_yhi,y
+    lda bitmap_plot_yhi,x
     sta.z plotter+1
-    lda bitmap_plot_ylo,y
+    lda bitmap_plot_ylo,x
     sta.z plotter
     // x & $fff8
     lda.z x
@@ -607,9 +606,9 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // <x
+    // BYTE0(x)
     ldx.z x
-    // *plotter |= bitmap_plot_bit[<x]
+    // *plotter |= bitmap_plot_bit[BYTE0(x)]
     lda bitmap_plot_bit,x
     ldy #0
     ora (plotter),y
@@ -623,7 +622,7 @@ div32u16u: {
     .label return = $1b
     .label quotient_hi = $28
     .label quotient_lo = $14
-    // divr16u(>dividend, divisor, 0)
+    // divr16u(WORD1(dividend), divisor, 0)
     lda #<PI2_u4f28>>$10
     sta.z divr16u.dividend
     lda #>PI2_u4f28>>$10
@@ -632,13 +631,13 @@ div32u16u: {
     sta.z divr16u.rem
     sta.z divr16u.rem+1
     jsr divr16u
-    // divr16u(>dividend, divisor, 0)
-    // unsigned int quotient_hi = divr16u(>dividend, divisor, 0)
+    // divr16u(WORD1(dividend), divisor, 0)
+    // unsigned int quotient_hi = divr16u(WORD1(dividend), divisor, 0)
     lda.z divr16u.return
     sta.z quotient_hi
     lda.z divr16u.return+1
     sta.z quotient_hi+1
-    // divr16u(<dividend, divisor, rem16u)
+    // divr16u(WORD0(dividend), divisor, rem16u)
     lda.z rem16u
     sta.z divr16u.rem
     lda.z rem16u+1
@@ -648,8 +647,8 @@ div32u16u: {
     lda #>PI2_u4f28&$ffff
     sta.z divr16u.dividend+1
     jsr divr16u
-    // divr16u(<dividend, divisor, rem16u)
-    // unsigned int quotient_lo = divr16u(<dividend, divisor, rem16u)
+    // divr16u(WORD0(dividend), divisor, rem16u)
+    // unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
     // unsigned long quotient = { quotient_hi, quotient_lo}
     lda.z quotient_hi
     sta.z return+2
@@ -768,7 +767,7 @@ sin16s: {
     rol.z __4+1
     rol.z __4+2
     rol.z __4+3
-    // unsigned int x1 = >x<<3
+    // unsigned int x1 = WORD1(x<<3)
     lda.z __4+2
     sta.z x1
     lda.z __4+3
@@ -997,11 +996,11 @@ divr16u: {
     // rem = rem << 1
     asl.z rem
     rol.z rem+1
-    // >dividend
+    // BYTE1(dividend)
     lda.z dividend+1
-    // >dividend & $80
+    // BYTE1(dividend) & $80
     and #$80
-    // if( (>dividend & $80) != 0 )
+    // if( (BYTE1(dividend) & $80) != 0 )
     cmp #0
     beq __b2
     // rem = rem | 1
@@ -1078,7 +1077,7 @@ mulu16_sel: {
     dex
     bne !-
   !e:
-    // >mul16u(v1, v2)<<select
+    // WORD1(mul16u(v1, v2)<<select)
     lda.z __1+2
     sta.z return
     lda.z __1+3
diff --git a/src/test/ref/bitmap-plot-1.cfg b/src/test/ref/bitmap-plot-1.cfg
index f6904c713..5cfd56836 100644
--- a/src/test/ref/bitmap-plot-1.cfg
+++ b/src/test/ref/bitmap-plot-1.cfg
@@ -68,7 +68,7 @@ main::@2: scope:[main]  from main::@1
 main::@9: scope:[main]  from main::@2
   [28] main::xpos#0 = mul16s::return#3
   [29] main::$6 = main::xpos#0 << 4
-  [30] main::$7 = > main::$6
+  [30] main::$7 = _word1_ main::$6
   [31] main::x#0 = $a0 + main::$7
   [32] main::$20 = main::idx_y#3 << 1
   [33] main::$22 = SINE + main::$20
@@ -80,7 +80,7 @@ main::@9: scope:[main]  from main::@2
 main::@10: scope:[main]  from main::@9
   [38] main::ypos#0 = mul16s::return#4
   [39] main::$10 = main::ypos#0 << 4
-  [40] main::$11 = > main::$10
+  [40] main::$11 = _word1_ main::$10
   [41] main::y#0 = $64 + main::$11
   [42] bitmap_plot::x#0 = main::x#0
   [43] bitmap_plot::y#0 = (byte)main::y#0
@@ -136,7 +136,7 @@ sin16s_gen2::@4: scope:[sin16s_gen2]  from sin16s_gen2::@2
   to:sin16s_gen2::@5
 sin16s_gen2::@5: scope:[sin16s_gen2]  from sin16s_gen2::@4
   [67] sin16s_gen2::$6 = mul16s::return#0
-  [68] sin16s_gen2::$8 = > sin16s_gen2::$6
+  [68] sin16s_gen2::$8 = _word1_ sin16s_gen2::$6
   [69] *sin16s_gen2::sintab#2 = (signed word)sin16s_gen2::$8
   [70] sin16s_gen2::sintab#0 = sin16s_gen2::sintab#2 + SIZEOF_SIGNED_WORD
   [71] sin16s_gen2::x#1 = sin16s_gen2::x#2 + sin16s_gen2::step#0
@@ -228,18 +228,18 @@ mul16s::@5: scope:[mul16s]  from mul16s
   [116] if(mul16s::a#3>=0) goto mul16s::@1
   to:mul16s::@3
 mul16s::@3: scope:[mul16s]  from mul16s::@5
-  [117] mul16s::$6 = > mul16s::m#0
+  [117] mul16s::$6 = _word1_ mul16s::m#0
   [118] mul16s::$11 = mul16s::$6 - (word)mul16s::b#3
-  [119] mul16s::m#1 = mul16s::m#0 hi= mul16s::$11
+  [119] mul16s::m#1 = mul16s::m#0 word1= mul16s::$11
   to:mul16s::@1
 mul16s::@1: scope:[mul16s]  from mul16s::@3 mul16s::@5
   [120] mul16s::m#5 = phi( mul16s::@3/mul16s::m#1, mul16s::@5/mul16s::m#0 )
   [121] if(mul16s::b#3>=0) goto mul16s::@2
   to:mul16s::@4
 mul16s::@4: scope:[mul16s]  from mul16s::@1
-  [122] mul16s::$9 = > mul16s::m#5
+  [122] mul16s::$9 = _word1_ mul16s::m#5
   [123] mul16s::$12 = mul16s::$9 - (word)mul16s::a#3
-  [124] mul16s::m#2 = mul16s::m#5 hi= mul16s::$12
+  [124] mul16s::m#2 = mul16s::m#5 word1= mul16s::$12
   to:mul16s::@2
 mul16s::@2: scope:[mul16s]  from mul16s::@1 mul16s::@4
   [125] mul16s::m#4 = phi( mul16s::@1/mul16s::m#5, mul16s::@4/mul16s::m#2 )
@@ -299,7 +299,7 @@ sin16s::@5: scope:[sin16s]  from sin16s::@1
 sin16s::@2: scope:[sin16s]  from sin16s::@1 sin16s::@5
   [149] sin16s::x#6 = phi( sin16s::@1/sin16s::x#4, sin16s::@5/sin16s::x#2 )
   [150] sin16s::$4 = sin16s::x#6 << 3
-  [151] sin16s::x1#0 = > sin16s::$4
+  [151] sin16s::x1#0 = _word1_ sin16s::$4
   [152] mulu16_sel::v1#0 = sin16s::x1#0
   [153] mulu16_sel::v2#0 = sin16s::x1#0
   [154] call mulu16_sel 
@@ -405,7 +405,7 @@ mul16u::@3: scope:[mul16u]  from mul16u::@2 mul16u::@4
 
 word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem)
 divr16u: scope:[divr16u]  from div32u16u div32u16u::@1
-  [204] divr16u::dividend#5 = phi( div32u16u/>PI2_u4f28, div32u16u::@1/<PI2_u4f28 )
+  [204] divr16u::dividend#5 = phi( div32u16u/_word1_PI2_u4f28, div32u16u::@1/_word0_PI2_u4f28 )
   [204] divr16u::rem#10 = phi( div32u16u/0, div32u16u::@1/divr16u::rem#4 )
   to:divr16u::@1
 divr16u::@1: scope:[divr16u]  from divr16u divr16u::@3
@@ -457,7 +457,7 @@ mulu16_sel: scope:[mulu16_sel]  from sin16s::@10 sin16s::@2 sin16s::@7 sin16s::@
 mulu16_sel::@1: scope:[mulu16_sel]  from mulu16_sel
   [227] mulu16_sel::$0 = mul16u::return#0
   [228] mulu16_sel::$1 = mulu16_sel::$0 << mulu16_sel::select#5
-  [229] mulu16_sel::return#12 = > mulu16_sel::$1
+  [229] mulu16_sel::return#12 = _word1_ mulu16_sel::$1
   to:mulu16_sel::@return
 mulu16_sel::@return: scope:[mulu16_sel]  from mulu16_sel::@1
   [230] return 
diff --git a/src/test/ref/bitmap-plot-1.log b/src/test/ref/bitmap-plot-1.log
index 6b9ff04b3..f1cfb5e66 100644
--- a/src/test/ref/bitmap-plot-1.log
+++ b/src/test/ref/bitmap-plot-1.log
@@ -90,7 +90,7 @@ sin16s_gen2::@5: scope:[sin16s_gen2]  from sin16s_gen2::@4
   sin16s_gen2::offs#1 = phi( sin16s_gen2::@4/sin16s_gen2::offs#2 )
   mul16s::return#5 = phi( sin16s_gen2::@4/mul16s::return#0 )
   sin16s_gen2::$6 = mul16s::return#5
-  sin16s_gen2::$7 = > sin16s_gen2::$6
+  sin16s_gen2::$7 = _word1_ sin16s_gen2::$6
   sin16s_gen2::$10 = (signed word)sin16s_gen2::$7
   sin16s_gen2::$8 = sin16s_gen2::offs#1 + sin16s_gen2::$10
   *sin16s_gen2::sintab#2 = sin16s_gen2::$8
@@ -130,7 +130,7 @@ sin16s::@2: scope:[sin16s]  from sin16s::@1 sin16s::@5
   sin16s::isUpper#7 = phi( sin16s::@1/sin16s::isUpper#8, sin16s::@5/sin16s::isUpper#9 )
   sin16s::x#6 = phi( sin16s::@1/sin16s::x#4, sin16s::@5/sin16s::x#2 )
   sin16s::$4 = sin16s::x#6 << 3
-  sin16s::$5 = > sin16s::$4
+  sin16s::$5 = _word1_ sin16s::$4
   sin16s::x1#0 = sin16s::$5
   mulu16_sel::v1#0 = sin16s::x1#0
   mulu16_sel::v2#0 = sin16s::x1#0
@@ -241,7 +241,7 @@ mulu16_sel::@1: scope:[mulu16_sel]  from mulu16_sel
   mul16u::return#4 = phi( mulu16_sel/mul16u::return#0 )
   mulu16_sel::$0 = mul16u::return#4
   mulu16_sel::$1 = mulu16_sel::$0 << mulu16_sel::select#5
-  mulu16_sel::$2 = > mulu16_sel::$1
+  mulu16_sel::$2 = _word1_ mulu16_sel::$1
   mulu16_sel::return#5 = mulu16_sel::$2
   to:mulu16_sel::@return
 mulu16_sel::@return: scope:[mulu16_sel]  from mulu16_sel::@1
@@ -334,7 +334,7 @@ div32u16u: scope:[div32u16u]  from sin16s_gen2
   rem16u#24 = phi( sin16s_gen2/rem16u#22 )
   div32u16u::divisor#1 = phi( sin16s_gen2/div32u16u::divisor#0 )
   div32u16u::dividend#1 = phi( sin16s_gen2/div32u16u::dividend#0 )
-  div32u16u::$0 = > div32u16u::dividend#1
+  div32u16u::$0 = _word1_ div32u16u::dividend#1
   divr16u::dividend#1 = div32u16u::$0
   divr16u::divisor#0 = div32u16u::divisor#1
   divr16u::rem#3 = 0
@@ -349,7 +349,7 @@ div32u16u::@1: scope:[div32u16u]  from div32u16u
   div32u16u::$1 = divr16u::return#5
   rem16u#4 = rem16u#15
   div32u16u::quotient_hi#0 = div32u16u::$1
-  div32u16u::$2 = < div32u16u::dividend#2
+  div32u16u::$2 = _word0_ div32u16u::dividend#2
   divr16u::dividend#2 = div32u16u::$2
   divr16u::divisor#1 = div32u16u::divisor#2
   divr16u::rem#4 = rem16u#4
@@ -454,11 +454,11 @@ mul16s::@3: scope:[mul16s]  from mul16s::@5
   mul16s::a#7 = phi( mul16s::@5/mul16s::a#4 )
   mul16s::b#5 = phi( mul16s::@5/mul16s::b#6 )
   mul16s::m#3 = phi( mul16s::@5/mul16s::m#0 )
-  mul16s::$6 = > mul16s::m#3
+  mul16s::$6 = _word1_ mul16s::m#3
   mul16s::$13 = (word)mul16s::b#5
   mul16s::$7 = mul16s::$6 - mul16s::$13
   mul16s::$11 = mul16s::$7
-  mul16s::m#1 = mul16s::m#3 hi= mul16s::$11
+  mul16s::m#1 = mul16s::m#3 word1= mul16s::$11
   to:mul16s::@1
 mul16s::@2: scope:[mul16s]  from mul16s::@1 mul16s::@4
   mul16s::m#4 = phi( mul16s::@1/mul16s::m#6, mul16s::@4/mul16s::m#2 )
@@ -467,11 +467,11 @@ mul16s::@2: scope:[mul16s]  from mul16s::@1 mul16s::@4
 mul16s::@4: scope:[mul16s]  from mul16s::@1
   mul16s::a#5 = phi( mul16s::@1/mul16s::a#6 )
   mul16s::m#5 = phi( mul16s::@1/mul16s::m#6 )
-  mul16s::$9 = > mul16s::m#5
+  mul16s::$9 = _word1_ mul16s::m#5
   mul16s::$14 = (word)mul16s::a#5
   mul16s::$10 = mul16s::$9 - mul16s::$14
   mul16s::$12 = mul16s::$10
-  mul16s::m#2 = mul16s::m#5 hi= mul16s::$12
+  mul16s::m#2 = mul16s::m#5 word1= mul16s::$12
   to:mul16s::@2
 mul16s::@return: scope:[mul16s]  from mul16s::@2
   mul16s::return#6 = phi( mul16s::@2/mul16s::return#1 )
@@ -760,7 +760,7 @@ main::@12: scope:[main]  from main::@2
   main::$5 = mul16s::return#7
   main::xpos#0 = main::$5
   main::$6 = main::xpos#0 << 4
-  main::$7 = > main::$6
+  main::$7 = _word1_ main::$6
   main::$8 = $a0 + main::$7
   main::x#0 = (word)main::$8
   main::$20 = main::idx_y#3 * SIZEOF_SIGNED_WORD
@@ -781,7 +781,7 @@ main::@13: scope:[main]  from main::@12
   main::$9 = mul16s::return#8
   main::ypos#0 = main::$9
   main::$10 = main::ypos#0 << 4
-  main::$11 = > main::$10
+  main::$11 = _word1_ main::$10
   main::$12 = $64 + main::$11
   main::y#0 = (word)main::$12
   bitmap_plot::x#0 = main::x#1
@@ -1237,7 +1237,7 @@ signed word main::sin_y
 signed word main::sin_y#0
 number~ main::toD0181_$0
 number~ main::toD0181_$1
-number~ main::toD0181_$2
+byte~ main::toD0181_$2
 byte~ main::toD0181_$3
 number~ main::toD0181_$4
 number~ main::toD0181_$5
@@ -1686,7 +1686,6 @@ Adding number conversion cast (unumber) $3fff in main::toD0181_$0 = main::toD018
 Adding number conversion cast (unumber) main::toD0181_$0 in main::toD0181_$0 = main::toD0181_$7 & (unumber)$3fff
 Adding number conversion cast (unumber) 4 in main::toD0181_$1 = main::toD0181_$0 * 4
 Adding number conversion cast (unumber) main::toD0181_$1 in main::toD0181_$1 = main::toD0181_$0 * (unumber)4
-Adding number conversion cast (unumber) main::toD0181_$2 in main::toD0181_$2 = > main::toD0181_$1
 Adding number conversion cast (unumber) 4 in main::toD0181_$4 = main::toD0181_$3 / 4
 Adding number conversion cast (unumber) main::toD0181_$4 in main::toD0181_$4 = main::toD0181_$3 / (unumber)4
 Adding number conversion cast (unumber) $f in main::toD0181_$5 = main::toD0181_$4 & $f
@@ -1870,7 +1869,6 @@ Inferred type updated to byte in bitmap_clear::$1 = bitmap_clear::$0 + bitmap_cl
 Inferred type updated to word in bitmap_plot::$0 = bitmap_plot::x#1 & $fff8
 Inferred type updated to word in main::toD0181_$0 = main::toD0181_$7 & $3fff
 Inferred type updated to word in main::toD0181_$1 = main::toD0181_$0 * 4
-Inferred type updated to byte in main::toD0181_$2 = > main::toD0181_$1
 Inferred type updated to byte in main::toD0181_$4 = main::toD0181_$3 / 4
 Inferred type updated to byte in main::toD0181_$5 = main::toD0181_$4 & $f
 Inferred type updated to byte in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5
@@ -2223,15 +2221,15 @@ Alias main::x#0 = main::$8
 Alias main::y#0 = main::$12 
 Successful SSA optimization Pass2AliasElimination
 Constant right-side identified [0] sin16s_gen2::ampl#0 = sin16s_gen2::max#0 - sin16s_gen2::min#0
-Constant right-side identified [91] divr16u::dividend#1 = > div32u16u::dividend#0
-Constant right-side identified [95] divr16u::dividend#2 = < div32u16u::dividend#0
+Constant right-side identified [91] divr16u::dividend#1 = _word1_ div32u16u::dividend#0
+Constant right-side identified [95] divr16u::dividend#2 = _word0_ div32u16u::dividend#0
 Constant right-side identified [153] bitmap_clear::col#0 = bitmap_clear::fgcol#0 * $10
 Constant right-side identified [179] main::toD0181_$0 = main::toD0181_$7 & $3fff
 Constant right-side identified [182] main::toD0181_$3 = > (word)main::toD0181_gfx#0
 Successful SSA optimization Pass2ConstantRValueConsolidation
 Constant sin16s_gen2::ampl#0 = sin16s_gen2::max#0-sin16s_gen2::min#0
-Constant divr16u::dividend#1 = >div32u16u::dividend#0
-Constant divr16u::dividend#2 = <div32u16u::dividend#0
+Constant divr16u::dividend#1 = _word1_div32u16u::dividend#0
+Constant divr16u::dividend#2 = _word0_div32u16u::dividend#0
 Constant bitmap_clear::col#0 = bitmap_clear::fgcol#0*$10
 Constant main::toD0181_$0 = main::toD0181_$7&$3fff
 Constant main::toD0181_$3 = >(word)main::toD0181_gfx#0
@@ -2362,8 +2360,8 @@ Constant inlined memset::str#1 = (void*)BITMAP
 Constant inlined mul16s::a#2 = $64
 Constant inlined memset::str#0 = (void*)SCREEN
 Constant inlined bitmap_clear::fgcol#0 = WHITE
-Constant inlined divr16u::dividend#1 = >PI2_u4f28
-Constant inlined divr16u::dividend#2 = <PI2_u4f28
+Constant inlined divr16u::dividend#1 = _word1_PI2_u4f28
+Constant inlined divr16u::dividend#2 = _word0_PI2_u4f28
 Constant inlined bitmap_screen#0 = SCREEN
 Constant inlined mulu16_sel::v2#2 = (word)$10000/6
 Constant inlined bitmap_init::y#0 = 0
@@ -2621,7 +2619,7 @@ main::@2: scope:[main]  from main::@1
 main::@9: scope:[main]  from main::@2
   [28] main::xpos#0 = mul16s::return#3
   [29] main::$6 = main::xpos#0 << 4
-  [30] main::$7 = > main::$6
+  [30] main::$7 = _word1_ main::$6
   [31] main::x#0 = $a0 + main::$7
   [32] main::$20 = main::idx_y#3 << 1
   [33] main::$22 = SINE + main::$20
@@ -2633,7 +2631,7 @@ main::@9: scope:[main]  from main::@2
 main::@10: scope:[main]  from main::@9
   [38] main::ypos#0 = mul16s::return#4
   [39] main::$10 = main::ypos#0 << 4
-  [40] main::$11 = > main::$10
+  [40] main::$11 = _word1_ main::$10
   [41] main::y#0 = $64 + main::$11
   [42] bitmap_plot::x#0 = main::x#0
   [43] bitmap_plot::y#0 = (byte)main::y#0
@@ -2689,7 +2687,7 @@ sin16s_gen2::@4: scope:[sin16s_gen2]  from sin16s_gen2::@2
   to:sin16s_gen2::@5
 sin16s_gen2::@5: scope:[sin16s_gen2]  from sin16s_gen2::@4
   [67] sin16s_gen2::$6 = mul16s::return#0
-  [68] sin16s_gen2::$8 = > sin16s_gen2::$6
+  [68] sin16s_gen2::$8 = _word1_ sin16s_gen2::$6
   [69] *sin16s_gen2::sintab#2 = (signed word)sin16s_gen2::$8
   [70] sin16s_gen2::sintab#0 = sin16s_gen2::sintab#2 + SIZEOF_SIGNED_WORD
   [71] sin16s_gen2::x#1 = sin16s_gen2::x#2 + sin16s_gen2::step#0
@@ -2781,18 +2779,18 @@ mul16s::@5: scope:[mul16s]  from mul16s
   [116] if(mul16s::a#3>=0) goto mul16s::@1
   to:mul16s::@3
 mul16s::@3: scope:[mul16s]  from mul16s::@5
-  [117] mul16s::$6 = > mul16s::m#0
+  [117] mul16s::$6 = _word1_ mul16s::m#0
   [118] mul16s::$11 = mul16s::$6 - (word)mul16s::b#3
-  [119] mul16s::m#1 = mul16s::m#0 hi= mul16s::$11
+  [119] mul16s::m#1 = mul16s::m#0 word1= mul16s::$11
   to:mul16s::@1
 mul16s::@1: scope:[mul16s]  from mul16s::@3 mul16s::@5
   [120] mul16s::m#5 = phi( mul16s::@3/mul16s::m#1, mul16s::@5/mul16s::m#0 )
   [121] if(mul16s::b#3>=0) goto mul16s::@2
   to:mul16s::@4
 mul16s::@4: scope:[mul16s]  from mul16s::@1
-  [122] mul16s::$9 = > mul16s::m#5
+  [122] mul16s::$9 = _word1_ mul16s::m#5
   [123] mul16s::$12 = mul16s::$9 - (word)mul16s::a#3
-  [124] mul16s::m#2 = mul16s::m#5 hi= mul16s::$12
+  [124] mul16s::m#2 = mul16s::m#5 word1= mul16s::$12
   to:mul16s::@2
 mul16s::@2: scope:[mul16s]  from mul16s::@1 mul16s::@4
   [125] mul16s::m#4 = phi( mul16s::@1/mul16s::m#5, mul16s::@4/mul16s::m#2 )
@@ -2852,7 +2850,7 @@ sin16s::@5: scope:[sin16s]  from sin16s::@1
 sin16s::@2: scope:[sin16s]  from sin16s::@1 sin16s::@5
   [149] sin16s::x#6 = phi( sin16s::@1/sin16s::x#4, sin16s::@5/sin16s::x#2 )
   [150] sin16s::$4 = sin16s::x#6 << 3
-  [151] sin16s::x1#0 = > sin16s::$4
+  [151] sin16s::x1#0 = _word1_ sin16s::$4
   [152] mulu16_sel::v1#0 = sin16s::x1#0
   [153] mulu16_sel::v2#0 = sin16s::x1#0
   [154] call mulu16_sel 
@@ -2958,7 +2956,7 @@ mul16u::@3: scope:[mul16u]  from mul16u::@2 mul16u::@4
 
 word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem)
 divr16u: scope:[divr16u]  from div32u16u div32u16u::@1
-  [204] divr16u::dividend#5 = phi( div32u16u/>PI2_u4f28, div32u16u::@1/<PI2_u4f28 )
+  [204] divr16u::dividend#5 = phi( div32u16u/_word1_PI2_u4f28, div32u16u::@1/_word0_PI2_u4f28 )
   [204] divr16u::rem#10 = phi( div32u16u/0, div32u16u::@1/divr16u::rem#4 )
   to:divr16u::@1
 divr16u::@1: scope:[divr16u]  from divr16u divr16u::@3
@@ -3010,7 +3008,7 @@ mulu16_sel: scope:[mulu16_sel]  from sin16s::@10 sin16s::@2 sin16s::@7 sin16s::@
 mulu16_sel::@1: scope:[mulu16_sel]  from mulu16_sel
   [227] mulu16_sel::$0 = mul16u::return#0
   [228] mulu16_sel::$1 = mulu16_sel::$0 << mulu16_sel::select#5
-  [229] mulu16_sel::return#12 = > mulu16_sel::$1
+  [229] mulu16_sel::return#12 = _word1_ mulu16_sel::$1
   to:mulu16_sel::@return
 mulu16_sel::@return: scope:[mulu16_sel]  from mulu16_sel::@1
   [230] return 
@@ -3595,7 +3593,6 @@ Statement [38] main::ypos#0 = mul16s::return#4 [ frame_cnt main::idx_x#3 main::i
 Statement [39] main::$10 = main::ypos#0 << 4 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 main::$10 ] ( main:3 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 main::$10 ] { { bitmap_plot::x#0 = main::x#0 } }  ) always clobbers reg byte a 
 Statement [41] main::y#0 = $64 + main::$11 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 main::y#0 ] ( main:3 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 main::y#0 ] { { bitmap_plot::x#0 = main::x#0 } }  ) always clobbers reg byte a 
 Statement [42] bitmap_plot::x#0 = main::x#0 [ frame_cnt main::idx_x#3 main::idx_y#3 main::y#0 bitmap_plot::x#0 ] ( main:3 [ frame_cnt main::idx_x#3 main::idx_y#3 main::y#0 bitmap_plot::x#0 ] { { bitmap_plot::x#0 = main::x#0 } }  ) always clobbers reg byte a 
-Statement [43] bitmap_plot::y#0 = (byte)main::y#0 [ frame_cnt main::idx_x#3 main::idx_y#3 bitmap_plot::x#0 bitmap_plot::y#0 ] ( main:3 [ frame_cnt main::idx_x#3 main::idx_y#3 bitmap_plot::x#0 bitmap_plot::y#0 ] { { bitmap_plot::x#0 = main::x#0 } }  ) always clobbers reg byte a 
 Statement [46] if(main::idx_x#1!=$200) goto main::@12 [ frame_cnt main::idx_y#3 main::idx_x#1 ] ( main:3 [ frame_cnt main::idx_y#3 main::idx_x#1 ] { }  ) always clobbers reg byte a 
 Statement [50] if(main::idx_y#1!=$200) goto main::@13 [ frame_cnt main::idx_x#10 main::idx_y#1 ] ( main:3 [ frame_cnt main::idx_x#10 main::idx_y#1 ] { }  ) always clobbers reg byte a 
 Statement [53] plots_per_frame[frame_cnt] = ++ plots_per_frame[frame_cnt] [ frame_cnt main::idx_x#10 main::idx_y#10 ] ( main:3 [ frame_cnt main::idx_x#10 main::idx_y#10 ] { }  ) always clobbers reg byte x 
@@ -3607,7 +3604,7 @@ Statement [63] sin16s::return#0 = sin16s::return#1 [ sin16s_gen2::step#0 sin16s_
 Statement [64] mul16s::a#0 = sin16s::return#0 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#0 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#0 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
 Statement [66] mul16s::return#0 = mul16s::return#1 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::return#0 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::return#0 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
 Statement [67] sin16s_gen2::$6 = mul16s::return#0 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$6 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$6 ] { }  ) always clobbers reg byte a 
-Statement [68] sin16s_gen2::$8 = > sin16s_gen2::$6 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$8 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$8 ] { }  ) always clobbers reg byte a 
+Statement [68] sin16s_gen2::$8 = _word1_ sin16s_gen2::$6 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$8 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$8 ] { }  ) always clobbers reg byte a 
 Statement [69] *sin16s_gen2::sintab#2 = (signed word)sin16s_gen2::$8 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 ] { }  ) always clobbers reg byte a reg byte y 
 Statement [70] sin16s_gen2::sintab#0 = sin16s_gen2::sintab#2 + SIZEOF_SIGNED_WORD [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#0 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#0 ] { }  ) always clobbers reg byte a 
 Statement [71] sin16s_gen2::x#1 = sin16s_gen2::x#2 + sin16s_gen2::step#0 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#1 sin16s_gen2::sintab#0 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#1 sin16s_gen2::sintab#0 ] { }  ) always clobbers reg byte a 
@@ -3625,13 +3622,13 @@ Statement [112] mul16u::b#1 = (word)mul16s::b#3 [ mul16s::a#3 mul16s::b#3 mul16u
 Statement [114] mul16u::return#3 = mul16u::res#2 [ mul16s::a#3 mul16s::b#3 mul16u::return#3 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16u::return#3 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } { mul16u::b#1 = mul16u::b#2 } { mul16u::a#2 = mul16u::a#6 } { mul16u::return#3 = mul16u::res#2 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16u::return#3 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } { mul16u::b#1 = mul16u::b#2 } { mul16u::a#2 = mul16u::a#6 } { mul16u::return#3 = mul16u::res#2 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16u::return#3 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } { mul16u::b#1 = mul16u::b#2 } { mul16u::a#2 = mul16u::a#6 } { mul16u::return#3 = mul16u::res#2 } }  ) always clobbers reg byte a 
 Statement [115] mul16s::m#0 = mul16u::return#3 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
 Statement [116] if(mul16s::a#3>=0) goto mul16s::@1 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
-Statement [117] mul16s::$6 = > mul16s::m#0 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
+Statement [117] mul16s::$6 = _word1_ mul16s::m#0 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
 Statement [118] mul16s::$11 = mul16s::$6 - (word)mul16s::b#3 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$11 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$11 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$11 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$11 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
-Statement [119] mul16s::m#1 = mul16s::m#0 hi= mul16s::$11 [ mul16s::a#3 mul16s::b#3 mul16s::m#1 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
+Statement [119] mul16s::m#1 = mul16s::m#0 word1= mul16s::$11 [ mul16s::a#3 mul16s::b#3 mul16s::m#1 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
 Statement [121] if(mul16s::b#3>=0) goto mul16s::@2 [ mul16s::a#3 mul16s::m#5 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::m#5 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::m#5 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::m#5 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
-Statement [122] mul16s::$9 = > mul16s::m#5 [ mul16s::a#3 mul16s::m#5 mul16s::$9 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
+Statement [122] mul16s::$9 = _word1_ mul16s::m#5 [ mul16s::a#3 mul16s::m#5 mul16s::$9 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
 Statement [123] mul16s::$12 = mul16s::$9 - (word)mul16s::a#3 [ mul16s::m#5 mul16s::$12 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::m#5 mul16s::$12 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::m#5 mul16s::$12 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::m#5 mul16s::$12 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
-Statement [124] mul16s::m#2 = mul16s::m#5 hi= mul16s::$12 [ mul16s::m#2 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::m#2 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::m#2 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::m#2 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
+Statement [124] mul16s::m#2 = mul16s::m#5 word1= mul16s::$12 [ mul16s::m#2 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::m#2 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::m#2 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::m#2 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
 Statement [126] mul16s::return#1 = (signed dword)mul16s::m#4 [ mul16s::return#1 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::return#1 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::return#1 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::return#1 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
 Statement [128] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] [ bitmap_plot::x#0 bitmap_plot::plotter#0 ] ( main:3::bitmap_plot:44 [ frame_cnt main::idx_x#3 main::idx_y#3 bitmap_plot::x#0 bitmap_plot::plotter#0 ] { { bitmap_plot::x#0 = main::x#0 } }  ) always clobbers reg byte a 
 Statement [129] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8 [ bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$0 ] ( main:3::bitmap_plot:44 [ frame_cnt main::idx_x#3 main::idx_y#3 bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::x#0 = main::x#0 } }  ) always clobbers reg byte a 
@@ -3649,7 +3646,7 @@ Statement [147] if(sin16s::x#4<PI_HALF_u4f28) goto sin16s::@2 [ sin16s::x#4 sin1
 Removing always clobbered register reg byte a as potential for zp[1]:27 [ sin16s::isUpper#2 ]
 Statement [148] sin16s::x#2 = PI_u4f28 - sin16s::x#4 [ sin16s::isUpper#2 sin16s::x#2 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x#2 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } }  ) always clobbers reg byte a 
 Statement [150] sin16s::$4 = sin16s::x#6 << 3 [ sin16s::isUpper#2 sin16s::$4 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::$4 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
-Statement [151] sin16s::x1#0 = > sin16s::$4 [ sin16s::isUpper#2 sin16s::x1#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
+Statement [151] sin16s::x1#0 = _word1_ sin16s::$4 [ sin16s::isUpper#2 sin16s::x1#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
 Statement [152] mulu16_sel::v1#0 = sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
 Statement [153] mulu16_sel::v2#0 = sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
 Statement [155] mulu16_sel::return#0 = mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
@@ -3696,7 +3693,7 @@ Statement [224] mul16u::b#0 = mulu16_sel::v2#5 [ mul16u::b#0 mul16u::a#0 mulu16_
 Statement [226] mul16u::return#0 = mul16u::res#2 [ mulu16_sel::select#5 mul16u::return#0 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#0 = mulu16_sel::return#12 } { mul16u::a#0 = mul16u::a#6 mul16u::b#2 mul16u::b#0 mulu16_sel::v2#5 mulu16_sel::v2#0 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mul16u::return#0 = mul16u::res#2 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#1 = mulu16_sel::return#12 } { mul16u::b#0 = mul16u::b#2 mulu16_sel::v2#5 mulu16_sel::v2#1 sin16s::x1#0 } { mul16u::a#0 = mul16u::a#6 mulu16_sel::v1#5 mulu16_sel::v1#1 sin16s::x2#0 } { mul16u::return#0 = mul16u::res#2 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#12 = mulu16_sel::return#2 } { mul16u::b#0 = mul16u::b#2 mulu16_sel::v2#5 } { mul16u::a#0 = mul16u::a#6 mulu16_sel::v1#5 mulu16_sel::v1#2 sin16s::x3#0 } { mul16u::return#0 = mul16u::res#2 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#10 = mulu16_sel::return#12 } { mul16u::b#0 = mul16u::b#2 mulu16_sel::v2#5 mulu16_sel::v2#3 sin16s::x1#0 } { mul16u::a#0 = mul16u::a#6 mulu16_sel::v1#5 mulu16_sel::v1#3 sin16s::x3#0 } { mul16u::return#0 = mul16u::res#2 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#11 = mulu16_sel::return#12 } { mul16u::b#0 = mul16u::b#2 mulu16_sel::v2#5 mulu16_sel::v2#4 sin16s::x1#0 } { mul16u::a#0 = mul16u::a#6 mulu16_sel::v1#5 mulu16_sel::v1#4 sin16s::x4#0 } { mul16u::return#0 = mul16u::res#2 } }  ) always clobbers reg byte a 
 Statement [227] mulu16_sel::$0 = mul16u::return#0 [ mulu16_sel::select#5 mulu16_sel::$0 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
 Statement [228] mulu16_sel::$1 = mulu16_sel::$0 << mulu16_sel::select#5 [ mulu16_sel::$1 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
-Statement [229] mulu16_sel::return#12 = > mulu16_sel::$1 [ mulu16_sel::return#12 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
+Statement [229] mulu16_sel::return#12 = _word1_ mulu16_sel::$1 [ mulu16_sel::return#12 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
 Statement [1] frame_cnt = 1 [ frame_cnt ] (  [ frame_cnt ] { }  ) always clobbers reg byte a 
 Statement [5] *BG_COLOR = WHITE [ frame_cnt ] (  [ frame_cnt ] { }  ) always clobbers reg byte a 
 Statement [6] if(0==frame_cnt) goto irq::@1 [ frame_cnt ] (  [ frame_cnt ] { }  ) always clobbers reg byte a 
@@ -3722,7 +3719,6 @@ Statement [38] main::ypos#0 = mul16s::return#4 [ frame_cnt main::idx_x#3 main::i
 Statement [39] main::$10 = main::ypos#0 << 4 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 main::$10 ] ( main:3 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 main::$10 ] { { bitmap_plot::x#0 = main::x#0 } }  ) always clobbers reg byte a 
 Statement [41] main::y#0 = $64 + main::$11 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 main::y#0 ] ( main:3 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 main::y#0 ] { { bitmap_plot::x#0 = main::x#0 } }  ) always clobbers reg byte a 
 Statement [42] bitmap_plot::x#0 = main::x#0 [ frame_cnt main::idx_x#3 main::idx_y#3 main::y#0 bitmap_plot::x#0 ] ( main:3 [ frame_cnt main::idx_x#3 main::idx_y#3 main::y#0 bitmap_plot::x#0 ] { { bitmap_plot::x#0 = main::x#0 } }  ) always clobbers reg byte a 
-Statement [43] bitmap_plot::y#0 = (byte)main::y#0 [ frame_cnt main::idx_x#3 main::idx_y#3 bitmap_plot::x#0 bitmap_plot::y#0 ] ( main:3 [ frame_cnt main::idx_x#3 main::idx_y#3 bitmap_plot::x#0 bitmap_plot::y#0 ] { { bitmap_plot::x#0 = main::x#0 } }  ) always clobbers reg byte a 
 Statement [46] if(main::idx_x#1!=$200) goto main::@12 [ frame_cnt main::idx_y#3 main::idx_x#1 ] ( main:3 [ frame_cnt main::idx_y#3 main::idx_x#1 ] { }  ) always clobbers reg byte a 
 Statement [50] if(main::idx_y#1!=$200) goto main::@13 [ frame_cnt main::idx_x#10 main::idx_y#1 ] ( main:3 [ frame_cnt main::idx_x#10 main::idx_y#1 ] { }  ) always clobbers reg byte a 
 Statement [53] plots_per_frame[frame_cnt] = ++ plots_per_frame[frame_cnt] [ frame_cnt main::idx_x#10 main::idx_y#10 ] ( main:3 [ frame_cnt main::idx_x#10 main::idx_y#10 ] { }  ) always clobbers reg byte x 
@@ -3734,7 +3730,7 @@ Statement [63] sin16s::return#0 = sin16s::return#1 [ sin16s_gen2::step#0 sin16s_
 Statement [64] mul16s::a#0 = sin16s::return#0 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#0 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#0 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
 Statement [66] mul16s::return#0 = mul16s::return#1 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::return#0 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::return#0 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
 Statement [67] sin16s_gen2::$6 = mul16s::return#0 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$6 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$6 ] { }  ) always clobbers reg byte a 
-Statement [68] sin16s_gen2::$8 = > sin16s_gen2::$6 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$8 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$8 ] { }  ) always clobbers reg byte a 
+Statement [68] sin16s_gen2::$8 = _word1_ sin16s_gen2::$6 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$8 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$8 ] { }  ) always clobbers reg byte a 
 Statement [69] *sin16s_gen2::sintab#2 = (signed word)sin16s_gen2::$8 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 ] { }  ) always clobbers reg byte a reg byte y 
 Statement [70] sin16s_gen2::sintab#0 = sin16s_gen2::sintab#2 + SIZEOF_SIGNED_WORD [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#0 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#0 ] { }  ) always clobbers reg byte a 
 Statement [71] sin16s_gen2::x#1 = sin16s_gen2::x#2 + sin16s_gen2::step#0 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#1 sin16s_gen2::sintab#0 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#1 sin16s_gen2::sintab#0 ] { }  ) always clobbers reg byte a 
@@ -3752,13 +3748,13 @@ Statement [112] mul16u::b#1 = (word)mul16s::b#3 [ mul16s::a#3 mul16s::b#3 mul16u
 Statement [114] mul16u::return#3 = mul16u::res#2 [ mul16s::a#3 mul16s::b#3 mul16u::return#3 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16u::return#3 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } { mul16u::b#1 = mul16u::b#2 } { mul16u::a#2 = mul16u::a#6 } { mul16u::return#3 = mul16u::res#2 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16u::return#3 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } { mul16u::b#1 = mul16u::b#2 } { mul16u::a#2 = mul16u::a#6 } { mul16u::return#3 = mul16u::res#2 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16u::return#3 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } { mul16u::b#1 = mul16u::b#2 } { mul16u::a#2 = mul16u::a#6 } { mul16u::return#3 = mul16u::res#2 } }  ) always clobbers reg byte a 
 Statement [115] mul16s::m#0 = mul16u::return#3 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
 Statement [116] if(mul16s::a#3>=0) goto mul16s::@1 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
-Statement [117] mul16s::$6 = > mul16s::m#0 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
+Statement [117] mul16s::$6 = _word1_ mul16s::m#0 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
 Statement [118] mul16s::$11 = mul16s::$6 - (word)mul16s::b#3 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$11 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$11 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$11 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$11 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
-Statement [119] mul16s::m#1 = mul16s::m#0 hi= mul16s::$11 [ mul16s::a#3 mul16s::b#3 mul16s::m#1 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
+Statement [119] mul16s::m#1 = mul16s::m#0 word1= mul16s::$11 [ mul16s::a#3 mul16s::b#3 mul16s::m#1 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
 Statement [121] if(mul16s::b#3>=0) goto mul16s::@2 [ mul16s::a#3 mul16s::m#5 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::m#5 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::m#5 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::m#5 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
-Statement [122] mul16s::$9 = > mul16s::m#5 [ mul16s::a#3 mul16s::m#5 mul16s::$9 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
+Statement [122] mul16s::$9 = _word1_ mul16s::m#5 [ mul16s::a#3 mul16s::m#5 mul16s::$9 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
 Statement [123] mul16s::$12 = mul16s::$9 - (word)mul16s::a#3 [ mul16s::m#5 mul16s::$12 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::m#5 mul16s::$12 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::m#5 mul16s::$12 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::m#5 mul16s::$12 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
-Statement [124] mul16s::m#2 = mul16s::m#5 hi= mul16s::$12 [ mul16s::m#2 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::m#2 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::m#2 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::m#2 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
+Statement [124] mul16s::m#2 = mul16s::m#5 word1= mul16s::$12 [ mul16s::m#2 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::m#2 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::m#2 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::m#2 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
 Statement [126] mul16s::return#1 = (signed dword)mul16s::m#4 [ mul16s::return#1 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::return#1 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } }  main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::return#1 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } }  main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::return#1 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } }  ) always clobbers reg byte a 
 Statement [128] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] [ bitmap_plot::x#0 bitmap_plot::plotter#0 ] ( main:3::bitmap_plot:44 [ frame_cnt main::idx_x#3 main::idx_y#3 bitmap_plot::x#0 bitmap_plot::plotter#0 ] { { bitmap_plot::x#0 = main::x#0 } }  ) always clobbers reg byte a 
 Statement [129] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8 [ bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$0 ] ( main:3::bitmap_plot:44 [ frame_cnt main::idx_x#3 main::idx_y#3 bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::x#0 = main::x#0 } }  ) always clobbers reg byte a 
@@ -3775,7 +3771,7 @@ Statement [145] sin16s::x#1 = sin16s::x#0 - PI_u4f28 [ sin16s::x#1 ] ( main:3::s
 Statement [147] if(sin16s::x#4<PI_HALF_u4f28) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#2 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::x#4 sin16s::isUpper#2 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } }  ) always clobbers reg byte a 
 Statement [148] sin16s::x#2 = PI_u4f28 - sin16s::x#4 [ sin16s::isUpper#2 sin16s::x#2 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x#2 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } }  ) always clobbers reg byte a 
 Statement [150] sin16s::$4 = sin16s::x#6 << 3 [ sin16s::isUpper#2 sin16s::$4 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::$4 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
-Statement [151] sin16s::x1#0 = > sin16s::$4 [ sin16s::isUpper#2 sin16s::x1#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
+Statement [151] sin16s::x1#0 = _word1_ sin16s::$4 [ sin16s::isUpper#2 sin16s::x1#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
 Statement [152] mulu16_sel::v1#0 = sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
 Statement [153] mulu16_sel::v2#0 = sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
 Statement [155] mulu16_sel::return#0 = mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
@@ -3818,7 +3814,7 @@ Statement [224] mul16u::b#0 = mulu16_sel::v2#5 [ mul16u::b#0 mul16u::a#0 mulu16_
 Statement [226] mul16u::return#0 = mul16u::res#2 [ mulu16_sel::select#5 mul16u::return#0 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#0 = mulu16_sel::return#12 } { mul16u::a#0 = mul16u::a#6 mul16u::b#2 mul16u::b#0 mulu16_sel::v2#5 mulu16_sel::v2#0 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mul16u::return#0 = mul16u::res#2 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#1 = mulu16_sel::return#12 } { mul16u::b#0 = mul16u::b#2 mulu16_sel::v2#5 mulu16_sel::v2#1 sin16s::x1#0 } { mul16u::a#0 = mul16u::a#6 mulu16_sel::v1#5 mulu16_sel::v1#1 sin16s::x2#0 } { mul16u::return#0 = mul16u::res#2 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#12 = mulu16_sel::return#2 } { mul16u::b#0 = mul16u::b#2 mulu16_sel::v2#5 } { mul16u::a#0 = mul16u::a#6 mulu16_sel::v1#5 mulu16_sel::v1#2 sin16s::x3#0 } { mul16u::return#0 = mul16u::res#2 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#10 = mulu16_sel::return#12 } { mul16u::b#0 = mul16u::b#2 mulu16_sel::v2#5 mulu16_sel::v2#3 sin16s::x1#0 } { mul16u::a#0 = mul16u::a#6 mulu16_sel::v1#5 mulu16_sel::v1#3 sin16s::x3#0 } { mul16u::return#0 = mul16u::res#2 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#11 = mulu16_sel::return#12 } { mul16u::b#0 = mul16u::b#2 mulu16_sel::v2#5 mulu16_sel::v2#4 sin16s::x1#0 } { mul16u::a#0 = mul16u::a#6 mulu16_sel::v1#5 mulu16_sel::v1#4 sin16s::x4#0 } { mul16u::return#0 = mul16u::res#2 } }  ) always clobbers reg byte a 
 Statement [227] mulu16_sel::$0 = mul16u::return#0 [ mulu16_sel::select#5 mulu16_sel::$0 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
 Statement [228] mulu16_sel::$1 = mulu16_sel::$0 << mulu16_sel::select#5 [ mulu16_sel::$1 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
-Statement [229] mulu16_sel::return#12 = > mulu16_sel::$1 [ mulu16_sel::return#12 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
+Statement [229] mulu16_sel::return#12 = _word1_ mulu16_sel::$1 [ mulu16_sel::return#12 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } }  main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } }  ) always clobbers reg byte a 
 Potential registers zp[2]:2 [ main::idx_x#3 main::idx_x#10 main::idx_x#1 ] : zp[2]:2 , 
 Potential registers zp[2]:4 [ main::idx_y#3 main::idx_y#10 main::idx_y#1 ] : zp[2]:4 , 
 Potential registers zp[2]:6 [ sin16s_gen2::i#2 sin16s_gen2::i#1 ] : zp[2]:6 , 
@@ -3947,26 +3943,26 @@ Uplifting [mul16s] best 27208 combination zp[4]:23 [ mul16s::m#4 mul16s::m#5 mul
 Uplifting [memset] best 27192 combination zp[2]:39 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:204 [ memset::end#0 ] reg byte x [ memset::c#4 ] zp[2]:34 [ memset::num#2 ] zp[2]:36 [ memset::str#3 ] 
 Uplifting [bitmap_init] best 26742 combination zp[2]:17 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] reg byte a [ bitmap_init::$4 ] zp[1]:135 [ bitmap_init::$5 ] zp[1]:136 [ bitmap_init::$6 ] zp[1]:133 [ bitmap_init::$7 ] 
 Limited combination testing to 100 combinations of 15360 possible.
-Uplifting [bitmap_plot] best 26705 combination reg byte a [ bitmap_plot::y#0 ] zp[2]:155 [ bitmap_plot::$0 ] reg byte x [ bitmap_plot::$1 ] zp[2]:157 [ bitmap_plot::plotter#1 ] zp[2]:153 [ bitmap_plot::plotter#0 ] zp[2]:110 [ bitmap_plot::x#0 ] 
-Uplifting [sin16s_gen2] best 26705 combination zp[2]:6 [ sin16s_gen2::i#2 sin16s_gen2::i#1 ] zp[4]:127 [ sin16s_gen2::$6 ] zp[4]:8 [ sin16s_gen2::x#2 sin16s_gen2::x#1 ] zp[2]:131 [ sin16s_gen2::$8 ] zp[2]:12 [ sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 ] zp[4]:117 [ sin16s_gen2::step#0 ] 
-Uplifting [div32u16u] best 26705 combination zp[2]:166 [ div32u16u::quotient_lo#0 ] zp[2]:162 [ div32u16u::quotient_hi#0 ] zp[4]:168 [ div32u16u::return#1 ] zp[4]:113 [ div32u16u::return#0 ] 
-Uplifting [main] best 26465 combination zp[2]:4 [ main::idx_y#3 main::idx_y#10 main::idx_y#1 ] zp[2]:66 [ main::$19 ] zp[2]:68 [ main::$21 ] zp[2]:70 [ main::cos_x#0 ] zp[4]:76 [ main::xpos#0 ] zp[4]:80 [ main::$6 ] reg byte alu [ main::$7 ] zp[2]:88 [ main::$20 ] zp[2]:90 [ main::$22 ] zp[2]:92 [ main::sin_y#0 ] zp[4]:98 [ main::ypos#0 ] zp[4]:102 [ main::$10 ] reg byte alu [ main::$11 ] zp[2]:2 [ main::idx_x#3 main::idx_x#10 main::idx_x#1 ] zp[2]:108 [ main::y#0 ] zp[2]:86 [ main::x#0 ] 
-Uplifting [] best 26465 combination zp[2]:209 [ rem16u#14 ] zp[1]:65 [ frame_cnt ] 
-Uplifting [MOS6526_CIA] best 26465 combination 
-Uplifting [MOS6569_VICII] best 26465 combination 
-Uplifting [MOS6581_SID] best 26465 combination 
-Uplifting [bitmap_clear] best 26465 combination 
-Uplifting [init_irq] best 26465 combination 
-Uplifting [irq] best 26465 combination 
-Uplifting [__start] best 26465 combination 
+Uplifting [bitmap_plot] best 26703 combination reg byte x [ bitmap_plot::y#0 ] zp[2]:155 [ bitmap_plot::$0 ] reg byte x [ bitmap_plot::$1 ] zp[2]:157 [ bitmap_plot::plotter#1 ] zp[2]:153 [ bitmap_plot::plotter#0 ] zp[2]:110 [ bitmap_plot::x#0 ] 
+Uplifting [sin16s_gen2] best 26703 combination zp[2]:6 [ sin16s_gen2::i#2 sin16s_gen2::i#1 ] zp[4]:127 [ sin16s_gen2::$6 ] zp[4]:8 [ sin16s_gen2::x#2 sin16s_gen2::x#1 ] zp[2]:131 [ sin16s_gen2::$8 ] zp[2]:12 [ sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 ] zp[4]:117 [ sin16s_gen2::step#0 ] 
+Uplifting [div32u16u] best 26703 combination zp[2]:166 [ div32u16u::quotient_lo#0 ] zp[2]:162 [ div32u16u::quotient_hi#0 ] zp[4]:168 [ div32u16u::return#1 ] zp[4]:113 [ div32u16u::return#0 ] 
+Uplifting [main] best 26463 combination zp[2]:4 [ main::idx_y#3 main::idx_y#10 main::idx_y#1 ] zp[2]:66 [ main::$19 ] zp[2]:68 [ main::$21 ] zp[2]:70 [ main::cos_x#0 ] zp[4]:76 [ main::xpos#0 ] zp[4]:80 [ main::$6 ] reg byte alu [ main::$7 ] zp[2]:88 [ main::$20 ] zp[2]:90 [ main::$22 ] zp[2]:92 [ main::sin_y#0 ] zp[4]:98 [ main::ypos#0 ] zp[4]:102 [ main::$10 ] reg byte alu [ main::$11 ] zp[2]:2 [ main::idx_x#3 main::idx_x#10 main::idx_x#1 ] zp[2]:108 [ main::y#0 ] zp[2]:86 [ main::x#0 ] 
+Uplifting [] best 26463 combination zp[2]:209 [ rem16u#14 ] zp[1]:65 [ frame_cnt ] 
+Uplifting [MOS6526_CIA] best 26463 combination 
+Uplifting [MOS6569_VICII] best 26463 combination 
+Uplifting [MOS6581_SID] best 26463 combination 
+Uplifting [bitmap_clear] best 26463 combination 
+Uplifting [init_irq] best 26463 combination 
+Uplifting [irq] best 26463 combination 
+Uplifting [__start] best 26463 combination 
 Attempting to uplift remaining variables inzp[1]:135 [ bitmap_init::$5 ]
-Uplifting [bitmap_init] best 26405 combination reg byte a [ bitmap_init::$5 ] 
+Uplifting [bitmap_init] best 26403 combination reg byte a [ bitmap_init::$5 ] 
 Attempting to uplift remaining variables inzp[1]:136 [ bitmap_init::$6 ]
-Uplifting [bitmap_init] best 26345 combination reg byte a [ bitmap_init::$6 ] 
+Uplifting [bitmap_init] best 26343 combination reg byte a [ bitmap_init::$6 ] 
 Attempting to uplift remaining variables inzp[1]:133 [ bitmap_init::$7 ]
-Uplifting [bitmap_init] best 26345 combination zp[1]:133 [ bitmap_init::$7 ] 
+Uplifting [bitmap_init] best 26343 combination zp[1]:133 [ bitmap_init::$7 ] 
 Attempting to uplift remaining variables inzp[1]:65 [ frame_cnt ]
-Uplifting [] best 26345 combination zp[1]:65 [ frame_cnt ] 
+Uplifting [] best 26343 combination zp[1]:65 [ frame_cnt ] 
 Coalescing zero page register [ zp[2]:32 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] ] with [ zp[2]:202 [ sin16s::usinx#1 ] ] - score: 2
 Coalescing zero page register [ zp[2]:60 [ mulu16_sel::v1#5 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 mulu16_sel::v1#3 ] ] with [ zp[2]:184 [ sin16s::x3#0 ] ] - score: 2
 Coalescing zero page register [ zp[2]:19 [ mul16s::a#3 mul16s::a#0 ] ] with [ zp[2]:121 [ sin16s::return#0 ] ] - score: 1
@@ -4302,8 +4298,8 @@ main: {
     rol.z __6+1
     rol.z __6+2
     rol.z __6+3
-    // [30] main::$7 = > main::$6
-    // [31] main::x#0 = $a0 + main::$7 -- vwuz1=vwuc1_plus__hi_vdsz2 
+    // [30] main::$7 = _word1_ main::$6
+    // [31] main::x#0 = $a0 + main::$7 -- vwuz1=vwuc1_plus__word1_vdsz2 
     clc
     lda #<$a0
     adc.z __6+2
@@ -4368,8 +4364,8 @@ main: {
     rol.z __10+1
     rol.z __10+2
     rol.z __10+3
-    // [40] main::$11 = > main::$10
-    // [41] main::y#0 = $64 + main::$11 -- vwuz1=vwuc1_plus__hi_vdsz2 
+    // [40] main::$11 = _word1_ main::$10
+    // [41] main::y#0 = $64 + main::$11 -- vwuz1=vwuc1_plus__word1_vdsz2 
     clc
     lda #<$64
     adc.z __10+2
@@ -4378,8 +4374,8 @@ main: {
     adc.z __10+3
     sta.z y+1
     // [42] bitmap_plot::x#0 = main::x#0
-    // [43] bitmap_plot::y#0 = (byte)main::y#0 -- vbuaa=_byte_vwuz1 
-    lda.z y
+    // [43] bitmap_plot::y#0 = (byte)main::y#0 -- vbuxx=_byte_vwuz1 
+    ldx.z y
     // [44] call bitmap_plot 
     jsr bitmap_plot
     jmp __b11
@@ -4555,7 +4551,7 @@ sin16s_gen2: {
     // sin16s_gen2::@5
   __b5:
     // [67] sin16s_gen2::$6 = mul16s::return#0
-    // [68] sin16s_gen2::$8 = > sin16s_gen2::$6 -- vwuz1=_hi_vdsz2 
+    // [68] sin16s_gen2::$8 = _word1_ sin16s_gen2::$6 -- vwuz1=_word1_vdsz2 
     lda.z __6+2
     sta.z __8
     lda.z __6+3
@@ -4668,13 +4664,13 @@ bitmap_init: {
     // [83] bitmap_init::$7 = bitmap_init::y#2 & 7 -- vbuz1=vbuxx_band_vbuc1 
     lda #7
     sax.z __7
-    // [84] bitmap_init::$4 = < bitmap_init::yoffs#2 -- vbuaa=_lo_pbuz1 
+    // [84] bitmap_init::$4 = < bitmap_init::yoffs#2 -- vbuaa=_byte0_pbuz1 
     lda.z yoffs
     // [85] bitmap_init::$5 = bitmap_init::$7 | bitmap_init::$4 -- vbuaa=vbuz1_bor_vbuaa 
     ora.z __7
     // [86] bitmap_plot_ylo[bitmap_init::y#2] = bitmap_init::$5 -- pbuc1_derefidx_vbuxx=vbuaa 
     sta bitmap_plot_ylo,x
-    // [87] bitmap_init::$6 = > bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 
+    // [87] bitmap_init::$6 = > bitmap_init::yoffs#2 -- vbuaa=_byte1_pbuz1 
     lda.z yoffs+1
     // [88] bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$6 -- pbuc1_derefidx_vbuxx=vbuaa 
     sta bitmap_plot_yhi,x
@@ -4842,7 +4838,7 @@ mul16s: {
     jmp __b3
     // mul16s::@3
   __b3:
-    // [117] mul16s::$6 = > mul16s::m#0 -- vwuz1=_hi_vduz2 
+    // [117] mul16s::$6 = _word1_ mul16s::m#0 -- vwuz1=_word1_vduz2 
     lda.z m+2
     sta.z __6
     lda.z m+3
@@ -4855,7 +4851,7 @@ mul16s: {
     lda.z __11+1
     sbc.z b+1
     sta.z __11+1
-    // [119] mul16s::m#1 = mul16s::m#0 hi= mul16s::$11 -- vduz1=vduz1_sethi_vwuz2 
+    // [119] mul16s::m#1 = mul16s::m#0 word1= mul16s::$11 -- vduz1=vduz1_setword1_vwuz2 
     lda.z __11
     sta.z m+2
     lda.z __11+1
@@ -4873,7 +4869,7 @@ mul16s: {
     jmp __b4
     // mul16s::@4
   __b4:
-    // [122] mul16s::$9 = > mul16s::m#5 -- vwuz1=_hi_vduz2 
+    // [122] mul16s::$9 = _word1_ mul16s::m#5 -- vwuz1=_word1_vduz2 
     lda.z m+2
     sta.z __9
     lda.z m+3
@@ -4886,7 +4882,7 @@ mul16s: {
     lda.z __9+1
     sbc.z __12+1
     sta.z __12+1
-    // [124] mul16s::m#2 = mul16s::m#5 hi= mul16s::$12 -- vduz1=vduz1_sethi_vwuz2 
+    // [124] mul16s::m#2 = mul16s::m#5 word1= mul16s::$12 -- vduz1=vduz1_setword1_vwuz2 
     lda.z __12
     sta.z m+2
     lda.z __12+1
@@ -4907,16 +4903,15 @@ mul16s: {
 }
   // bitmap_plot
 // Plot a single dot in the bitmap
-// bitmap_plot(word zp($17) x, byte register(A) y)
+// bitmap_plot(word zp($17) x, byte register(X) y)
 bitmap_plot: {
     .label __0 = $22
     .label plotter = $20
     .label x = $17
-    // [128] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] -- vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa 
-    tay
-    lda bitmap_plot_yhi,y
+    // [128] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx 
+    lda bitmap_plot_yhi,x
     sta.z plotter+1
-    lda bitmap_plot_ylo,y
+    lda bitmap_plot_ylo,x
     sta.z plotter
     // [129] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8 -- vwuz1=vwuz2_band_vwuc1 
     lda.z x
@@ -4933,7 +4928,7 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // [131] bitmap_plot::$1 = < bitmap_plot::x#0 -- vbuxx=_lo_vwuz1 
+    // [131] bitmap_plot::$1 = < bitmap_plot::x#0 -- vbuxx=_byte0_vwuz1 
     ldx.z x
     // [132] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx 
     lda bitmap_plot_bit,x
@@ -4957,7 +4952,7 @@ div32u16u: {
     // [135] call divr16u 
     // [204] phi from div32u16u to divr16u [phi:div32u16u->divr16u]
   divr16u_from_div32u16u:
-    // [204] phi divr16u::dividend#5 = >PI2_u4f28 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 
+    // [204] phi divr16u::dividend#5 = _word1_PI2_u4f28 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 
     lda #<PI2_u4f28>>$10
     sta.z divr16u.dividend
     lda #>PI2_u4f28>>$10
@@ -4985,7 +4980,7 @@ div32u16u: {
     // [139] call divr16u 
     // [204] phi from div32u16u::@1 to divr16u [phi:div32u16u::@1->divr16u]
   divr16u_from___b1:
-    // [204] phi divr16u::dividend#5 = <PI2_u4f28 [phi:div32u16u::@1->divr16u#0] -- vwuz1=vwuc1 
+    // [204] phi divr16u::dividend#5 = _word0_PI2_u4f28 [phi:div32u16u::@1->divr16u#0] -- vwuz1=vwuc1 
     lda #<PI2_u4f28&$ffff
     sta.z divr16u.dividend
     lda #>PI2_u4f28&$ffff
@@ -5140,7 +5135,7 @@ sin16s: {
     rol.z __4+1
     rol.z __4+2
     rol.z __4+3
-    // [151] sin16s::x1#0 = > sin16s::$4 -- vwuz1=_hi_vduz2 
+    // [151] sin16s::x1#0 = _word1_ sin16s::$4 -- vwuz1=_word1_vduz2 
     lda.z __4+2
     sta.z x1
     lda.z __4+3
@@ -5493,7 +5488,7 @@ divr16u: {
     // [206] divr16u::rem#0 = divr16u::rem#5 << 1 -- vwuz1=vwuz1_rol_1 
     asl.z rem
     rol.z rem+1
-    // [207] divr16u::$1 = > divr16u::dividend#3 -- vbuaa=_hi_vwuz1 
+    // [207] divr16u::$1 = > divr16u::dividend#3 -- vbuaa=_byte1_vwuz1 
     lda.z dividend+1
     // [208] divr16u::$2 = divr16u::$1 & $80 -- vbuaa=vbuaa_band_vbuc1 
     and #$80
@@ -5611,7 +5606,7 @@ mulu16_sel: {
     dex
     bne !-
   !e:
-    // [229] mulu16_sel::return#12 = > mulu16_sel::$1 -- vwuz1=_hi_vduz2 
+    // [229] mulu16_sel::return#12 = _word1_ mulu16_sel::$1 -- vwuz1=_word1_vduz2 
     lda.z __1+2
     sta.z return
     lda.z __1+3
@@ -5943,7 +5938,7 @@ byte* bitmap_plot::plotter#1 plotter zp[2]:32 1501.5
 word bitmap_plot::x
 word bitmap_plot::x#0 x zp[2]:23 420.59999999999997
 byte bitmap_plot::y
-byte bitmap_plot::y#0 reg byte a 2103.0
+byte bitmap_plot::y#0 reg byte x 2103.0
 constant const byte* bitmap_plot_bit[$100]  = { fill( $100, 0) }
 constant const byte* bitmap_plot_yhi[$100]  = { fill( $100, 0) }
 constant const byte* bitmap_plot_ylo[$100]  = { fill( $100, 0) }
@@ -6187,7 +6182,7 @@ reg byte alu [ main::$7 ]
 zp[2]:23 [ main::x#0 bitmap_plot::x#0 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 sin16s_gen2::i#2 sin16s_gen2::i#1 ]
 reg byte alu [ main::$11 ]
 zp[2]:25 [ main::y#0 memset::num#2 memset::end#0 sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 ]
-reg byte a [ bitmap_plot::y#0 ]
+reg byte x [ bitmap_plot::y#0 ]
 zp[4]:27 [ div32u16u::return#0 sin16s_gen2::step#0 div32u16u::return#1 ]
 zp[1]:31 [ bitmap_init::$7 ]
 reg byte a [ bitmap_init::$4 ]
@@ -6206,7 +6201,7 @@ zp[2]:44 [ rem16u#14 ]
 
 
 FINAL ASSEMBLER
-Score: 20492
+Score: 20490
 
   // File Comments
 // Tests the simple bitmap plotter - and counts plots per frame in an IRQ
@@ -6442,10 +6437,10 @@ main: {
     rol.z __6+1
     rol.z __6+2
     rol.z __6+3
-    // >(xpos<<4)
-    // [30] main::$7 = > main::$6
-    // word x = (word)(160 + >(xpos<<4))
-    // [31] main::x#0 = $a0 + main::$7 -- vwuz1=vwuc1_plus__hi_vdsz2 
+    // WORD1(xpos<<4)
+    // [30] main::$7 = _word1_ main::$6
+    // word x = (word)(160 + WORD1(xpos<<4))
+    // [31] main::x#0 = $a0 + main::$7 -- vwuz1=vwuc1_plus__word1_vdsz2 
     clc
     lda #<$a0
     adc.z __6+2
@@ -6512,10 +6507,10 @@ main: {
     rol.z __10+1
     rol.z __10+2
     rol.z __10+3
-    // >(ypos<<4)
-    // [40] main::$11 = > main::$10
-    // word y = (word)(100 + >(ypos<<4))
-    // [41] main::y#0 = $64 + main::$11 -- vwuz1=vwuc1_plus__hi_vdsz2 
+    // WORD1(ypos<<4)
+    // [40] main::$11 = _word1_ main::$10
+    // word y = (word)(100 + WORD1(ypos<<4))
+    // [41] main::y#0 = $64 + main::$11 -- vwuz1=vwuc1_plus__word1_vdsz2 
     clc
     lda #<$64
     adc.z __10+2
@@ -6525,8 +6520,8 @@ main: {
     sta.z y+1
     // bitmap_plot(x, (byte)y)
     // [42] bitmap_plot::x#0 = main::x#0
-    // [43] bitmap_plot::y#0 = (byte)main::y#0 -- vbuaa=_byte_vwuz1 
-    lda.z y
+    // [43] bitmap_plot::y#0 = (byte)main::y#0 -- vbuxx=_byte_vwuz1 
+    ldx.z y
     // [44] call bitmap_plot 
     jsr bitmap_plot
     // main::@11
@@ -6680,13 +6675,13 @@ sin16s_gen2: {
     // [66] mul16s::return#0 = mul16s::return#1
     // sin16s_gen2::@5
     // [67] sin16s_gen2::$6 = mul16s::return#0
-    // >mul16s(sin16s(x), ampl)
-    // [68] sin16s_gen2::$8 = > sin16s_gen2::$6 -- vwuz1=_hi_vdsz2 
+    // WORD1(mul16s(sin16s(x), ampl))
+    // [68] sin16s_gen2::$8 = _word1_ sin16s_gen2::$6 -- vwuz1=_word1_vdsz2 
     lda.z __6+2
     sta.z __8
     lda.z __6+3
     sta.z __8+1
-    // *sintab++ = offs + (signed int)>mul16s(sin16s(x), ampl)
+    // *sintab++ = offs + (signed int)WORD1(mul16s(sin16s(x), ampl))
     // [69] *sin16s_gen2::sintab#2 = (signed word)sin16s_gen2::$8 -- _deref_pwsz1=vwsz2 
     ldy #0
     lda.z __8
@@ -6694,7 +6689,7 @@ sin16s_gen2: {
     iny
     lda.z __8+1
     sta (sintab),y
-    // *sintab++ = offs + (signed int)>mul16s(sin16s(x), ampl);
+    // *sintab++ = offs + (signed int)WORD1(mul16s(sin16s(x), ampl));
     // [70] sin16s_gen2::sintab#0 = sin16s_gen2::sintab#2 + SIZEOF_SIGNED_WORD -- pwsz1=pwsz1_plus_vbuc1 
     lda #SIZEOF_SIGNED_WORD
     clc
@@ -6787,19 +6782,19 @@ bitmap_init: {
     // [83] bitmap_init::$7 = bitmap_init::y#2 & 7 -- vbuz1=vbuxx_band_vbuc1 
     lda #7
     sax.z __7
-    // <yoffs
-    // [84] bitmap_init::$4 = < bitmap_init::yoffs#2 -- vbuaa=_lo_pbuz1 
+    // BYTE0(yoffs)
+    // [84] bitmap_init::$4 = < bitmap_init::yoffs#2 -- vbuaa=_byte0_pbuz1 
     lda.z yoffs
-    // y&$7 | <yoffs
+    // y&$7 | BYTE0(yoffs)
     // [85] bitmap_init::$5 = bitmap_init::$7 | bitmap_init::$4 -- vbuaa=vbuz1_bor_vbuaa 
     ora.z __7
-    // bitmap_plot_ylo[y] = y&$7 | <yoffs
+    // bitmap_plot_ylo[y] = y&$7 | BYTE0(yoffs)
     // [86] bitmap_plot_ylo[bitmap_init::y#2] = bitmap_init::$5 -- pbuc1_derefidx_vbuxx=vbuaa 
     sta bitmap_plot_ylo,x
-    // >yoffs
-    // [87] bitmap_init::$6 = > bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 
+    // BYTE1(yoffs)
+    // [87] bitmap_init::$6 = > bitmap_init::yoffs#2 -- vbuaa=_byte1_pbuz1 
     lda.z yoffs+1
-    // bitmap_plot_yhi[y] = >yoffs
+    // bitmap_plot_yhi[y] = BYTE1(yoffs)
     // [88] bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$6 -- pbuc1_derefidx_vbuxx=vbuaa 
     sta bitmap_plot_yhi,x
     // if((y&$7)==7)
@@ -6966,13 +6961,13 @@ mul16s: {
     lda.z a+1
     bpl __b1
     // mul16s::@3
-    // >m
-    // [117] mul16s::$6 = > mul16s::m#0 -- vwuz1=_hi_vduz2 
+    // WORD1(m)
+    // [117] mul16s::$6 = _word1_ mul16s::m#0 -- vwuz1=_word1_vduz2 
     lda.z m+2
     sta.z __6
     lda.z m+3
     sta.z __6+1
-    // >m = (>m)-(unsigned int)b
+    // WORD1(m) = WORD1(m)-(unsigned int)b
     // [118] mul16s::$11 = mul16s::$6 - (word)mul16s::b#3 -- vwuz1=vwuz1_minus_vwuz2 
     lda.z __11
     sec
@@ -6981,7 +6976,7 @@ mul16s: {
     lda.z __11+1
     sbc.z b+1
     sta.z __11+1
-    // [119] mul16s::m#1 = mul16s::m#0 hi= mul16s::$11 -- vduz1=vduz1_sethi_vwuz2 
+    // [119] mul16s::m#1 = mul16s::m#0 word1= mul16s::$11 -- vduz1=vduz1_setword1_vwuz2 
     lda.z __11
     sta.z m+2
     lda.z __11+1
@@ -6995,13 +6990,13 @@ mul16s: {
     lda.z b+1
     bpl __b2
     // mul16s::@4
-    // >m
-    // [122] mul16s::$9 = > mul16s::m#5 -- vwuz1=_hi_vduz2 
+    // WORD1(m)
+    // [122] mul16s::$9 = _word1_ mul16s::m#5 -- vwuz1=_word1_vduz2 
     lda.z m+2
     sta.z __9
     lda.z m+3
     sta.z __9+1
-    // >m = (>m)-(unsigned int)a
+    // WORD1(m) = WORD1(m)-(unsigned int)a
     // [123] mul16s::$12 = mul16s::$9 - (word)mul16s::a#3 -- vwuz1=vwuz2_minus_vwuz1 
     lda.z __9
     sec
@@ -7010,7 +7005,7 @@ mul16s: {
     lda.z __9+1
     sbc.z __12+1
     sta.z __12+1
-    // [124] mul16s::m#2 = mul16s::m#5 hi= mul16s::$12 -- vduz1=vduz1_sethi_vwuz2 
+    // [124] mul16s::m#2 = mul16s::m#5 word1= mul16s::$12 -- vduz1=vduz1_setword1_vwuz2 
     lda.z __12
     sta.z m+2
     lda.z __12+1
@@ -7028,17 +7023,16 @@ mul16s: {
 }
   // bitmap_plot
 // Plot a single dot in the bitmap
-// bitmap_plot(word zp($17) x, byte register(A) y)
+// bitmap_plot(word zp($17) x, byte register(X) y)
 bitmap_plot: {
     .label __0 = $22
     .label plotter = $20
     .label x = $17
     // char* plotter = (char*) { bitmap_plot_yhi[y], bitmap_plot_ylo[y] }
-    // [128] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] -- vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa 
-    tay
-    lda bitmap_plot_yhi,y
+    // [128] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx 
+    lda bitmap_plot_yhi,x
     sta.z plotter+1
-    lda bitmap_plot_ylo,y
+    lda bitmap_plot_ylo,x
     sta.z plotter
     // x & $fff8
     // [129] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8 -- vwuz1=vwuz2_band_vwuc1 
@@ -7057,10 +7051,10 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // <x
-    // [131] bitmap_plot::$1 = < bitmap_plot::x#0 -- vbuxx=_lo_vwuz1 
+    // BYTE0(x)
+    // [131] bitmap_plot::$1 = < bitmap_plot::x#0 -- vbuxx=_byte0_vwuz1 
     ldx.z x
-    // *plotter |= bitmap_plot_bit[<x]
+    // *plotter |= bitmap_plot_bit[BYTE0(x)]
     // [132] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx 
     lda bitmap_plot_bit,x
     ldy #0
@@ -7078,10 +7072,10 @@ div32u16u: {
     .label return = $1b
     .label quotient_hi = $28
     .label quotient_lo = $14
-    // divr16u(>dividend, divisor, 0)
+    // divr16u(WORD1(dividend), divisor, 0)
     // [135] call divr16u 
     // [204] phi from div32u16u to divr16u [phi:div32u16u->divr16u]
-    // [204] phi divr16u::dividend#5 = >PI2_u4f28 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 
+    // [204] phi divr16u::dividend#5 = _word1_PI2_u4f28 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 
     lda #<PI2_u4f28>>$10
     sta.z divr16u.dividend
     lda #>PI2_u4f28>>$10
@@ -7091,16 +7085,16 @@ div32u16u: {
     sta.z divr16u.rem
     sta.z divr16u.rem+1
     jsr divr16u
-    // divr16u(>dividend, divisor, 0)
+    // divr16u(WORD1(dividend), divisor, 0)
     // [136] divr16u::return#2 = divr16u::return#0
     // div32u16u::@1
-    // unsigned int quotient_hi = divr16u(>dividend, divisor, 0)
+    // unsigned int quotient_hi = divr16u(WORD1(dividend), divisor, 0)
     // [137] div32u16u::quotient_hi#0 = divr16u::return#2 -- vwuz1=vwuz2 
     lda.z divr16u.return
     sta.z quotient_hi
     lda.z divr16u.return+1
     sta.z quotient_hi+1
-    // divr16u(<dividend, divisor, rem16u)
+    // divr16u(WORD0(dividend), divisor, rem16u)
     // [138] divr16u::rem#4 = rem16u#14 -- vwuz1=vwuz2 
     lda.z rem16u
     sta.z divr16u.rem
@@ -7108,17 +7102,17 @@ div32u16u: {
     sta.z divr16u.rem+1
     // [139] call divr16u 
     // [204] phi from div32u16u::@1 to divr16u [phi:div32u16u::@1->divr16u]
-    // [204] phi divr16u::dividend#5 = <PI2_u4f28 [phi:div32u16u::@1->divr16u#0] -- vwuz1=vwuc1 
+    // [204] phi divr16u::dividend#5 = _word0_PI2_u4f28 [phi:div32u16u::@1->divr16u#0] -- vwuz1=vwuc1 
     lda #<PI2_u4f28&$ffff
     sta.z divr16u.dividend
     lda #>PI2_u4f28&$ffff
     sta.z divr16u.dividend+1
     // [204] phi divr16u::rem#10 = divr16u::rem#4 [phi:div32u16u::@1->divr16u#1] -- register_copy 
     jsr divr16u
-    // divr16u(<dividend, divisor, rem16u)
+    // divr16u(WORD0(dividend), divisor, rem16u)
     // [140] divr16u::return#3 = divr16u::return#0
     // div32u16u::@2
-    // unsigned int quotient_lo = divr16u(<dividend, divisor, rem16u)
+    // unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
     // [141] div32u16u::quotient_lo#0 = divr16u::return#3
     // unsigned long quotient = { quotient_hi, quotient_lo}
     // [142] div32u16u::return#1 = div32u16u::quotient_hi#0 dw= div32u16u::quotient_lo#0 -- vduz1=vwuz2_dword_vwuz3 
@@ -7259,8 +7253,8 @@ sin16s: {
     rol.z __4+1
     rol.z __4+2
     rol.z __4+3
-    // unsigned int x1 = >x<<3
-    // [151] sin16s::x1#0 = > sin16s::$4 -- vwuz1=_hi_vduz2 
+    // unsigned int x1 = WORD1(x<<3)
+    // [151] sin16s::x1#0 = _word1_ sin16s::$4 -- vwuz1=_word1_vduz2 
     lda.z __4+2
     sta.z x1
     lda.z __4+3
@@ -7602,13 +7596,13 @@ divr16u: {
     // [206] divr16u::rem#0 = divr16u::rem#5 << 1 -- vwuz1=vwuz1_rol_1 
     asl.z rem
     rol.z rem+1
-    // >dividend
-    // [207] divr16u::$1 = > divr16u::dividend#3 -- vbuaa=_hi_vwuz1 
+    // BYTE1(dividend)
+    // [207] divr16u::$1 = > divr16u::dividend#3 -- vbuaa=_byte1_vwuz1 
     lda.z dividend+1
-    // >dividend & $80
+    // BYTE1(dividend) & $80
     // [208] divr16u::$2 = divr16u::$1 & $80 -- vbuaa=vbuaa_band_vbuc1 
     and #$80
-    // if( (>dividend & $80) != 0 )
+    // if( (BYTE1(dividend) & $80) != 0 )
     // [209] if(divr16u::$2==0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 
     cmp #0
     beq __b2
@@ -7718,8 +7712,8 @@ mulu16_sel: {
     dex
     bne !-
   !e:
-    // >mul16u(v1, v2)<<select
-    // [229] mulu16_sel::return#12 = > mulu16_sel::$1 -- vwuz1=_hi_vduz2 
+    // WORD1(mul16u(v1, v2)<<select)
+    // [229] mulu16_sel::return#12 = _word1_ mulu16_sel::$1 -- vwuz1=_word1_vduz2 
     lda.z __1+2
     sta.z return
     lda.z __1+3
diff --git a/src/test/ref/bitmap-plot-1.sym b/src/test/ref/bitmap-plot-1.sym
index d7e8085d4..424701bfd 100644
--- a/src/test/ref/bitmap-plot-1.sym
+++ b/src/test/ref/bitmap-plot-1.sym
@@ -63,7 +63,7 @@ byte* bitmap_plot::plotter#1 plotter zp[2]:32 1501.5
 word bitmap_plot::x
 word bitmap_plot::x#0 x zp[2]:23 420.59999999999997
 byte bitmap_plot::y
-byte bitmap_plot::y#0 reg byte a 2103.0
+byte bitmap_plot::y#0 reg byte x 2103.0
 constant const byte* bitmap_plot_bit[$100]  = { fill( $100, 0) }
 constant const byte* bitmap_plot_yhi[$100]  = { fill( $100, 0) }
 constant const byte* bitmap_plot_ylo[$100]  = { fill( $100, 0) }
@@ -307,7 +307,7 @@ reg byte alu [ main::$7 ]
 zp[2]:23 [ main::x#0 bitmap_plot::x#0 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 sin16s_gen2::i#2 sin16s_gen2::i#1 ]
 reg byte alu [ main::$11 ]
 zp[2]:25 [ main::y#0 memset::num#2 memset::end#0 sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 ]
-reg byte a [ bitmap_plot::y#0 ]
+reg byte x [ bitmap_plot::y#0 ]
 zp[4]:27 [ div32u16u::return#0 sin16s_gen2::step#0 div32u16u::return#1 ]
 zp[1]:31 [ bitmap_init::$7 ]
 reg byte a [ bitmap_init::$4 ]
diff --git a/src/test/ref/bitmap-plot-3.asm b/src/test/ref/bitmap-plot-3.asm
index 5f6eb5628..1d39364d1 100644
--- a/src/test/ref/bitmap-plot-3.asm
+++ b/src/test/ref/bitmap-plot-3.asm
@@ -523,8 +523,9 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // *plotter |= bitmap_plot_bit[(char)x]
+    // BYTE0(x)
     ldx.z x
+    // *plotter |= bitmap_plot_bit[BYTE0(x)]
     lda bitmap_plot_bit,x
     ldy #0
     ora (plotter),y
diff --git a/src/test/ref/bitmap-plot-3.cfg b/src/test/ref/bitmap-plot-3.cfg
index f275caeee..a5adcee3f 100644
--- a/src/test/ref/bitmap-plot-3.cfg
+++ b/src/test/ref/bitmap-plot-3.cfg
@@ -254,7 +254,7 @@ bitmap_plot: scope:[bitmap_plot]  from bitmap_line::@3 bitmap_line::@4 bitmap_li
   [121] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4]
   [122] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
   [123] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
-  [124] bitmap_plot::$1 = (byte)bitmap_plot::x#4
+  [124] bitmap_plot::$1 = < bitmap_plot::x#4
   [125] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
   to:bitmap_plot::@return
 bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
diff --git a/src/test/ref/bitmap-plot-3.log b/src/test/ref/bitmap-plot-3.log
index 8e61299e2..b545c0fd8 100644
--- a/src/test/ref/bitmap-plot-3.log
+++ b/src/test/ref/bitmap-plot-3.log
@@ -126,7 +126,7 @@ bitmap_plot: scope:[bitmap_plot]  from bitmap_line::@3 bitmap_line::@4 bitmap_li
   bitmap_plot::plotter#0 = (byte*){ bitmap_plot_yhi[bitmap_plot::y#4], bitmap_plot_ylo[bitmap_plot::y#4] }
   bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
   bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$0
-  bitmap_plot::$1 = (byte)bitmap_plot::x#4
+  bitmap_plot::$1 = < bitmap_plot::x#4
   *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
   to:bitmap_plot::@return
 bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
@@ -1927,7 +1927,7 @@ bitmap_plot: scope:[bitmap_plot]  from bitmap_line::@3 bitmap_line::@4 bitmap_li
   [121] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4]
   [122] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
   [123] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
-  [124] bitmap_plot::$1 = (byte)bitmap_plot::x#4
+  [124] bitmap_plot::$1 = < bitmap_plot::x#4
   [125] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
   to:bitmap_plot::@return
 bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
@@ -2028,7 +2028,7 @@ word bitmap_plot::x#0 101.0
 word bitmap_plot::x#1 10001.0
 word bitmap_plot::x#2 101.0
 word bitmap_plot::x#3 10001.0
-word bitmap_plot::x#4 30051.25
+word bitmap_plot::x#4 55051.5
 byte bitmap_plot::y
 byte bitmap_plot::y#0 202.0
 byte bitmap_plot::y#1 20002.0
@@ -2426,7 +2426,7 @@ Potential registers zp[2]:71 [ bitmap_plot::plotter#1 ] : zp[2]:71 ,
 Potential registers zp[1]:73 [ bitmap_plot::$1 ] : zp[1]:73 , reg byte a , reg byte x , reg byte y , 
 
 REGISTER UPLIFT SCOPES
-Uplift Scope [bitmap_plot] 260,614: zp[1]:30 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ] 200,002: zp[2]:69 [ bitmap_plot::$0 ] 200,002: zp[1]:73 [ bitmap_plot::$1 ] 150,001.5: zp[2]:71 [ bitmap_plot::plotter#1 ] 50,255.25: zp[2]:31 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] 50,000.5: zp[2]:67 [ bitmap_plot::plotter#0 ] 
+Uplift Scope [bitmap_plot] 260,614: zp[1]:30 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ] 200,002: zp[2]:69 [ bitmap_plot::$0 ] 200,002: zp[1]:73 [ bitmap_plot::$1 ] 150,001.5: zp[2]:71 [ bitmap_plot::plotter#1 ] 75,255.5: zp[2]:31 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] 50,000.5: zp[2]:67 [ bitmap_plot::plotter#0 ] 
 Uplift Scope [bitmap_line] 69,095.99: zp[2]:11 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 ] 55,062.47: zp[2]:13 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 ] 52,560.77: zp[2]:9 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] 52,560.77: zp[2]:15 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] 844.64: zp[2]:51 [ bitmap_line::dy#0 ] 773.19: zp[2]:59 [ bitmap_line::sy#0 ] 760.17: zp[2]:47 [ bitmap_line::dx#0 ] 670.1: zp[2]:55 [ bitmap_line::sx#0 ] 319.19: zp[2]:39 [ bitmap_line::y2#0 ] 300.41: zp[2]:37 [ bitmap_line::x2#0 ] 
 Uplift Scope [abs_u16] 3,758.25: zp[2]:24 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 ] 2,002: zp[1]:63 [ abs_u16::$0 ] 2,002: zp[1]:64 [ abs_u16::$1 ] 202: zp[2]:45 [ abs_u16::return#0 ] 202: zp[2]:49 [ abs_u16::return#1 ] 
 Uplift Scope [sgn_u16] 2,002: zp[1]:65 [ sgn_u16::$0 ] 2,002: zp[1]:66 [ sgn_u16::$1 ] 1,607: zp[2]:26 [ sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ] 202: zp[2]:53 [ sgn_u16::return#0 ] 202: zp[2]:57 [ sgn_u16::return#1 ] 50.5: zp[2]:28 [ sgn_u16::return#4 ] 
@@ -3290,7 +3290,7 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // [124] bitmap_plot::$1 = (byte)bitmap_plot::x#4 -- vbuxx=_byte_vwuz1 
+    // [124] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1 
     ldx.z x
     // [125] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx 
     lda bitmap_plot_bit,x
@@ -3570,7 +3570,7 @@ word bitmap_plot::x#0 x zp[2]:6 101.0
 word bitmap_plot::x#1 x zp[2]:6 10001.0
 word bitmap_plot::x#2 x zp[2]:6 101.0
 word bitmap_plot::x#3 x zp[2]:6 10001.0
-word bitmap_plot::x#4 x zp[2]:6 30051.25
+word bitmap_plot::x#4 x zp[2]:6 55051.5
 byte bitmap_plot::y
 byte bitmap_plot::y#0 reg byte x 202.0
 byte bitmap_plot::y#1 reg byte x 20002.0
@@ -4416,9 +4416,10 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // *plotter |= bitmap_plot_bit[(char)x]
-    // [124] bitmap_plot::$1 = (byte)bitmap_plot::x#4 -- vbuxx=_byte_vwuz1 
+    // BYTE0(x)
+    // [124] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1 
     ldx.z x
+    // *plotter |= bitmap_plot_bit[BYTE0(x)]
     // [125] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx 
     lda bitmap_plot_bit,x
     ldy #0
diff --git a/src/test/ref/bitmap-plot-3.sym b/src/test/ref/bitmap-plot-3.sym
index 98c47bc83..74fde0340 100644
--- a/src/test/ref/bitmap-plot-3.sym
+++ b/src/test/ref/bitmap-plot-3.sym
@@ -105,7 +105,7 @@ word bitmap_plot::x#0 x zp[2]:6 101.0
 word bitmap_plot::x#1 x zp[2]:6 10001.0
 word bitmap_plot::x#2 x zp[2]:6 101.0
 word bitmap_plot::x#3 x zp[2]:6 10001.0
-word bitmap_plot::x#4 x zp[2]:6 30051.25
+word bitmap_plot::x#4 x zp[2]:6 55051.5
 byte bitmap_plot::y
 byte bitmap_plot::y#0 reg byte x 202.0
 byte bitmap_plot::y#1 reg byte x 20002.0
diff --git a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.asm b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.asm
index 63469c7c3..ebc4e3ef3 100644
--- a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.asm
+++ b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.asm
@@ -536,8 +536,9 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // *plotter |= bitmap_plot_bit[(char)x]
+    // BYTE0(x)
     ldx.z x
+    // *plotter |= bitmap_plot_bit[BYTE0(x)]
     lda bitmap_plot_bit,x
     ldy #0
     ora (plotter),y
diff --git a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.cfg b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.cfg
index bbed1f696..29aca5106 100644
--- a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.cfg
+++ b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.cfg
@@ -273,7 +273,7 @@ bitmap_plot: scope:[bitmap_plot]  from bitmap_line::@3 bitmap_line::@4 bitmap_li
   [129] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4]
   [130] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
   [131] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
-  [132] bitmap_plot::$1 = (byte)bitmap_plot::x#4
+  [132] bitmap_plot::$1 = < bitmap_plot::x#4
   [133] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
   to:bitmap_plot::@return
 bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
diff --git a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log
index 5ae2a7673..e566bb3f7 100644
--- a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log
+++ b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log
@@ -125,7 +125,7 @@ bitmap_plot: scope:[bitmap_plot]  from bitmap_line::@3 bitmap_line::@4 bitmap_li
   bitmap_plot::plotter#0 = (byte*){ bitmap_plot_yhi[bitmap_plot::y#4], bitmap_plot_ylo[bitmap_plot::y#4] }
   bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
   bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$0
-  bitmap_plot::$1 = (byte)bitmap_plot::x#4
+  bitmap_plot::$1 = < bitmap_plot::x#4
   *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
   to:bitmap_plot::@return
 bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
@@ -1839,7 +1839,7 @@ bitmap_plot: scope:[bitmap_plot]  from bitmap_line::@3 bitmap_line::@4 bitmap_li
   [129] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4]
   [130] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
   [131] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
-  [132] bitmap_plot::$1 = (byte)bitmap_plot::x#4
+  [132] bitmap_plot::$1 = < bitmap_plot::x#4
   [133] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
   to:bitmap_plot::@return
 bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
@@ -1940,7 +1940,7 @@ word bitmap_plot::x#0 100001.0
 word bitmap_plot::x#1 1.00000001E8
 word bitmap_plot::x#2 100001.0
 word bitmap_plot::x#3 1.00000001E8
-word bitmap_plot::x#4 3.0005000125E8
+word bitmap_plot::x#4 5.500500015E8
 byte bitmap_plot::y
 byte bitmap_plot::y#0 200002.0
 byte bitmap_plot::y#1 2.00000002E8
@@ -2271,7 +2271,7 @@ Potential registers zp[2]:68 [ bitmap_plot::plotter#1 ] : zp[2]:68 ,
 Potential registers zp[1]:70 [ bitmap_plot::$1 ] : zp[1]:70 , reg byte a , reg byte x , reg byte y , 
 
 REGISTER UPLIFT SCOPES
-Uplift Scope [bitmap_plot] 2,600,600,014: zp[1]:31 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ] 2,000,000,002: zp[2]:66 [ bitmap_plot::$0 ] 2,000,000,002: zp[1]:70 [ bitmap_plot::$1 ] 1,500,000,001.5: zp[2]:68 [ bitmap_plot::plotter#1 ] 500,250,005.25: zp[2]:32 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] 500,000,000.5: zp[2]:64 [ bitmap_plot::plotter#0 ] 
+Uplift Scope [bitmap_plot] 2,600,600,014: zp[1]:31 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ] 2,000,000,002: zp[2]:66 [ bitmap_plot::$0 ] 2,000,000,002: zp[1]:70 [ bitmap_plot::$1 ] 1,500,000,001.5: zp[2]:68 [ bitmap_plot::plotter#1 ] 750,250,005.5: zp[2]:32 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] 500,000,000.5: zp[2]:64 [ bitmap_plot::plotter#0 ] 
 Uplift Scope [bitmap_line] 689,445,408.53: zp[2]:19 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 ] 550,055,691.81: zp[2]:21 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 ] 523,553,340.77: zp[2]:23 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] 523,553,340.77: zp[2]:17 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] 8,344,444.64: zp[2]:50 [ bitmap_line::dy#0 ] 7,696,153.96: zp[2]:58 [ bitmap_line::sy#0 ] 7,510,000.18: zp[2]:46 [ bitmap_line::dx#0 ] 6,670,000.1: zp[2]:54 [ bitmap_line::sx#0 ] 3,131,562.62: zp[2]:40 [ bitmap_line::y2#0 ] 3,036,666.79: zp[2]:38 [ bitmap_line::x2#0 ] 
 Uplift Scope [abs_u16] 3,750,008.25: zp[2]:25 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 ] 2,000,002: zp[1]:60 [ abs_u16::$0 ] 2,000,002: zp[1]:61 [ abs_u16::$1 ] 200,002: zp[2]:44 [ abs_u16::return#0 ] 200,002: zp[2]:48 [ abs_u16::return#1 ] 
 Uplift Scope [sgn_u16] 2,000,002: zp[1]:62 [ sgn_u16::$0 ] 2,000,002: zp[1]:63 [ sgn_u16::$1 ] 1,600,007: zp[2]:27 [ sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ] 200,002: zp[2]:52 [ sgn_u16::return#0 ] 200,002: zp[2]:56 [ sgn_u16::return#1 ] 50,000.5: zp[2]:29 [ sgn_u16::return#4 ] 
@@ -3167,7 +3167,7 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // [132] bitmap_plot::$1 = (byte)bitmap_plot::x#4 -- vbuxx=_byte_vwuz1 
+    // [132] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1 
     ldx.z x
     // [133] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx 
     lda bitmap_plot_bit,x
@@ -3454,7 +3454,7 @@ word bitmap_plot::x#0 x zp[2]:4 100001.0
 word bitmap_plot::x#1 x zp[2]:4 1.00000001E8
 word bitmap_plot::x#2 x zp[2]:4 100001.0
 word bitmap_plot::x#3 x zp[2]:4 1.00000001E8
-word bitmap_plot::x#4 x zp[2]:4 3.0005000125E8
+word bitmap_plot::x#4 x zp[2]:4 5.500500015E8
 byte bitmap_plot::y
 byte bitmap_plot::y#0 reg byte x 200002.0
 byte bitmap_plot::y#1 reg byte x 2.00000002E8
@@ -4323,9 +4323,10 @@ bitmap_plot: {
     lda.z plotter+1
     adc.z __0+1
     sta.z plotter+1
-    // *plotter |= bitmap_plot_bit[(char)x]
-    // [132] bitmap_plot::$1 = (byte)bitmap_plot::x#4 -- vbuxx=_byte_vwuz1 
+    // BYTE0(x)
+    // [132] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1 
     ldx.z x
+    // *plotter |= bitmap_plot_bit[BYTE0(x)]
     // [133] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx 
     lda bitmap_plot_bit,x
     ldy #0
diff --git a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.sym b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.sym
index 91c632d62..1fbc9553a 100644
--- a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.sym
+++ b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.sym
@@ -103,7 +103,7 @@ word bitmap_plot::x#0 x zp[2]:4 100001.0
 word bitmap_plot::x#1 x zp[2]:4 1.00000001E8
 word bitmap_plot::x#2 x zp[2]:4 100001.0
 word bitmap_plot::x#3 x zp[2]:4 1.00000001E8
-word bitmap_plot::x#4 x zp[2]:4 3.0005000125E8
+word bitmap_plot::x#4 x zp[2]:4 5.500500015E8
 byte bitmap_plot::y
 byte bitmap_plot::y#0 reg byte x 200002.0
 byte bitmap_plot::y#1 reg byte x 2.00000002E8
diff --git a/src/test/ref/test-lowhigh.log b/src/test/ref/test-lowhigh.log
index b0b761d45..48384d993 100644
--- a/src/test/ref/test-lowhigh.log
+++ b/src/test/ref/test-lowhigh.log
@@ -1244,11 +1244,11 @@ Allocated zp[4]:34 [ print_ulong::dw#0 ]
 Allocated zp[1]:38 [ print_uchar::$0 ]
 Allocated zp[1]:39 [ print_uchar::$2 ]
 REGISTER UPLIFT POTENTIAL REGISTERS
+Equivalence Class zp[2]:18 [ main::$3 ] has ALU potential.
+Equivalence Class zp[2]:26 [ main::$6 ] has ALU potential.
 Statement [3] if(main::dw#10!=$12345690) goto main::@2 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 ] { }  ) always clobbers reg byte a 
-Statement [5] main::$3 = _word1_ main::dw#10 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$3 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$3 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
 Statement [6] main::$28 = main::$3 + $1111 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$28 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$28 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
 Statement [7] main::dw2#1 = main::dw#10 word1= main::$28 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
-Statement [8] main::$6 = _word0_ main::dw#10 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$6 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$6 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
 Statement [9] main::$29 = main::$6 + $1111 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$29 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$29 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
 Statement [10] main::dw2#10 = main::dw2#1 word0= main::$29 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#10 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#10 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
 Statement [11] print_ulong::dw#0 = main::dw2#10 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#10 print_ulong::dw#0 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#10 print_ulong::dw#0 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
@@ -1269,10 +1269,8 @@ Statement [73] print_line_cursor#38 = print_line_cursor#0 [ print_char_cursor#11
 Statement [76] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( print_cls:1::memset:42 [ memset::dst#2 ] { }  ) always clobbers reg byte a 
 Statement [78] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( print_cls:1::memset:42 [ memset::dst#2 ] { }  ) always clobbers reg byte a reg byte y 
 Statement [3] if(main::dw#10!=$12345690) goto main::@2 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 ] { }  ) always clobbers reg byte a 
-Statement [5] main::$3 = _word1_ main::dw#10 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$3 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$3 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
 Statement [6] main::$28 = main::$3 + $1111 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$28 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$28 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
 Statement [7] main::dw2#1 = main::dw#10 word1= main::$28 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
-Statement [8] main::$6 = _word0_ main::dw#10 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$6 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$6 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
 Statement [9] main::$29 = main::$6 + $1111 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$29 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$29 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
 Statement [10] main::dw2#10 = main::dw2#1 word0= main::$29 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#10 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#10 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
 Statement [11] print_ulong::dw#0 = main::dw2#10 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#10 print_ulong::dw#0 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#10 print_ulong::dw#0 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
@@ -1298,10 +1296,10 @@ Potential registers zp[2]:11 [ print_char_cursor#67 print_char_cursor#45 print_c
 Potential registers zp[1]:13 [ print_uchar::b#6 print_uchar::b#3 print_uchar::b#4 print_uchar::b#5 print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] : zp[1]:13 , reg byte x , 
 Potential registers zp[2]:14 [ print_line_cursor#10 print_line_cursor#16 print_line_cursor#39 print_line_cursor#38 ] : zp[2]:14 , 
 Potential registers zp[2]:16 [ memset::dst#2 memset::dst#1 ] : zp[2]:16 , 
-Potential registers zp[2]:18 [ main::$3 ] : zp[2]:18 , 
+Potential registers zp[2]:18 [ main::$3 ] : zp[2]:18 , reg byte alu , 
 Potential registers zp[2]:20 [ main::$28 ] : zp[2]:20 , 
 Potential registers zp[4]:22 [ main::dw2#1 ] : zp[4]:22 , 
-Potential registers zp[2]:26 [ main::$6 ] : zp[2]:26 , 
+Potential registers zp[2]:26 [ main::$6 ] : zp[2]:26 , reg byte alu , 
 Potential registers zp[2]:28 [ main::$29 ] : zp[2]:28 , 
 Potential registers zp[4]:30 [ main::dw2#10 ] : zp[4]:30 , 
 Potential registers zp[4]:34 [ print_ulong::dw#0 ] : zp[4]:34 ,