From ff812d6f6004e160e9e7b0ba1005ab04eff82563 Mon Sep 17 00:00:00 2001
From: jespergravgaard <jesper@balmangravgaard.dk>
Date: Fri, 11 Jun 2021 21:41:01 +0200
Subject: [PATCH] Removed support for LValue unary operator low/high <x  >x.
 Added support for LValue BYTE0(), BYTE1(), ..., WORD0(), .... Closes #667

---
 .../cache/fragment-cache-csg65ce02.asm        |    2 +-
 .../cache/fragment-cache-mega45gs02.asm       |    2 +-
 .../fragment/cache/fragment-cache-mos6502.asm |    2 +-
 .../cache/fragment-cache-mos6502x.asm         |  335 +++--
 .../cache/fragment-cache-rom6502x.asm         |    2 +-
 .../cache/fragment-cache-wdc65c02.asm         |    2 +-
 .../pvom1=pbuc1_setbyte1_vbuaa.asm            |    3 +
 .../pvom1=pvom1_setbyte0_vbuaa.asm            |    1 +
 ...xx=pwuc1_derefidx_vbuxx_setbyte0_vbuaa.asm |    1 +
 ...yy=pwuc1_derefidx_vbuyy_setbyte0_vbuaa.asm |    1 +
 ...um2.asm => vdum1=vdum1_setword0_vwum2.asm} |    0
 ...um2.asm => vdum1=vdum1_setword1_vwum2.asm} |    0
 ...um3.asm => vdum1=vdum2_setword0_vwum3.asm} |    0
 ...um3.asm => vdum1=vdum2_setword1_vwum3.asm} |    0
 ...uaa.asm => vwum1=vbuc1_setbyte1_vbuaa.asm} |    0
 ...uxx.asm => vwum1=vbuc1_setbyte1_vbuxx.asm} |    0
 ...uyy.asm => vwum1=vbuc1_setbyte1_vbuyy.asm} |    0
 ...uaa.asm => vwum1=vwuc1_setbyte0_vbuaa.asm} |    0
 ...uxx.asm => vwum1=vwuc1_setbyte0_vbuxx.asm} |    0
 ...uyy.asm => vwum1=vwuc1_setbyte0_vbuyy.asm} |    0
 ...uaa.asm => vwum1=vwuc1_setbyte1_vbuaa.asm} |    0
 ...uxx.asm => vwum1=vwuc1_setbyte1_vbuxx.asm} |    0
 ...uyy.asm => vwum1=vwuc1_setbyte1_vbuyy.asm} |    0
 ...uaa.asm => vwum1=vwum1_setbyte0_vbuaa.asm} |    0
 ...uaa.asm => vwum1=vwum1_setword1_vbuaa.asm} |    0
 ...uxx.asm => vwum1=vwum1_setword1_vbuxx.asm} |    0
 ...uyy.asm => vwum1=vwum1_setword1_vbuyy.asm} |    0
 ...uaa.asm => vwum1=vwum2_setbyte0_vbuaa.asm} |    0
 ...uxx.asm => vwum1=vwum2_setbyte0_vbuxx.asm} |    0
 ...uyy.asm => vwum1=vwum2_setbyte0_vbuyy.asm} |    0
 ...uaa.asm => vwum1=vwum2_setbyte1_vbuaa.asm} |    0
 ...uxx.asm => vwum1=vwum2_setbyte1_vbuxx.asm} |    0
 ...uyy.asm => vwum1=vwum2_setbyte1_vbuyy.asm} |    0
 .../model/operators/OperatorSetByte0.java     |   24 +
 .../model/operators/OperatorSetByte1.java     |   24 +
 .../model/operators/OperatorSetByte2.java     |   24 +
 .../model/operators/OperatorSetByte3.java     |   24 +
 .../model/operators/OperatorSetWord0.java     |   24 +
 .../model/operators/OperatorSetWord1.java     |   24 +
 .../kickc/model/operators/Operators.java      |   14 +-
 .../Pass0GenerateStatementSequence.java       |    2 +-
 .../kickc/passes/Pass1FixLValuesLoHi.java     |   38 +-
 .../passes/Pass2ConstantIdentification.java   |   17 +-
 src/main/kc/lib/multiply.c                    |   10 +-
 .../kickc/test/TestProgramsFast.java          |    5 +
 src/test/kc/bitmap-plotter.c                  |    8 +-
 src/test/kc/operator-byte0-lvalue-1.c         |   21 +
 src/test/kc/test-lowhigh.c                    |   16 +-
 src/test/ref/bitmap-plotter.asm               |   40 +-
 src/test/ref/bitmap-plotter.cfg               |    8 +-
 src/test/ref/bitmap-plotter.log               |  807 +++++++++--
 src/test/ref/bitmap-plotter.sym               |   42 +-
 src/test/ref/operator-byte0-lvalue-1.asm      |   72 +
 src/test/ref/operator-byte0-lvalue-1.cfg      |   26 +
 src/test/ref/operator-byte0-lvalue-1.log      |  579 ++++++++
 src/test/ref/operator-byte0-lvalue-1.sym      |   21 +
 src/test/ref/test-lowhigh.asm                 |  102 +-
 src/test/ref/test-lowhigh.cfg                 |  140 +-
 src/test/ref/test-lowhigh.log                 | 1191 ++++++++---------
 src/test/ref/test-lowhigh.sym                 |   61 +-
 60 files changed, 2561 insertions(+), 1154 deletions(-)
 create mode 100644 src/main/fragment/mos6502-common/pvom1=pbuc1_setbyte1_vbuaa.asm
 create mode 100644 src/main/fragment/mos6502-common/pvom1=pvom1_setbyte0_vbuaa.asm
 create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_setbyte0_vbuaa.asm
 create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_setbyte0_vbuaa.asm
 rename src/main/fragment/mos6502-common/{vdum1=vdum1_setlo_vwum2.asm => vdum1=vdum1_setword0_vwum2.asm} (100%)
 rename src/main/fragment/mos6502-common/{vdum1=vdum1_sethi_vwum2.asm => vdum1=vdum1_setword1_vwum2.asm} (100%)
 rename src/main/fragment/mos6502-common/{vdum1=vdum2_setlo_vwum3.asm => vdum1=vdum2_setword0_vwum3.asm} (100%)
 rename src/main/fragment/mos6502-common/{vdum1=vdum2_sethi_vwum3.asm => vdum1=vdum2_setword1_vwum3.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vbuc1_sethi_vbuaa.asm => vwum1=vbuc1_setbyte1_vbuaa.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vbuc1_sethi_vbuxx.asm => vwum1=vbuc1_setbyte1_vbuxx.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vbuc1_sethi_vbuyy.asm => vwum1=vbuc1_setbyte1_vbuyy.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vwuc1_setlo_vbuaa.asm => vwum1=vwuc1_setbyte0_vbuaa.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vwuc1_setlo_vbuxx.asm => vwum1=vwuc1_setbyte0_vbuxx.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vwuc1_setlo_vbuyy.asm => vwum1=vwuc1_setbyte0_vbuyy.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vwuc1_sethi_vbuaa.asm => vwum1=vwuc1_setbyte1_vbuaa.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vwuc1_sethi_vbuxx.asm => vwum1=vwuc1_setbyte1_vbuxx.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vwuc1_sethi_vbuyy.asm => vwum1=vwuc1_setbyte1_vbuyy.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vwum1_setlo_vbuaa.asm => vwum1=vwum1_setbyte0_vbuaa.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vwum1_sethi_vbuaa.asm => vwum1=vwum1_setword1_vbuaa.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vwum1_sethi_vbuxx.asm => vwum1=vwum1_setword1_vbuxx.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vwum1_sethi_vbuyy.asm => vwum1=vwum1_setword1_vbuyy.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vwum2_setlo_vbuaa.asm => vwum1=vwum2_setbyte0_vbuaa.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vwum2_setlo_vbuxx.asm => vwum1=vwum2_setbyte0_vbuxx.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vwum2_setlo_vbuyy.asm => vwum1=vwum2_setbyte0_vbuyy.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vwum2_sethi_vbuaa.asm => vwum1=vwum2_setbyte1_vbuaa.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vwum2_sethi_vbuxx.asm => vwum1=vwum2_setbyte1_vbuxx.asm} (100%)
 rename src/main/fragment/mos6502-common/{vwum1=vwum2_sethi_vbuyy.asm => vwum1=vwum2_setbyte1_vbuyy.asm} (100%)
 create mode 100644 src/main/java/dk/camelot64/kickc/model/operators/OperatorSetByte0.java
 create mode 100644 src/main/java/dk/camelot64/kickc/model/operators/OperatorSetByte1.java
 create mode 100644 src/main/java/dk/camelot64/kickc/model/operators/OperatorSetByte2.java
 create mode 100644 src/main/java/dk/camelot64/kickc/model/operators/OperatorSetByte3.java
 create mode 100644 src/main/java/dk/camelot64/kickc/model/operators/OperatorSetWord0.java
 create mode 100644 src/main/java/dk/camelot64/kickc/model/operators/OperatorSetWord1.java
 create mode 100644 src/test/kc/operator-byte0-lvalue-1.c
 create mode 100644 src/test/ref/operator-byte0-lvalue-1.asm
 create mode 100644 src/test/ref/operator-byte0-lvalue-1.cfg
 create mode 100644 src/test/ref/operator-byte0-lvalue-1.log
 create mode 100644 src/test/ref/operator-byte0-lvalue-1.sym

diff --git a/src/main/fragment/cache/fragment-cache-csg65ce02.asm b/src/main/fragment/cache/fragment-cache-csg65ce02.asm
index f22268322..26120ee48 100644
--- a/src/main/fragment/cache/fragment-cache-csg65ce02.asm
+++ b/src/main/fragment/cache/fragment-cache-csg65ce02.asm
@@ -1,4 +1,4 @@
-//KICKC FRAGMENT CACHE 11c7923005 11c7925062
+//KICKC FRAGMENT CACHE ee20482c1 ee204a320
 //FRAGMENT vbuzz=vbuc1
 ldz #{c1}
 //FRAGMENT vbuzz_lt_vbuc1_then_la1
diff --git a/src/main/fragment/cache/fragment-cache-mega45gs02.asm b/src/main/fragment/cache/fragment-cache-mega45gs02.asm
index 97afef845..b0248ff68 100644
--- a/src/main/fragment/cache/fragment-cache-mega45gs02.asm
+++ b/src/main/fragment/cache/fragment-cache-mega45gs02.asm
@@ -1,4 +1,4 @@
-//KICKC FRAGMENT CACHE 11c7923005 11c7925062
+//KICKC FRAGMENT CACHE ee20482c1 ee204a320
 //FRAGMENT _deref_pbuc1=vbuc2
 lda #{c2}
 sta {c1}
diff --git a/src/main/fragment/cache/fragment-cache-mos6502.asm b/src/main/fragment/cache/fragment-cache-mos6502.asm
index cfaee04c9..5a2d50a55 100644
--- a/src/main/fragment/cache/fragment-cache-mos6502.asm
+++ b/src/main/fragment/cache/fragment-cache-mos6502.asm
@@ -1,4 +1,4 @@
-//KICKC FRAGMENT CACHE 11c7923005 11c7925062
+//KICKC FRAGMENT CACHE ee20482c1 ee204a320
 //FRAGMENT vbuz1=vbuc1
 lda #{c1}
 sta {z1}
diff --git a/src/main/fragment/cache/fragment-cache-mos6502x.asm b/src/main/fragment/cache/fragment-cache-mos6502x.asm
index 893d877bf..b7b00288e 100644
--- a/src/main/fragment/cache/fragment-cache-mos6502x.asm
+++ b/src/main/fragment/cache/fragment-cache-mos6502x.asm
@@ -1,4 +1,4 @@
-//KICKC FRAGMENT CACHE 11c7923005 11c7925062
+//KICKC FRAGMENT CACHE ee20482c1 ee204a320
 //FRAGMENT vbuz1=vbuc1
 lda #{c1}
 sta {z1}
@@ -9917,7 +9917,7 @@ sta {z1}
 lda {z2}+1
 adc #>{c1}
 sta {z1}+1
-//FRAGMENT vduz1=vduz2_sethi_vwuz3
+//FRAGMENT vduz1=vduz2_setword1_vwuz3
 lda {z2}
 sta {z1}
 lda {z2}+1
@@ -9926,12 +9926,7 @@ lda {z3}
 sta {z1}+2
 lda {z3}+1
 sta {z1}+3
-//FRAGMENT vwuz1=_lo_vduz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vduz1=vduz2_setlo_vwuz3
+//FRAGMENT vduz1=vduz2_setword0_vwuz3
 lda {z3}
 sta {z1}
 lda {z3}+1
@@ -9940,6 +9935,11 @@ lda {z2}+2
 sta {z1}+2
 lda {z2}+3
 sta {z1}+3
+//FRAGMENT vwuz1=_lo_vduz2
+lda {z2}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
 //FRAGMENT vwuz1=vwuz1_plus_vwuc1
 clc
 lda {z1}
@@ -9948,7 +9948,7 @@ sta {z1}
 lda {z1}+1
 adc #>{c1}
 sta {z1}+1
-//FRAGMENT vduz1=vduz1_setlo_vwuz2
+//FRAGMENT vduz1=vduz1_setword0_vwuz2
 lda {z2}
 sta {z1}
 lda {z2}+1
@@ -11354,6 +11354,90 @@ inx
 ldy {c1}
 iny
 iny
+//FRAGMENT pwuc1_derefidx_vbuz1=pwuc2_derefidx_vbuz2
+ldx {z1}
+ldy {z2}
+lda {c2},y
+sta {c1},x
+lda {c2}+1,y
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_setbyte0_vbuc2
+lda #{c2}
+ldy {z1}
+sta {c1},y
+//FRAGMENT pwuc1_derefidx_vbuz1=pwuc2_derefidx_vbuxx
+ldy {z1}
+lda {c2},x
+sta {c1},y
+lda {c2}+1,x
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuz1=pwuc2_derefidx_vbuyy
+ldx {z1}
+lda {c2},y
+sta {c1},x
+lda {c2}+1,y
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuaa=pwuc2_derefidx_vbuz1
+ldx {z1}
+tay
+lda {c2},x
+sta {c1},y
+lda {c2}+1,x
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuaa=pwuc2_derefidx_vbuxx
+tay
+lda {c2},x
+sta {c1},y
+lda {c2}+1,x
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuaa=pwuc2_derefidx_vbuyy
+tax
+lda {c2},y
+sta {c1},x
+lda {c2}+1,y
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuxx=pwuc2_derefidx_vbuz1
+ldy {z1}
+lda {c2},y
+sta {c1},x
+lda {c2}+1,y
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuxx=pwuc2_derefidx_vbuxx
+txa
+tay
+lda {c2},y
+sta {c1},x
+lda {c2}+1,y
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuxx=pwuc2_derefidx_vbuyy
+lda {c2},y
+sta {c1},x
+lda {c2}+1,y
+sta {c1}+1,x
+//FRAGMENT pwuc1_derefidx_vbuyy=pwuc2_derefidx_vbuz1
+ldx {z1}
+lda {c2},x
+sta {c1},y
+lda {c2}+1,x
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuyy=pwuc2_derefidx_vbuxx
+lda {c2},x
+sta {c1},y
+lda {c2}+1,x
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuyy=pwuc2_derefidx_vbuyy
+tya
+tax
+lda {c2},x
+sta {c1},y
+lda {c2}+1,x
+sta {c1}+1,y
+//FRAGMENT pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_setbyte0_vbuc2
+lda #{c2}
+sta {c1},x
+//FRAGMENT pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_setbyte0_vbuc2
+lda #{c2}
+sta {c1},y
 //FRAGMENT 0_neq_vwuz1_then_la1
 lda {z1}
 ora {z1}+1
@@ -11957,145 +12041,6 @@ and {c1},y
 tya
 ldy {z1}
 and {c1},y
-//FRAGMENT pbuz1=pbuc1_sethi_vbuz2
-lda {z2}
-sta {z1}+1
-lda #<{c1}
-sta {z1}
-//FRAGMENT pbuz1=pbuz2_setlo_vbuz3
-lda {z3}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuc1_sethi_vbuz2
-lda {z2}
-sta {z1}+1
-lda #<{c1}
-sta {z1}
-//FRAGMENT vwuz1=vwuz2_setlo_vbuz3
-lda {z3}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuz3
-ldy #0
-lda ({z2}),y
-ldy {z3}
-ora {c1},y
-sta {z1}
-//FRAGMENT pbuz1=pbuc1_sethi_vbuaa
-sta {z1}+1
-lda #<{c1}
-sta {z1}
-//FRAGMENT pbuz1=pbuc1_sethi_vbuxx
-stx {z1}+1
-ldx #<{c1}
-stx {z1}
-//FRAGMENT pbuz1=pbuz2_setlo_vbuaa
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_setlo_vbuxx
-stx {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_setlo_vbuyy
-sty {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuc1_sethi_vbuaa
-sta {z1}+1
-lda #<{c1}
-sta {z1}
-//FRAGMENT vwuz1=vwuc1_sethi_vbuxx
-stx {z1}+1
-ldx #<{c1}
-stx {z1}
-//FRAGMENT vwuz1=vwuz2_setlo_vbuaa
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_setlo_vbuxx
-stx {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_setlo_vbuyy
-sty {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy #0
-ora ({z2}),y
-sta {z1}
-//FRAGMENT vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy #0
-ora ({z2}),y
-sta {z1}
-//FRAGMENT vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2
-ldy #0
-lda ({z1}),y
-ldy {z2}
-ora {c1},y
-//FRAGMENT vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy #0
-ora ({z1}),y
-//FRAGMENT vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy #0
-ora ({z1}),y
-//FRAGMENT vbuxx=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2
-ldx {z2}
-lda {c1},x
-ldy #0
-ora ({z1}),y
-tax
-//FRAGMENT vbuxx=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy #0
-ora ({z1}),y
-tax
-//FRAGMENT vbuxx=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy #0
-ora ({z1}),y
-tax
-//FRAGMENT vbuyy=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2
-ldy #0
-lda ({z1}),y
-ldy {z2}
-ora {c1},y
-tay
-//FRAGMENT vbuyy=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy #0
-ora ({z1}),y
-tay
-//FRAGMENT vbuyy=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy #0
-ora ({z1}),y
-tay
-//FRAGMENT pbuz1=pbuc1_sethi_vbuyy
-sty {z1}+1
-ldy #<{c1}
-sty {z1}
-//FRAGMENT vwuz1=vwuc1_sethi_vbuyy
-sty {z1}+1
-ldy #<{c1}
-sty {z1}
-//FRAGMENT vbuyy=_lo_pbuz1
-ldy {z1}
-//FRAGMENT vbuz1=vbuz2_bor__lo_pbuz3
-lda {z2}
-ora {z3}
-sta {z1}
-//FRAGMENT pbuz1=pbuz1_setlo_vbuaa
-sta {z1}
-//FRAGMENT vwuz1=vwuz1_setlo_vbuaa
-sta {z1}
 //FRAGMENT vdsz1_lt_0_then_la1
 lda {z1}+3
 bmi {la1}
@@ -13843,3 +13788,97 @@ sta {c1},x
 lda #{c2}
 ora {c1},y
 sta {c1},y
+//FRAGMENT pbuz1=pbuc1_setbyte1_vbuz2
+lda {z2}
+sta {z1}+1
+lda #<{c1}
+sta {z1}
+//FRAGMENT pbuz1=pbuz2_setbyte0_vbuz3
+NO_SYNTHESIS
+//FRAGMENT vwuz1=vwuc1_setbyte1_vbuz2
+lda {z2}
+sta {z1}+1
+lda #<{c1}
+sta {z1}
+//FRAGMENT vwuz1=vwuz2_setbyte0_vbuz3
+lda {z3}
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuz3
+ldy #0
+lda ({z2}),y
+ldy {z3}
+ora {c1},y
+sta {z1}
+//FRAGMENT pbuz1=pbuc1_setbyte1_vbuaa
+sta {z1}+1
+lda #<{c1}
+sta {z1}
+//FRAGMENT pbuz1=pbuc1_setbyte1_vbuxx
+txa
+sta {z1}+1
+lda #<{c1}
+sta {z1}
+//FRAGMENT pbuz1=pbuc1_setbyte1_vbuyy
+tya
+sta {z1}+1
+lda #<{c1}
+sta {z1}
+//FRAGMENT pbuz1=pbuz2_setbyte0_vbuaa
+NO_SYNTHESIS
+//FRAGMENT pbuz1=pbuz2_setbyte0_vbuxx
+NO_SYNTHESIS
+//FRAGMENT pbuz1=pbuz2_setbyte0_vbuyy
+NO_SYNTHESIS
+//FRAGMENT vwuz1=vwuc1_setbyte1_vbuaa
+sta {z1}+1
+lda #<{c1}
+sta {z1}
+//FRAGMENT vwuz1=vwuc1_setbyte1_vbuxx
+stx {z1}+1
+ldx #<{c1}
+stx {z1}
+//FRAGMENT vwuz1=vwuz2_setbyte0_vbuaa
+sta {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_setbyte0_vbuxx
+stx {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT vwuz1=vwuz2_setbyte0_vbuyy
+sty {z1}
+lda {z2}+1
+sta {z1}+1
+//FRAGMENT vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2
+ldy #0
+lda ({z1}),y
+ldy {z2}
+ora {c1},y
+//FRAGMENT vbuxx=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2
+ldx {z2}
+lda {c1},x
+ldy #0
+ora ({z1}),y
+tax
+//FRAGMENT vbuyy=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2
+ldy #0
+lda ({z1}),y
+ldy {z2}
+ora {c1},y
+tay
+//FRAGMENT vwuz1=vwuc1_setbyte1_vbuyy
+sty {z1}+1
+ldy #<{c1}
+sty {z1}
+//FRAGMENT vbuyy=_lo_pbuz1
+ldy {z1}
+//FRAGMENT vbuz1=vbuz2_bor__lo_pbuz3
+lda {z2}
+ora {z3}
+sta {z1}
+//FRAGMENT pbuz1=pbuz1_setbyte0_vbuaa
+sta {z1}
+//FRAGMENT vwuz1=vwuz1_setbyte0_vbuaa
+sta {z1}
diff --git a/src/main/fragment/cache/fragment-cache-rom6502x.asm b/src/main/fragment/cache/fragment-cache-rom6502x.asm
index c66436b6b..fc43f3159 100644
--- a/src/main/fragment/cache/fragment-cache-rom6502x.asm
+++ b/src/main/fragment/cache/fragment-cache-rom6502x.asm
@@ -1,4 +1,4 @@
-//KICKC FRAGMENT CACHE 11c7923005 11c7925062
+//KICKC FRAGMENT CACHE ee20482c1 ee204a320
 //FRAGMENT _deref_pbuc1=_inc__deref_pbuc1
 inc {c1}
 //FRAGMENT isr_hardware_all_entry
diff --git a/src/main/fragment/cache/fragment-cache-wdc65c02.asm b/src/main/fragment/cache/fragment-cache-wdc65c02.asm
index be86f667f..c2b42393a 100644
--- a/src/main/fragment/cache/fragment-cache-wdc65c02.asm
+++ b/src/main/fragment/cache/fragment-cache-wdc65c02.asm
@@ -1,4 +1,4 @@
-//KICKC FRAGMENT CACHE 11c7923005 11c7925062
+//KICKC FRAGMENT CACHE ee20482c1 ee204a320
 //FRAGMENT vbuz1=_deref_pbuc1
 lda {c1}
 sta {z1}
diff --git a/src/main/fragment/mos6502-common/pvom1=pbuc1_setbyte1_vbuaa.asm b/src/main/fragment/mos6502-common/pvom1=pbuc1_setbyte1_vbuaa.asm
new file mode 100644
index 000000000..a6a5a90da
--- /dev/null
+++ b/src/main/fragment/mos6502-common/pvom1=pbuc1_setbyte1_vbuaa.asm
@@ -0,0 +1,3 @@
+sta {m1}+1
+lda #<{c1}
+sta {m1}
\ No newline at end of file
diff --git a/src/main/fragment/mos6502-common/pvom1=pvom1_setbyte0_vbuaa.asm b/src/main/fragment/mos6502-common/pvom1=pvom1_setbyte0_vbuaa.asm
new file mode 100644
index 000000000..d2d258d83
--- /dev/null
+++ b/src/main/fragment/mos6502-common/pvom1=pvom1_setbyte0_vbuaa.asm
@@ -0,0 +1 @@
+sta {m1}
\ No newline at end of file
diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_setbyte0_vbuaa.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_setbyte0_vbuaa.asm
new file mode 100644
index 000000000..d98ed9552
--- /dev/null
+++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_setbyte0_vbuaa.asm
@@ -0,0 +1 @@
+sta {c1},x
\ No newline at end of file
diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_setbyte0_vbuaa.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_setbyte0_vbuaa.asm
new file mode 100644
index 000000000..8b005e5fe
--- /dev/null
+++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_setbyte0_vbuaa.asm
@@ -0,0 +1 @@
+sta {c1},y
\ No newline at end of file
diff --git a/src/main/fragment/mos6502-common/vdum1=vdum1_setlo_vwum2.asm b/src/main/fragment/mos6502-common/vdum1=vdum1_setword0_vwum2.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vdum1=vdum1_setlo_vwum2.asm
rename to src/main/fragment/mos6502-common/vdum1=vdum1_setword0_vwum2.asm
diff --git a/src/main/fragment/mos6502-common/vdum1=vdum1_sethi_vwum2.asm b/src/main/fragment/mos6502-common/vdum1=vdum1_setword1_vwum2.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vdum1=vdum1_sethi_vwum2.asm
rename to src/main/fragment/mos6502-common/vdum1=vdum1_setword1_vwum2.asm
diff --git a/src/main/fragment/mos6502-common/vdum1=vdum2_setlo_vwum3.asm b/src/main/fragment/mos6502-common/vdum1=vdum2_setword0_vwum3.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vdum1=vdum2_setlo_vwum3.asm
rename to src/main/fragment/mos6502-common/vdum1=vdum2_setword0_vwum3.asm
diff --git a/src/main/fragment/mos6502-common/vdum1=vdum2_sethi_vwum3.asm b/src/main/fragment/mos6502-common/vdum1=vdum2_setword1_vwum3.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vdum1=vdum2_sethi_vwum3.asm
rename to src/main/fragment/mos6502-common/vdum1=vdum2_setword1_vwum3.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vbuc1_sethi_vbuaa.asm b/src/main/fragment/mos6502-common/vwum1=vbuc1_setbyte1_vbuaa.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vbuc1_sethi_vbuaa.asm
rename to src/main/fragment/mos6502-common/vwum1=vbuc1_setbyte1_vbuaa.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vbuc1_sethi_vbuxx.asm b/src/main/fragment/mos6502-common/vwum1=vbuc1_setbyte1_vbuxx.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vbuc1_sethi_vbuxx.asm
rename to src/main/fragment/mos6502-common/vwum1=vbuc1_setbyte1_vbuxx.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vbuc1_sethi_vbuyy.asm b/src/main/fragment/mos6502-common/vwum1=vbuc1_setbyte1_vbuyy.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vbuc1_sethi_vbuyy.asm
rename to src/main/fragment/mos6502-common/vwum1=vbuc1_setbyte1_vbuyy.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vwuc1_setlo_vbuaa.asm b/src/main/fragment/mos6502-common/vwum1=vwuc1_setbyte0_vbuaa.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vwuc1_setlo_vbuaa.asm
rename to src/main/fragment/mos6502-common/vwum1=vwuc1_setbyte0_vbuaa.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vwuc1_setlo_vbuxx.asm b/src/main/fragment/mos6502-common/vwum1=vwuc1_setbyte0_vbuxx.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vwuc1_setlo_vbuxx.asm
rename to src/main/fragment/mos6502-common/vwum1=vwuc1_setbyte0_vbuxx.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vwuc1_setlo_vbuyy.asm b/src/main/fragment/mos6502-common/vwum1=vwuc1_setbyte0_vbuyy.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vwuc1_setlo_vbuyy.asm
rename to src/main/fragment/mos6502-common/vwum1=vwuc1_setbyte0_vbuyy.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vwuc1_sethi_vbuaa.asm b/src/main/fragment/mos6502-common/vwum1=vwuc1_setbyte1_vbuaa.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vwuc1_sethi_vbuaa.asm
rename to src/main/fragment/mos6502-common/vwum1=vwuc1_setbyte1_vbuaa.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vwuc1_sethi_vbuxx.asm b/src/main/fragment/mos6502-common/vwum1=vwuc1_setbyte1_vbuxx.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vwuc1_sethi_vbuxx.asm
rename to src/main/fragment/mos6502-common/vwum1=vwuc1_setbyte1_vbuxx.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vwuc1_sethi_vbuyy.asm b/src/main/fragment/mos6502-common/vwum1=vwuc1_setbyte1_vbuyy.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vwuc1_sethi_vbuyy.asm
rename to src/main/fragment/mos6502-common/vwum1=vwuc1_setbyte1_vbuyy.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vwum1_setlo_vbuaa.asm b/src/main/fragment/mos6502-common/vwum1=vwum1_setbyte0_vbuaa.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vwum1_setlo_vbuaa.asm
rename to src/main/fragment/mos6502-common/vwum1=vwum1_setbyte0_vbuaa.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vwum1_sethi_vbuaa.asm b/src/main/fragment/mos6502-common/vwum1=vwum1_setword1_vbuaa.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vwum1_sethi_vbuaa.asm
rename to src/main/fragment/mos6502-common/vwum1=vwum1_setword1_vbuaa.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vwum1_sethi_vbuxx.asm b/src/main/fragment/mos6502-common/vwum1=vwum1_setword1_vbuxx.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vwum1_sethi_vbuxx.asm
rename to src/main/fragment/mos6502-common/vwum1=vwum1_setword1_vbuxx.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vwum1_sethi_vbuyy.asm b/src/main/fragment/mos6502-common/vwum1=vwum1_setword1_vbuyy.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vwum1_sethi_vbuyy.asm
rename to src/main/fragment/mos6502-common/vwum1=vwum1_setword1_vbuyy.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vwum2_setlo_vbuaa.asm b/src/main/fragment/mos6502-common/vwum1=vwum2_setbyte0_vbuaa.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vwum2_setlo_vbuaa.asm
rename to src/main/fragment/mos6502-common/vwum1=vwum2_setbyte0_vbuaa.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vwum2_setlo_vbuxx.asm b/src/main/fragment/mos6502-common/vwum1=vwum2_setbyte0_vbuxx.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vwum2_setlo_vbuxx.asm
rename to src/main/fragment/mos6502-common/vwum1=vwum2_setbyte0_vbuxx.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vwum2_setlo_vbuyy.asm b/src/main/fragment/mos6502-common/vwum1=vwum2_setbyte0_vbuyy.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vwum2_setlo_vbuyy.asm
rename to src/main/fragment/mos6502-common/vwum1=vwum2_setbyte0_vbuyy.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vwum2_sethi_vbuaa.asm b/src/main/fragment/mos6502-common/vwum1=vwum2_setbyte1_vbuaa.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vwum2_sethi_vbuaa.asm
rename to src/main/fragment/mos6502-common/vwum1=vwum2_setbyte1_vbuaa.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vwum2_sethi_vbuxx.asm b/src/main/fragment/mos6502-common/vwum1=vwum2_setbyte1_vbuxx.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vwum2_sethi_vbuxx.asm
rename to src/main/fragment/mos6502-common/vwum1=vwum2_setbyte1_vbuxx.asm
diff --git a/src/main/fragment/mos6502-common/vwum1=vwum2_sethi_vbuyy.asm b/src/main/fragment/mos6502-common/vwum1=vwum2_setbyte1_vbuyy.asm
similarity index 100%
rename from src/main/fragment/mos6502-common/vwum1=vwum2_sethi_vbuyy.asm
rename to src/main/fragment/mos6502-common/vwum1=vwum2_setbyte1_vbuyy.asm
diff --git a/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetByte0.java b/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetByte0.java
new file mode 100644
index 000000000..dc6c4f724
--- /dev/null
+++ b/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetByte0.java
@@ -0,0 +1,24 @@
+package dk.camelot64.kickc.model.operators;
+
+import dk.camelot64.kickc.model.CompileError;
+import dk.camelot64.kickc.model.types.SymbolType;
+import dk.camelot64.kickc.model.values.ConstantLiteral;
+
+/** Binary SetByte0 Operator ( w byte0= b ) */
+public class OperatorSetByte0 extends OperatorBinary {
+
+   public OperatorSetByte0(int precedence) {
+      super("byte0=", "_setbyte0_", precedence, false);
+   }
+
+   @Override
+   public ConstantLiteral calculateLiteral(ConstantLiteral left, ConstantLiteral right) {
+      throw new CompileError("Calculation not implemented " + left + " " + getOperator() + " " + right);
+   }
+
+   @Override
+   public SymbolType inferType(SymbolType left, SymbolType right) {
+      return left;
+   }
+
+}
diff --git a/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetByte1.java b/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetByte1.java
new file mode 100644
index 000000000..ddc8d959c
--- /dev/null
+++ b/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetByte1.java
@@ -0,0 +1,24 @@
+package dk.camelot64.kickc.model.operators;
+
+import dk.camelot64.kickc.model.CompileError;
+import dk.camelot64.kickc.model.types.SymbolType;
+import dk.camelot64.kickc.model.values.ConstantLiteral;
+
+/** Binary SetByte1 Operator ( w byte1= b ) */
+public class OperatorSetByte1 extends OperatorBinary {
+
+   public OperatorSetByte1(int precedence) {
+      super("byte1=", "_setbyte1_", precedence, false);
+   }
+
+   @Override
+   public ConstantLiteral calculateLiteral(ConstantLiteral left, ConstantLiteral right) {
+      throw new CompileError("Calculation not implemented " + left + " " + getOperator() + " " + right);
+   }
+
+   @Override
+   public SymbolType inferType(SymbolType left, SymbolType right) {
+      return left;
+   }
+
+}
diff --git a/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetByte2.java b/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetByte2.java
new file mode 100644
index 000000000..511e4eff4
--- /dev/null
+++ b/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetByte2.java
@@ -0,0 +1,24 @@
+package dk.camelot64.kickc.model.operators;
+
+import dk.camelot64.kickc.model.CompileError;
+import dk.camelot64.kickc.model.types.SymbolType;
+import dk.camelot64.kickc.model.values.ConstantLiteral;
+
+/** Binary SetByte2 Operator ( w byte2= b ) */
+public class OperatorSetByte2 extends OperatorBinary {
+
+   public OperatorSetByte2(int precedence) {
+      super("byte2=", "_setbyte2_", precedence, false);
+   }
+
+   @Override
+   public ConstantLiteral calculateLiteral(ConstantLiteral left, ConstantLiteral right) {
+      throw new CompileError("Calculation not implemented " + left + " " + getOperator() + " " + right);
+   }
+
+   @Override
+   public SymbolType inferType(SymbolType left, SymbolType right) {
+      return left;
+   }
+
+}
diff --git a/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetByte3.java b/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetByte3.java
new file mode 100644
index 000000000..0ef4e9dfc
--- /dev/null
+++ b/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetByte3.java
@@ -0,0 +1,24 @@
+package dk.camelot64.kickc.model.operators;
+
+import dk.camelot64.kickc.model.CompileError;
+import dk.camelot64.kickc.model.types.SymbolType;
+import dk.camelot64.kickc.model.values.ConstantLiteral;
+
+/** Binary SetByte3 Operator ( w byte3= b ) */
+public class OperatorSetByte3 extends OperatorBinary {
+
+   public OperatorSetByte3(int precedence) {
+      super("byte3=", "_setbyte3_", precedence, false);
+   }
+
+   @Override
+   public ConstantLiteral calculateLiteral(ConstantLiteral left, ConstantLiteral right) {
+      throw new CompileError("Calculation not implemented " + left + " " + getOperator() + " " + right);
+   }
+
+   @Override
+   public SymbolType inferType(SymbolType left, SymbolType right) {
+      return left;
+   }
+
+}
diff --git a/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetWord0.java b/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetWord0.java
new file mode 100644
index 000000000..743b71754
--- /dev/null
+++ b/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetWord0.java
@@ -0,0 +1,24 @@
+package dk.camelot64.kickc.model.operators;
+
+import dk.camelot64.kickc.model.CompileError;
+import dk.camelot64.kickc.model.types.SymbolType;
+import dk.camelot64.kickc.model.values.ConstantLiteral;
+
+/** Binary SetWord0 Operator ( w word0= b ) */
+public class OperatorSetWord0 extends OperatorBinary {
+
+   public OperatorSetWord0(int precedence) {
+      super("word0=", "_setword0_", precedence, false);
+   }
+
+   @Override
+   public ConstantLiteral calculateLiteral(ConstantLiteral left, ConstantLiteral right) {
+      throw new CompileError("Calculation not implemented " + left + " " + getOperator() + " " + right);
+   }
+
+   @Override
+   public SymbolType inferType(SymbolType left, SymbolType right) {
+      return left;
+   }
+
+}
diff --git a/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetWord1.java b/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetWord1.java
new file mode 100644
index 000000000..abc39e3e1
--- /dev/null
+++ b/src/main/java/dk/camelot64/kickc/model/operators/OperatorSetWord1.java
@@ -0,0 +1,24 @@
+package dk.camelot64.kickc.model.operators;
+
+import dk.camelot64.kickc.model.CompileError;
+import dk.camelot64.kickc.model.types.SymbolType;
+import dk.camelot64.kickc.model.values.ConstantLiteral;
+
+/** Binary SetWord1 Operator ( w word1= b ) */
+public class OperatorSetWord1 extends OperatorBinary {
+
+   public OperatorSetWord1(int precedence) {
+      super("word1=", "_setword1_", precedence, false);
+   }
+
+   @Override
+   public ConstantLiteral calculateLiteral(ConstantLiteral left, ConstantLiteral right) {
+      throw new CompileError("Calculation not implemented " + left + " " + getOperator() + " " + right);
+   }
+
+   @Override
+   public SymbolType inferType(SymbolType left, SymbolType right) {
+      return left;
+   }
+
+}
diff --git a/src/main/java/dk/camelot64/kickc/model/operators/Operators.java b/src/main/java/dk/camelot64/kickc/model/operators/Operators.java
index 2691d06b5..2f624ff00 100644
--- a/src/main/java/dk/camelot64/kickc/model/operators/Operators.java
+++ b/src/main/java/dk/camelot64/kickc/model/operators/Operators.java
@@ -18,8 +18,12 @@ public class Operators {
    public static final OperatorBinary WORD = new OperatorWord(2);
    public static final OperatorBinary DWORD = new OperatorDWord(2);
    public static final OperatorBinary DEREF_IDX = new OperatorDerefIdx(2);
-   public static final OperatorBinary SET_LOWBYTE = new OperatorSetLow(2);
-   public static final OperatorBinary SET_HIBYTE = new OperatorSetHigh(2);
+   public static final OperatorBinary SET_BYTE0 = new OperatorSetByte0(2);
+   public static final OperatorBinary SET_BYTE1 = new OperatorSetByte1(2);
+   public static final OperatorBinary SET_BYTE2 = new OperatorSetByte2(2);
+   public static final OperatorBinary SET_BYTE3 = new OperatorSetByte3(2);
+   public static final OperatorBinary SET_WORD0 = new OperatorSetWord0(2);
+   public static final OperatorBinary SET_WORD1 = new OperatorSetWord1(2);
    public static final OperatorUnary CAST_BYTE = new OperatorCastByte(2);
    public static final OperatorUnary CAST_SBYTE = new OperatorCastSByte(2);
    public static final OperatorUnary CAST_WORD = new OperatorCastWord(2);
@@ -50,7 +54,9 @@ public class Operators {
    public static final OperatorBinary LOGIC_AND = new OperatorLogicAnd(12);
    public static final OperatorBinary LOGIC_OR = new OperatorLogicOr(13);
    public static final OperatorBinary ASSIGNMENT = new OperatorAssignment(14);
+   @Deprecated
    public static final OperatorUnary LOWBYTE = new OperatorGetLow(14);
+   @Deprecated
    public static final OperatorUnary HIBYTE = new OperatorGetHigh(14);
    public static final OperatorUnary BYTE0 = new OperatorGetByte0(14);
    public static final OperatorUnary BYTE1 = new OperatorGetByte1(14);
@@ -99,10 +105,6 @@ public class Operators {
             return SHIFT_LEFT;
          case ">>":
             return SHIFT_RIGHT;
-         case "lo=":
-            return SET_LOWBYTE;
-         case "hi=":
-            return SET_HIBYTE;
          default:
             throw new RuntimeException("Unknown operator " + op);
       }
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java b/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java
index da60d4eb3..c189cffb9 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java
@@ -2233,7 +2233,7 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
       return lValue;
    }
 
-   private static LValue copyLValue(LValue lValue) {
+   public static LValue copyLValue(LValue lValue) {
       if(lValue instanceof VariableRef) {
          return new VariableRef(((VariableRef) lValue).getFullName());
       } else if(lValue instanceof LvalueIntermediate) {
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass1FixLValuesLoHi.java b/src/main/java/dk/camelot64/kickc/passes/Pass1FixLValuesLoHi.java
index 05d059516..2d101e816 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass1FixLValuesLoHi.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass1FixLValuesLoHi.java
@@ -45,17 +45,34 @@ public class Pass1FixLValuesLoHi extends Pass1Base {
                StatementLValue statementLValue = (StatementLValue) statement;
                LvalueIntermediate intermediate = (LvalueIntermediate) statementLValue.getlValue();
                final List<VarAssignments.VarAssignment> varAssignments = VarAssignments.get(intermediate.getVariable(), getGraph(), programScope);
+               final Scope currentScope = programScope.getScope(block.getScope());
                if(varAssignments.size() == 1) {
                   final VarAssignments.VarAssignment varAssignment = varAssignments.get(0);
                   if(varAssignment.type.equals(VarAssignments.VarAssignment.Type.STATEMENT_LVALUE) && varAssignment.statementLValue instanceof StatementAssignment) {
                      StatementAssignment intermediateAssignment = (StatementAssignment) varAssignment.statementLValue;
-                     if(Operators.LOWBYTE.equals(intermediateAssignment.getOperator()) && intermediateAssignment.getrValue1() == null) {
-                        // Found assignment to an intermediate low byte lValue <x = ...
-                        fixLoHiLValue(programScope, statementsIt, statementLValue, intermediate, intermediateAssignment, Operators.SET_LOWBYTE);
+                     if(Operators.BYTE0.equals(intermediateAssignment.getOperator()) && intermediateAssignment.getrValue1() == null) {
+                        // Found assignment to an intermediate low byte lValue byte0(x) = ...
+                        fixLoHiLValue(programScope, currentScope, statementsIt, statementLValue, intermediate, intermediateAssignment, Operators.SET_BYTE0);
                         intermediates.add(intermediate.getVariable());
-                     } else if(Operators.HIBYTE.equals(intermediateAssignment.getOperator()) && intermediateAssignment.getrValue1() == null) {
-                        // Found assignment to an intermediate low byte lValue >x = ...
-                        fixLoHiLValue(programScope, statementsIt, statementLValue, intermediate, intermediateAssignment, Operators.SET_HIBYTE);
+                     } else if(Operators.BYTE1.equals(intermediateAssignment.getOperator()) && intermediateAssignment.getrValue1() == null) {
+                        // Found assignment to an intermediate low byte lValue byte0(x) = ...
+                        fixLoHiLValue(programScope, currentScope, statementsIt, statementLValue, intermediate, intermediateAssignment, Operators.SET_BYTE1);
+                        intermediates.add(intermediate.getVariable());
+                     } else if(Operators.BYTE2.equals(intermediateAssignment.getOperator()) && intermediateAssignment.getrValue1() == null) {
+                        // Found assignment to an intermediate low byte lValue byte0(x) = ...
+                        fixLoHiLValue(programScope, currentScope, statementsIt, statementLValue, intermediate, intermediateAssignment, Operators.SET_BYTE2);
+                        intermediates.add(intermediate.getVariable());
+                     } else if(Operators.BYTE3.equals(intermediateAssignment.getOperator()) && intermediateAssignment.getrValue1() == null) {
+                        // Found assignment to an intermediate low byte lValue byte0(x) = ...
+                        fixLoHiLValue(programScope, currentScope, statementsIt, statementLValue, intermediate, intermediateAssignment, Operators.SET_BYTE3);
+                        intermediates.add(intermediate.getVariable());
+                     } else if(Operators.WORD0.equals(intermediateAssignment.getOperator()) && intermediateAssignment.getrValue1() == null) {
+                        // Found assignment to an intermediate low byte lValue byte0(x) = ...
+                        fixLoHiLValue(programScope, currentScope, statementsIt, statementLValue, intermediate, intermediateAssignment, Operators.SET_WORD0);
+                        intermediates.add(intermediate.getVariable());
+                     } else if(Operators.WORD1.equals(intermediateAssignment.getOperator()) && intermediateAssignment.getrValue1() == null) {
+                        // Found assignment to an intermediate low byte lValue byte0(x) = ...
+                        fixLoHiLValue(programScope, currentScope, statementsIt, statementLValue, intermediate, intermediateAssignment, Operators.SET_WORD1);
                         intermediates.add(intermediate.getVariable());
                      }
                   }
@@ -73,21 +90,22 @@ public class Pass1FixLValuesLoHi extends Pass1Base {
 
    private void fixLoHiLValue(
          ProgramScope programScope,
+         Scope currentScope,
          ListIterator<Statement> statementsIt,
          StatementLValue statementLValue,
          LvalueIntermediate intermediate,
          StatementAssignment intermediateAssignment,
          Operator loHiOperator) {
-      VariableRef loHiVar = (VariableRef) intermediateAssignment.getrValue2();
-      Variable intermediateVar = programScope.getVariable(intermediate.getVariable());
-      Scope currentScope = intermediateVar.getScope();
+      final RValue intermediateValue = intermediateAssignment.getrValue2();
       // Let assignment put value into a tmp Var
       SymbolType type = SymbolTypeInference.inferType(programScope, new AssignmentRValue(intermediateAssignment));
       Variable tmpVar = VariableBuilder.createIntermediate(currentScope, type, getProgram());
       SymbolVariableRef tmpVarRef = tmpVar.getRef();
       statementLValue.setlValue((LValue) tmpVarRef);
       // Insert an extra "set low" assignment statement
-      Statement setLoHiAssignment = new StatementAssignment(loHiVar, loHiVar, loHiOperator, tmpVarRef, true, statementLValue.getSource(), new ArrayList<>());
+      // TODO: Copy intermediateValue
+      final LValue lValue = Pass0GenerateStatementSequence.copyLValue((LValue) intermediateValue);
+      Statement setLoHiAssignment = new StatementAssignment(lValue, intermediateValue, loHiOperator, tmpVarRef, true, statementLValue.getSource(), new ArrayList<>());
       statementsIt.add(setLoHiAssignment);
       if(getLog().isVerbosePass1CreateSsa()) {
          getLog().append("Fixing lo/hi-lvalue with new tmpVar " + tmpVarRef + " " + statementLValue.toString());
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass2ConstantIdentification.java b/src/main/java/dk/camelot64/kickc/passes/Pass2ConstantIdentification.java
index 584bbb2c6..6fa70537a 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass2ConstantIdentification.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass2ConstantIdentification.java
@@ -1,6 +1,9 @@
 package dk.camelot64.kickc.passes;
 
-import dk.camelot64.kickc.model.*;
+import dk.camelot64.kickc.model.CompileError;
+import dk.camelot64.kickc.model.ConstantNotLiteral;
+import dk.camelot64.kickc.model.ControlFlowBlock;
+import dk.camelot64.kickc.model.Program;
 import dk.camelot64.kickc.model.iterator.ProgramValueIterator;
 import dk.camelot64.kickc.model.operators.OperatorBinary;
 import dk.camelot64.kickc.model.operators.OperatorUnary;
@@ -254,6 +257,18 @@ public class Pass2ConstantIdentification extends Pass2SsaOptimization {
             return new ConstantBinary(new ConstantBinary(c1, Operators.MULTIPLY, new ConstantInteger(256L)), Operators.PLUS, c2);
          case "dw=":
             return new ConstantBinary(new ConstantBinary(c1, Operators.MULTIPLY, new ConstantInteger(65536L)), Operators.PLUS, c2);
+         case "byte0=":
+            return new ConstantBinary(new ConstantBinary(c1, Operators.BOOL_AND, new ConstantInteger(0xffffff00L)), Operators.BOOL_OR, c2);
+         case "byte1=":
+            return new ConstantBinary(new ConstantBinary(c1, Operators.BOOL_AND, new ConstantInteger(0xffff00ffL)), Operators.BOOL_OR, new ConstantBinary(c2, Operators.MULTIPLY, new ConstantInteger(0x100L)));
+         case "byte2=":
+            return new ConstantBinary(new ConstantBinary(c1, Operators.BOOL_AND, new ConstantInteger(0xff00ffffL)), Operators.BOOL_OR, new ConstantBinary(c2, Operators.MULTIPLY, new ConstantInteger(0x10000L)));
+         case "byte3=":
+            return new ConstantBinary(new ConstantBinary(c1, Operators.BOOL_AND, new ConstantInteger(0x00ffffffL)), Operators.BOOL_OR, new ConstantBinary(c2, Operators.MULTIPLY, new ConstantInteger(0x1000000L)));
+         case "word0=":
+            return new ConstantBinary(new ConstantBinary(c1, Operators.BOOL_AND, new ConstantInteger(0xffff0000L)), Operators.BOOL_OR, c2);
+         case "word1=":
+            return new ConstantBinary(new ConstantBinary(c1, Operators.BOOL_AND, new ConstantInteger(0x0000ffffL)), Operators.BOOL_OR, new ConstantBinary(c2, Operators.MULTIPLY, new ConstantInteger(0x10000L)));
          case "*idx":
             // Pointer dereference - not constant
             return null;
diff --git a/src/main/kc/lib/multiply.c b/src/main/kc/lib/multiply.c
index 2699d9c37..072629f58 100644
--- a/src/main/kc/lib/multiply.c
+++ b/src/main/kc/lib/multiply.c
@@ -21,10 +21,10 @@ unsigned int mul8u(char a, char b) {
 signed int mul8s(signed char a, signed char b) {
     unsigned int m = mul8u((char)a, (char) b);
     if(a<0) {
-        >m = (>m)-(char)b;
+        BYTE1(m) = BYTE1(m)-(char)b;
     }
     if(b<0) {
-        >m = (>m)-(char)a;
+        BYTE1(m) = BYTE1(m)-(char)a;
     }
     return (signed int)m;
 }
@@ -34,7 +34,7 @@ signed int mul8s(signed char a, signed char b) {
 signed int mul8su(signed char a, char b) {
     unsigned int m = mul8u((char)a, (char) b);
     if(a<0) {
-        >m = (>m)-(char)b;
+        BYTE1(m) = BYTE1(m)-(char)b;
     }
     return (signed int)m;
 }
@@ -58,10 +58,10 @@ unsigned long mul16u(unsigned int a, unsigned int b) {
 signed long mul16s(signed int a, signed int b) {
     unsigned long m = mul16u((unsigned int)a, (unsigned int) b);
     if(a<0) {
-        >m = (>m)-(unsigned int)b;
+        WORD1(m) = WORD1(m)-(unsigned int)b;
     }
     if(b<0) {
-        >m = (>m)-(unsigned int)a;
+        WORD1(m) = WORD1(m)-(unsigned int)a;
     }
     return (signed long)m;
 }
diff --git a/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java b/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java
index d0dea1761..235a4a0a1 100644
--- a/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java
+++ b/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java
@@ -89,6 +89,11 @@ public class TestProgramsFast extends TestPrograms {
       compileAndCompare("init-value-npe.c");
    }
 
+   @Test
+   public void testOperatorByte0LValue1() throws IOException {
+      compileAndCompare("operator-byte0-lvalue-1.c");
+   }
+
    @Test
    public void testOperatorByte0Iintializer() throws IOException {
       compileAndCompare("operator-byte0-initializer.c");
diff --git a/src/test/kc/bitmap-plotter.c b/src/test/kc/bitmap-plotter.c
index aec7245e0..f824fa92c 100644
--- a/src/test/kc/bitmap-plotter.c
+++ b/src/test/kc/bitmap-plotter.c
@@ -52,10 +52,10 @@ const byte plot_bit[256];
 void plot(byte x, byte y) {
     byte* plotter_x = (byte*)0;
     word plotter_y = 0;
-    >plotter_x = plot_xhi[x];  // Needs word arrays arranged as two underlying byte arrays to allow byte* plotter_x = plot_x[x]; - and eventually - byte* plotter = plot_x[x] + plot_y[y];
-    <plotter_x = plot_xlo[x];
-    >plotter_y = plot_yhi[y];
-    <plotter_y = plot_ylo[y];
+    BYTE1(plotter_x) = plot_xhi[x];  // Needs word arrays arranged as two underlying byte arrays to allow byte* plotter_x = plot_x[x]; - and eventually - byte* plotter = plot_x[x] + plot_y[y];
+    BYTE0(plotter_x) = plot_xlo[x];
+    BYTE1(plotter_y) = plot_yhi[y];
+    BYTE0(plotter_y) = plot_ylo[y];
     byte* plotter = plotter_x+plotter_y;
     *plotter = *plotter | plot_bit[x];
 }
diff --git a/src/test/kc/operator-byte0-lvalue-1.c b/src/test/kc/operator-byte0-lvalue-1.c
new file mode 100644
index 000000000..befd35c32
--- /dev/null
+++ b/src/test/kc/operator-byte0-lvalue-1.c
@@ -0,0 +1,21 @@
+// Test using operator byte0() in an lvalue
+
+void main() {
+    unsigned int * const SCREEN = (unsigned int *)0x0400;
+    unsigned int w = 12345;
+    unsigned int ws[] = { 23456, 34567 };
+    char i = 0;
+
+    SCREEN[i++] = w;
+    BYTE0(w) = 1;
+    SCREEN[i++] = w;
+    BYTE1(w) = 2;
+    SCREEN[i++] = w;
+
+    for(char j=0;j<2;j++) {
+        SCREEN[i++] = ws[j];
+        BYTE0(ws[j]) = 2;
+        SCREEN[i++] = ws[j];
+    }
+
+}
\ No newline at end of file
diff --git a/src/test/kc/test-lowhigh.c b/src/test/kc/test-lowhigh.c
index 37fefad29..24071dfa6 100644
--- a/src/test/kc/test-lowhigh.c
+++ b/src/test/kc/test-lowhigh.c
@@ -4,21 +4,21 @@ void main() {
     print_cls();
     for( dword dw = $12345678; dw != $12345690; dw++ ) {
         dword dw2 = dw;
-        >dw2 = (>dw) + $1111;  // Test set/get high word of dword
-        <dw2 = (<dw) + $1111;  // Test set/get low word of dword
+        WORD1(dw2) = WORD1(dw) + $1111;  // Test set/get high word of dword
+        WORD0(dw2) = WORD0(dw) + $1111;  // Test set/get low word of dword
         print_ulong(dw2);
         print_char(' ');
-        print_uint(>dw2); // Test get high word of dword
+        print_uint(WORD1(dw2)); // Test get high word of dword
         print_char(' ');
-        print_uint(<dw2); // Test get low word of dword
+        print_uint(WORD0(dw2)); // Test get low word of dword
         print_char(' ');
-        print_uchar(> >dw2); // Test get high high byte of dword
+        print_uchar(BYTE3(dw2)); // Test get high high byte of dword
         print_char(' ');
-        print_uchar(< >dw2); // Test get low high byte of dword
+        print_uchar(BYTE2(dw2)); // Test get low high byte of dword
         print_char(' ');
-        print_uchar(> <dw2); // Test get high low byte of dword
+        print_uchar(BYTE1(dw2)); // Test get high low byte of dword
         print_char(' ');
-        print_uchar(< <dw2); // Test get low low byte of dword
+        print_uchar(BYTE0(dw2)); // Test get low low byte of dword
         print_ln();
     }
 }
\ No newline at end of file
diff --git a/src/test/ref/bitmap-plotter.asm b/src/test/ref/bitmap-plotter.asm
index f99fa9e35..3baf912a6 100644
--- a/src/test/ref/bitmap-plotter.asm
+++ b/src/test/ref/bitmap-plotter.asm
@@ -48,8 +48,8 @@ main: {
     jmp __b1
 }
 init_screen: {
-    .label b = 6
-    .label c = 4
+    .label b = 7
+    .label c = 5
     lda #<BITMAP
     sta.z b
     lda #>BITMAP
@@ -101,7 +101,7 @@ init_screen: {
 }
 init_plot_tables: {
     .label __9 = 2
-    .label yoffs = 6
+    .label yoffs = 7
     ldy #$80
     ldx #0
   __b1:
@@ -168,47 +168,51 @@ init_plot_tables: {
     rts
 }
 plots: {
-    ldx #0
+    .label i = 2
+    lda #0
+    sta.z i
   __b1:
     // for(byte i=0; i<plots_cnt;i++)
-    cpx #plots_cnt
+    lda.z i
+    cmp #plots_cnt
     bcc __b2
     // }
     rts
   __b2:
     // plot(plots_x[i], plots_y[i])
-    lda plots_x,x
+    ldy.z i
+    lda plots_x,y
     sta.z plot.x
-    lda plots_y,x
+    lda plots_y,y
     sta.z plot.y
     jsr plot
     // for(byte i=0; i<plots_cnt;i++)
-    inx
+    inc.z i
     jmp __b1
 }
-// plot(byte zp(2) x, byte zp(3) y)
+// plot(byte zp(3) x, byte zp(4) y)
 plot: {
-    .label x = 2
-    .label y = 3
-    .label plotter_x = 4
-    .label plotter_y = 6
-    .label plotter = 4
-    // >plotter_x = plot_xhi[x]
+    .label x = 3
+    .label y = 4
+    .label plotter_x = 5
+    .label plotter_y = 7
+    .label plotter = 5
+    // BYTE1(plotter_x) = plot_xhi[x]
     ldy.z x
     lda plot_xhi,y
     sta.z plotter_x+1
     lda #<0
     sta.z plotter_x
-    // <plotter_x = plot_xlo[x]
+    // BYTE0(plotter_x) = plot_xlo[x]
     lda plot_xlo,y
     sta.z plotter_x
-    // >plotter_y = plot_yhi[y]
+    // BYTE1(plotter_y) = plot_yhi[y]
     ldy.z y
     lda plot_yhi,y
     sta.z plotter_y+1
     lda #<0
     sta.z plotter_y
-    // <plotter_y = plot_ylo[y]
+    // BYTE0(plotter_y) = plot_ylo[y]
     lda plot_ylo,y
     sta.z plotter_y
     // byte* plotter = plotter_x+plotter_y
diff --git a/src/test/ref/bitmap-plotter.cfg b/src/test/ref/bitmap-plotter.cfg
index 59c42a3c9..4f8a67204 100644
--- a/src/test/ref/bitmap-plotter.cfg
+++ b/src/test/ref/bitmap-plotter.cfg
@@ -114,13 +114,13 @@ plots::@3: scope:[plots]  from plots::@2
 void plot(byte plot::x , byte plot::y)
 plot: scope:[plot]  from plots::@2
   [54] plot::$6 = plot_xhi[plot::x#0]
-  [55] plot::plotter_x#1 = (byte*) 0 hi= plot::$6
+  [55] plot::plotter_x#1 = (byte*) 0 byte1= plot::$6
   [56] plot::$7 = plot_xlo[plot::x#0]
-  [57] plot::plotter_x#2 = plot::plotter_x#1 lo= plot::$7
+  [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
   [58] plot::$8 = plot_yhi[plot::y#0]
-  [59] plot::plotter_y#1 = 0 hi= plot::$8
+  [59] plot::plotter_y#1 = 0 byte1= plot::$8
   [60] plot::$9 = plot_ylo[plot::y#0]
-  [61] plot::plotter_y#2 = plot::plotter_y#1 lo= plot::$9
+  [61] plot::plotter_y#2 = plot::plotter_y#1 byte0= plot::$9
   [62] plot::plotter#0 = plot::plotter_x#2 + plot::plotter_y#2
   [63] plot::$5 = *plot::plotter#0 | plot_bit[plot::x#0]
   [64] *plot::plotter#0 = plot::$5
diff --git a/src/test/ref/bitmap-plotter.log b/src/test/ref/bitmap-plotter.log
index ac35749c8..aba3500a2 100644
--- a/src/test/ref/bitmap-plotter.log
+++ b/src/test/ref/bitmap-plotter.log
@@ -67,13 +67,13 @@ plot: scope:[plot]  from plots::@2
   plot::plotter_x#0 = (byte*)0
   plot::plotter_y#0 = 0
   plot::$6 = plot_xhi[plot::x#1]
-  plot::plotter_x#1 = plot::plotter_x#0 hi= plot::$6
+  plot::plotter_x#1 = plot::plotter_x#0 byte1= plot::$6
   plot::$7 = plot_xlo[plot::x#1]
-  plot::plotter_x#2 = plot::plotter_x#1 lo= plot::$7
+  plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
   plot::$8 = plot_yhi[plot::y#1]
-  plot::plotter_y#1 = plot::plotter_y#0 hi= plot::$8
+  plot::plotter_y#1 = plot::plotter_y#0 byte1= plot::$8
   plot::$9 = plot_ylo[plot::y#1]
-  plot::plotter_y#2 = plot::plotter_y#1 lo= plot::$9
+  plot::plotter_y#2 = plot::plotter_y#1 byte0= plot::$9
   plot::$4 = plot::plotter_x#2 + plot::plotter_y#2
   plot::plotter#0 = plot::$4
   plot::$5 = *plot::plotter#0 | plot_bit[plot::x#1]
@@ -690,13 +690,13 @@ plots::@3: scope:[plots]  from plots::@2
 void plot(byte plot::x , byte plot::y)
 plot: scope:[plot]  from plots::@2
   [54] plot::$6 = plot_xhi[plot::x#0]
-  [55] plot::plotter_x#1 = (byte*) 0 hi= plot::$6
+  [55] plot::plotter_x#1 = (byte*) 0 byte1= plot::$6
   [56] plot::$7 = plot_xlo[plot::x#0]
-  [57] plot::plotter_x#2 = plot::plotter_x#1 lo= plot::$7
+  [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
   [58] plot::$8 = plot_yhi[plot::y#0]
-  [59] plot::plotter_y#1 = 0 hi= plot::$8
+  [59] plot::plotter_y#1 = 0 byte1= plot::$8
   [60] plot::$9 = plot_ylo[plot::y#0]
-  [61] plot::plotter_y#2 = plot::plotter_y#1 lo= plot::$9
+  [61] plot::plotter_y#2 = plot::plotter_y#1 byte0= plot::$9
   [62] plot::plotter#0 = plot::plotter_x#2 + plot::plotter_y#2
   [63] plot::$5 = *plot::plotter#0 | plot_bit[plot::x#0]
   [64] *plot::plotter#0 = plot::$5
@@ -832,6 +832,9 @@ Allocated zp[1]:28 [ plot::$9 ]
 Allocated zp[2]:29 [ plot::plotter_y#2 ]
 Allocated zp[2]:31 [ plot::plotter#0 ]
 Allocated zp[1]:33 [ plot::$5 ]
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
 REGISTER UPLIFT POTENTIAL REGISTERS
 Equivalence Class zp[1]:14 [ init_plot_tables::$6 ] has ALU potential.
 Statement [0] *BG_COLOR = 0 [ ] (  [ ] { }  ) always clobbers reg byte a 
@@ -849,14 +852,31 @@ Removing always clobbered register reg byte a as potential for zp[1]:7 [ init_pl
 Statement [26] plot_bit[init_plot_tables::x#2] = init_plot_tables::bits#3 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( init_plot_tables:6 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] { }  ) always clobbers reg byte a 
 Statement [41] init_plot_tables::yoffs#1 = init_plot_tables::yoffs#2 + (word)$28*8 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ( init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] { }  ) always clobbers reg byte a 
 Removing always clobbered register reg byte a as potential for zp[1]:8 [ init_plot_tables::y#2 init_plot_tables::y#1 ]
-Statement [57] plot::plotter_x#2 = plot::plotter_x#1 lo= plot::$7 [ plot::x#0 plot::y#0 plot::plotter_x#2 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 ] { }  ) always clobbers reg byte a 
+Statement [55] plot::plotter_x#1 = (byte*) 0 byte1= plot::$6 [ plot::x#0 plot::y#0 plot::plotter_x#1 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#1 ] { }  ) always clobbers reg byte a 
 Removing always clobbered register reg byte a as potential for zp[1]:11 [ plots::i#2 plots::i#1 ]
 Removing always clobbered register reg byte a as potential for zp[1]:17 [ plot::x#0 ]
 Removing always clobbered register reg byte a as potential for zp[1]:18 [ plot::y#0 ]
-Statement [61] plot::plotter_y#2 = plot::plotter_y#1 lo= plot::$9 [ plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] { }  ) always clobbers reg byte a 
+Potential register analysis [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7 missing fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3  allocation: zp[1]:22 [ plot::$7 ] zp[2]:20 [ plot::plotter_x#1 ] zp[2]:23 [ plot::plotter_x#2 ] 
+Potential register analysis [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7 missing fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa  allocation: reg byte a [ plot::$7 ] zp[2]:20 [ plot::plotter_x#1 ] zp[2]:23 [ plot::plotter_x#2 ] 
+Potential register analysis [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7 missing fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx  allocation: reg byte x [ plot::$7 ] zp[2]:20 [ plot::plotter_x#1 ] zp[2]:23 [ plot::plotter_x#2 ] 
+Potential register analysis [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7 missing fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy  allocation: reg byte y [ plot::$7 ] zp[2]:20 [ plot::plotter_x#1 ] zp[2]:23 [ plot::plotter_x#2 ] 
+MISSING FRAGMENTS
+  Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+  Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+  Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+  Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+Statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7 [ plot::x#0 plot::y#0 plot::plotter_x#2 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 ] { }  ) always clobbers reg byte a reg byte x reg byte y 
+Removing always clobbered register reg byte x as potential for zp[1]:11 [ plots::i#2 plots::i#1 ]
+Removing always clobbered register reg byte y as potential for zp[1]:11 [ plots::i#2 plots::i#1 ]
+Removing always clobbered register reg byte x as potential for zp[1]:17 [ plot::x#0 ]
+Removing always clobbered register reg byte y as potential for zp[1]:17 [ plot::x#0 ]
+Removing always clobbered register reg byte x as potential for zp[1]:18 [ plot::y#0 ]
+Removing always clobbered register reg byte y as potential for zp[1]:18 [ plot::y#0 ]
+Statement [58] plot::$8 = plot_yhi[plot::y#0] [ plot::x#0 plot::y#0 plot::plotter_x#2 plot::$8 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 plot::$8 ] { }  ) always clobbers reg byte y 
+Statement [60] plot::$9 = plot_ylo[plot::y#0] [ plot::x#0 plot::plotter_x#2 plot::plotter_y#1 plot::$9 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::plotter_x#2 plot::plotter_y#1 plot::$9 ] { }  ) always clobbers reg byte y 
+Statement [61] plot::plotter_y#2 = plot::plotter_y#1 byte0= plot::$9 [ plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] { }  ) always clobbers reg byte a 
 Statement [62] plot::plotter#0 = plot::plotter_x#2 + plot::plotter_y#2 [ plot::x#0 plot::plotter#0 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::plotter#0 ] { }  ) always clobbers reg byte a 
 Statement [63] plot::$5 = *plot::plotter#0 | plot_bit[plot::x#0] [ plot::plotter#0 plot::$5 ] ( plots:9::plot:52 [ plots::i#2 plot::plotter#0 plot::$5 ] { }  ) always clobbers reg byte a reg byte y 
-Removing always clobbered register reg byte y as potential for zp[1]:11 [ plots::i#2 plots::i#1 ]
 Statement [64] *plot::plotter#0 = plot::$5 [ ] ( plots:9::plot:52 [ plots::i#2 ] { }  ) always clobbers reg byte y 
 Statement [0] *BG_COLOR = 0 [ ] (  [ ] { }  ) always clobbers reg byte a 
 Statement [1] *FGCOL = 0 [ ] (  [ ] { }  ) always clobbers reg byte a 
@@ -872,8 +892,25 @@ Statement [25] plot_xhi[init_plot_tables::x#2] = >BITMAP [ init_plot_tables::x#2
 Statement [26] plot_bit[init_plot_tables::x#2] = init_plot_tables::bits#3 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( init_plot_tables:6 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] { }  ) always clobbers reg byte a 
 Statement [34] init_plot_tables::$9 = init_plot_tables::y#2 & 7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$9 ] ( init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$9 ] { }  ) always clobbers reg byte a 
 Statement [41] init_plot_tables::yoffs#1 = init_plot_tables::yoffs#2 + (word)$28*8 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ( init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] { }  ) always clobbers reg byte a 
-Statement [57] plot::plotter_x#2 = plot::plotter_x#1 lo= plot::$7 [ plot::x#0 plot::y#0 plot::plotter_x#2 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 ] { }  ) always clobbers reg byte a 
-Statement [61] plot::plotter_y#2 = plot::plotter_y#1 lo= plot::$9 [ plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] { }  ) always clobbers reg byte a 
+Statement [48] if(plots::i#2<plots_cnt) goto plots::@2 [ plots::i#2 ] ( plots:9 [ plots::i#2 ] { }  ) always clobbers reg byte a 
+Statement [50] plot::x#0 = plots_x[plots::i#2] [ plots::i#2 plot::x#0 ] ( plots:9 [ plots::i#2 plot::x#0 ] { }  ) always clobbers reg byte a reg byte y 
+Statement [51] plot::y#0 = plots_y[plots::i#2] [ plots::i#2 plot::x#0 plot::y#0 ] ( plots:9 [ plots::i#2 plot::x#0 plot::y#0 ] { }  ) always clobbers reg byte a reg byte y 
+Statement [54] plot::$6 = plot_xhi[plot::x#0] [ plot::x#0 plot::y#0 plot::$6 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::y#0 plot::$6 ] { }  ) always clobbers reg byte y 
+Statement [55] plot::plotter_x#1 = (byte*) 0 byte1= plot::$6 [ plot::x#0 plot::y#0 plot::plotter_x#1 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#1 ] { }  ) always clobbers reg byte a 
+Statement [56] plot::$7 = plot_xlo[plot::x#0] [ plot::x#0 plot::y#0 plot::plotter_x#1 plot::$7 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#1 plot::$7 ] { }  ) always clobbers reg byte y 
+Potential register analysis [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7 missing fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3  allocation: zp[1]:22 [ plot::$7 ] zp[2]:20 [ plot::plotter_x#1 ] zp[2]:23 [ plot::plotter_x#2 ] 
+Potential register analysis [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7 missing fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa  allocation: reg byte a [ plot::$7 ] zp[2]:20 [ plot::plotter_x#1 ] zp[2]:23 [ plot::plotter_x#2 ] 
+Potential register analysis [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7 missing fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx  allocation: reg byte x [ plot::$7 ] zp[2]:20 [ plot::plotter_x#1 ] zp[2]:23 [ plot::plotter_x#2 ] 
+Potential register analysis [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7 missing fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy  allocation: reg byte y [ plot::$7 ] zp[2]:20 [ plot::plotter_x#1 ] zp[2]:23 [ plot::plotter_x#2 ] 
+MISSING FRAGMENTS
+  Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+  Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+  Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+  Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+Statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7 [ plot::x#0 plot::y#0 plot::plotter_x#2 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 ] { }  ) always clobbers reg byte a reg byte x reg byte y 
+Statement [58] plot::$8 = plot_yhi[plot::y#0] [ plot::x#0 plot::y#0 plot::plotter_x#2 plot::$8 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 plot::$8 ] { }  ) always clobbers reg byte y 
+Statement [60] plot::$9 = plot_ylo[plot::y#0] [ plot::x#0 plot::plotter_x#2 plot::plotter_y#1 plot::$9 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::plotter_x#2 plot::plotter_y#1 plot::$9 ] { }  ) always clobbers reg byte y 
+Statement [61] plot::plotter_y#2 = plot::plotter_y#1 byte0= plot::$9 [ plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] { }  ) always clobbers reg byte a 
 Statement [62] plot::plotter#0 = plot::plotter_x#2 + plot::plotter_y#2 [ plot::x#0 plot::plotter#0 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::plotter#0 ] { }  ) always clobbers reg byte a 
 Statement [63] plot::$5 = *plot::plotter#0 | plot_bit[plot::x#0] [ plot::plotter#0 plot::$5 ] ( plots:9::plot:52 [ plots::i#2 plot::plotter#0 plot::$5 ] { }  ) always clobbers reg byte a reg byte y 
 Statement [64] *plot::plotter#0 = plot::$5 [ ] ( plots:9::plot:52 [ plots::i#2 ] { }  ) always clobbers reg byte y 
@@ -883,14 +920,14 @@ Potential registers zp[1]:6 [ init_plot_tables::x#2 init_plot_tables::x#1 ] : zp
 Potential registers zp[1]:7 [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ] : zp[1]:7 , reg byte x , reg byte y , 
 Potential registers zp[1]:8 [ init_plot_tables::y#2 init_plot_tables::y#1 ] : zp[1]:8 , reg byte x , reg byte y , 
 Potential registers zp[2]:9 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 ] : zp[2]:9 , 
-Potential registers zp[1]:11 [ plots::i#2 plots::i#1 ] : zp[1]:11 , reg byte x , 
+Potential registers zp[1]:11 [ plots::i#2 plots::i#1 ] : zp[1]:11 , 
 Potential registers zp[1]:12 [ init_plot_tables::$0 ] : zp[1]:12 , reg byte a , reg byte x , reg byte y , 
 Potential registers zp[1]:13 [ init_plot_tables::$9 ] : zp[1]:13 , reg byte a , reg byte x , reg byte y , 
 Potential registers zp[1]:14 [ init_plot_tables::$6 ] : zp[1]:14 , reg byte a , reg byte x , reg byte y , reg byte alu , 
 Potential registers zp[1]:15 [ init_plot_tables::$7 ] : zp[1]:15 , reg byte a , reg byte x , reg byte y , 
 Potential registers zp[1]:16 [ init_plot_tables::$8 ] : zp[1]:16 , reg byte a , reg byte x , reg byte y , 
-Potential registers zp[1]:17 [ plot::x#0 ] : zp[1]:17 , reg byte x , reg byte y , 
-Potential registers zp[1]:18 [ plot::y#0 ] : zp[1]:18 , reg byte x , reg byte y , 
+Potential registers zp[1]:17 [ plot::x#0 ] : zp[1]:17 , 
+Potential registers zp[1]:18 [ plot::y#0 ] : zp[1]:18 , 
 Potential registers zp[1]:19 [ plot::$6 ] : zp[1]:19 , reg byte a , reg byte x , reg byte y , 
 Potential registers zp[2]:20 [ plot::plotter_x#1 ] : zp[2]:20 , 
 Potential registers zp[1]:22 [ plot::$7 ] : zp[1]:22 , reg byte a , reg byte x , reg byte y , 
@@ -910,39 +947,585 @@ Uplift Scope [init_screen] 336.67: zp[2]:2 [ init_screen::b#2 init_screen::b#1 ]
 Uplift Scope [main] 
 Uplift Scope [] 
 
-Uplifting [plot] best 10319 combination reg byte a [ plot::$6 ] reg byte a [ plot::$7 ] reg byte a [ plot::$8 ] reg byte a [ plot::$9 ] zp[2]:29 [ plot::plotter_y#2 ] zp[1]:33 [ plot::$5 ] zp[2]:31 [ plot::plotter#0 ] zp[2]:20 [ plot::plotter_x#1 ] zp[2]:26 [ plot::plotter_y#1 ] zp[2]:23 [ plot::plotter_x#2 ] zp[1]:18 [ plot::y#0 ] zp[1]:17 [ plot::x#0 ] 
-Limited combination testing to 100 combinations of 9216 possible.
-Uplifting [plots] best 8819 combination reg byte x [ plots::i#2 plots::i#1 ] 
-Uplifting [init_plot_tables] best 8359 combination zp[2]:9 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 ] reg byte y [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ] reg byte x [ init_plot_tables::x#2 init_plot_tables::x#1 ] reg byte x [ init_plot_tables::y#2 init_plot_tables::y#1 ] reg byte a [ init_plot_tables::$0 ] zp[1]:14 [ init_plot_tables::$6 ] zp[1]:15 [ init_plot_tables::$7 ] zp[1]:16 [ init_plot_tables::$8 ] zp[1]:13 [ init_plot_tables::$9 ] 
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuxx. Attempted variations pbuz1=pbuz2_setbyte0_vbuxx 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuyy. Attempted variations pbuz1=pbuz2_setbyte0_vbuyy 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuz3. Attempted variations pbuz1=pbuz2_setbyte0_vbuz3 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Uplifting [plot] best 10310 combination reg byte a [ plot::$6 ] reg byte a [ plot::$7 ] reg byte a [ plot::$8 ] reg byte a [ plot::$9 ] zp[2]:29 [ plot::plotter_y#2 ] zp[1]:33 [ plot::$5 ] zp[2]:31 [ plot::plotter#0 ] zp[2]:20 [ plot::plotter_x#1 ] zp[2]:26 [ plot::plotter_y#1 ] zp[2]:23 [ plot::plotter_x#2 ] zp[1]:18 [ plot::y#0 ] zp[1]:17 [ plot::x#0 ] 
+Limited combination testing to 100 combinations of 1024 possible.
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Uplifting [plots] best 10310 combination zp[1]:11 [ plots::i#2 plots::i#1 ] 
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Uplifting [init_plot_tables] best 9850 combination zp[2]:9 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 ] reg byte y [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ] reg byte x [ init_plot_tables::x#2 init_plot_tables::x#1 ] reg byte x [ init_plot_tables::y#2 init_plot_tables::y#1 ] reg byte a [ init_plot_tables::$0 ] zp[1]:14 [ init_plot_tables::$6 ] zp[1]:15 [ init_plot_tables::$7 ] zp[1]:16 [ init_plot_tables::$8 ] zp[1]:13 [ init_plot_tables::$9 ] 
 Limited combination testing to 100 combinations of 34560 possible.
-Uplifting [init_screen] best 8359 combination zp[2]:2 [ init_screen::b#2 init_screen::b#1 ] zp[2]:4 [ init_screen::c#2 init_screen::c#1 ] 
-Uplifting [main] best 8359 combination 
-Uplifting [] best 8359 combination 
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Uplifting [init_screen] best 9850 combination zp[2]:2 [ init_screen::b#2 init_screen::b#1 ] zp[2]:4 [ init_screen::c#2 init_screen::c#1 ] 
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Uplifting [main] best 9850 combination 
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Uplifting [] best 9850 combination 
 Attempting to uplift remaining variables inzp[1]:33 [ plot::$5 ]
-Uplifting [plot] best 8353 combination reg byte a [ plot::$5 ] 
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Uplifting [plot] best 9844 combination reg byte a [ plot::$5 ] 
+Attempting to uplift remaining variables inzp[1]:11 [ plots::i#2 plots::i#1 ]
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Uplifting [plots] best 9844 combination zp[1]:11 [ plots::i#2 plots::i#1 ] 
 Attempting to uplift remaining variables inzp[1]:18 [ plot::y#0 ]
-Uplifting [plot] best 8353 combination zp[1]:18 [ plot::y#0 ] 
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Uplifting [plot] best 9844 combination zp[1]:18 [ plot::y#0 ] 
 Attempting to uplift remaining variables inzp[1]:17 [ plot::x#0 ]
-Uplifting [plot] best 8353 combination zp[1]:17 [ plot::x#0 ] 
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Uplifting [plot] best 9844 combination zp[1]:17 [ plot::x#0 ] 
 Attempting to uplift remaining variables inzp[1]:14 [ init_plot_tables::$6 ]
-Uplifting [init_plot_tables] best 8293 combination reg byte a [ init_plot_tables::$6 ] 
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Uplifting [init_plot_tables] best 9784 combination reg byte a [ init_plot_tables::$6 ] 
 Attempting to uplift remaining variables inzp[1]:15 [ init_plot_tables::$7 ]
-Uplifting [init_plot_tables] best 8233 combination reg byte a [ init_plot_tables::$7 ] 
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Uplifting [init_plot_tables] best 9724 combination reg byte a [ init_plot_tables::$7 ] 
 Attempting to uplift remaining variables inzp[1]:16 [ init_plot_tables::$8 ]
-Uplifting [init_plot_tables] best 8173 combination reg byte a [ init_plot_tables::$8 ] 
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Uplifting [init_plot_tables] best 9664 combination reg byte a [ init_plot_tables::$8 ] 
 Attempting to uplift remaining variables inzp[1]:13 [ init_plot_tables::$9 ]
-Uplifting [init_plot_tables] best 8173 combination zp[1]:13 [ init_plot_tables::$9 ] 
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Warning! Unknown fragment for statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7
+Missing ASM fragment Fragment not found pbuz1=pbuz2_setbyte0_vbuaa. Attempted variations pbuz1=pbuz2_setbyte0_vbuaa 
+/Users/jespergravgaard/c64/kickc/src/test/kc/bitmap-plotter.c:56:5:
+Uplifting [init_plot_tables] best 9664 combination zp[1]:13 [ init_plot_tables::$9 ] 
 Coalescing zero page register [ zp[2]:20 [ plot::plotter_x#1 ] ] with [ zp[2]:23 [ plot::plotter_x#2 ] ] - score: 1
 Coalescing zero page register [ zp[2]:26 [ plot::plotter_y#1 ] ] with [ zp[2]:29 [ plot::plotter_y#2 ] ] - score: 1
 Coalescing zero page register [ zp[2]:20 [ plot::plotter_x#1 plot::plotter_x#2 ] ] with [ zp[2]:31 [ plot::plotter#0 ] ] - score: 1
 Coalescing zero page register [ zp[2]:9 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 ] ] with [ zp[2]:2 [ init_screen::b#2 init_screen::b#1 ] ]
-Coalescing zero page register [ zp[1]:17 [ plot::x#0 ] ] with [ zp[1]:13 [ init_plot_tables::$9 ] ]
+Coalescing zero page register [ zp[1]:13 [ init_plot_tables::$9 ] ] with [ zp[1]:11 [ plots::i#2 plots::i#1 ] ]
 Coalescing zero page register [ zp[2]:20 [ plot::plotter_x#1 plot::plotter_x#2 plot::plotter#0 ] ] with [ zp[2]:4 [ init_screen::c#2 init_screen::c#1 ] ]
 Coalescing zero page register [ zp[2]:26 [ plot::plotter_y#1 plot::plotter_y#2 ] ] with [ zp[2]:9 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 ] ]
-Allocated (was zp[1]:17) zp[1]:2 [ plot::x#0 init_plot_tables::$9 ]
-Allocated (was zp[1]:18) zp[1]:3 [ plot::y#0 ]
-Allocated (was zp[2]:20) zp[2]:4 [ plot::plotter_x#1 plot::plotter_x#2 plot::plotter#0 init_screen::c#2 init_screen::c#1 ]
-Allocated (was zp[2]:26) zp[2]:6 [ plot::plotter_y#1 plot::plotter_y#2 init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 ]
+Allocated (was zp[1]:13) zp[1]:2 [ init_plot_tables::$9 plots::i#2 plots::i#1 ]
+Allocated (was zp[1]:17) zp[1]:3 [ plot::x#0 ]
+Allocated (was zp[1]:18) zp[1]:4 [ plot::y#0 ]
+Allocated (was zp[2]:20) zp[2]:5 [ plot::plotter_x#1 plot::plotter_x#2 plot::plotter#0 init_screen::c#2 init_screen::c#1 ]
+Allocated (was zp[2]:26) zp[2]:7 [ plot::plotter_y#1 plot::plotter_y#2 init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
@@ -1020,8 +1603,8 @@ main: {
 }
   // init_screen
 init_screen: {
-    .label b = 6
-    .label c = 4
+    .label b = 7
+    .label c = 5
     // [12] phi from init_screen to init_screen::@1 [phi:init_screen->init_screen::@1]
   __b1_from_init_screen:
     // [12] phi init_screen::b#2 = BITMAP [phi:init_screen->init_screen::@1#0] -- pbuz1=pbuc1 
@@ -1095,7 +1678,7 @@ init_screen: {
   // init_plot_tables
 init_plot_tables: {
     .label __9 = 2
-    .label yoffs = 6
+    .label yoffs = 7
     // [22] phi from init_plot_tables to init_plot_tables::@1 [phi:init_plot_tables->init_plot_tables::@1]
   __b1_from_init_plot_tables:
     // [22] phi init_plot_tables::bits#3 = $80 [phi:init_plot_tables->init_plot_tables::@1#0] -- vbuyy=vbuc1 
@@ -1214,15 +1797,18 @@ init_plot_tables: {
 }
   // plots
 plots: {
+    .label i = 2
     // [47] phi from plots to plots::@1 [phi:plots->plots::@1]
   __b1_from_plots:
-    // [47] phi plots::i#2 = 0 [phi:plots->plots::@1#0] -- vbuxx=vbuc1 
-    ldx #0
+    // [47] phi plots::i#2 = 0 [phi:plots->plots::@1#0] -- vbuz1=vbuc1 
+    lda #0
+    sta.z i
     jmp __b1
     // plots::@1
   __b1:
-    // [48] if(plots::i#2<plots_cnt) goto plots::@2 -- vbuxx_lt_vbuc1_then_la1 
-    cpx #plots_cnt
+    // [48] if(plots::i#2<plots_cnt) goto plots::@2 -- vbuz1_lt_vbuc1_then_la1 
+    lda.z i
+    cmp #plots_cnt
     bcc __b2
     jmp __breturn
     // plots::@return
@@ -1231,55 +1817,57 @@ plots: {
     rts
     // plots::@2
   __b2:
-    // [50] plot::x#0 = plots_x[plots::i#2] -- vbuz1=pbuc1_derefidx_vbuxx 
-    lda plots_x,x
+    // [50] plot::x#0 = plots_x[plots::i#2] -- vbuz1=pbuc1_derefidx_vbuz2 
+    ldy.z i
+    lda plots_x,y
     sta.z plot.x
-    // [51] plot::y#0 = plots_y[plots::i#2] -- vbuz1=pbuc1_derefidx_vbuxx 
-    lda plots_y,x
+    // [51] plot::y#0 = plots_y[plots::i#2] -- vbuz1=pbuc1_derefidx_vbuz2 
+    ldy.z i
+    lda plots_y,y
     sta.z plot.y
     // [52] call plot 
     jsr plot
     jmp __b3
     // plots::@3
   __b3:
-    // [53] plots::i#1 = ++ plots::i#2 -- vbuxx=_inc_vbuxx 
-    inx
+    // [53] plots::i#1 = ++ plots::i#2 -- vbuz1=_inc_vbuz1 
+    inc.z i
     // [47] phi from plots::@3 to plots::@1 [phi:plots::@3->plots::@1]
   __b1_from___b3:
     // [47] phi plots::i#2 = plots::i#1 [phi:plots::@3->plots::@1#0] -- register_copy 
     jmp __b1
 }
   // plot
-// plot(byte zp(2) x, byte zp(3) y)
+// plot(byte zp(3) x, byte zp(4) y)
 plot: {
-    .label x = 2
-    .label y = 3
-    .label plotter_x = 4
-    .label plotter_y = 6
-    .label plotter = 4
+    .label x = 3
+    .label y = 4
+    .label plotter_x = 5
+    .label plotter_y = 7
+    .label plotter = 5
     // [54] plot::$6 = plot_xhi[plot::x#0] -- vbuaa=pbuc1_derefidx_vbuz1 
     ldy.z x
     lda plot_xhi,y
-    // [55] plot::plotter_x#1 = (byte*) 0 hi= plot::$6 -- pbuz1=pbuc1_sethi_vbuaa 
+    // [55] plot::plotter_x#1 = (byte*) 0 byte1= plot::$6 -- pbuz1=pbuc1_setbyte1_vbuaa 
     sta.z plotter_x+1
     lda #<0
     sta.z plotter_x
     // [56] plot::$7 = plot_xlo[plot::x#0] -- vbuaa=pbuc1_derefidx_vbuz1 
     ldy.z x
     lda plot_xlo,y
-    // [57] plot::plotter_x#2 = plot::plotter_x#1 lo= plot::$7 -- pbuz1=pbuz1_setlo_vbuaa 
+    // [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7 -- pbuz1=pbuz1_setbyte0_vbuaa 
     sta.z plotter_x
     // [58] plot::$8 = plot_yhi[plot::y#0] -- vbuaa=pbuc1_derefidx_vbuz1 
     ldy.z y
     lda plot_yhi,y
-    // [59] plot::plotter_y#1 = 0 hi= plot::$8 -- vwuz1=vwuc1_sethi_vbuaa 
+    // [59] plot::plotter_y#1 = 0 byte1= plot::$8 -- vwuz1=vwuc1_setbyte1_vbuaa 
     sta.z plotter_y+1
     lda #<0
     sta.z plotter_y
     // [60] plot::$9 = plot_ylo[plot::y#0] -- vbuaa=pbuc1_derefidx_vbuz1 
     ldy.z y
     lda plot_ylo,y
-    // [61] plot::plotter_y#2 = plot::plotter_y#1 lo= plot::$9 -- vwuz1=vwuz1_setlo_vbuaa 
+    // [61] plot::plotter_y#2 = plot::plotter_y#1 byte0= plot::$9 -- vwuz1=vwuz1_setbyte0_vbuaa 
     sta.z plotter_y
     // [62] plot::plotter#0 = plot::plotter_x#2 + plot::plotter_y#2 -- pbuz1=pbuz1_plus_vwuz2 
     lda.z plotter
@@ -1337,6 +1925,7 @@ Removing instruction lda #0
 Replacing instruction ldy #0 with TAY
 Removing instruction lda #>0
 Replacing instruction ldx #0 with TAX
+Removing instruction ldy.z i
 Removing instruction ldy.z x
 Removing instruction ldy.z y
 Succesful ASM optimization Pass5UnnecesaryLoadElimination
@@ -1408,16 +1997,16 @@ byte init_plot_tables::y
 byte init_plot_tables::y#1 reg byte x 151.5
 byte init_plot_tables::y#2 reg byte x 50.5
 byte* init_plot_tables::yoffs
-byte* init_plot_tables::yoffs#1 yoffs zp[2]:6 202.0
-byte* init_plot_tables::yoffs#2 yoffs zp[2]:6 63.125
-byte* init_plot_tables::yoffs#4 yoffs zp[2]:6 101.0
+byte* init_plot_tables::yoffs#1 yoffs zp[2]:7 202.0
+byte* init_plot_tables::yoffs#2 yoffs zp[2]:7 63.125
+byte* init_plot_tables::yoffs#4 yoffs zp[2]:7 101.0
 void init_screen()
 byte* init_screen::b
-byte* init_screen::b#1 b zp[2]:6 202.0
-byte* init_screen::b#2 b zp[2]:6 134.66666666666666
+byte* init_screen::b#1 b zp[2]:7 202.0
+byte* init_screen::b#2 b zp[2]:7 134.66666666666666
 byte* init_screen::c
-byte* init_screen::c#1 c zp[2]:4 202.0
-byte* init_screen::c#2 c zp[2]:4 134.66666666666666
+byte* init_screen::c#1 c zp[2]:5 202.0
+byte* init_screen::c#2 c zp[2]:5 134.66666666666666
 void main()
 void plot(byte plot::x , byte plot::y)
 byte~ plot::$5 reg byte a 200002.0
@@ -1426,17 +2015,17 @@ byte~ plot::$7 reg byte a 200002.0
 byte~ plot::$8 reg byte a 200002.0
 byte~ plot::$9 reg byte a 200002.0
 byte* plot::plotter
-byte* plot::plotter#0 plotter zp[2]:4 150001.5
+byte* plot::plotter#0 plotter zp[2]:5 150001.5
 byte* plot::plotter_x
-byte* plot::plotter_x#1 plotter_x zp[2]:4 100001.0
-byte* plot::plotter_x#2 plotter_x zp[2]:4 40000.4
+byte* plot::plotter_x#1 plotter_x zp[2]:5 100001.0
+byte* plot::plotter_x#2 plotter_x zp[2]:5 40000.4
 word plot::plotter_y
-word plot::plotter_y#1 plotter_y zp[2]:6 100001.0
-word plot::plotter_y#2 plotter_y zp[2]:6 200002.0
+word plot::plotter_y#1 plotter_y zp[2]:7 100001.0
+word plot::plotter_y#2 plotter_y zp[2]:7 200002.0
 byte plot::x
-byte plot::x#0 x zp[1]:2 28182.181818181816
+byte plot::x#0 x zp[1]:3 28182.181818181816
 byte plot::y
-byte plot::y#0 y zp[1]:3 30000.428571428572
+byte plot::y#0 y zp[1]:4 30000.428571428572
 constant const byte* plot_bit[$100]  = { fill( $100, 0) }
 constant const byte* plot_xhi[$100]  = { fill( $100, 0) }
 constant const byte* plot_xlo[$100]  = { fill( $100, 0) }
@@ -1444,8 +2033,8 @@ constant const byte* plot_yhi[$100]  = { fill( $100, 0) }
 constant const byte* plot_ylo[$100]  = { fill( $100, 0) }
 void plots()
 byte plots::i
-byte plots::i#1 reg byte x 20002.0
-byte plots::i#2 reg byte x 10001.0
+byte plots::i#1 i zp[1]:2 20002.0
+byte plots::i#2 i zp[1]:2 10001.0
 constant byte plots_cnt = 8
 constant byte* plots_x[]  = { $3c, $50, $6e, $50, $3c, $28, $a, $28 }
 constant byte* plots_y[]  = { $a, $28, $3c, $50, $6e, $50, $3c, $28 }
@@ -1453,24 +2042,24 @@ constant byte* plots_y[]  = { $a, $28, $3c, $50, $6e, $50, $3c, $28 }
 reg byte x [ init_plot_tables::x#2 init_plot_tables::x#1 ]
 reg byte y [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ]
 reg byte x [ init_plot_tables::y#2 init_plot_tables::y#1 ]
-reg byte x [ plots::i#2 plots::i#1 ]
 reg byte a [ init_plot_tables::$0 ]
+zp[1]:2 [ init_plot_tables::$9 plots::i#2 plots::i#1 ]
 reg byte a [ init_plot_tables::$6 ]
 reg byte a [ init_plot_tables::$7 ]
 reg byte a [ init_plot_tables::$8 ]
-zp[1]:2 [ plot::x#0 init_plot_tables::$9 ]
-zp[1]:3 [ plot::y#0 ]
+zp[1]:3 [ plot::x#0 ]
+zp[1]:4 [ plot::y#0 ]
 reg byte a [ plot::$6 ]
-zp[2]:4 [ plot::plotter_x#1 plot::plotter_x#2 plot::plotter#0 init_screen::c#2 init_screen::c#1 ]
+zp[2]:5 [ plot::plotter_x#1 plot::plotter_x#2 plot::plotter#0 init_screen::c#2 init_screen::c#1 ]
 reg byte a [ plot::$7 ]
 reg byte a [ plot::$8 ]
-zp[2]:6 [ plot::plotter_y#1 plot::plotter_y#2 init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 ]
+zp[2]:7 [ plot::plotter_y#1 plot::plotter_y#2 init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 ]
 reg byte a [ plot::$9 ]
 reg byte a [ plot::$5 ]
 
 
 FINAL ASSEMBLER
-Score: 6531
+Score: 7731
 
   // File Comments
   // Upstart
@@ -1545,8 +2134,8 @@ main: {
 }
   // init_screen
 init_screen: {
-    .label b = 6
-    .label c = 4
+    .label b = 7
+    .label c = 5
     // [12] phi from init_screen to init_screen::@1 [phi:init_screen->init_screen::@1]
     // [12] phi init_screen::b#2 = BITMAP [phi:init_screen->init_screen::@1#0] -- pbuz1=pbuc1 
     lda #<BITMAP
@@ -1619,7 +2208,7 @@ init_screen: {
   // init_plot_tables
 init_plot_tables: {
     .label __9 = 2
-    .label yoffs = 6
+    .label yoffs = 7
     // [22] phi from init_plot_tables to init_plot_tables::@1 [phi:init_plot_tables->init_plot_tables::@1]
     // [22] phi init_plot_tables::bits#3 = $80 [phi:init_plot_tables->init_plot_tables::@1#0] -- vbuyy=vbuc1 
     ldy #$80
@@ -1732,14 +2321,17 @@ init_plot_tables: {
 }
   // plots
 plots: {
+    .label i = 2
     // [47] phi from plots to plots::@1 [phi:plots->plots::@1]
-    // [47] phi plots::i#2 = 0 [phi:plots->plots::@1#0] -- vbuxx=vbuc1 
-    ldx #0
+    // [47] phi plots::i#2 = 0 [phi:plots->plots::@1#0] -- vbuz1=vbuc1 
+    lda #0
+    sta.z i
     // plots::@1
   __b1:
     // for(byte i=0; i<plots_cnt;i++)
-    // [48] if(plots::i#2<plots_cnt) goto plots::@2 -- vbuxx_lt_vbuc1_then_la1 
-    cpx #plots_cnt
+    // [48] if(plots::i#2<plots_cnt) goto plots::@2 -- vbuz1_lt_vbuc1_then_la1 
+    lda.z i
+    cmp #plots_cnt
     bcc __b2
     // plots::@return
     // }
@@ -1748,55 +2340,56 @@ plots: {
     // plots::@2
   __b2:
     // plot(plots_x[i], plots_y[i])
-    // [50] plot::x#0 = plots_x[plots::i#2] -- vbuz1=pbuc1_derefidx_vbuxx 
-    lda plots_x,x
+    // [50] plot::x#0 = plots_x[plots::i#2] -- vbuz1=pbuc1_derefidx_vbuz2 
+    ldy.z i
+    lda plots_x,y
     sta.z plot.x
-    // [51] plot::y#0 = plots_y[plots::i#2] -- vbuz1=pbuc1_derefidx_vbuxx 
-    lda plots_y,x
+    // [51] plot::y#0 = plots_y[plots::i#2] -- vbuz1=pbuc1_derefidx_vbuz2 
+    lda plots_y,y
     sta.z plot.y
     // [52] call plot 
     jsr plot
     // plots::@3
     // for(byte i=0; i<plots_cnt;i++)
-    // [53] plots::i#1 = ++ plots::i#2 -- vbuxx=_inc_vbuxx 
-    inx
+    // [53] plots::i#1 = ++ plots::i#2 -- vbuz1=_inc_vbuz1 
+    inc.z i
     // [47] phi from plots::@3 to plots::@1 [phi:plots::@3->plots::@1]
     // [47] phi plots::i#2 = plots::i#1 [phi:plots::@3->plots::@1#0] -- register_copy 
     jmp __b1
 }
   // plot
-// plot(byte zp(2) x, byte zp(3) y)
+// plot(byte zp(3) x, byte zp(4) y)
 plot: {
-    .label x = 2
-    .label y = 3
-    .label plotter_x = 4
-    .label plotter_y = 6
-    .label plotter = 4
-    // >plotter_x = plot_xhi[x]
+    .label x = 3
+    .label y = 4
+    .label plotter_x = 5
+    .label plotter_y = 7
+    .label plotter = 5
+    // BYTE1(plotter_x) = plot_xhi[x]
     // [54] plot::$6 = plot_xhi[plot::x#0] -- vbuaa=pbuc1_derefidx_vbuz1 
     ldy.z x
     lda plot_xhi,y
-    // [55] plot::plotter_x#1 = (byte*) 0 hi= plot::$6 -- pbuz1=pbuc1_sethi_vbuaa 
+    // [55] plot::plotter_x#1 = (byte*) 0 byte1= plot::$6 -- pbuz1=pbuc1_setbyte1_vbuaa 
     sta.z plotter_x+1
     lda #<0
     sta.z plotter_x
-    // <plotter_x = plot_xlo[x]
+    // BYTE0(plotter_x) = plot_xlo[x]
     // [56] plot::$7 = plot_xlo[plot::x#0] -- vbuaa=pbuc1_derefidx_vbuz1 
     lda plot_xlo,y
-    // [57] plot::plotter_x#2 = plot::plotter_x#1 lo= plot::$7 -- pbuz1=pbuz1_setlo_vbuaa 
+    // [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7 -- pbuz1=pbuz1_setbyte0_vbuaa 
     sta.z plotter_x
-    // >plotter_y = plot_yhi[y]
+    // BYTE1(plotter_y) = plot_yhi[y]
     // [58] plot::$8 = plot_yhi[plot::y#0] -- vbuaa=pbuc1_derefidx_vbuz1 
     ldy.z y
     lda plot_yhi,y
-    // [59] plot::plotter_y#1 = 0 hi= plot::$8 -- vwuz1=vwuc1_sethi_vbuaa 
+    // [59] plot::plotter_y#1 = 0 byte1= plot::$8 -- vwuz1=vwuc1_setbyte1_vbuaa 
     sta.z plotter_y+1
     lda #<0
     sta.z plotter_y
-    // <plotter_y = plot_ylo[y]
+    // BYTE0(plotter_y) = plot_ylo[y]
     // [60] plot::$9 = plot_ylo[plot::y#0] -- vbuaa=pbuc1_derefidx_vbuz1 
     lda plot_ylo,y
-    // [61] plot::plotter_y#2 = plot::plotter_y#1 lo= plot::$9 -- vwuz1=vwuz1_setlo_vbuaa 
+    // [61] plot::plotter_y#2 = plot::plotter_y#1 byte0= plot::$9 -- vwuz1=vwuz1_setbyte0_vbuaa 
     sta.z plotter_y
     // byte* plotter = plotter_x+plotter_y
     // [62] plot::plotter#0 = plot::plotter_x#2 + plot::plotter_y#2 -- pbuz1=pbuz1_plus_vwuz2 
diff --git a/src/test/ref/bitmap-plotter.sym b/src/test/ref/bitmap-plotter.sym
index def0c8244..fc9488f01 100644
--- a/src/test/ref/bitmap-plotter.sym
+++ b/src/test/ref/bitmap-plotter.sym
@@ -25,16 +25,16 @@ byte init_plot_tables::y
 byte init_plot_tables::y#1 reg byte x 151.5
 byte init_plot_tables::y#2 reg byte x 50.5
 byte* init_plot_tables::yoffs
-byte* init_plot_tables::yoffs#1 yoffs zp[2]:6 202.0
-byte* init_plot_tables::yoffs#2 yoffs zp[2]:6 63.125
-byte* init_plot_tables::yoffs#4 yoffs zp[2]:6 101.0
+byte* init_plot_tables::yoffs#1 yoffs zp[2]:7 202.0
+byte* init_plot_tables::yoffs#2 yoffs zp[2]:7 63.125
+byte* init_plot_tables::yoffs#4 yoffs zp[2]:7 101.0
 void init_screen()
 byte* init_screen::b
-byte* init_screen::b#1 b zp[2]:6 202.0
-byte* init_screen::b#2 b zp[2]:6 134.66666666666666
+byte* init_screen::b#1 b zp[2]:7 202.0
+byte* init_screen::b#2 b zp[2]:7 134.66666666666666
 byte* init_screen::c
-byte* init_screen::c#1 c zp[2]:4 202.0
-byte* init_screen::c#2 c zp[2]:4 134.66666666666666
+byte* init_screen::c#1 c zp[2]:5 202.0
+byte* init_screen::c#2 c zp[2]:5 134.66666666666666
 void main()
 void plot(byte plot::x , byte plot::y)
 byte~ plot::$5 reg byte a 200002.0
@@ -43,17 +43,17 @@ byte~ plot::$7 reg byte a 200002.0
 byte~ plot::$8 reg byte a 200002.0
 byte~ plot::$9 reg byte a 200002.0
 byte* plot::plotter
-byte* plot::plotter#0 plotter zp[2]:4 150001.5
+byte* plot::plotter#0 plotter zp[2]:5 150001.5
 byte* plot::plotter_x
-byte* plot::plotter_x#1 plotter_x zp[2]:4 100001.0
-byte* plot::plotter_x#2 plotter_x zp[2]:4 40000.4
+byte* plot::plotter_x#1 plotter_x zp[2]:5 100001.0
+byte* plot::plotter_x#2 plotter_x zp[2]:5 40000.4
 word plot::plotter_y
-word plot::plotter_y#1 plotter_y zp[2]:6 100001.0
-word plot::plotter_y#2 plotter_y zp[2]:6 200002.0
+word plot::plotter_y#1 plotter_y zp[2]:7 100001.0
+word plot::plotter_y#2 plotter_y zp[2]:7 200002.0
 byte plot::x
-byte plot::x#0 x zp[1]:2 28182.181818181816
+byte plot::x#0 x zp[1]:3 28182.181818181816
 byte plot::y
-byte plot::y#0 y zp[1]:3 30000.428571428572
+byte plot::y#0 y zp[1]:4 30000.428571428572
 constant const byte* plot_bit[$100]  = { fill( $100, 0) }
 constant const byte* plot_xhi[$100]  = { fill( $100, 0) }
 constant const byte* plot_xlo[$100]  = { fill( $100, 0) }
@@ -61,8 +61,8 @@ constant const byte* plot_yhi[$100]  = { fill( $100, 0) }
 constant const byte* plot_ylo[$100]  = { fill( $100, 0) }
 void plots()
 byte plots::i
-byte plots::i#1 reg byte x 20002.0
-byte plots::i#2 reg byte x 10001.0
+byte plots::i#1 i zp[1]:2 20002.0
+byte plots::i#2 i zp[1]:2 10001.0
 constant byte plots_cnt = 8
 constant byte* plots_x[]  = { $3c, $50, $6e, $50, $3c, $28, $a, $28 }
 constant byte* plots_y[]  = { $a, $28, $3c, $50, $6e, $50, $3c, $28 }
@@ -70,17 +70,17 @@ constant byte* plots_y[]  = { $a, $28, $3c, $50, $6e, $50, $3c, $28 }
 reg byte x [ init_plot_tables::x#2 init_plot_tables::x#1 ]
 reg byte y [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ]
 reg byte x [ init_plot_tables::y#2 init_plot_tables::y#1 ]
-reg byte x [ plots::i#2 plots::i#1 ]
 reg byte a [ init_plot_tables::$0 ]
+zp[1]:2 [ init_plot_tables::$9 plots::i#2 plots::i#1 ]
 reg byte a [ init_plot_tables::$6 ]
 reg byte a [ init_plot_tables::$7 ]
 reg byte a [ init_plot_tables::$8 ]
-zp[1]:2 [ plot::x#0 init_plot_tables::$9 ]
-zp[1]:3 [ plot::y#0 ]
+zp[1]:3 [ plot::x#0 ]
+zp[1]:4 [ plot::y#0 ]
 reg byte a [ plot::$6 ]
-zp[2]:4 [ plot::plotter_x#1 plot::plotter_x#2 plot::plotter#0 init_screen::c#2 init_screen::c#1 ]
+zp[2]:5 [ plot::plotter_x#1 plot::plotter_x#2 plot::plotter#0 init_screen::c#2 init_screen::c#1 ]
 reg byte a [ plot::$7 ]
 reg byte a [ plot::$8 ]
-zp[2]:6 [ plot::plotter_y#1 plot::plotter_y#2 init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 ]
+zp[2]:7 [ plot::plotter_y#1 plot::plotter_y#2 init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 ]
 reg byte a [ plot::$9 ]
 reg byte a [ plot::$5 ]
diff --git a/src/test/ref/operator-byte0-lvalue-1.asm b/src/test/ref/operator-byte0-lvalue-1.asm
new file mode 100644
index 000000000..01abdb7ec
--- /dev/null
+++ b/src/test/ref/operator-byte0-lvalue-1.asm
@@ -0,0 +1,72 @@
+// Test using operator byte0() in an lvalue
+  // Commodore 64 PRG executable file
+.file [name="operator-byte0-lvalue-1.prg", type="prg", segments="Program"]
+.segmentdef Program [segments="Basic, Code, Data"]
+.segmentdef Basic [start=$0801]
+.segmentdef Code [start=$80d]
+.segmentdef Data [startAfter="Code"]
+.segment Basic
+:BasicUpstart(main)
+  .const SIZEOF_WORD = 2
+.segment Code
+main: {
+    .label SCREEN = $400
+    .label i = 3
+    .label j = 2
+    // SCREEN[i++] = w
+    lda #<$3039
+    sta SCREEN
+    lda #>$3039
+    sta SCREEN+1
+    lda #<$3039&$ffffff00|1
+    sta SCREEN+1*SIZEOF_WORD
+    lda #>$3039&$ffffff00|1
+    sta SCREEN+1*SIZEOF_WORD+1
+    lda #<($3039&$ffffff00|1)&$ffff00ff|2*$100
+    sta SCREEN+2*SIZEOF_WORD
+    lda #>($3039&$ffffff00|1)&$ffff00ff|2*$100
+    sta SCREEN+2*SIZEOF_WORD+1
+    lda #3
+    sta.z i
+    lda #0
+    sta.z j
+  __b1:
+    // for(char j=0;j<2;j++)
+    lda.z j
+    cmp #2
+    bcc __b2
+    // }
+    rts
+  __b2:
+    // SCREEN[i++] = ws[j]
+    lda.z j
+    asl
+    tax
+    lda.z i
+    asl
+    tay
+    lda ws,x
+    sta SCREEN,y
+    lda ws+1,x
+    sta SCREEN+1,y
+    // SCREEN[i++] = ws[j];
+    inc.z i
+    // BYTE0(ws[j]) = 2
+    lda #2
+    sta ws,x
+    // SCREEN[i++] = ws[j]
+    lda.z i
+    asl
+    tay
+    lda ws,x
+    sta SCREEN,y
+    lda ws+1,x
+    sta SCREEN+1,y
+    // SCREEN[i++] = ws[j];
+    inc.z i
+    // for(char j=0;j<2;j++)
+    inc.z j
+    jmp __b1
+  .segment Data
+    ws: .word $5ba0, $8707
+}
diff --git a/src/test/ref/operator-byte0-lvalue-1.cfg b/src/test/ref/operator-byte0-lvalue-1.cfg
new file mode 100644
index 000000000..c5377e26a
--- /dev/null
+++ b/src/test/ref/operator-byte0-lvalue-1.cfg
@@ -0,0 +1,26 @@
+
+void main()
+main: scope:[main]  from
+  [0] *main::SCREEN = $3039
+  [1] *(main::SCREEN+1*SIZEOF_WORD) = $3039&$ffffff00|1
+  [2] *(main::SCREEN+2*SIZEOF_WORD) = $3039&$ffffff00|1&$ffff00ff|2*$100
+  to:main::@1
+main::@1: scope:[main]  from main main::@2
+  [3] main::i#6 = phi( main/3, main::@2/main::i#5 )
+  [3] main::j#2 = phi( main/0, main::@2/main::j#1 )
+  [4] if(main::j#2<2) goto main::@2
+  to:main::@return
+main::@return: scope:[main]  from main::@1
+  [5] return 
+  to:@return
+main::@2: scope:[main]  from main::@1
+  [6] main::$12 = main::j#2 << 1
+  [7] main::$11 = main::i#6 << 1
+  [8] main::SCREEN[main::$11] = main::ws[main::$12]
+  [9] main::i#4 = ++ main::i#6
+  [10] main::ws[main::$12] = main::ws[main::$12] byte0= 2
+  [11] main::$14 = main::i#4 << 1
+  [12] main::SCREEN[main::$14] = main::ws[main::$12]
+  [13] main::i#5 = ++ main::i#4
+  [14] main::j#1 = ++ main::j#2
+  to:main::@1
diff --git a/src/test/ref/operator-byte0-lvalue-1.log b/src/test/ref/operator-byte0-lvalue-1.log
new file mode 100644
index 000000000..b2573a104
--- /dev/null
+++ b/src/test/ref/operator-byte0-lvalue-1.log
@@ -0,0 +1,579 @@
+
+CONTROL FLOW GRAPH SSA
+
+void main()
+main: scope:[main]  from __start
+  main::w#0 = $3039
+  main::i#0 = 0
+  main::$7 = main::i#0 * SIZEOF_WORD
+  main::SCREEN[main::$7] = main::w#0
+  main::i#1 = ++ main::i#0
+  main::$4 = 1
+  main::w#1 = main::w#0 byte0= main::$4
+  main::$8 = main::i#1 * SIZEOF_WORD
+  main::SCREEN[main::$8] = main::w#1
+  main::i#2 = ++ main::i#1
+  main::$5 = 2
+  main::w#2 = main::w#1 byte1= main::$5
+  main::$9 = main::i#2 * SIZEOF_WORD
+  main::SCREEN[main::$9] = main::w#2
+  main::i#3 = ++ main::i#2
+  main::j#0 = 0
+  to:main::@1
+main::@1: scope:[main]  from main main::@2
+  main::i#7 = phi( main/main::i#3, main::@2/main::i#5 )
+  main::j#2 = phi( main/main::j#0, main::@2/main::j#1 )
+  main::$2 = main::j#2 < 2
+  if(main::$2) goto main::@2
+  to:main::@return
+main::@2: scope:[main]  from main::@1
+  main::i#6 = phi( main::@1/main::i#7 )
+  main::j#3 = phi( main::@1/main::j#2 )
+  main::$10 = main::j#3 * SIZEOF_WORD
+  main::$11 = main::i#6 * SIZEOF_WORD
+  main::SCREEN[main::$11] = main::ws[main::$10]
+  main::i#4 = ++ main::i#6
+  main::$6 = 2
+  main::$12 = main::j#3 * SIZEOF_WORD
+  main::ws[main::$12] = main::ws[main::$12] byte0= main::$6
+  main::$13 = main::j#3 * SIZEOF_WORD
+  main::$14 = main::i#4 * SIZEOF_WORD
+  main::SCREEN[main::$14] = main::ws[main::$13]
+  main::i#5 = ++ main::i#4
+  main::j#1 = ++ main::j#3
+  to:main::@1
+main::@return: scope:[main]  from main::@1
+  return 
+  to:@return
+
+void __start()
+__start: scope:[__start]  from
+  call main 
+  to:__start::@1
+__start::@1: scope:[__start]  from __start
+  to:__start::@return
+__start::@return: scope:[__start]  from __start::@1
+  return 
+  to:@return
+
+SYMBOL TABLE SSA
+constant byte SIZEOF_WORD = 2
+void __start()
+void main()
+byte~ main::$10
+byte~ main::$11
+byte~ main::$12
+byte~ main::$13
+byte~ main::$14
+bool~ main::$2
+byte~ main::$4
+byte~ main::$5
+byte~ main::$6
+byte~ main::$7
+byte~ main::$8
+byte~ main::$9
+constant word* const main::SCREEN = (word*)$400
+byte main::i
+byte main::i#0
+byte main::i#1
+byte main::i#2
+byte main::i#3
+byte main::i#4
+byte main::i#5
+byte main::i#6
+byte main::i#7
+byte main::j
+byte main::j#0
+byte main::j#1
+byte main::j#2
+byte main::j#3
+word main::w
+word main::w#0
+word main::w#1
+word main::w#2
+constant word* main::ws[]  = { $5ba0, $8707 }
+
+Adding number conversion cast (unumber) 1 in main::$4 = 1
+Adding number conversion cast (unumber) 2 in main::$5 = 2
+Adding number conversion cast (unumber) 2 in main::$2 = main::j#2 < 2
+Adding number conversion cast (unumber) 2 in main::$6 = 2
+Successful SSA optimization PassNAddNumberTypeConversions
+Inlining cast main::$4 = (unumber)1
+Inlining cast main::$5 = (unumber)2
+Inlining cast main::$6 = (unumber)2
+Successful SSA optimization Pass2InlineCast
+Simplifying constant pointer cast (word*) 1024
+Simplifying constant integer cast 1
+Simplifying constant integer cast 2
+Simplifying constant integer cast 2
+Simplifying constant integer cast 2
+Successful SSA optimization PassNCastSimplification
+Finalized unsigned number type (byte) 1
+Finalized unsigned number type (byte) 2
+Finalized unsigned number type (byte) 2
+Finalized unsigned number type (byte) 2
+Successful SSA optimization PassNFinalizeNumberTypeConversions
+Alias main::j#2 = main::j#3 
+Alias main::i#6 = main::i#7 
+Successful SSA optimization Pass2AliasElimination
+Identified duplicate assignment right side [25] main::$12 = main::j#2 * SIZEOF_WORD
+Identified duplicate assignment right side [27] main::$13 = main::j#2 * SIZEOF_WORD
+Successful SSA optimization Pass2DuplicateRValueIdentification
+Simple Condition main::$2 [18] if(main::j#2<2) goto main::@2
+Successful SSA optimization Pass2ConditionalJumpSimplification
+Constant main::w#0 = $3039
+Constant main::i#0 = 0
+Constant main::$4 = 1
+Constant main::$5 = 2
+Constant main::j#0 = 0
+Constant main::$6 = 2
+Successful SSA optimization Pass2ConstantIdentification
+Removing unused procedure __start
+Removing unused procedure block __start
+Removing unused procedure block __start::@1
+Removing unused procedure block __start::@return
+Successful SSA optimization PassNEliminateEmptyStart
+Alias main::$12 = main::$10 main::$13 
+Successful SSA optimization Pass2AliasElimination
+Constant right-side identified [0] main::$7 = main::i#0 * SIZEOF_WORD
+Constant right-side identified [2] main::i#1 = ++ main::i#0
+Constant right-side identified [3] main::w#1 = main::w#0 byte0= main::$4
+Successful SSA optimization Pass2ConstantRValueConsolidation
+Constant main::$7 = main::i#0*SIZEOF_WORD
+Constant main::i#1 = ++main::i#0
+Successful SSA optimization Pass2ConstantIdentification
+Simplifying constant evaluating to zero main::i#0*SIZEOF_WORD in 
+Successful SSA optimization PassNSimplifyConstantZero
+Simplifying expression containing zero main::SCREEN in [1] main::SCREEN[main::$7] = main::w#0
+Successful SSA optimization PassNSimplifyExpressionWithZero
+Eliminating unused constant main::$7
+Successful SSA optimization PassNEliminateUnusedVars
+Adding number conversion cast (unumber) main::w#0&$ffffff00|main::$4 in main::w#1 = main::w#0&$ffffff00|main::$4
+Adding number conversion cast (unumber) main::w#0&$ffffff00 in main::w#1 = ((unumber)) main::w#0&$ffffff00|main::$4
+Adding number conversion cast (unumber) $ffffff00 in main::w#1 = ((unumber)) (unumber)main::w#0&$ffffff00|main::$4
+Successful SSA optimization PassNAddNumberTypeConversions
+Inlining cast main::w#1 = (unumber)(unumber)main::w#0&(unumber)$ffffff00|main::$4
+Successful SSA optimization Pass2InlineCast
+Simplifying constant integer cast (unumber)main::w#0&(unumber)$ffffff00|main::$4
+Simplifying constant integer cast main::w#0&(unumber)$ffffff00
+Simplifying constant integer cast $ffffff00
+Successful SSA optimization PassNCastSimplification
+Finalized unsigned number type (dword) $ffffff00
+Successful SSA optimization PassNFinalizeNumberTypeConversions
+Constant right-side identified [2] main::$8 = main::i#1 * SIZEOF_WORD
+Constant right-side identified [4] main::i#2 = ++ main::i#1
+Successful SSA optimization Pass2ConstantRValueConsolidation
+Constant main::w#1 = main::w#0&$ffffff00|main::$4
+Constant main::$8 = main::i#1*SIZEOF_WORD
+Constant main::i#2 = ++main::i#1
+Successful SSA optimization Pass2ConstantIdentification
+Constant right-side identified [2] main::w#2 = main::w#1 byte1= main::$5
+Constant right-side identified [3] main::$9 = main::i#2 * SIZEOF_WORD
+Constant right-side identified [5] main::i#3 = ++ main::i#2
+Successful SSA optimization Pass2ConstantRValueConsolidation
+Constant main::$9 = main::i#2*SIZEOF_WORD
+Constant main::i#3 = ++main::i#2
+Successful SSA optimization Pass2ConstantIdentification
+Adding number conversion cast (unumber) main::w#1&$ffff00ff|main::$5*$100 in main::w#2 = main::w#1&$ffff00ff|main::$5*$100
+Adding number conversion cast (unumber) $ffff00ff in main::w#2 = ((unumber)) main::w#1&$ffff00ff|main::$5*$100
+Adding number conversion cast (unumber) $100 in main::w#2 = ((unumber)) main::w#1&(unumber)$ffff00ff|main::$5*$100
+Successful SSA optimization PassNAddNumberTypeConversions
+Inlining cast main::w#2 = (unumber)main::w#1&(unumber)$ffff00ff|main::$5*(unumber)$100
+Successful SSA optimization Pass2InlineCast
+Simplifying constant integer cast main::w#1&(unumber)$ffff00ff|main::$5*(unumber)$100
+Simplifying constant integer cast $ffff00ff
+Simplifying constant integer cast $100
+Successful SSA optimization PassNCastSimplification
+Finalized unsigned number type (dword) $ffff00ff
+Finalized unsigned number type (word) $100
+Successful SSA optimization PassNFinalizeNumberTypeConversions
+Constant main::w#2 = main::w#1&$ffff00ff|main::$5*$100
+Successful SSA optimization Pass2ConstantIdentification
+Rewriting multiplication to use shift [5] main::$12 = main::j#2 * SIZEOF_WORD
+Rewriting multiplication to use shift [6] main::$11 = main::i#6 * SIZEOF_WORD
+Rewriting multiplication to use shift [10] main::$14 = main::i#4 * SIZEOF_WORD
+Successful SSA optimization Pass2MultiplyToShiftRewriting
+Inlining constant with different constant siblings main::w#0
+Inlining constant with var siblings main::i#0
+Inlining constant with var siblings main::j#0
+Inlining constant with var siblings main::i#1
+Inlining constant with different constant siblings main::w#1
+Inlining constant with var siblings main::i#2
+Inlining constant with var siblings main::i#3
+Inlining constant with different constant siblings main::w#2
+Constant inlined main::i#3 = ++++++0
+Constant inlined main::w#1 = $3039&$ffffff00|1
+Constant inlined main::w#2 = $3039&$ffffff00|1&$ffff00ff|2*$100
+Constant inlined main::w#0 = $3039
+Constant inlined main::$5 = 2
+Constant inlined main::i#0 = 0
+Constant inlined main::$6 = 2
+Constant inlined main::i#2 = ++++0
+Constant inlined main::$4 = 1
+Constant inlined main::j#0 = 0
+Constant inlined main::i#1 = ++0
+Constant inlined main::$9 = ++++0*SIZEOF_WORD
+Constant inlined main::$8 = ++0*SIZEOF_WORD
+Successful SSA optimization Pass2ConstantInlining
+Consolidated array index constant in *(main::SCREEN+++0*SIZEOF_WORD)
+Consolidated array index constant in *(main::SCREEN+++++0*SIZEOF_WORD)
+Successful SSA optimization Pass2ConstantAdditionElimination
+Simplifying constant integer increment ++0
+Simplifying constant integer increment ++0
+Simplifying constant integer increment ++1
+Successful SSA optimization Pass2ConstantSimplification
+Simplifying constant integer increment ++1
+Simplifying constant integer increment ++2
+Successful SSA optimization Pass2ConstantSimplification
+CALL GRAPH
+
+Created 2 initial phi equivalence classes
+Coalesced [15] main::j#4 = main::j#1
+Coalesced [16] main::i#8 = main::i#5
+Coalesced down to 2 phi equivalence classes
+
+FINAL CONTROL FLOW GRAPH
+
+void main()
+main: scope:[main]  from
+  [0] *main::SCREEN = $3039
+  [1] *(main::SCREEN+1*SIZEOF_WORD) = $3039&$ffffff00|1
+  [2] *(main::SCREEN+2*SIZEOF_WORD) = $3039&$ffffff00|1&$ffff00ff|2*$100
+  to:main::@1
+main::@1: scope:[main]  from main main::@2
+  [3] main::i#6 = phi( main/3, main::@2/main::i#5 )
+  [3] main::j#2 = phi( main/0, main::@2/main::j#1 )
+  [4] if(main::j#2<2) goto main::@2
+  to:main::@return
+main::@return: scope:[main]  from main::@1
+  [5] return 
+  to:@return
+main::@2: scope:[main]  from main::@1
+  [6] main::$12 = main::j#2 << 1
+  [7] main::$11 = main::i#6 << 1
+  [8] main::SCREEN[main::$11] = main::ws[main::$12]
+  [9] main::i#4 = ++ main::i#6
+  [10] main::ws[main::$12] = main::ws[main::$12] byte0= 2
+  [11] main::$14 = main::i#4 << 1
+  [12] main::SCREEN[main::$14] = main::ws[main::$12]
+  [13] main::i#5 = ++ main::i#4
+  [14] main::j#1 = ++ main::j#2
+  to:main::@1
+
+
+VARIABLE REGISTER WEIGHTS
+void main()
+byte~ main::$11 22.0
+byte~ main::$12 9.166666666666666
+byte~ main::$14 22.0
+byte main::i
+byte main::i#4 8.25
+byte main::i#5 11.0
+byte main::i#6 6.6000000000000005
+byte main::j
+byte main::j#1 22.0
+byte main::j#2 4.4
+word main::w
+
+Initial phi equivalence classes
+[ main::j#2 main::j#1 ]
+[ main::i#6 main::i#5 ]
+Added variable main::$12 to live range equivalence class [ main::$12 ]
+Added variable main::$11 to live range equivalence class [ main::$11 ]
+Added variable main::i#4 to live range equivalence class [ main::i#4 ]
+Added variable main::$14 to live range equivalence class [ main::$14 ]
+Complete equivalence classes
+[ main::j#2 main::j#1 ]
+[ main::i#6 main::i#5 ]
+[ main::$12 ]
+[ main::$11 ]
+[ main::i#4 ]
+[ main::$14 ]
+Allocated zp[1]:2 [ main::j#2 main::j#1 ]
+Allocated zp[1]:3 [ main::i#6 main::i#5 ]
+Allocated zp[1]:4 [ main::$12 ]
+Allocated zp[1]:5 [ main::$11 ]
+Allocated zp[1]:6 [ main::i#4 ]
+Allocated zp[1]:7 [ main::$14 ]
+REGISTER UPLIFT POTENTIAL REGISTERS
+Statement [0] *main::SCREEN = $3039 [ ] (  [ ] { }  ) always clobbers reg byte a 
+Statement [1] *(main::SCREEN+1*SIZEOF_WORD) = $3039&$ffffff00|1 [ ] (  [ ] { }  ) always clobbers reg byte a 
+Statement [2] *(main::SCREEN+2*SIZEOF_WORD) = $3039&$ffffff00|1&$ffff00ff|2*$100 [ ] (  [ ] { }  ) always clobbers reg byte a 
+Statement [6] main::$12 = main::j#2 << 1 [ main::j#2 main::i#6 main::$12 ] (  [ main::j#2 main::i#6 main::$12 ] { }  ) always clobbers reg byte a 
+Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::j#2 main::j#1 ]
+Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::i#6 main::i#5 ]
+Statement [7] main::$11 = main::i#6 << 1 [ main::j#2 main::i#6 main::$12 main::$11 ] (  [ main::j#2 main::i#6 main::$12 main::$11 ] { }  ) always clobbers reg byte a 
+Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::$12 ]
+Statement [8] main::SCREEN[main::$11] = main::ws[main::$12] [ main::j#2 main::i#6 main::$12 ] (  [ main::j#2 main::i#6 main::$12 ] { }  ) always clobbers reg byte a 
+Statement [10] main::ws[main::$12] = main::ws[main::$12] byte0= 2 [ main::j#2 main::$12 main::i#4 ] (  [ main::j#2 main::$12 main::i#4 ] { }  ) always clobbers reg byte a 
+Removing always clobbered register reg byte a as potential for zp[1]:6 [ main::i#4 ]
+Statement [11] main::$14 = main::i#4 << 1 [ main::j#2 main::$12 main::i#4 main::$14 ] (  [ main::j#2 main::$12 main::i#4 main::$14 ] { }  ) always clobbers reg byte a 
+Statement [12] main::SCREEN[main::$14] = main::ws[main::$12] [ main::j#2 main::i#4 ] (  [ main::j#2 main::i#4 ] { }  ) always clobbers reg byte a 
+Statement [0] *main::SCREEN = $3039 [ ] (  [ ] { }  ) always clobbers reg byte a 
+Statement [1] *(main::SCREEN+1*SIZEOF_WORD) = $3039&$ffffff00|1 [ ] (  [ ] { }  ) always clobbers reg byte a 
+Statement [2] *(main::SCREEN+2*SIZEOF_WORD) = $3039&$ffffff00|1&$ffff00ff|2*$100 [ ] (  [ ] { }  ) always clobbers reg byte a 
+Statement [6] main::$12 = main::j#2 << 1 [ main::j#2 main::i#6 main::$12 ] (  [ main::j#2 main::i#6 main::$12 ] { }  ) always clobbers reg byte a 
+Statement [7] main::$11 = main::i#6 << 1 [ main::j#2 main::i#6 main::$12 main::$11 ] (  [ main::j#2 main::i#6 main::$12 main::$11 ] { }  ) always clobbers reg byte a 
+Statement [8] main::SCREEN[main::$11] = main::ws[main::$12] [ main::j#2 main::i#6 main::$12 ] (  [ main::j#2 main::i#6 main::$12 ] { }  ) always clobbers reg byte a 
+Statement [10] main::ws[main::$12] = main::ws[main::$12] byte0= 2 [ main::j#2 main::$12 main::i#4 ] (  [ main::j#2 main::$12 main::i#4 ] { }  ) always clobbers reg byte a 
+Statement [11] main::$14 = main::i#4 << 1 [ main::j#2 main::$12 main::i#4 main::$14 ] (  [ main::j#2 main::$12 main::i#4 main::$14 ] { }  ) always clobbers reg byte a 
+Statement [12] main::SCREEN[main::$14] = main::ws[main::$12] [ main::j#2 main::i#4 ] (  [ main::j#2 main::i#4 ] { }  ) always clobbers reg byte a 
+Potential registers zp[1]:2 [ main::j#2 main::j#1 ] : zp[1]:2 , reg byte x , reg byte y , 
+Potential registers zp[1]:3 [ main::i#6 main::i#5 ] : zp[1]:3 , reg byte x , reg byte y , 
+Potential registers zp[1]:4 [ main::$12 ] : zp[1]:4 , reg byte x , reg byte y , 
+Potential registers zp[1]:5 [ main::$11 ] : zp[1]:5 , reg byte a , reg byte x , reg byte y , 
+Potential registers zp[1]:6 [ main::i#4 ] : zp[1]:6 , reg byte x , reg byte y , 
+Potential registers zp[1]:7 [ main::$14 ] : zp[1]:7 , reg byte a , reg byte x , reg byte y , 
+
+REGISTER UPLIFT SCOPES
+Uplift Scope [main] 26.4: zp[1]:2 [ main::j#2 main::j#1 ] 22: zp[1]:5 [ main::$11 ] 22: zp[1]:7 [ main::$14 ] 17.6: zp[1]:3 [ main::i#6 main::i#5 ] 9.17: zp[1]:4 [ main::$12 ] 8.25: zp[1]:6 [ main::i#4 ] 
+Uplift Scope [] 
+
+Uplifting [main] best 1277 combination zp[1]:2 [ main::j#2 main::j#1 ] reg byte a [ main::$11 ] reg byte a [ main::$14 ] zp[1]:3 [ main::i#6 main::i#5 ] zp[1]:4 [ main::$12 ] zp[1]:6 [ main::i#4 ] 
+Limited combination testing to 100 combinations of 1296 possible.
+Uplifting [] best 1277 combination 
+Attempting to uplift remaining variables inzp[1]:2 [ main::j#2 main::j#1 ]
+Uplifting [main] best 1277 combination zp[1]:2 [ main::j#2 main::j#1 ] 
+Attempting to uplift remaining variables inzp[1]:3 [ main::i#6 main::i#5 ]
+Uplifting [main] best 1277 combination zp[1]:3 [ main::i#6 main::i#5 ] 
+Attempting to uplift remaining variables inzp[1]:4 [ main::$12 ]
+Uplifting [main] best 1177 combination reg byte x [ main::$12 ] 
+Attempting to uplift remaining variables inzp[1]:6 [ main::i#4 ]
+Uplifting [main] best 1177 combination zp[1]:6 [ main::i#4 ] 
+Coalescing zero page register [ zp[1]:3 [ main::i#6 main::i#5 ] ] with [ zp[1]:6 [ main::i#4 ] ] - score: 2
+
+ASSEMBLER BEFORE OPTIMIZATION
+  // File Comments
+// Test using operator byte0() in an lvalue
+  // Upstart
+  // Commodore 64 PRG executable file
+.file [name="operator-byte0-lvalue-1.prg", type="prg", segments="Program"]
+.segmentdef Program [segments="Basic, Code, Data"]
+.segmentdef Basic [start=$0801]
+.segmentdef Code [start=$80d]
+.segmentdef Data [startAfter="Code"]
+.segment Basic
+:BasicUpstart(main)
+  // Global Constants & labels
+  .const SIZEOF_WORD = 2
+.segment Code
+  // main
+main: {
+    .label SCREEN = $400
+    .label i = 3
+    .label j = 2
+    // [0] *main::SCREEN = $3039 -- _deref_pwuc1=vwuc2 
+    lda #<$3039
+    sta SCREEN
+    lda #>$3039
+    sta SCREEN+1
+    // [1] *(main::SCREEN+1*SIZEOF_WORD) = $3039&$ffffff00|1 -- _deref_pwuc1=vwuc2 
+    lda #<$3039&$ffffff00|1
+    sta SCREEN+1*SIZEOF_WORD
+    lda #>$3039&$ffffff00|1
+    sta SCREEN+1*SIZEOF_WORD+1
+    // [2] *(main::SCREEN+2*SIZEOF_WORD) = $3039&$ffffff00|1&$ffff00ff|2*$100 -- _deref_pwuc1=vwuc2 
+    lda #<($3039&$ffffff00|1)&$ffff00ff|2*$100
+    sta SCREEN+2*SIZEOF_WORD
+    lda #>($3039&$ffffff00|1)&$ffff00ff|2*$100
+    sta SCREEN+2*SIZEOF_WORD+1
+    // [3] phi from main to main::@1 [phi:main->main::@1]
+  __b1_from_main:
+    // [3] phi main::i#6 = 3 [phi:main->main::@1#0] -- vbuz1=vbuc1 
+    lda #3
+    sta.z i
+    // [3] phi main::j#2 = 0 [phi:main->main::@1#1] -- vbuz1=vbuc1 
+    lda #0
+    sta.z j
+    jmp __b1
+    // main::@1
+  __b1:
+    // [4] if(main::j#2<2) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 
+    lda.z j
+    cmp #2
+    bcc __b2
+    jmp __breturn
+    // main::@return
+  __breturn:
+    // [5] return 
+    rts
+    // main::@2
+  __b2:
+    // [6] main::$12 = main::j#2 << 1 -- vbuxx=vbuz1_rol_1 
+    lda.z j
+    asl
+    tax
+    // [7] main::$11 = main::i#6 << 1 -- vbuaa=vbuz1_rol_1 
+    lda.z i
+    asl
+    // [8] main::SCREEN[main::$11] = main::ws[main::$12] -- pwuc1_derefidx_vbuaa=pwuc2_derefidx_vbuxx 
+    tay
+    lda ws,x
+    sta SCREEN,y
+    lda ws+1,x
+    sta SCREEN+1,y
+    // [9] main::i#4 = ++ main::i#6 -- vbuz1=_inc_vbuz1 
+    inc.z i
+    // [10] main::ws[main::$12] = main::ws[main::$12] byte0= 2 -- pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_setbyte0_vbuc2 
+    lda #2
+    sta ws,x
+    // [11] main::$14 = main::i#4 << 1 -- vbuaa=vbuz1_rol_1 
+    lda.z i
+    asl
+    // [12] main::SCREEN[main::$14] = main::ws[main::$12] -- pwuc1_derefidx_vbuaa=pwuc2_derefidx_vbuxx 
+    tay
+    lda ws,x
+    sta SCREEN,y
+    lda ws+1,x
+    sta SCREEN+1,y
+    // [13] main::i#5 = ++ main::i#4 -- vbuz1=_inc_vbuz1 
+    inc.z i
+    // [14] main::j#1 = ++ main::j#2 -- vbuz1=_inc_vbuz1 
+    inc.z j
+    // [3] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
+  __b1_from___b2:
+    // [3] phi main::i#6 = main::i#5 [phi:main::@2->main::@1#0] -- register_copy 
+    // [3] phi main::j#2 = main::j#1 [phi:main::@2->main::@1#1] -- register_copy 
+    jmp __b1
+  .segment Data
+    ws: .word $5ba0, $8707
+}
+  // File Data
+
+ASSEMBLER OPTIMIZATIONS
+Removing instruction jmp __b1
+Removing instruction jmp __breturn
+Succesful ASM optimization Pass5NextJumpElimination
+Removing instruction __b1_from_main:
+Removing instruction __breturn:
+Removing instruction __b1_from___b2:
+Succesful ASM optimization Pass5UnusedLabelElimination
+
+FINAL SYMBOL TABLE
+constant byte SIZEOF_WORD = 2
+void main()
+byte~ main::$11 reg byte a 22.0
+byte~ main::$12 reg byte x 9.166666666666666
+byte~ main::$14 reg byte a 22.0
+constant word* const main::SCREEN = (word*) 1024
+byte main::i
+byte main::i#4 i zp[1]:3 8.25
+byte main::i#5 i zp[1]:3 11.0
+byte main::i#6 i zp[1]:3 6.6000000000000005
+byte main::j
+byte main::j#1 j zp[1]:2 22.0
+byte main::j#2 j zp[1]:2 4.4
+word main::w
+constant word* main::ws[]  = { $5ba0, $8707 }
+
+zp[1]:2 [ main::j#2 main::j#1 ]
+zp[1]:3 [ main::i#6 main::i#5 main::i#4 ]
+reg byte x [ main::$12 ]
+reg byte a [ main::$11 ]
+reg byte a [ main::$14 ]
+
+
+FINAL ASSEMBLER
+Score: 1057
+
+  // File Comments
+// Test using operator byte0() in an lvalue
+  // Upstart
+  // Commodore 64 PRG executable file
+.file [name="operator-byte0-lvalue-1.prg", type="prg", segments="Program"]
+.segmentdef Program [segments="Basic, Code, Data"]
+.segmentdef Basic [start=$0801]
+.segmentdef Code [start=$80d]
+.segmentdef Data [startAfter="Code"]
+.segment Basic
+:BasicUpstart(main)
+  // Global Constants & labels
+  .const SIZEOF_WORD = 2
+.segment Code
+  // main
+main: {
+    .label SCREEN = $400
+    .label i = 3
+    .label j = 2
+    // SCREEN[i++] = w
+    // [0] *main::SCREEN = $3039 -- _deref_pwuc1=vwuc2 
+    lda #<$3039
+    sta SCREEN
+    lda #>$3039
+    sta SCREEN+1
+    // [1] *(main::SCREEN+1*SIZEOF_WORD) = $3039&$ffffff00|1 -- _deref_pwuc1=vwuc2 
+    lda #<$3039&$ffffff00|1
+    sta SCREEN+1*SIZEOF_WORD
+    lda #>$3039&$ffffff00|1
+    sta SCREEN+1*SIZEOF_WORD+1
+    // [2] *(main::SCREEN+2*SIZEOF_WORD) = $3039&$ffffff00|1&$ffff00ff|2*$100 -- _deref_pwuc1=vwuc2 
+    lda #<($3039&$ffffff00|1)&$ffff00ff|2*$100
+    sta SCREEN+2*SIZEOF_WORD
+    lda #>($3039&$ffffff00|1)&$ffff00ff|2*$100
+    sta SCREEN+2*SIZEOF_WORD+1
+    // [3] phi from main to main::@1 [phi:main->main::@1]
+    // [3] phi main::i#6 = 3 [phi:main->main::@1#0] -- vbuz1=vbuc1 
+    lda #3
+    sta.z i
+    // [3] phi main::j#2 = 0 [phi:main->main::@1#1] -- vbuz1=vbuc1 
+    lda #0
+    sta.z j
+    // main::@1
+  __b1:
+    // for(char j=0;j<2;j++)
+    // [4] if(main::j#2<2) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 
+    lda.z j
+    cmp #2
+    bcc __b2
+    // main::@return
+    // }
+    // [5] return 
+    rts
+    // main::@2
+  __b2:
+    // SCREEN[i++] = ws[j]
+    // [6] main::$12 = main::j#2 << 1 -- vbuxx=vbuz1_rol_1 
+    lda.z j
+    asl
+    tax
+    // [7] main::$11 = main::i#6 << 1 -- vbuaa=vbuz1_rol_1 
+    lda.z i
+    asl
+    // [8] main::SCREEN[main::$11] = main::ws[main::$12] -- pwuc1_derefidx_vbuaa=pwuc2_derefidx_vbuxx 
+    tay
+    lda ws,x
+    sta SCREEN,y
+    lda ws+1,x
+    sta SCREEN+1,y
+    // SCREEN[i++] = ws[j];
+    // [9] main::i#4 = ++ main::i#6 -- vbuz1=_inc_vbuz1 
+    inc.z i
+    // BYTE0(ws[j]) = 2
+    // [10] main::ws[main::$12] = main::ws[main::$12] byte0= 2 -- pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_setbyte0_vbuc2 
+    lda #2
+    sta ws,x
+    // SCREEN[i++] = ws[j]
+    // [11] main::$14 = main::i#4 << 1 -- vbuaa=vbuz1_rol_1 
+    lda.z i
+    asl
+    // [12] main::SCREEN[main::$14] = main::ws[main::$12] -- pwuc1_derefidx_vbuaa=pwuc2_derefidx_vbuxx 
+    tay
+    lda ws,x
+    sta SCREEN,y
+    lda ws+1,x
+    sta SCREEN+1,y
+    // SCREEN[i++] = ws[j];
+    // [13] main::i#5 = ++ main::i#4 -- vbuz1=_inc_vbuz1 
+    inc.z i
+    // for(char j=0;j<2;j++)
+    // [14] main::j#1 = ++ main::j#2 -- vbuz1=_inc_vbuz1 
+    inc.z j
+    // [3] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
+    // [3] phi main::i#6 = main::i#5 [phi:main::@2->main::@1#0] -- register_copy 
+    // [3] phi main::j#2 = main::j#1 [phi:main::@2->main::@1#1] -- register_copy 
+    jmp __b1
+  .segment Data
+    ws: .word $5ba0, $8707
+}
+  // File Data
+
diff --git a/src/test/ref/operator-byte0-lvalue-1.sym b/src/test/ref/operator-byte0-lvalue-1.sym
new file mode 100644
index 000000000..5a82cae62
--- /dev/null
+++ b/src/test/ref/operator-byte0-lvalue-1.sym
@@ -0,0 +1,21 @@
+constant byte SIZEOF_WORD = 2
+void main()
+byte~ main::$11 reg byte a 22.0
+byte~ main::$12 reg byte x 9.166666666666666
+byte~ main::$14 reg byte a 22.0
+constant word* const main::SCREEN = (word*) 1024
+byte main::i
+byte main::i#4 i zp[1]:3 8.25
+byte main::i#5 i zp[1]:3 11.0
+byte main::i#6 i zp[1]:3 6.6000000000000005
+byte main::j
+byte main::j#1 j zp[1]:2 22.0
+byte main::j#2 j zp[1]:2 4.4
+word main::w
+constant word* main::ws[]  = { $5ba0, $8707 }
+
+zp[1]:2 [ main::j#2 main::j#1 ]
+zp[1]:3 [ main::i#6 main::i#5 main::i#4 ]
+reg byte x [ main::$12 ]
+reg byte a [ main::$11 ]
+reg byte a [ main::$14 ]
diff --git a/src/test/ref/test-lowhigh.asm b/src/test/ref/test-lowhigh.asm
index 2dbdc10d6..082eaad5d 100644
--- a/src/test/ref/test-lowhigh.asm
+++ b/src/test/ref/test-lowhigh.asm
@@ -9,21 +9,17 @@
 .segment Basic
 :BasicUpstart(main)
   .label print_screen = $400
-  .label print_line_cursor = $10
-  .label print_char_cursor = $e
-  .label print_char_cursor_1 = $10
+  .label print_line_cursor = 8
+  .label print_char_cursor = $10
+  .label print_char_cursor_1 = 8
   .label print_line_cursor_1 = 6
 .segment Code
 main: {
-    .label __3 = 8
-    .label __6 = $e
-    .label __16 = $10
-    .label __20 = $12
-    .label __24 = $14
-    .label __28 = $16
-    .label __32 = 8
-    .label __33 = $e
-    .label dw2 = $a
+    .label __3 = $a
+    .label __6 = $10
+    .label __28 = $a
+    .label __29 = $10
+    .label dw2 = $c
     .label dw = 2
     // print_cls()
     jsr print_cls
@@ -60,43 +56,43 @@ main: {
     // }
     rts
   __b2:
-    // >dw
+    // WORD1(dw)
     lda.z dw+2
     sta.z __3
     lda.z dw+3
     sta.z __3+1
-    // >dw2 = (>dw) + $1111
+    // WORD1(dw2) = WORD1(dw) + $1111
     clc
-    lda.z __32
+    lda.z __28
     adc #<$1111
-    sta.z __32
-    lda.z __32+1
+    sta.z __28
+    lda.z __28+1
     adc #>$1111
-    sta.z __32+1
+    sta.z __28+1
     lda.z dw
     sta.z dw2
     lda.z dw+1
     sta.z dw2+1
-    lda.z __32
+    lda.z __28
     sta.z dw2+2
-    lda.z __32+1
+    lda.z __28+1
     sta.z dw2+3
-    // <dw
+    // WORD0(dw)
     lda.z dw
     sta.z __6
     lda.z dw+1
     sta.z __6+1
-    // <dw2 = (<dw) + $1111
+    // WORD0(dw2) = WORD0(dw) + $1111
     clc
-    lda.z __33
+    lda.z __29
     adc #<$1111
-    sta.z __33
-    lda.z __33+1
+    sta.z __29
+    lda.z __29+1
     adc #>$1111
-    sta.z __33+1
-    lda.z __33
+    sta.z __29+1
+    lda.z __29
     sta.z dw2
-    lda.z __33+1
+    lda.z __29+1
     sta.z dw2+1
     // print_ulong(dw2)
     // Test set/get low word of dword
@@ -104,7 +100,7 @@ main: {
     // print_char(' ')
     lda #' '
     jsr print_char
-    // print_uint(>dw2)
+    // print_uint(WORD1(dw2))
     lda.z dw2+2
     sta.z print_uint.w
     lda.z dw2+3
@@ -114,7 +110,7 @@ main: {
   // Test get high word of dword
     lda #' '
     jsr print_char
-    // print_uint(<dw2)
+    // print_uint(WORD0(dw2))
     lda.z dw2
     sta.z print_uint.w
     lda.z dw2+1
@@ -124,49 +120,29 @@ main: {
   // Test get low word of dword
     lda #' '
     jsr print_char
-    // >dw2
-    lda.z dw2+2
-    sta.z __16
-    lda.z dw2+3
-    sta.z __16+1
-    // print_uchar(> >dw2)
-    tax
+    // print_uchar(BYTE3(dw2))
+    ldx.z dw2+3
     jsr print_uchar
     // print_char(' ')
   // Test get high high byte of dword
     lda #' '
     jsr print_char
-    // >dw2
-    lda.z dw2+2
-    sta.z __20
-    lda.z dw2+3
-    sta.z __20+1
-    // print_uchar(< >dw2)
-    ldx.z __20
+    // print_uchar(BYTE2(dw2))
+    ldx.z dw2+2
     jsr print_uchar
     // print_char(' ')
   // Test get low high byte of dword
     lda #' '
     jsr print_char
-    // <dw2
-    lda.z dw2
-    sta.z __24
-    lda.z dw2+1
-    sta.z __24+1
-    // print_uchar(> <dw2)
-    tax
+    // print_uchar(BYTE1(dw2))
+    ldx.z dw2+1
     jsr print_uchar
     // print_char(' ')
   // Test get high low byte of dword
     lda #' '
     jsr print_char
-    // <dw2
-    lda.z dw2
-    sta.z __28
-    lda.z dw2+1
-    sta.z __28+1
-    // print_uchar(< <dw2)
-    ldx.z __28
+    // print_uchar(BYTE0(dw2))
+    ldx.z dw2
     jsr print_uchar
     // print_ln()
   // Test get low low byte of dword
@@ -194,9 +170,9 @@ print_cls: {
     rts
 }
 // Print a unsigned long as HEX
-// print_ulong(dword zp($a) dw)
+// print_ulong(dword zp($c) dw)
 print_ulong: {
-    .label dw = $a
+    .label dw = $c
     // print_uint(>dw)
     lda.z dw+2
     sta.z print_uint.w
@@ -232,9 +208,9 @@ print_char: {
     rts
 }
 // Print a unsigned int as HEX
-// print_uint(word zp(8) w)
+// print_uint(word zp($a) w)
 print_uint: {
-    .label w = 8
+    .label w = $a
     // print_uchar(>w)
     ldx.z w+1
     jsr print_uchar
@@ -301,7 +277,7 @@ memset: {
     .const num = $3e8
     .label str = print_screen
     .label end = str+num
-    .label dst = $10
+    .label dst = 8
     lda #<str
     sta.z dst
     lda #>str
diff --git a/src/test/ref/test-lowhigh.cfg b/src/test/ref/test-lowhigh.cfg
index 4d5679a56..bf78ff6ee 100644
--- a/src/test/ref/test-lowhigh.cfg
+++ b/src/test/ref/test-lowhigh.cfg
@@ -14,12 +14,12 @@ main::@return: scope:[main]  from main::@1
   [4] return 
   to:@return
 main::@2: scope:[main]  from main::@1
-  [5] main::$3 = > main::dw#10
-  [6] main::$32 = main::$3 + $1111
-  [7] main::dw2#1 = main::dw#10 hi= main::$32
-  [8] main::$6 = < main::dw#10
-  [9] main::$33 = main::$6 + $1111
-  [10] main::dw2#10 = main::dw2#1 lo= main::$33
+  [5] main::$3 = _word1_ main::dw#10
+  [6] main::$28 = main::$3 + $1111
+  [7] main::dw2#1 = main::dw#10 word1= main::$28
+  [8] main::$6 = _word0_ main::dw#10
+  [9] main::$29 = main::$6 + $1111
+  [10] main::dw2#10 = main::dw2#1 word0= main::$29
   [11] print_ulong::dw#0 = main::dw2#10
   [12] call print_ulong 
   to:main::@3
@@ -28,7 +28,7 @@ main::@3: scope:[main]  from main::@2
   [14] call print_char 
   to:main::@4
 main::@4: scope:[main]  from main::@3
-  [15] print_uint::w#2 = > main::dw2#10
+  [15] print_uint::w#2 = _word1_ main::dw2#10
   [16] call print_uint 
   to:main::@5
 main::@5: scope:[main]  from main::@4
@@ -36,7 +36,7 @@ main::@5: scope:[main]  from main::@4
   [18] call print_char 
   to:main::@6
 main::@6: scope:[main]  from main::@5
-  [19] print_uint::w#3 = < main::dw2#10
+  [19] print_uint::w#3 = _word0_ main::dw2#10
   [20] call print_uint 
   to:main::@7
 main::@7: scope:[main]  from main::@6
@@ -44,140 +44,136 @@ main::@7: scope:[main]  from main::@6
   [22] call print_char 
   to:main::@8
 main::@8: scope:[main]  from main::@7
-  [23] main::$16 = > main::dw2#10
-  [24] print_uchar::b#2 = > main::$16
-  [25] call print_uchar 
+  [23] print_uchar::b#2 = _byte3_ main::dw2#10
+  [24] call print_uchar 
   to:main::@9
 main::@9: scope:[main]  from main::@8
-  [26] phi()
-  [27] call print_char 
+  [25] phi()
+  [26] call print_char 
   to:main::@10
 main::@10: scope:[main]  from main::@9
-  [28] main::$20 = > main::dw2#10
-  [29] print_uchar::b#3 = < main::$20
-  [30] call print_uchar 
+  [27] print_uchar::b#3 = _byte2_ main::dw2#10
+  [28] call print_uchar 
   to:main::@11
 main::@11: scope:[main]  from main::@10
-  [31] phi()
-  [32] call print_char 
+  [29] phi()
+  [30] call print_char 
   to:main::@12
 main::@12: scope:[main]  from main::@11
-  [33] main::$24 = < main::dw2#10
-  [34] print_uchar::b#4 = > main::$24
-  [35] call print_uchar 
+  [31] print_uchar::b#4 = > main::dw2#10
+  [32] call print_uchar 
   to:main::@13
 main::@13: scope:[main]  from main::@12
-  [36] phi()
-  [37] call print_char 
+  [33] phi()
+  [34] call print_char 
   to:main::@14
 main::@14: scope:[main]  from main::@13
-  [38] main::$28 = < main::dw2#10
-  [39] print_uchar::b#5 = < main::$28
-  [40] call print_uchar 
+  [35] print_uchar::b#5 = < main::dw2#10
+  [36] call print_uchar 
   to:main::@15
 main::@15: scope:[main]  from main::@14
-  [41] phi()
-  [42] call print_ln 
+  [37] phi()
+  [38] call print_ln 
   to:main::@16
 main::@16: scope:[main]  from main::@15
-  [43] main::dw#1 = ++ main::dw#10
-  [44] print_line_cursor#39 = print_line_cursor#0
+  [39] main::dw#1 = ++ main::dw#10
+  [40] print_line_cursor#39 = print_line_cursor#0
   to:main::@1
 
 void print_cls()
 print_cls: scope:[print_cls]  from main
-  [45] phi()
-  [46] call memset 
+  [41] phi()
+  [42] call memset 
   to:print_cls::@return
 print_cls::@return: scope:[print_cls]  from print_cls
-  [47] return 
+  [43] return 
   to:@return
 
 void print_ulong(dword print_ulong::dw)
 print_ulong: scope:[print_ulong]  from main::@2
-  [48] print_uint::w#0 = > print_ulong::dw#0
-  [49] print_char_cursor#76 = print_char_cursor#30
-  [50] call print_uint 
+  [44] print_uint::w#0 = > print_ulong::dw#0
+  [45] print_char_cursor#76 = print_char_cursor#30
+  [46] call print_uint 
   to:print_ulong::@1
 print_ulong::@1: scope:[print_ulong]  from print_ulong
-  [51] print_uint::w#1 = < print_ulong::dw#0
-  [52] call print_uint 
+  [47] print_uint::w#1 = < print_ulong::dw#0
+  [48] call print_uint 
   to:print_ulong::@return
 print_ulong::@return: scope:[print_ulong]  from print_ulong::@1
-  [53] return 
+  [49] return 
   to:@return
 
 void print_char(byte print_char::ch)
 print_char: scope:[print_char]  from main::@11 main::@13 main::@3 main::@5 main::@7 main::@9 print_uchar print_uchar::@1
-  [54] print_char_cursor#45 = phi( main::@9/print_char_cursor#11, main::@11/print_char_cursor#11, main::@13/print_char_cursor#11, main::@3/print_char_cursor#11, main::@5/print_char_cursor#11, main::@7/print_char_cursor#11, print_uchar/print_char_cursor#69, print_uchar::@1/print_char_cursor#11 )
-  [54] print_char::ch#8 = phi( main::@9/' ', main::@11/' ', main::@13/' ', main::@3/' ', main::@5/' ', main::@7/' ', print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 )
-  [55] *print_char_cursor#45 = print_char::ch#8
-  [56] print_char_cursor#11 = ++ print_char_cursor#45
+  [50] print_char_cursor#45 = phi( main::@9/print_char_cursor#11, main::@11/print_char_cursor#11, main::@13/print_char_cursor#11, main::@3/print_char_cursor#11, main::@5/print_char_cursor#11, main::@7/print_char_cursor#11, print_uchar/print_char_cursor#69, print_uchar::@1/print_char_cursor#11 )
+  [50] print_char::ch#8 = phi( main::@9/' ', main::@11/' ', main::@13/' ', main::@3/' ', main::@5/' ', main::@7/' ', print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 )
+  [51] *print_char_cursor#45 = print_char::ch#8
+  [52] print_char_cursor#11 = ++ print_char_cursor#45
   to:print_char::@return
 print_char::@return: scope:[print_char]  from print_char
-  [57] return 
+  [53] return 
   to:@return
 
 void print_uint(word print_uint::w)
 print_uint: scope:[print_uint]  from main::@4 main::@6 print_ulong print_ulong::@1
-  [58] print_char_cursor#67 = phi( main::@4/print_char_cursor#11, main::@6/print_char_cursor#11, print_ulong/print_char_cursor#76, print_ulong::@1/print_char_cursor#11 )
-  [58] print_uint::w#4 = phi( main::@4/print_uint::w#2, main::@6/print_uint::w#3, print_ulong/print_uint::w#0, print_ulong::@1/print_uint::w#1 )
-  [59] print_uchar::b#0 = > print_uint::w#4
-  [60] call print_uchar 
+  [54] print_char_cursor#67 = phi( main::@4/print_char_cursor#11, main::@6/print_char_cursor#11, print_ulong/print_char_cursor#76, print_ulong::@1/print_char_cursor#11 )
+  [54] print_uint::w#4 = phi( main::@4/print_uint::w#2, main::@6/print_uint::w#3, print_ulong/print_uint::w#0, print_ulong::@1/print_uint::w#1 )
+  [55] print_uchar::b#0 = > print_uint::w#4
+  [56] call print_uchar 
   to:print_uint::@1
 print_uint::@1: scope:[print_uint]  from print_uint
-  [61] print_uchar::b#1 = < print_uint::w#4
-  [62] call print_uchar 
+  [57] print_uchar::b#1 = < print_uint::w#4
+  [58] call print_uchar 
   to:print_uint::@return
 print_uint::@return: scope:[print_uint]  from print_uint::@1
-  [63] return 
+  [59] return 
   to:@return
 
 void print_uchar(byte print_uchar::b)
 print_uchar: scope:[print_uchar]  from main::@10 main::@12 main::@14 main::@8 print_uint print_uint::@1
-  [64] print_char_cursor#69 = phi( main::@10/print_char_cursor#11, main::@12/print_char_cursor#11, main::@14/print_char_cursor#11, main::@8/print_char_cursor#11, print_uint/print_char_cursor#67, print_uint::@1/print_char_cursor#11 )
-  [64] print_uchar::b#6 = phi( main::@10/print_uchar::b#3, main::@12/print_uchar::b#4, main::@14/print_uchar::b#5, main::@8/print_uchar::b#2, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 )
-  [65] print_uchar::$0 = print_uchar::b#6 >> 4
-  [66] print_char::ch#0 = print_hextab[print_uchar::$0]
-  [67] call print_char 
+  [60] print_char_cursor#69 = phi( main::@10/print_char_cursor#11, main::@12/print_char_cursor#11, main::@14/print_char_cursor#11, main::@8/print_char_cursor#11, print_uint/print_char_cursor#67, print_uint::@1/print_char_cursor#11 )
+  [60] print_uchar::b#6 = phi( main::@10/print_uchar::b#3, main::@12/print_uchar::b#4, main::@14/print_uchar::b#5, main::@8/print_uchar::b#2, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 )
+  [61] print_uchar::$0 = print_uchar::b#6 >> 4
+  [62] print_char::ch#0 = print_hextab[print_uchar::$0]
+  [63] call print_char 
   to:print_uchar::@1
 print_uchar::@1: scope:[print_uchar]  from print_uchar
-  [68] print_uchar::$2 = print_uchar::b#6 & $f
-  [69] print_char::ch#1 = print_hextab[print_uchar::$2]
-  [70] call print_char 
+  [64] print_uchar::$2 = print_uchar::b#6 & $f
+  [65] print_char::ch#1 = print_hextab[print_uchar::$2]
+  [66] call print_char 
   to:print_uchar::@return
 print_uchar::@return: scope:[print_uchar]  from print_uchar::@1
-  [71] return 
+  [67] return 
   to:@return
 
 void print_ln()
 print_ln: scope:[print_ln]  from main::@15
-  [72] phi()
+  [68] phi()
   to:print_ln::@1
 print_ln::@1: scope:[print_ln]  from print_ln print_ln::@2
-  [73] print_line_cursor#10 = phi( print_ln/print_line_cursor#16, print_ln::@2/print_line_cursor#38 )
-  [74] print_line_cursor#0 = print_line_cursor#10 + $28
-  [75] if(print_line_cursor#0<print_char_cursor#11) goto print_ln::@2
+  [69] print_line_cursor#10 = phi( print_ln/print_line_cursor#16, print_ln::@2/print_line_cursor#38 )
+  [70] print_line_cursor#0 = print_line_cursor#10 + $28
+  [71] if(print_line_cursor#0<print_char_cursor#11) goto print_ln::@2
   to:print_ln::@return
 print_ln::@return: scope:[print_ln]  from print_ln::@1
-  [76] return 
+  [72] return 
   to:@return
 print_ln::@2: scope:[print_ln]  from print_ln::@1
-  [77] print_line_cursor#38 = print_line_cursor#0
+  [73] print_line_cursor#38 = print_line_cursor#0
   to:print_ln::@1
 
 void* memset(void* memset::str , byte memset::c , word memset::num)
 memset: scope:[memset]  from print_cls
-  [78] phi()
+  [74] phi()
   to:memset::@1
 memset::@1: scope:[memset]  from memset memset::@2
-  [79] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 )
-  [80] if(memset::dst#2!=memset::end#0) goto memset::@2
+  [75] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 )
+  [76] if(memset::dst#2!=memset::end#0) goto memset::@2
   to:memset::@return
 memset::@return: scope:[memset]  from memset::@1
-  [81] return 
+  [77] return 
   to:@return
 memset::@2: scope:[memset]  from memset::@1
-  [82] *memset::dst#2 = memset::c#0
-  [83] memset::dst#1 = ++ memset::dst#2
+  [78] *memset::dst#2 = memset::c#0
+  [79] memset::dst#1 = ++ memset::dst#2
   to:memset::@1
diff --git a/src/test/ref/test-lowhigh.log b/src/test/ref/test-lowhigh.log
index d6af544ca..87601b5ac 100644
--- a/src/test/ref/test-lowhigh.log
+++ b/src/test/ref/test-lowhigh.log
@@ -210,14 +210,14 @@ main::@2: scope:[main]  from main::@1
   print_char_cursor#71 = phi( main::@1/print_char_cursor#72 )
   main::dw#3 = phi( main::@1/main::dw#2 )
   main::dw2#0 = main::dw#3
-  main::$3 = > main::dw#3
+  main::$3 = _word1_ main::dw#3
   main::$4 = main::$3 + $1111
-  main::$32 = main::$4
-  main::dw2#1 = main::dw2#0 hi= main::$32
-  main::$6 = < main::dw#3
+  main::$28 = main::$4
+  main::dw2#1 = main::dw2#0 word1= main::$28
+  main::$6 = _word0_ main::dw#3
   main::$7 = main::$6 + $1111
-  main::$33 = main::$7
-  main::dw2#2 = main::dw2#1 lo= main::$33
+  main::$29 = main::$7
+  main::dw2#2 = main::dw2#1 word0= main::$29
   print_ulong::dw#0 = main::dw2#2
   call print_ulong 
   to:main::@4
@@ -236,7 +236,7 @@ main::@5: scope:[main]  from main::@4
   main::dw2#3 = phi( main::@4/main::dw2#9 )
   print_char_cursor#50 = phi( main::@4/print_char_cursor#12 )
   print_char_cursor#17 = print_char_cursor#50
-  main::$10 = > main::dw2#3
+  main::$10 = _word1_ main::dw2#3
   print_uint::w#2 = main::$10
   call print_uint 
   to:main::@6
@@ -255,7 +255,7 @@ main::@7: scope:[main]  from main::@6
   main::dw2#4 = phi( main::@6/main::dw2#10 )
   print_char_cursor#52 = phi( main::@6/print_char_cursor#12 )
   print_char_cursor#19 = print_char_cursor#52
-  main::$13 = < main::dw2#4
+  main::$13 = _word0_ main::dw2#4
   print_uint::w#3 = main::$13
   call print_uint 
   to:main::@8
@@ -274,9 +274,8 @@ main::@9: scope:[main]  from main::@8
   main::dw2#5 = phi( main::@8/main::dw2#11 )
   print_char_cursor#54 = phi( main::@8/print_char_cursor#12 )
   print_char_cursor#21 = print_char_cursor#54
-  main::$16 = > main::dw2#5
-  main::$17 = > main::$16
-  print_uchar::b#2 = main::$17
+  main::$16 = _byte3_ main::dw2#5
+  print_uchar::b#2 = main::$16
   call print_uchar 
   to:main::@10
 main::@10: scope:[main]  from main::@9
@@ -294,9 +293,8 @@ main::@11: scope:[main]  from main::@10
   main::dw2#6 = phi( main::@10/main::dw2#12 )
   print_char_cursor#56 = phi( main::@10/print_char_cursor#12 )
   print_char_cursor#23 = print_char_cursor#56
-  main::$20 = > main::dw2#6
-  main::$21 = < main::$20
-  print_uchar::b#3 = main::$21
+  main::$19 = _byte2_ main::dw2#6
+  print_uchar::b#3 = main::$19
   call print_uchar 
   to:main::@12
 main::@12: scope:[main]  from main::@11
@@ -314,9 +312,8 @@ main::@13: scope:[main]  from main::@12
   main::dw2#7 = phi( main::@12/main::dw2#13 )
   print_char_cursor#58 = phi( main::@12/print_char_cursor#12 )
   print_char_cursor#25 = print_char_cursor#58
-  main::$24 = < main::dw2#7
-  main::$25 = > main::$24
-  print_uchar::b#4 = main::$25
+  main::$22 = > main::dw2#7
+  print_uchar::b#4 = main::$22
   call print_uchar 
   to:main::@14
 main::@14: scope:[main]  from main::@13
@@ -334,9 +331,8 @@ main::@15: scope:[main]  from main::@14
   main::dw2#8 = phi( main::@14/main::dw2#14 )
   print_char_cursor#60 = phi( main::@14/print_char_cursor#12 )
   print_char_cursor#27 = print_char_cursor#60
-  main::$28 = < main::dw2#8
-  main::$29 = < main::$28
-  print_uchar::b#5 = main::$29
+  main::$25 = < main::dw2#8
+  print_uchar::b#5 = main::$25
   call print_uchar 
   to:main::@16
 main::@16: scope:[main]  from main::@15
@@ -403,17 +399,13 @@ void main()
 bool~ main::$1
 word~ main::$10
 word~ main::$13
-word~ main::$16
-byte~ main::$17
-word~ main::$20
-byte~ main::$21
-word~ main::$24
+byte~ main::$16
+byte~ main::$19
+byte~ main::$22
 byte~ main::$25
 word~ main::$28
-byte~ main::$29
+word~ main::$29
 word~ main::$3
-word~ main::$32
-word~ main::$33
 number~ main::$4
 word~ main::$6
 number~ main::$7
@@ -726,8 +718,8 @@ Alias print_char_cursor#15 = print_char_cursor#48
 Alias main::dw#10 = main::dw#3 main::dw#2 main::dw2#0 main::dw#17 main::dw#16 main::dw#15 main::dw#14 main::dw#13 main::dw#12 main::dw#11 main::dw#9 main::dw#8 main::dw#7 main::dw#6 main::dw#5 main::dw#4 
 Alias print_char_cursor#30 = print_char_cursor#71 print_char_cursor#72 print_char_cursor#63 
 Alias print_line_cursor#16 = print_line_cursor#36 print_line_cursor#22 print_line_cursor#35 print_line_cursor#34 print_line_cursor#33 print_line_cursor#32 print_line_cursor#31 print_line_cursor#30 print_line_cursor#29 print_line_cursor#28 print_line_cursor#27 print_line_cursor#26 print_line_cursor#25 print_line_cursor#24 print_line_cursor#21 print_line_cursor#6 
-Alias main::$32 = main::$4 
-Alias main::$33 = main::$7 
+Alias main::$28 = main::$4 
+Alias main::$29 = main::$7 
 Alias main::dw2#10 = main::dw2#9 main::dw2#2 main::dw2#3 main::dw2#4 main::dw2#11 main::dw2#5 main::dw2#12 main::dw2#6 main::dw2#13 main::dw2#7 main::dw2#14 main::dw2#8 
 Alias print_char_cursor#16 = print_char_cursor#49 
 Alias print_char_cursor#17 = print_char_cursor#50 
@@ -737,16 +729,16 @@ Alias print_char_cursor#19 = print_char_cursor#52
 Alias print_uint::w#3 = main::$13 
 Alias print_char_cursor#20 = print_char_cursor#53 
 Alias print_char_cursor#21 = print_char_cursor#54 
-Alias print_uchar::b#2 = main::$17 
+Alias print_uchar::b#2 = main::$16 
 Alias print_char_cursor#22 = print_char_cursor#55 
 Alias print_char_cursor#23 = print_char_cursor#56 
-Alias print_uchar::b#3 = main::$21 
+Alias print_uchar::b#3 = main::$19 
 Alias print_char_cursor#24 = print_char_cursor#57 
 Alias print_char_cursor#25 = print_char_cursor#58 
-Alias print_uchar::b#4 = main::$25 
+Alias print_uchar::b#4 = main::$22 
 Alias print_char_cursor#26 = print_char_cursor#59 
 Alias print_char_cursor#27 = print_char_cursor#60 
-Alias print_uchar::b#5 = main::$29 
+Alias print_uchar::b#5 = main::$25 
 Alias print_char_cursor#28 = print_char_cursor#61 
 Alias print_line_cursor#15 = print_line_cursor#5 
 Alias print_char_cursor#29 = print_char_cursor#62 
@@ -871,11 +863,11 @@ Adding NOP phi() at start of memset
 Adding NOP phi() at start of memset::@2
 Adding NOP phi() at start of memset::@1
 CALL GRAPH
-Calls in [main] to print_cls:1 print_ulong:13 print_char:15 print_uint:19 print_char:21 print_uint:25 print_char:27 print_uchar:32 print_char:34 print_uchar:39 print_char:41 print_uchar:46 print_char:48 print_uchar:53 print_ln:55 
-Calls in [print_cls] to memset:61 
-Calls in [print_ulong] to print_uint:67 print_uint:71 
-Calls in [print_uint] to print_uchar:82 print_uchar:86 
-Calls in [print_uchar] to print_char:94 print_char:99 
+Calls in [main] to print_cls:1 print_ulong:13 print_char:15 print_uint:19 print_char:21 print_uint:25 print_char:27 print_uchar:31 print_char:33 print_uchar:37 print_char:39 print_uchar:43 print_char:45 print_uchar:49 print_ln:51 
+Calls in [print_cls] to memset:57 
+Calls in [print_ulong] to print_uint:63 print_uint:67 
+Calls in [print_uint] to print_uchar:78 print_uchar:82 
+Calls in [print_uchar] to print_char:90 print_char:95 
 
 Created 11 initial phi equivalence classes
 Coalesced [14] print_char_cursor#87 = print_char_cursor#11
@@ -885,35 +877,35 @@ Coalesced (already) [20] print_char_cursor#88 = print_char_cursor#11
 Coalesced [23] print_uint::w#7 = print_uint::w#3
 Coalesced (already) [24] print_char_cursor#75 = print_char_cursor#11
 Coalesced (already) [26] print_char_cursor#89 = print_char_cursor#11
-Coalesced [30] print_uchar::b#11 = print_uchar::b#2
-Coalesced [31] print_char_cursor#81 = print_char_cursor#11
-Coalesced (already) [33] print_char_cursor#84 = print_char_cursor#11
-Coalesced [37] print_uchar::b#8 = print_uchar::b#3
-Coalesced (already) [38] print_char_cursor#78 = print_char_cursor#11
-Coalesced (already) [40] print_char_cursor#85 = print_char_cursor#11
-Coalesced [44] print_uchar::b#9 = print_uchar::b#4
-Coalesced (already) [45] print_char_cursor#79 = print_char_cursor#11
-Coalesced (already) [47] print_char_cursor#86 = print_char_cursor#11
-Coalesced [51] print_uchar::b#10 = print_uchar::b#5
-Coalesced (already) [52] print_char_cursor#80 = print_char_cursor#11
-Coalesced [57] main::dw#18 = main::dw#1
-Not coalescing [58] print_line_cursor#39 = print_line_cursor#0
-Coalesced [59] print_char_cursor#92 = print_line_cursor#0
-Coalesced [65] print_uint::w#8 = print_uint::w#0
-Not coalescing [66] print_char_cursor#76 = print_char_cursor#30
-Coalesced [69] print_uint::w#9 = print_uint::w#1
-Coalesced (already) [70] print_char_cursor#77 = print_char_cursor#11
-Coalesced [80] print_uchar::b#12 = print_uchar::b#0
-Coalesced (already) [81] print_char_cursor#82 = print_char_cursor#67
-Coalesced [84] print_uchar::b#13 = print_uchar::b#1
-Coalesced (already) [85] print_char_cursor#83 = print_char_cursor#11
-Coalesced [92] print_char::ch#9 = print_char::ch#0
-Coalesced (already) [93] print_char_cursor#90 = print_char_cursor#69
-Coalesced [97] print_char::ch#10 = print_char::ch#1
-Coalesced (already) [98] print_char_cursor#91 = print_char_cursor#11
-Coalesced [102] print_line_cursor#37 = print_line_cursor#16
-Not coalescing [108] print_line_cursor#38 = print_line_cursor#0
-Coalesced [117] memset::dst#4 = memset::dst#1
+Coalesced [29] print_uchar::b#11 = print_uchar::b#2
+Coalesced [30] print_char_cursor#81 = print_char_cursor#11
+Coalesced (already) [32] print_char_cursor#84 = print_char_cursor#11
+Coalesced [35] print_uchar::b#8 = print_uchar::b#3
+Coalesced (already) [36] print_char_cursor#78 = print_char_cursor#11
+Coalesced (already) [38] print_char_cursor#85 = print_char_cursor#11
+Coalesced [41] print_uchar::b#9 = print_uchar::b#4
+Coalesced (already) [42] print_char_cursor#79 = print_char_cursor#11
+Coalesced (already) [44] print_char_cursor#86 = print_char_cursor#11
+Coalesced [47] print_uchar::b#10 = print_uchar::b#5
+Coalesced (already) [48] print_char_cursor#80 = print_char_cursor#11
+Coalesced [53] main::dw#18 = main::dw#1
+Not coalescing [54] print_line_cursor#39 = print_line_cursor#0
+Coalesced [55] print_char_cursor#92 = print_line_cursor#0
+Coalesced [61] print_uint::w#8 = print_uint::w#0
+Not coalescing [62] print_char_cursor#76 = print_char_cursor#30
+Coalesced [65] print_uint::w#9 = print_uint::w#1
+Coalesced (already) [66] print_char_cursor#77 = print_char_cursor#11
+Coalesced [76] print_uchar::b#12 = print_uchar::b#0
+Coalesced (already) [77] print_char_cursor#82 = print_char_cursor#67
+Coalesced [80] print_uchar::b#13 = print_uchar::b#1
+Coalesced (already) [81] print_char_cursor#83 = print_char_cursor#11
+Coalesced [88] print_char::ch#9 = print_char::ch#0
+Coalesced (already) [89] print_char_cursor#90 = print_char_cursor#69
+Coalesced [93] print_char::ch#10 = print_char::ch#1
+Coalesced (already) [94] print_char_cursor#91 = print_char_cursor#11
+Coalesced [98] print_line_cursor#37 = print_line_cursor#16
+Not coalescing [104] print_line_cursor#38 = print_line_cursor#0
+Coalesced [113] memset::dst#4 = memset::dst#1
 Coalesced down to 8 phi equivalence classes
 Culled Empty Block label main::@3
 Culled Empty Block label print_cls::@1
@@ -969,12 +961,12 @@ main::@return: scope:[main]  from main::@1
   [4] return 
   to:@return
 main::@2: scope:[main]  from main::@1
-  [5] main::$3 = > main::dw#10
-  [6] main::$32 = main::$3 + $1111
-  [7] main::dw2#1 = main::dw#10 hi= main::$32
-  [8] main::$6 = < main::dw#10
-  [9] main::$33 = main::$6 + $1111
-  [10] main::dw2#10 = main::dw2#1 lo= main::$33
+  [5] main::$3 = _word1_ main::dw#10
+  [6] main::$28 = main::$3 + $1111
+  [7] main::dw2#1 = main::dw#10 word1= main::$28
+  [8] main::$6 = _word0_ main::dw#10
+  [9] main::$29 = main::$6 + $1111
+  [10] main::dw2#10 = main::dw2#1 word0= main::$29
   [11] print_ulong::dw#0 = main::dw2#10
   [12] call print_ulong 
   to:main::@3
@@ -983,7 +975,7 @@ main::@3: scope:[main]  from main::@2
   [14] call print_char 
   to:main::@4
 main::@4: scope:[main]  from main::@3
-  [15] print_uint::w#2 = > main::dw2#10
+  [15] print_uint::w#2 = _word1_ main::dw2#10
   [16] call print_uint 
   to:main::@5
 main::@5: scope:[main]  from main::@4
@@ -991,7 +983,7 @@ main::@5: scope:[main]  from main::@4
   [18] call print_char 
   to:main::@6
 main::@6: scope:[main]  from main::@5
-  [19] print_uint::w#3 = < main::dw2#10
+  [19] print_uint::w#3 = _word0_ main::dw2#10
   [20] call print_uint 
   to:main::@7
 main::@7: scope:[main]  from main::@6
@@ -999,161 +991,153 @@ main::@7: scope:[main]  from main::@6
   [22] call print_char 
   to:main::@8
 main::@8: scope:[main]  from main::@7
-  [23] main::$16 = > main::dw2#10
-  [24] print_uchar::b#2 = > main::$16
-  [25] call print_uchar 
+  [23] print_uchar::b#2 = _byte3_ main::dw2#10
+  [24] call print_uchar 
   to:main::@9
 main::@9: scope:[main]  from main::@8
-  [26] phi()
-  [27] call print_char 
+  [25] phi()
+  [26] call print_char 
   to:main::@10
 main::@10: scope:[main]  from main::@9
-  [28] main::$20 = > main::dw2#10
-  [29] print_uchar::b#3 = < main::$20
-  [30] call print_uchar 
+  [27] print_uchar::b#3 = _byte2_ main::dw2#10
+  [28] call print_uchar 
   to:main::@11
 main::@11: scope:[main]  from main::@10
-  [31] phi()
-  [32] call print_char 
+  [29] phi()
+  [30] call print_char 
   to:main::@12
 main::@12: scope:[main]  from main::@11
-  [33] main::$24 = < main::dw2#10
-  [34] print_uchar::b#4 = > main::$24
-  [35] call print_uchar 
+  [31] print_uchar::b#4 = > main::dw2#10
+  [32] call print_uchar 
   to:main::@13
 main::@13: scope:[main]  from main::@12
-  [36] phi()
-  [37] call print_char 
+  [33] phi()
+  [34] call print_char 
   to:main::@14
 main::@14: scope:[main]  from main::@13
-  [38] main::$28 = < main::dw2#10
-  [39] print_uchar::b#5 = < main::$28
-  [40] call print_uchar 
+  [35] print_uchar::b#5 = < main::dw2#10
+  [36] call print_uchar 
   to:main::@15
 main::@15: scope:[main]  from main::@14
-  [41] phi()
-  [42] call print_ln 
+  [37] phi()
+  [38] call print_ln 
   to:main::@16
 main::@16: scope:[main]  from main::@15
-  [43] main::dw#1 = ++ main::dw#10
-  [44] print_line_cursor#39 = print_line_cursor#0
+  [39] main::dw#1 = ++ main::dw#10
+  [40] print_line_cursor#39 = print_line_cursor#0
   to:main::@1
 
 void print_cls()
 print_cls: scope:[print_cls]  from main
-  [45] phi()
-  [46] call memset 
+  [41] phi()
+  [42] call memset 
   to:print_cls::@return
 print_cls::@return: scope:[print_cls]  from print_cls
-  [47] return 
+  [43] return 
   to:@return
 
 void print_ulong(dword print_ulong::dw)
 print_ulong: scope:[print_ulong]  from main::@2
-  [48] print_uint::w#0 = > print_ulong::dw#0
-  [49] print_char_cursor#76 = print_char_cursor#30
-  [50] call print_uint 
+  [44] print_uint::w#0 = > print_ulong::dw#0
+  [45] print_char_cursor#76 = print_char_cursor#30
+  [46] call print_uint 
   to:print_ulong::@1
 print_ulong::@1: scope:[print_ulong]  from print_ulong
-  [51] print_uint::w#1 = < print_ulong::dw#0
-  [52] call print_uint 
+  [47] print_uint::w#1 = < print_ulong::dw#0
+  [48] call print_uint 
   to:print_ulong::@return
 print_ulong::@return: scope:[print_ulong]  from print_ulong::@1
-  [53] return 
+  [49] return 
   to:@return
 
 void print_char(byte print_char::ch)
 print_char: scope:[print_char]  from main::@11 main::@13 main::@3 main::@5 main::@7 main::@9 print_uchar print_uchar::@1
-  [54] print_char_cursor#45 = phi( main::@9/print_char_cursor#11, main::@11/print_char_cursor#11, main::@13/print_char_cursor#11, main::@3/print_char_cursor#11, main::@5/print_char_cursor#11, main::@7/print_char_cursor#11, print_uchar/print_char_cursor#69, print_uchar::@1/print_char_cursor#11 )
-  [54] print_char::ch#8 = phi( main::@9/' ', main::@11/' ', main::@13/' ', main::@3/' ', main::@5/' ', main::@7/' ', print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 )
-  [55] *print_char_cursor#45 = print_char::ch#8
-  [56] print_char_cursor#11 = ++ print_char_cursor#45
+  [50] print_char_cursor#45 = phi( main::@9/print_char_cursor#11, main::@11/print_char_cursor#11, main::@13/print_char_cursor#11, main::@3/print_char_cursor#11, main::@5/print_char_cursor#11, main::@7/print_char_cursor#11, print_uchar/print_char_cursor#69, print_uchar::@1/print_char_cursor#11 )
+  [50] print_char::ch#8 = phi( main::@9/' ', main::@11/' ', main::@13/' ', main::@3/' ', main::@5/' ', main::@7/' ', print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 )
+  [51] *print_char_cursor#45 = print_char::ch#8
+  [52] print_char_cursor#11 = ++ print_char_cursor#45
   to:print_char::@return
 print_char::@return: scope:[print_char]  from print_char
-  [57] return 
+  [53] return 
   to:@return
 
 void print_uint(word print_uint::w)
 print_uint: scope:[print_uint]  from main::@4 main::@6 print_ulong print_ulong::@1
-  [58] print_char_cursor#67 = phi( main::@4/print_char_cursor#11, main::@6/print_char_cursor#11, print_ulong/print_char_cursor#76, print_ulong::@1/print_char_cursor#11 )
-  [58] print_uint::w#4 = phi( main::@4/print_uint::w#2, main::@6/print_uint::w#3, print_ulong/print_uint::w#0, print_ulong::@1/print_uint::w#1 )
-  [59] print_uchar::b#0 = > print_uint::w#4
-  [60] call print_uchar 
+  [54] print_char_cursor#67 = phi( main::@4/print_char_cursor#11, main::@6/print_char_cursor#11, print_ulong/print_char_cursor#76, print_ulong::@1/print_char_cursor#11 )
+  [54] print_uint::w#4 = phi( main::@4/print_uint::w#2, main::@6/print_uint::w#3, print_ulong/print_uint::w#0, print_ulong::@1/print_uint::w#1 )
+  [55] print_uchar::b#0 = > print_uint::w#4
+  [56] call print_uchar 
   to:print_uint::@1
 print_uint::@1: scope:[print_uint]  from print_uint
-  [61] print_uchar::b#1 = < print_uint::w#4
-  [62] call print_uchar 
+  [57] print_uchar::b#1 = < print_uint::w#4
+  [58] call print_uchar 
   to:print_uint::@return
 print_uint::@return: scope:[print_uint]  from print_uint::@1
-  [63] return 
+  [59] return 
   to:@return
 
 void print_uchar(byte print_uchar::b)
 print_uchar: scope:[print_uchar]  from main::@10 main::@12 main::@14 main::@8 print_uint print_uint::@1
-  [64] print_char_cursor#69 = phi( main::@10/print_char_cursor#11, main::@12/print_char_cursor#11, main::@14/print_char_cursor#11, main::@8/print_char_cursor#11, print_uint/print_char_cursor#67, print_uint::@1/print_char_cursor#11 )
-  [64] print_uchar::b#6 = phi( main::@10/print_uchar::b#3, main::@12/print_uchar::b#4, main::@14/print_uchar::b#5, main::@8/print_uchar::b#2, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 )
-  [65] print_uchar::$0 = print_uchar::b#6 >> 4
-  [66] print_char::ch#0 = print_hextab[print_uchar::$0]
-  [67] call print_char 
+  [60] print_char_cursor#69 = phi( main::@10/print_char_cursor#11, main::@12/print_char_cursor#11, main::@14/print_char_cursor#11, main::@8/print_char_cursor#11, print_uint/print_char_cursor#67, print_uint::@1/print_char_cursor#11 )
+  [60] print_uchar::b#6 = phi( main::@10/print_uchar::b#3, main::@12/print_uchar::b#4, main::@14/print_uchar::b#5, main::@8/print_uchar::b#2, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 )
+  [61] print_uchar::$0 = print_uchar::b#6 >> 4
+  [62] print_char::ch#0 = print_hextab[print_uchar::$0]
+  [63] call print_char 
   to:print_uchar::@1
 print_uchar::@1: scope:[print_uchar]  from print_uchar
-  [68] print_uchar::$2 = print_uchar::b#6 & $f
-  [69] print_char::ch#1 = print_hextab[print_uchar::$2]
-  [70] call print_char 
+  [64] print_uchar::$2 = print_uchar::b#6 & $f
+  [65] print_char::ch#1 = print_hextab[print_uchar::$2]
+  [66] call print_char 
   to:print_uchar::@return
 print_uchar::@return: scope:[print_uchar]  from print_uchar::@1
-  [71] return 
+  [67] return 
   to:@return
 
 void print_ln()
 print_ln: scope:[print_ln]  from main::@15
-  [72] phi()
+  [68] phi()
   to:print_ln::@1
 print_ln::@1: scope:[print_ln]  from print_ln print_ln::@2
-  [73] print_line_cursor#10 = phi( print_ln/print_line_cursor#16, print_ln::@2/print_line_cursor#38 )
-  [74] print_line_cursor#0 = print_line_cursor#10 + $28
-  [75] if(print_line_cursor#0<print_char_cursor#11) goto print_ln::@2
+  [69] print_line_cursor#10 = phi( print_ln/print_line_cursor#16, print_ln::@2/print_line_cursor#38 )
+  [70] print_line_cursor#0 = print_line_cursor#10 + $28
+  [71] if(print_line_cursor#0<print_char_cursor#11) goto print_ln::@2
   to:print_ln::@return
 print_ln::@return: scope:[print_ln]  from print_ln::@1
-  [76] return 
+  [72] return 
   to:@return
 print_ln::@2: scope:[print_ln]  from print_ln::@1
-  [77] print_line_cursor#38 = print_line_cursor#0
+  [73] print_line_cursor#38 = print_line_cursor#0
   to:print_ln::@1
 
 void* memset(void* memset::str , byte memset::c , word memset::num)
 memset: scope:[memset]  from print_cls
-  [78] phi()
+  [74] phi()
   to:memset::@1
 memset::@1: scope:[memset]  from memset memset::@2
-  [79] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 )
-  [80] if(memset::dst#2!=memset::end#0) goto memset::@2
+  [75] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 )
+  [76] if(memset::dst#2!=memset::end#0) goto memset::@2
   to:memset::@return
 memset::@return: scope:[memset]  from memset::@1
-  [81] return 
+  [77] return 
   to:@return
 memset::@2: scope:[memset]  from memset::@1
-  [82] *memset::dst#2 = memset::c#0
-  [83] memset::dst#1 = ++ memset::dst#2
+  [78] *memset::dst#2 = memset::c#0
+  [79] memset::dst#1 = ++ memset::dst#2
   to:memset::@1
 
 
 VARIABLE REGISTER WEIGHTS
 void main()
-word~ main::$16 22.0
-word~ main::$20 22.0
-word~ main::$24 22.0
 word~ main::$28 22.0
+word~ main::$29 22.0
 word~ main::$3 22.0
-word~ main::$32 22.0
-word~ main::$33 22.0
 word~ main::$6 22.0
 dword main::dw
 dword main::dw#1 11.0
-dword main::dw#10 1.65
+dword main::dw#10 1.8333333333333335
 dword main::dw2
 dword main::dw2#1 7.333333333333333
-dword main::dw2#10 3.142857142857143
+dword main::dw2#10 3.52
 void* memset(void* memset::str , byte memset::c , word memset::num)
 byte memset::c
 byte* memset::dst
@@ -1169,7 +1153,7 @@ byte print_char::ch#0 20002.0
 byte print_char::ch#1 20002.0
 byte print_char::ch#8 120003.0
 byte* print_char_cursor
-byte* print_char_cursor#11 2424.739999999999
+byte* print_char_cursor#11 2635.5869565217386
 byte* print_char_cursor#30 11.2
 byte* print_char_cursor#45 110035.0
 byte* print_char_cursor#67 612.5
@@ -1179,7 +1163,7 @@ void print_cls()
 byte* print_line_cursor
 byte* print_line_cursor#0 5004.166666666666
 byte* print_line_cursor#10 20103.0
-byte* print_line_cursor#16 2.8
+byte* print_line_cursor#16 3.1111111111111107
 byte* print_line_cursor#38 20002.0
 byte* print_line_cursor#39 22.0
 void print_ln()
@@ -1216,16 +1200,12 @@ Initial phi equivalence classes
 [ print_line_cursor#10 print_line_cursor#16 print_line_cursor#39 print_line_cursor#38 ]
 [ memset::dst#2 memset::dst#1 ]
 Added variable main::$3 to live range equivalence class [ main::$3 ]
-Added variable main::$32 to live range equivalence class [ main::$32 ]
+Added variable main::$28 to live range equivalence class [ main::$28 ]
 Added variable main::dw2#1 to live range equivalence class [ main::dw2#1 ]
 Added variable main::$6 to live range equivalence class [ main::$6 ]
-Added variable main::$33 to live range equivalence class [ main::$33 ]
+Added variable main::$29 to live range equivalence class [ main::$29 ]
 Added variable main::dw2#10 to live range equivalence class [ main::dw2#10 ]
 Added variable print_ulong::dw#0 to live range equivalence class [ print_ulong::dw#0 ]
-Added variable main::$16 to live range equivalence class [ main::$16 ]
-Added variable main::$20 to live range equivalence class [ main::$20 ]
-Added variable main::$24 to live range equivalence class [ main::$24 ]
-Added variable main::$28 to live range equivalence class [ main::$28 ]
 Added variable print_uchar::$0 to live range equivalence class [ print_uchar::$0 ]
 Added variable print_uchar::$2 to live range equivalence class [ print_uchar::$2 ]
 Complete equivalence classes
@@ -1238,16 +1218,12 @@ Complete equivalence classes
 [ print_line_cursor#10 print_line_cursor#16 print_line_cursor#39 print_line_cursor#38 ]
 [ memset::dst#2 memset::dst#1 ]
 [ main::$3 ]
-[ main::$32 ]
+[ main::$28 ]
 [ main::dw2#1 ]
 [ main::$6 ]
-[ main::$33 ]
+[ main::$29 ]
 [ main::dw2#10 ]
 [ print_ulong::dw#0 ]
-[ main::$16 ]
-[ main::$20 ]
-[ main::$24 ]
-[ main::$28 ]
 [ print_uchar::$0 ]
 [ print_uchar::$2 ]
 Allocated zp[4]:2 [ main::dw#10 main::dw#1 ]
@@ -1259,71 +1235,61 @@ Allocated zp[1]:13 [ print_uchar::b#6 print_uchar::b#3 print_uchar::b#4 print_uc
 Allocated zp[2]:14 [ print_line_cursor#10 print_line_cursor#16 print_line_cursor#39 print_line_cursor#38 ]
 Allocated zp[2]:16 [ memset::dst#2 memset::dst#1 ]
 Allocated zp[2]:18 [ main::$3 ]
-Allocated zp[2]:20 [ main::$32 ]
+Allocated zp[2]:20 [ main::$28 ]
 Allocated zp[4]:22 [ main::dw2#1 ]
 Allocated zp[2]:26 [ main::$6 ]
-Allocated zp[2]:28 [ main::$33 ]
+Allocated zp[2]:28 [ main::$29 ]
 Allocated zp[4]:30 [ main::dw2#10 ]
 Allocated zp[4]:34 [ print_ulong::dw#0 ]
-Allocated zp[2]:38 [ main::$16 ]
-Allocated zp[2]:40 [ main::$20 ]
-Allocated zp[2]:42 [ main::$24 ]
-Allocated zp[2]:44 [ main::$28 ]
-Allocated zp[1]:46 [ print_uchar::$0 ]
-Allocated zp[1]:47 [ print_uchar::$2 ]
+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 [6] main::$32 = main::$3 + $1111 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$32 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$32 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
-Statement [7] main::dw2#1 = main::dw#10 hi= main::$32 [ 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 [9] main::$33 = main::$6 + $1111 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$33 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$33 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
-Statement [10] main::dw2#10 = main::dw2#1 lo= main::$33 [ 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 [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 
-Statement [15] print_uint::w#2 = > main::dw2#10 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#2 print_char_cursor#11 ] (  [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#2 print_char_cursor#11 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 } }  ) always clobbers reg byte a 
-Statement [19] print_uint::w#3 = < main::dw2#10 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#3 print_char_cursor#11 ] (  [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#3 print_char_cursor#11 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 } }  ) always clobbers reg byte a 
-Statement [23] main::$16 = > main::dw2#10 [ main::dw#10 print_line_cursor#16 main::dw2#10 main::$16 print_char_cursor#11 ] (  [ main::dw#10 print_line_cursor#16 main::dw2#10 main::$16 print_char_cursor#11 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 } }  ) always clobbers reg byte a 
-Statement [28] main::$20 = > main::dw2#10 [ main::dw#10 print_line_cursor#16 main::dw2#10 main::$20 print_char_cursor#11 ] (  [ main::dw#10 print_line_cursor#16 main::dw2#10 main::$20 print_char_cursor#11 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 } }  ) always clobbers reg byte a 
-Statement [33] main::$24 = < main::dw2#10 [ main::dw#10 print_line_cursor#16 main::dw2#10 main::$24 print_char_cursor#11 ] (  [ main::dw#10 print_line_cursor#16 main::dw2#10 main::$24 print_char_cursor#11 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 } }  ) always clobbers reg byte a 
-Statement [38] main::$28 = < main::dw2#10 [ main::dw#10 print_line_cursor#16 main::$28 print_char_cursor#11 ] (  [ main::dw#10 print_line_cursor#16 main::$28 print_char_cursor#11 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 } }  ) always clobbers reg byte a 
-Statement [44] print_line_cursor#39 = print_line_cursor#0 [ main::dw#1 print_line_cursor#39 print_line_cursor#0 ] (  [ main::dw#1 print_line_cursor#39 print_line_cursor#0 ] { }  ) always clobbers reg byte a 
-Statement [48] print_uint::w#0 = > print_ulong::dw#0 [ print_char_cursor#30 print_ulong::dw#0 print_uint::w#0 ] ( print_ulong:12 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#30 print_ulong::dw#0 print_uint::w#0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } }  ) always clobbers reg byte a 
-Statement [49] print_char_cursor#76 = print_char_cursor#30 [ print_ulong::dw#0 print_uint::w#0 print_char_cursor#76 ] ( print_ulong:12 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#0 print_char_cursor#76 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } }  ) always clobbers reg byte a 
-Statement [51] print_uint::w#1 = < print_ulong::dw#0 [ print_uint::w#1 print_char_cursor#11 ] ( print_ulong:12 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#1 print_char_cursor#11 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 } }  ) always clobbers reg byte a 
-Statement [55] *print_char_cursor#45 = print_char::ch#8 [ print_char_cursor#45 ] ( print_char:14 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:18 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:22 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:27 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:32 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:37 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_uchar:25::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:30::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:35::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:40::print_char:67 [ main::dw#10 print_line_cursor#16 print_uchar::b#6 print_char_cursor#45 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:16::print_uchar:60::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_uchar::b#6 print_char_cursor#45 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:20::print_uchar:60::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_uchar::b#6 print_char_cursor#45 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:50::print_uchar:60::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#4 print_uchar::b#6 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#45 = print_char_cursor#67 print_char_cursor#76 print_char_cursor#69 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:52::print_uchar:60::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_uchar::b#6 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:16::print_uchar:62::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:20::print_uchar:62::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:50::print_uchar:62::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uchar::b#6 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } { print_uchar::b#1 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:52::print_uchar:62::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:25::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:30::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:35::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:40::print_char:70 [ main::dw#10 print_line_cursor#16 print_char_cursor#45 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:16::print_uchar:60::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#45 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:20::print_uchar:60::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#45 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:50::print_uchar:60::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#4 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 print_char_cursor#69 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } { print_char_cursor#11 = print_char_cursor#45 } }  print_ulong:12::print_uint:52::print_uchar:60::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:16::print_uchar:62::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:20::print_uchar:62::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:50::print_uchar:62::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } { print_uchar::b#1 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:52::print_uchar:62::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  ) always clobbers reg byte y 
+Statement [15] print_uint::w#2 = _word1_ main::dw2#10 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#2 print_char_cursor#11 ] (  [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#2 print_char_cursor#11 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 } }  ) always clobbers reg byte a 
+Statement [19] print_uint::w#3 = _word0_ main::dw2#10 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#3 print_char_cursor#11 ] (  [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#3 print_char_cursor#11 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 } }  ) always clobbers reg byte a 
+Statement [40] print_line_cursor#39 = print_line_cursor#0 [ main::dw#1 print_line_cursor#39 print_line_cursor#0 ] (  [ main::dw#1 print_line_cursor#39 print_line_cursor#0 ] { }  ) always clobbers reg byte a 
+Statement [44] print_uint::w#0 = > print_ulong::dw#0 [ print_char_cursor#30 print_ulong::dw#0 print_uint::w#0 ] ( print_ulong:12 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#30 print_ulong::dw#0 print_uint::w#0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } }  ) always clobbers reg byte a 
+Statement [45] print_char_cursor#76 = print_char_cursor#30 [ print_ulong::dw#0 print_uint::w#0 print_char_cursor#76 ] ( print_ulong:12 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#0 print_char_cursor#76 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } }  ) always clobbers reg byte a 
+Statement [47] print_uint::w#1 = < print_ulong::dw#0 [ print_uint::w#1 print_char_cursor#11 ] ( print_ulong:12 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#1 print_char_cursor#11 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 } }  ) always clobbers reg byte a 
+Statement [51] *print_char_cursor#45 = print_char::ch#8 [ print_char_cursor#45 ] ( print_char:14 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:18 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:22 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:26 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:30 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:34 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_uchar:24::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:28::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:32::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:36::print_char:63 [ main::dw#10 print_line_cursor#16 print_uchar::b#6 print_char_cursor#45 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:16::print_uchar:56::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_uchar::b#6 print_char_cursor#45 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:20::print_uchar:56::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_uchar::b#6 print_char_cursor#45 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:46::print_uchar:56::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#4 print_uchar::b#6 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#45 = print_char_cursor#67 print_char_cursor#76 print_char_cursor#69 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:48::print_uchar:56::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_uchar::b#6 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:16::print_uchar:58::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:20::print_uchar:58::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:46::print_uchar:58::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uchar::b#6 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } { print_uchar::b#1 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:48::print_uchar:58::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:24::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:28::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:32::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:36::print_char:66 [ main::dw#10 print_line_cursor#16 print_char_cursor#45 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:16::print_uchar:56::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#45 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:20::print_uchar:56::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#45 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:46::print_uchar:56::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#4 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 print_char_cursor#69 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } { print_char_cursor#11 = print_char_cursor#45 } }  print_ulong:12::print_uint:48::print_uchar:56::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:16::print_uchar:58::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:20::print_uchar:58::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:46::print_uchar:58::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } { print_uchar::b#1 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:48::print_uchar:58::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  ) always clobbers reg byte y 
 Removing always clobbered register reg byte y as potential for 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 ]
-Statement [65] print_uchar::$0 = print_uchar::b#6 >> 4 [ print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] ( print_uchar:25 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:30 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:35 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:40 [ main::dw#10 print_line_cursor#16 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:16::print_uchar:60 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:20::print_uchar:60 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:50::print_uchar:60 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#4 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#45 = print_char_cursor#67 print_char_cursor#76 print_char_cursor#69 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:52::print_uchar:60 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:16::print_uchar:62 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:20::print_uchar:62 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:50::print_uchar:62 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } { print_uchar::b#1 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:52::print_uchar:62 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  ) always clobbers reg byte a 
+Statement [61] print_uchar::$0 = print_uchar::b#6 >> 4 [ print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] ( print_uchar:24 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:28 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:32 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:36 [ main::dw#10 print_line_cursor#16 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:16::print_uchar:56 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:20::print_uchar:56 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:46::print_uchar:56 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#4 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#45 = print_char_cursor#67 print_char_cursor#76 print_char_cursor#69 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:48::print_uchar:56 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:16::print_uchar:58 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:20::print_uchar:58 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:46::print_uchar:58 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } { print_uchar::b#1 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:48::print_uchar:58 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  ) always clobbers reg byte a 
 Removing always clobbered register reg byte a as potential for 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 ]
-Statement [68] print_uchar::$2 = print_uchar::b#6 & $f [ print_char_cursor#11 print_uchar::$2 ] ( print_uchar:25 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:30 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:35 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:40 [ main::dw#10 print_line_cursor#16 print_char_cursor#11 print_uchar::$2 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:16::print_uchar:60 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#11 print_uchar::$2 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:20::print_uchar:60 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#11 print_uchar::$2 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:50::print_uchar:60 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#4 print_char_cursor#11 print_uchar::$2 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 print_char_cursor#69 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } { print_char_cursor#11 = print_char_cursor#45 } }  print_ulong:12::print_uint:52::print_uchar:60 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#11 print_uchar::$2 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:16::print_uchar:62 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:20::print_uchar:62 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:50::print_uchar:62 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_char_cursor#11 print_uchar::$2 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } { print_uchar::b#1 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:52::print_uchar:62 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  ) always clobbers reg byte a 
-Statement [74] print_line_cursor#0 = print_line_cursor#10 + $28 [ print_line_cursor#0 print_char_cursor#11 ] ( print_ln:42 [ main::dw#10 print_line_cursor#0 print_char_cursor#11 ] { }  ) always clobbers reg byte a 
-Statement [75] if(print_line_cursor#0<print_char_cursor#11) goto print_ln::@2 [ print_line_cursor#0 print_char_cursor#11 ] ( print_ln:42 [ main::dw#10 print_line_cursor#0 print_char_cursor#11 ] { }  ) always clobbers reg byte a 
-Statement [77] print_line_cursor#38 = print_line_cursor#0 [ print_char_cursor#11 print_line_cursor#38 ] ( print_ln:42 [ main::dw#10 print_char_cursor#11 print_line_cursor#38 ] { }  ) always clobbers reg byte a 
-Statement [80] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( print_cls:1::memset:46 [ memset::dst#2 ] { }  ) always clobbers reg byte a 
-Statement [82] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( print_cls:1::memset:46 [ memset::dst#2 ] { }  ) always clobbers reg byte a reg byte y 
+Statement [64] print_uchar::$2 = print_uchar::b#6 & $f [ print_char_cursor#11 print_uchar::$2 ] ( print_uchar:24 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:28 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:32 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:36 [ main::dw#10 print_line_cursor#16 print_char_cursor#11 print_uchar::$2 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:16::print_uchar:56 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#11 print_uchar::$2 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:20::print_uchar:56 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#11 print_uchar::$2 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:46::print_uchar:56 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#4 print_char_cursor#11 print_uchar::$2 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 print_char_cursor#69 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } { print_char_cursor#11 = print_char_cursor#45 } }  print_ulong:12::print_uint:48::print_uchar:56 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#11 print_uchar::$2 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:16::print_uchar:58 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:20::print_uchar:58 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:46::print_uchar:58 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_char_cursor#11 print_uchar::$2 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } { print_uchar::b#1 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:48::print_uchar:58 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  ) always clobbers reg byte a 
+Statement [70] print_line_cursor#0 = print_line_cursor#10 + $28 [ print_line_cursor#0 print_char_cursor#11 ] ( print_ln:38 [ main::dw#10 print_line_cursor#0 print_char_cursor#11 ] { }  ) always clobbers reg byte a 
+Statement [71] if(print_line_cursor#0<print_char_cursor#11) goto print_ln::@2 [ print_line_cursor#0 print_char_cursor#11 ] ( print_ln:38 [ main::dw#10 print_line_cursor#0 print_char_cursor#11 ] { }  ) always clobbers reg byte a 
+Statement [73] print_line_cursor#38 = print_line_cursor#0 [ print_char_cursor#11 print_line_cursor#38 ] ( print_ln:38 [ main::dw#10 print_char_cursor#11 print_line_cursor#38 ] { }  ) always clobbers reg byte a 
+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 [6] main::$32 = main::$3 + $1111 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$32 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$32 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
-Statement [7] main::dw2#1 = main::dw#10 hi= main::$32 [ 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 [9] main::$33 = main::$6 + $1111 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$33 ] (  [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$33 ] { { print_ulong::dw#0 = main::dw2#10 } }  ) always clobbers reg byte a 
-Statement [10] main::dw2#10 = main::dw2#1 lo= main::$33 [ 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 [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 
-Statement [15] print_uint::w#2 = > main::dw2#10 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#2 print_char_cursor#11 ] (  [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#2 print_char_cursor#11 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 } }  ) always clobbers reg byte a 
-Statement [19] print_uint::w#3 = < main::dw2#10 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#3 print_char_cursor#11 ] (  [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#3 print_char_cursor#11 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 } }  ) always clobbers reg byte a 
-Statement [23] main::$16 = > main::dw2#10 [ main::dw#10 print_line_cursor#16 main::dw2#10 main::$16 print_char_cursor#11 ] (  [ main::dw#10 print_line_cursor#16 main::dw2#10 main::$16 print_char_cursor#11 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 } }  ) always clobbers reg byte a 
-Statement [28] main::$20 = > main::dw2#10 [ main::dw#10 print_line_cursor#16 main::dw2#10 main::$20 print_char_cursor#11 ] (  [ main::dw#10 print_line_cursor#16 main::dw2#10 main::$20 print_char_cursor#11 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 } }  ) always clobbers reg byte a 
-Statement [33] main::$24 = < main::dw2#10 [ main::dw#10 print_line_cursor#16 main::dw2#10 main::$24 print_char_cursor#11 ] (  [ main::dw#10 print_line_cursor#16 main::dw2#10 main::$24 print_char_cursor#11 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 } }  ) always clobbers reg byte a 
-Statement [38] main::$28 = < main::dw2#10 [ main::dw#10 print_line_cursor#16 main::$28 print_char_cursor#11 ] (  [ main::dw#10 print_line_cursor#16 main::$28 print_char_cursor#11 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 } }  ) always clobbers reg byte a 
-Statement [44] print_line_cursor#39 = print_line_cursor#0 [ main::dw#1 print_line_cursor#39 print_line_cursor#0 ] (  [ main::dw#1 print_line_cursor#39 print_line_cursor#0 ] { }  ) always clobbers reg byte a 
-Statement [48] print_uint::w#0 = > print_ulong::dw#0 [ print_char_cursor#30 print_ulong::dw#0 print_uint::w#0 ] ( print_ulong:12 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#30 print_ulong::dw#0 print_uint::w#0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } }  ) always clobbers reg byte a 
-Statement [49] print_char_cursor#76 = print_char_cursor#30 [ print_ulong::dw#0 print_uint::w#0 print_char_cursor#76 ] ( print_ulong:12 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#0 print_char_cursor#76 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } }  ) always clobbers reg byte a 
-Statement [51] print_uint::w#1 = < print_ulong::dw#0 [ print_uint::w#1 print_char_cursor#11 ] ( print_ulong:12 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#1 print_char_cursor#11 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 } }  ) always clobbers reg byte a 
-Statement [55] *print_char_cursor#45 = print_char::ch#8 [ print_char_cursor#45 ] ( print_char:14 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:18 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:22 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:27 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:32 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:37 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_uchar:25::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:30::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:35::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:40::print_char:67 [ main::dw#10 print_line_cursor#16 print_uchar::b#6 print_char_cursor#45 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:16::print_uchar:60::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_uchar::b#6 print_char_cursor#45 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:20::print_uchar:60::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_uchar::b#6 print_char_cursor#45 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:50::print_uchar:60::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#4 print_uchar::b#6 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#45 = print_char_cursor#67 print_char_cursor#76 print_char_cursor#69 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:52::print_uchar:60::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_uchar::b#6 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:16::print_uchar:62::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:20::print_uchar:62::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:50::print_uchar:62::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uchar::b#6 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } { print_uchar::b#1 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:52::print_uchar:62::print_char:67 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:25::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:30::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:35::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:40::print_char:70 [ main::dw#10 print_line_cursor#16 print_char_cursor#45 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:16::print_uchar:60::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#45 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:20::print_uchar:60::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#45 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:50::print_uchar:60::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#4 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 print_char_cursor#69 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } { print_char_cursor#11 = print_char_cursor#45 } }  print_ulong:12::print_uint:52::print_uchar:60::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:16::print_uchar:62::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:20::print_uchar:62::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:50::print_uchar:62::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } { print_uchar::b#1 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:52::print_uchar:62::print_char:70 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  ) always clobbers reg byte y 
-Statement [65] print_uchar::$0 = print_uchar::b#6 >> 4 [ print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] ( print_uchar:25 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:30 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:35 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:40 [ main::dw#10 print_line_cursor#16 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:16::print_uchar:60 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:20::print_uchar:60 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:50::print_uchar:60 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#4 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#45 = print_char_cursor#67 print_char_cursor#76 print_char_cursor#69 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:52::print_uchar:60 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:16::print_uchar:62 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:20::print_uchar:62 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:50::print_uchar:62 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } { print_uchar::b#1 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:52::print_uchar:62 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  ) always clobbers reg byte a 
-Statement [68] print_uchar::$2 = print_uchar::b#6 & $f [ print_char_cursor#11 print_uchar::$2 ] ( print_uchar:25 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:30 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:35 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:40 [ main::dw#10 print_line_cursor#16 print_char_cursor#11 print_uchar::$2 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:16::print_uchar:60 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#11 print_uchar::$2 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:20::print_uchar:60 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#11 print_uchar::$2 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:50::print_uchar:60 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#4 print_char_cursor#11 print_uchar::$2 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 print_char_cursor#69 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } { print_char_cursor#11 = print_char_cursor#45 } }  print_ulong:12::print_uint:52::print_uchar:60 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#11 print_uchar::$2 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:16::print_uchar:62 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:20::print_uchar:62 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:50::print_uchar:62 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_char_cursor#11 print_uchar::$2 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } { print_uchar::b#1 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:52::print_uchar:62 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  ) always clobbers reg byte a 
-Statement [74] print_line_cursor#0 = print_line_cursor#10 + $28 [ print_line_cursor#0 print_char_cursor#11 ] ( print_ln:42 [ main::dw#10 print_line_cursor#0 print_char_cursor#11 ] { }  ) always clobbers reg byte a 
-Statement [75] if(print_line_cursor#0<print_char_cursor#11) goto print_ln::@2 [ print_line_cursor#0 print_char_cursor#11 ] ( print_ln:42 [ main::dw#10 print_line_cursor#0 print_char_cursor#11 ] { }  ) always clobbers reg byte a 
-Statement [77] print_line_cursor#38 = print_line_cursor#0 [ print_char_cursor#11 print_line_cursor#38 ] ( print_ln:42 [ main::dw#10 print_char_cursor#11 print_line_cursor#38 ] { }  ) always clobbers reg byte a 
-Statement [80] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( print_cls:1::memset:46 [ memset::dst#2 ] { }  ) always clobbers reg byte a 
-Statement [82] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( print_cls:1::memset:46 [ memset::dst#2 ] { }  ) always clobbers reg byte a reg byte y 
+Statement [15] print_uint::w#2 = _word1_ main::dw2#10 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#2 print_char_cursor#11 ] (  [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#2 print_char_cursor#11 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 } }  ) always clobbers reg byte a 
+Statement [19] print_uint::w#3 = _word0_ main::dw2#10 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#3 print_char_cursor#11 ] (  [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#3 print_char_cursor#11 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 } }  ) always clobbers reg byte a 
+Statement [40] print_line_cursor#39 = print_line_cursor#0 [ main::dw#1 print_line_cursor#39 print_line_cursor#0 ] (  [ main::dw#1 print_line_cursor#39 print_line_cursor#0 ] { }  ) always clobbers reg byte a 
+Statement [44] print_uint::w#0 = > print_ulong::dw#0 [ print_char_cursor#30 print_ulong::dw#0 print_uint::w#0 ] ( print_ulong:12 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#30 print_ulong::dw#0 print_uint::w#0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } }  ) always clobbers reg byte a 
+Statement [45] print_char_cursor#76 = print_char_cursor#30 [ print_ulong::dw#0 print_uint::w#0 print_char_cursor#76 ] ( print_ulong:12 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#0 print_char_cursor#76 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } }  ) always clobbers reg byte a 
+Statement [47] print_uint::w#1 = < print_ulong::dw#0 [ print_uint::w#1 print_char_cursor#11 ] ( print_ulong:12 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#1 print_char_cursor#11 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 } }  ) always clobbers reg byte a 
+Statement [51] *print_char_cursor#45 = print_char::ch#8 [ print_char_cursor#45 ] ( print_char:14 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:18 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:22 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:26 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:30 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_char:34 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_char_cursor#11 = print_char_cursor#45 } }  print_uchar:24::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:28::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:32::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:36::print_char:63 [ main::dw#10 print_line_cursor#16 print_uchar::b#6 print_char_cursor#45 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:16::print_uchar:56::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_uchar::b#6 print_char_cursor#45 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:20::print_uchar:56::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_uchar::b#6 print_char_cursor#45 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:46::print_uchar:56::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#4 print_uchar::b#6 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#45 = print_char_cursor#67 print_char_cursor#76 print_char_cursor#69 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:48::print_uchar:56::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_uchar::b#6 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:16::print_uchar:58::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:20::print_uchar:58::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:46::print_uchar:58::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uchar::b#6 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } { print_uchar::b#1 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:48::print_uchar:58::print_char:63 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uchar::b#6 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:24::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:28::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:32::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:36::print_char:66 [ main::dw#10 print_line_cursor#16 print_char_cursor#45 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:16::print_uchar:56::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#45 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:20::print_uchar:56::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#45 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:46::print_uchar:56::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#4 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 print_char_cursor#69 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } { print_char_cursor#11 = print_char_cursor#45 } }  print_ulong:12::print_uint:48::print_uchar:56::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:16::print_uchar:58::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:20::print_uchar:58::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:46::print_uchar:58::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } { print_uchar::b#1 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:48::print_uchar:58::print_char:66 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#45 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  ) always clobbers reg byte y 
+Statement [61] print_uchar::$0 = print_uchar::b#6 >> 4 [ print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] ( print_uchar:24 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:28 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:32 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uchar:36 [ main::dw#10 print_line_cursor#16 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:16::print_uchar:56 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:20::print_uchar:56 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:46::print_uchar:56 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#4 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#45 = print_char_cursor#67 print_char_cursor#76 print_char_cursor#69 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:48::print_uchar:56 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:16::print_uchar:58 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_uint:20::print_uchar:58 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:46::print_uchar:58 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } { print_uchar::b#1 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#0 = print_char::ch#8 } }  print_ulong:12::print_uint:48::print_uchar:58 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#69 print_uchar::b#6 print_uchar::$0 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#0 = print_char::ch#8 } }  ) always clobbers reg byte a 
+Statement [64] print_uchar::$2 = print_uchar::b#6 & $f [ print_char_cursor#11 print_uchar::$2 ] ( print_uchar:24 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uchar::b#2 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:28 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uchar::b#3 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:32 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uchar::b#4 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uchar:36 [ main::dw#10 print_line_cursor#16 print_char_cursor#11 print_uchar::$2 ] { { print_uchar::b#5 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:16::print_uchar:56 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#11 print_uchar::$2 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:20::print_uchar:56 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#11 print_uchar::$2 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:46::print_uchar:56 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_uint::w#4 print_char_cursor#11 print_uchar::$2 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 print_char_cursor#69 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } { print_char_cursor#11 = print_char_cursor#45 } }  print_ulong:12::print_uint:48::print_uchar:56 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_uint::w#4 print_char_cursor#11 print_uchar::$2 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#0 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:16::print_uchar:58 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uint::w#2 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_uint:20::print_uchar:58 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_uint::w#3 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:46::print_uchar:58 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_ulong::dw#0 print_char_cursor#11 print_uchar::$2 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#0 = print_uint::w#4 } { print_char_cursor#67 = print_char_cursor#76 } { print_uchar::b#1 = print_uchar::b#6 } { print_char_cursor#11 = print_char_cursor#69 print_char_cursor#45 } { print_char::ch#1 = print_char::ch#8 } }  print_ulong:12::print_uint:48::print_uchar:58 [ main::dw#10 print_line_cursor#16 main::dw2#10 print_char_cursor#11 print_uchar::$2 ] { { print_ulong::dw#0 = main::dw2#10 } { print_uint::w#1 = print_uint::w#4 } { print_char_cursor#11 = print_char_cursor#67 print_char_cursor#69 print_char_cursor#45 } { print_uchar::b#1 = print_uchar::b#6 } { print_char::ch#1 = print_char::ch#8 } }  ) always clobbers reg byte a 
+Statement [70] print_line_cursor#0 = print_line_cursor#10 + $28 [ print_line_cursor#0 print_char_cursor#11 ] ( print_ln:38 [ main::dw#10 print_line_cursor#0 print_char_cursor#11 ] { }  ) always clobbers reg byte a 
+Statement [71] if(print_line_cursor#0<print_char_cursor#11) goto print_ln::@2 [ print_line_cursor#0 print_char_cursor#11 ] ( print_ln:38 [ main::dw#10 print_line_cursor#0 print_char_cursor#11 ] { }  ) always clobbers reg byte a 
+Statement [73] print_line_cursor#38 = print_line_cursor#0 [ print_char_cursor#11 print_line_cursor#38 ] ( print_ln:38 [ main::dw#10 print_char_cursor#11 print_line_cursor#38 ] { }  ) always clobbers reg byte a 
+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 
 Potential registers zp[4]:2 [ main::dw#10 main::dw#1 ] : zp[4]:2 , 
 Potential registers zp[2]:6 [ print_char_cursor#30 print_line_cursor#0 ] : zp[2]:6 , 
 Potential registers zp[1]:8 [ print_char::ch#8 print_char::ch#0 print_char::ch#1 ] : zp[1]:8 , reg byte a , reg byte x , reg byte y , 
@@ -1332,58 +1298,50 @@ 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 , reg byte alu , 
-Potential registers zp[2]:20 [ main::$32 ] : zp[2]:20 , 
+Potential registers zp[2]:18 [ main::$3 ] : zp[2]:18 , 
+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 , reg byte alu , 
-Potential registers zp[2]:28 [ main::$33 ] : zp[2]:28 , 
+Potential registers zp[2]:26 [ main::$6 ] : zp[2]:26 , 
+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 , 
-Potential registers zp[2]:38 [ main::$16 ] : zp[2]:38 , 
-Potential registers zp[2]:40 [ main::$20 ] : zp[2]:40 , 
-Potential registers zp[2]:42 [ main::$24 ] : zp[2]:42 , 
-Potential registers zp[2]:44 [ main::$28 ] : zp[2]:44 , 
-Potential registers zp[1]:46 [ print_uchar::$0 ] : zp[1]:46 , reg byte a , reg byte x , reg byte y , 
-Potential registers zp[1]:47 [ print_uchar::$2 ] : zp[1]:47 , reg byte a , reg byte x , reg byte y , 
+Potential registers zp[1]:38 [ print_uchar::$0 ] : zp[1]:38 , reg byte a , reg byte x , reg byte y , 
+Potential registers zp[1]:39 [ print_uchar::$2 ] : zp[1]:39 , reg byte a , reg byte x , reg byte y , 
 
 REGISTER UPLIFT SCOPES
-Uplift Scope [] 117,289.91: zp[2]:11 [ print_char_cursor#67 print_char_cursor#45 print_char_cursor#11 print_char_cursor#69 print_char_cursor#76 ] 40,129.8: zp[2]:14 [ print_line_cursor#10 print_line_cursor#16 print_line_cursor#39 print_line_cursor#38 ] 5,015.37: zp[2]:6 [ print_char_cursor#30 print_line_cursor#0 ] 
+Uplift Scope [] 117,500.75: zp[2]:11 [ print_char_cursor#67 print_char_cursor#45 print_char_cursor#11 print_char_cursor#69 print_char_cursor#76 ] 40,130.11: zp[2]:14 [ print_line_cursor#10 print_line_cursor#16 print_line_cursor#39 print_line_cursor#38 ] 5,015.37: zp[2]:6 [ print_char_cursor#30 print_line_cursor#0 ] 
 Uplift Scope [print_char] 160,007: zp[1]:8 [ print_char::ch#8 print_char::ch#0 print_char::ch#1 ] 
-Uplift Scope [print_uchar] 20,002: zp[1]:46 [ print_uchar::$0 ] 20,002: zp[1]:47 [ print_uchar::$2 ] 9,604: 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 ] 
+Uplift Scope [print_uchar] 20,002: zp[1]:38 [ print_uchar::$0 ] 20,002: zp[1]:39 [ print_uchar::$2 ] 9,604: 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 ] 
 Uplift Scope [memset] 3,336.67: zp[2]:16 [ memset::dst#2 memset::dst#1 ] 
 Uplift Scope [print_uint] 1,089: zp[2]:9 [ print_uint::w#4 print_uint::w#2 print_uint::w#3 print_uint::w#0 print_uint::w#1 ] 
-Uplift Scope [main] 22: zp[2]:18 [ main::$3 ] 22: zp[2]:20 [ main::$32 ] 22: zp[2]:26 [ main::$6 ] 22: zp[2]:28 [ main::$33 ] 22: zp[2]:38 [ main::$16 ] 22: zp[2]:40 [ main::$20 ] 22: zp[2]:42 [ main::$24 ] 22: zp[2]:44 [ main::$28 ] 12.65: zp[4]:2 [ main::dw#10 main::dw#1 ] 7.33: zp[4]:22 [ main::dw2#1 ] 3.14: zp[4]:30 [ main::dw2#10 ] 
+Uplift Scope [main] 22: zp[2]:18 [ main::$3 ] 22: zp[2]:20 [ main::$28 ] 22: zp[2]:26 [ main::$6 ] 22: zp[2]:28 [ main::$29 ] 12.83: zp[4]:2 [ main::dw#10 main::dw#1 ] 7.33: zp[4]:22 [ main::dw2#1 ] 3.52: zp[4]:30 [ main::dw2#10 ] 
 Uplift Scope [print_ulong] 53.25: zp[4]:34 [ print_ulong::dw#0 ] 
 Uplift Scope [print_ln] 
 Uplift Scope [print_cls] 
 Uplift Scope [RADIX] 
 
-Uplifting [] best 10512 combination zp[2]:11 [ print_char_cursor#67 print_char_cursor#45 print_char_cursor#11 print_char_cursor#69 print_char_cursor#76 ] zp[2]:14 [ print_line_cursor#10 print_line_cursor#16 print_line_cursor#39 print_line_cursor#38 ] zp[2]:6 [ print_char_cursor#30 print_line_cursor#0 ] 
-Uplifting [print_char] best 10485 combination reg byte a [ print_char::ch#8 print_char::ch#0 print_char::ch#1 ] 
-Uplifting [print_uchar] best 10347 combination reg byte a [ print_uchar::$0 ] reg byte x [ print_uchar::$2 ] reg byte x [ 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 ] 
-Uplifting [memset] best 10347 combination zp[2]:16 [ memset::dst#2 memset::dst#1 ] 
-Uplifting [print_uint] best 10347 combination zp[2]:9 [ print_uint::w#4 print_uint::w#2 print_uint::w#3 print_uint::w#0 print_uint::w#1 ] 
-Uplifting [main] best 10347 combination zp[2]:18 [ main::$3 ] zp[2]:20 [ main::$32 ] zp[2]:26 [ main::$6 ] zp[2]:28 [ main::$33 ] zp[2]:38 [ main::$16 ] zp[2]:40 [ main::$20 ] zp[2]:42 [ main::$24 ] zp[2]:44 [ main::$28 ] zp[4]:2 [ main::dw#10 main::dw#1 ] zp[4]:22 [ main::dw2#1 ] zp[4]:30 [ main::dw2#10 ] 
-Uplifting [print_ulong] best 10347 combination zp[4]:34 [ print_ulong::dw#0 ] 
-Uplifting [print_ln] best 10347 combination 
-Uplifting [print_cls] best 10347 combination 
-Uplifting [RADIX] best 10347 combination 
-Coalescing zero page register [ zp[2]:18 [ main::$3 ] ] with [ zp[2]:20 [ main::$32 ] ] - score: 1
+Uplifting [] best 10032 combination zp[2]:11 [ print_char_cursor#67 print_char_cursor#45 print_char_cursor#11 print_char_cursor#69 print_char_cursor#76 ] zp[2]:14 [ print_line_cursor#10 print_line_cursor#16 print_line_cursor#39 print_line_cursor#38 ] zp[2]:6 [ print_char_cursor#30 print_line_cursor#0 ] 
+Uplifting [print_char] best 10005 combination reg byte a [ print_char::ch#8 print_char::ch#0 print_char::ch#1 ] 
+Uplifting [print_uchar] best 9867 combination reg byte a [ print_uchar::$0 ] reg byte x [ print_uchar::$2 ] reg byte x [ 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 ] 
+Uplifting [memset] best 9867 combination zp[2]:16 [ memset::dst#2 memset::dst#1 ] 
+Uplifting [print_uint] best 9867 combination zp[2]:9 [ print_uint::w#4 print_uint::w#2 print_uint::w#3 print_uint::w#0 print_uint::w#1 ] 
+Uplifting [main] best 9867 combination zp[2]:18 [ main::$3 ] zp[2]:20 [ main::$28 ] zp[2]:26 [ main::$6 ] zp[2]:28 [ main::$29 ] zp[4]:2 [ main::dw#10 main::dw#1 ] zp[4]:22 [ main::dw2#1 ] zp[4]:30 [ main::dw2#10 ] 
+Uplifting [print_ulong] best 9867 combination zp[4]:34 [ print_ulong::dw#0 ] 
+Uplifting [print_ln] best 9867 combination 
+Uplifting [print_cls] best 9867 combination 
+Uplifting [RADIX] best 9867 combination 
+Coalescing zero page register [ zp[2]:18 [ main::$3 ] ] with [ zp[2]:20 [ main::$28 ] ] - score: 1
 Coalescing zero page register [ zp[4]:22 [ main::dw2#1 ] ] with [ zp[4]:30 [ main::dw2#10 ] ] - score: 1
-Coalescing zero page register [ zp[2]:26 [ main::$6 ] ] with [ zp[2]:28 [ main::$33 ] ] - score: 1
+Coalescing zero page register [ zp[2]:26 [ main::$6 ] ] with [ zp[2]:28 [ main::$29 ] ] - score: 1
 Coalescing zero page register [ zp[4]:22 [ main::dw2#1 main::dw2#10 ] ] with [ zp[4]:34 [ print_ulong::dw#0 ] ] - score: 1
 Coalescing zero page register [ zp[2]:16 [ memset::dst#2 memset::dst#1 ] ] with [ zp[2]:6 [ print_char_cursor#30 print_line_cursor#0 ] ]
-Coalescing zero page register [ zp[2]:18 [ main::$3 main::$32 ] ] with [ zp[2]:9 [ print_uint::w#4 print_uint::w#2 print_uint::w#3 print_uint::w#0 print_uint::w#1 ] ]
-Coalescing zero page register [ zp[2]:26 [ main::$6 main::$33 ] ] with [ zp[2]:11 [ print_char_cursor#67 print_char_cursor#45 print_char_cursor#11 print_char_cursor#69 print_char_cursor#76 ] ]
-Coalescing zero page register [ zp[2]:38 [ main::$16 ] ] with [ zp[2]:16 [ memset::dst#2 memset::dst#1 print_char_cursor#30 print_line_cursor#0 ] ]
+Coalescing zero page register [ zp[2]:18 [ main::$3 main::$28 ] ] with [ zp[2]:9 [ print_uint::w#4 print_uint::w#2 print_uint::w#3 print_uint::w#0 print_uint::w#1 ] ]
+Coalescing zero page register [ zp[2]:26 [ main::$6 main::$29 ] ] with [ zp[2]:11 [ print_char_cursor#67 print_char_cursor#45 print_char_cursor#11 print_char_cursor#69 print_char_cursor#76 ] ]
 Allocated (was zp[2]:14) zp[2]:6 [ print_line_cursor#10 print_line_cursor#16 print_line_cursor#39 print_line_cursor#38 ]
-Allocated (was zp[2]:18) zp[2]:8 [ main::$3 main::$32 print_uint::w#4 print_uint::w#2 print_uint::w#3 print_uint::w#0 print_uint::w#1 ]
-Allocated (was zp[4]:22) zp[4]:10 [ main::dw2#1 main::dw2#10 print_ulong::dw#0 ]
-Allocated (was zp[2]:26) zp[2]:14 [ main::$6 main::$33 print_char_cursor#67 print_char_cursor#45 print_char_cursor#11 print_char_cursor#69 print_char_cursor#76 ]
-Allocated (was zp[2]:38) zp[2]:16 [ main::$16 memset::dst#2 memset::dst#1 print_char_cursor#30 print_line_cursor#0 ]
-Allocated (was zp[2]:40) zp[2]:18 [ main::$20 ]
-Allocated (was zp[2]:42) zp[2]:20 [ main::$24 ]
-Allocated (was zp[2]:44) zp[2]:22 [ main::$28 ]
+Allocated (was zp[2]:16) zp[2]:8 [ memset::dst#2 memset::dst#1 print_char_cursor#30 print_line_cursor#0 ]
+Allocated (was zp[2]:18) zp[2]:10 [ main::$3 main::$28 print_uint::w#4 print_uint::w#2 print_uint::w#3 print_uint::w#0 print_uint::w#1 ]
+Allocated (was zp[4]:22) zp[4]:12 [ main::dw2#1 main::dw2#10 print_ulong::dw#0 ]
+Allocated (was zp[2]:26) zp[2]:16 [ main::$6 main::$29 print_char_cursor#67 print_char_cursor#45 print_char_cursor#11 print_char_cursor#69 print_char_cursor#76 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
@@ -1400,25 +1358,21 @@ ASSEMBLER BEFORE OPTIMIZATION
 :BasicUpstart(main)
   // Global Constants & labels
   .label print_screen = $400
-  .label print_line_cursor = $10
-  .label print_char_cursor = $e
-  .label print_char_cursor_1 = $10
+  .label print_line_cursor = 8
+  .label print_char_cursor = $10
+  .label print_char_cursor_1 = 8
   .label print_line_cursor_1 = 6
 .segment Code
   // main
 main: {
-    .label __3 = 8
-    .label __6 = $e
-    .label __16 = $10
-    .label __20 = $12
-    .label __24 = $14
-    .label __28 = $16
-    .label __32 = 8
-    .label __33 = $e
-    .label dw2 = $a
+    .label __3 = $a
+    .label __6 = $10
+    .label __28 = $a
+    .label __29 = $10
+    .label dw2 = $c
     .label dw = 2
     // [1] call print_cls 
-    // [45] phi from main to print_cls [phi:main->print_cls]
+    // [41] phi from main to print_cls [phi:main->print_cls]
   print_cls_from_main:
     jsr print_cls
     // [2] phi from main to main::@1 [phi:main->main::@1]
@@ -1465,45 +1419,45 @@ main: {
     rts
     // main::@2
   __b2:
-    // [5] main::$3 = > main::dw#10 -- vwuz1=_hi_vduz2 
+    // [5] main::$3 = _word1_ main::dw#10 -- vwuz1=_word1_vduz2 
     lda.z dw+2
     sta.z __3
     lda.z dw+3
     sta.z __3+1
-    // [6] main::$32 = main::$3 + $1111 -- vwuz1=vwuz1_plus_vwuc1 
+    // [6] main::$28 = main::$3 + $1111 -- vwuz1=vwuz1_plus_vwuc1 
     clc
-    lda.z __32
+    lda.z __28
     adc #<$1111
-    sta.z __32
-    lda.z __32+1
+    sta.z __28
+    lda.z __28+1
     adc #>$1111
-    sta.z __32+1
-    // [7] main::dw2#1 = main::dw#10 hi= main::$32 -- vduz1=vduz2_sethi_vwuz3 
+    sta.z __28+1
+    // [7] main::dw2#1 = main::dw#10 word1= main::$28 -- vduz1=vduz2_setword1_vwuz3 
     lda.z dw
     sta.z dw2
     lda.z dw+1
     sta.z dw2+1
-    lda.z __32
+    lda.z __28
     sta.z dw2+2
-    lda.z __32+1
+    lda.z __28+1
     sta.z dw2+3
-    // [8] main::$6 = < main::dw#10 -- vwuz1=_lo_vduz2 
+    // [8] main::$6 = _word0_ main::dw#10 -- vwuz1=_word0_vduz2 
     lda.z dw
     sta.z __6
     lda.z dw+1
     sta.z __6+1
-    // [9] main::$33 = main::$6 + $1111 -- vwuz1=vwuz1_plus_vwuc1 
+    // [9] main::$29 = main::$6 + $1111 -- vwuz1=vwuz1_plus_vwuc1 
     clc
-    lda.z __33
+    lda.z __29
     adc #<$1111
-    sta.z __33
-    lda.z __33+1
+    sta.z __29
+    lda.z __29+1
     adc #>$1111
-    sta.z __33+1
-    // [10] main::dw2#10 = main::dw2#1 lo= main::$33 -- vduz1=vduz1_setlo_vwuz2 
-    lda.z __33
+    sta.z __29+1
+    // [10] main::dw2#10 = main::dw2#1 word0= main::$29 -- vduz1=vduz1_setword0_vwuz2 
+    lda.z __29
     sta.z dw2
-    lda.z __33+1
+    lda.z __29+1
     sta.z dw2+1
     // [11] print_ulong::dw#0 = main::dw2#10
     // [12] call print_ulong 
@@ -1515,25 +1469,25 @@ main: {
     // main::@3
   __b3:
     // [14] call print_char 
-    // [54] phi from main::@3 to print_char [phi:main::@3->print_char]
+    // [50] phi from main::@3 to print_char [phi:main::@3->print_char]
   print_char_from___b3:
-    // [54] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@3->print_char#0] -- register_copy 
-    // [54] phi print_char::ch#8 = ' ' [phi:main::@3->print_char#1] -- vbuaa=vbuc1 
+    // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@3->print_char#0] -- register_copy 
+    // [50] phi print_char::ch#8 = ' ' [phi:main::@3->print_char#1] -- vbuaa=vbuc1 
     lda #' '
     jsr print_char
     jmp __b4
     // main::@4
   __b4:
-    // [15] print_uint::w#2 = > main::dw2#10 -- vwuz1=_hi_vduz2 
+    // [15] print_uint::w#2 = _word1_ main::dw2#10 -- vwuz1=_word1_vduz2 
     lda.z dw2+2
     sta.z print_uint.w
     lda.z dw2+3
     sta.z print_uint.w+1
     // [16] call print_uint 
-    // [58] phi from main::@4 to print_uint [phi:main::@4->print_uint]
+    // [54] phi from main::@4 to print_uint [phi:main::@4->print_uint]
   print_uint_from___b4:
-    // [58] phi print_char_cursor#67 = print_char_cursor#11 [phi:main::@4->print_uint#0] -- register_copy 
-    // [58] phi print_uint::w#4 = print_uint::w#2 [phi:main::@4->print_uint#1] -- register_copy 
+    // [54] phi print_char_cursor#67 = print_char_cursor#11 [phi:main::@4->print_uint#0] -- register_copy 
+    // [54] phi print_uint::w#4 = print_uint::w#2 [phi:main::@4->print_uint#1] -- register_copy 
     jsr print_uint
     // [17] phi from main::@4 to main::@5 [phi:main::@4->main::@5]
   __b5_from___b4:
@@ -1542,25 +1496,25 @@ main: {
   __b5:
     // [18] call print_char 
   // Test get high word of dword
-    // [54] phi from main::@5 to print_char [phi:main::@5->print_char]
+    // [50] phi from main::@5 to print_char [phi:main::@5->print_char]
   print_char_from___b5:
-    // [54] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@5->print_char#0] -- register_copy 
-    // [54] phi print_char::ch#8 = ' ' [phi:main::@5->print_char#1] -- vbuaa=vbuc1 
+    // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@5->print_char#0] -- register_copy 
+    // [50] phi print_char::ch#8 = ' ' [phi:main::@5->print_char#1] -- vbuaa=vbuc1 
     lda #' '
     jsr print_char
     jmp __b6
     // main::@6
   __b6:
-    // [19] print_uint::w#3 = < main::dw2#10 -- vwuz1=_lo_vduz2 
+    // [19] print_uint::w#3 = _word0_ main::dw2#10 -- vwuz1=_word0_vduz2 
     lda.z dw2
     sta.z print_uint.w
     lda.z dw2+1
     sta.z print_uint.w+1
     // [20] call print_uint 
-    // [58] phi from main::@6 to print_uint [phi:main::@6->print_uint]
+    // [54] phi from main::@6 to print_uint [phi:main::@6->print_uint]
   print_uint_from___b6:
-    // [58] phi print_char_cursor#67 = print_char_cursor#11 [phi:main::@6->print_uint#0] -- register_copy 
-    // [58] phi print_uint::w#4 = print_uint::w#3 [phi:main::@6->print_uint#1] -- register_copy 
+    // [54] phi print_char_cursor#67 = print_char_cursor#11 [phi:main::@6->print_uint#0] -- register_copy 
+    // [54] phi print_uint::w#4 = print_uint::w#3 [phi:main::@6->print_uint#1] -- register_copy 
     jsr print_uint
     // [21] phi from main::@6 to main::@7 [phi:main::@6->main::@7]
   __b7_from___b6:
@@ -1569,129 +1523,109 @@ main: {
   __b7:
     // [22] call print_char 
   // Test get low word of dword
-    // [54] phi from main::@7 to print_char [phi:main::@7->print_char]
+    // [50] phi from main::@7 to print_char [phi:main::@7->print_char]
   print_char_from___b7:
-    // [54] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@7->print_char#0] -- register_copy 
-    // [54] phi print_char::ch#8 = ' ' [phi:main::@7->print_char#1] -- vbuaa=vbuc1 
+    // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@7->print_char#0] -- register_copy 
+    // [50] phi print_char::ch#8 = ' ' [phi:main::@7->print_char#1] -- vbuaa=vbuc1 
     lda #' '
     jsr print_char
     jmp __b8
     // main::@8
   __b8:
-    // [23] main::$16 = > main::dw2#10 -- vwuz1=_hi_vduz2 
-    lda.z dw2+2
-    sta.z __16
-    lda.z dw2+3
-    sta.z __16+1
-    // [24] print_uchar::b#2 = > main::$16 -- vbuxx=_hi_vwuz1 
-    ldx.z __16+1
-    // [25] call print_uchar 
-    // [64] phi from main::@8 to print_uchar [phi:main::@8->print_uchar]
+    // [23] print_uchar::b#2 = _byte3_ main::dw2#10 -- vbuxx=_byte3_vduz1 
+    ldx.z dw2+3
+    // [24] call print_uchar 
+    // [60] phi from main::@8 to print_uchar [phi:main::@8->print_uchar]
   print_uchar_from___b8:
-    // [64] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@8->print_uchar#0] -- register_copy 
-    // [64] phi print_uchar::b#6 = print_uchar::b#2 [phi:main::@8->print_uchar#1] -- register_copy 
+    // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@8->print_uchar#0] -- register_copy 
+    // [60] phi print_uchar::b#6 = print_uchar::b#2 [phi:main::@8->print_uchar#1] -- register_copy 
     jsr print_uchar
-    // [26] phi from main::@8 to main::@9 [phi:main::@8->main::@9]
+    // [25] phi from main::@8 to main::@9 [phi:main::@8->main::@9]
   __b9_from___b8:
     jmp __b9
     // main::@9
   __b9:
-    // [27] call print_char 
+    // [26] call print_char 
   // Test get high high byte of dword
-    // [54] phi from main::@9 to print_char [phi:main::@9->print_char]
+    // [50] phi from main::@9 to print_char [phi:main::@9->print_char]
   print_char_from___b9:
-    // [54] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@9->print_char#0] -- register_copy 
-    // [54] phi print_char::ch#8 = ' ' [phi:main::@9->print_char#1] -- vbuaa=vbuc1 
+    // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@9->print_char#0] -- register_copy 
+    // [50] phi print_char::ch#8 = ' ' [phi:main::@9->print_char#1] -- vbuaa=vbuc1 
     lda #' '
     jsr print_char
     jmp __b10
     // main::@10
   __b10:
-    // [28] main::$20 = > main::dw2#10 -- vwuz1=_hi_vduz2 
-    lda.z dw2+2
-    sta.z __20
-    lda.z dw2+3
-    sta.z __20+1
-    // [29] print_uchar::b#3 = < main::$20 -- vbuxx=_lo_vwuz1 
-    ldx.z __20
-    // [30] call print_uchar 
-    // [64] phi from main::@10 to print_uchar [phi:main::@10->print_uchar]
+    // [27] print_uchar::b#3 = _byte2_ main::dw2#10 -- vbuxx=_byte2_vduz1 
+    ldx.z dw2+2
+    // [28] call print_uchar 
+    // [60] phi from main::@10 to print_uchar [phi:main::@10->print_uchar]
   print_uchar_from___b10:
-    // [64] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@10->print_uchar#0] -- register_copy 
-    // [64] phi print_uchar::b#6 = print_uchar::b#3 [phi:main::@10->print_uchar#1] -- register_copy 
+    // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@10->print_uchar#0] -- register_copy 
+    // [60] phi print_uchar::b#6 = print_uchar::b#3 [phi:main::@10->print_uchar#1] -- register_copy 
     jsr print_uchar
-    // [31] phi from main::@10 to main::@11 [phi:main::@10->main::@11]
+    // [29] phi from main::@10 to main::@11 [phi:main::@10->main::@11]
   __b11_from___b10:
     jmp __b11
     // main::@11
   __b11:
-    // [32] call print_char 
+    // [30] call print_char 
   // Test get low high byte of dword
-    // [54] phi from main::@11 to print_char [phi:main::@11->print_char]
+    // [50] phi from main::@11 to print_char [phi:main::@11->print_char]
   print_char_from___b11:
-    // [54] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@11->print_char#0] -- register_copy 
-    // [54] phi print_char::ch#8 = ' ' [phi:main::@11->print_char#1] -- vbuaa=vbuc1 
+    // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@11->print_char#0] -- register_copy 
+    // [50] phi print_char::ch#8 = ' ' [phi:main::@11->print_char#1] -- vbuaa=vbuc1 
     lda #' '
     jsr print_char
     jmp __b12
     // main::@12
   __b12:
-    // [33] main::$24 = < main::dw2#10 -- vwuz1=_lo_vduz2 
-    lda.z dw2
-    sta.z __24
-    lda.z dw2+1
-    sta.z __24+1
-    // [34] print_uchar::b#4 = > main::$24 -- vbuxx=_hi_vwuz1 
-    ldx.z __24+1
-    // [35] call print_uchar 
-    // [64] phi from main::@12 to print_uchar [phi:main::@12->print_uchar]
+    // [31] print_uchar::b#4 = > main::dw2#10 -- vbuxx=_byte1_vduz1 
+    ldx.z dw2+1
+    // [32] call print_uchar 
+    // [60] phi from main::@12 to print_uchar [phi:main::@12->print_uchar]
   print_uchar_from___b12:
-    // [64] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@12->print_uchar#0] -- register_copy 
-    // [64] phi print_uchar::b#6 = print_uchar::b#4 [phi:main::@12->print_uchar#1] -- register_copy 
+    // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@12->print_uchar#0] -- register_copy 
+    // [60] phi print_uchar::b#6 = print_uchar::b#4 [phi:main::@12->print_uchar#1] -- register_copy 
     jsr print_uchar
-    // [36] phi from main::@12 to main::@13 [phi:main::@12->main::@13]
+    // [33] phi from main::@12 to main::@13 [phi:main::@12->main::@13]
   __b13_from___b12:
     jmp __b13
     // main::@13
   __b13:
-    // [37] call print_char 
+    // [34] call print_char 
   // Test get high low byte of dword
-    // [54] phi from main::@13 to print_char [phi:main::@13->print_char]
+    // [50] phi from main::@13 to print_char [phi:main::@13->print_char]
   print_char_from___b13:
-    // [54] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@13->print_char#0] -- register_copy 
-    // [54] phi print_char::ch#8 = ' ' [phi:main::@13->print_char#1] -- vbuaa=vbuc1 
+    // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@13->print_char#0] -- register_copy 
+    // [50] phi print_char::ch#8 = ' ' [phi:main::@13->print_char#1] -- vbuaa=vbuc1 
     lda #' '
     jsr print_char
     jmp __b14
     // main::@14
   __b14:
-    // [38] main::$28 = < main::dw2#10 -- vwuz1=_lo_vduz2 
-    lda.z dw2
-    sta.z __28
-    lda.z dw2+1
-    sta.z __28+1
-    // [39] print_uchar::b#5 = < main::$28 -- vbuxx=_lo_vwuz1 
-    ldx.z __28
-    // [40] call print_uchar 
-    // [64] phi from main::@14 to print_uchar [phi:main::@14->print_uchar]
+    // [35] print_uchar::b#5 = < main::dw2#10 -- vbuxx=_byte0_vduz1 
+    ldx.z dw2
+    // [36] call print_uchar 
+    // [60] phi from main::@14 to print_uchar [phi:main::@14->print_uchar]
   print_uchar_from___b14:
-    // [64] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@14->print_uchar#0] -- register_copy 
-    // [64] phi print_uchar::b#6 = print_uchar::b#5 [phi:main::@14->print_uchar#1] -- register_copy 
+    // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@14->print_uchar#0] -- register_copy 
+    // [60] phi print_uchar::b#6 = print_uchar::b#5 [phi:main::@14->print_uchar#1] -- register_copy 
     jsr print_uchar
-    // [41] phi from main::@14 to main::@15 [phi:main::@14->main::@15]
+    // [37] phi from main::@14 to main::@15 [phi:main::@14->main::@15]
   __b15_from___b14:
     jmp __b15
     // main::@15
   __b15:
-    // [42] call print_ln 
+    // [38] call print_ln 
   // Test get low low byte of dword
-    // [72] phi from main::@15 to print_ln [phi:main::@15->print_ln]
+    // [68] phi from main::@15 to print_ln [phi:main::@15->print_ln]
   print_ln_from___b15:
     jsr print_ln
     jmp __b16
     // main::@16
   __b16:
-    // [43] main::dw#1 = ++ main::dw#10 -- vduz1=_inc_vduz1 
+    // [39] main::dw#1 = ++ main::dw#10 -- vduz1=_inc_vduz1 
     inc.z dw
     bne !+
     inc.z dw+1
@@ -1700,7 +1634,7 @@ main: {
     bne !+
     inc.z dw+3
   !:
-    // [44] print_line_cursor#39 = print_line_cursor#0 -- pbuz1=pbuz2 
+    // [40] print_line_cursor#39 = print_line_cursor#0 -- pbuz1=pbuz2 
     lda.z print_line_cursor
     sta.z print_line_cursor_1
     lda.z print_line_cursor+1
@@ -1715,65 +1649,65 @@ main: {
   // print_cls
 // Clear the screen. Also resets current line/char cursor.
 print_cls: {
-    // [46] call memset 
-    // [78] phi from print_cls to memset [phi:print_cls->memset]
+    // [42] call memset 
+    // [74] phi from print_cls to memset [phi:print_cls->memset]
   memset_from_print_cls:
     jsr memset
     jmp __breturn
     // print_cls::@return
   __breturn:
-    // [47] return 
+    // [43] return 
     rts
 }
   // print_ulong
 // Print a unsigned long as HEX
-// print_ulong(dword zp($a) dw)
+// print_ulong(dword zp($c) dw)
 print_ulong: {
-    .label dw = $a
-    // [48] print_uint::w#0 = > print_ulong::dw#0 -- vwuz1=_hi_vduz2 
+    .label dw = $c
+    // [44] print_uint::w#0 = > print_ulong::dw#0 -- vwuz1=_hi_vduz2 
     lda.z dw+2
     sta.z print_uint.w
     lda.z dw+3
     sta.z print_uint.w+1
-    // [49] print_char_cursor#76 = print_char_cursor#30 -- pbuz1=pbuz2 
+    // [45] print_char_cursor#76 = print_char_cursor#30 -- pbuz1=pbuz2 
     lda.z print_char_cursor_1
     sta.z print_char_cursor
     lda.z print_char_cursor_1+1
     sta.z print_char_cursor+1
-    // [50] call print_uint 
-    // [58] phi from print_ulong to print_uint [phi:print_ulong->print_uint]
+    // [46] call print_uint 
+    // [54] phi from print_ulong to print_uint [phi:print_ulong->print_uint]
   print_uint_from_print_ulong:
-    // [58] phi print_char_cursor#67 = print_char_cursor#76 [phi:print_ulong->print_uint#0] -- register_copy 
-    // [58] phi print_uint::w#4 = print_uint::w#0 [phi:print_ulong->print_uint#1] -- register_copy 
+    // [54] phi print_char_cursor#67 = print_char_cursor#76 [phi:print_ulong->print_uint#0] -- register_copy 
+    // [54] phi print_uint::w#4 = print_uint::w#0 [phi:print_ulong->print_uint#1] -- register_copy 
     jsr print_uint
     jmp __b1
     // print_ulong::@1
   __b1:
-    // [51] print_uint::w#1 = < print_ulong::dw#0 -- vwuz1=_lo_vduz2 
+    // [47] print_uint::w#1 = < print_ulong::dw#0 -- vwuz1=_lo_vduz2 
     lda.z dw
     sta.z print_uint.w
     lda.z dw+1
     sta.z print_uint.w+1
-    // [52] call print_uint 
-    // [58] phi from print_ulong::@1 to print_uint [phi:print_ulong::@1->print_uint]
+    // [48] call print_uint 
+    // [54] phi from print_ulong::@1 to print_uint [phi:print_ulong::@1->print_uint]
   print_uint_from___b1:
-    // [58] phi print_char_cursor#67 = print_char_cursor#11 [phi:print_ulong::@1->print_uint#0] -- register_copy 
-    // [58] phi print_uint::w#4 = print_uint::w#1 [phi:print_ulong::@1->print_uint#1] -- register_copy 
+    // [54] phi print_char_cursor#67 = print_char_cursor#11 [phi:print_ulong::@1->print_uint#0] -- register_copy 
+    // [54] phi print_uint::w#4 = print_uint::w#1 [phi:print_ulong::@1->print_uint#1] -- register_copy 
     jsr print_uint
     jmp __breturn
     // print_ulong::@return
   __breturn:
-    // [53] return 
+    // [49] return 
     rts
 }
   // print_char
 // Print a single char
 // print_char(byte register(A) ch)
 print_char: {
-    // [55] *print_char_cursor#45 = print_char::ch#8 -- _deref_pbuz1=vbuaa 
+    // [51] *print_char_cursor#45 = print_char::ch#8 -- _deref_pbuz1=vbuaa 
     ldy #0
     sta (print_char_cursor),y
-    // [56] print_char_cursor#11 = ++ print_char_cursor#45 -- pbuz1=_inc_pbuz1 
+    // [52] print_char_cursor#11 = ++ print_char_cursor#45 -- pbuz1=_inc_pbuz1 
     inc.z print_char_cursor
     bne !+
     inc.z print_char_cursor+1
@@ -1781,90 +1715,90 @@ print_char: {
     jmp __breturn
     // print_char::@return
   __breturn:
-    // [57] return 
+    // [53] return 
     rts
 }
   // print_uint
 // Print a unsigned int as HEX
-// print_uint(word zp(8) w)
+// print_uint(word zp($a) w)
 print_uint: {
-    .label w = 8
-    // [59] print_uchar::b#0 = > print_uint::w#4 -- vbuxx=_hi_vwuz1 
+    .label w = $a
+    // [55] print_uchar::b#0 = > print_uint::w#4 -- vbuxx=_hi_vwuz1 
     ldx.z w+1
-    // [60] call print_uchar 
-    // [64] phi from print_uint to print_uchar [phi:print_uint->print_uchar]
+    // [56] call print_uchar 
+    // [60] phi from print_uint to print_uchar [phi:print_uint->print_uchar]
   print_uchar_from_print_uint:
-    // [64] phi print_char_cursor#69 = print_char_cursor#67 [phi:print_uint->print_uchar#0] -- register_copy 
-    // [64] phi print_uchar::b#6 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy 
+    // [60] phi print_char_cursor#69 = print_char_cursor#67 [phi:print_uint->print_uchar#0] -- register_copy 
+    // [60] phi print_uchar::b#6 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy 
     jsr print_uchar
     jmp __b1
     // print_uint::@1
   __b1:
-    // [61] print_uchar::b#1 = < print_uint::w#4 -- vbuxx=_lo_vwuz1 
+    // [57] print_uchar::b#1 = < print_uint::w#4 -- vbuxx=_lo_vwuz1 
     ldx.z w
-    // [62] call print_uchar 
-    // [64] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar]
+    // [58] call print_uchar 
+    // [60] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar]
   print_uchar_from___b1:
-    // [64] phi print_char_cursor#69 = print_char_cursor#11 [phi:print_uint::@1->print_uchar#0] -- register_copy 
-    // [64] phi print_uchar::b#6 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy 
+    // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:print_uint::@1->print_uchar#0] -- register_copy 
+    // [60] phi print_uchar::b#6 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy 
     jsr print_uchar
     jmp __breturn
     // print_uint::@return
   __breturn:
-    // [63] return 
+    // [59] return 
     rts
 }
   // print_uchar
 // Print a char as HEX
 // print_uchar(byte register(X) b)
 print_uchar: {
-    // [65] print_uchar::$0 = print_uchar::b#6 >> 4 -- vbuaa=vbuxx_ror_4 
+    // [61] print_uchar::$0 = print_uchar::b#6 >> 4 -- vbuaa=vbuxx_ror_4 
     txa
     lsr
     lsr
     lsr
     lsr
-    // [66] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa 
+    // [62] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa 
     tay
     lda print_hextab,y
-    // [67] call print_char 
+    // [63] call print_char 
   // Table of hexadecimal digits
-    // [54] phi from print_uchar to print_char [phi:print_uchar->print_char]
+    // [50] phi from print_uchar to print_char [phi:print_uchar->print_char]
   print_char_from_print_uchar:
-    // [54] phi print_char_cursor#45 = print_char_cursor#69 [phi:print_uchar->print_char#0] -- register_copy 
-    // [54] phi print_char::ch#8 = print_char::ch#0 [phi:print_uchar->print_char#1] -- register_copy 
+    // [50] phi print_char_cursor#45 = print_char_cursor#69 [phi:print_uchar->print_char#0] -- register_copy 
+    // [50] phi print_char::ch#8 = print_char::ch#0 [phi:print_uchar->print_char#1] -- register_copy 
     jsr print_char
     jmp __b1
     // print_uchar::@1
   __b1:
-    // [68] print_uchar::$2 = print_uchar::b#6 & $f -- vbuxx=vbuxx_band_vbuc1 
+    // [64] print_uchar::$2 = print_uchar::b#6 & $f -- vbuxx=vbuxx_band_vbuc1 
     lda #$f
     axs #0
-    // [69] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx 
+    // [65] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx 
     lda print_hextab,x
-    // [70] call print_char 
-    // [54] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char]
+    // [66] call print_char 
+    // [50] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char]
   print_char_from___b1:
-    // [54] phi print_char_cursor#45 = print_char_cursor#11 [phi:print_uchar::@1->print_char#0] -- register_copy 
-    // [54] phi print_char::ch#8 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy 
+    // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:print_uchar::@1->print_char#0] -- register_copy 
+    // [50] phi print_char::ch#8 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy 
     jsr print_char
     jmp __breturn
     // print_uchar::@return
   __breturn:
-    // [71] return 
+    // [67] return 
     rts
 }
   // print_ln
 // Print a newline
 print_ln: {
-    // [73] phi from print_ln print_ln::@2 to print_ln::@1 [phi:print_ln/print_ln::@2->print_ln::@1]
+    // [69] phi from print_ln print_ln::@2 to print_ln::@1 [phi:print_ln/print_ln::@2->print_ln::@1]
   __b1_from_print_ln:
   __b1_from___b2:
-    // [73] phi print_line_cursor#10 = print_line_cursor#16 [phi:print_ln/print_ln::@2->print_ln::@1#0] -- register_copy 
+    // [69] phi print_line_cursor#10 = print_line_cursor#16 [phi:print_ln/print_ln::@2->print_ln::@1#0] -- register_copy 
     jmp __b1
     // print_ln::@1
   __b1:
-    // [74] print_line_cursor#0 = print_line_cursor#10 + $28 -- pbuz1=pbuz2_plus_vbuc1 
+    // [70] print_line_cursor#0 = print_line_cursor#10 + $28 -- pbuz1=pbuz2_plus_vbuc1 
     lda #$28
     clc
     adc.z print_line_cursor_1
@@ -1872,7 +1806,7 @@ print_ln: {
     lda #0
     adc.z print_line_cursor_1+1
     sta.z print_line_cursor+1
-    // [75] if(print_line_cursor#0<print_char_cursor#11) goto print_ln::@2 -- pbuz1_lt_pbuz2_then_la1 
+    // [71] if(print_line_cursor#0<print_char_cursor#11) goto print_ln::@2 -- pbuz1_lt_pbuz2_then_la1 
     lda.z print_line_cursor+1
     cmp.z print_char_cursor+1
     bcc __b2
@@ -1884,11 +1818,11 @@ print_ln: {
     jmp __breturn
     // print_ln::@return
   __breturn:
-    // [76] return 
+    // [72] return 
     rts
     // print_ln::@2
   __b2:
-    // [77] print_line_cursor#38 = print_line_cursor#0 -- pbuz1=pbuz2 
+    // [73] print_line_cursor#38 = print_line_cursor#0 -- pbuz1=pbuz2 
     lda.z print_line_cursor
     sta.z print_line_cursor_1
     lda.z print_line_cursor+1
@@ -1902,10 +1836,10 @@ memset: {
     .const num = $3e8
     .label str = print_screen
     .label end = str+num
-    .label dst = $10
-    // [79] phi from memset to memset::@1 [phi:memset->memset::@1]
+    .label dst = 8
+    // [75] phi from memset to memset::@1 [phi:memset->memset::@1]
   __b1_from_memset:
-    // [79] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 
+    // [75] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 
     lda #<str
     sta.z dst
     lda #>str
@@ -1913,7 +1847,7 @@ memset: {
     jmp __b1
     // memset::@1
   __b1:
-    // [80] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 
+    // [76] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 
     lda.z dst+1
     cmp #>end
     bne __b2
@@ -1923,22 +1857,22 @@ memset: {
     jmp __breturn
     // memset::@return
   __breturn:
-    // [81] return 
+    // [77] return 
     rts
     // memset::@2
   __b2:
-    // [82] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 
+    // [78] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 
     lda #c
     ldy #0
     sta (dst),y
-    // [83] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 
+    // [79] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 
     inc.z dst
     bne !+
     inc.z dst+1
   !:
-    // [79] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1]
+    // [75] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1]
   __b1_from___b2:
-    // [79] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy 
+    // [75] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy 
     jmp __b1
 }
   // File Data
@@ -1975,8 +1909,6 @@ Removing instruction jmp __breturn
 Removing instruction jmp __b1
 Removing instruction jmp __breturn
 Succesful ASM optimization Pass5NextJumpElimination
-Replacing instruction ldx.z __16+1 with TAX
-Replacing instruction ldx.z __24+1 with TAX
 Removing instruction lda.z print_line_cursor+1
 Succesful ASM optimization Pass5UnnecesaryLoadElimination
 Replacing label __b1_from___b2 with __b1
@@ -2048,26 +1980,22 @@ constant byte RADIX::DECIMAL = $a
 constant byte RADIX::HEXADECIMAL = $10
 constant byte RADIX::OCTAL = 8
 void main()
-word~ main::$16 zp[2]:16 22.0
-word~ main::$20 zp[2]:18 22.0
-word~ main::$24 zp[2]:20 22.0
-word~ main::$28 zp[2]:22 22.0
-word~ main::$3 zp[2]:8 22.0
-word~ main::$32 zp[2]:8 22.0
-word~ main::$33 zp[2]:14 22.0
-word~ main::$6 zp[2]:14 22.0
+word~ main::$28 zp[2]:10 22.0
+word~ main::$29 zp[2]:16 22.0
+word~ main::$3 zp[2]:10 22.0
+word~ main::$6 zp[2]:16 22.0
 dword main::dw
 dword main::dw#1 dw zp[4]:2 11.0
-dword main::dw#10 dw zp[4]:2 1.65
+dword main::dw#10 dw zp[4]:2 1.8333333333333335
 dword main::dw2
-dword main::dw2#1 dw2 zp[4]:10 7.333333333333333
-dword main::dw2#10 dw2 zp[4]:10 3.142857142857143
+dword main::dw2#1 dw2 zp[4]:12 7.333333333333333
+dword main::dw2#10 dw2 zp[4]:12 3.52
 void* memset(void* memset::str , byte memset::c , word memset::num)
 byte memset::c
 constant byte memset::c#0 c = ' '
 byte* memset::dst
-byte* memset::dst#1 dst zp[2]:16 2002.0
-byte* memset::dst#2 dst zp[2]:16 1334.6666666666667
+byte* memset::dst#1 dst zp[2]:8 2002.0
+byte* memset::dst#2 dst zp[2]:8 1334.6666666666667
 byte* memset::end
 constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0
 word memset::num
@@ -2081,18 +2009,18 @@ byte print_char::ch#0 reg byte a 20002.0
 byte print_char::ch#1 reg byte a 20002.0
 byte print_char::ch#8 reg byte a 120003.0
 byte* print_char_cursor
-byte* print_char_cursor#11 print_char_cursor zp[2]:14 2424.739999999999
-byte* print_char_cursor#30 print_char_cursor_1 zp[2]:16 11.2
-byte* print_char_cursor#45 print_char_cursor zp[2]:14 110035.0
-byte* print_char_cursor#67 print_char_cursor zp[2]:14 612.5
-byte* print_char_cursor#69 print_char_cursor zp[2]:14 4015.6666666666656
-byte* print_char_cursor#76 print_char_cursor zp[2]:14 202.0
+byte* print_char_cursor#11 print_char_cursor zp[2]:16 2635.5869565217386
+byte* print_char_cursor#30 print_char_cursor_1 zp[2]:8 11.2
+byte* print_char_cursor#45 print_char_cursor zp[2]:16 110035.0
+byte* print_char_cursor#67 print_char_cursor zp[2]:16 612.5
+byte* print_char_cursor#69 print_char_cursor zp[2]:16 4015.6666666666656
+byte* print_char_cursor#76 print_char_cursor zp[2]:16 202.0
 void print_cls()
 constant const byte* print_hextab[]  = "0123456789abcdef"z
 byte* print_line_cursor
-byte* print_line_cursor#0 print_line_cursor zp[2]:16 5004.166666666666
+byte* print_line_cursor#0 print_line_cursor zp[2]:8 5004.166666666666
 byte* print_line_cursor#10 print_line_cursor_1 zp[2]:6 20103.0
-byte* print_line_cursor#16 print_line_cursor_1 zp[2]:6 2.8
+byte* print_line_cursor#16 print_line_cursor_1 zp[2]:6 3.1111111111111107
 byte* print_line_cursor#38 print_line_cursor_1 zp[2]:6 20002.0
 byte* print_line_cursor#39 print_line_cursor_1 zp[2]:6 22.0
 void print_ln()
@@ -2111,32 +2039,29 @@ byte print_uchar::b#5 reg byte x 22.0
 byte print_uchar::b#6 reg byte x 5512.0
 void print_uint(word print_uint::w)
 word print_uint::w
-word print_uint::w#0 w zp[2]:8 101.0
-word print_uint::w#1 w zp[2]:8 202.0
-word print_uint::w#2 w zp[2]:8 22.0
-word print_uint::w#3 w zp[2]:8 22.0
-word print_uint::w#4 w zp[2]:8 742.0
+word print_uint::w#0 w zp[2]:10 101.0
+word print_uint::w#1 w zp[2]:10 202.0
+word print_uint::w#2 w zp[2]:10 22.0
+word print_uint::w#3 w zp[2]:10 22.0
+word print_uint::w#4 w zp[2]:10 742.0
 void print_ulong(dword print_ulong::dw)
 dword print_ulong::dw
-dword print_ulong::dw#0 dw zp[4]:10 53.25
+dword print_ulong::dw#0 dw zp[4]:12 53.25
 
 zp[4]:2 [ main::dw#10 main::dw#1 ]
 reg byte a [ print_char::ch#8 print_char::ch#0 print_char::ch#1 ]
 reg byte x [ 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[2]:6 [ print_line_cursor#10 print_line_cursor#16 print_line_cursor#39 print_line_cursor#38 ]
-zp[2]:8 [ main::$3 main::$32 print_uint::w#4 print_uint::w#2 print_uint::w#3 print_uint::w#0 print_uint::w#1 ]
-zp[4]:10 [ main::dw2#1 main::dw2#10 print_ulong::dw#0 ]
-zp[2]:14 [ main::$6 main::$33 print_char_cursor#67 print_char_cursor#45 print_char_cursor#11 print_char_cursor#69 print_char_cursor#76 ]
-zp[2]:16 [ main::$16 memset::dst#2 memset::dst#1 print_char_cursor#30 print_line_cursor#0 ]
-zp[2]:18 [ main::$20 ]
-zp[2]:20 [ main::$24 ]
-zp[2]:22 [ main::$28 ]
+zp[2]:8 [ memset::dst#2 memset::dst#1 print_char_cursor#30 print_line_cursor#0 ]
+zp[2]:10 [ main::$3 main::$28 print_uint::w#4 print_uint::w#2 print_uint::w#3 print_uint::w#0 print_uint::w#1 ]
+zp[4]:12 [ main::dw2#1 main::dw2#10 print_ulong::dw#0 ]
+zp[2]:16 [ main::$6 main::$29 print_char_cursor#67 print_char_cursor#45 print_char_cursor#11 print_char_cursor#69 print_char_cursor#76 ]
 reg byte a [ print_uchar::$0 ]
 reg byte x [ print_uchar::$2 ]
 
 
 FINAL ASSEMBLER
-Score: 8692
+Score: 8232
 
   // File Comments
 // A lightweight library for printing on the C64.
@@ -2152,26 +2077,22 @@ Score: 8692
 :BasicUpstart(main)
   // Global Constants & labels
   .label print_screen = $400
-  .label print_line_cursor = $10
-  .label print_char_cursor = $e
-  .label print_char_cursor_1 = $10
+  .label print_line_cursor = 8
+  .label print_char_cursor = $10
+  .label print_char_cursor_1 = 8
   .label print_line_cursor_1 = 6
 .segment Code
   // main
 main: {
-    .label __3 = 8
-    .label __6 = $e
-    .label __16 = $10
-    .label __20 = $12
-    .label __24 = $14
-    .label __28 = $16
-    .label __32 = 8
-    .label __33 = $e
-    .label dw2 = $a
+    .label __3 = $a
+    .label __6 = $10
+    .label __28 = $a
+    .label __29 = $10
+    .label dw2 = $c
     .label dw = 2
     // print_cls()
     // [1] call print_cls 
-    // [45] phi from main to print_cls [phi:main->print_cls]
+    // [41] phi from main to print_cls [phi:main->print_cls]
     jsr print_cls
     // [2] phi from main to main::@1 [phi:main->main::@1]
     // [2] phi print_char_cursor#30 = print_screen#0 [phi:main->main::@1#0] -- pbuz1=pbuc1 
@@ -2215,49 +2136,49 @@ main: {
     rts
     // main::@2
   __b2:
-    // >dw
-    // [5] main::$3 = > main::dw#10 -- vwuz1=_hi_vduz2 
+    // WORD1(dw)
+    // [5] main::$3 = _word1_ main::dw#10 -- vwuz1=_word1_vduz2 
     lda.z dw+2
     sta.z __3
     lda.z dw+3
     sta.z __3+1
-    // >dw2 = (>dw) + $1111
-    // [6] main::$32 = main::$3 + $1111 -- vwuz1=vwuz1_plus_vwuc1 
+    // WORD1(dw2) = WORD1(dw) + $1111
+    // [6] main::$28 = main::$3 + $1111 -- vwuz1=vwuz1_plus_vwuc1 
     clc
-    lda.z __32
+    lda.z __28
     adc #<$1111
-    sta.z __32
-    lda.z __32+1
+    sta.z __28
+    lda.z __28+1
     adc #>$1111
-    sta.z __32+1
-    // [7] main::dw2#1 = main::dw#10 hi= main::$32 -- vduz1=vduz2_sethi_vwuz3 
+    sta.z __28+1
+    // [7] main::dw2#1 = main::dw#10 word1= main::$28 -- vduz1=vduz2_setword1_vwuz3 
     lda.z dw
     sta.z dw2
     lda.z dw+1
     sta.z dw2+1
-    lda.z __32
+    lda.z __28
     sta.z dw2+2
-    lda.z __32+1
+    lda.z __28+1
     sta.z dw2+3
-    // <dw
-    // [8] main::$6 = < main::dw#10 -- vwuz1=_lo_vduz2 
+    // WORD0(dw)
+    // [8] main::$6 = _word0_ main::dw#10 -- vwuz1=_word0_vduz2 
     lda.z dw
     sta.z __6
     lda.z dw+1
     sta.z __6+1
-    // <dw2 = (<dw) + $1111
-    // [9] main::$33 = main::$6 + $1111 -- vwuz1=vwuz1_plus_vwuc1 
+    // WORD0(dw2) = WORD0(dw) + $1111
+    // [9] main::$29 = main::$6 + $1111 -- vwuz1=vwuz1_plus_vwuc1 
     clc
-    lda.z __33
+    lda.z __29
     adc #<$1111
-    sta.z __33
-    lda.z __33+1
+    sta.z __29
+    lda.z __29+1
     adc #>$1111
-    sta.z __33+1
-    // [10] main::dw2#10 = main::dw2#1 lo= main::$33 -- vduz1=vduz1_setlo_vwuz2 
-    lda.z __33
+    sta.z __29+1
+    // [10] main::dw2#10 = main::dw2#1 word0= main::$29 -- vduz1=vduz1_setword0_vwuz2 
+    lda.z __29
     sta.z dw2
-    lda.z __33+1
+    lda.z __29+1
     sta.z dw2+1
     // print_ulong(dw2)
     // [11] print_ulong::dw#0 = main::dw2#10
@@ -2268,155 +2189,131 @@ main: {
     // main::@3
     // print_char(' ')
     // [14] call print_char 
-    // [54] phi from main::@3 to print_char [phi:main::@3->print_char]
-    // [54] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@3->print_char#0] -- register_copy 
-    // [54] phi print_char::ch#8 = ' ' [phi:main::@3->print_char#1] -- vbuaa=vbuc1 
+    // [50] phi from main::@3 to print_char [phi:main::@3->print_char]
+    // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@3->print_char#0] -- register_copy 
+    // [50] phi print_char::ch#8 = ' ' [phi:main::@3->print_char#1] -- vbuaa=vbuc1 
     lda #' '
     jsr print_char
     // main::@4
-    // print_uint(>dw2)
-    // [15] print_uint::w#2 = > main::dw2#10 -- vwuz1=_hi_vduz2 
+    // print_uint(WORD1(dw2))
+    // [15] print_uint::w#2 = _word1_ main::dw2#10 -- vwuz1=_word1_vduz2 
     lda.z dw2+2
     sta.z print_uint.w
     lda.z dw2+3
     sta.z print_uint.w+1
     // [16] call print_uint 
-    // [58] phi from main::@4 to print_uint [phi:main::@4->print_uint]
-    // [58] phi print_char_cursor#67 = print_char_cursor#11 [phi:main::@4->print_uint#0] -- register_copy 
-    // [58] phi print_uint::w#4 = print_uint::w#2 [phi:main::@4->print_uint#1] -- register_copy 
+    // [54] phi from main::@4 to print_uint [phi:main::@4->print_uint]
+    // [54] phi print_char_cursor#67 = print_char_cursor#11 [phi:main::@4->print_uint#0] -- register_copy 
+    // [54] phi print_uint::w#4 = print_uint::w#2 [phi:main::@4->print_uint#1] -- register_copy 
     jsr print_uint
     // [17] phi from main::@4 to main::@5 [phi:main::@4->main::@5]
     // main::@5
     // print_char(' ')
     // [18] call print_char 
   // Test get high word of dword
-    // [54] phi from main::@5 to print_char [phi:main::@5->print_char]
-    // [54] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@5->print_char#0] -- register_copy 
-    // [54] phi print_char::ch#8 = ' ' [phi:main::@5->print_char#1] -- vbuaa=vbuc1 
+    // [50] phi from main::@5 to print_char [phi:main::@5->print_char]
+    // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@5->print_char#0] -- register_copy 
+    // [50] phi print_char::ch#8 = ' ' [phi:main::@5->print_char#1] -- vbuaa=vbuc1 
     lda #' '
     jsr print_char
     // main::@6
-    // print_uint(<dw2)
-    // [19] print_uint::w#3 = < main::dw2#10 -- vwuz1=_lo_vduz2 
+    // print_uint(WORD0(dw2))
+    // [19] print_uint::w#3 = _word0_ main::dw2#10 -- vwuz1=_word0_vduz2 
     lda.z dw2
     sta.z print_uint.w
     lda.z dw2+1
     sta.z print_uint.w+1
     // [20] call print_uint 
-    // [58] phi from main::@6 to print_uint [phi:main::@6->print_uint]
-    // [58] phi print_char_cursor#67 = print_char_cursor#11 [phi:main::@6->print_uint#0] -- register_copy 
-    // [58] phi print_uint::w#4 = print_uint::w#3 [phi:main::@6->print_uint#1] -- register_copy 
+    // [54] phi from main::@6 to print_uint [phi:main::@6->print_uint]
+    // [54] phi print_char_cursor#67 = print_char_cursor#11 [phi:main::@6->print_uint#0] -- register_copy 
+    // [54] phi print_uint::w#4 = print_uint::w#3 [phi:main::@6->print_uint#1] -- register_copy 
     jsr print_uint
     // [21] phi from main::@6 to main::@7 [phi:main::@6->main::@7]
     // main::@7
     // print_char(' ')
     // [22] call print_char 
   // Test get low word of dword
-    // [54] phi from main::@7 to print_char [phi:main::@7->print_char]
-    // [54] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@7->print_char#0] -- register_copy 
-    // [54] phi print_char::ch#8 = ' ' [phi:main::@7->print_char#1] -- vbuaa=vbuc1 
+    // [50] phi from main::@7 to print_char [phi:main::@7->print_char]
+    // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@7->print_char#0] -- register_copy 
+    // [50] phi print_char::ch#8 = ' ' [phi:main::@7->print_char#1] -- vbuaa=vbuc1 
     lda #' '
     jsr print_char
     // main::@8
-    // >dw2
-    // [23] main::$16 = > main::dw2#10 -- vwuz1=_hi_vduz2 
-    lda.z dw2+2
-    sta.z __16
-    lda.z dw2+3
-    sta.z __16+1
-    // print_uchar(> >dw2)
-    // [24] print_uchar::b#2 = > main::$16 -- vbuxx=_hi_vwuz1 
-    tax
-    // [25] call print_uchar 
-    // [64] phi from main::@8 to print_uchar [phi:main::@8->print_uchar]
-    // [64] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@8->print_uchar#0] -- register_copy 
-    // [64] phi print_uchar::b#6 = print_uchar::b#2 [phi:main::@8->print_uchar#1] -- register_copy 
+    // print_uchar(BYTE3(dw2))
+    // [23] print_uchar::b#2 = _byte3_ main::dw2#10 -- vbuxx=_byte3_vduz1 
+    ldx.z dw2+3
+    // [24] call print_uchar 
+    // [60] phi from main::@8 to print_uchar [phi:main::@8->print_uchar]
+    // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@8->print_uchar#0] -- register_copy 
+    // [60] phi print_uchar::b#6 = print_uchar::b#2 [phi:main::@8->print_uchar#1] -- register_copy 
     jsr print_uchar
-    // [26] phi from main::@8 to main::@9 [phi:main::@8->main::@9]
+    // [25] phi from main::@8 to main::@9 [phi:main::@8->main::@9]
     // main::@9
     // print_char(' ')
-    // [27] call print_char 
+    // [26] call print_char 
   // Test get high high byte of dword
-    // [54] phi from main::@9 to print_char [phi:main::@9->print_char]
-    // [54] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@9->print_char#0] -- register_copy 
-    // [54] phi print_char::ch#8 = ' ' [phi:main::@9->print_char#1] -- vbuaa=vbuc1 
+    // [50] phi from main::@9 to print_char [phi:main::@9->print_char]
+    // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@9->print_char#0] -- register_copy 
+    // [50] phi print_char::ch#8 = ' ' [phi:main::@9->print_char#1] -- vbuaa=vbuc1 
     lda #' '
     jsr print_char
     // main::@10
-    // >dw2
-    // [28] main::$20 = > main::dw2#10 -- vwuz1=_hi_vduz2 
-    lda.z dw2+2
-    sta.z __20
-    lda.z dw2+3
-    sta.z __20+1
-    // print_uchar(< >dw2)
-    // [29] print_uchar::b#3 = < main::$20 -- vbuxx=_lo_vwuz1 
-    ldx.z __20
-    // [30] call print_uchar 
-    // [64] phi from main::@10 to print_uchar [phi:main::@10->print_uchar]
-    // [64] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@10->print_uchar#0] -- register_copy 
-    // [64] phi print_uchar::b#6 = print_uchar::b#3 [phi:main::@10->print_uchar#1] -- register_copy 
+    // print_uchar(BYTE2(dw2))
+    // [27] print_uchar::b#3 = _byte2_ main::dw2#10 -- vbuxx=_byte2_vduz1 
+    ldx.z dw2+2
+    // [28] call print_uchar 
+    // [60] phi from main::@10 to print_uchar [phi:main::@10->print_uchar]
+    // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@10->print_uchar#0] -- register_copy 
+    // [60] phi print_uchar::b#6 = print_uchar::b#3 [phi:main::@10->print_uchar#1] -- register_copy 
     jsr print_uchar
-    // [31] phi from main::@10 to main::@11 [phi:main::@10->main::@11]
+    // [29] phi from main::@10 to main::@11 [phi:main::@10->main::@11]
     // main::@11
     // print_char(' ')
-    // [32] call print_char 
+    // [30] call print_char 
   // Test get low high byte of dword
-    // [54] phi from main::@11 to print_char [phi:main::@11->print_char]
-    // [54] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@11->print_char#0] -- register_copy 
-    // [54] phi print_char::ch#8 = ' ' [phi:main::@11->print_char#1] -- vbuaa=vbuc1 
+    // [50] phi from main::@11 to print_char [phi:main::@11->print_char]
+    // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@11->print_char#0] -- register_copy 
+    // [50] phi print_char::ch#8 = ' ' [phi:main::@11->print_char#1] -- vbuaa=vbuc1 
     lda #' '
     jsr print_char
     // main::@12
-    // <dw2
-    // [33] main::$24 = < main::dw2#10 -- vwuz1=_lo_vduz2 
-    lda.z dw2
-    sta.z __24
-    lda.z dw2+1
-    sta.z __24+1
-    // print_uchar(> <dw2)
-    // [34] print_uchar::b#4 = > main::$24 -- vbuxx=_hi_vwuz1 
-    tax
-    // [35] call print_uchar 
-    // [64] phi from main::@12 to print_uchar [phi:main::@12->print_uchar]
-    // [64] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@12->print_uchar#0] -- register_copy 
-    // [64] phi print_uchar::b#6 = print_uchar::b#4 [phi:main::@12->print_uchar#1] -- register_copy 
+    // print_uchar(BYTE1(dw2))
+    // [31] print_uchar::b#4 = > main::dw2#10 -- vbuxx=_byte1_vduz1 
+    ldx.z dw2+1
+    // [32] call print_uchar 
+    // [60] phi from main::@12 to print_uchar [phi:main::@12->print_uchar]
+    // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@12->print_uchar#0] -- register_copy 
+    // [60] phi print_uchar::b#6 = print_uchar::b#4 [phi:main::@12->print_uchar#1] -- register_copy 
     jsr print_uchar
-    // [36] phi from main::@12 to main::@13 [phi:main::@12->main::@13]
+    // [33] phi from main::@12 to main::@13 [phi:main::@12->main::@13]
     // main::@13
     // print_char(' ')
-    // [37] call print_char 
+    // [34] call print_char 
   // Test get high low byte of dword
-    // [54] phi from main::@13 to print_char [phi:main::@13->print_char]
-    // [54] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@13->print_char#0] -- register_copy 
-    // [54] phi print_char::ch#8 = ' ' [phi:main::@13->print_char#1] -- vbuaa=vbuc1 
+    // [50] phi from main::@13 to print_char [phi:main::@13->print_char]
+    // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@13->print_char#0] -- register_copy 
+    // [50] phi print_char::ch#8 = ' ' [phi:main::@13->print_char#1] -- vbuaa=vbuc1 
     lda #' '
     jsr print_char
     // main::@14
-    // <dw2
-    // [38] main::$28 = < main::dw2#10 -- vwuz1=_lo_vduz2 
-    lda.z dw2
-    sta.z __28
-    lda.z dw2+1
-    sta.z __28+1
-    // print_uchar(< <dw2)
-    // [39] print_uchar::b#5 = < main::$28 -- vbuxx=_lo_vwuz1 
-    ldx.z __28
-    // [40] call print_uchar 
-    // [64] phi from main::@14 to print_uchar [phi:main::@14->print_uchar]
-    // [64] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@14->print_uchar#0] -- register_copy 
-    // [64] phi print_uchar::b#6 = print_uchar::b#5 [phi:main::@14->print_uchar#1] -- register_copy 
+    // print_uchar(BYTE0(dw2))
+    // [35] print_uchar::b#5 = < main::dw2#10 -- vbuxx=_byte0_vduz1 
+    ldx.z dw2
+    // [36] call print_uchar 
+    // [60] phi from main::@14 to print_uchar [phi:main::@14->print_uchar]
+    // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@14->print_uchar#0] -- register_copy 
+    // [60] phi print_uchar::b#6 = print_uchar::b#5 [phi:main::@14->print_uchar#1] -- register_copy 
     jsr print_uchar
-    // [41] phi from main::@14 to main::@15 [phi:main::@14->main::@15]
+    // [37] phi from main::@14 to main::@15 [phi:main::@14->main::@15]
     // main::@15
     // print_ln()
-    // [42] call print_ln 
+    // [38] call print_ln 
   // Test get low low byte of dword
-    // [72] phi from main::@15 to print_ln [phi:main::@15->print_ln]
+    // [68] phi from main::@15 to print_ln [phi:main::@15->print_ln]
     jsr print_ln
     // main::@16
     // for( dword dw = $12345678; dw != $12345690; dw++ )
-    // [43] main::dw#1 = ++ main::dw#10 -- vduz1=_inc_vduz1 
+    // [39] main::dw#1 = ++ main::dw#10 -- vduz1=_inc_vduz1 
     inc.z dw
     bne !+
     inc.z dw+1
@@ -2425,7 +2322,7 @@ main: {
     bne !+
     inc.z dw+3
   !:
-    // [44] print_line_cursor#39 = print_line_cursor#0 -- pbuz1=pbuz2 
+    // [40] print_line_cursor#39 = print_line_cursor#0 -- pbuz1=pbuz2 
     lda.z print_line_cursor
     sta.z print_line_cursor_1
     lda.z print_line_cursor+1
@@ -2440,51 +2337,51 @@ main: {
 // Clear the screen. Also resets current line/char cursor.
 print_cls: {
     // memset(print_screen, ' ', 1000)
-    // [46] call memset 
-    // [78] phi from print_cls to memset [phi:print_cls->memset]
+    // [42] call memset 
+    // [74] phi from print_cls to memset [phi:print_cls->memset]
     jsr memset
     // print_cls::@return
     // }
-    // [47] return 
+    // [43] return 
     rts
 }
   // print_ulong
 // Print a unsigned long as HEX
-// print_ulong(dword zp($a) dw)
+// print_ulong(dword zp($c) dw)
 print_ulong: {
-    .label dw = $a
+    .label dw = $c
     // print_uint(>dw)
-    // [48] print_uint::w#0 = > print_ulong::dw#0 -- vwuz1=_hi_vduz2 
+    // [44] print_uint::w#0 = > print_ulong::dw#0 -- vwuz1=_hi_vduz2 
     lda.z dw+2
     sta.z print_uint.w
     lda.z dw+3
     sta.z print_uint.w+1
-    // [49] print_char_cursor#76 = print_char_cursor#30 -- pbuz1=pbuz2 
+    // [45] print_char_cursor#76 = print_char_cursor#30 -- pbuz1=pbuz2 
     lda.z print_char_cursor_1
     sta.z print_char_cursor
     lda.z print_char_cursor_1+1
     sta.z print_char_cursor+1
     // print_uint(>dw)
-    // [50] call print_uint 
-    // [58] phi from print_ulong to print_uint [phi:print_ulong->print_uint]
-    // [58] phi print_char_cursor#67 = print_char_cursor#76 [phi:print_ulong->print_uint#0] -- register_copy 
-    // [58] phi print_uint::w#4 = print_uint::w#0 [phi:print_ulong->print_uint#1] -- register_copy 
+    // [46] call print_uint 
+    // [54] phi from print_ulong to print_uint [phi:print_ulong->print_uint]
+    // [54] phi print_char_cursor#67 = print_char_cursor#76 [phi:print_ulong->print_uint#0] -- register_copy 
+    // [54] phi print_uint::w#4 = print_uint::w#0 [phi:print_ulong->print_uint#1] -- register_copy 
     jsr print_uint
     // print_ulong::@1
     // print_uint(<dw)
-    // [51] print_uint::w#1 = < print_ulong::dw#0 -- vwuz1=_lo_vduz2 
+    // [47] print_uint::w#1 = < print_ulong::dw#0 -- vwuz1=_lo_vduz2 
     lda.z dw
     sta.z print_uint.w
     lda.z dw+1
     sta.z print_uint.w+1
-    // [52] call print_uint 
-    // [58] phi from print_ulong::@1 to print_uint [phi:print_ulong::@1->print_uint]
-    // [58] phi print_char_cursor#67 = print_char_cursor#11 [phi:print_ulong::@1->print_uint#0] -- register_copy 
-    // [58] phi print_uint::w#4 = print_uint::w#1 [phi:print_ulong::@1->print_uint#1] -- register_copy 
+    // [48] call print_uint 
+    // [54] phi from print_ulong::@1 to print_uint [phi:print_ulong::@1->print_uint]
+    // [54] phi print_char_cursor#67 = print_char_cursor#11 [phi:print_ulong::@1->print_uint#0] -- register_copy 
+    // [54] phi print_uint::w#4 = print_uint::w#1 [phi:print_ulong::@1->print_uint#1] -- register_copy 
     jsr print_uint
     // print_ulong::@return
     // }
-    // [53] return 
+    // [49] return 
     rts
 }
   // print_char
@@ -2492,45 +2389,45 @@ print_ulong: {
 // print_char(byte register(A) ch)
 print_char: {
     // *(print_char_cursor++) = ch
-    // [55] *print_char_cursor#45 = print_char::ch#8 -- _deref_pbuz1=vbuaa 
+    // [51] *print_char_cursor#45 = print_char::ch#8 -- _deref_pbuz1=vbuaa 
     ldy #0
     sta (print_char_cursor),y
     // *(print_char_cursor++) = ch;
-    // [56] print_char_cursor#11 = ++ print_char_cursor#45 -- pbuz1=_inc_pbuz1 
+    // [52] print_char_cursor#11 = ++ print_char_cursor#45 -- pbuz1=_inc_pbuz1 
     inc.z print_char_cursor
     bne !+
     inc.z print_char_cursor+1
   !:
     // print_char::@return
     // }
-    // [57] return 
+    // [53] return 
     rts
 }
   // print_uint
 // Print a unsigned int as HEX
-// print_uint(word zp(8) w)
+// print_uint(word zp($a) w)
 print_uint: {
-    .label w = 8
+    .label w = $a
     // print_uchar(>w)
-    // [59] print_uchar::b#0 = > print_uint::w#4 -- vbuxx=_hi_vwuz1 
+    // [55] print_uchar::b#0 = > print_uint::w#4 -- vbuxx=_hi_vwuz1 
     ldx.z w+1
-    // [60] call print_uchar 
-    // [64] phi from print_uint to print_uchar [phi:print_uint->print_uchar]
-    // [64] phi print_char_cursor#69 = print_char_cursor#67 [phi:print_uint->print_uchar#0] -- register_copy 
-    // [64] phi print_uchar::b#6 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy 
+    // [56] call print_uchar 
+    // [60] phi from print_uint to print_uchar [phi:print_uint->print_uchar]
+    // [60] phi print_char_cursor#69 = print_char_cursor#67 [phi:print_uint->print_uchar#0] -- register_copy 
+    // [60] phi print_uchar::b#6 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy 
     jsr print_uchar
     // print_uint::@1
     // print_uchar(<w)
-    // [61] print_uchar::b#1 = < print_uint::w#4 -- vbuxx=_lo_vwuz1 
+    // [57] print_uchar::b#1 = < print_uint::w#4 -- vbuxx=_lo_vwuz1 
     ldx.z w
-    // [62] call print_uchar 
-    // [64] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar]
-    // [64] phi print_char_cursor#69 = print_char_cursor#11 [phi:print_uint::@1->print_uchar#0] -- register_copy 
-    // [64] phi print_uchar::b#6 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy 
+    // [58] call print_uchar 
+    // [60] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar]
+    // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:print_uint::@1->print_uchar#0] -- register_copy 
+    // [60] phi print_uchar::b#6 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy 
     jsr print_uchar
     // print_uint::@return
     // }
-    // [63] return 
+    // [59] return 
     rts
 }
   // print_uchar
@@ -2538,49 +2435,49 @@ print_uint: {
 // print_uchar(byte register(X) b)
 print_uchar: {
     // b>>4
-    // [65] print_uchar::$0 = print_uchar::b#6 >> 4 -- vbuaa=vbuxx_ror_4 
+    // [61] print_uchar::$0 = print_uchar::b#6 >> 4 -- vbuaa=vbuxx_ror_4 
     txa
     lsr
     lsr
     lsr
     lsr
     // print_char(print_hextab[b>>4])
-    // [66] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa 
+    // [62] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa 
     tay
     lda print_hextab,y
-    // [67] call print_char 
+    // [63] call print_char 
   // Table of hexadecimal digits
-    // [54] phi from print_uchar to print_char [phi:print_uchar->print_char]
-    // [54] phi print_char_cursor#45 = print_char_cursor#69 [phi:print_uchar->print_char#0] -- register_copy 
-    // [54] phi print_char::ch#8 = print_char::ch#0 [phi:print_uchar->print_char#1] -- register_copy 
+    // [50] phi from print_uchar to print_char [phi:print_uchar->print_char]
+    // [50] phi print_char_cursor#45 = print_char_cursor#69 [phi:print_uchar->print_char#0] -- register_copy 
+    // [50] phi print_char::ch#8 = print_char::ch#0 [phi:print_uchar->print_char#1] -- register_copy 
     jsr print_char
     // print_uchar::@1
     // b&$f
-    // [68] print_uchar::$2 = print_uchar::b#6 & $f -- vbuxx=vbuxx_band_vbuc1 
+    // [64] print_uchar::$2 = print_uchar::b#6 & $f -- vbuxx=vbuxx_band_vbuc1 
     lda #$f
     axs #0
     // print_char(print_hextab[b&$f])
-    // [69] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx 
+    // [65] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx 
     lda print_hextab,x
-    // [70] call print_char 
-    // [54] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char]
-    // [54] phi print_char_cursor#45 = print_char_cursor#11 [phi:print_uchar::@1->print_char#0] -- register_copy 
-    // [54] phi print_char::ch#8 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy 
+    // [66] call print_char 
+    // [50] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char]
+    // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:print_uchar::@1->print_char#0] -- register_copy 
+    // [50] phi print_char::ch#8 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy 
     jsr print_char
     // print_uchar::@return
     // }
-    // [71] return 
+    // [67] return 
     rts
 }
   // print_ln
 // Print a newline
 print_ln: {
-    // [73] phi from print_ln print_ln::@2 to print_ln::@1 [phi:print_ln/print_ln::@2->print_ln::@1]
-    // [73] phi print_line_cursor#10 = print_line_cursor#16 [phi:print_ln/print_ln::@2->print_ln::@1#0] -- register_copy 
+    // [69] phi from print_ln print_ln::@2 to print_ln::@1 [phi:print_ln/print_ln::@2->print_ln::@1]
+    // [69] phi print_line_cursor#10 = print_line_cursor#16 [phi:print_ln/print_ln::@2->print_ln::@1#0] -- register_copy 
     // print_ln::@1
   __b1:
     // print_line_cursor + $28
-    // [74] print_line_cursor#0 = print_line_cursor#10 + $28 -- pbuz1=pbuz2_plus_vbuc1 
+    // [70] print_line_cursor#0 = print_line_cursor#10 + $28 -- pbuz1=pbuz2_plus_vbuc1 
     lda #$28
     clc
     adc.z print_line_cursor_1
@@ -2589,7 +2486,7 @@ print_ln: {
     adc.z print_line_cursor_1+1
     sta.z print_line_cursor+1
     // while (print_line_cursor<print_char_cursor)
-    // [75] if(print_line_cursor#0<print_char_cursor#11) goto print_ln::@2 -- pbuz1_lt_pbuz2_then_la1 
+    // [71] if(print_line_cursor#0<print_char_cursor#11) goto print_ln::@2 -- pbuz1_lt_pbuz2_then_la1 
     cmp.z print_char_cursor+1
     bcc __b2
     bne !+
@@ -2599,11 +2496,11 @@ print_ln: {
   !:
     // print_ln::@return
     // }
-    // [76] return 
+    // [72] return 
     rts
     // print_ln::@2
   __b2:
-    // [77] print_line_cursor#38 = print_line_cursor#0 -- pbuz1=pbuz2 
+    // [73] print_line_cursor#38 = print_line_cursor#0 -- pbuz1=pbuz2 
     lda.z print_line_cursor
     sta.z print_line_cursor_1
     lda.z print_line_cursor+1
@@ -2617,9 +2514,9 @@ memset: {
     .const num = $3e8
     .label str = print_screen
     .label end = str+num
-    .label dst = $10
-    // [79] phi from memset to memset::@1 [phi:memset->memset::@1]
-    // [79] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 
+    .label dst = 8
+    // [75] phi from memset to memset::@1 [phi:memset->memset::@1]
+    // [75] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 
     lda #<str
     sta.z dst
     lda #>str
@@ -2627,7 +2524,7 @@ memset: {
     // memset::@1
   __b1:
     // for(char* dst = str; dst!=end; dst++)
-    // [80] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 
+    // [76] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 
     lda.z dst+1
     cmp #>end
     bne __b2
@@ -2636,23 +2533,23 @@ memset: {
     bne __b2
     // memset::@return
     // }
-    // [81] return 
+    // [77] return 
     rts
     // memset::@2
   __b2:
     // *dst = c
-    // [82] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 
+    // [78] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 
     lda #c
     ldy #0
     sta (dst),y
     // for(char* dst = str; dst!=end; dst++)
-    // [83] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 
+    // [79] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 
     inc.z dst
     bne !+
     inc.z dst+1
   !:
-    // [79] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1]
-    // [79] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy 
+    // [75] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1]
+    // [75] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy 
     jmp __b1
 }
   // File Data
diff --git a/src/test/ref/test-lowhigh.sym b/src/test/ref/test-lowhigh.sym
index c76f11f7f..06af7c820 100644
--- a/src/test/ref/test-lowhigh.sym
+++ b/src/test/ref/test-lowhigh.sym
@@ -3,26 +3,22 @@ constant byte RADIX::DECIMAL = $a
 constant byte RADIX::HEXADECIMAL = $10
 constant byte RADIX::OCTAL = 8
 void main()
-word~ main::$16 zp[2]:16 22.0
-word~ main::$20 zp[2]:18 22.0
-word~ main::$24 zp[2]:20 22.0
-word~ main::$28 zp[2]:22 22.0
-word~ main::$3 zp[2]:8 22.0
-word~ main::$32 zp[2]:8 22.0
-word~ main::$33 zp[2]:14 22.0
-word~ main::$6 zp[2]:14 22.0
+word~ main::$28 zp[2]:10 22.0
+word~ main::$29 zp[2]:16 22.0
+word~ main::$3 zp[2]:10 22.0
+word~ main::$6 zp[2]:16 22.0
 dword main::dw
 dword main::dw#1 dw zp[4]:2 11.0
-dword main::dw#10 dw zp[4]:2 1.65
+dword main::dw#10 dw zp[4]:2 1.8333333333333335
 dword main::dw2
-dword main::dw2#1 dw2 zp[4]:10 7.333333333333333
-dword main::dw2#10 dw2 zp[4]:10 3.142857142857143
+dword main::dw2#1 dw2 zp[4]:12 7.333333333333333
+dword main::dw2#10 dw2 zp[4]:12 3.52
 void* memset(void* memset::str , byte memset::c , word memset::num)
 byte memset::c
 constant byte memset::c#0 c = ' '
 byte* memset::dst
-byte* memset::dst#1 dst zp[2]:16 2002.0
-byte* memset::dst#2 dst zp[2]:16 1334.6666666666667
+byte* memset::dst#1 dst zp[2]:8 2002.0
+byte* memset::dst#2 dst zp[2]:8 1334.6666666666667
 byte* memset::end
 constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0
 word memset::num
@@ -36,18 +32,18 @@ byte print_char::ch#0 reg byte a 20002.0
 byte print_char::ch#1 reg byte a 20002.0
 byte print_char::ch#8 reg byte a 120003.0
 byte* print_char_cursor
-byte* print_char_cursor#11 print_char_cursor zp[2]:14 2424.739999999999
-byte* print_char_cursor#30 print_char_cursor_1 zp[2]:16 11.2
-byte* print_char_cursor#45 print_char_cursor zp[2]:14 110035.0
-byte* print_char_cursor#67 print_char_cursor zp[2]:14 612.5
-byte* print_char_cursor#69 print_char_cursor zp[2]:14 4015.6666666666656
-byte* print_char_cursor#76 print_char_cursor zp[2]:14 202.0
+byte* print_char_cursor#11 print_char_cursor zp[2]:16 2635.5869565217386
+byte* print_char_cursor#30 print_char_cursor_1 zp[2]:8 11.2
+byte* print_char_cursor#45 print_char_cursor zp[2]:16 110035.0
+byte* print_char_cursor#67 print_char_cursor zp[2]:16 612.5
+byte* print_char_cursor#69 print_char_cursor zp[2]:16 4015.6666666666656
+byte* print_char_cursor#76 print_char_cursor zp[2]:16 202.0
 void print_cls()
 constant const byte* print_hextab[]  = "0123456789abcdef"z
 byte* print_line_cursor
-byte* print_line_cursor#0 print_line_cursor zp[2]:16 5004.166666666666
+byte* print_line_cursor#0 print_line_cursor zp[2]:8 5004.166666666666
 byte* print_line_cursor#10 print_line_cursor_1 zp[2]:6 20103.0
-byte* print_line_cursor#16 print_line_cursor_1 zp[2]:6 2.8
+byte* print_line_cursor#16 print_line_cursor_1 zp[2]:6 3.1111111111111107
 byte* print_line_cursor#38 print_line_cursor_1 zp[2]:6 20002.0
 byte* print_line_cursor#39 print_line_cursor_1 zp[2]:6 22.0
 void print_ln()
@@ -66,25 +62,22 @@ byte print_uchar::b#5 reg byte x 22.0
 byte print_uchar::b#6 reg byte x 5512.0
 void print_uint(word print_uint::w)
 word print_uint::w
-word print_uint::w#0 w zp[2]:8 101.0
-word print_uint::w#1 w zp[2]:8 202.0
-word print_uint::w#2 w zp[2]:8 22.0
-word print_uint::w#3 w zp[2]:8 22.0
-word print_uint::w#4 w zp[2]:8 742.0
+word print_uint::w#0 w zp[2]:10 101.0
+word print_uint::w#1 w zp[2]:10 202.0
+word print_uint::w#2 w zp[2]:10 22.0
+word print_uint::w#3 w zp[2]:10 22.0
+word print_uint::w#4 w zp[2]:10 742.0
 void print_ulong(dword print_ulong::dw)
 dword print_ulong::dw
-dword print_ulong::dw#0 dw zp[4]:10 53.25
+dword print_ulong::dw#0 dw zp[4]:12 53.25
 
 zp[4]:2 [ main::dw#10 main::dw#1 ]
 reg byte a [ print_char::ch#8 print_char::ch#0 print_char::ch#1 ]
 reg byte x [ 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[2]:6 [ print_line_cursor#10 print_line_cursor#16 print_line_cursor#39 print_line_cursor#38 ]
-zp[2]:8 [ main::$3 main::$32 print_uint::w#4 print_uint::w#2 print_uint::w#3 print_uint::w#0 print_uint::w#1 ]
-zp[4]:10 [ main::dw2#1 main::dw2#10 print_ulong::dw#0 ]
-zp[2]:14 [ main::$6 main::$33 print_char_cursor#67 print_char_cursor#45 print_char_cursor#11 print_char_cursor#69 print_char_cursor#76 ]
-zp[2]:16 [ main::$16 memset::dst#2 memset::dst#1 print_char_cursor#30 print_line_cursor#0 ]
-zp[2]:18 [ main::$20 ]
-zp[2]:20 [ main::$24 ]
-zp[2]:22 [ main::$28 ]
+zp[2]:8 [ memset::dst#2 memset::dst#1 print_char_cursor#30 print_line_cursor#0 ]
+zp[2]:10 [ main::$3 main::$28 print_uint::w#4 print_uint::w#2 print_uint::w#3 print_uint::w#0 print_uint::w#1 ]
+zp[4]:12 [ main::dw2#1 main::dw2#10 print_ulong::dw#0 ]
+zp[2]:16 [ main::$6 main::$29 print_char_cursor#67 print_char_cursor#45 print_char_cursor#11 print_char_cursor#69 print_char_cursor#76 ]
 reg byte a [ print_uchar::$0 ]
 reg byte x [ print_uchar::$2 ]