diff --git a/kickc.iml b/kickc.iml
index 7075e5bf6..ff146d0c0 100644
--- a/kickc.iml
+++ b/kickc.iml
@@ -12,6 +12,7 @@
+
diff --git a/src/main/fragment/cache/fragment-cache-csg65ce02.asm b/src/main/fragment/cache/fragment-cache-csg65ce02.asm
index 372792ea6..e135f0971 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 aafa246f3 aafa2666a
+//KICKC FRAGMENT CACHE 9a29ecc94 9a29eec1a
//FRAGMENT vbuzz=vbuc1
ldz #{c1}
//FRAGMENT vbuzz_lt_vbuc1_then_la1
@@ -237,2165 +237,3 @@ stx {c1}
sty {c1}
//FRAGMENT _deref_pbsc1=vbszz
stz {c1}
-//FRAGMENT vbuz1=vbuc1
-lda #{c1}
-sta {z1}
-//FRAGMENT pbuz1=pbuc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
-//FRAGMENT vbuz1=_deref_pbuc1
-lda {c1}
-sta {z1}
-//FRAGMENT vbuz1_lt_vbuc1_then_la1
-lda {z1}
-cmp #{c1}
-bcc {la1}
-//FRAGMENT vbuz1=vbuz2
-lda {z2}
-sta {z1}
-//FRAGMENT vduz1=vduz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-//FRAGMENT vwuz1=_word_vbuz2
-lda {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_2
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vwuz1=vwuz2_plus_vwuz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_3
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_vwuz2
-lda {z2}
-clc
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz1_plus_vbuc1
-lda #{c1}
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vbuz1=_inc_vbuz1
-inc {z1}
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuc1
-lda #{c1}
-ldz {z2}
-sta ({z1}),z
-//FRAGMENT vbuz1=_deref_pbuz2
-ldy #0
-lda ({z2}),y
-sta {z1}
-//FRAGMENT pbuz1=_inc_pbuz1
-inw {z1}
-//FRAGMENT 0_neq_vbuz1_then_la1
-lda {z1}
-bne {la1}
-//FRAGMENT _deref_pbuc1=vbuc2
-lda #{c2}
-sta {c1}
-//FRAGMENT vduz1=vduc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
-lda #<{c1}>>$10
-sta {z1}+2
-lda #>{c1}>>$10
-sta {z1}+3
-//FRAGMENT pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1
-ldx {z1}
-inc {c1},x
-//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuc2_then_la1
-ldy {z1}
-lda {c1},y
-cmp #{c2}
-beq {la1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-//FRAGMENT 0_eq_vbuz1_then_la1
-lda {z1}
-beq {la1}
-//FRAGMENT vbuz1_eq_vbuc1_then_la1
-lda #{c1}
-cmp {z1}
-beq {la1}
-//FRAGMENT vduz1=_inc_vduz1
-inc {z1}
-bne !+
-inc {z1}+1
-bne !+
-inc {z1}+2
-bne !+
-inc {z1}+3
-!:
-//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2
-lda #{c2}
-ldy {z1}
-sta {c1},y
-//FRAGMENT vbuz1=_dec_vbuz1
-dec {z1}
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuz3
-lda {z3}
-ldz {z2}
-sta ({z1}),z
-//FRAGMENT vbuz1_neq_vbuc1_then_la1
-lda #{c1}
-cmp {z1}
-bne {la1}
-//FRAGMENT vwuz1=vwuc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
-//FRAGMENT vbuz1=_byte_vwuz2
-lda {z2}
-sta {z1}
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuz1=_inc_pbuz2
-clc
-lda {z2}
-adc #1
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-//FRAGMENT _deref_pbuz1=vbuc1
-lda #{c1}
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuz1=vbuz2_rol_1
-lda {z2}
-asl
-sta {z1}
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT vwuz1_ge_vwuz2_then_la1
-lda {z2}+1
-cmp {z1}+1
-bne !+
-lda {z2}
-cmp {z1}
-beq {la1}
-!:
-bcc {la1}
-//FRAGMENT vwuz1=vwuz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vbsz1=_sbyte_vwuz2
-lda {z2}
-sta {z1}
-//FRAGMENT vbsz1=_inc_vbsz1
-inc {z1}
-//FRAGMENT vbsz1=vbsz2_minus_vbsz3
-lda {z2}
-sec
-sbc {z3}
-sta {z1}
-//FRAGMENT vbsz1_ge_0_then_la1
-lda {z1}
-cmp #0
-bpl {la1}
-//FRAGMENT vbsz1=vbsc1
-lda #{c1}
-sta {z1}
-//FRAGMENT 0_neq_vbsz1_then_la1
-lda {z1}
-cmp #0
-bne {la1}
-//FRAGMENT vbuz1=vbuz2_minus_1
-ldx {z2}
-dex
-stx {z1}
-//FRAGMENT vbuz1_le_vbuz2_then_la1
-lda {z2}
-cmp {z1}
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1
-ldy {z1}
-lda {c1},y
-cmp {z2}
-beq {la1}
-//FRAGMENT vbuz1_lt_vbuz2_then_la1
-lda {z1}
-cmp {z2}
-bcc {la1}
-//FRAGMENT vbuz1=vbuz2_minus_vbuz3
-lda {z2}
-sec
-sbc {z3}
-sta {z1}
-//FRAGMENT vbuz1_neq_vbuz2_then_la1
-lda {z1}
-cmp {z2}
-bne {la1}
-//FRAGMENT vbuz1=_byte_vduz2
-lda {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_rol_2
-lda {z2}
-asl
-asl
-sta {z1}
-//FRAGMENT vduz1=pduc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-lda {c1}+2,y
-sta {z1}+2
-lda {c1}+3,y
-sta {z1}+3
-//FRAGMENT vduz1_ge_vduz2_then_la1
-lda {z1}+3
-cmp {z2}+3
-bcc !+
-bne {la1}
-lda {z1}+2
-cmp {z2}+2
-bcc !+
-bne {la1}
-lda {z1}+1
-cmp {z2}+1
-bcc !+
-bne {la1}
-lda {z1}
-cmp {z2}
-bcs {la1}
-!:
-//FRAGMENT vwuz1=vwuz1_minus_vwuz2
-lda {z1}
-sec
-sbc {z2}
-sta {z1}
-lda {z1}+1
-sbc {z2}+1
-sta {z1}+1
-//FRAGMENT 0_neq__deref_pbuz1_then_la1
-ldy #0
-lda ({z1}),y
-cmp #0
-bne {la1}
-//FRAGMENT vwuz1=_inc_vwuz1
-inw {z1}
-//FRAGMENT _deref_pbuz1=vbuz2
-lda {z2}
-ldy #0
-sta ({z1}),y
-//FRAGMENT vduz1=vduz1_minus_vduz2
-lda {z1}
-sec
-sbc {z2}
-sta {z1}
-lda {z1}+1
-sbc {z2}+1
-sta {z1}+1
-lda {z1}+2
-sbc {z2}+2
-sta {z1}+2
-lda {z1}+3
-sbc {z2}+3
-sta {z1}+3
-//FRAGMENT pvoz1=pvoc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz1_minus_vbuc1
-sec
-lda {z1}
-sbc #{c1}
-sta {z1}
-lda {z1}+1
-sbc #0
-sta {z1}+1
-//FRAGMENT vbuz1_le_vbuc1_then_la1
-lda #{c1}
-cmp {z1}
-bcs {la1}
-//FRAGMENT vbuz1=vbuz1_plus_vbuc1
-lda #{c1}
-clc
-adc {z1}
-sta {z1}
-//FRAGMENT vbuz1_ge_vbuz2_then_la1
-lda {z1}
-cmp {z2}
-bcs {la1}
-//FRAGMENT pbuz1=pbuz2_plus_vwuc1
-lda {z2}
-clc
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1_neq_pbuz2_then_la1
-lda {z1}+1
-cmp {z2}+1
-bne {la1}
-lda {z1}
-cmp {z2}
-bne {la1}
-//FRAGMENT _deref_pbuz1=_deref_pbuz2
-ldy #0
-lda ({z2}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuz1=pbuz2_plus_vbuc1
-lda #{c1}
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vbuz1=vbuz1_minus_vbuz2
-lda {z1}
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbuaa=_deref_pbuc1
-lda {c1}
-//FRAGMENT vbuxx=_deref_pbuc1
-ldx {c1}
-//FRAGMENT vbuaa_lt_vbuc1_then_la1
-cmp #{c1}
-bcc {la1}
-//FRAGMENT vbuaa=vbuz1
-lda {z1}
-//FRAGMENT vbuxx=vbuz1
-ldx {z1}
-//FRAGMENT vbuz1=vbuxx
-stx {z1}
-//FRAGMENT vwuz1=_word_vbuxx
-txa
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=_word_vbuyy
-tya
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=_word_vbuzz
-tza
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT pbuz1_derefidx_vbuaa=vbuc1
-taz
-lda #{c1}
-sta ({z1}),z
-//FRAGMENT pbuz1_derefidx_vbuxx=vbuc1
-txa
-taz
-lda #{c1}
-sta ({z1}),z
-//FRAGMENT pbuz1_derefidx_vbuyy=vbuc1
-lda #{c1}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuzz=vbuc1
-lda #{c1}
-sta ({z1}),z
-//FRAGMENT vbuaa=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-//FRAGMENT vbuxx=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-tax
-//FRAGMENT vbuyy=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-tay
-//FRAGMENT vbuzz=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-taz
-//FRAGMENT 0_neq_vbuaa_then_la1
-cmp #0
-bne {la1}
-//FRAGMENT vbuz1=vbuaa
-sta {z1}
-//FRAGMENT pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuxx
-inc {c1},x
-//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuc2_then_la1
-lda {c1},x
-cmp #{c2}
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuzz_eq_vbuc2_then_la1
-tza
-tay
-lda {c1},y
-cmp #{c2}
-beq {la1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1
-ldy {z1}
-ldx {c1},y
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1
-ldx {z1}
-ldy {c1},x
-//FRAGMENT vbuzz=pbuc1_derefidx_vbuz1
-ldx {z1}
-ldz {c1},x
-//FRAGMENT 0_eq_vbuaa_then_la1
-cmp #0
-beq {la1}
-//FRAGMENT vbuxx_eq_vbuc1_then_la1
-cpx #{c1}
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx=vbuc2
-lda #{c2}
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuzz=vbuc2
-tza
-tay
-lda #{c2}
-sta {c1},y
-//FRAGMENT vbuaa_eq_vbuc1_then_la1
-cmp #{c1}
-beq {la1}
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuaa
-ldz {z2}
-sta ({z1}),z
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuxx
-txa
-ldz {z2}
-sta ({z1}),z
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuyy
-tya
-ldz {z2}
-sta ({z1}),z
-//FRAGMENT pbuz1_derefidx_vbuz2=vbuzz
-tza
-ldz {z2}
-sta ({z1}),z
-//FRAGMENT vbuaa=_byte_vwuz1
-lda {z1}
-//FRAGMENT vbuxx=_byte_vwuz1
-ldx {z1}
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuzz
-tza
-tay
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuaa=vbuz1_rol_1
-lda {z1}
-asl
-//FRAGMENT vbuxx=vbuz1_rol_1
-lda {z1}
-asl
-tax
-//FRAGMENT vbuyy=vbuz1_rol_1
-lda {z1}
-asl
-tay
-//FRAGMENT vbuzz=vbuz1_rol_1
-lda {z1}
-asl
-taz
-//FRAGMENT vbuz1=vbuaa_rol_1
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_rol_1
-asl
-//FRAGMENT vbuxx=vbuaa_rol_1
-asl
-tax
-//FRAGMENT vbuyy=vbuaa_rol_1
-asl
-tay
-//FRAGMENT vbuzz=vbuaa_rol_1
-asl
-taz
-//FRAGMENT vbuz1=vbuxx_rol_1
-txa
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_rol_1
-txa
-asl
-//FRAGMENT vbuxx=vbuxx_rol_1
-txa
-asl
-tax
-//FRAGMENT vbuyy=vbuxx_rol_1
-txa
-asl
-tay
-//FRAGMENT vbuzz=vbuxx_rol_1
-txa
-asl
-taz
-//FRAGMENT vbuz1=vbuyy_rol_1
-tya
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_rol_1
-tya
-asl
-//FRAGMENT vbuxx=vbuyy_rol_1
-tya
-asl
-tax
-//FRAGMENT vbuyy=vbuyy_rol_1
-tya
-asl
-tay
-//FRAGMENT vbuzz=vbuyy_rol_1
-tya
-asl
-taz
-//FRAGMENT vbuz1=vbuzz_rol_1
-tza
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuzz_rol_1
-tza
-asl
-//FRAGMENT vbuxx=vbuzz_rol_1
-tza
-asl
-tax
-//FRAGMENT vbuyy=vbuzz_rol_1
-tza
-asl
-tay
-//FRAGMENT vbuzz=vbuzz_rol_1
-tza
-asl
-taz
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuaa
-tay
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-lda {c1}+1,x
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuzz
-tza
-tay
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT 0_neq_vbuxx_then_la1
-cpx #0
-bne {la1}
-//FRAGMENT vbsaa=_sbyte_vwuz1
-lda {z1}
-//FRAGMENT vbsxx=_sbyte_vwuz1
-ldx {z1}
-//FRAGMENT 0_eq_vbuxx_then_la1
-cpx #0
-beq {la1}
-//FRAGMENT vbsz1=vbsz2_minus_vbsaa
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsz2_minus_vbsxx
-txa
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsz2_minus_vbsyy
-tya
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsz2_minus_vbszz
-tza
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbsxx=vbsz1_minus_vbsz2
-lda {z1}
-sec
-sbc {z2}
-tax
-//FRAGMENT vbsxx=vbsz1_minus_vbsaa
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbsxx=vbsz1_minus_vbsxx
-txa
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbsxx=vbsz1_minus_vbsyy
-tya
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbsxx=vbsz1_minus_vbszz
-tza
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbsz1=vbsxx_minus_vbsz2
-txa
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_minus_vbsaa
-sta $ff
-txa
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_minus_vbsxx
-lda #0
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_minus_vbsyy
-txa
-sty $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_minus_vbszz
-txa
-stz $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsxx=vbsxx_minus_vbsz1
-txa
-sec
-sbc {z1}
-tax
-//FRAGMENT vbsxx=vbsxx_minus_vbsaa
-sta $ff
-txa
-sec
-sbc $ff
-tax
-//FRAGMENT vbsxx=vbsxx_minus_vbsxx
-lda #0
-tax
-//FRAGMENT vbsxx=vbsxx_minus_vbsyy
-txa
-sty $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbsxx=vbsxx_minus_vbszz
-txa
-stz $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbsz1=vbsyy_minus_vbsz2
-tya
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_minus_vbsaa
-sta $ff
-tya
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_minus_vbsxx
-tya
-stx $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_minus_vbsyy
-lda #0
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_minus_vbszz
-tya
-stz $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsxx=vbsyy_minus_vbsz1
-tya
-sec
-sbc {z1}
-tax
-//FRAGMENT vbsxx=vbsyy_minus_vbsaa
-sta $ff
-tya
-sec
-sbc $ff
-tax
-//FRAGMENT vbsxx=vbsyy_minus_vbsxx
-tya
-stx $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbsxx=vbsyy_minus_vbsyy
-lda #0
-tax
-//FRAGMENT vbsxx=vbsyy_minus_vbszz
-tya
-stz $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbsz1=vbszz_minus_vbsz2
-tza
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbszz_minus_vbsaa
-tay
-tza
-sty $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbszz_minus_vbsxx
-tza
-stx $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbszz_minus_vbsyy
-tza
-sty $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbszz_minus_vbszz
-tza
-lda #0
-sta {z1}
-//FRAGMENT vbsxx=vbszz_minus_vbsz1
-tza
-sec
-sbc {z1}
-tax
-//FRAGMENT vbsxx=vbszz_minus_vbsaa
-tax
-tza
-stx $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbsxx=vbszz_minus_vbsxx
-tza
-stx $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbsxx=vbszz_minus_vbsyy
-tza
-sty $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbsxx=vbszz_minus_vbszz
-tza
-lda #0
-tax
-//FRAGMENT vbsxx_ge_0_then_la1
-cpx #0
-bpl {la1}
-//FRAGMENT 0_neq_vbsxx_then_la1
-cpx #0
-bne {la1}
-//FRAGMENT vbuz1=vbuaa_minus_1
-sec
-sbc #1
-sta {z1}
-//FRAGMENT vbuaa_le_vbuz1_then_la1
-ldy {z1}
-sta $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuz1_then_la1
-tay
-lda {c1},y
-cmp {z1}
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuz1_then_la1
-lda {c1},x
-cmp {z1}
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuz1_then_la1
-lda {c1},y
-cmp {z1}
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuzz_eq_vbuz1_then_la1
-tza
-tay
-lda {c1},y
-cmp {z1}
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuaa_then_la1
-ldx {z1}
-tay
-lda {c1},x
-tax
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuaa_then_la1
-tax
-lda {c1},x
-tay
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuaa_then_la1
-tay
-lda {c1},x
-tax
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuaa_then_la1
-tax
-lda {c1},y
-tay
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuzz_eq_vbuaa_then_la1
-tax
-tza
-tay
-lda {c1},y
-tay
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuxx_then_la1
-ldy {z1}
-lda {c1},y
-tay
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuxx_then_la1
-tay
-lda {c1},y
-tay
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuxx_then_la1
-lda {c1},x
-tay
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuxx_then_la1
-lda {c1},y
-tay
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuzz_eq_vbuxx_then_la1
-tza
-tay
-lda {c1},y
-tay
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuyy_then_la1
-ldx {z1}
-lda {c1},x
-tax
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuyy_then_la1
-tax
-lda {c1},x
-tax
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuyy_then_la1
-lda {c1},x
-tax
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuyy_then_la1
-lda {c1},y
-tax
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuzz_eq_vbuyy_then_la1
-tza
-tax
-lda {c1},x
-tax
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuzz_then_la1
-ldy {z1}
-lda {c1},y
-sta $ff
-cpz $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuzz_then_la1
-tay
-lda {c1},y
-sta $ff
-cpz $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuzz_then_la1
-lda {c1},x
-sta $ff
-cpz $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuzz_then_la1
-lda {c1},y
-sta $ff
-cpz $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuzz_eq_vbuzz_then_la1
-tza
-tay
-lda {c1},y
-sta $ff
-cpz $ff
-beq {la1}
-//FRAGMENT vbuaa_lt_vbuz1_then_la1
-cmp {z1}
-bcc {la1}
-//FRAGMENT vbuz1=vbuaa_minus_vbuz2
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_minus_vbuz2
-txa
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_minus_vbuz2
-tya
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuzz_minus_vbuz2
-tza
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_minus_vbuz2
-lda {z1}
-sec
-sbc {z2}
-//FRAGMENT vbuaa=vbuaa_minus_vbuz1
-sec
-sbc {z1}
-//FRAGMENT vbuaa=vbuxx_minus_vbuz1
-txa
-sec
-sbc {z1}
-//FRAGMENT vbuaa=vbuyy_minus_vbuz1
-tya
-sec
-sbc {z1}
-//FRAGMENT vbuaa=vbuzz_minus_vbuz1
-tza
-sec
-sbc {z1}
-//FRAGMENT vbuxx=vbuz1_minus_vbuz2
-lda {z1}
-sec
-sbc {z2}
-tax
-//FRAGMENT vbuxx=vbuaa_minus_vbuz1
-sec
-sbc {z1}
-tax
-//FRAGMENT vbuxx=vbuxx_minus_vbuz1
-txa
-sec
-sbc {z1}
-tax
-//FRAGMENT vbuxx=vbuyy_minus_vbuz1
-tya
-sec
-sbc {z1}
-tax
-//FRAGMENT vbuxx=vbuzz_minus_vbuz1
-tza
-sec
-sbc {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_minus_vbuz2
-lda {z1}
-sec
-sbc {z2}
-tay
-//FRAGMENT vbuyy=vbuaa_minus_vbuz1
-sec
-sbc {z1}
-tay
-//FRAGMENT vbuyy=vbuxx_minus_vbuz1
-txa
-sec
-sbc {z1}
-tay
-//FRAGMENT vbuyy=vbuyy_minus_vbuz1
-tya
-sec
-sbc {z1}
-tay
-//FRAGMENT vbuyy=vbuzz_minus_vbuz1
-tza
-sec
-sbc {z1}
-tay
-//FRAGMENT vbuzz=vbuz1_minus_vbuz2
-lda {z1}
-sec
-sbc {z2}
-taz
-//FRAGMENT vbuzz=vbuaa_minus_vbuz1
-sec
-sbc {z1}
-taz
-//FRAGMENT vbuzz=vbuxx_minus_vbuz1
-txa
-sec
-sbc {z1}
-taz
-//FRAGMENT vbuzz=vbuyy_minus_vbuz1
-tya
-sec
-sbc {z1}
-taz
-//FRAGMENT vbuzz=vbuzz_minus_vbuz1
-tza
-sec
-sbc {z1}
-taz
-//FRAGMENT vbuz1=vbuz2_minus_vbuxx
-txa
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuaa_minus_vbuxx
-stx $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_minus_vbuxx
-lda #0
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_minus_vbuxx
-tya
-stx $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuz1=vbuzz_minus_vbuxx
-tza
-stx $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_minus_vbuxx
-txa
-eor #$ff
-sec
-adc {z1}
-//FRAGMENT vbuaa=vbuaa_minus_vbuxx
-stx $ff
-sec
-sbc $ff
-//FRAGMENT vbuaa=vbuxx_minus_vbuxx
-lda #0
-//FRAGMENT vbuaa=vbuyy_minus_vbuxx
-tya
-stx $ff
-sec
-sbc $ff
-//FRAGMENT vbuaa=vbuzz_minus_vbuxx
-tza
-stx $ff
-sec
-sbc $ff
-//FRAGMENT vbuxx=vbuz1_minus_vbuxx
-txa
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbuxx=vbuaa_minus_vbuxx
-stx $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbuxx=vbuxx_minus_vbuxx
-lda #0
-tax
-//FRAGMENT vbuxx=vbuyy_minus_vbuxx
-tya
-stx $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbuxx=vbuzz_minus_vbuxx
-tza
-stx $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbuyy=vbuz1_minus_vbuxx
-txa
-eor #$ff
-sec
-adc {z1}
-tay
-//FRAGMENT vbuyy=vbuaa_minus_vbuxx
-stx $ff
-sec
-sbc $ff
-tay
-//FRAGMENT vbuyy=vbuxx_minus_vbuxx
-lda #0
-tay
-//FRAGMENT vbuyy=vbuyy_minus_vbuxx
-tya
-stx $ff
-sec
-sbc $ff
-tay
-//FRAGMENT vbuyy=vbuzz_minus_vbuxx
-tza
-stx $ff
-sec
-sbc $ff
-tay
-//FRAGMENT vbuzz=vbuz1_minus_vbuxx
-txa
-eor #$ff
-sec
-adc {z1}
-taz
-//FRAGMENT vbuzz=vbuaa_minus_vbuxx
-stx $ff
-sec
-sbc $ff
-taz
-//FRAGMENT vbuzz=vbuxx_minus_vbuxx
-lda #0
-taz
-//FRAGMENT vbuzz=vbuyy_minus_vbuxx
-tya
-stx $ff
-sec
-sbc $ff
-taz
-//FRAGMENT vbuzz=vbuzz_minus_vbuxx
-tza
-stx $ff
-sec
-sbc $ff
-taz
-//FRAGMENT vbuz1=vbuz2_minus_vbuyy
-tya
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuaa_minus_vbuyy
-sty $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_minus_vbuyy
-txa
-sty $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_minus_vbuyy
-lda #0
-sta {z1}
-//FRAGMENT vbuz1=vbuzz_minus_vbuyy
-tza
-sty $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_minus_vbuyy
-tya
-eor #$ff
-sec
-adc {z1}
-//FRAGMENT vbuaa=vbuaa_minus_vbuyy
-sty $ff
-sec
-sbc $ff
-//FRAGMENT vbuaa=vbuxx_minus_vbuyy
-txa
-sty $ff
-sec
-sbc $ff
-//FRAGMENT vbuaa=vbuyy_minus_vbuyy
-lda #0
-//FRAGMENT vbuaa=vbuzz_minus_vbuyy
-tza
-sty $ff
-sec
-sbc $ff
-//FRAGMENT vbuxx=vbuz1_minus_vbuyy
-tya
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbuxx=vbuaa_minus_vbuyy
-sty $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbuxx=vbuxx_minus_vbuyy
-txa
-sty $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbuxx=vbuyy_minus_vbuyy
-lda #0
-tax
-//FRAGMENT vbuxx=vbuzz_minus_vbuyy
-tza
-sty $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbuyy=vbuz1_minus_vbuyy
-tya
-eor #$ff
-sec
-adc {z1}
-tay
-//FRAGMENT vbuyy=vbuaa_minus_vbuyy
-sty $ff
-sec
-sbc $ff
-tay
-//FRAGMENT vbuyy=vbuxx_minus_vbuyy
-txa
-sty $ff
-sec
-sbc $ff
-tay
-//FRAGMENT vbuyy=vbuyy_minus_vbuyy
-lda #0
-tay
-//FRAGMENT vbuyy=vbuzz_minus_vbuyy
-tza
-sty $ff
-sec
-sbc $ff
-tay
-//FRAGMENT vbuzz=vbuz1_minus_vbuyy
-tya
-eor #$ff
-sec
-adc {z1}
-taz
-//FRAGMENT vbuzz=vbuaa_minus_vbuyy
-sty $ff
-sec
-sbc $ff
-taz
-//FRAGMENT vbuzz=vbuxx_minus_vbuyy
-txa
-sty $ff
-sec
-sbc $ff
-taz
-//FRAGMENT vbuzz=vbuyy_minus_vbuyy
-lda #0
-taz
-//FRAGMENT vbuzz=vbuzz_minus_vbuyy
-tza
-sty $ff
-sec
-sbc $ff
-taz
-//FRAGMENT vbuz1=vbuz2_minus_vbuzz
-tza
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuaa_minus_vbuzz
-stz $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_minus_vbuzz
-txa
-stz $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_minus_vbuzz
-tya
-stz $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuz1=vbuzz_minus_vbuzz
-tza
-lda #0
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_minus_vbuzz
-tza
-eor #$ff
-sec
-adc {z1}
-//FRAGMENT vbuaa=vbuaa_minus_vbuzz
-stz $ff
-sec
-sbc $ff
-//FRAGMENT vbuaa=vbuxx_minus_vbuzz
-txa
-stz $ff
-sec
-sbc $ff
-//FRAGMENT vbuaa=vbuyy_minus_vbuzz
-tya
-stz $ff
-sec
-sbc $ff
-//FRAGMENT vbuaa=vbuzz_minus_vbuzz
-tza
-lda #0
-//FRAGMENT vbuxx=vbuz1_minus_vbuzz
-tza
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbuxx=vbuaa_minus_vbuzz
-stz $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbuxx=vbuxx_minus_vbuzz
-txa
-stz $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbuxx=vbuyy_minus_vbuzz
-tya
-stz $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbuxx=vbuzz_minus_vbuzz
-tza
-lda #0
-tax
-//FRAGMENT vbuyy=vbuz1_minus_vbuzz
-tza
-eor #$ff
-sec
-adc {z1}
-tay
-//FRAGMENT vbuyy=vbuaa_minus_vbuzz
-stz $ff
-sec
-sbc $ff
-tay
-//FRAGMENT vbuyy=vbuxx_minus_vbuzz
-txa
-stz $ff
-sec
-sbc $ff
-tay
-//FRAGMENT vbuyy=vbuyy_minus_vbuzz
-tya
-stz $ff
-sec
-sbc $ff
-tay
-//FRAGMENT vbuyy=vbuzz_minus_vbuzz
-tza
-lda #0
-tay
-//FRAGMENT vbuzz=vbuz1_minus_vbuzz
-tza
-eor #$ff
-sec
-adc {z1}
-taz
-//FRAGMENT vbuzz=vbuaa_minus_vbuzz
-stz $ff
-sec
-sbc $ff
-taz
-//FRAGMENT vbuzz=vbuxx_minus_vbuzz
-txa
-stz $ff
-sec
-sbc $ff
-taz
-//FRAGMENT vbuzz=vbuyy_minus_vbuzz
-tya
-stz $ff
-sec
-sbc $ff
-taz
-//FRAGMENT vbuzz=vbuzz_minus_vbuzz
-tza
-lda #0
-taz
-//FRAGMENT vbuxx_lt_vbuz1_then_la1
-cpx {z1}
-bcc {la1}
-//FRAGMENT vbuz1_neq_vbuaa_then_la1
-cmp {z1}
-bne {la1}
-//FRAGMENT vbuz1=vbuz2_minus_vbuaa
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbuxx=vbuz1_minus_vbuaa
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_minus_vbuaa
-eor #$ff
-sec
-adc {z1}
-tay
-//FRAGMENT vbuzz=vbuz1_minus_vbuaa
-eor #$ff
-sec
-adc {z1}
-taz
-//FRAGMENT vbuz1=vbuxx_minus_vbuaa
-sta $ff
-txa
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_minus_vbuaa
-sta $ff
-txa
-sec
-sbc $ff
-tax
-//FRAGMENT vbuyy=vbuxx_minus_vbuaa
-sta $ff
-txa
-sec
-sbc $ff
-tay
-//FRAGMENT vbuzz=vbuxx_minus_vbuaa
-sta $ff
-txa
-sec
-sbc $ff
-taz
-//FRAGMENT vbuz1=vbuyy_minus_vbuaa
-sta $ff
-tya
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuxx=vbuyy_minus_vbuaa
-sta $ff
-tya
-sec
-sbc $ff
-tax
-//FRAGMENT vbuyy=vbuyy_minus_vbuaa
-sta $ff
-tya
-sec
-sbc $ff
-tay
-//FRAGMENT vbuzz=vbuyy_minus_vbuaa
-sta $ff
-tya
-sec
-sbc $ff
-taz
-//FRAGMENT vbuz1=vbuzz_minus_vbuaa
-tay
-tza
-sty $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbuxx=vbuzz_minus_vbuaa
-tax
-tza
-stx $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbuyy=vbuzz_minus_vbuaa
-tay
-tza
-sty $ff
-sec
-sbc $ff
-tay
-//FRAGMENT vbuzz=vbuzz_minus_vbuaa
-tay
-tza
-sty $ff
-sec
-sbc $ff
-taz
-//FRAGMENT vbuxx_lt_vbuc1_then_la1
-cpx #{c1}
-bcc {la1}
-//FRAGMENT vbuaa=_byte_vduz1
-lda {z1}
-//FRAGMENT vbuxx=_byte_vduz1
-lda {z1}
-tax
-//FRAGMENT vbuyy=_byte_vduz1
-lda {z1}
-tay
-//FRAGMENT vbuzz=_byte_vduz1
-lda {z1}
-taz
-//FRAGMENT vbuz1=vbuaa_rol_2
-asl
-asl
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_rol_2
-txa
-asl
-asl
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_rol_2
-tya
-asl
-asl
-sta {z1}
-//FRAGMENT vbuz1=vbuzz_rol_2
-tza
-asl
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_rol_2
-lda {z1}
-asl
-asl
-//FRAGMENT vbuaa=vbuaa_rol_2
-asl
-asl
-//FRAGMENT vbuaa=vbuxx_rol_2
-txa
-asl
-asl
-//FRAGMENT vbuaa=vbuyy_rol_2
-tya
-asl
-asl
-//FRAGMENT vbuaa=vbuzz_rol_2
-tza
-asl
-asl
-//FRAGMENT vbuxx=vbuz1_rol_2
-lda {z1}
-asl
-asl
-tax
-//FRAGMENT vbuxx=vbuaa_rol_2
-asl
-asl
-tax
-//FRAGMENT vbuxx=vbuxx_rol_2
-txa
-asl
-asl
-tax
-//FRAGMENT vbuxx=vbuyy_rol_2
-tya
-asl
-asl
-tax
-//FRAGMENT vbuxx=vbuzz_rol_2
-tza
-asl
-asl
-tax
-//FRAGMENT vbuyy=vbuz1_rol_2
-lda {z1}
-asl
-asl
-tay
-//FRAGMENT vbuyy=vbuaa_rol_2
-asl
-asl
-tay
-//FRAGMENT vbuyy=vbuxx_rol_2
-txa
-asl
-asl
-tay
-//FRAGMENT vbuyy=vbuyy_rol_2
-tya
-asl
-asl
-tay
-//FRAGMENT vbuyy=vbuzz_rol_2
-tza
-asl
-asl
-tay
-//FRAGMENT vbuzz=vbuz1_rol_2
-lda {z1}
-asl
-asl
-taz
-//FRAGMENT vbuzz=vbuaa_rol_2
-asl
-asl
-taz
-//FRAGMENT vbuzz=vbuxx_rol_2
-txa
-asl
-asl
-taz
-//FRAGMENT vbuzz=vbuyy_rol_2
-tya
-asl
-asl
-taz
-//FRAGMENT vbuzz=vbuzz_rol_2
-tza
-asl
-asl
-taz
-//FRAGMENT vduz1=pduc1_derefidx_vbuaa
-tay
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-lda {c1}+2,y
-sta {z1}+2
-lda {c1}+3,y
-sta {z1}+3
-//FRAGMENT vduz1=pduc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-lda {c1}+1,x
-sta {z1}+1
-lda {c1}+2,x
-sta {z1}+2
-lda {c1}+3,x
-sta {z1}+3
-//FRAGMENT vduz1=pduc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-lda {c1}+2,y
-sta {z1}+2
-lda {c1}+3,y
-sta {z1}+3
-//FRAGMENT vduz1=pduc1_derefidx_vbuzz
-tza
-tay
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-lda {c1}+2,y
-sta {z1}+2
-lda {c1}+3,y
-sta {z1}+3
-//FRAGMENT _deref_pbuz1=vbuaa
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=vbuxx
-txa
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=vbuyy
-tya
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=vbuzz
-tza
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuaa_le_vbuc1_then_la1
-cmp #{c1}
-bcc {la1}
-beq {la1}
-//FRAGMENT vbuaa=vbuaa_plus_vbuc1
-clc
-adc #{c1}
-//FRAGMENT vbuxx=vbuxx_plus_vbuc1
-txa
-clc
-adc #{c1}
-tax
-//FRAGMENT vbuyy=vbuyy_plus_vbuc1
-tya
-clc
-adc #{c1}
-tay
-//FRAGMENT vbuzz=vbuzz_plus_vbuc1
-tza
-clc
-adc #{c1}
-taz
-//FRAGMENT vbuaa_ge_vbuz1_then_la1
-cmp {z1}
-bcs {la1}
-//FRAGMENT vbuz1=vbuz1_minus_vbuaa
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbuz1=vbuz1_minus_vbuxx
-txa
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbuz1=vbuz1_minus_vbuyy
-tya
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbuz1=vbuz1_minus_vbuzz
-tza
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_minus_1
-dex
-stx {z1}
-//FRAGMENT vbuz1=vbuyy_minus_1
-tya
-sec
-sbc #1
-sta {z1}
-//FRAGMENT vbuxx_le_vbuz1_then_la1
-lda {z1}
-stx $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuyy_le_vbuz1_then_la1
-lda {z1}
-sty $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuzz_le_vbuz1_then_la1
-ldy {z1}
-tza
-sta $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT vbuz1_le_vbuaa_then_la1
-cmp {z1}
-bcs {la1}
-//FRAGMENT vbuxx_ge_vbuz1_then_la1
-cpx {z1}
-bcs {la1}
-//FRAGMENT vbuxx=vbuc1
-ldx #{c1}
-//FRAGMENT vbuzz=vbuz1
-ldz {z1}
-//FRAGMENT vbuz1=vbuzz
-stz {z1}
-//FRAGMENT vbuzz_ge_vbuz1_then_la1
-cpz {z1}
-bcs {la1}
-//FRAGMENT vbuxx=_inc_vbuxx
-inx
-//FRAGMENT vbuyy=vbuc1
-ldy #{c1}
-//FRAGMENT vbuyy=_inc_vbuyy
-iny
-//FRAGMENT vbuz1_ge_vbuxx_then_la1
-lda {z1}
-stx $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuzz_ge_vbuxx_then_la1
-stx $ff
-cpz $ff
-bcs {la1}
-//FRAGMENT vbuyy=vbuz1
-ldy {z1}
-//FRAGMENT vbuz1_ge_vbuyy_then_la1
-lda {z1}
-sty $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuxx_ge_vbuyy_then_la1
-sty $ff
-cpx $ff
-bcs {la1}
-//FRAGMENT vbuzz_ge_vbuyy_then_la1
-sty $ff
-cpz $ff
-bcs {la1}
-//FRAGMENT vbuz1_ge_vbuzz_then_la1
-ldy {z1}
-tza
-sta $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT vbuxx_ge_vbuzz_then_la1
-tza
-tay
-sty $ff
-cpx $ff
-bcs {la1}
-//FRAGMENT vbuaa=vbuxx
-txa
-//FRAGMENT vbuaa=vbuzz
-tza
-//FRAGMENT vbuxx=vbuzz
-tza
-tax
-//FRAGMENT vbuxx_le_vbuc1_then_la1
-cpx #{c1}
-bcc {la1}
-beq {la1}
-//FRAGMENT vbuz1=vbuyy
-sty {z1}
-//FRAGMENT vbuyy_lt_vbuc1_then_la1
-cpy #{c1}
-bcc {la1}
-//FRAGMENT vbuyy_le_vbuc1_then_la1
-cpy #{c1}
-bcc {la1}
-beq {la1}
-//FRAGMENT vbuzz_le_vbuc1_then_la1
-cpz #{c1}
-bcc {la1}
-beq {la1}
-//FRAGMENT vbuaa=vbuyy
-tya
-//FRAGMENT vbuxx=vbuaa
-tax
-//FRAGMENT vbuxx=vbuyy
-tya
-tax
-//FRAGMENT vbuyy=vbuaa
-tay
-//FRAGMENT vbuyy=vbuxx
-txa
-tay
-//FRAGMENT vbuyy=vbuzz
-tza
-tay
-//FRAGMENT vbuzz=vbuaa
-taz
-//FRAGMENT vbuzz=vbuxx
-txa
-taz
-//FRAGMENT vbuzz=vbuyy
-tya
-taz
-//FRAGMENT vbuyy_eq_vbuc1_then_la1
-cpy #{c1}
-beq {la1}
-//FRAGMENT vbuzz_eq_vbuc1_then_la1
-cpz #{c1}
-beq {la1}
-//FRAGMENT vbuz1_lt_vbuxx_then_la1
-cpx {z1}
-beq !+
-bcs {la1}
-!:
-//FRAGMENT vbuyy_ge_vbuz1_then_la1
-cpy {z1}
-bcs {la1}
-//FRAGMENT vbuaa=vbuc1
-lda #{c1}
-//FRAGMENT 0_neq_vbuyy_then_la1
-cpy #0
-bne {la1}
-//FRAGMENT 0_neq_vbuzz_then_la1
-cpz #0
-bne {la1}
-//FRAGMENT vbuyy_ge_vbuxx_then_la1
-stx $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT vbsaa=_inc_vbsaa
-inc
-//FRAGMENT vbsxx=_inc_vbsxx
-inx
-//FRAGMENT vbsyy=_sbyte_vwuz1
-ldy {z1}
-//FRAGMENT vbsyy=_inc_vbsyy
-iny
-//FRAGMENT vbszz=_sbyte_vwuz1
-ldz {z1}
-//FRAGMENT vbszz=_inc_vbszz
-inz
-//FRAGMENT 0_eq_vbuzz_then_la1
-cpz #0
-beq {la1}
-//FRAGMENT vbuz1_neq_vbuxx_then_la1
-cpx {z1}
-bne {la1}
-//FRAGMENT vbuz1_neq_vbuyy_then_la1
-cpy {z1}
-bne {la1}
-//FRAGMENT vbuz1_neq_vbuzz_then_la1
-cpz {z1}
-bne {la1}
-//FRAGMENT vbuxx_neq_vbuz1_then_la1
-cpx {z1}
-bne {la1}
-//FRAGMENT vbuxx_neq_vbuaa_then_la1
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuxx_neq_vbuyy_then_la1
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuxx_neq_vbuzz_then_la1
-tza
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuyy_neq_vbuz1_then_la1
-cpy {z1}
-bne {la1}
-//FRAGMENT vbuyy_neq_vbuaa_then_la1
-tax
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuyy_neq_vbuxx_then_la1
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuyy_neq_vbuzz_then_la1
-tza
-tax
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuzz_neq_vbuz1_then_la1
-cpz {z1}
-bne {la1}
-//FRAGMENT vbuzz_neq_vbuaa_then_la1
-tax
-tza
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuzz_neq_vbuxx_then_la1
-tza
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuzz_neq_vbuyy_then_la1
-tza
-tax
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuyy_lt_vbuz1_then_la1
-cpy {z1}
-bcc {la1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuzz
-tza
-tay
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuzz_lt_vbuz1_then_la1
-cpz {z1}
-bcc {la1}
-//FRAGMENT vbuaa=vbuz1_minus_1
-lda {z1}
-sec
-sbc #1
-//FRAGMENT 0_eq_vbuyy_then_la1
-cpy #0
-beq {la1}
-//FRAGMENT vbuyy=_deref_pbuc1
-ldy {c1}
-//FRAGMENT vbuzz=_deref_pbuc1
-ldz {c1}
-//FRAGMENT vbuyy_le_vbuaa_then_la1
-sty $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuxx=vbuz1_minus_1
-ldx {z1}
-dex
-//FRAGMENT vbuyy_le_vbuxx_then_la1
-sty $ff
-cpx $ff
-bcs {la1}
-//FRAGMENT vbuzz=vbuz1_minus_1
-lda {z1}
-taz
-dez
-//FRAGMENT vbuyy_le_vbuzz_then_la1
-sty $ff
-cpz $ff
-bcs {la1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy
-lda {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy
-ldx {c1},y
-//FRAGMENT vbuzz=pbuc1_derefidx_vbuyy
-lda {c1},y
-taz
-//FRAGMENT vbuaa_lt_vbuzz_then_la1
-stz $ff
-cmp $ff
-bcc {la1}
-//FRAGMENT vbuxx=vbuzz_minus_1
-tza
-tax
-dex
-//FRAGMENT vbuyy_lt_vbuzz_then_la1
-stz $ff
-cpy $ff
-bcc {la1}
-//FRAGMENT vbuyy=_byte_vwuz1
-ldy {z1}
-//FRAGMENT vbuzz=_byte_vwuz1
-lda {z1}
-taz
-//FRAGMENT vwuz1=vwuz2_plus_vwuz1
-clc
-lda {z1}
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_vwuz1
-lda {z1}
-clc
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz1_rol_3
-asw {z1}
-asw {z1}
-asw {z1}
diff --git a/src/main/fragment/cache/fragment-cache-mega45gs02.asm b/src/main/fragment/cache/fragment-cache-mega45gs02.asm
index 47c9a51cb..d31ec8a2f 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 aafa246f3 aafa2666a
+//KICKC FRAGMENT CACHE 9a29ecc94 9a29eec1a
//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 b1d18b974..d4131120a 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 aafa246f3 aafa2666a
+//KICKC FRAGMENT CACHE 9a29ecc94 9a29eec1a
//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 791023eeb..1b33f621d 100644
--- a/src/main/fragment/cache/fragment-cache-mos6502x.asm
+++ b/src/main/fragment/cache/fragment-cache-mos6502x.asm
@@ -1,13 +1,4 @@
-//KICKC FRAGMENT CACHE aafa246f3 aafa2666a
-//FRAGMENT _deref_pduc1=vduc2
-lda #<{c2}
-sta {c1}
-lda #>{c2}
-sta {c1}+1
-lda #<{c2}>>$10
-sta {c1}+2
-lda #>{c2}>>$10
-sta {c1}+3
+//KICKC FRAGMENT CACHE 9a29ecc94 9a29eec1a
//FRAGMENT vbuz1=vbuc1
lda #{c1}
sta {z1}
@@ -15,1383 +6,6 @@ sta {z1}
lda {z1}
cmp #{c1}
bcc {la1}
-//FRAGMENT vbuz1=_inc_vbuz1
-inc {z1}
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuz4)_(vbuz5)
-lda {z2}
-sta {z1}
-lda {z3}
-sta {z1}+1
-lda {z4}
-sta {z1}+2
-lda {z5}
-sta {z1}+3
-//FRAGMENT _deref_pduc1=vduz1
-lda {z1}
-sta {c1}
-lda {z1}+1
-sta {c1}+1
-lda {z1}+2
-sta {c1}+2
-lda {z1}+3
-sta {c1}+3
-//FRAGMENT vbuaa_lt_vbuc1_then_la1
-cmp #{c1}
-bcc {la1}
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuz3)_(vbuz4)
-sta {z1}+1
-lda {z2}
-sta {z1}
-lda {z3}
-sta {z1}+2
-lda {z4}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuz3)_(vbuz4)
-lda {z2}
-sta {z1}
-stx {z1}+1
-lda {z3}
-sta {z1}+2
-lda {z4}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuz3)_(vbuz4)
-lda {z2}
-ldx {z3}
-sta {z1}
-sty {z1}+1
-stx {z1}+2
-lda {z4}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuz3)_(vbuz4)
-sta {z1}
-lda {z2}
-sta {z1}+1
-lda {z3}
-sta {z1}+2
-lda {z4}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuz2)_(vbuz3)
-tax
-sta {z1}
-stx {z1}+1
-lda {z2}
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuz2)_(vbuz3)
-sta {z1}
-stx {z1}+1
-lda {z2}
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuz2)_(vbuz3)
-ldx {z2}
-sta {z1}
-sty {z1}+1
-stx {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuz3)_(vbuz4)
-lda {z2}
-ldy {z4}
-stx {z1}
-sta {z1}+1
-lda {z3}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuz2)_(vbuz3)
-ldy {z3}
-stx {z1}
-sta {z1}+1
-lda {z2}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuz2)_(vbuz3)
-ldy {z3}
-txa
-stx {z1}
-sta {z1}+1
-lda {z2}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuz2)_(vbuz3)
-lda {z2}
-stx {z1}
-sty {z1}+1
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuz3)_(vbuz4)
-lda {z2}
-ldx {z3}
-sty {z1}
-stx {z1}+1
-sta {z1}+2
-lda {z4}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuz2)_(vbuz3)
-ldx {z2}
-sty {z1}
-stx {z1}+1
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuz2)_(vbuz3)
-lda {z3}
-sty {z1}
-stx {z1}+1
-sta {z1}+3
-lda {z2}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuz2)_(vbuz3)
-ldx {z2}
-tya
-sty {z1}
-stx {z1}+1
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuz4)_(vbuaa)
-sta {z1}+3
-lda {z2}
-sta {z1}
-lda {z3}
-sta {z1}+1
-lda {z4}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuz3)_(vbuaa)
-ldx {z2}
-tay
-stx {z1}
-sta {z1}+1
-lda {z3}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuz3)_(vbuaa)
-ldy {z2}
-sty {z1}
-stx {z1}+1
-sta {z1}+3
-lda {z3}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuz3)_(vbuaa)
-ldx {z2}
-stx {z1}
-sty {z1}+1
-sta {z1}+3
-lda {z3}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuz3)_(vbuaa)
-ldx {z2}
-tay
-sta {z1}
-stx {z1}+1
-lda {z3}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuz2)_(vbuaa)
-tax
-tay
-sta {z1}
-sty {z1}+1
-lda {z2}
-sta {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuz2)_(vbuaa)
-tay
-sta {z1}
-stx {z1}+1
-lda {z2}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuz2)_(vbuaa)
-tax
-sta {z1}
-sty {z1}+1
-lda {z2}
-sta {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuz3)_(vbuaa)
-ldy {z2}
-stx {z1}
-sty {z1}+1
-sta {z1}+3
-lda {z3}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuz2)_(vbuaa)
-tay
-stx {z1}
-sta {z1}+1
-lda {z2}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuz2)_(vbuaa)
-tay
-txa
-stx {z1}
-sta {z1}+1
-lda {z2}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuz2)_(vbuaa)
-stx {z1}
-sty {z1}+1
-sta {z1}+3
-lda {z2}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuz3)_(vbuaa)
-ldx {z2}
-sty {z1}
-stx {z1}+1
-sta {z1}+3
-lda {z3}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuz2)_(vbuaa)
-tax
-sty {z1}
-sta {z1}+1
-stx {z1}+3
-lda {z2}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuz2)_(vbuaa)
-sty {z1}
-stx {z1}+1
-sta {z1}+3
-lda {z2}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuz2)_(vbuaa)
-tax
-tya
-sty {z1}
-sta {z1}+1
-stx {z1}+3
-lda {z2}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuz4)_(vbuxx)
-lda {z2}
-ldy {z3}
-sta {z1}
-sty {z1}+1
-lda {z4}
-sta {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuz3)_(vbuxx)
-ldy {z2}
-sty {z1}
-sta {z1}+1
-stx {z1}+3
-lda {z3}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuz3)_(vbuxx)
-ldy {z2}
-txa
-sty {z1}
-stx {z1}+1
-sta {z1}+3
-lda {z3}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuz3)_(vbuxx)
-lda {z2}
-sta {z1}
-sty {z1}+1
-lda {z3}
-sta {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuz3)_(vbuxx)
-ldy {z2}
-sta {z1}
-sty {z1}+1
-lda {z3}
-sta {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuz2)_(vbuxx)
-tay
-sta {z1}
-sty {z1}+1
-lda {z2}
-sta {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuz2)_(vbuxx)
-tay
-txa
-sty {z1}
-stx {z1}+1
-sta {z1}+3
-lda {z2}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuz2)_(vbuxx)
-sta {z1}
-sty {z1}+1
-lda {z2}
-sta {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuz3)_(vbuxx)
-ldy {z2}
-txa
-stx {z1}
-sty {z1}+1
-sta {z1}+3
-lda {z3}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuz2)_(vbuxx)
-tay
-txa
-stx {z1}
-sty {z1}+1
-sta {z1}+3
-lda {z2}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuz2)_(vbuxx)
-txa
-tay
-stx {z1}
-sta {z1}+1
-lda {z2}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuz2)_(vbuxx)
-txa
-stx {z1}
-sty {z1}+1
-sta {z1}+3
-lda {z2}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuz3)_(vbuxx)
-lda {z2}
-sty {z1}
-sta {z1}+1
-stx {z1}+3
-lda {z3}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuz2)_(vbuxx)
-sty {z1}
-sta {z1}+1
-stx {z1}+3
-lda {z2}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuz2)_(vbuxx)
-txa
-sty {z1}
-stx {z1}+1
-sta {z1}+3
-lda {z2}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuz2)_(vbuxx)
-tya
-sty {z1}
-sta {z1}+1
-stx {z1}+3
-lda {z2}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuz4)_(vbuyy)
-lda {z2}
-ldx {z3}
-sta {z1}
-stx {z1}+1
-lda {z4}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuz3)_(vbuyy)
-ldx {z2}
-stx {z1}
-sta {z1}+1
-lda {z3}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuz3)_(vbuyy)
-lda {z2}
-sta {z1}
-stx {z1}+1
-lda {z3}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuz3)_(vbuyy)
-ldx {z2}
-tya
-stx {z1}
-sty {z1}+1
-sta {z1}+3
-lda {z3}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuz3)_(vbuyy)
-ldx {z2}
-sta {z1}
-stx {z1}+1
-lda {z3}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuz2)_(vbuyy)
-tax
-sta {z1}
-stx {z1}+1
-lda {z2}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuz2)_(vbuyy)
-sta {z1}
-stx {z1}+1
-lda {z2}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuz2)_(vbuyy)
-tax
-tya
-stx {z1}
-sty {z1}+1
-sta {z1}+3
-lda {z2}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuz3)_(vbuyy)
-lda {z2}
-stx {z1}
-sta {z1}+1
-lda {z3}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuz2)_(vbuyy)
-stx {z1}
-sta {z1}+1
-lda {z2}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuz2)_(vbuyy)
-txa
-stx {z1}
-sta {z1}+1
-lda {z2}
-sta {z1}+2
-sty {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuz2)_(vbuyy)
-tya
-stx {z1}
-sty {z1}+1
-sta {z1}+3
-lda {z2}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuz3)_(vbuyy)
-ldx {z2}
-tya
-sty {z1}
-stx {z1}+1
-sta {z1}+3
-lda {z3}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuz2)_(vbuyy)
-tax
-tya
-sty {z1}
-stx {z1}+1
-sta {z1}+3
-lda {z2}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuz2)_(vbuyy)
-tya
-sty {z1}
-stx {z1}+1
-sta {z1}+3
-lda {z2}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuz2)_(vbuyy)
-tya
-tax
-sty {z1}
-sta {z1}+1
-stx {z1}+3
-lda {z2}
-sta {z1}+2
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuaa)_(vbuz4)
-sta {z1}+2
-lda {z2}
-sta {z1}
-lda {z3}
-sta {z1}+1
-lda {z4}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuaa)_(vbuz3)
-ldy {z2}
-tax
-sty {z1}
-stx {z1}+1
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuaa)_(vbuz3)
-ldy {z2}
-sty {z1}
-stx {z1}+1
-lda {z3}
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuaa)_(vbuz3)
-ldx {z2}
-stx {z1}
-sty {z1}+1
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuaa)_(vbuz3)
-ldx {z3}
-tay
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuaa)_(vbuz2)
-tax
-tay
-sta {z1}
-sty {z1}+1
-stx {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuaa)_(vbuz2)
-tay
-tya
-sty {z1}
-stx {z1}+1
-lda {z2}
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuaa)_(vbuz2)
-tax
-sta {z1}
-sty {z1}+1
-stx {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuaa)_(vbuz3)
-ldy {z2}
-stx {z1}
-sty {z1}+1
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuaa)_(vbuz2)
-tay
-tya
-stx {z1}
-sty {z1}+1
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuaa)_(vbuz2)
-stx $ff
-ldy $ff
-stx {z1}
-sty {z1}+1
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuaa)_(vbuz2)
-stx {z1}
-sty {z1}+1
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuaa)_(vbuz3)
-tax
-lda {z2}
-sty {z1}
-stx {z1}+1
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuaa)_(vbuz2)
-tax
-sty {z1}
-stx {z1}+1
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuaa)_(vbuz2)
-sty {z1}
-stx {z1}+1
-lda {z2}
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuaa)_(vbuz2)
-tax
-tya
-sty {z1}
-stx {z1}+1
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuaa)_(vbuaa)
-tax
-tay
-lda {z2}
-sta {z1}
-lda {z3}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuaa)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuaa)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuaa)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuaa)_(vbuaa)
-tax
-tay
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuaa)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuaa)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuaa)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuaa)_(vbuaa)
-tay
-txa
-sty $ff
-ldx $ff
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuaa)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuaa)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuaa)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuaa)_(vbuaa)
-sty $ff
-ldx $ff
-tay
-txa
-sty $ff
-ldx $ff
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuaa)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuaa)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuaa)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuaa)_(vbuxx)
-tay
-lda {z2}
-sta {z1}
-lda {z3}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuaa)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuaa)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuaa)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuaa)_(vbuxx)
-tay
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuaa)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuaa)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuaa)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuaa)_(vbuxx)
-tay
-txa
-tax
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuaa)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuaa)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuaa)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuaa)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuaa)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuaa)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuaa)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuaa)_(vbuyy)
-sty $ff
-ldx $ff
-tay
-lda {z2}
-sta {z1}
-lda {z3}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuaa)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuaa)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuaa)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuaa)_(vbuyy)
-sty $ff
-ldx $ff
-tay
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuaa)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuaa)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuaa)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuaa)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuaa)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuaa)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuaa)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuaa)_(vbuyy)
-tax
-tya
-stx $ff
-ldy $ff
-tax
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuaa)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuaa)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuaa)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuxx)_(vbuz4)
-lda {z2}
-ldy {z3}
-sta {z1}
-sty {z1}+1
-stx {z1}+2
-lda {z4}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuxx)_(vbuz3)
-ldy {z2}
-sty {z1}
-stx {z1}+1
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuxx)_(vbuz3)
-ldy {z2}
-txa
-sty {z1}
-stx {z1}+1
-lda {z3}
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuxx)_(vbuz3)
-lda {z2}
-sta {z1}
-sty {z1}+1
-stx {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuxx)_(vbuz3)
-ldy {z2}
-sta {z1}
-sty {z1}+1
-stx {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuxx)_(vbuz2)
-tay
-sta {z1}
-sty {z1}+1
-stx {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuxx)_(vbuz2)
-tay
-txa
-sty {z1}
-stx {z1}+1
-lda {z2}
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuxx)_(vbuz2)
-sta {z1}
-sty {z1}+1
-stx {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuxx)_(vbuz3)
-ldy {z2}
-txa
-stx {z1}
-sty {z1}+1
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuxx)_(vbuz2)
-tay
-txa
-stx {z1}
-sty {z1}+1
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuxx)_(vbuz2)
-txa
-tay
-tya
-stx {z1}
-sty {z1}+1
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuxx)_(vbuz2)
-txa
-stx {z1}
-sty {z1}+1
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuxx)_(vbuz3)
-lda {z2}
-sty {z1}
-stx {z1}+1
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuxx)_(vbuz2)
-sty {z1}
-stx {z1}+1
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuxx)_(vbuz2)
-txa
-sty {z1}
-stx {z1}+1
-lda {z2}
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuxx)_(vbuz2)
-tya
-sty {z1}
-stx {z1}+1
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuxx)_(vbuaa)
-stx $ff
-ldy $ff
-tax
-lda {z2}
-sta {z1}
-lda {z3}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuxx)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuxx)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuxx)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuxx)_(vbuaa)
-stx $ff
-ldy $ff
-tax
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuxx)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuxx)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuxx)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuxx)_(vbuaa)
-tay
-txa
-sty $ff
-ldx $ff
-tay
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuxx)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuxx)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuxx)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuxx)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuxx)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuxx)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuxx)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuxx)_(vbuxx)
-txa
-tax
-tay
-lda {z2}
-sta {z1}
-lda {z3}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuxx)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuxx)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuxx)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuxx)_(vbuxx)
-tay
-txa
-sty $ff
-ldx $ff
-tay
-txa
-sty $ff
-ldx $ff
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuxx)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuxx)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuxx)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuxx)_(vbuxx)
-txa
-tay
-txa
-sty $ff
-ldx $ff
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuxx)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuxx)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuxx)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuxx)_(vbuxx)
-txa
-sty $ff
-ldx $ff
-tay
-txa
-sty $ff
-ldx $ff
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuxx)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuxx)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuxx)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuxx)_(vbuyy)
-txa
-sty $ff
-ldx $ff
-tay
-lda {z2}
-sta {z1}
-lda {z3}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuxx)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuxx)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuxx)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuxx)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuxx)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuxx)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuxx)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuxx)_(vbuyy)
-txa
-sty $ff
-ldx $ff
-tay
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuxx)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuxx)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuxx)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuxx)_(vbuyy)
-tya
-stx $ff
-ldy $ff
-tax
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuxx)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuxx)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuxx)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuyy)_(vbuz4)
-lda {z2}
-ldx {z4}
-sta {z1}
-lda {z3}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuyy)_(vbuz3)
-sty $ff
-ldx $ff
-ldy {z2}
-sty {z1}
-stx {z1}+1
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuyy)_(vbuz3)
-tya
-ldy {z2}
-sty {z1}
-stx {z1}+1
-lda {z3}
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuyy)_(vbuz3)
-ldx {z2}
-tya
-stx {z1}
-sty {z1}+1
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuyy)_(vbuz3)
-ldx {z3}
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuyy)_(vbuz2)
-sty $ff
-ldx $ff
-tay
-sta {z1}
-sty {z1}+1
-stx {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuyy)_(vbuz2)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuyy)_(vbuz2)
-tax
-tya
-stx {z1}
-sty {z1}+1
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuyy)_(vbuz3)
-tya
-ldy {z2}
-stx {z1}
-sty {z1}+1
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuyy)_(vbuz2)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuyy)_(vbuz2)
-tya
-stx $ff
-ldy $ff
-stx {z1}
-sty {z1}+1
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuyy)_(vbuz2)
-tya
-stx {z1}
-sty {z1}+1
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuyy)_(vbuz3)
-tya
-tax
-lda {z2}
-sty {z1}
-stx {z1}+1
-sta {z1}+2
-lda {z3}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuyy)_(vbuz2)
-sty $ff
-ldx $ff
-sty {z1}
-stx {z1}+1
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuyy)_(vbuz2)
-tya
-sty {z1}
-stx {z1}+1
-lda {z2}
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuyy)_(vbuz2)
-tya
-tax
-sty {z1}
-stx {z1}+1
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuyy)_(vbuaa)
-tax
-lda {z2}
-sta {z1}
-lda {z3}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuyy)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuyy)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuyy)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuyy)_(vbuaa)
-tax
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuyy)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuyy)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuyy)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuyy)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuyy)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuyy)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuyy)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuyy)_(vbuaa)
-tax
-tya
-tay
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuyy)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuyy)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuyy)_(vbuaa)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuyy)_(vbuxx)
-lda {z2}
-sta {z1}
-lda {z3}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuyy)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuyy)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuyy)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuyy)_(vbuxx)
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuyy)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuyy)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuyy)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuyy)_(vbuxx)
-txa
-tax
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuyy)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuyy)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuyy)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuyy)_(vbuxx)
-tya
-tay
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuyy)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuyy)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuyy)_(vbuxx)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuyy)_(vbuyy)
-tya
-tax
-lda {z2}
-sta {z1}
-lda {z3}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuyy)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuyy)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuyy)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuyy)_(vbuyy)
-sty $ff
-ldx $ff
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuyy)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuyy)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuyy)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuyy)_(vbuyy)
-txa
-sty $ff
-ldx $ff
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuyy)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuyy)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuyy)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuyy)_(vbuyy)
-tya
-tax
-tya
-tay
-sta {z1}
-lda {z2}
-sta {z1}+1
-sty {z1}+2
-stx {z1}+3
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuyy)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuyy)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuyy)_(vbuyy)
-NO_SYNTHESIS
-//FRAGMENT vbuxx_lt_vbuc1_then_la1
-cpx #{c1}
-bcc {la1}
-//FRAGMENT vbuxx=vbuc1
-ldx #{c1}
-//FRAGMENT vbuxx=_inc_vbuxx
-inx
-//FRAGMENT vbuyy=vbuc1
-ldy #{c1}
-//FRAGMENT vbuyy_lt_vbuc1_then_la1
-cpy #{c1}
-bcc {la1}
-//FRAGMENT vbuyy=_inc_vbuyy
-iny
//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2
lda #{c2}
ldy {z1}
@@ -1404,6 +18,9 @@ lda {z1}
clc
adc #2
sta {z1}
+//FRAGMENT vbuaa_lt_vbuc1_then_la1
+cmp #{c1}
+bcc {la1}
//FRAGMENT pbuc1_derefidx_vbuaa=vbuc2
tay
lda #{c2}
@@ -1417,6 +34,16 @@ sta {c1},y
//FRAGMENT vbuxx=vbuxx_plus_2
inx
inx
+//FRAGMENT vbuxx_lt_vbuc1_then_la1
+cpx #{c1}
+bcc {la1}
+//FRAGMENT vbuxx=vbuc1
+ldx #{c1}
+//FRAGMENT vbuyy=vbuc1
+ldy #{c1}
+//FRAGMENT vbuyy_lt_vbuc1_then_la1
+cpy #{c1}
+bcc {la1}
//FRAGMENT vbuyy=vbuyy_plus_2
iny
iny
@@ -1428,6 +55,8 @@ beq {la1}
lda {z2}
ldy {z1}
sta {c1},y
+//FRAGMENT vbuz1=_inc_vbuz1
+inc {z1}
//FRAGMENT vbuz1_eq_vbuaa_then_la1
cmp {z1}
beq {la1}
@@ -1457,6 +86,10 @@ sta {c1},y
//FRAGMENT pbuc1_derefidx_vbuyy=vbuyy
tya
sta {c1},y
+//FRAGMENT vbuxx=_inc_vbuxx
+inx
+//FRAGMENT vbuyy=_inc_vbuyy
+iny
//FRAGMENT vbuaa=vbuc1
lda #{c1}
//FRAGMENT vbuz1_eq_vbuyy_then_la1
@@ -8321,6 +6954,1373 @@ sta {z1}+1
//FRAGMENT vbsxx_neq_0_then_la1
cpx #0
bne {la1}
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuz4)_(vbuz5)
+lda {z2}
+sta {z1}
+lda {z3}
+sta {z1}+1
+lda {z4}
+sta {z1}+2
+lda {z5}
+sta {z1}+3
+//FRAGMENT _deref_pduc1=vduz1
+lda {z1}
+sta {c1}
+lda {z1}+1
+sta {c1}+1
+lda {z1}+2
+sta {c1}+2
+lda {z1}+3
+sta {c1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuz3)_(vbuz4)
+sta {z1}+1
+lda {z2}
+sta {z1}
+lda {z3}
+sta {z1}+2
+lda {z4}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuz3)_(vbuz4)
+lda {z2}
+sta {z1}
+stx {z1}+1
+lda {z3}
+sta {z1}+2
+lda {z4}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuz3)_(vbuz4)
+lda {z2}
+ldx {z3}
+sta {z1}
+sty {z1}+1
+stx {z1}+2
+lda {z4}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuz3)_(vbuz4)
+sta {z1}
+lda {z2}
+sta {z1}+1
+lda {z3}
+sta {z1}+2
+lda {z4}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuz2)_(vbuz3)
+tax
+sta {z1}
+stx {z1}+1
+lda {z2}
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuz2)_(vbuz3)
+sta {z1}
+stx {z1}+1
+lda {z2}
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuz2)_(vbuz3)
+ldx {z2}
+sta {z1}
+sty {z1}+1
+stx {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuz3)_(vbuz4)
+lda {z2}
+ldy {z4}
+stx {z1}
+sta {z1}+1
+lda {z3}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuz2)_(vbuz3)
+ldy {z3}
+stx {z1}
+sta {z1}+1
+lda {z2}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuz2)_(vbuz3)
+ldy {z3}
+txa
+stx {z1}
+sta {z1}+1
+lda {z2}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuz2)_(vbuz3)
+lda {z2}
+stx {z1}
+sty {z1}+1
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuz3)_(vbuz4)
+lda {z2}
+ldx {z3}
+sty {z1}
+stx {z1}+1
+sta {z1}+2
+lda {z4}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuz2)_(vbuz3)
+ldx {z2}
+sty {z1}
+stx {z1}+1
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuz2)_(vbuz3)
+lda {z3}
+sty {z1}
+stx {z1}+1
+sta {z1}+3
+lda {z2}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuz2)_(vbuz3)
+ldx {z2}
+tya
+sty {z1}
+stx {z1}+1
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuz4)_(vbuaa)
+sta {z1}+3
+lda {z2}
+sta {z1}
+lda {z3}
+sta {z1}+1
+lda {z4}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuz3)_(vbuaa)
+ldx {z2}
+tay
+stx {z1}
+sta {z1}+1
+lda {z3}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuz3)_(vbuaa)
+ldy {z2}
+sty {z1}
+stx {z1}+1
+sta {z1}+3
+lda {z3}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuz3)_(vbuaa)
+ldx {z2}
+stx {z1}
+sty {z1}+1
+sta {z1}+3
+lda {z3}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuz3)_(vbuaa)
+ldx {z2}
+tay
+sta {z1}
+stx {z1}+1
+lda {z3}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuz2)_(vbuaa)
+tax
+tay
+sta {z1}
+sty {z1}+1
+lda {z2}
+sta {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuz2)_(vbuaa)
+tay
+sta {z1}
+stx {z1}+1
+lda {z2}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuz2)_(vbuaa)
+tax
+sta {z1}
+sty {z1}+1
+lda {z2}
+sta {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuz3)_(vbuaa)
+ldy {z2}
+stx {z1}
+sty {z1}+1
+sta {z1}+3
+lda {z3}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuz2)_(vbuaa)
+tay
+stx {z1}
+sta {z1}+1
+lda {z2}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuz2)_(vbuaa)
+tay
+txa
+stx {z1}
+sta {z1}+1
+lda {z2}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuz2)_(vbuaa)
+stx {z1}
+sty {z1}+1
+sta {z1}+3
+lda {z2}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuz3)_(vbuaa)
+ldx {z2}
+sty {z1}
+stx {z1}+1
+sta {z1}+3
+lda {z3}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuz2)_(vbuaa)
+tax
+sty {z1}
+sta {z1}+1
+stx {z1}+3
+lda {z2}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuz2)_(vbuaa)
+sty {z1}
+stx {z1}+1
+sta {z1}+3
+lda {z2}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuz2)_(vbuaa)
+tax
+tya
+sty {z1}
+sta {z1}+1
+stx {z1}+3
+lda {z2}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuz4)_(vbuxx)
+lda {z2}
+ldy {z3}
+sta {z1}
+sty {z1}+1
+lda {z4}
+sta {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuz3)_(vbuxx)
+ldy {z2}
+sty {z1}
+sta {z1}+1
+stx {z1}+3
+lda {z3}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuz3)_(vbuxx)
+ldy {z2}
+txa
+sty {z1}
+stx {z1}+1
+sta {z1}+3
+lda {z3}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuz3)_(vbuxx)
+lda {z2}
+sta {z1}
+sty {z1}+1
+lda {z3}
+sta {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuz3)_(vbuxx)
+ldy {z2}
+sta {z1}
+sty {z1}+1
+lda {z3}
+sta {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuz2)_(vbuxx)
+tay
+sta {z1}
+sty {z1}+1
+lda {z2}
+sta {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuz2)_(vbuxx)
+tay
+txa
+sty {z1}
+stx {z1}+1
+sta {z1}+3
+lda {z2}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuz2)_(vbuxx)
+sta {z1}
+sty {z1}+1
+lda {z2}
+sta {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuz3)_(vbuxx)
+ldy {z2}
+txa
+stx {z1}
+sty {z1}+1
+sta {z1}+3
+lda {z3}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuz2)_(vbuxx)
+tay
+txa
+stx {z1}
+sty {z1}+1
+sta {z1}+3
+lda {z2}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuz2)_(vbuxx)
+txa
+tay
+stx {z1}
+sta {z1}+1
+lda {z2}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuz2)_(vbuxx)
+txa
+stx {z1}
+sty {z1}+1
+sta {z1}+3
+lda {z2}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuz3)_(vbuxx)
+lda {z2}
+sty {z1}
+sta {z1}+1
+stx {z1}+3
+lda {z3}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuz2)_(vbuxx)
+sty {z1}
+sta {z1}+1
+stx {z1}+3
+lda {z2}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuz2)_(vbuxx)
+txa
+sty {z1}
+stx {z1}+1
+sta {z1}+3
+lda {z2}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuz2)_(vbuxx)
+tya
+sty {z1}
+sta {z1}+1
+stx {z1}+3
+lda {z2}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuz4)_(vbuyy)
+lda {z2}
+ldx {z3}
+sta {z1}
+stx {z1}+1
+lda {z4}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuz3)_(vbuyy)
+ldx {z2}
+stx {z1}
+sta {z1}+1
+lda {z3}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuz3)_(vbuyy)
+lda {z2}
+sta {z1}
+stx {z1}+1
+lda {z3}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuz3)_(vbuyy)
+ldx {z2}
+tya
+stx {z1}
+sty {z1}+1
+sta {z1}+3
+lda {z3}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuz3)_(vbuyy)
+ldx {z2}
+sta {z1}
+stx {z1}+1
+lda {z3}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuz2)_(vbuyy)
+tax
+sta {z1}
+stx {z1}+1
+lda {z2}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuz2)_(vbuyy)
+sta {z1}
+stx {z1}+1
+lda {z2}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuz2)_(vbuyy)
+tax
+tya
+stx {z1}
+sty {z1}+1
+sta {z1}+3
+lda {z2}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuz3)_(vbuyy)
+lda {z2}
+stx {z1}
+sta {z1}+1
+lda {z3}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuz2)_(vbuyy)
+stx {z1}
+sta {z1}+1
+lda {z2}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuz2)_(vbuyy)
+txa
+stx {z1}
+sta {z1}+1
+lda {z2}
+sta {z1}+2
+sty {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuz2)_(vbuyy)
+tya
+stx {z1}
+sty {z1}+1
+sta {z1}+3
+lda {z2}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuz3)_(vbuyy)
+ldx {z2}
+tya
+sty {z1}
+stx {z1}+1
+sta {z1}+3
+lda {z3}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuz2)_(vbuyy)
+tax
+tya
+sty {z1}
+stx {z1}+1
+sta {z1}+3
+lda {z2}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuz2)_(vbuyy)
+tya
+sty {z1}
+stx {z1}+1
+sta {z1}+3
+lda {z2}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuz2)_(vbuyy)
+tya
+tax
+sty {z1}
+sta {z1}+1
+stx {z1}+3
+lda {z2}
+sta {z1}+2
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuaa)_(vbuz4)
+sta {z1}+2
+lda {z2}
+sta {z1}
+lda {z3}
+sta {z1}+1
+lda {z4}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuaa)_(vbuz3)
+ldy {z2}
+tax
+sty {z1}
+stx {z1}+1
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuaa)_(vbuz3)
+ldy {z2}
+sty {z1}
+stx {z1}+1
+lda {z3}
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuaa)_(vbuz3)
+ldx {z2}
+stx {z1}
+sty {z1}+1
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuaa)_(vbuz3)
+ldx {z3}
+tay
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuaa)_(vbuz2)
+tax
+tay
+sta {z1}
+sty {z1}+1
+stx {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuaa)_(vbuz2)
+tay
+tya
+sty {z1}
+stx {z1}+1
+lda {z2}
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuaa)_(vbuz2)
+tax
+sta {z1}
+sty {z1}+1
+stx {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuaa)_(vbuz3)
+ldy {z2}
+stx {z1}
+sty {z1}+1
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuaa)_(vbuz2)
+tay
+tya
+stx {z1}
+sty {z1}+1
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuaa)_(vbuz2)
+stx $ff
+ldy $ff
+stx {z1}
+sty {z1}+1
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuaa)_(vbuz2)
+stx {z1}
+sty {z1}+1
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuaa)_(vbuz3)
+tax
+lda {z2}
+sty {z1}
+stx {z1}+1
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuaa)_(vbuz2)
+tax
+sty {z1}
+stx {z1}+1
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuaa)_(vbuz2)
+sty {z1}
+stx {z1}+1
+lda {z2}
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuaa)_(vbuz2)
+tax
+tya
+sty {z1}
+stx {z1}+1
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuaa)_(vbuaa)
+tax
+tay
+lda {z2}
+sta {z1}
+lda {z3}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuaa)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuaa)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuaa)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuaa)_(vbuaa)
+tax
+tay
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuaa)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuaa)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuaa)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuaa)_(vbuaa)
+tay
+txa
+sty $ff
+ldx $ff
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuaa)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuaa)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuaa)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuaa)_(vbuaa)
+sty $ff
+ldx $ff
+tay
+txa
+sty $ff
+ldx $ff
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuaa)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuaa)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuaa)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuaa)_(vbuxx)
+tay
+lda {z2}
+sta {z1}
+lda {z3}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuaa)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuaa)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuaa)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuaa)_(vbuxx)
+tay
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuaa)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuaa)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuaa)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuaa)_(vbuxx)
+tay
+txa
+tax
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuaa)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuaa)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuaa)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuaa)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuaa)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuaa)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuaa)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuaa)_(vbuyy)
+sty $ff
+ldx $ff
+tay
+lda {z2}
+sta {z1}
+lda {z3}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuaa)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuaa)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuaa)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuaa)_(vbuyy)
+sty $ff
+ldx $ff
+tay
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuaa)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuaa)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuaa)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuaa)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuaa)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuaa)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuaa)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuaa)_(vbuyy)
+tax
+tya
+stx $ff
+ldy $ff
+tax
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuaa)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuaa)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuaa)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuxx)_(vbuz4)
+lda {z2}
+ldy {z3}
+sta {z1}
+sty {z1}+1
+stx {z1}+2
+lda {z4}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuxx)_(vbuz3)
+ldy {z2}
+sty {z1}
+stx {z1}+1
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuxx)_(vbuz3)
+ldy {z2}
+txa
+sty {z1}
+stx {z1}+1
+lda {z3}
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuxx)_(vbuz3)
+lda {z2}
+sta {z1}
+sty {z1}+1
+stx {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuxx)_(vbuz3)
+ldy {z2}
+sta {z1}
+sty {z1}+1
+stx {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuxx)_(vbuz2)
+tay
+sta {z1}
+sty {z1}+1
+stx {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuxx)_(vbuz2)
+tay
+txa
+sty {z1}
+stx {z1}+1
+lda {z2}
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuxx)_(vbuz2)
+sta {z1}
+sty {z1}+1
+stx {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuxx)_(vbuz3)
+ldy {z2}
+txa
+stx {z1}
+sty {z1}+1
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuxx)_(vbuz2)
+tay
+txa
+stx {z1}
+sty {z1}+1
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuxx)_(vbuz2)
+txa
+tay
+tya
+stx {z1}
+sty {z1}+1
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuxx)_(vbuz2)
+txa
+stx {z1}
+sty {z1}+1
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuxx)_(vbuz3)
+lda {z2}
+sty {z1}
+stx {z1}+1
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuxx)_(vbuz2)
+sty {z1}
+stx {z1}+1
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuxx)_(vbuz2)
+txa
+sty {z1}
+stx {z1}+1
+lda {z2}
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuxx)_(vbuz2)
+tya
+sty {z1}
+stx {z1}+1
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuxx)_(vbuaa)
+stx $ff
+ldy $ff
+tax
+lda {z2}
+sta {z1}
+lda {z3}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuxx)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuxx)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuxx)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuxx)_(vbuaa)
+stx $ff
+ldy $ff
+tax
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuxx)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuxx)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuxx)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuxx)_(vbuaa)
+tay
+txa
+sty $ff
+ldx $ff
+tay
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuxx)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuxx)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuxx)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuxx)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuxx)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuxx)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuxx)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuxx)_(vbuxx)
+txa
+tax
+tay
+lda {z2}
+sta {z1}
+lda {z3}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuxx)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuxx)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuxx)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuxx)_(vbuxx)
+tay
+txa
+sty $ff
+ldx $ff
+tay
+txa
+sty $ff
+ldx $ff
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuxx)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuxx)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuxx)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuxx)_(vbuxx)
+txa
+tay
+txa
+sty $ff
+ldx $ff
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuxx)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuxx)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuxx)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuxx)_(vbuxx)
+txa
+sty $ff
+ldx $ff
+tay
+txa
+sty $ff
+ldx $ff
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuxx)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuxx)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuxx)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuxx)_(vbuyy)
+txa
+sty $ff
+ldx $ff
+tay
+lda {z2}
+sta {z1}
+lda {z3}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuxx)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuxx)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuxx)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuxx)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuxx)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuxx)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuxx)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuxx)_(vbuyy)
+txa
+sty $ff
+ldx $ff
+tay
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuxx)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuxx)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuxx)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuxx)_(vbuyy)
+tya
+stx $ff
+ldy $ff
+tax
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuxx)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuxx)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuxx)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuyy)_(vbuz4)
+lda {z2}
+ldx {z4}
+sta {z1}
+lda {z3}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuyy)_(vbuz3)
+sty $ff
+ldx $ff
+ldy {z2}
+sty {z1}
+stx {z1}+1
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuyy)_(vbuz3)
+tya
+ldy {z2}
+sty {z1}
+stx {z1}+1
+lda {z3}
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuyy)_(vbuz3)
+ldx {z2}
+tya
+stx {z1}
+sty {z1}+1
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuyy)_(vbuz3)
+ldx {z3}
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuyy)_(vbuz2)
+sty $ff
+ldx $ff
+tay
+sta {z1}
+sty {z1}+1
+stx {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuyy)_(vbuz2)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuyy)_(vbuz2)
+tax
+tya
+stx {z1}
+sty {z1}+1
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuyy)_(vbuz3)
+tya
+ldy {z2}
+stx {z1}
+sty {z1}+1
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuyy)_(vbuz2)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuyy)_(vbuz2)
+tya
+stx $ff
+ldy $ff
+stx {z1}
+sty {z1}+1
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuyy)_(vbuz2)
+tya
+stx {z1}
+sty {z1}+1
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuyy)_(vbuz3)
+tya
+tax
+lda {z2}
+sty {z1}
+stx {z1}+1
+sta {z1}+2
+lda {z3}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuyy)_(vbuz2)
+sty $ff
+ldx $ff
+sty {z1}
+stx {z1}+1
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuyy)_(vbuz2)
+tya
+sty {z1}
+stx {z1}+1
+lda {z2}
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuyy)_(vbuz2)
+tya
+tax
+sty {z1}
+stx {z1}+1
+sta {z1}+2
+lda {z2}
+sta {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuyy)_(vbuaa)
+tax
+lda {z2}
+sta {z1}
+lda {z3}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuyy)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuyy)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuyy)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuyy)_(vbuaa)
+tax
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuyy)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuyy)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuyy)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuyy)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuyy)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuyy)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuyy)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuyy)_(vbuaa)
+tax
+tya
+tay
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuyy)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuyy)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuyy)_(vbuaa)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuyy)_(vbuxx)
+lda {z2}
+sta {z1}
+lda {z3}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuyy)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuyy)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuyy)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuyy)_(vbuxx)
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuyy)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuyy)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuyy)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuyy)_(vbuxx)
+txa
+tax
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuyy)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuyy)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuyy)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuyy)_(vbuxx)
+tya
+tay
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuyy)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuyy)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuyy)_(vbuxx)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuz3)_(vbuyy)_(vbuyy)
+tya
+tax
+lda {z2}
+sta {z1}
+lda {z3}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuaa)_(vbuyy)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuxx)_(vbuyy)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuz2)_(vbuyy)_(vbuyy)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuz2)_(vbuyy)_(vbuyy)
+sty $ff
+ldx $ff
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuaa)_(vbuyy)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuxx)_(vbuyy)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuaa)_(vbuyy)_(vbuyy)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuz2)_(vbuyy)_(vbuyy)
+txa
+sty $ff
+ldx $ff
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuaa)_(vbuyy)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuxx)_(vbuyy)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuxx)_(vbuyy)_(vbuyy)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuz2)_(vbuyy)_(vbuyy)
+tya
+tax
+tya
+tay
+sta {z1}
+lda {z2}
+sta {z1}+1
+sty {z1}+2
+stx {z1}+3
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuaa)_(vbuyy)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuxx)_(vbuyy)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT vduz1=_makelong4_(vbuyy)_(vbuyy)_(vbuyy)_(vbuyy)
+NO_SYNTHESIS
+//FRAGMENT _deref_pduc1=vduc2
+lda #<{c2}
+sta {c1}
+lda #>{c2}
+sta {c1}+1
+lda #<{c2}>>$10
+sta {c1}+2
+lda #>{c2}>>$10
+sta {c1}+3
//FRAGMENT isr_rom_sys_c64_entry
//FRAGMENT pbuz1_derefidx_vbuz2=_inc_pbuz1_derefidx_vbuz2
@@ -11875,28 +11875,6 @@ iny
lda #{c1}
sty {z1}+1
sta {z1}
-//FRAGMENT vduz1=vduc1_minus__deref_pduc2
-lda #<{c1}
-sec
-sbc {c2}
-sta {z1}
-lda #>{c1}
-sbc {c2}+1
-sta {z1}+1
-lda #<{c1}>>$10
-sbc {c2}+2
-sta {z1}+2
-lda #>{c1}>>$10
-sbc {c2}+3
-sta {z1}+3
-//FRAGMENT pbuz1=pbuz2_plus_1
-clc
-lda {z2}
-adc #1
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
//FRAGMENT vbuz1=_deref_pbuc1_ror_1
lda {c1}
lsr
@@ -12334,6 +12312,14 @@ sta {z1}
//FRAGMENT vbsz1_lt_0_then_la1
lda {z1}
bmi {la1}
+//FRAGMENT pbuz1=pbuz2_plus_1
+clc
+lda {z2}
+adc #1
+sta {z1}
+lda {z2}+1
+adc #0
+sta {z1}+1
//FRAGMENT vbsaa=pbsc1_derefidx_vbuz1
ldy {z1}
lda {c1},y
@@ -14957,20 +14943,6 @@ sta ($fe),y
iny
lda ({z1}),y
sta ($fe),y
-//FRAGMENT vduz1=vduz2_minus_vduc1
-lda {z2}
-sec
-sbc #<{c1}
-sta {z1}
-lda {z2}+1
-sbc #>{c1}
-sta {z1}+1
-lda {z2}+2
-sbc #<{c1}>>$10
-sta {z1}+2
-lda {z2}+3
-sbc #>{c1}>>$10
-sta {z1}+3
//FRAGMENT vbsz1_le_vbsc1_then_la1
lda #{c1}
sec
@@ -15234,6140 +15206,3 @@ sta {c1},x
lda #{c2}
ora {c1},y
sta {c1},y
-//FRAGMENT vwuz1=vwuz1_setbyte1_vbuz2
-lda {z2}
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_vbuz3
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-ldy {z3}
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vwuz1=vwuz1_setbyte1_vbuaa
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_vbuxx
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-cpx #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dex
-bne !-
-!e:
-//FRAGMENT vwuz1=vwuz2_rol_vbuyy
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vwuz1=vwuz1_setbyte1_vbuxx
-stx {z1}+1
-//FRAGMENT vwuz1=vwuz1_setbyte1_vbuyy
-sty {z1}+1
-//FRAGMENT vbsyy_ge_0_then_la1
-cpy #0
-bpl {la1}
-//FRAGMENT vbuz1=vbuc1_plus__byte1_vwsz2
-lda #{c1}
-clc
-adc {z2}+1
-sta {z1}
-//FRAGMENT vwuz1=vwuz1_rol_vbuz2
-ldy {z2}
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vwuz1=vwuz2_plus__deref_pwuz3
-ldy #0
-clc
-lda {z2}
-adc ({z3}),y
-sta {z1}
-iny
-lda {z2}+1
-adc ({z3}),y
-sta {z1}+1
-//FRAGMENT pvoz1=_deref_qvoc1
-lda {c1}
-sta {z1}
-lda {c1}+1
-sta {z1}+1
-//FRAGMENT vbuz1=pbuc1_derefidx_(_deref_pbuc2)
-ldy {c2}
-lda {c1},y
-sta {z1}
-//FRAGMENT _deref_pwuc1=_inc__deref_pwuc1
-inc {c1}
-bne !+
-inc {c1}+1
-!:
-//FRAGMENT _deref_pwuc1_eq_vbuc2_then_la1
-lda {c1}+1
-bne !+
-lda {c1}
-cmp #{c2}
-beq {la1}
-!:
-//FRAGMENT _deref_(_deref_qbuc1)=_deref_pbuc2
-lda {c2}
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-sta ($fe),y
-//FRAGMENT _deref_(_deref_qbuc1)=_deref_(_deref_qbuc1)_bxor_vbuc2
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-lda ($fe),y
-eor #{c2}
-sta ($fe),y
-//FRAGMENT vwuz1=_word__deref_pbuc1
-lda {c1}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT pbuz1=_deref_qbuc1_plus_vwuz2
-clc
-lda {z2}
-adc {c1}
-sta {z1}
-lda {z2}+1
-adc {c1}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_plus__deref_pwuc1
-lda {c1}
-clc
-adc {z2}
-sta {z1}
-lda {c1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vbuaa=pbuc1_derefidx_(_deref_pbuc2)
-ldy {c2}
-lda {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_(_deref_pbuc2)
-ldy {c2}
-ldx {c1},y
-//FRAGMENT vbuyy=pbuc1_derefidx_(_deref_pbuc2)
-ldx {c2}
-ldy {c1},x
-//FRAGMENT vwuz1=_deref_pwuz1
-ldy #0
-lda ({z1}),y
-pha
-iny
-lda ({z1}),y
-sta {z1}+1
-pla
-sta {z1}
-//FRAGMENT vwuz1=_deref_pwuz1_plus__deref_pwuz2
-ldy #0
-clc
-lda ({z1}),y
-adc ({z2}),y
-pha
-iny
-lda ({z1}),y
-adc ({z2}),y
-sta {z1}+1
-pla
-sta {z1}
-//FRAGMENT vwuz1=vwuz2_plus__deref_pwuz1
-ldy #0
-clc
-lda ({z1}),y
-adc {z2}
-pha
-iny
-lda ({z1}),y
-adc {z2}+1
-sta {z1}+1
-pla
-sta {z1}
-//FRAGMENT pbuz1=_deref_qbuc1_plus_vwuz1
-clc
-lda {z1}
-adc {c1}
-sta {z1}
-lda {z1}+1
-adc {c1}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz1_plus__deref_pwuc1
-clc
-lda {z1}
-adc {c1}
-sta {z1}
-lda {z1}+1
-adc {c1}+1
-sta {z1}+1
-//FRAGMENT pbuz1_derefidx_vbuz2_neq_vbuz3_then_la1
-ldy {z2}
-lda ({z1}),y
-
-cmp {z3}
-bne {la1}
-//FRAGMENT _deref_pbuz1_neq_vbuz2_then_la1
-ldy #0
-lda ({z1}),y
-cmp {z2}
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuaa_neq_vbuz2_then_la1
-tay
-lda ({z1}),y
-
-cmp {z2}
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuxx_neq_vbuz2_then_la1
-txa
-tay
-lda ({z1}),y
-
-cmp {z2}
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuyy_neq_vbuz2_then_la1
-lda ({z1}),y
-
-cmp {z2}
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuz2_neq_vbuxx_then_la1
-ldy {z2}
-lda ({z1}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuaa_neq_vbuxx_then_la1
-tay
-lda ({z1}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuxx_neq_vbuxx_then_la1
-txa
-tay
-lda ({z1}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuyy_neq_vbuxx_then_la1
-lda ({z1}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuz2_neq_vbuyy_then_la1
-tya
-ldy {z2}
-tax
-lda ({z1}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuaa_neq_vbuyy_then_la1
-NO_SYNTHESIS
-//FRAGMENT pbuz1_derefidx_vbuxx_neq_vbuyy_then_la1
-NO_SYNTHESIS
-//FRAGMENT pbuz1_derefidx_vbuyy_neq_vbuyy_then_la1
-lda ({z1}),y
-
-tax
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT _deref_pbuz1_neq_vbuxx_then_la1
-ldy #0
-lda ({z1}),y
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuz2_neq_vbuc1_then_la1
-ldy {z2}
-lda ({z1}),y
-
-cmp #{c1}
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuxx_neq_vbuc1_then_la1
-txa
-tay
-lda ({z1}),y
-
-cmp #{c1}
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuyy_neq_vbuc1_then_la1
-lda ({z1}),y
-
-cmp #{c1}
-bne {la1}
-//FRAGMENT pbuz1=pbuz1_plus_vbuyy
-tya
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT 0_eq_pbuc1_derefidx_vbuz1_then_la1
-ldy {z1}
-lda {c1},y
-cmp #0
-beq {la1}
-//FRAGMENT 0_eq__deref_pbuz1_then_la1
-ldy #0
-lda ({z1}),y
-cmp #0
-beq {la1}
-//FRAGMENT pbuz1_derefidx_vbuz2_neq_pbuz3_derefidx_vbuz2_then_la1
-ldy {z2}
-lda ({z1}),y
-
-tax
-lda ({z3}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT 0_eq_pbuc1_derefidx_vbuaa_then_la1
-tay
-lda {c1},y
-cmp #0
-beq {la1}
-//FRAGMENT 0_eq_pbuc1_derefidx_vbuxx_then_la1
-lda {c1},x
-cmp #0
-beq {la1}
-//FRAGMENT 0_eq_pbuc1_derefidx_vbuyy_then_la1
-lda {c1},y
-cmp #0
-beq {la1}
-//FRAGMENT pbuz1_derefidx_vbuaa_neq_pbuz2_derefidx_vbuaa_then_la1
-tay
-lda ({z1}),y
-
-tax
-lda ({z2}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuxx_neq_pbuz2_derefidx_vbuxx_then_la1
-txa
-tay
-lda ({z1}),y
-
-tax
-lda ({z2}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuyy_neq_pbuz2_derefidx_vbuyy_then_la1
-lda ({z1}),y
-
-tax
-lda ({z2}),y
-
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT pssz1=pssz1_plus_vwuc1
-lda {z1}
-clc
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT pssz1=pssz1_minus_vwuc1
-lda {z1}
-sec
-sbc #<{c1}
-sta {z1}
-lda {z1}+1
-sbc #>{c1}
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_ror_3
-lda {z2}+1
-lsr
-sta {z1}+1
-lda {z2}
-ror
-sta {z1}
-lsr {z1}+1
-ror {z1}
-lsr {z1}+1
-ror {z1}
-//FRAGMENT vbuz1=vbuz2_bor_vbuc1
-lda #{c1}
-ora {z2}
-sta {z1}
-//FRAGMENT vwuz1=vwuz2_minus_vbuc1
-sec
-lda {z2}
-sbc #{c1}
-sta {z1}
-lda {z2}+1
-sbc #0
-sta {z1}+1
-//FRAGMENT vwuz1_gt_vwuc1_then_la1
-lda #>{c1}
-cmp {z1}+1
-bcc {la1}
-bne !+
-lda #<{c1}
-cmp {z1}
-bcc {la1}
-!:
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_pbuc2_derefidx_vbuz1
-lda {c1}
-ldy {z1}
-and {c2},y
-sta {c1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_pbuc2_derefidx_vbuz1
-lda {c1}
-ldy {z1}
-ora {c2},y
-sta {c1}
-//FRAGMENT vwuz1_le_vwuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne !+
-lda {z1}
-cmp #<{c1}
-!:
-bcc {la1}
-beq {la1}
-//FRAGMENT pssz1_eq_pssz2_then_la1
-lda {z1}
-cmp {z2}
-bne !+
-lda {z1}+1
-cmp {z2}+1
-beq {la1}
-!:
-//FRAGMENT pbuc1_derefidx_vbuz1_le_vbuz2_then_la1
-lda {z2}
-ldy {z1}
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuaa=vbuz1_bor_vbuc1
-lda #{c1}
-ora {z1}
-//FRAGMENT vbuxx=vbuz1_bor_vbuc1
-lda #{c1}
-ora {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_bor_vbuc1
-lda #{c1}
-ora {z1}
-tay
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_pbuc2_derefidx_vbuxx
-lda {c1}
-and {c2},x
-sta {c1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_pbuc2_derefidx_vbuyy
-lda {c1}
-and {c2},y
-sta {c1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_pbuc2_derefidx_vbuxx
-lda {c1}
-ora {c2},x
-sta {c1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_pbuc2_derefidx_vbuyy
-lda {c1}
-ora {c2},y
-sta {c1}
-//FRAGMENT pbuc1_derefidx_vbuaa_le_vbuz1_then_la1
-tay
-lda {z1}
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_le_vbuz1_then_la1
-txa
-tay
-lda {z1}
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_le_vbuz1_then_la1
-lda {z1}
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_le_vbuxx_then_la1
-ldy {z1}
-txa
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa_le_vbuxx_then_la1
-tay
-txa
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_le_vbuxx_then_la1
-txa
-tay
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_le_vbuxx_then_la1
-txa
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_le_vbuyy_then_la1
-tya
-ldy {z1}
-cmp {c1},y
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa_le_vbuyy_then_la1
-tax
-lda {c1},x
-sta $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_le_vbuyy_then_la1
-lda {c1},x
-sta $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_le_vbuyy_then_la1
-tya
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuaa_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuaa)_then_la1
-tax
-ldy {c2},x
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuaa)_then_la1
-tay
-txa
-ldx {c2},y
-cmp {c1},x
-bcs {la1}
-//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuaa)_then_la1
-tax
-tya
-ldy {c2},x
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuaa_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
-ldy {c2},x
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vwuz1=vwuz1_ror_3
-lsr {z1}+1
-ror {z1}
-lsr {z1}+1
-ror {z1}
-lsr {z1}+1
-ror {z1}
-//FRAGMENT pwsz1=pwsc1_plus_vwsz2
-lda #<{c1}
-clc
-adc {z2}
-sta {z1}
-lda #>{c1}
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vdsz1=vdsz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-//FRAGMENT vwsz1=_sword_vdsz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vduz1=vduz1_setword1_vwuz2
-lda {z2}
-sta {z1}+2
-lda {z2}+1
-sta {z1}+3
-//FRAGMENT pwsz1=pwsc1_plus_vwsz1
-lda #<{c1}
-clc
-adc {z1}
-sta {z1}
-lda #>{c1}
-adc {z1}+1
-sta {z1}+1
-//FRAGMENT vwsz1=_deref_pwsz1
-ldy #0
-lda ({z1}),y
-pha
-iny
-lda ({z1}),y
-sta {z1}+1
-pla
-sta {z1}
-//FRAGMENT _deref_pbuz1=pbuz2_derefidx_vbuz3
-ldy {z3}
-lda ({z2}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuz2_neq_0_then_la1
-ldy {z2}
-lda ({z1}),y
-
-cmp #0
-bne {la1}
-//FRAGMENT vwuz1=vbuz2_rol_3
-lda {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT _deref_pbuz1=pbuz2_derefidx_vbuxx
-txa
-tay
-lda ({z2}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=pbuz2_derefidx_vbuyy
-lda ({z2}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx_neq_0_then_la1
-txa
-tay
-lda ({z1}),y
-
-cmp #0
-bne {la1}
-//FRAGMENT pbuz1_derefidx_vbuyy_neq_0_then_la1
-lda ({z1}),y
-
-cmp #0
-bne {la1}
-//FRAGMENT vwuz1=vbuaa_rol_3
-sta {z1}
-lda #0
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vwuz1=vbuxx_rol_3
-txa
-sta {z1}
-lda #0
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vwuz1=vbuyy_rol_3
-tya
-sta {z1}
-lda #0
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vbuz1=vbuz2_minus__deref_pbuz3
-lda {z2}
-sec
-ldy #0
-sbc ({z3}),y
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_minus__deref_pbuz2
-txa
-sec
-ldy #0
-sbc ({z2}),y
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_minus__deref_pbuz2
-lda {z1}
-sec
-ldy #0
-sbc ({z2}),y
-//FRAGMENT vbuaa=vbuxx_minus__deref_pbuz1
-txa
-sec
-ldy #0
-sbc ({z1}),y
-//FRAGMENT vbuxx=vbuz1_minus__deref_pbuz2
-lda {z1}
-sec
-ldy #0
-sbc ({z2}),y
-tax
-//FRAGMENT vbuxx=vbuxx_minus__deref_pbuz1
-txa
-sec
-ldy #0
-sbc ({z1}),y
-tax
-//FRAGMENT vbuyy=vbuz1_minus__deref_pbuz2
-lda {z1}
-sec
-ldy #0
-sbc ({z2}),y
-tay
-//FRAGMENT vbuyy=vbuxx_minus__deref_pbuz1
-txa
-sec
-ldy #0
-sbc ({z1}),y
-tay
-//FRAGMENT pwuz1=pwuz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=pwuz2_minus_pwuc1
-sec
-lda {z2}
-sbc #<{c1}
-sta {z1}
-lda {z2}+1
-sbc #>{c1}
-sta {z1}+1
-//FRAGMENT _deref_pwuz1_le_vwuz2_then_la1
-ldy #1
-lda ({z1}),y
-cmp {z2}+1
-bne !+
-dey
-lda ({z1}),y
-cmp {z2}
-beq {la1}
-!:
-bcc {la1}
-//FRAGMENT pwuz1=pwuz1_minus_vbuc1
-sec
-lda {z1}
-sbc #{c1}
-sta {z1}
-lda {z1}+1
-sbc #0
-sta {z1}+1
-//FRAGMENT pwuz1=pwuz2_plus_vbuz3
-lda {z3}
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz2_minus__deref_pwsz3
-sec
-lda {z2}
-ldy #0
-sbc ({z3}),y
-sta {z1}
-lda {z2}+1
-iny
-sbc ({z3}),y
-sta {z1}+1
-//FRAGMENT vwsz1_le_0_then_la1
-lda {z1}+1
-bmi {la1}
-bne !+
-lda {z1}
-beq {la1}
-!:
-//FRAGMENT pwuz1=pwuz2_plus_vbuc1
-lda #{c1}
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pwuz1=pwuz2_plus_vbuaa
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pwuz1=pwuz2_plus_vbuxx
-txa
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pwuz1=pwuz2_plus_vbuyy
-tya
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=pwuz1_minus_pwuc1
-lda {z1}
-sec
-sbc #<{c1}
-sta {z1}
-lda {z1}+1
-sbc #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_minus_vwuz3
-lda {z2}
-sec
-sbc {z3}
-sta {z1}
-lda {z2}+1
-sbc {z3}+1
-sta {z1}+1
-//FRAGMENT pwuz1=qwuz2_derefidx_vbuz3
-ldy {z3}
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT vbuz1_le_0_then_la1
-lda {z1}
-cmp #0
-beq {la1}
-//FRAGMENT vwuz1=pwuz2_derefidx_vbuz3
-ldy {z3}
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT _deref_pbuz1_gt_vbuz2_then_la1
-ldy #0
-lda ({z1}),y
-cmp {z2}
-beq !+
-bcs {la1}
-!:
-//FRAGMENT pbuz1_derefidx_(_deref_pbuz2)=_inc_pbuz1_derefidx_(_deref_pbuz2)
-ldy #0
-lda ({z2}),y
-tay
-clc
-lda ({z1}),y
-adc #1
-sta ({z1}),y
-//FRAGMENT vwuz1=_deref_pbuz2_rol_1
-ldy #0
-lda ({z2}),y
-asl
-sta {z1}
-lda #0
-rol
-sta {z1}+1
-//FRAGMENT qwuz1=qwuz2_plus_vwuz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
-//FRAGMENT _deref_qwuz1=pwuz2
-ldy #0
-lda {z2}
-sta ({z1}),y
-iny
-lda {z2}+1
-sta ({z1}),y
-//FRAGMENT pwuz1=_deref_qwuz2
-ldy #0
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT vwuz1=pbuz2_minus_pbuz3
-lda {z2}
-sec
-sbc {z3}
-sta {z1}
-lda {z2}+1
-sbc {z3}+1
-sta {z1}+1
-//FRAGMENT pwuz1_derefidx_vbuz2=vwuz3
-ldy {z2}
-lda {z3}
-sta ({z1}),y
-iny
-lda {z3}+1
-sta ({z1}),y
-//FRAGMENT vwuz1=pwuz2_minus_pwuz3
-lda {z2}
-sec
-sbc {z3}
-sta {z1}
-lda {z2}+1
-sbc {z3}+1
-sta {z1}+1
-//FRAGMENT pwuz1=qwuz2_derefidx_vbuaa
-tay
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT pwuz1=qwuz2_derefidx_vbuxx
-txa
-tay
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT pwuz1=qwuz2_derefidx_vbuyy
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT vbuaa_le_0_then_la1
-cmp #0
-beq {la1}
-//FRAGMENT vwuz1=pwuz2_derefidx_vbuaa
-tay
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuz2_derefidx_vbuxx
-txa
-tay
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuz2_derefidx_vbuyy
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT _deref_pbuz1_gt_vbuxx_then_la1
-ldy #0
-lda ({z1}),y
-sta $ff
-cpx $ff
-bcc {la1}
-//FRAGMENT pwuz1_derefidx_vbuaa=vwuz2
-tay
-lda {z2}
-sta ({z1}),y
-iny
-lda {z2}+1
-sta ({z1}),y
-//FRAGMENT pwuz1_derefidx_vbuxx=vwuz2
-txa
-tay
-lda {z2}
-sta ({z1}),y
-iny
-lda {z2}+1
-sta ({z1}),y
-//FRAGMENT pwuz1_derefidx_vbuyy=vwuz2
-lda {z2}
-sta ({z1}),y
-iny
-lda {z2}+1
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx=_inc_pbuz1_derefidx_vbuxx
-txa
-tay
-clc
-lda ({z1}),y
-adc #1
-sta ({z1}),y
-//FRAGMENT vbuxx_le_0_then_la1
-cpx #0
-beq {la1}
-//FRAGMENT pbuz1=pbuz2_minus_vwuz1
-lda {z2}
-sec
-sbc {z1}
-sta {z1}
-lda {z2}+1
-sbc {z1}+1
-sta {z1}+1
-//FRAGMENT vwuz1=_deref_pbuz1_rol_1
-ldy #0
-lda ({z1}),y
-asl
-sta {z1}
-lda #0
-rol
-sta {z1}+1
-//FRAGMENT qwuz1=qwuz2_plus_vwuz1
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pwuz1=_deref_qwuz1
-ldy #0
-lda ({z1}),y
-pha
-iny
-lda ({z1}),y
-sta {z1}+1
-pla
-sta {z1}
-//FRAGMENT vwuz1=pwuz1_minus_pwuz2
-lda {z1}
-sec
-sbc {z2}
-sta {z1}
-lda {z1}+1
-sbc {z2}+1
-sta {z1}+1
-//FRAGMENT vbsz1=vbsz2_minus_vbsz3
-lda {z2}
-sec
-sbc {z3}
-sta {z1}
-//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuz1_then_la1
-tay
-lda {c1},y
-cmp {z1}
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuaa_then_la1
-ldx {z1}
-tay
-lda {c1},x
-tax
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuaa_then_la1
-tax
-lda {c1},x
-tay
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuaa_then_la1
-tay
-lda {c1},x
-tax
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuaa_then_la1
-tax
-lda {c1},y
-tay
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuxx_then_la1
-tay
-lda {c1},y
-tay
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuyy_then_la1
-tax
-lda {c1},x
-tax
-sty $ff
-cpx $ff
-beq {la1}
-//FRAGMENT vbsz1=vbsz2_minus_vbsaa
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsz2_minus_vbsxx
-txa
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsz2_minus_vbsyy
-tya
-eor #$ff
-sec
-adc {z2}
-sta {z1}
-//FRAGMENT vbsxx=vbsz1_minus_vbsz2
-lda {z1}
-sec
-sbc {z2}
-tax
-//FRAGMENT vbsxx=vbsz1_minus_vbsaa
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbsxx=vbsz1_minus_vbsxx
-txa
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbsxx=vbsz1_minus_vbsyy
-tya
-eor #$ff
-sec
-adc {z1}
-tax
-//FRAGMENT vbsz1=vbsxx_minus_vbsz2
-txa
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_minus_vbsaa
-sta $ff
-txa
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_minus_vbsxx
-lda #0
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_minus_vbsyy
-txa
-sty $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsxx=vbsxx_minus_vbsaa
-sta $ff
-txa
-sec
-sbc $ff
-tax
-//FRAGMENT vbsz1=vbsyy_minus_vbsz2
-tya
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_minus_vbsaa
-sta $ff
-tya
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_minus_vbsxx
-tya
-stx $ff
-sec
-sbc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_minus_vbsyy
-lda #0
-sta {z1}
-//FRAGMENT vbsxx=vbsyy_minus_vbsz1
-tya
-sec
-sbc {z1}
-tax
-//FRAGMENT vbsxx=vbsyy_minus_vbsaa
-sta $ff
-tya
-sec
-sbc $ff
-tax
-//FRAGMENT vbsxx=vbsyy_minus_vbsxx
-tya
-stx $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbsxx=vbsyy_minus_vbsyy
-lda #0
-tax
-//FRAGMENT vbuz1=vbuxx_minus_1
-dex
-stx {z1}
-//FRAGMENT vbuz1=vbuyy_minus_1
-tya
-sec
-sbc #1
-sta {z1}
-//FRAGMENT vbuaa_lt_vbuyy_then_la1
-tax
-sty $ff
-cpx $ff
-bcc {la1}
-//FRAGMENT vbuyy_lt_vbuaa_then_la1
-sta $ff
-cpy $ff
-bcc {la1}
-//FRAGMENT vbuz1=vbuz2_minus_vbuz1
-lda {z2}
-sec
-sbc {z1}
-sta {z1}
-//FRAGMENT vwuz1=_word_vduz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz2_plus_pbuz3_derefidx_vbuz4
-ldy {z4}
-lda {z2}
-clc
-adc ({z3}),y
-sta {z1}
-bcc !+
-inc {z2}+1
-!:
-//FRAGMENT vwsz1=vwsz2_minus_vbuc1
-lda {z2}
-sec
-sbc #{c1}
-sta {z1}
-lda {z2}+1
-sbc #0
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz2_plus_pbuz3_derefidx_vbuxx
-txa
-tay
-lda {z2}
-clc
-adc ({z3}),y
-sta {z1}
-bcc !+
-inc {z2}+1
-!:
-//FRAGMENT vwsz1=vwsz2_plus_pbuz3_derefidx_vbuyy
-lda {z2}
-clc
-adc ({z3}),y
-sta {z1}
-bcc !+
-inc {z2}+1
-!:
-//FRAGMENT vwsz1=vwsz2_plus_vwsz1
-clc
-lda {z1}
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz1_minus_vbuc1
-lda {z1}
-sec
-sbc #{c1}
-sta {z1}
-bcs !+
-dec {z1}+1
-!:
-//FRAGMENT vwsz1=vwsz1_plus_pbuz2_derefidx_vbuyy
-lda {z1}
-clc
-adc ({z2}),y
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vbuz1_ge_pbuc1_derefidx_vbuz2_then_la1
-lda {z1}
-ldy {z2}
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuz1_ge_vbuz1_then_la1
-lda {z1}
-cmp {z1}
-bcs {la1}
-//FRAGMENT vbuz1_le_pbuc1_derefidx_vbuz2_then_la1
-ldy {z2}
-lda {c1},y
-cmp {z1}
-bcs {la1}
-//FRAGMENT vbuz1_le_vbuz1_then_la1
-lda {z1}
-cmp {z1}
-bcs {la1}
-//FRAGMENT vbuz1_gt_pbuc1_derefidx_vbuz2_then_la1
-ldy {z2}
-lda {c1},y
-cmp {z1}
-bcc {la1}
-//FRAGMENT vbuz1_gt_vbuz1_then_la1
-lda {z1}
-cmp {z1}
-bcc {la1}
-//FRAGMENT vbuz1_lt_pbuc1_derefidx_vbuz2_then_la1
-lda {z1}
-ldy {z2}
-cmp {c1},y
-bcc {la1}
-//FRAGMENT vbuz1_lt_vbuz1_then_la1
-lda {z1}
-cmp {z1}
-bcc {la1}
-//FRAGMENT vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1
-lda {z1}
-ldy {z2}
-cmp {c1},y
-bne {la1}
-//FRAGMENT vbuz1_neq_vbuz1_then_la1
-lda {z1}
-cmp {z1}
-bne {la1}
-//FRAGMENT vbuz1_ge_pbuc1_derefidx_vbuxx_then_la1
-txa
-tay
-lda {z1}
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuz1_ge_pbuc1_derefidx_vbuyy_then_la1
-lda {z1}
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuxx_ge_pbuc1_derefidx_vbuz1_then_la1
-ldy {z1}
-txa
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuxx_ge_pbuc1_derefidx_vbuxx_then_la1
-txa
-tay
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuxx_ge_pbuc1_derefidx_vbuyy_then_la1
-txa
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuyy_ge_pbuc1_derefidx_vbuz1_then_la1
-tya
-ldy {z1}
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuyy_ge_pbuc1_derefidx_vbuxx_then_la1
-lda {c1},x
-sta $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT vbuyy_ge_pbuc1_derefidx_vbuyy_then_la1
-tya
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuxx_ge_vbuxx_then_la1
-txa
-stx $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuyy_ge_vbuyy_then_la1
-tya
-sta $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT vbuz1_le_pbuc1_derefidx_vbuxx_then_la1
-lda {c1},x
-cmp {z1}
-bcs {la1}
-//FRAGMENT vbuz1_le_pbuc1_derefidx_vbuyy_then_la1
-lda {c1},y
-cmp {z1}
-bcs {la1}
-//FRAGMENT vbuxx_le_pbuc1_derefidx_vbuz1_then_la1
-ldy {z1}
-txa
-cmp {c1},y
-bcc {la1}
-beq {la1}
-//FRAGMENT vbuxx_le_pbuc1_derefidx_vbuxx_then_la1
-lda {c1},x
-stx $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuxx_le_pbuc1_derefidx_vbuyy_then_la1
-txa
-cmp {c1},y
-bcc {la1}
-beq {la1}
-//FRAGMENT vbuyy_le_pbuc1_derefidx_vbuz1_then_la1
-tya
-ldy {z1}
-cmp {c1},y
-bcc {la1}
-beq {la1}
-//FRAGMENT vbuyy_le_pbuc1_derefidx_vbuxx_then_la1
-lda {c1},x
-sty $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuyy_le_pbuc1_derefidx_vbuyy_then_la1
-tya
-cmp {c1},y
-bcc {la1}
-beq {la1}
-//FRAGMENT vbuxx_le_vbuxx_then_la1
-txa
-stx $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuyy_le_vbuyy_then_la1
-tya
-sta $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT vbuz1_gt_pbuc1_derefidx_vbuxx_then_la1
-lda {c1},x
-cmp {z1}
-bcc {la1}
-//FRAGMENT vbuz1_gt_pbuc1_derefidx_vbuyy_then_la1
-lda {c1},y
-cmp {z1}
-bcc {la1}
-//FRAGMENT vbuxx_gt_pbuc1_derefidx_vbuz1_then_la1
-ldy {z1}
-txa
-cmp {c1},y
-beq !+
-bcs {la1}
-!:
-//FRAGMENT vbuxx_gt_pbuc1_derefidx_vbuxx_then_la1
-lda {c1},x
-stx $ff
-cmp $ff
-bcc {la1}
-//FRAGMENT vbuxx_gt_pbuc1_derefidx_vbuyy_then_la1
-txa
-cmp {c1},y
-beq !+
-bcs {la1}
-!:
-//FRAGMENT vbuyy_gt_pbuc1_derefidx_vbuz1_then_la1
-tya
-ldy {z1}
-cmp {c1},y
-beq !+
-bcs {la1}
-!:
-//FRAGMENT vbuyy_gt_pbuc1_derefidx_vbuxx_then_la1
-lda {c1},x
-tax
-sty $ff
-cpx $ff
-bcc {la1}
-//FRAGMENT vbuyy_gt_pbuc1_derefidx_vbuyy_then_la1
-tya
-cmp {c1},y
-beq !+
-bcs {la1}
-!:
-//FRAGMENT vbuxx_gt_vbuxx_then_la1
-txa
-sta $ff
-cpx $ff
-bcc {la1}
-//FRAGMENT vbuyy_gt_vbuyy_then_la1
-tya
-sta $ff
-cpy $ff
-bcc {la1}
-//FRAGMENT vbuz1_lt_pbuc1_derefidx_vbuxx_then_la1
-lda {c1},x
-cmp {z1}
-beq !+
-bcs {la1}
-!:
-//FRAGMENT vbuz1_lt_pbuc1_derefidx_vbuyy_then_la1
-lda {z1}
-cmp {c1},y
-bcc {la1}
-//FRAGMENT vbuxx_lt_pbuc1_derefidx_vbuz1_then_la1
-ldy {z1}
-txa
-cmp {c1},y
-bcc {la1}
-//FRAGMENT vbuxx_lt_pbuc1_derefidx_vbuxx_then_la1
-txa
-tay
-cmp {c1},y
-bcc {la1}
-//FRAGMENT vbuxx_lt_pbuc1_derefidx_vbuyy_then_la1
-txa
-cmp {c1},y
-bcc {la1}
-//FRAGMENT vbuyy_lt_pbuc1_derefidx_vbuz1_then_la1
-tya
-ldy {z1}
-cmp {c1},y
-bcc {la1}
-//FRAGMENT vbuyy_lt_pbuc1_derefidx_vbuxx_then_la1
-lda {c1},x
-sta $ff
-cpy $ff
-bcc {la1}
-//FRAGMENT vbuyy_lt_pbuc1_derefidx_vbuyy_then_la1
-tya
-cmp {c1},y
-bcc {la1}
-//FRAGMENT vbuxx_lt_vbuxx_then_la1
-txa
-sta $ff
-cpx $ff
-bcc {la1}
-//FRAGMENT vbuyy_lt_vbuyy_then_la1
-tya
-sta $ff
-cpy $ff
-bcc {la1}
-//FRAGMENT vbuz1_neq_pbuc1_derefidx_vbuxx_then_la1
-lda {c1},x
-cmp {z1}
-bne {la1}
-//FRAGMENT vbuz1_neq_pbuc1_derefidx_vbuyy_then_la1
-lda {c1},y
-cmp {z1}
-bne {la1}
-//FRAGMENT vbuxx_neq_pbuc1_derefidx_vbuz1_then_la1
-ldy {z1}
-txa
-cmp {c1},y
-bne {la1}
-//FRAGMENT vbuxx_neq_pbuc1_derefidx_vbuxx_then_la1
-txa
-tay
-cmp {c1},y
-bne {la1}
-//FRAGMENT vbuxx_neq_pbuc1_derefidx_vbuyy_then_la1
-txa
-cmp {c1},y
-bne {la1}
-//FRAGMENT vbuyy_neq_pbuc1_derefidx_vbuz1_then_la1
-tya
-ldy {z1}
-cmp {c1},y
-bne {la1}
-//FRAGMENT vbuyy_neq_pbuc1_derefidx_vbuxx_then_la1
-lda {c1},x
-tax
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuyy_neq_pbuc1_derefidx_vbuyy_then_la1
-tya
-cmp {c1},y
-bne {la1}
-//FRAGMENT vbuxx_neq_vbuxx_then_la1
-txa
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuyy_neq_vbuyy_then_la1
-tya
-tax
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbsz1=vbsz1_plus_2
-inc {z1}
-inc {z1}
-//FRAGMENT vbsz1=vbsz1_minus_vbsc1
-lax {z1}
-axs #{c1}
-stx {z1}
-//FRAGMENT vbsz1=vbsz2_plus_vbsz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz3
-ldy {z2}
-lda {c1},y
-ldy {z3}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsz2_minus_pbsc1_derefidx_vbsz3
-ldy {z2}
-lda {c1},y
-ldy {z3}
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz2
-ldy {z2}
-lda {c1},y
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3
-lda {z2}
-ldy {z3}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3
-lda {z2}
-ldy {z3}
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbsz1=_deref_pbsc1
-lda {c1}
-sta {z1}
-//FRAGMENT vbsxx=vbsxx_minus_vbsc1
-txa
-axs #{c1}
-//FRAGMENT vbsyy=vbsyy_minus_vbsc1
-tya
-sec
-sbc #{c1}
-tay
-//FRAGMENT vbsz1=vbsz2_plus_vbsaa
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsz2_plus_vbsxx
-txa
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsz2_plus_vbsyy
-tya
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbsaa=vbsz1_plus_vbsz2
-lda {z1}
-clc
-adc {z2}
-//FRAGMENT vbsaa=vbsz1_plus_vbsaa
-clc
-adc {z1}
-//FRAGMENT vbsaa=vbsz1_plus_vbsxx
-txa
-clc
-adc {z1}
-//FRAGMENT vbsaa=vbsz1_plus_vbsyy
-tya
-clc
-adc {z1}
-//FRAGMENT vbsxx=vbsz1_plus_vbsz2
-lda {z1}
-clc
-adc {z2}
-tax
-//FRAGMENT vbsxx=vbsz1_plus_vbsaa
-clc
-adc {z1}
-tax
-//FRAGMENT vbsxx=vbsz1_plus_vbsxx
-txa
-clc
-adc {z1}
-tax
-//FRAGMENT vbsxx=vbsz1_plus_vbsyy
-tya
-clc
-adc {z1}
-tax
-//FRAGMENT vbsyy=vbsz1_plus_vbsz2
-lda {z1}
-clc
-adc {z2}
-tay
-//FRAGMENT vbsyy=vbsz1_plus_vbsaa
-clc
-adc {z1}
-tay
-//FRAGMENT vbsyy=vbsz1_plus_vbsxx
-txa
-clc
-adc {z1}
-tay
-//FRAGMENT vbsyy=vbsz1_plus_vbsyy
-tya
-clc
-adc {z1}
-tay
-//FRAGMENT vbsz1=vbsaa_plus_vbsz2
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsaa_plus_vbsaa
-asl
-sta {z1}
-//FRAGMENT vbsz1=vbsaa_plus_vbsxx
-stx $ff
-clc
-adc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbsaa_plus_vbsyy
-sty $ff
-clc
-adc $ff
-sta {z1}
-//FRAGMENT vbsaa=vbsaa_plus_vbsz1
-clc
-adc {z1}
-//FRAGMENT vbsaa=vbsaa_plus_vbsaa
-asl
-//FRAGMENT vbsaa=vbsaa_plus_vbsxx
-stx $ff
-clc
-adc $ff
-//FRAGMENT vbsaa=vbsaa_plus_vbsyy
-sty $ff
-clc
-adc $ff
-//FRAGMENT vbsxx=vbsaa_plus_vbsz1
-clc
-adc {z1}
-tax
-//FRAGMENT vbsxx=vbsaa_plus_vbsaa
-asl
-tax
-//FRAGMENT vbsxx=vbsaa_plus_vbsxx
-stx $ff
-clc
-adc $ff
-tax
-//FRAGMENT vbsxx=vbsaa_plus_vbsyy
-sty $ff
-clc
-adc $ff
-tax
-//FRAGMENT vbsyy=vbsaa_plus_vbsz1
-clc
-adc {z1}
-tay
-//FRAGMENT vbsyy=vbsaa_plus_vbsaa
-asl
-tay
-//FRAGMENT vbsyy=vbsaa_plus_vbsxx
-stx $ff
-clc
-adc $ff
-tay
-//FRAGMENT vbsyy=vbsaa_plus_vbsyy
-sty $ff
-clc
-adc $ff
-tay
-//FRAGMENT vbsz1=vbsxx_plus_vbsz2
-txa
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_plus_vbsaa
-stx $ff
-clc
-adc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_plus_vbsxx
-txa
-asl
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_plus_vbsyy
-txa
-sty $ff
-clc
-adc $ff
-sta {z1}
-//FRAGMENT vbsaa=vbsxx_plus_vbsz1
-txa
-clc
-adc {z1}
-//FRAGMENT vbsaa=vbsxx_plus_vbsaa
-stx $ff
-clc
-adc $ff
-//FRAGMENT vbsaa=vbsxx_plus_vbsxx
-txa
-asl
-//FRAGMENT vbsaa=vbsxx_plus_vbsyy
-txa
-sty $ff
-clc
-adc $ff
-//FRAGMENT vbsxx=vbsxx_plus_vbsaa
-stx $ff
-clc
-adc $ff
-tax
-//FRAGMENT vbsyy=vbsxx_plus_vbsz1
-txa
-clc
-adc {z1}
-tay
-//FRAGMENT vbsyy=vbsxx_plus_vbsaa
-stx $ff
-clc
-adc $ff
-tay
-//FRAGMENT vbsyy=vbsxx_plus_vbsxx
-txa
-asl
-tay
-//FRAGMENT vbsyy=vbsxx_plus_vbsyy
-txa
-sty $ff
-clc
-adc $ff
-tay
-//FRAGMENT vbsz1=vbsyy_plus_vbsz2
-tya
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_plus_vbsaa
-sty $ff
-clc
-adc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_plus_vbsxx
-txa
-sty $ff
-clc
-adc $ff
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_plus_vbsyy
-tya
-asl
-sta {z1}
-//FRAGMENT vbsaa=vbsyy_plus_vbsz1
-tya
-clc
-adc {z1}
-//FRAGMENT vbsaa=vbsyy_plus_vbsaa
-sty $ff
-clc
-adc $ff
-//FRAGMENT vbsaa=vbsyy_plus_vbsxx
-txa
-sty $ff
-clc
-adc $ff
-//FRAGMENT vbsaa=vbsyy_plus_vbsyy
-tya
-asl
-//FRAGMENT vbsxx=vbsyy_plus_vbsz1
-tya
-clc
-adc {z1}
-tax
-//FRAGMENT vbsxx=vbsyy_plus_vbsaa
-sty $ff
-clc
-adc $ff
-tax
-//FRAGMENT vbsxx=vbsyy_plus_vbsxx
-txa
-sty $ff
-clc
-adc $ff
-tax
-//FRAGMENT vbsxx=vbsyy_plus_vbsyy
-tya
-asl
-tax
-//FRAGMENT vbsyy=vbsyy_plus_vbsaa
-sty $ff
-clc
-adc $ff
-tay
-//FRAGMENT vbsaa=vbsz1_minus_vbsz2
-lda {z1}
-sec
-sbc {z2}
-//FRAGMENT vbsaa=vbsz1_minus_vbsxx
-txa
-eor #$ff
-sec
-adc {z1}
-//FRAGMENT vbsaa=vbsz1_minus_vbsyy
-tya
-eor #$ff
-sec
-adc {z1}
-//FRAGMENT vbsyy=vbsz1_minus_vbsz2
-lda {z1}
-sec
-sbc {z2}
-tay
-//FRAGMENT vbsyy=vbsz1_minus_vbsxx
-txa
-eor #$ff
-sec
-adc {z1}
-tay
-//FRAGMENT vbsyy=vbsz1_minus_vbsyy
-tya
-eor #$ff
-sec
-adc {z1}
-tay
-//FRAGMENT vbsaa=vbsxx_minus_vbsz1
-txa
-sec
-sbc {z1}
-//FRAGMENT vbsaa=vbsxx_minus_vbsxx
-lda #0
-//FRAGMENT vbsaa=vbsxx_minus_vbsyy
-txa
-sty $ff
-sec
-sbc $ff
-//FRAGMENT vbsyy=vbsxx_minus_vbsz1
-txa
-sec
-sbc {z1}
-tay
-//FRAGMENT vbsyy=vbsxx_minus_vbsxx
-lda #0
-tay
-//FRAGMENT vbsyy=vbsxx_minus_vbsyy
-txa
-sty $ff
-sec
-sbc $ff
-tay
-//FRAGMENT vbsaa=vbsyy_minus_vbsz1
-tya
-sec
-sbc {z1}
-//FRAGMENT vbsaa=vbsyy_minus_vbsxx
-tya
-stx $ff
-sec
-sbc $ff
-//FRAGMENT vbsaa=vbsyy_minus_vbsyy
-lda #0
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2
-ldy {z1}
-lda {c1},y
-ldy {z2}
-clc
-adc {c1},y
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2
-ldx {z1}
-lda {c1},x
-ldx {z2}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2
-ldy {z1}
-lda {c1},y
-ldy {z2}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsz2
-lda {c1},x
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsz1
-lda {c1},x
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsz1
-lda {c1},x
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsz1
-lda {c1},x
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsyy_plus_pbsc1_derefidx_vbsz2
-lda {c1},y
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsyy_plus_pbsc1_derefidx_vbsz1
-lda {c1},y
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsyy_plus_pbsc1_derefidx_vbsz1
-lda {c1},y
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsyy_plus_pbsc1_derefidx_vbsz1
-lda {c1},y
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsxx
-lda {c1},x
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsxx
-lda {c1},x
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsxx
-lda {c1},x
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsxx
-lda {c1},x
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsxx
-lda {c1},x
-clc
-adc {c1},x
-sta {z1}
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsxx
-lda {c1},x
-clc
-adc {c1},x
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsxx
-lda {c1},x
-clc
-adc {c1},x
-tax
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsxx
-lda {c1},x
-clc
-adc {c1},x
-tay
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsyy_plus_pbsc1_derefidx_vbsxx
-clc
-lda {c1},x
-adc {c1},y
-sta {z1}
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsyy_plus_pbsc1_derefidx_vbsxx
-clc
-lda {c1},x
-adc {c1},y
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsyy_plus_pbsc1_derefidx_vbsxx
-clc
-lda {c1},x
-adc {c1},y
-tax
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsyy_plus_pbsc1_derefidx_vbsxx
-clc
-lda {c1},x
-adc {c1},y
-tay
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsyy
-lda {c1},y
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsyy
-lda {c1},y
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsyy
-lda {c1},y
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsyy
-lda {c1},y
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsyy
-clc
-lda {c1},x
-adc {c1},y
-sta {z1}
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsyy
-clc
-lda {c1},x
-adc {c1},y
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsyy
-clc
-lda {c1},x
-adc {c1},y
-tax
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsyy
-clc
-lda {c1},x
-adc {c1},y
-tay
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsyy_plus_pbsc1_derefidx_vbsyy
-lda {c1},y
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsyy_plus_pbsc1_derefidx_vbsyy
-lda {c1},y
-clc
-adc {c1},y
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsyy_plus_pbsc1_derefidx_vbsyy
-lda {c1},y
-clc
-adc {c1},y
-tax
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsyy_plus_pbsc1_derefidx_vbsyy
-lda {c1},y
-clc
-adc {c1},y
-tay
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsz2
-lda {c1},x
-ldy {z2}
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsz2
-lda {c1},y
-ldy {z2}
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsz2_minus_pbsc1_derefidx_vbsxx
-ldy {z2}
-lda {c1},y
-sec
-sbc {c1},x
-sta {z1}
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsxx
-lda {c1},x
-sec
-sbc {c1},x
-sta {z1}
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsxx
-lda {c1},y
-sec
-sbc {c1},x
-sta {z1}
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsz2_minus_pbsc1_derefidx_vbsyy
-ldx {z2}
-lda {c1},x
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsyy
-lda {c1},x
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbsz1=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsyy
-lda {c1},y
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2
-ldy {z1}
-lda {c1},y
-ldy {z2}
-sec
-sbc {c1},y
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsz1
-lda {c1},x
-ldy {z1}
-sec
-sbc {c1},y
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsz1
-lda {c1},y
-ldy {z1}
-sec
-sbc {c1},y
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsxx
-ldy {z1}
-lda {c1},y
-sec
-sbc {c1},x
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsxx
-lda {c1},x
-sec
-sbc {c1},x
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsxx
-lda {c1},y
-sec
-sbc {c1},x
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsyy
-ldx {z1}
-lda {c1},x
-sec
-sbc {c1},y
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsyy
-lda {c1},x
-sec
-sbc {c1},y
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsyy
-lda {c1},y
-sec
-sbc {c1},y
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2
-ldx {z1}
-lda {c1},x
-ldx {z2}
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsz1
-lda {c1},x
-ldx {z1}
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsz1
-lda {c1},y
-ldx {z1}
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsxx
-ldy {z1}
-lda {c1},y
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsxx
-lda {c1},x
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsxx
-lda {c1},y
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsyy
-ldx {z1}
-lda {c1},x
-sec
-sbc {c1},y
-tax
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsyy
-lda {c1},x
-sec
-sbc {c1},y
-tax
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsyy
-lda {c1},y
-sec
-sbc {c1},y
-tax
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2
-ldy {z1}
-lda {c1},y
-ldy {z2}
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsz1
-lda {c1},x
-ldy {z1}
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsz1
-lda {c1},y
-ldy {z1}
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsxx
-ldy {z1}
-lda {c1},y
-sec
-sbc {c1},x
-tay
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsxx
-lda {c1},x
-sec
-sbc {c1},x
-tay
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsxx
-lda {c1},y
-sec
-sbc {c1},x
-tay
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsyy
-ldx {z1}
-lda {c1},x
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsyy
-lda {c1},x
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsyy
-lda {c1},y
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz1
-ldy {z1}
-lda {c1},y
-clc
-adc {c1},y
-//FRAGMENT vbsxx=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz1
-ldx {z1}
-lda {c1},x
-clc
-adc {c1},x
-tax
-//FRAGMENT vbsyy=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz1
-ldy {z1}
-lda {c1},y
-clc
-adc {c1},y
-tay
-//FRAGMENT vbsaa=vbsz1_plus_pbsc1_derefidx_vbsz2
-lda {z1}
-ldy {z2}
-clc
-adc {c1},y
-//FRAGMENT vbsxx=vbsz1_plus_pbsc1_derefidx_vbsz2
-lda {z1}
-ldx {z2}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbsyy=vbsz1_plus_pbsc1_derefidx_vbsz2
-lda {z1}
-ldy {z2}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbsz1=vbsaa_plus_pbsc1_derefidx_vbsz2
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbsxx=vbsaa_plus_pbsc1_derefidx_vbsz1
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbsyy=vbsaa_plus_pbsc1_derefidx_vbsz1
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbsz1=vbsxx_plus_pbsc1_derefidx_vbsz2
-ldy {z2}
-txa
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbsaa=vbsxx_plus_pbsc1_derefidx_vbsz1
-ldy {z1}
-txa
-clc
-adc {c1},y
-//FRAGMENT vbsxx=vbsxx_plus_pbsc1_derefidx_vbsz1
-txa
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbsyy=vbsxx_plus_pbsc1_derefidx_vbsz1
-ldy {z1}
-txa
-clc
-adc {c1},y
-tay
-//FRAGMENT vbsz1=vbsyy_plus_pbsc1_derefidx_vbsz2
-tya
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbsaa=vbsyy_plus_pbsc1_derefidx_vbsz1
-tya
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbsxx=vbsyy_plus_pbsc1_derefidx_vbsz1
-ldx {z1}
-tya
-clc
-adc {c1},x
-tax
-//FRAGMENT vbsyy=vbsyy_plus_pbsc1_derefidx_vbsz1
-tya
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbsz1=vbsz2_plus_pbsc1_derefidx_vbsxx
-lda {c1},x
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbsaa=vbsz1_plus_pbsc1_derefidx_vbsxx
-lda {c1},x
-clc
-adc {z1}
-//FRAGMENT vbsxx=vbsz1_plus_pbsc1_derefidx_vbsxx
-lda {c1},x
-clc
-adc {z1}
-tax
-//FRAGMENT vbsyy=vbsz1_plus_pbsc1_derefidx_vbsxx
-lda {c1},x
-clc
-adc {z1}
-tay
-//FRAGMENT vbsz1=vbsaa_plus_pbsc1_derefidx_vbsxx
-clc
-adc {c1},x
-sta {z1}
-//FRAGMENT vbsaa=vbsaa_plus_pbsc1_derefidx_vbsxx
-clc
-adc {c1},x
-//FRAGMENT vbsxx=vbsaa_plus_pbsc1_derefidx_vbsxx
-clc
-adc {c1},x
-tax
-//FRAGMENT vbsyy=vbsaa_plus_pbsc1_derefidx_vbsxx
-clc
-adc {c1},x
-tay
-//FRAGMENT vbsz1=vbsxx_plus_pbsc1_derefidx_vbsxx
-txa
-clc
-adc {c1},x
-sta {z1}
-//FRAGMENT vbsaa=vbsxx_plus_pbsc1_derefidx_vbsxx
-txa
-clc
-adc {c1},x
-//FRAGMENT vbsxx=vbsxx_plus_pbsc1_derefidx_vbsxx
-txa
-clc
-adc {c1},x
-tax
-//FRAGMENT vbsyy=vbsxx_plus_pbsc1_derefidx_vbsxx
-txa
-clc
-adc {c1},x
-tay
-//FRAGMENT vbsz1=vbsyy_plus_pbsc1_derefidx_vbsxx
-tya
-clc
-adc {c1},x
-sta {z1}
-//FRAGMENT vbsaa=vbsyy_plus_pbsc1_derefidx_vbsxx
-tya
-clc
-adc {c1},x
-//FRAGMENT vbsxx=vbsyy_plus_pbsc1_derefidx_vbsxx
-tya
-clc
-adc {c1},x
-tax
-//FRAGMENT vbsyy=vbsyy_plus_pbsc1_derefidx_vbsxx
-tya
-clc
-adc {c1},x
-tay
-//FRAGMENT vbsz1=vbsz2_plus_pbsc1_derefidx_vbsyy
-lda {c1},y
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbsaa=vbsz1_plus_pbsc1_derefidx_vbsyy
-lda {c1},y
-clc
-adc {z1}
-//FRAGMENT vbsxx=vbsz1_plus_pbsc1_derefidx_vbsyy
-lda {c1},y
-clc
-adc {z1}
-tax
-//FRAGMENT vbsyy=vbsz1_plus_pbsc1_derefidx_vbsyy
-lda {c1},y
-clc
-adc {z1}
-tay
-//FRAGMENT vbsz1=vbsaa_plus_pbsc1_derefidx_vbsyy
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbsaa=vbsaa_plus_pbsc1_derefidx_vbsyy
-clc
-adc {c1},y
-//FRAGMENT vbsxx=vbsaa_plus_pbsc1_derefidx_vbsyy
-clc
-adc {c1},y
-tax
-//FRAGMENT vbsyy=vbsaa_plus_pbsc1_derefidx_vbsyy
-clc
-adc {c1},y
-tay
-//FRAGMENT vbsz1=vbsxx_plus_pbsc1_derefidx_vbsyy
-txa
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbsaa=vbsxx_plus_pbsc1_derefidx_vbsyy
-txa
-clc
-adc {c1},y
-//FRAGMENT vbsxx=vbsxx_plus_pbsc1_derefidx_vbsyy
-txa
-clc
-adc {c1},y
-tax
-//FRAGMENT vbsyy=vbsxx_plus_pbsc1_derefidx_vbsyy
-txa
-clc
-adc {c1},y
-tay
-//FRAGMENT vbsz1=vbsyy_plus_pbsc1_derefidx_vbsyy
-tya
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbsaa=vbsyy_plus_pbsc1_derefidx_vbsyy
-tya
-clc
-adc {c1},y
-//FRAGMENT vbsxx=vbsyy_plus_pbsc1_derefidx_vbsyy
-tya
-clc
-adc {c1},y
-tax
-//FRAGMENT vbsyy=vbsyy_plus_pbsc1_derefidx_vbsyy
-tya
-clc
-adc {c1},y
-tay
-//FRAGMENT vbsz1=vbsaa_minus_pbsc1_derefidx_vbsz2
-ldy {z2}
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_minus_pbsc1_derefidx_vbsz2
-ldy {z2}
-txa
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_minus_pbsc1_derefidx_vbsz2
-tya
-ldy {z2}
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbsaa=vbsz1_minus_pbsc1_derefidx_vbsz2
-lda {z1}
-ldy {z2}
-sec
-sbc {c1},y
-//FRAGMENT vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1
-ldy {z1}
-sec
-sbc {c1},y
-//FRAGMENT vbsaa=vbsxx_minus_pbsc1_derefidx_vbsz1
-ldy {z1}
-txa
-sec
-sbc {c1},y
-//FRAGMENT vbsaa=vbsyy_minus_pbsc1_derefidx_vbsz1
-tya
-ldy {z1}
-sec
-sbc {c1},y
-//FRAGMENT vbsxx=vbsz1_minus_pbsc1_derefidx_vbsz2
-lda {z1}
-ldx {z2}
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbsxx=vbsaa_minus_pbsc1_derefidx_vbsz1
-ldx {z1}
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbsxx=vbsxx_minus_pbsc1_derefidx_vbsz1
-txa
-ldx {z1}
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbsxx=vbsyy_minus_pbsc1_derefidx_vbsz1
-ldx {z1}
-tya
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbsyy=vbsz1_minus_pbsc1_derefidx_vbsz2
-lda {z1}
-ldy {z2}
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbsyy=vbsaa_minus_pbsc1_derefidx_vbsz1
-ldy {z1}
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbsyy=vbsxx_minus_pbsc1_derefidx_vbsz1
-ldy {z1}
-txa
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbsyy=vbsyy_minus_pbsc1_derefidx_vbsz1
-tya
-ldy {z1}
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbsz1=vbsz2_minus_pbsc1_derefidx_vbsxx
-lda {z2}
-sec
-sbc {c1},x
-sta {z1}
-//FRAGMENT vbsz1=vbsaa_minus_pbsc1_derefidx_vbsxx
-sec
-sbc {c1},x
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_minus_pbsc1_derefidx_vbsxx
-txa
-tay
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_minus_pbsc1_derefidx_vbsxx
-tya
-sec
-sbc {c1},x
-sta {z1}
-//FRAGMENT vbsaa=vbsz1_minus_pbsc1_derefidx_vbsxx
-lda {z1}
-sec
-sbc {c1},x
-//FRAGMENT vbsaa=vbsaa_minus_pbsc1_derefidx_vbsxx
-sec
-sbc {c1},x
-//FRAGMENT vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx
-txa
-tay
-sec
-sbc {c1},y
-//FRAGMENT vbsaa=vbsyy_minus_pbsc1_derefidx_vbsxx
-tya
-sec
-sbc {c1},x
-//FRAGMENT vbsxx=vbsz1_minus_pbsc1_derefidx_vbsxx
-lda {z1}
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbsxx=vbsaa_minus_pbsc1_derefidx_vbsxx
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbsxx=vbsxx_minus_pbsc1_derefidx_vbsxx
-txa
-tax
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbsxx=vbsyy_minus_pbsc1_derefidx_vbsxx
-tya
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbsyy=vbsz1_minus_pbsc1_derefidx_vbsxx
-lda {z1}
-sec
-sbc {c1},x
-tay
-//FRAGMENT vbsyy=vbsaa_minus_pbsc1_derefidx_vbsxx
-sec
-sbc {c1},x
-tay
-//FRAGMENT vbsyy=vbsxx_minus_pbsc1_derefidx_vbsxx
-txa
-tay
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbsyy=vbsyy_minus_pbsc1_derefidx_vbsxx
-tya
-sec
-sbc {c1},x
-tay
-//FRAGMENT vbsz1=vbsz2_minus_pbsc1_derefidx_vbsyy
-lda {z2}
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbsz1=vbsaa_minus_pbsc1_derefidx_vbsyy
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_minus_pbsc1_derefidx_vbsyy
-txa
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbsz1=vbsyy_minus_pbsc1_derefidx_vbsyy
-tya
-tay
-sec
-sbc {c1},y
-sta {z1}
-//FRAGMENT vbsaa=vbsz1_minus_pbsc1_derefidx_vbsyy
-lda {z1}
-sec
-sbc {c1},y
-//FRAGMENT vbsaa=vbsaa_minus_pbsc1_derefidx_vbsyy
-sec
-sbc {c1},y
-//FRAGMENT vbsaa=vbsxx_minus_pbsc1_derefidx_vbsyy
-txa
-sec
-sbc {c1},y
-//FRAGMENT vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy
-tya
-tay
-sec
-sbc {c1},y
-//FRAGMENT vbsxx=vbsz1_minus_pbsc1_derefidx_vbsyy
-lda {z1}
-sec
-sbc {c1},y
-tax
-//FRAGMENT vbsxx=vbsaa_minus_pbsc1_derefidx_vbsyy
-sec
-sbc {c1},y
-tax
-//FRAGMENT vbsxx=vbsxx_minus_pbsc1_derefidx_vbsyy
-txa
-sec
-sbc {c1},y
-tax
-//FRAGMENT vbsxx=vbsyy_minus_pbsc1_derefidx_vbsyy
-tya
-tax
-sec
-sbc {c1},x
-tax
-//FRAGMENT vbsyy=vbsz1_minus_pbsc1_derefidx_vbsyy
-lda {z1}
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbsyy=vbsaa_minus_pbsc1_derefidx_vbsyy
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbsyy=vbsxx_minus_pbsc1_derefidx_vbsyy
-txa
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbsyy=vbsyy_minus_pbsc1_derefidx_vbsyy
-tya
-tay
-sec
-sbc {c1},y
-tay
-//FRAGMENT vbsaa=_deref_pbsc1
-lda {c1}
-//FRAGMENT vbsxx=_deref_pbsc1
-ldx {c1}
-//FRAGMENT vbsyy=_deref_pbsc1
-ldy {c1}
-//FRAGMENT vwuz1=vwuc1_plus_vbuz2
-lda {z2}
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT _deref_qbuz1=pbuz2
-ldy #0
-lda {z2}
-sta ({z1}),y
-iny
-lda {z2}+1
-sta ({z1}),y
-//FRAGMENT qbuz1_derefidx_vbuc1=pbuz2
-ldy #{c1}
-lda {z2}
-sta ({z1}),y
-iny
-lda {z2}+1
-sta ({z1}),y
-//FRAGMENT qwuz1_derefidx_vbuc1=pwuz2
-ldy #{c1}
-lda {z2}
-sta ({z1}),y
-iny
-lda {z2}+1
-sta ({z1}),y
-//FRAGMENT vwuz1=pwuz2_derefidx_vbuc1
-ldy #{c1}
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT vwuz1=vwuc1_plus_vbuaa
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuc1_plus_vbuxx
-txa
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuc1_plus_vbuyy
-tya
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pbuc1_derefidx_vbuz1=_byte_vwuz2
-ldy {z1}
-lda {z2}
-sta {c1},y
-//FRAGMENT vwuz1=vwuz2_ror_8
-lda {z2}+1
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1_ge_vwuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bcc !+
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bcs {la1}
-!:
-//FRAGMENT vwuz1_ge_vbuc1_then_la1
-lda {z1}+1
-bne {la1}
-lda {z1}
-cmp #{c1}
-bcs {la1}
-!:
-//FRAGMENT pbuc1_derefidx_vbuxx=_byte_vwuz1
-lda {z1}
-sta {c1},x
-//FRAGMENT vbuz1_eq__deref_pbuc1_then_la1
-lda {c1}
-cmp {z1}
-beq {la1}
-//FRAGMENT _deref_pbuc1_eq_0_then_la1
-lda {c1}
-beq {la1}
-//FRAGMENT vbuz1=_deref_pbuc1_rol_4
-lda {c1}
-asl
-asl
-asl
-asl
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_bor__deref_pbuc1
-lda {c1}
-ora {z2}
-sta {z1}
-//FRAGMENT vduz1=vduz2_plus_vbuz3
-lda {z3}
-clc
-adc {z2}
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vwuz1=vwuz2_ror_6
-lda {z2}
-asl
-sta $ff
-lda {z2}+1
-rol
-sta {z1}
-lda #0
-rol
-sta {z1}+1
-asl $ff
-rol {z1}
-rol {z1}+1
-//FRAGMENT pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuz1
-ldx {z1}
-dec {c1},x
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_(pbuc2_derefidx_vbuz2)
-ldx {z2}
-ldy {c2},x
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuc1_derefidx_vbuz1_le_pbuc2_derefidx_vbuz1_then_la1
-ldy {z1}
-lda {c2},y
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuz1=_deref_pbuz2_bor_vbuc1
-lda #{c1}
-ldy #0
-ora ({z2}),y
-sta {z1}
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuz1
-ldy {z1}
-lda ({z2}),y
-sta {c1},y
-//FRAGMENT vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuz3
-lda {z2}
-ldy {z3}
-eor {c1},y
-sta {z1}
-//FRAGMENT vbuxx_eq__deref_pbuc1_then_la1
-cpx {c1}
-beq {la1}
-//FRAGMENT vbuaa=_deref_pbuc1_rol_4
-lda {c1}
-asl
-asl
-asl
-asl
-//FRAGMENT vbuxx=_deref_pbuc1_rol_4
-lda {c1}
-asl
-asl
-asl
-asl
-tax
-//FRAGMENT vbuyy=_deref_pbuc1_rol_4
-lda {c1}
-asl
-asl
-asl
-asl
-tay
-//FRAGMENT vbuaa=vbuz1_bor__deref_pbuc1
-lda {c1}
-ora {z1}
-//FRAGMENT vbuxx=vbuz1_bor__deref_pbuc1
-lda {c1}
-ora {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_bor__deref_pbuc1
-lda {c1}
-ora {z1}
-tay
-//FRAGMENT vbuz1=vbuaa_bor__deref_pbuc1
-ora {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_bor__deref_pbuc1
-ora {c1}
-//FRAGMENT vbuxx=vbuaa_bor__deref_pbuc1
-ora {c1}
-tax
-//FRAGMENT vbuyy=vbuaa_bor__deref_pbuc1
-ora {c1}
-tay
-//FRAGMENT vbuz1=vbuxx_bor__deref_pbuc1
-txa
-ora {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bor__deref_pbuc1
-txa
-ora {c1}
-//FRAGMENT vbuxx=vbuxx_bor__deref_pbuc1
-txa
-ora {c1}
-tax
-//FRAGMENT vbuyy=vbuxx_bor__deref_pbuc1
-txa
-ora {c1}
-tay
-//FRAGMENT vbuz1=vbuyy_bor__deref_pbuc1
-tya
-ora {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_bor__deref_pbuc1
-tya
-ora {c1}
-//FRAGMENT vbuxx=vbuyy_bor__deref_pbuc1
-tya
-ora {c1}
-tax
-//FRAGMENT vbuyy=vbuyy_bor__deref_pbuc1
-tya
-ora {c1}
-tay
-//FRAGMENT vduz1=vduz2_plus_vbuxx
-txa
-clc
-adc {z2}
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_plus_vbuyy
-tya
-clc
-adc {z2}
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_(pbuc2_derefidx_vbuaa)
-tax
-ldy {c2},x
-lda {c1},y
-ldy {z2}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_(pbuc2_derefidx_vbuxx)
-ldy {c2},x
-lda {c1},y
-ldy {z2}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_(pbuc2_derefidx_vbuyy)
-ldx {c2},y
-lda {c1},x
-ldy {z2}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuz2)
-ldy {z2}
-ldx {c2},y
-tay
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuaa)
-tay
-ldx {c2},y
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuxx)
-ldy {c2},x
-ldx {c1},y
-tay
-txa
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuyy)
-ldx {c2},y
-tay
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuz2)
-ldy {z2}
-txa
-ldx {c2},y
-tay
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuaa)
-tay
-txa
-ldx {c2},y
-tay
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuxx)
-txa
-tay
-ldx {c2},y
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuyy)
-txa
-ldx {c2},y
-tay
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuz2)
-ldx {z2}
-lda {c2},x
-tax
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuaa)
-tax
-lda {c2},x
-tax
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuxx)
-lda {c2},x
-tax
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuyy)
-ldx {c2},y
-lda {c1},x
-sta ({z1}),y
-//FRAGMENT pbuc1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuxx
-dec {c1},x
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_(pbuc2_derefidx_vbuxx)
-ldy {c2},x
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuc1_derefidx_vbuxx_le_pbuc2_derefidx_vbuxx_then_la1
-txa
-tay
-lda {c2},x
-cmp {c1},y
-bcs {la1}
-//FRAGMENT vbuaa=_deref_pbuz1_bor_vbuc1
-lda #{c1}
-ldy #0
-ora ({z1}),y
-//FRAGMENT vbuxx=_deref_pbuz1_bor_vbuc1
-lda #{c1}
-ldy #0
-ora ({z1}),y
-tax
-//FRAGMENT vbuyy=_deref_pbuz1_bor_vbuc1
-lda #{c1}
-ldy #0
-ora ({z1}),y
-tay
-//FRAGMENT pbuc1_derefidx_vbuaa=pbuz1_derefidx_vbuaa
-tay
-lda ({z1}),y
-sta {c1},y
-//FRAGMENT vbuz1_neq_pbuc1_derefidx_vbuaa_then_la1
-tay
-lda {c1},y
-cmp {z1}
-bne {la1}
-//FRAGMENT vbuaa_neq_pbuc1_derefidx_vbuz1_then_la1
-ldy {z1}
-cmp {c1},y
-bne {la1}
-//FRAGMENT vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2
-lda {z1}
-ldy {z2}
-eor {c1},y
-//FRAGMENT vbuxx=vbuz1_bxor_pbuc1_derefidx_vbuz2
-lda {z1}
-ldx {z2}
-eor {c1},x
-tax
-//FRAGMENT vbuyy=vbuz1_bxor_pbuc1_derefidx_vbuz2
-lda {z1}
-ldy {z2}
-eor {c1},y
-tay
-//FRAGMENT vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuxx
-lda {c1},x
-eor {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuxx
-lda {c1},x
-eor {z1}
-//FRAGMENT vbuxx=vbuz1_bxor_pbuc1_derefidx_vbuxx
-lda {c1},x
-eor {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_bxor_pbuc1_derefidx_vbuxx
-lda {c1},x
-eor {z1}
-tay
-//FRAGMENT vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuyy
-lda {c1},y
-eor {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuyy
-lda {c1},y
-eor {z1}
-//FRAGMENT vbuxx=vbuz1_bxor_pbuc1_derefidx_vbuyy
-lda {c1},y
-eor {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_bxor_pbuc1_derefidx_vbuyy
-lda {c1},y
-eor {z1}
-tay
-//FRAGMENT vbuz1=vbuaa_bxor_pbuc1_derefidx_vbuz2
-ldy {z2}
-eor {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuz1
-ldy {z1}
-eor {c1},y
-//FRAGMENT vbuxx=vbuaa_bxor_pbuc1_derefidx_vbuz1
-ldx {z1}
-eor {c1},x
-tax
-//FRAGMENT vbuyy=vbuaa_bxor_pbuc1_derefidx_vbuz1
-ldy {z1}
-eor {c1},y
-tay
-//FRAGMENT vbuz1=vbuaa_bxor_pbuc1_derefidx_vbuxx
-eor {c1},x
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuxx
-eor {c1},x
-//FRAGMENT vbuxx=vbuaa_bxor_pbuc1_derefidx_vbuxx
-eor {c1},x
-tax
-//FRAGMENT vbuyy=vbuaa_bxor_pbuc1_derefidx_vbuxx
-eor {c1},x
-tay
-//FRAGMENT vbuz1=vbuaa_bxor_pbuc1_derefidx_vbuyy
-eor {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuyy
-eor {c1},y
-//FRAGMENT vbuxx=vbuaa_bxor_pbuc1_derefidx_vbuyy
-eor {c1},y
-tax
-//FRAGMENT vbuyy=vbuaa_bxor_pbuc1_derefidx_vbuyy
-eor {c1},y
-tay
-//FRAGMENT vbuz1=vbuxx_bxor_pbuc1_derefidx_vbuz2
-ldy {z2}
-txa
-eor {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bxor_pbuc1_derefidx_vbuz1
-ldy {z1}
-txa
-eor {c1},y
-//FRAGMENT vbuxx=vbuxx_bxor_pbuc1_derefidx_vbuz1
-txa
-ldx {z1}
-eor {c1},x
-tax
-//FRAGMENT vbuyy=vbuxx_bxor_pbuc1_derefidx_vbuz1
-ldy {z1}
-txa
-eor {c1},y
-tay
-//FRAGMENT vbuz1=vbuxx_bxor_pbuc1_derefidx_vbuxx
-txa
-eor {c1},x
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bxor_pbuc1_derefidx_vbuxx
-txa
-eor {c1},x
-//FRAGMENT vbuxx=vbuxx_bxor_pbuc1_derefidx_vbuxx
-txa
-eor {c1},x
-tax
-//FRAGMENT vbuyy=vbuxx_bxor_pbuc1_derefidx_vbuxx
-txa
-eor {c1},x
-tay
-//FRAGMENT vbuz1=vbuxx_bxor_pbuc1_derefidx_vbuyy
-txa
-eor {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bxor_pbuc1_derefidx_vbuyy
-txa
-eor {c1},y
-//FRAGMENT vbuxx=vbuxx_bxor_pbuc1_derefidx_vbuyy
-txa
-eor {c1},y
-tax
-//FRAGMENT vbuyy=vbuxx_bxor_pbuc1_derefidx_vbuyy
-txa
-eor {c1},y
-tay
-//FRAGMENT vbuz1=vbuyy_bxor_pbuc1_derefidx_vbuz2
-tya
-ldy {z2}
-eor {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_bxor_pbuc1_derefidx_vbuz1
-tya
-ldy {z1}
-eor {c1},y
-//FRAGMENT vbuxx=vbuyy_bxor_pbuc1_derefidx_vbuz1
-ldx {z1}
-tya
-eor {c1},x
-tax
-//FRAGMENT vbuyy=vbuyy_bxor_pbuc1_derefidx_vbuz1
-tya
-ldy {z1}
-eor {c1},y
-tay
-//FRAGMENT vbuz1=vbuyy_bxor_pbuc1_derefidx_vbuxx
-tya
-eor {c1},x
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_bxor_pbuc1_derefidx_vbuxx
-tya
-eor {c1},x
-//FRAGMENT vbuxx=vbuyy_bxor_pbuc1_derefidx_vbuxx
-tya
-eor {c1},x
-tax
-//FRAGMENT vbuyy=vbuyy_bxor_pbuc1_derefidx_vbuxx
-tya
-eor {c1},x
-tay
-//FRAGMENT vbuz1=vbuyy_bxor_pbuc1_derefidx_vbuyy
-tya
-eor {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_bxor_pbuc1_derefidx_vbuyy
-tya
-eor {c1},y
-//FRAGMENT vbuxx=vbuyy_bxor_pbuc1_derefidx_vbuyy
-tya
-eor {c1},y
-tax
-//FRAGMENT vbuyy=vbuyy_bxor_pbuc1_derefidx_vbuyy
-tya
-eor {c1},y
-tay
-//FRAGMENT vbuyy=vbuaa_band_pbuc1_derefidx_vbuz1
-ldy {z1}
-and {c1},y
-tay
-//FRAGMENT vbuxx=vbuxx_band_pbuc1_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-axs #0
-//FRAGMENT vbuyy=vbuxx_band_pbuc1_derefidx_vbuz1
-ldy {z1}
-txa
-and {c1},y
-tay
-//FRAGMENT vbuxx=vbuyy_band_pbuc1_derefidx_vbuz1
-ldx {z1}
-tya
-and {c1},x
-tax
-//FRAGMENT vbuyy=vbuyy_band_pbuc1_derefidx_vbuz1
-tya
-ldy {z1}
-and {c1},y
-tay
-//FRAGMENT vbuyy=vbuaa_band_pbuc1_derefidx_vbuxx
-and {c1},x
-tay
-//FRAGMENT vbuz1=vbuxx_band_pbuc1_derefidx_vbuxx
-lda {c1},x
-sax {z1}
-//FRAGMENT vbuaa=vbuxx_band_pbuc1_derefidx_vbuxx
-txa
-and {c1},x
-//FRAGMENT vbuxx=vbuxx_band_pbuc1_derefidx_vbuxx
-lda {c1},x
-axs #0
-//FRAGMENT vbuyy=vbuxx_band_pbuc1_derefidx_vbuxx
-txa
-and {c1},x
-tay
-//FRAGMENT vbuz1=vbuyy_band_pbuc1_derefidx_vbuxx
-tya
-and {c1},x
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_band_pbuc1_derefidx_vbuxx
-tya
-and {c1},x
-//FRAGMENT vbuxx=vbuyy_band_pbuc1_derefidx_vbuxx
-tya
-and {c1},x
-tax
-//FRAGMENT vbuyy=vbuyy_band_pbuc1_derefidx_vbuxx
-tya
-and {c1},x
-tay
-//FRAGMENT vbuz1=vbuxx_band_pbuc1_derefidx_vbuyy
-lda {c1},y
-sax {z1}
-//FRAGMENT vbuz1=vbuyy_band_pbuc1_derefidx_vbuyy
-tya
-and {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_band_pbuc1_derefidx_vbuyy
-txa
-and {c1},y
-//FRAGMENT vbuaa=vbuyy_band_pbuc1_derefidx_vbuyy
-tya
-and {c1},y
-//FRAGMENT vbuxx=vbuxx_band_pbuc1_derefidx_vbuyy
-lda {c1},y
-axs #0
-//FRAGMENT vbuxx=vbuyy_band_pbuc1_derefidx_vbuyy
-ldx {c1},y
-tya
-axs #0
-//FRAGMENT vbuyy=vbuxx_band_pbuc1_derefidx_vbuyy
-txa
-and {c1},y
-tay
-//FRAGMENT vbuyy=vbuyy_band_pbuc1_derefidx_vbuyy
-tya
-and {c1},y
-tay
-//FRAGMENT vbuz1=vbuxx_bor_vbuc1
-txa
-ora #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bor_vbuc1
-txa
-ora #{c1}
-//FRAGMENT vbuyy=vbuxx_bor_vbuc1
-txa
-ora #{c1}
-tay
-//FRAGMENT vbuz1=vbuyy_bor_vbuc1
-tya
-ora #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_bor_vbuc1
-tya
-ora #{c1}
-//FRAGMENT vbuxx=vbuyy_bor_vbuc1
-tya
-ora #{c1}
-tax
-//FRAGMENT vbuz1=vbuz2_band_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-and {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_band_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-sax {z1}
-//FRAGMENT vbuz1=vbuyy_band_pbuc1_derefidx_vbuaa
-tax
-tya
-and {c1},x
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-and {z1}
-//FRAGMENT vbuaa=vbuxx_band_pbuc1_derefidx_vbuaa
-tay
-txa
-and {c1},y
-//FRAGMENT vbuaa=vbuyy_band_pbuc1_derefidx_vbuaa
-tax
-tya
-and {c1},x
-//FRAGMENT vbuxx=vbuz1_band_pbuc1_derefidx_vbuaa
-tax
-lda {c1},x
-and {z1}
-tax
-//FRAGMENT vbuxx=vbuxx_band_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-axs #0
-//FRAGMENT vbuxx=vbuyy_band_pbuc1_derefidx_vbuaa
-tax
-tya
-and {c1},x
-tax
-//FRAGMENT vbuyy=vbuz1_band_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-and {z1}
-tay
-//FRAGMENT vbuyy=vbuxx_band_pbuc1_derefidx_vbuaa
-tay
-txa
-and {c1},y
-tay
-//FRAGMENT vbuyy=vbuyy_band_pbuc1_derefidx_vbuaa
-tax
-tya
-and {c1},x
-tay
-//FRAGMENT vduz1=vduz1_plus_vbuxx
-txa
-clc
-adc {z1}
-sta {z1}
-lda {z1}+1
-adc #0
-sta {z1}+1
-lda {z1}+2
-adc #0
-sta {z1}+2
-lda {z1}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vwuz1=vwuz1_band_vwuc1
-lda {z1}
-and #<{c1}
-sta {z1}
-lda {z1}+1
-and #>{c1}
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz1_ror_6
-lda {z1}
-asl
-sta $ff
-lda {z1}+1
-rol
-sta {z1}
-lda #0
-rol
-sta {z1}+1
-asl $ff
-rol {z1}
-rol {z1}+1
-//FRAGMENT vbsz1=vbsz2_minus_vbsc1
-lax {z2}
-axs #{c1}
-stx {z1}
-//FRAGMENT vbsz1=vbsaa_minus_vbsc1
-sec
-sbc #{c1}
-sta {z1}
-//FRAGMENT vbsz1=vbsxx_minus_vbsc1
-txa
-axs #{c1}
-stx {z1}
-//FRAGMENT vbsz1=vbsyy_minus_vbsc1
-tya
-sec
-sbc #{c1}
-sta {z1}
-//FRAGMENT vbsaa=vbsz1_minus_vbsc1
-lda {z1}
-sec
-sbc #{c1}
-//FRAGMENT vbsaa=vbsaa_minus_vbsc1
-sec
-sbc #{c1}
-//FRAGMENT vbsaa=vbsxx_minus_vbsc1
-txa
-sec
-sbc #{c1}
-//FRAGMENT vbsaa=vbsyy_minus_vbsc1
-tya
-sec
-sbc #{c1}
-//FRAGMENT vbsxx=vbsz1_minus_vbsc1
-lax {z1}
-axs #{c1}
-//FRAGMENT vbsxx=vbsaa_minus_vbsc1
-tax
-axs #{c1}
-//FRAGMENT vbsxx=vbsyy_minus_vbsc1
-tya
-tax
-axs #{c1}
-//FRAGMENT vbsyy=vbsz1_minus_vbsc1
-lda {z1}
-sec
-sbc #{c1}
-tay
-//FRAGMENT vbsyy=vbsaa_minus_vbsc1
-sec
-sbc #{c1}
-tay
-//FRAGMENT vbsyy=vbsxx_minus_vbsc1
-txa
-sec
-sbc #{c1}
-tay
-//FRAGMENT vbsyy=vbsz1_minus_vbsaa
-eor #$ff
-sec
-adc {z1}
-tay
-//FRAGMENT vbsyy=vbsxx_minus_vbsaa
-sta $ff
-txa
-sec
-sbc $ff
-tay
-//FRAGMENT vbsyy=vbsyy_minus_vbsaa
-sta $ff
-tya
-sec
-sbc $ff
-tay
-//FRAGMENT vbsyy_lt_0_then_la1
-cpy #0
-bmi {la1}
-//FRAGMENT pwsz1=pwsc1_plus_vwuz2
-lda {z2}
-clc
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_minus_vwuc1
-sec
-lda {z2}
-sbc #<{c1}
-sta {z1}
-lda {z2}+1
-sbc #>{c1}
-sta {z1}+1
-//FRAGMENT vbsz1=_sbyte_vwsz2
-lda {z2}
-sta {z1}
-//FRAGMENT vbsaa=_sbyte_vwsz1
-lda {z1}
-//FRAGMENT vbsxx=_sbyte_vwsz1
-lda {z1}
-tax
-//FRAGMENT vbsyy=_sbyte_vwsz1
-lda {z1}
-tay
-//FRAGMENT pwsz1=pwsc1_plus_vwuz1
-lda {z1}
-clc
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz1_minus_vwsc1
-lda {z1}
-sec
-sbc #<{c1}
-sta {z1}
-lda {z1}+1
-sbc #>{c1}
-sta {z1}+1
-//FRAGMENT vbsz1=pbsc1_derefidx_vbuz2_minus_pbsc2_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sec
-sbc {c2},y
-sta {z1}
-//FRAGMENT pbsz1=pbsc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
-//FRAGMENT _deref_pbsz1=vbsz2
-lda {z2}
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbsz1=_inc_pbsz1
-inc {z1}
-bne !+
-inc {z1}+1
-!:
-//FRAGMENT vbsaa=pbsc1_derefidx_vbuz1_minus_pbsc2_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-sec
-sbc {c2},y
-//FRAGMENT vbsxx=pbsc1_derefidx_vbuz1_minus_pbsc2_derefidx_vbuz1
-ldx {z1}
-lda {c1},x
-sec
-sbc {c2},x
-tax
-//FRAGMENT vbsyy=pbsc1_derefidx_vbuz1_minus_pbsc2_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-sec
-sbc {c2},y
-tay
-//FRAGMENT vbsz1=pbsc1_derefidx_vbuaa_minus_pbsc2_derefidx_vbuaa
-tay
-lda {c1},y
-sec
-sbc {c2},y
-sta {z1}
-//FRAGMENT vbsaa=pbsc1_derefidx_vbuaa_minus_pbsc2_derefidx_vbuaa
-tay
-lda {c1},y
-sec
-sbc {c2},y
-//FRAGMENT vbsxx=pbsc1_derefidx_vbuaa_minus_pbsc2_derefidx_vbuaa
-tax
-lda {c1},x
-sec
-sbc {c2},x
-tax
-//FRAGMENT vbsyy=pbsc1_derefidx_vbuaa_minus_pbsc2_derefidx_vbuaa
-tay
-lda {c1},y
-sec
-sbc {c2},y
-tay
-//FRAGMENT vbsz1=pbsc1_derefidx_vbuxx_minus_pbsc2_derefidx_vbuxx
-lda {c1},x
-sec
-sbc {c2},x
-sta {z1}
-//FRAGMENT vbsaa=pbsc1_derefidx_vbuxx_minus_pbsc2_derefidx_vbuxx
-lda {c1},x
-sec
-sbc {c2},x
-//FRAGMENT vbsxx=pbsc1_derefidx_vbuxx_minus_pbsc2_derefidx_vbuxx
-lda {c1},x
-sec
-sbc {c2},x
-tax
-//FRAGMENT vbsyy=pbsc1_derefidx_vbuxx_minus_pbsc2_derefidx_vbuxx
-lda {c1},x
-sec
-sbc {c2},x
-tay
-//FRAGMENT vbsz1=pbsc1_derefidx_vbuyy_minus_pbsc2_derefidx_vbuyy
-lda {c1},y
-sec
-sbc {c2},y
-sta {z1}
-//FRAGMENT vbsaa=pbsc1_derefidx_vbuyy_minus_pbsc2_derefidx_vbuyy
-lda {c1},y
-sec
-sbc {c2},y
-//FRAGMENT vbsxx=pbsc1_derefidx_vbuyy_minus_pbsc2_derefidx_vbuyy
-lda {c1},y
-sec
-sbc {c2},y
-tax
-//FRAGMENT vbsyy=pbsc1_derefidx_vbuyy_minus_pbsc2_derefidx_vbuyy
-lda {c1},y
-sec
-sbc {c2},y
-tay
-//FRAGMENT _deref_pbsz1=vbsaa
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbsz1=vbsxx
-txa
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbsz1=vbsyy
-tya
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbsaa=vbsz1_minus_vbsaa
-eor #$ff
-sec
-adc {z1}
-//FRAGMENT vbsaa=vbsxx_minus_vbsaa
-sta $ff
-txa
-sec
-sbc $ff
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_vbuz3
-lda {z3}
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT pbuz1=pbuc1_plus_pwuc2_derefidx_vbuz2
-ldy {z2}
-clc
-lda #<{c1}
-adc {c2},y
-sta {z1}
-lda #>{c1}
-adc {c2}+1,y
-sta {z1}+1
-//FRAGMENT pbuc1_derefidx_vbuz1_ge_vbuc2_then_la1
-ldy {z1}
-lda {c1},y
-cmp #{c2}
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_lt_vbuc2_then_la1
-ldy {z1}
-lda {c1},y
-cmp #{c2}
-bcc {la1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuz1=vbuz1_band_vbuz2
-lda {z1}
-and {z2}
-sta {z1}
-//FRAGMENT pbuz1=qbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT pwuz1=pwuz2_plus_vwuz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_plus__deref_pwuz3
-ldy #0
-clc
-lda {z2}
-adc ({z3}),y
-sta {z1}
-iny
-lda {z2}+1
-adc ({z3}),y
-sta {z1}+1
-//FRAGMENT vwuz1=pbuz2_derefidx_vbuc1_word__deref_pbuz2
-ldy #{c1}
-lda ({z2}),y
-sta {z1}+1
-ldy #0
-lda ({z2}),y
-sta {z1}
-//FRAGMENT pbuz1=pbuz1_plus_pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuz3_bor_pbuz4_derefidx_vbuz3
-ldy {z3}
-lda ({z2}),y
-ora ({z4}),y
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_vbuz2
-lda {c1},x
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_vbuz2
-lda {c1},y
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_vbuz2
-lda {z2}
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbuz1
-lda {c1},x
-clc
-adc {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbuz1
-lda {c1},y
-clc
-adc {z1}
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_vbuz2
-lda {z2}
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbuz1
-lda {c1},x
-clc
-adc {z1}
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbuz1
-lda {c1},y
-clc
-adc {z1}
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_vbuz2
-lda {z2}
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbuz1
-lda {c1},x
-clc
-adc {z1}
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbuz1
-lda {c1},y
-clc
-adc {z1}
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_vbuaa
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_vbuaa
-clc
-adc {c1},x
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_vbuaa
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_vbuaa
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbuaa
-clc
-adc {c1},x
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbuaa
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_vbuaa
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbuaa
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbuaa
-clc
-adc {c1},y
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_vbuaa
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbuaa
-clc
-adc {c1},x
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbuaa
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_vbuxx
-ldy {z2}
-txa
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_vbuxx
-txa
-clc
-adc {c1},x
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_vbuxx
-txa
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_vbuxx
-ldy {z1}
-txa
-clc
-adc {c1},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbuxx
-txa
-clc
-adc {c1},x
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbuxx
-txa
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_vbuxx
-txa
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbuxx
-txa
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbuxx
-txa
-clc
-adc {c1},y
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_vbuxx
-ldy {z1}
-txa
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbuxx
-txa
-clc
-adc {c1},x
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbuxx
-txa
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_vbuyy
-tya
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_vbuyy
-tya
-clc
-adc {c1},x
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_vbuyy
-tya
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_vbuyy
-tya
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbuyy
-tya
-clc
-adc {c1},x
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbuyy
-tya
-clc
-adc {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_vbuyy
-ldx {z1}
-tya
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbuyy
-tya
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbuyy
-tya
-clc
-adc {c1},y
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_vbuyy
-tya
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbuyy
-tya
-clc
-adc {c1},x
-tay
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbuyy
-tya
-clc
-adc {c1},y
-tay
-//FRAGMENT pbuz1=pbuc1_plus_pwuc2_derefidx_vbuaa
-tay
-clc
-lda #<{c1}
-adc {c2},y
-sta {z1}
-lda #>{c1}
-adc {c2}+1,y
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_pwuc2_derefidx_vbuxx
-txa
-tay
-clc
-lda #<{c1}
-adc {c2},y
-sta {z1}
-lda #>{c1}
-adc {c2}+1,y
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_pwuc2_derefidx_vbuyy
-clc
-lda #<{c1}
-adc {c2},y
-sta {z1}
-lda #>{c1}
-adc {c2}+1,y
-sta {z1}+1
-//FRAGMENT pbuc1_derefidx_vbuxx_ge_vbuc2_then_la1
-lda {c1},x
-cmp #{c2}
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_ge_vbuc2_then_la1
-lda {c1},y
-cmp #{c2}
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuxx_lt_vbuc2_then_la1
-lda {c1},x
-cmp #{c2}
-bcc {la1}
-//FRAGMENT pbuc1_derefidx_vbuyy_lt_vbuc2_then_la1
-lda {c1},y
-cmp #{c2}
-bcc {la1}
-//FRAGMENT vbuz1=vbuz1_band_vbuxx
-lda {z1}
-sax {z1}
-//FRAGMENT vbuz1=vbuz1_band_vbuyy
-tya
-and {z1}
-sta {z1}
-//FRAGMENT pbuc1_derefidx_vbuyy=_byte_vwuz1
-lda {z1}
-sta {c1},y
-//FRAGMENT vbuaa_eq_vbuz1_then_la1
-cmp {z1}
-beq {la1}
-//FRAGMENT pbuz1=qbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT pbuz1=qbuc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-lda {c1}+1,x
-sta {z1}+1
-//FRAGMENT pbuz1=qbuc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT vbuz1=vbuaa_plus_pbuc1_derefidx_vbuz2
-ldy {z2}
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuz1=vbuaa_plus_pbuc1_derefidx_vbuxx
-clc
-adc {c1},x
-sta {z1}
-//FRAGMENT vbuz1=vbuaa_plus_pbuc1_derefidx_vbuyy
-clc
-adc {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_plus_pbuc1_derefidx_vbuz1
-ldy {z1}
-clc
-adc {c1},y
-//FRAGMENT vbuaa=vbuaa_plus_pbuc1_derefidx_vbuxx
-clc
-adc {c1},x
-//FRAGMENT vbuaa=vbuaa_plus_pbuc1_derefidx_vbuyy
-clc
-adc {c1},y
-//FRAGMENT vbuxx=vbuaa_plus_pbuc1_derefidx_vbuz1
-ldx {z1}
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=vbuaa_plus_pbuc1_derefidx_vbuxx
-clc
-adc {c1},x
-tax
-//FRAGMENT vbuxx=vbuaa_plus_pbuc1_derefidx_vbuyy
-clc
-adc {c1},y
-tax
-//FRAGMENT vbuyy=vbuaa_plus_pbuc1_derefidx_vbuz1
-ldy {z1}
-clc
-adc {c1},y
-tay
-//FRAGMENT vbuyy=vbuaa_plus_pbuc1_derefidx_vbuxx
-clc
-adc {c1},x
-tay
-//FRAGMENT vbuyy=vbuaa_plus_pbuc1_derefidx_vbuyy
-clc
-adc {c1},y
-tay
-//FRAGMENT pbuz1=pbuz1_plus_pbuc1_derefidx_vbuxx
-lda {c1},x
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT pbuz1=pbuz1_plus_pbuc1_derefidx_vbuyy
-lda {c1},y
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuaa_bor_pbuz3_derefidx_vbuaa
-tay
-lda ({z2}),y
-ora ({z3}),y
-sta {z1}
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuxx_bor_pbuz3_derefidx_vbuxx
-txa
-tay
-lda ({z2}),y
-ora ({z3}),y
-sta {z1}
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuyy_bor_pbuz3_derefidx_vbuyy
-lda ({z2}),y
-ora ({z3}),y
-sta {z1}
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2
-ldy {z2}
-lda ({z1}),y
-ora ({z3}),y
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuaa_bor_pbuz2_derefidx_vbuaa
-tay
-lda ({z1}),y
-ora ({z2}),y
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuxx_bor_pbuz2_derefidx_vbuxx
-txa
-tay
-lda ({z1}),y
-ora ({z2}),y
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuyy_bor_pbuz2_derefidx_vbuyy
-lda ({z1}),y
-ora ({z2}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2
-ldy {z2}
-lda ({z1}),y
-ora ({z3}),y
-tax
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuaa_bor_pbuz2_derefidx_vbuaa
-tay
-lda ({z1}),y
-ora ({z2}),y
-tax
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuxx_bor_pbuz2_derefidx_vbuxx
-txa
-tay
-lda ({z1}),y
-ora ({z2}),y
-tax
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuyy_bor_pbuz2_derefidx_vbuyy
-lda ({z1}),y
-ora ({z2}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2
-ldy {z2}
-lda ({z1}),y
-ora ({z3}),y
-tay
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuaa_bor_pbuz2_derefidx_vbuaa
-tay
-lda ({z1}),y
-ora ({z2}),y
-tay
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuxx_bor_pbuz2_derefidx_vbuxx
-txa
-tay
-lda ({z1}),y
-ora ({z2}),y
-tay
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuyy_bor_pbuz2_derefidx_vbuyy
-lda ({z1}),y
-ora ({z2}),y
-tay
-//FRAGMENT vbuxx=vbuyy_minus_1
-tya
-tax
-dex
-//FRAGMENT vbuaa=vbuxx_minus_1
-txa
-sec
-sbc #1
-//FRAGMENT vbuyy=vbuxx_minus_1
-txa
-tay
-dey
-//FRAGMENT vbuaa=vbuyy_minus_1
-tya
-sec
-sbc #1
-//FRAGMENT vbuaa=vbuaa_band_vbuxx
-stx $ff
-and $ff
-//FRAGMENT vbuaa=vbuaa_band_vbuyy
-sty $ff
-and $ff
-//FRAGMENT pbuz1=pbuz2_plus__deref_pwuz1
-ldy #0
-clc
-lda ({z1}),y
-adc {z2}
-pha
-iny
-lda ({z1}),y
-adc {z2}+1
-sta {z1}+1
-pla
-sta {z1}
-//FRAGMENT pwuz1=pwuz2_plus_vwuz1
-clc
-lda {z1}
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuc1_plus_pbuc2_derefidx_vbuz2
-ldy {z2}
-lda {c2},y
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pbuz1_derefidx_vbuz2=_byte_vwuz3
-lda {z3}
-ldy {z2}
-sta ({z1}),y
-//FRAGMENT vwuz1=vwuc1_plus_pbuc2_derefidx_vbuaa
-tay
-lda {c2},y
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuc1_plus_pbuc2_derefidx_vbuxx
-lda {c2},x
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuc1_plus_pbuc2_derefidx_vbuyy
-lda {c2},y
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pbuz1_derefidx_vbuxx=_byte_vwuz2
-txa
-tay
-lda {z2}
-sta ({z1}),y
-//FRAGMENT pbuz1_derefidx_vbuyy=_byte_vwuz2
-lda {z2}
-sta ({z1}),y
-//FRAGMENT vbuz1=vbuz2_bor__byte1_vwuz3
-lda {z2}
-ora {z3}+1
-sta {z1}
-//FRAGMENT vbuz1=vbuz1_bor_vbuaa
-ora {z1}
-sta {z1}
-//FRAGMENT vbuxx_neq_vbuaa_then_la1
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuyy_neq_vbuaa_then_la1
-tax
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vwuz1=_deref_pbuz2_word__deref_pbuz3
-ldy #0
-lda ({z3}),y
-sta {z1}
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT vbuz1=vbuz2_minus_2
-lda {z2}
-sec
-sbc #2
-sta {z1}
-//FRAGMENT vbuxx=vbuz1_minus_2
-ldx {z1}
-dex
-dex
-//FRAGMENT vwuz1=vwuz2_rol_6
-lda {z2}+1
-lsr
-sta $ff
-lda {z2}
-ror
-sta {z1}+1
-lda #0
-ror
-sta {z1}
-lsr $ff
-ror {z1}+1
-ror {z1}
-//FRAGMENT vduz1=vwuz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda #0
-sta {z1}+2
-sta {z1}+3
-//FRAGMENT vwsz1_lt_vwuz2_then_la1
-lda {z1}+1
-bmi {la1}
-cmp {z2}+1
-bcc {la1}
-bne !+
-lda {z1}
-cmp {z2}
-bcc {la1}
-!:
-//FRAGMENT vduz1=pduz2_derefidx_vbuz3
-ldy {z3}
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-iny
-lda ({z2}),y
-sta {z1}+2
-iny
-lda ({z2}),y
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_plus_pduc1_derefidx_vbuz3
-ldy {z3}
-clc
-lda {z2}
-adc {c1},y
-sta {z1}
-lda {z2}+1
-adc {c1}+1,y
-sta {z1}+1
-lda {z2}+2
-adc {c1}+2,y
-sta {z1}+2
-lda {z2}+3
-adc {c1}+3,y
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_plus_pduz3_derefidx_vbuz4
-ldy {z4}
-lda {z2}
-clc
-adc ({z3}),y
-sta {z1}
-iny
-lda {z2}+1
-adc ({z3}),y
-sta {z1}+1
-iny
-lda {z2}+2
-adc ({z3}),y
-sta {z1}+2
-iny
-lda {z2}+3
-adc ({z3}),y
-sta {z1}+3
-//FRAGMENT vduz1=_bnot_vduz2
-lda {z2}
-eor #$ff
-sta {z1}
-lda {z2}+1
-eor #$ff
-sta {z1}+1
-lda {z2}+2
-eor #$ff
-sta {z1}+2
-lda {z2}+3
-eor #$ff
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_bor_vduz3
-lda {z2}
-ora {z3}
-sta {z1}
-lda {z2}+1
-ora {z3}+1
-sta {z1}+1
-lda {z2}+2
-ora {z3}+2
-sta {z1}+2
-lda {z2}+3
-ora {z3}+3
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_bxor_vduz3
-lda {z2}
-eor {z3}
-sta {z1}
-lda {z2}+1
-eor {z3}+1
-sta {z1}+1
-lda {z2}+2
-eor {z3}+2
-sta {z1}+2
-lda {z2}+3
-eor {z3}+3
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_band_vduz3
-lda {z2}
-and {z3}
-sta {z1}
-lda {z2}+1
-and {z3}+1
-sta {z1}+1
-lda {z2}+2
-and {z3}+2
-sta {z1}+2
-lda {z2}+3
-and {z3}+3
-sta {z1}+3
-//FRAGMENT vwuz1=vwuz2_band_vbuc1
-lda #{c1}
-and {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_minus_vwuz2
-sec
-lda #<{c1}
-sbc {z2}
-sta {z1}
-lda #>{c1}
-sbc {z2}+1
-sta {z1}+1
-//FRAGMENT vduz1=pduz2_derefidx_vbuxx
-txa
-tay
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-iny
-lda ({z2}),y
-sta {z1}+2
-iny
-lda ({z2}),y
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_plus_pduc1_derefidx_vbuxx
-lda {z2}
-clc
-adc {c1},x
-sta {z1}
-lda {z2}+1
-adc {c1}+1,x
-sta {z1}+1
-lda {z2}+2
-adc {c1}+2,x
-sta {z1}+2
-lda {z2}+3
-adc {c1}+3,x
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_plus_pduz3_derefidx_vbuxx
-txa
-tay
-lda {z2}
-clc
-adc ({z3}),y
-sta {z1}
-iny
-lda {z2}+1
-adc ({z3}),y
-sta {z1}+1
-iny
-lda {z2}+2
-adc ({z3}),y
-sta {z1}+2
-iny
-lda {z2}+3
-adc ({z3}),y
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_bxor_vduz1
-lda {z1}
-eor {z2}
-sta {z1}
-lda {z1}+1
-eor {z2}+1
-sta {z1}+1
-lda {z1}+2
-eor {z2}+2
-sta {z1}+2
-lda {z1}+3
-eor {z2}+3
-sta {z1}+3
-//FRAGMENT vduz1=vduz1_bxor_vduz2
-lda {z1}
-eor {z2}
-sta {z1}
-lda {z1}+1
-eor {z2}+1
-sta {z1}+1
-lda {z1}+2
-eor {z2}+2
-sta {z1}+2
-lda {z1}+3
-eor {z2}+3
-sta {z1}+3
-//FRAGMENT vduz1=vduz1_bor_vduz2
-lda {z2}
-ora {z1}
-sta {z1}
-lda {z2}+1
-ora {z1}+1
-sta {z1}+1
-lda {z2}+2
-ora {z1}+2
-sta {z1}+2
-lda {z2}+3
-ora {z1}+3
-sta {z1}+3
-//FRAGMENT vbuz1=vbuz1_rol_2
-lda {z1}
-asl
-asl
-sta {z1}
-//FRAGMENT vwuz1=vwuz1_band_vbuc1
-lda #{c1}
-and {z1}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz1_rol_6
-lda {z1}+1
-lsr
-sta $ff
-lda {z1}
-ror
-sta {z1}+1
-lda #0
-ror
-sta {z1}
-lsr $ff
-ror {z1}+1
-ror {z1}
-//FRAGMENT vduz1=vduz1_plus_pduz2_derefidx_vbuz3
-ldy {z3}
-lda {z1}
-clc
-adc ({z2}),y
-sta {z1}
-iny
-lda {z1}+1
-adc ({z2}),y
-sta {z1}+1
-iny
-lda {z1}+2
-adc ({z2}),y
-sta {z1}+2
-iny
-lda {z1}+3
-adc ({z2}),y
-sta {z1}+3
-//FRAGMENT vduz1=vduz1_band_vduz2
-lda {z1}
-and {z2}
-sta {z1}
-lda {z1}+1
-and {z2}+1
-sta {z1}+1
-lda {z1}+2
-and {z2}+2
-sta {z1}+2
-lda {z1}+3
-and {z2}+3
-sta {z1}+3
-//FRAGMENT pbuz1=pbuc1_minus_vwuz1
-lda #<{c1}
-sec
-sbc {z1}
-sta {z1}
-lda #>{c1}
-sbc {z1}+1
-sta {z1}+1
-//FRAGMENT vduz1=vduz1_plus_pduc1_derefidx_vbuz2
-ldy {z2}
-clc
-lda {z1}
-adc {c1},y
-sta {z1}
-lda {z1}+1
-adc {c1}+1,y
-sta {z1}+1
-lda {z1}+2
-adc {c1}+2,y
-sta {z1}+2
-lda {z1}+3
-adc {c1}+3,y
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_bor_vduz1
-lda {z2}
-ora {z1}
-sta {z1}
-lda {z2}+1
-ora {z1}+1
-sta {z1}+1
-lda {z2}+2
-ora {z1}+2
-sta {z1}+2
-lda {z2}+3
-ora {z1}+3
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_plus_vduz1
-clc
-lda {z1}
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-lda {z1}+2
-adc {z2}+2
-sta {z1}+2
-lda {z1}+3
-adc {z2}+3
-sta {z1}+3
-//FRAGMENT vbsaa=pbsc1_derefidx_vbuxx
-lda {c1},x
-//FRAGMENT vbsaa=pbsc1_derefidx_vbuyy
-lda {c1},y
-//FRAGMENT vdsz1=vdsz2_rol_4
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-//FRAGMENT vwuz1=vbuc1_plus_vwuz2
-lda #{c1}
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vbuc1_plus__word1_vdsz2
-NO_SYNTHESIS
-//FRAGMENT vwuz1=vwuc1_plus__word1_vdsz2
-lda #<{c1}
-clc
-adc {z2}+2
-sta {z1}
-lda #>{c1}
-adc {z2}+3
-sta {z1}+1
-//FRAGMENT vwuz1=vbsc1_plus__word1_vdsz2
-NO_SYNTHESIS
-//FRAGMENT vwuz1=vwuz2_minus_vwuz1
-lda {z2}
-sec
-sbc {z1}
-sta {z1}
-lda {z2}+1
-sbc {z1}+1
-sta {z1}+1
-//FRAGMENT vdsz1=vdsz1_rol_4
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-//FRAGMENT vwsz1=vwsz2_ror_2
-lda {z2}+1
-cmp #$80
-ror
-sta {z1}+1
-lda {z2}
-ror
-sta {z1}
-lda {z1}+1
-cmp #$80
-ror {z1}+1
-ror {z1}
-//FRAGMENT vwsz1=vbsc1_plus_vwsz2
-lda {z2}
-clc
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz1_plus_vbuz2
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc #0
-sta {z1}+1
-//FRAGMENT vwsz1=vwsc1_plus_vwsz1
-clc
-lda {z1}
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwsz1=vbsc1_plus_vwsz1
-lda {z1}
-clc
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT _deref_pbuz1_eq__deref_pbuz2_then_la1
-ldy #0
-lda ({z1}),y
-ldy #0
-cmp ({z2}),y
-beq {la1}
-//FRAGMENT vbsz1_le_0_then_la1
-lda {z1}
-cmp #1
-bmi {la1}
-//FRAGMENT vwsz1=vwsz1_minus_vbsz2
-lda {z2}
-sta $fe
-ora #$7f
-bmi !+
-lda #0
-!:
-sta $ff
-lda {z1}
-sec
-sbc $fe
-sta {z1}
-lda {z1}+1
-sbc $ff
-sta {z1}+1
-//FRAGMENT _deref_pbsc1_ge_0_then_la1
-lda {c1}
-cmp #0
-bpl {la1}
-//FRAGMENT vbuz1=vbuz2_minus__deref_pbuc1
-lda {z2}
-sec
-sbc {c1}
-sta {z1}
-//FRAGMENT vbsaa_le_0_then_la1
-cmp #1
-bmi {la1}
-//FRAGMENT vbsaa_neq_vbsz1_then_la1
-cmp {z1}
-bne {la1}
-//FRAGMENT vwsz1=vwsz1_minus_vbsxx
-txa
-sta $fe
-ora #$7f
-bmi !+
-lda #0
-!:
-sta $ff
-lda {z1}
-sec
-sbc $fe
-sta {z1}
-lda {z1}+1
-sbc $ff
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz1_minus_vbsyy
-tya
-sta $fe
-ora #$7f
-bmi !+
-lda #0
-!:
-sta $ff
-lda {z1}
-sec
-sbc $fe
-sta {z1}
-lda {z1}+1
-sbc $ff
-sta {z1}+1
-//FRAGMENT vbuaa=vbuz1_minus__deref_pbuc1
-lda {z1}
-sec
-sbc {c1}
-//FRAGMENT vbuxx=vbuz1_minus__deref_pbuc1
-lda {z1}
-sec
-sbc {c1}
-tax
-//FRAGMENT vbuyy=vbuz1_minus__deref_pbuc1
-lda {z1}
-sec
-sbc {c1}
-tay
-//FRAGMENT vbuz1=vbuaa_minus__deref_pbuc1
-sec
-sbc {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_minus__deref_pbuc1
-sec
-sbc {c1}
-//FRAGMENT vbuxx=vbuaa_minus__deref_pbuc1
-sec
-sbc {c1}
-tax
-//FRAGMENT vbuyy=vbuaa_minus__deref_pbuc1
-sec
-sbc {c1}
-tay
-//FRAGMENT vbuz1=vbuxx_minus__deref_pbuc1
-txa
-sec
-sbc {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_minus__deref_pbuc1
-txa
-sec
-sbc {c1}
-//FRAGMENT vbuxx=vbuxx_minus__deref_pbuc1
-txa
-sec
-sbc {c1}
-tax
-//FRAGMENT vbuyy=vbuxx_minus__deref_pbuc1
-txa
-sec
-sbc {c1}
-tay
-//FRAGMENT vbuz1=vbuyy_minus__deref_pbuc1
-tya
-sec
-sbc {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_minus__deref_pbuc1
-tya
-sec
-sbc {c1}
-//FRAGMENT vbuxx=vbuyy_minus__deref_pbuc1
-tya
-sec
-sbc {c1}
-tax
-//FRAGMENT vbuyy=vbuyy_minus__deref_pbuc1
-tya
-sec
-sbc {c1}
-tay
-//FRAGMENT vbsxx_le_0_then_la1
-cpx #1
-bmi {la1}
-//FRAGMENT vbsyy_neq_vbsz1_then_la1
-cpy {z1}
-bne {la1}
-//FRAGMENT vbsyy=_dec_vbsyy
-dey
-//FRAGMENT vbsyy_neq_vbsxx_then_la1
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbsyy_le_0_then_la1
-cpy #1
-bmi {la1}
-//FRAGMENT vbsz1_neq_vbsyy_then_la1
-cpy {z1}
-bne {la1}
-//FRAGMENT vbsxx_neq_vbsyy_then_la1
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vbuz1=pbuz2_derefidx_(pbuz3_derefidx_vbuz4)_plus_pbuz5_derefidx_(pbuz6_derefidx_vbuz4)
-ldy {z4}
-lda ({z6}),y
-sta $ff
-lda ({z3}),y
-tay
-lda ({z2}),y
-ldy $ff
-clc
-adc ({z5}),y
-sta {z1}
-//FRAGMENT vbuz1=vbuz1_bor_pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-ora {z1}
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuaa
-tay
-txa
-ora {c1},y
-tax
-//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuaa
-tax
-tya
-ora {c1},x
-tay
-//FRAGMENT vbuaa=pbuz1_derefidx_(pbuz2_derefidx_vbuz3)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuz3)
-ldy {z3}
-lda ({z5}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z4}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_(pbuz2_derefidx_vbuz3)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuz3)
-ldy {z3}
-lda ({z5}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z4}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_(pbuz2_derefidx_vbuz3)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuz3)
-ldy {z3}
-lda ({z5}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z4}),y
-tay
-//FRAGMENT vbuz1=pbuz2_derefidx_(pbuz3_derefidx_vbuaa)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuaa)
-tay
-lda ({z5}),y
-sta $ff
-lda ({z3}),y
-tay
-lda ({z2}),y
-ldy $ff
-clc
-adc ({z4}),y
-sta {z1}
-//FRAGMENT vbuaa=pbuz1_derefidx_(pbuz2_derefidx_vbuaa)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuaa)
-tay
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_(pbuz2_derefidx_vbuaa)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuaa)
-tay
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_(pbuz2_derefidx_vbuaa)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuaa)
-tay
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-tay
-//FRAGMENT vbuz1=pbuz2_derefidx_(pbuz3_derefidx_vbuxx)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuxx)
-txa
-tay
-lda ({z5}),y
-sta $ff
-lda ({z3}),y
-tay
-lda ({z2}),y
-ldy $ff
-clc
-adc ({z4}),y
-sta {z1}
-//FRAGMENT vbuaa=pbuz1_derefidx_(pbuz2_derefidx_vbuxx)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuxx)
-txa
-tay
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_(pbuz2_derefidx_vbuxx)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuxx)
-txa
-tay
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_(pbuz2_derefidx_vbuxx)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuxx)
-txa
-tay
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-tay
-//FRAGMENT vbuz1=pbuz2_derefidx_(pbuz3_derefidx_vbuyy)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuyy)
-lda ({z5}),y
-sta $ff
-lda ({z3}),y
-tay
-lda ({z2}),y
-ldy $ff
-clc
-adc ({z4}),y
-sta {z1}
-//FRAGMENT vbuaa=pbuz1_derefidx_(pbuz2_derefidx_vbuyy)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuyy)
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_(pbuz2_derefidx_vbuyy)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuyy)
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_(pbuz2_derefidx_vbuyy)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuyy)
-lda ({z4}),y
-sta $ff
-lda ({z2}),y
-tay
-lda ({z1}),y
-ldy $ff
-clc
-adc ({z3}),y
-tay
-//FRAGMENT vwsz1=_deref_pwsz2_minus__deref_pwsz3
-ldy #0
-lda ({z2}),y
-sec
-sbc ({z3}),y
-sta {z1}
-iny
-lda ({z2}),y
-sbc ({z3}),y
-sta {z1}+1
-//FRAGMENT vwsz1=vbsz2_plus_vwsc1
-lda {z2}
-sta $ff
-clc
-adc #<{c1}
-sta {z1}
-lda $ff
-ora #$7f
-bmi !+
-lda #0
-!:
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwsz1=vbsaa_plus_vwsc1
-sta $ff
-clc
-adc #<{c1}
-sta {z1}
-lda $ff
-ora #$7f
-bmi !+
-lda #0
-!:
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwsz1=vbsxx_plus_vwsc1
-txa
-sta $ff
-clc
-adc #<{c1}
-sta {z1}
-lda $ff
-ora #$7f
-bmi !+
-lda #0
-!:
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwsz1=vbsyy_plus_vwsc1
-tya
-sta $ff
-clc
-adc #<{c1}
-sta {z1}
-lda $ff
-ora #$7f
-bmi !+
-lda #0
-!:
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vduz1_eq_vduz2_then_la1
-lda {z1}
-cmp {z2}
-bne !+
-lda {z1}+1
-cmp {z2}+1
-bne !+
-lda {z1}+2
-cmp {z2}+2
-bne !+
-lda {z1}+3
-cmp {z2}+3
-beq {la1}
-!:
-//FRAGMENT vdsz1_eq_vdsz2_then_la1
-lda {z1}
-cmp {z2}
-bne !+
-lda {z1}+1
-cmp {z2}+1
-bne !+
-lda {z1}+2
-cmp {z2}+2
-bne !+
-lda {z1}+3
-cmp {z2}+3
-beq {la1}
-!:
-//FRAGMENT vdsz1=vdsz1_plus_vwsz2
-lda {z2}
-clc
-adc {z1}
-sta {z1}
-lda {z2}+1
-adc {z1}+1
-sta {z1}+1
-lda {z2}+1
-ora #$7f
-bmi !+
-lda #0
-!:
-sta $ff
-adc {z1}+2
-sta {z1}+2
-lda $ff
-adc {z1}+3
-sta {z1}+3
-//FRAGMENT vdsz1=vdsz1_minus_vwsz2
-lda {z2}+1
-ora #$7f
-bmi !+
-lda #0
-!:
-sta $ff
-sec
-lda {z1}
-sbc {z2}
-sta {z1}
-lda {z1}+1
-sbc {z2}+1
-sta {z1}+1
-lda {z1}+2
-sbc $ff
-sta {z1}+2
-lda {z1}+3
-sbc $ff
-sta {z1}+3
-//FRAGMENT vwsz1=_dec_vwsz1
-lda {z1}
-bne !+
-dec {z1}+1
-!:
-dec {z1}
-//FRAGMENT _deref_pwuc1=vbuz1
-lda {z1}
-sta {c1}
-lda #0
-sta {c1}+1
-//FRAGMENT _deref_pwuc1=vbuaa
-sta {c1}
-lda #0
-sta {c1}+1
-//FRAGMENT _deref_pwuc1=vbuxx
-txa
-sta {c1}
-lda #0
-sta {c1}+1
-//FRAGMENT _deref_pwuc1=vbuyy
-tya
-sta {c1}
-lda #0
-sta {c1}+1
-//FRAGMENT vwsz1=pwsc1_derefidx_vbuz2_minus_pwsc2_derefidx_vbuz2
-ldy {z2}
-sec
-lda {c1},y
-sbc {c2},y
-sta {z1}
-lda {c1}+1,y
-sbc {c2}+1,y
-sta {z1}+1
-//FRAGMENT vwsz1=_sword_pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2_rol_4
-ldy {z2}
-lda {c1},y
-asl
-sta {z1}
-lda {c1}+1,y
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT pbsc1_derefidx_vbuz1=vbsc2
-lda #{c2}
-ldy {z1}
-sta {c1},y
-//FRAGMENT vwsz1=pwsc1_derefidx_vbuaa_minus_pwsc2_derefidx_vbuaa
-tay
-sec
-lda {c1},y
-sbc {c2},y
-sta {z1}
-lda {c1}+1,y
-sbc {c2}+1,y
-sta {z1}+1
-//FRAGMENT vwsz1=pwsc1_derefidx_vbuxx_minus_pwsc2_derefidx_vbuxx
-sec
-lda {c1},x
-sbc {c2},x
-sta {z1}
-lda {c1}+1,x
-sbc {c2}+1,x
-sta {z1}+1
-//FRAGMENT vwsz1=pwsc1_derefidx_vbuyy_minus_pwsc2_derefidx_vbuyy
-sec
-lda {c1},y
-sbc {c2},y
-sta {z1}
-lda {c1}+1,y
-sbc {c2}+1,y
-sta {z1}+1
-//FRAGMENT vwsz1=_sword_pbuc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwsz1=_sword_pbuc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx_rol_4
-lda {c1},x
-asl
-sta {z1}
-lda {c1}+1,x
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy_rol_4
-lda {c1},y
-asl
-sta {z1}
-lda {c1}+1,y
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT pbsc1_derefidx_vbuxx=vbsc2
-lda #{c2}
-sta {c1},x
-//FRAGMENT pbsc1_derefidx_vbuyy=vbsc2
-lda #{c2}
-sta {c1},y
-//FRAGMENT vbuz1=vbuz2_plus__deref_pbuc1
-lda {c1}
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_plus__deref_pbuc1
-lda {c1}
-clc
-adc {z1}
-//FRAGMENT vbuxx=vbuz1_plus__deref_pbuc1
-lda {c1}
-clc
-adc {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_plus__deref_pbuc1
-lda {c1}
-clc
-adc {z1}
-tay
-//FRAGMENT vbuz1=vbuaa_plus__deref_pbuc1
-clc
-adc {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_plus__deref_pbuc1
-clc
-adc {c1}
-//FRAGMENT vbuxx=vbuaa_plus__deref_pbuc1
-clc
-adc {c1}
-tax
-//FRAGMENT vbuyy=vbuaa_plus__deref_pbuc1
-clc
-adc {c1}
-tay
-//FRAGMENT vbuz1=vbuxx_plus__deref_pbuc1
-txa
-clc
-adc {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_plus__deref_pbuc1
-txa
-clc
-adc {c1}
-//FRAGMENT vbuxx=vbuxx_plus__deref_pbuc1
-txa
-clc
-adc {c1}
-tax
-//FRAGMENT vbuyy=vbuxx_plus__deref_pbuc1
-txa
-clc
-adc {c1}
-tay
-//FRAGMENT vbuz1=vbuyy_plus__deref_pbuc1
-tya
-clc
-adc {c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_plus__deref_pbuc1
-tya
-clc
-adc {c1}
-//FRAGMENT vbuxx=vbuyy_plus__deref_pbuc1
-tya
-clc
-adc {c1}
-tax
-//FRAGMENT vbuyy=vbuyy_plus__deref_pbuc1
-tya
-clc
-adc {c1}
-tay
-//FRAGMENT vwuz1=pbuz2_minus_pbuc1
-sec
-lda {z2}
-sbc #<{c1}
-sta {z1}
-lda {z2}+1
-sbc #>{c1}
-sta {z1}+1
-//FRAGMENT vwuc1_neq_vwuz1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bne {la1}
-//FRAGMENT pvoc1_neq_pvoz1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bne {la1}
-//FRAGMENT _deref_pbuz1_neq_vbuyy_then_la1
-tya
-tax
-ldy #0
-lda ({z1}),y
-tay
-stx $ff
-cpy $ff
-bne {la1}
-//FRAGMENT vwuz1=pbuz1_minus_pbuc1
-lda {z1}
-sec
-sbc #<{c1}
-sta {z1}
-lda {z1}+1
-sbc #>{c1}
-sta {z1}+1
-//FRAGMENT vduz1=vduz2_rol_0
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_rol_5
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-lda {z2}+2
-rol
-sta {z1}+2
-lda {z2}+3
-rol
-sta {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-//FRAGMENT vduz1=vduz2_rol_6
-lda {z2}+3
-lsr
-sta $ff
-lda {z2}+2
-ror
-sta {z1}+3
-lda {z2}+1
-ror
-sta {z1}+2
-lda {z2}
-ror
-sta {z1}+1
-lda #0
-ror
-sta {z1}
-lsr $ff
-ror {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-//FRAGMENT vduz1=vduz2_rol_7
-lda {z2}+3
-lsr
-lda {z2}+2
-ror
-sta {z1}+3
-lda {z2}+1
-ror
-sta {z1}+2
-lda {z2}
-ror
-sta {z1}+1
-lda #0
-ror
-sta {z1}
-//FRAGMENT vduz1=vduz2_rol_8
-lda #0
-sta {z1}
-lda {z2}
-sta {z1}+1
-lda {z2}+1
-sta {z1}+2
-lda {z2}+2
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_rol_9
-lda #0
-sta {z1}
-lda {z2}
-asl
-sta {z1}+1
-lda {z2}+1
-rol
-sta {z1}+2
-lda {z2}+2
-rol
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_rol_vbuc1
-ldy #{c1}
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-dey
-bne !-
-!e:
-//FRAGMENT vduz1=vduz2_rol_16
-lda #0
-sta {z1}
-sta {z1}+1
-lda {z2}
-sta {z1}+2
-lda {z2}+1
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_rol_24
-lda #0
-sta {z1}
-sta {z1}+1
-sta {z1}+2
-lda {z2}
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_rol_32
-lda #0
-sta {z1}
-sta {z1}+1
-sta {z1}+2
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_ror_0
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_ror_1
-lda {z2}+3
-lsr
-sta {z1}+3
-lda {z2}+2
-ror
-sta {z1}+2
-lda {z2}+1
-ror
-sta {z1}+1
-lda {z2}
-ror
-sta {z1}
-//FRAGMENT vduz1=vduz2_ror_2
-lda {z2}+3
-lsr
-sta {z1}+3
-lda {z2}+2
-ror
-sta {z1}+2
-lda {z2}+1
-ror
-sta {z1}+1
-lda {z2}
-ror
-sta {z1}
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-//FRAGMENT vduz1=vduz2_ror_3
-lda {z2}+3
-lsr
-sta {z1}+3
-lda {z2}+2
-ror
-sta {z1}+2
-lda {z2}+1
-ror
-sta {z1}+1
-lda {z2}
-ror
-sta {z1}
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-//FRAGMENT vduz1=vduz2_ror_4
-lda {z2}+3
-lsr
-sta {z1}+3
-lda {z2}+2
-ror
-sta {z1}+2
-lda {z2}+1
-ror
-sta {z1}+1
-lda {z2}
-ror
-sta {z1}
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-//FRAGMENT vduz1=vduz2_ror_5
-lda {z2}+3
-lsr
-sta {z1}+3
-lda {z2}+2
-ror
-sta {z1}+2
-lda {z2}+1
-ror
-sta {z1}+1
-lda {z2}
-ror
-sta {z1}
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-//FRAGMENT vduz1=vduz2_ror_6
-lda {z2}
-asl
-sta $ff
-lda {z2}+1
-rol
-sta {z1}
-lda {z2}+2
-rol
-sta {z1}+1
-lda {z2}+3
-rol
-sta {z1}+2
-lda #0
-rol
-sta {z1}+3
-asl $ff
-rol {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-//FRAGMENT vduz1=vduz2_ror_7
-lda {z2}
-asl
-lda {z2}+1
-rol
-sta {z1}
-lda {z2}+2
-rol
-sta {z1}+1
-lda {z2}+3
-rol
-sta {z1}+2
-lda #0
-rol
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_ror_8
-lda #0
-sta {z1}+3
-lda {z2}+3
-sta {z1}+2
-lda {z2}+2
-sta {z1}+1
-lda {z2}+1
-sta {z1}
-//FRAGMENT vduz1=vduz2_ror_9
-lda #0
-sta {z1}+3
-lda {z2}+3
-lsr
-sta {z1}+2
-lda {z2}+2
-ror
-sta {z1}+1
-lda {z2}+1
-ror
-sta {z1}
-//FRAGMENT vduz1=vduz2_ror_vbuc1
-ldx #{c1}
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-cpx #0
-beq !e+
-!:
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-dex
-bne !-
-!e:
-//FRAGMENT vduz1=vduz2_ror_16
-lda #0
-sta {z1}+3
-sta {z1}+2
-lda {z2}+3
-sta {z1}+1
-lda {z2}+2
-sta {z1}
-//FRAGMENT vduz1=vduz2_ror_24
-lda #0
-sta {z1}+3
-sta {z1}+2
-sta {z1}+1
-lda {z2}+3
-sta {z1}
-//FRAGMENT vduz1=vduz2_ror_32
-lda #0
-sta {z1}+3
-sta {z1}+2
-sta {z1}+1
-sta {z1}
-//FRAGMENT vduz1=vduz2_rol_pbuc1_derefidx_vbuz3
-ldx {z3}
-ldy {c1},x
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-dey
-bne !-
-!e:
-//FRAGMENT vduz1=vduz2_ror_pbuc1_derefidx_vbuz3
-ldy {z3}
-ldx {c1},y
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-cpx #0
-beq !e+
-!:
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-dex
-bne !-
-!e:
-//FRAGMENT vduz1=vduz2_rol_pbuc1_derefidx_vbuaa
-tax
-ldy {c1},x
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-dey
-bne !-
-!e:
-//FRAGMENT vduz1=vduz2_rol_pbuc1_derefidx_vbuxx
-ldy {c1},x
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-dey
-bne !-
-!e:
-//FRAGMENT vduz1=vduz2_rol_pbuc1_derefidx_vbuyy
-ldx {c1},y
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-cpx #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-dex
-bne !-
-!e:
-//FRAGMENT vduz1=vduz2_ror_pbuc1_derefidx_vbuaa
-tay
-ldx {c1},y
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-cpx #0
-beq !e+
-!:
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-dex
-bne !-
-!e:
-//FRAGMENT vduz1=vduz2_ror_pbuc1_derefidx_vbuxx
-lda {c1},x
-tax
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-cpx #0
-beq !e+
-!:
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-dex
-bne !-
-!e:
-//FRAGMENT vduz1=vduz2_ror_pbuc1_derefidx_vbuyy
-ldx {c1},y
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-cpx #0
-beq !e+
-!:
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-dex
-bne !-
-!e:
-//FRAGMENT vwsz1=_sword_vbsz2
-lda {z2}
-sta {z1}
-// sign-extend the byte
-ora #$7f
-bmi !+
-lda #0
-!:
-sta {z1}+1
-//FRAGMENT vwsz1=_sword_vbsyy
-tya
-sta {z1}
-// sign-extend the byte
-ora #$7f
-bmi !+
-lda #0
-!:
-sta {z1}+1
diff --git a/src/main/fragment/cache/fragment-cache-rom6502x.asm b/src/main/fragment/cache/fragment-cache-rom6502x.asm
index 46ea4a74b..5a0a9f7d1 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 aafa246f3 aafa2666a
+//KICKC FRAGMENT CACHE 9a29ecc94 9a29eec1a
//FRAGMENT _deref_pbuc1=_inc__deref_pbuc1
inc {c1}
//FRAGMENT isr_hardware_all_entry
@@ -792,401 +792,3 @@ iny
tax
//FRAGMENT vbuyy=vbuaa
tay
-//FRAGMENT vbuz1=vbuz2_band_vbuc1
-lda #{c1}
-and {z2}
-sta {z1}
-//FRAGMENT _deref_pbuc1=_dec__deref_pbuc1
-dec {c1}
-//FRAGMENT pbuz1=pbuc1_plus_vbuz2
-lda {z2}
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pvoz1=pvoz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vbuz1=vbuz1_plus_2
-lda {z1}
-clc
-adc #2
-sta {z1}
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuc1
-ldy #{c1}
-lda ({z2}),y
-sta {z1}
-//FRAGMENT pbuz1=pbuz2_plus_vbuc1
-lda #{c1}
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1_neq_pbuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bne {la1}
-//FRAGMENT _deref_pbuz1=_deref_pbuz2
-ldy #0
-lda ({z2}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuz1=vbuaa_band_vbuc1
-and #{c1}
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_band_vbuc1
-lda #{c1}
-sax {z1}
-//FRAGMENT vbuz1=vbuyy_band_vbuc1
-tya
-and #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_band_vbuc1
-lda #{c1}
-and {z1}
-//FRAGMENT vbuaa=vbuaa_band_vbuc1
-and #{c1}
-//FRAGMENT vbuaa=vbuxx_band_vbuc1
-txa
-and #{c1}
-//FRAGMENT vbuaa=vbuyy_band_vbuc1
-tya
-and #{c1}
-//FRAGMENT vbuxx=vbuz1_band_vbuc1
-lda #{c1}
-and {z1}
-tax
-//FRAGMENT vbuxx=vbuaa_band_vbuc1
-ldx #{c1}
-axs #0
-//FRAGMENT vbuyy=vbuz1_band_vbuc1
-lda #{c1}
-and {z1}
-tay
-//FRAGMENT pbuz1=pbuc1_plus_vbuaa
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_vbuxx
-txa
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_vbuyy
-tya
-clc
-adc #<{c1}
-sta {z1}
-lda #>{c1}
-adc #0
-sta {z1}+1
-//FRAGMENT vbuxx=vbuxx_plus_2
-inx
-inx
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuc1
-ldy #{c1}
-lda ({z1}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuc1
-ldy #{c1}
-lda ({z1}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuc1
-ldy #{c1}
-lda ({z1}),y
-tay
-//FRAGMENT pbuz1=pbuz1_plus_vbuc1
-lda #{c1}
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vbuz1=_dec_vbuz1
-dec {z1}
-//FRAGMENT pbuz1=pbuz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuz1=_inc_pbuz2
-clc
-lda {z2}
-adc #1
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-//FRAGMENT _deref_pbuz1=vbuc1
-lda #{c1}
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuz1_ge_vbuz2_then_la1
-lda {z1}
-cmp {z2}
-bcs {la1}
-//FRAGMENT vbuz1=vbuz1_minus_vbuz2
-lda {z1}
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vwuz1=_word_vbuz2
-lda {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_5
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_vwuz2
-lda {z2}
-clc
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_plus_vbuz3
-lda {z3}
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz1_minus_vbuc1
-sec
-lda {z1}
-sbc #{c1}
-sta {z1}
-lda {z1}+1
-sbc #0
-sta {z1}+1
-//FRAGMENT vbuz1=_deref_pbuc1
-lda {c1}
-sta {z1}
-//FRAGMENT _deref_pbuz1=vbuz2
-lda {z2}
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuxx=vbuxx_band_vbuc1
-lda #{c1}
-axs #0
-//FRAGMENT vbuyy=vbuxx_band_vbuc1
-txa
-and #{c1}
-tay
-//FRAGMENT vbuxx=vbuyy_band_vbuc1
-ldx #{c1}
-tya
-axs #0
-//FRAGMENT vbuyy=vbuyy_band_vbuc1
-tya
-and #{c1}
-tay
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1
-ldy {z1}
-ldx {c1},y
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1
-ldx {z1}
-ldy {c1},x
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa
-tay
-ldx {c1},y
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa
-tax
-ldy {c1},x
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-//FRAGMENT 0_neq_vbuaa_then_la1
-cmp #0
-bne {la1}
-//FRAGMENT vbuaa_ge_vbuz1_then_la1
-cmp {z1}
-bcs {la1}
-//FRAGMENT vbuxx=vbuxx_minus_vbuz1
-txa
-sec
-sbc {z1}
-tax
-//FRAGMENT vbuz1=vbuz1_minus_vbuaa
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_minus_vbuaa
-sta $ff
-txa
-sec
-sbc $ff
-tax
-//FRAGMENT vbuz1=vbuz1_minus_vbuxx
-txa
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_minus_vbuxx
-lda #0
-tax
-//FRAGMENT vbuz1=vbuz1_minus_vbuyy
-tya
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_minus_vbuyy
-txa
-sty $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vwuz1=_word_vbuaa
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=_word_vbuxx
-txa
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=_word_vbuyy
-tya
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vbuaa_eq_vbuc1_then_la1
-cmp #{c1}
-beq {la1}
-//FRAGMENT vbuaa=_deref_pbuc1
-lda {c1}
-//FRAGMENT vbuxx=_deref_pbuc1
-ldx {c1}
-//FRAGMENT _deref_pbuz1=vbuaa
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=vbuxx
-txa
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=vbuyy
-tya
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuxx_ge_vbuz1_then_la1
-cpx {z1}
-bcs {la1}
-//FRAGMENT vbuxx_eq_vbuc1_then_la1
-cpx #{c1}
-beq {la1}
-//FRAGMENT vbuyy=_deref_pbuc1
-ldy {c1}
-//FRAGMENT vbuz1_ge_vbuxx_then_la1
-lda {z1}
-stx $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuz1_ge_vbuyy_then_la1
-lda {z1}
-sty $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuxx_ge_vbuyy_then_la1
-sty $ff
-cpx $ff
-bcs {la1}
-//FRAGMENT vbuaa=vbuxx
-txa
-//FRAGMENT vbuyy=vbuxx
-txa
-tay
-//FRAGMENT vbuyy_eq_vbuc1_then_la1
-cpy #{c1}
-beq {la1}
-//FRAGMENT vbuaa=vbuyy
-tya
-//FRAGMENT vbuxx=vbuyy
-tya
-tax
-//FRAGMENT vbuyy_ge_vbuz1_then_la1
-cpy {z1}
-bcs {la1}
-//FRAGMENT vwuz1=vwuz1_rol_5
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT pbuz1=pbuc1_plus_vwuz1
-lda {z1}
-clc
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
diff --git a/src/main/fragment/cache/fragment-cache-wdc65c02.asm b/src/main/fragment/cache/fragment-cache-wdc65c02.asm
index 8fbace376..bea3ca092 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 aafa246f3 aafa2666a
+//KICKC FRAGMENT CACHE 9a29ecc94 9a29eec1a
//FRAGMENT vbuz1=_deref_pbuc1
lda {c1}
sta {z1}
@@ -244,4219 +244,3 @@ inc
//FRAGMENT vbuyy_neq_vbuc1_then_la1
cpy #{c1}
bne {la1}
-//FRAGMENT vwuz1=vwuc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
-//FRAGMENT vbuz1_lt_vbuz2_then_la1
-lda {z1}
-cmp {z2}
-bcc {la1}
-//FRAGMENT vbuz1=vbuz2_minus_1
-ldx {z2}
-dex
-stx {z1}
-//FRAGMENT pvoz1=pvoc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
-//FRAGMENT vduz1=vduc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
-lda #<{c1}>>$10
-sta {z1}+2
-lda #>{c1}>>$10
-sta {z1}+3
-//FRAGMENT vwuz1=vbuc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
-//FRAGMENT vduz1=vbuc1
-lda #{c1}
-sta {z1}
-lda #0
-sta {z1}+1
-sta {z1}+2
-sta {z1}+3
-//FRAGMENT pbuc1_derefidx_vbuz1=pbuc1_derefidx_vbuz1_plus_1
-ldy {z1}
-lda {c1},y
-inc
-sta {c1},y
-//FRAGMENT pvoz1=pvoz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz1_plus_vwuc1
-lda {z1}
-clc
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vbuz1=vbuz1_plus_2
-lda {z1}
-clc
-adc #2
-sta {z1}
-//FRAGMENT vwuz1=_inc_vwuz2
-clc
-lda {z2}
-adc #1
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_band_vbuc1
-lda #{c1}
-and {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor__deref_pbuc2
-lda {c1}
-ora {c2}
-sta {c1}
-//FRAGMENT 0_eq_vbuz1_then_la1
-lda {z1}
-beq {la1}
-//FRAGMENT vbuz1=_bnot__deref_pbuc1
-lda {c1}
-eor #$ff
-sta {z1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuz1
-lda {c1}
-and {z1}
-sta {c1}
-//FRAGMENT vduz1=vwuc1
-NO_SYNTHESIS
-//FRAGMENT vbuz1=_deref_pbuc1_ror_7
-lda {c1}
-rol
-rol
-and #$01
-sta {z1}
-//FRAGMENT vbuz1=vbuc1_rol_vbuz2
-lda #{c1}
-ldy {z2}
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_rol_1
-lda {z2}
-asl
-sta {z1}
-//FRAGMENT pbuz1=qbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT vbuz1=_deref_pbuz2_band_vbuc1
-lda #{c1}
-ldy #0
-and ({z2}),y
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_ror_4
-lda {z2}
-lsr
-lsr
-lsr
-lsr
-sta {z1}
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT vbuz1=vbuz2_ror_6
-lda {z2}
-rol
-rol
-rol
-and #$03
-sta {z1}
-//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2
-lda #{c2}
-ldy {z1}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuz1=vbuz2
-lda {z2}
-ldy {z1}
-sta {c1},y
-//FRAGMENT _deref_pbuz1=vbuz2
-lda {z2}
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuz1_le_vbuz2_then_la1
-lda {z2}
-cmp {z1}
-bcs {la1}
-//FRAGMENT 0_lt_vbuz1_then_la1
-lda {z1}
-bne {la1}
-//FRAGMENT vwuz1=_word_vbuz2
-lda {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_vbuz3
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-ldy {z3}
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT pwuc1_derefidx_vbuz1=vwuz2
-ldy {z1}
-lda {z2}
-sta {c1},y
-lda {z2}+1
-sta {c1}+1,y
-//FRAGMENT vbuz1=_byte0_pvoz2
-lda {z2}
-sta {z1}
-//FRAGMENT vbuz1=_byte1_pvoz2
-lda {z2}+1
-sta {z1}
-//FRAGMENT vbuz1=vbuc1_bor_vbuz2
-lda #{c1}
-ora {z2}
-sta {z1}
-//FRAGMENT vwuz1_lt_vwuz2_then_la1
-lda {z1}+1
-cmp {z2}+1
-bcc {la1}
-bne !+
-lda {z1}
-cmp {z2}
-bcc {la1}
-!:
-//FRAGMENT _deref_pbuc1=_deref_pbuc2
-lda {c2}
-sta {c1}
-//FRAGMENT vwuz1=_inc_vwuz1
-inc {z1}
-bne !+
-inc {z1}+1
-!:
-//FRAGMENT vbuz1_eq_vbuc1_then_la1
-lda #{c1}
-cmp {z1}
-beq {la1}
-//FRAGMENT vwuz1_eq_vbuc1_then_la1
-lda {z1}+1
-bne !+
-lda {z1}
-cmp #{c1}
-beq {la1}
-!:
-//FRAGMENT vwuz1_neq_vwuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bne {la1}
-//FRAGMENT vbuz1=vbuz1_bor_vbuc1
-lda #{c1}
-ora {z1}
-sta {z1}
-//FRAGMENT pwuc1_derefidx_vbuz1=vwuc2
-ldy {z1}
-lda #<{c2}
-sta {c1},y
-lda #>{c2}
-sta {c1}+1,y
-//FRAGMENT vwuz1=_word0_vduz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vbuz1=_byte2_vduz2
-lda {z2}+2
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_rol_2
-lda {z2}
-asl
-asl
-sta {z1}
-//FRAGMENT pduc1_derefidx_vbuz1=vduz2
-ldy {z1}
-lda {z2}
-sta {c1},y
-lda {z2}+1
-sta {c1}+1,y
-lda {z2}+2
-sta {c1}+2,y
-lda {z2}+3
-sta {c1}+3,y
-//FRAGMENT vduz1=vduz2_ror_1
-lda {z2}+3
-lsr
-sta {z1}+3
-lda {z2}+2
-ror
-sta {z1}+2
-lda {z2}+1
-ror
-sta {z1}+1
-lda {z2}
-ror
-sta {z1}
-//FRAGMENT vbuz1=_byte1_vduz2
-lda {z2}+1
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_band_vbuc1
-lda #{c1}
-and {z2}
-sta {z1}
-//FRAGMENT pwuc1_derefidx_vbuz1=vbuc2
-lda #{c2}
-ldy {z1}
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pbuz1=pbuz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vbuz1=vbuz2_rol_4
-lda {z2}
-asl
-asl
-asl
-asl
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_bor_vbuz3
-lda {z2}
-ora {z3}
-sta {z1}
-//FRAGMENT vbuz1_lt_vwuz2_then_la1
-lda {z2}+1
-bne {la1}
-lda {z1}
-cmp {z2}
-bcc {la1}
-//FRAGMENT vbuz1=_byte0_pbuz2
-lda {z2}
-sta {z1}
-//FRAGMENT vbuz1=_byte1_pbuz2
-lda {z2}+1
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_bor_vbuc1
-lda #{c1}
-ora {z2}
-sta {z1}
-//FRAGMENT pbuz1=pbuz1_plus_vwuz2
-clc
-lda {z1}
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT _deref_pbuc1=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-sta {c1}
-//FRAGMENT vduz1=_deref_pduc1
-lda {c1}
-sta {z1}
-lda {c1}+1
-sta {z1}+1
-lda {c1}+2
-sta {z1}+2
-lda {c1}+3
-sta {z1}+3
-//FRAGMENT vwuz1=vwuc1_rol_vbuz2
-ldy {z2}
-lda #<{c1}
-sta {z1}
-lda #>{c1}+1
-sta {z1}+1
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vbuz1=_byte0_vwuz2
-lda {z2}
-sta {z1}
-//FRAGMENT vbuz1=_byte1_vwuz2
-lda {z2}+1
-sta {z1}
-//FRAGMENT vduz1=vduz2_plus_vwuz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_plus_vbuz3
-lda {z3}
-clc
-adc {z2}
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vbuz1=_byte0_vduz2
-lda {z2}
-sta {z1}
-//FRAGMENT vduz1=vduz1_plus_vwuz2
-lda {z1}
-clc
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-lda {z1}+2
-adc #0
-sta {z1}+2
-lda {z1}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vbuz1=_deref_pbuz2
-ldy #0
-lda ({z2}),y
-sta {z1}
-//FRAGMENT 0_neq_vbuz1_then_la1
-lda {z1}
-bne {la1}
-//FRAGMENT pbuz1=_deref_qbuc1
-lda {c1}
-sta {z1}
-lda {c1}+1
-sta {z1}+1
-//FRAGMENT _deref_pbuz1=_deref_pbuz1_band_vbuc1
-lda #{c1}
-ldy #0
-and ({z1}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-//FRAGMENT pbuz1=pbuz2_plus_pwuc1_derefidx_vbuz3
-ldy {z3}
-clc
-lda {z2}
-adc {c1},y
-sta {z1}
-lda {z2}+1
-adc {c1}+1,y
-sta {z1}+1
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_rol_1
-ldy {z2}
-lda {c1},y
-asl
-sta {z1}
-//FRAGMENT pbuz1=pbuz2_plus_vbuz3
-lda {z3}
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1
-ldx {z1}
-inc {c1},x
-//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1_neq_vwuz2_then_la1
-lda {z1}+1
-cmp {z2}+1
-bne {la1}
-lda {z1}
-cmp {z2}
-bne {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_neq_vbuz2_then_la1
-lda {z2}
-ldy {z1}
-cmp {c1},y
-bne {la1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_rol_4
-ldy {z2}
-lda {c1},y
-asl
-asl
-asl
-asl
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_bor_pbuc1_derefidx_vbuz3
-lda {z2}
-ldy {z3}
-ora {c1},y
-sta {z1}
-//FRAGMENT vwuz1=vwuz2_plus_vwuz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
-//FRAGMENT pbuc1_derefidx_vbuz1_lt_vbuz2_then_la1
-ldy {z1}
-lda {c1},y
-cmp {z2}
-bcc {la1}
-//FRAGMENT 0_neq_pbuc1_derefidx_vbuz1_then_la1
-ldy {z1}
-lda {c1},y
-cmp #0
-bne {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1_lt_vwuz2_then_la1
-ldy {z1}
-lda {c1},y
-ldy {z2}+1
-bne {la1}
-cmp {z2}
-bcc {la1}
-//FRAGMENT vwuz1=vbuz2_rol_vbuz3
-lda {z2}
-ldy {z3}
-sta {z1}
-lda #0
-sta {z1}+1
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT pbuz1=pbuz2_plus_vwuz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vbuz2
-lda {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1_lt_vbuz2_then_la1
-lda {z1}+1
-bne !+
-lda {z1}
-cmp {z2}
-bcc {la1}
-!:
-//FRAGMENT vbuaa_lt_vbuz1_then_la1
-cmp {z1}
-bcc {la1}
-//FRAGMENT vbuaa=vbuz1_minus_1
-lda {z1}
-sec
-sbc #1
-//FRAGMENT vbuz1=vbuaa
-sta {z1}
-//FRAGMENT pbuc1_derefidx_vbuaa=pbuc1_derefidx_vbuaa_plus_1
-tay
-lda {c1},y
-inc
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_1
-lda {c1},x
-inc
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuyy_plus_1
-lda {c1},y
-inc
-sta {c1},y
-//FRAGMENT vbuxx_neq_0_then_la1
-cpx #0
-bne {la1}
-//FRAGMENT vbuz1=vbuxx
-stx {z1}
-//FRAGMENT vbuxx=vbuxx_plus_2
-inx
-inx
-//FRAGMENT 0_eq_vbuaa_then_la1
-cmp #0
-beq {la1}
-//FRAGMENT vbuaa=_bnot__deref_pbuc1
-lda {c1}
-eor #$ff
-//FRAGMENT vbuxx=_bnot__deref_pbuc1
-lda {c1}
-eor #$ff
-tax
-//FRAGMENT vbuyy=_bnot__deref_pbuc1
-lda {c1}
-eor #$ff
-tay
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuaa
-and {c1}
-sta {c1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuxx
-txa
-and {c1}
-sta {c1}
-//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuyy
-tya
-and {c1}
-sta {c1}
-//FRAGMENT vbuaa=_deref_pbuc1_ror_7
-lda {c1}
-rol
-rol
-and #$01
-//FRAGMENT vbuxx=_deref_pbuc1_ror_7
-lda {c1}
-rol
-rol
-and #$01
-tax
-//FRAGMENT vbuyy=_deref_pbuc1_ror_7
-lda {c1}
-rol
-rol
-and #$01
-tay
-//FRAGMENT vbuz1=vbuc1_rol_vbuaa
-tay
-lda #{c1}
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuz1=vbuc1_rol_vbuxx
-lda #{c1}
-cpx #0
-beq !e+
-!:
-asl
-dex
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuz1=vbuc1_rol_vbuyy
-lda #{c1}
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuaa=vbuc1_rol_vbuz1
-lda #{c1}
-ldy {z1}
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-//FRAGMENT vbuaa=vbuc1_rol_vbuaa
-tay
-lda #{c1}
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-//FRAGMENT vbuaa=vbuc1_rol_vbuxx
-lda #{c1}
-cpx #0
-beq !e+
-!:
-asl
-dex
-bne !-
-!e:
-//FRAGMENT vbuaa=vbuc1_rol_vbuyy
-lda #{c1}
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-//FRAGMENT vbuxx=vbuc1_rol_vbuz1
-lda #{c1}
-ldx {z1}
-cpx #0
-beq !e+
-!:
-asl
-dex
-bne !-
-!e:
-tax
-//FRAGMENT vbuxx=vbuc1_rol_vbuaa
-tax
-lda #{c1}
-cpx #0
-beq !e+
-!:
-asl
-dex
-bne !-
-!e:
-tax
-//FRAGMENT vbuxx=vbuc1_rol_vbuxx
-lda #{c1}
-cpx #0
-beq !e+
-!:
-asl
-dex
-bne !-
-!e:
-tax
-//FRAGMENT vbuxx=vbuc1_rol_vbuyy
-lda #{c1}
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-tax
-//FRAGMENT vbuyy=vbuc1_rol_vbuz1
-lda #{c1}
-ldy {z1}
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-tay
-//FRAGMENT vbuyy=vbuc1_rol_vbuaa
-tay
-lda #{c1}
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-tay
-//FRAGMENT vbuyy=vbuc1_rol_vbuxx
-lda #{c1}
-cpx #0
-beq !e+
-!:
-asl
-dex
-bne !-
-!e:
-tay
-//FRAGMENT vbuyy=vbuc1_rol_vbuyy
-lda #{c1}
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-tay
-//FRAGMENT vbuaa=vbuz1_rol_1
-lda {z1}
-asl
-//FRAGMENT vbuxx=vbuz1_rol_1
-lda {z1}
-asl
-tax
-//FRAGMENT vbuyy=vbuz1_rol_1
-lda {z1}
-asl
-tay
-//FRAGMENT vbuz1=vbuaa_rol_1
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_rol_1
-asl
-//FRAGMENT vbuxx=vbuaa_rol_1
-asl
-tax
-//FRAGMENT vbuyy=vbuaa_rol_1
-asl
-tay
-//FRAGMENT vbuz1=vbuxx_rol_1
-txa
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_rol_1
-txa
-asl
-//FRAGMENT vbuxx=vbuxx_rol_1
-txa
-asl
-tax
-//FRAGMENT vbuyy=vbuxx_rol_1
-txa
-asl
-tay
-//FRAGMENT vbuz1=vbuyy_rol_1
-tya
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_rol_1
-tya
-asl
-//FRAGMENT vbuxx=vbuyy_rol_1
-tya
-asl
-tax
-//FRAGMENT vbuyy=vbuyy_rol_1
-tya
-asl
-tay
-//FRAGMENT pbuz1=qbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT pbuz1=qbuc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-lda {c1}+1,x
-sta {z1}+1
-//FRAGMENT pbuz1=qbuc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT vbuaa=_deref_pbuz1_band_vbuc1
-lda #{c1}
-ldy #0
-and ({z1}),y
-//FRAGMENT vbuxx=_deref_pbuz1_band_vbuc1
-lda #{c1}
-ldy #0
-and ({z1}),y
-tax
-//FRAGMENT vbuyy=_deref_pbuz1_band_vbuc1
-lda #{c1}
-ldy #0
-and ({z1}),y
-tay
-//FRAGMENT vbuaa=vbuz1_ror_4
-lda {z1}
-lsr
-lsr
-lsr
-lsr
-//FRAGMENT vbuxx=vbuz1_ror_4
-lda {z1}
-lsr
-lsr
-lsr
-lsr
-tax
-//FRAGMENT vbuyy=vbuz1_ror_4
-lda {z1}
-lsr
-lsr
-lsr
-lsr
-tay
-//FRAGMENT vbuz1=vbuaa_ror_4
-lsr
-lsr
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_ror_4
-lsr
-lsr
-lsr
-lsr
-//FRAGMENT vbuxx=vbuaa_ror_4
-lsr
-lsr
-lsr
-lsr
-tax
-//FRAGMENT vbuyy=vbuaa_ror_4
-lsr
-lsr
-lsr
-lsr
-tay
-//FRAGMENT vbuz1=vbuxx_ror_4
-txa
-lsr
-lsr
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_ror_4
-txa
-lsr
-lsr
-lsr
-lsr
-//FRAGMENT vbuxx=vbuxx_ror_4
-txa
-lsr
-lsr
-lsr
-lsr
-tax
-//FRAGMENT vbuyy=vbuxx_ror_4
-txa
-lsr
-lsr
-lsr
-lsr
-tay
-//FRAGMENT vbuz1=vbuyy_ror_4
-tya
-lsr
-lsr
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_ror_4
-tya
-lsr
-lsr
-lsr
-lsr
-//FRAGMENT vbuxx=vbuyy_ror_4
-tya
-lsr
-lsr
-lsr
-lsr
-tax
-//FRAGMENT vbuyy=vbuyy_ror_4
-tya
-lsr
-lsr
-lsr
-lsr
-tay
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuaa
-tay
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-lda {c1}+1,x
-sta {z1}+1
-//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-//FRAGMENT vbuaa=vbuz1_ror_6
-lda {z1}
-rol
-rol
-rol
-and #$03
-//FRAGMENT vbuxx=vbuz1_ror_6
-lda {z1}
-rol
-rol
-rol
-and #$03
-tax
-//FRAGMENT vbuyy=vbuz1_ror_6
-lda {z1}
-rol
-rol
-rol
-and #$03
-tay
-//FRAGMENT vbuz1=vbuaa_ror_6
-rol
-rol
-rol
-and #$03
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_ror_6
-rol
-rol
-rol
-and #$03
-//FRAGMENT vbuxx=vbuaa_ror_6
-rol
-rol
-rol
-and #$03
-tax
-//FRAGMENT vbuyy=vbuaa_ror_6
-rol
-rol
-rol
-and #$03
-tay
-//FRAGMENT vbuz1=vbuxx_ror_6
-txa
-rol
-rol
-rol
-and #$03
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_ror_6
-txa
-rol
-rol
-rol
-and #$03
-//FRAGMENT vbuxx=vbuxx_ror_6
-txa
-rol
-rol
-rol
-and #$03
-tax
-//FRAGMENT vbuyy=vbuxx_ror_6
-txa
-rol
-rol
-rol
-and #$03
-tay
-//FRAGMENT vbuz1=vbuyy_ror_6
-tya
-rol
-rol
-rol
-and #$03
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_ror_6
-tya
-rol
-rol
-rol
-and #$03
-//FRAGMENT vbuxx=vbuyy_ror_6
-tya
-rol
-rol
-rol
-and #$03
-tax
-//FRAGMENT vbuyy=vbuyy_ror_6
-tya
-rol
-rol
-rol
-and #$03
-tay
-//FRAGMENT pbuc1_derefidx_vbuaa=vbuc2
-tay
-lda #{c2}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=vbuc2
-lda #{c2}
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=vbuc2
-lda #{c2}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuaa=vbuz1
-tay
-lda {z1}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuxx=vbuz1
-lda {z1}
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=vbuz1
-lda {z1}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuz1=vbuaa
-ldy {z1}
-sta {c1},y
-//FRAGMENT _deref_pbuz1=vbuxx
-txa
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=vbuyy
-tya
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuaa_le_vbuz1_then_la1
-ldy {z1}
-sta $ff
-cpy $ff
-bcs {la1}
-//FRAGMENT pbuc1_derefidx_vbuz1=vbuxx
-ldy {z1}
-txa
-sta {c1},y
-//FRAGMENT vwuz1=_word_vbuxx
-txa
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT pwuc1_derefidx_vbuaa=vwuz1
-tay
-lda {z1}
-sta {c1},y
-lda {z1}+1
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuxx=vwuz1
-lda {z1}
-sta {c1},x
-lda {z1}+1
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuyy=vwuz1
-lda {z1}
-sta {c1},y
-lda {z1}+1
-sta {c1}+1,y
-//FRAGMENT vbuaa=_byte0_pvoz1
-lda {z1}
-//FRAGMENT vbuxx=_byte0_pvoz1
-ldx {z1}
-//FRAGMENT vbuaa=_byte1_pvoz1
-lda {z1}+1
-//FRAGMENT vbuxx=_byte1_pvoz1
-ldx {z1}+1
-//FRAGMENT vbuaa=vbuc1_bor_vbuz1
-lda #{c1}
-ora {z1}
-//FRAGMENT vbuxx=vbuc1_bor_vbuz1
-lda #{c1}
-ora {z1}
-tax
-//FRAGMENT vbuyy=vbuc1_bor_vbuz1
-lda #{c1}
-ora {z1}
-tay
-//FRAGMENT vbuz1=vbuc1_bor_vbuxx
-txa
-ora #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuc1_bor_vbuxx
-txa
-ora #{c1}
-//FRAGMENT vbuxx=vbuc1_bor_vbuxx
-txa
-ora #{c1}
-tax
-//FRAGMENT vbuyy=vbuc1_bor_vbuxx
-txa
-ora #{c1}
-tay
-//FRAGMENT vbuz1=vbuc1_bor_vbuyy
-tya
-ora #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuc1_bor_vbuyy
-tya
-ora #{c1}
-//FRAGMENT vbuxx=vbuc1_bor_vbuyy
-tya
-ora #{c1}
-tax
-//FRAGMENT vbuyy=vbuc1_bor_vbuyy
-tya
-ora #{c1}
-tay
-//FRAGMENT vbuaa_eq_vbuc1_then_la1
-cmp #{c1}
-beq {la1}
-//FRAGMENT vbuxx=vbuxx_bor_vbuc1
-txa
-ora #{c1}
-tax
-//FRAGMENT vbuyy=vbuyy_bor_vbuc1
-tya
-ora #{c1}
-tay
-//FRAGMENT pwuc1_derefidx_vbuaa=vwuc2
-tay
-lda #<{c2}
-sta {c1},y
-lda #>{c2}
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuxx=vwuc2
-lda #<{c2}
-sta {c1},x
-lda #>{c2}
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuyy=vwuc2
-lda #<{c2}
-sta {c1},y
-lda #>{c2}
-sta {c1}+1,y
-//FRAGMENT vbuaa=_byte2_vduz1
-lda {z1}+2
-//FRAGMENT vbuxx=_byte2_vduz1
-ldx {z1}+2
-//FRAGMENT vbuz1=vbuxx_rol_2
-txa
-asl
-asl
-sta {z1}
-//FRAGMENT vbuxx=vbuz1_rol_2
-lda {z1}
-asl
-asl
-tax
-//FRAGMENT vbuxx=vbuxx_rol_2
-txa
-asl
-asl
-tax
-//FRAGMENT pduc1_derefidx_vbuxx=vduz1
-lda {z1}
-sta {c1},x
-lda {z1}+1
-sta {c1}+1,x
-lda {z1}+2
-sta {c1}+2,x
-lda {z1}+3
-sta {c1}+3,x
-//FRAGMENT vbuaa=_byte1_vduz1
-lda {z1}+1
-//FRAGMENT vbuxx=_byte1_vduz1
-ldx {z1}+1
-//FRAGMENT vbuz1=vbuaa_band_vbuc1
-and #{c1}
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_band_vbuc1
-txa
-and #{c1}
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_band_vbuc1
-tya
-and #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_band_vbuc1
-lda #{c1}
-and {z1}
-//FRAGMENT vbuaa=vbuaa_band_vbuc1
-and #{c1}
-//FRAGMENT vbuaa=vbuxx_band_vbuc1
-txa
-and #{c1}
-//FRAGMENT vbuaa=vbuyy_band_vbuc1
-tya
-and #{c1}
-//FRAGMENT vbuxx=vbuz1_band_vbuc1
-lda #{c1}
-and {z1}
-tax
-//FRAGMENT vbuxx=vbuaa_band_vbuc1
-and #{c1}
-tax
-//FRAGMENT vbuxx=vbuxx_band_vbuc1
-txa
-and #{c1}
-tax
-//FRAGMENT vbuxx=vbuyy_band_vbuc1
-tya
-and #{c1}
-tax
-//FRAGMENT vbuyy=vbuz1_band_vbuc1
-lda #{c1}
-and {z1}
-tay
-//FRAGMENT vbuyy=vbuaa_band_vbuc1
-and #{c1}
-tay
-//FRAGMENT vbuyy=vbuxx_band_vbuc1
-txa
-and #{c1}
-tay
-//FRAGMENT vbuyy=vbuyy_band_vbuc1
-tya
-and #{c1}
-tay
-//FRAGMENT vbuxx_eq_vbuc1_then_la1
-cpx #{c1}
-beq {la1}
-//FRAGMENT vbuaa=vbuaa_bor_vbuc1
-ora #{c1}
-//FRAGMENT pwuc1_derefidx_vbuaa=vbuc2
-tay
-lda #{c2}
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT pwuc1_derefidx_vbuxx=vbuc2
-lda #{c2}
-sta {c1},x
-lda #0
-sta {c1}+1,x
-//FRAGMENT pwuc1_derefidx_vbuyy=vbuc2
-lda #{c2}
-sta {c1},y
-lda #0
-sta {c1}+1,y
-//FRAGMENT vbuz1=vbuaa_rol_4
-asl
-asl
-asl
-asl
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_rol_4
-txa
-asl
-asl
-asl
-asl
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_rol_4
-tya
-asl
-asl
-asl
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_rol_4
-lda {z1}
-asl
-asl
-asl
-asl
-//FRAGMENT vbuaa=vbuaa_rol_4
-asl
-asl
-asl
-asl
-//FRAGMENT vbuaa=vbuxx_rol_4
-txa
-asl
-asl
-asl
-asl
-//FRAGMENT vbuaa=vbuyy_rol_4
-tya
-asl
-asl
-asl
-asl
-//FRAGMENT vbuxx=vbuz1_rol_4
-lda {z1}
-asl
-asl
-asl
-asl
-tax
-//FRAGMENT vbuxx=vbuaa_rol_4
-asl
-asl
-asl
-asl
-tax
-//FRAGMENT vbuxx=vbuxx_rol_4
-txa
-asl
-asl
-asl
-asl
-tax
-//FRAGMENT vbuxx=vbuyy_rol_4
-tya
-asl
-asl
-asl
-asl
-tax
-//FRAGMENT vbuyy=vbuz1_rol_4
-lda {z1}
-asl
-asl
-asl
-asl
-tay
-//FRAGMENT vbuyy=vbuaa_rol_4
-asl
-asl
-asl
-asl
-tay
-//FRAGMENT vbuyy=vbuxx_rol_4
-txa
-asl
-asl
-asl
-asl
-tay
-//FRAGMENT vbuyy=vbuyy_rol_4
-tya
-asl
-asl
-asl
-asl
-tay
-//FRAGMENT vbuaa=vbuz1_bor_vbuz2
-lda {z1}
-ora {z2}
-//FRAGMENT vbuxx=vbuz1_bor_vbuz2
-lda {z1}
-ora {z2}
-tax
-//FRAGMENT vbuyy=vbuz1_bor_vbuz2
-lda {z1}
-ora {z2}
-tay
-//FRAGMENT vbuz1=vbuz2_bor_vbuaa
-ora {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_bor_vbuaa
-ora {z1}
-//FRAGMENT vbuxx=vbuz1_bor_vbuaa
-ora {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_bor_vbuaa
-ora {z1}
-tay
-//FRAGMENT vbuz1=vbuz2_bor_vbuxx
-txa
-ora {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_bor_vbuxx
-txa
-ora {z1}
-//FRAGMENT vbuxx=vbuz1_bor_vbuxx
-txa
-ora {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_bor_vbuxx
-txa
-ora {z1}
-tay
-//FRAGMENT vbuz1=vbuz2_bor_vbuyy
-tya
-ora {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_bor_vbuyy
-tya
-ora {z1}
-//FRAGMENT vbuxx=vbuz1_bor_vbuyy
-tya
-ora {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_bor_vbuyy
-tya
-ora {z1}
-tay
-//FRAGMENT vbuz1=vbuaa_bor_vbuz2
-ora {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_bor_vbuz1
-ora {z1}
-//FRAGMENT vbuxx=vbuaa_bor_vbuz1
-ora {z1}
-tax
-//FRAGMENT vbuyy=vbuaa_bor_vbuz1
-ora {z1}
-tay
-//FRAGMENT vbuz1=vbuaa_bor_vbuaa
-sta {z1}
-//FRAGMENT vbuaa_lt_vwuz1_then_la1
-ldy {z1}+1
-bne {la1}
-cmp {z1}
-bcc {la1}
-//FRAGMENT vbuaa=_byte0_pbuz1
-lda {z1}
-//FRAGMENT vbuxx=_byte0_pbuz1
-ldx {z1}
-//FRAGMENT vbuaa=_byte1_pbuz1
-lda {z1}+1
-//FRAGMENT vbuxx=_byte1_pbuz1
-ldx {z1}+1
-//FRAGMENT vbuaa=vbuz1_bor_vbuc1
-lda #{c1}
-ora {z1}
-//FRAGMENT vbuxx=vbuz1_bor_vbuc1
-lda #{c1}
-ora {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_bor_vbuc1
-lda #{c1}
-ora {z1}
-tay
-//FRAGMENT vbuz1=vbuxx_bor_vbuc1
-txa
-ora #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bor_vbuc1
-txa
-ora #{c1}
-//FRAGMENT vbuyy=vbuxx_bor_vbuc1
-txa
-ora #{c1}
-tay
-//FRAGMENT vwuz1=vwuc1_rol_vbuaa
-tay
-lda #<{c1}
-sta {z1}
-lda #>{c1}+1
-sta {z1}+1
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vwuz1=vwuc1_rol_vbuxx
-lda #<{c1}
-sta {z1}
-lda #>{c1}+1
-sta {z1}+1
-cpx #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dex
-bne !-
-!e:
-//FRAGMENT vwuz1=vwuc1_rol_vbuyy
-lda #<{c1}
-sta {z1}
-lda #>{c1}+1
-sta {z1}+1
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vbuaa=_byte0_vwuz1
-lda {z1}
-//FRAGMENT vbuxx=_byte0_vwuz1
-ldx {z1}
-//FRAGMENT vbuaa=_byte1_vwuz1
-lda {z1}+1
-//FRAGMENT vbuxx=_byte1_vwuz1
-ldx {z1}+1
-//FRAGMENT vbuz1=vbuxx_bor_vbuz2
-txa
-ora {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_bor_vbuz2
-tya
-ora {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bor_vbuz1
-txa
-ora {z1}
-//FRAGMENT vbuaa=vbuyy_bor_vbuz1
-tya
-ora {z1}
-//FRAGMENT vbuxx=vbuxx_bor_vbuz1
-txa
-ora {z1}
-tax
-//FRAGMENT vbuxx=vbuyy_bor_vbuz1
-tya
-ora {z1}
-tax
-//FRAGMENT vbuyy=vbuxx_bor_vbuz1
-txa
-ora {z1}
-tay
-//FRAGMENT vbuyy=vbuyy_bor_vbuz1
-tya
-ora {z1}
-tay
-//FRAGMENT vwuz1=_word_vbuyy
-tya
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_vbuxx
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-cpx #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dex
-bne !-
-!e:
-//FRAGMENT vwuz1=vwuz2_rol_vbuyy
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vduz1=vduz2_plus_vbuaa
-clc
-adc {z2}
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_plus_vbuxx
-txa
-clc
-adc {z2}
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_plus_vbuyy
-tya
-clc
-adc {z2}
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vbuaa=_byte0_vduz1
-lda {z1}
-//FRAGMENT vbuxx=_byte0_vduz1
-ldx {z1}
-//FRAGMENT vbuz1=vbuaa_bor_vbuc1
-ora #{c1}
-sta {z1}
-//FRAGMENT vbuxx=vbuaa_bor_vbuc1
-ora #{c1}
-tax
-//FRAGMENT vbuyy=vbuaa_bor_vbuc1
-ora #{c1}
-tay
-//FRAGMENT vbuz1=vbuyy_bor_vbuc1
-tya
-ora #{c1}
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_bor_vbuc1
-tya
-ora #{c1}
-//FRAGMENT vbuxx=vbuyy_bor_vbuc1
-tya
-ora #{c1}
-tax
-//FRAGMENT vbuaa=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-//FRAGMENT vbuxx=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-tax
-//FRAGMENT vbuyy=_deref_pbuz1
-ldy #0
-lda ({z1}),y
-tay
-//FRAGMENT 0_neq_vbuaa_then_la1
-cmp #0
-bne {la1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx
-lda {c1},x
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy
-lda {c1},y
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1
-ldy {z1}
-ldx {c1},y
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1
-ldx {z1}
-ldy {c1},x
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa
-tay
-ldx {c1},y
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa
-tax
-ldy {c1},x
-//FRAGMENT pbuz1=pbuz2_plus_pwuc1_derefidx_vbuaa
-tay
-clc
-lda {z2}
-adc {c1},y
-sta {z1}
-lda {z2}+1
-adc {c1}+1,y
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_plus_pwuc1_derefidx_vbuxx
-clc
-lda {z2}
-adc {c1},x
-sta {z1}
-lda {z2}+1
-adc {c1}+1,x
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_plus_pwuc1_derefidx_vbuyy
-clc
-lda {z2}
-adc {c1},y
-sta {z1}
-lda {z2}+1
-adc {c1}+1,y
-sta {z1}+1
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_rol_1
-ldy {z1}
-lda {c1},y
-asl
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_rol_1
-ldx {z1}
-lda {c1},x
-asl
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_rol_1
-ldy {z1}
-lda {c1},y
-asl
-tay
-//FRAGMENT pbuz1=pbuz2_plus_vbuaa
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_plus_vbuxx
-txa
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_plus_vbuyy
-tya
-clc
-adc {z2}
-sta {z1}
-lda #0
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_rol_4
-ldy {z1}
-lda {c1},y
-asl
-asl
-asl
-asl
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_rol_4
-ldx {z1}
-lda {c1},x
-asl
-asl
-asl
-asl
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_rol_4
-ldy {z1}
-lda {c1},y
-asl
-asl
-asl
-asl
-tay
-//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_rol_4
-lda {c1},x
-asl
-asl
-asl
-asl
-sta {z1}
-//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_rol_4
-lda {c1},x
-asl
-asl
-asl
-asl
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_rol_4
-lda {c1},x
-asl
-asl
-asl
-asl
-tax
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_rol_4
-lda {c1},x
-asl
-asl
-asl
-asl
-tay
-//FRAGMENT vbuaa=vbuz1_bor_pbuc1_derefidx_vbuz2
-lda {z1}
-ldy {z2}
-ora {c1},y
-//FRAGMENT vbuxx=vbuz1_bor_pbuc1_derefidx_vbuz2
-lda {z1}
-ldx {z2}
-ora {c1},x
-tax
-//FRAGMENT vbuyy=vbuz1_bor_pbuc1_derefidx_vbuz2
-lda {z1}
-ldy {z2}
-ora {c1},y
-tay
-//FRAGMENT vbuz1=vbuaa_bor_pbuc1_derefidx_vbuz2
-ldy {z2}
-ora {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_bor_pbuc1_derefidx_vbuz1
-ldy {z1}
-ora {c1},y
-//FRAGMENT vbuxx=vbuaa_bor_pbuc1_derefidx_vbuz1
-ldx {z1}
-ora {c1},x
-tax
-//FRAGMENT vbuyy=vbuaa_bor_pbuc1_derefidx_vbuz1
-ldy {z1}
-ora {c1},y
-tay
-//FRAGMENT vbuz1=vbuxx_bor_pbuc1_derefidx_vbuz2
-ldy {z2}
-txa
-ora {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bor_pbuc1_derefidx_vbuz1
-ldy {z1}
-txa
-ora {c1},y
-//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuz1
-txa
-ldx {z1}
-ora {c1},x
-tax
-//FRAGMENT vbuyy=vbuxx_bor_pbuc1_derefidx_vbuz1
-ldy {z1}
-txa
-ora {c1},y
-tay
-//FRAGMENT vbuz1=vbuyy_bor_pbuc1_derefidx_vbuz2
-tya
-ldy {z2}
-ora {c1},y
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_bor_pbuc1_derefidx_vbuz1
-tya
-ldy {z1}
-ora {c1},y
-//FRAGMENT vbuxx=vbuyy_bor_pbuc1_derefidx_vbuz1
-ldx {z1}
-tya
-ora {c1},x
-tax
-//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuz1
-tya
-ldy {z1}
-ora {c1},y
-tay
-//FRAGMENT vbuz1=vbuz2_bor_pbuc1_derefidx_vbuxx
-lda {c1},x
-ora {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_bor_pbuc1_derefidx_vbuxx
-lda {c1},x
-ora {z1}
-//FRAGMENT vbuxx=vbuz1_bor_pbuc1_derefidx_vbuxx
-lda {c1},x
-ora {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_bor_pbuc1_derefidx_vbuxx
-lda {c1},x
-ora {z1}
-tay
-//FRAGMENT vbuz1=vbuaa_bor_pbuc1_derefidx_vbuxx
-ora {c1},x
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_bor_pbuc1_derefidx_vbuxx
-ora {c1},x
-//FRAGMENT vbuxx=vbuaa_bor_pbuc1_derefidx_vbuxx
-ora {c1},x
-tax
-//FRAGMENT vbuyy=vbuaa_bor_pbuc1_derefidx_vbuxx
-ora {c1},x
-tay
-//FRAGMENT vbuz1=vbuxx_bor_pbuc1_derefidx_vbuxx
-txa
-ora {c1},x
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_bor_pbuc1_derefidx_vbuxx
-txa
-ora {c1},x
-//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuxx
-txa
-ora {c1},x
-tax
-//FRAGMENT vbuyy=vbuxx_bor_pbuc1_derefidx_vbuxx
-txa
-ora {c1},x
-tay
-//FRAGMENT vbuz1=vbuyy_bor_pbuc1_derefidx_vbuxx
-tya
-ora {c1},x
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_bor_pbuc1_derefidx_vbuxx
-tya
-ora {c1},x
-//FRAGMENT vbuxx=vbuyy_bor_pbuc1_derefidx_vbuxx
-tya
-ora {c1},x
-tax
-//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuxx
-tya
-ora {c1},x
-tay
-//FRAGMENT vbuxx=vbuz1_minus_1
-ldx {z1}
-dex
-//FRAGMENT vbuz1_le_vbuxx_then_la1
-cpx {z1}
-bcs {la1}
-//FRAGMENT vwuz1=vbuaa_rol_vbuz2
-ldy {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vwuz1=vbuxx_rol_vbuz2
-ldy {z2}
-txa
-sta {z1}
-lda #0
-sta {z1}+1
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vwuz1=vbuyy_rol_vbuz2
-tya
-ldy {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-cpy #0
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vwuz1=vbuxx
-txa
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vbuxx_lt_vbuz1_then_la1
-cpx {z1}
-bcc {la1}
-//FRAGMENT vbuxx_le_vbuz1_then_la1
-lda {z1}
-stx $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuxx_lt_vwuz1_then_la1
-lda {z1}+1
-bne {la1}
-cpx {z1}
-bcc {la1}
-//FRAGMENT vbuyy_lt_vwuz1_then_la1
-lda {z1}+1
-bne {la1}
-cpy {z1}
-bcc {la1}
-//FRAGMENT vbuyy=_byte0_pvoz1
-ldy {z1}
-//FRAGMENT vbuyy=_byte1_pvoz1
-ldy {z1}+1
-//FRAGMENT vbuyy=vbuz1
-ldy {z1}
-//FRAGMENT vbuyy=_byte0_pbuz1
-ldy {z1}
-//FRAGMENT vbuz1=vbuyy
-sty {z1}
-//FRAGMENT 0_neq_vbuxx_then_la1
-cpx #0
-bne {la1}
-//FRAGMENT 0_neq_vbuyy_then_la1
-cpy #0
-bne {la1}
-//FRAGMENT vbuz1=vbuxx_minus_1
-dex
-stx {z1}
-//FRAGMENT vbuaa=vbuxx_minus_1
-txa
-sec
-sbc #1
-//FRAGMENT vbuyy=vbuz1_minus_1
-lda {z1}
-tay
-dey
-//FRAGMENT vbuyy=vbuxx_minus_1
-txa
-tay
-dey
-//FRAGMENT vbuxx=vbuyy
-tya
-tax
-//FRAGMENT vbuyy_neq_0_then_la1
-cpy #0
-bne {la1}
-//FRAGMENT vbuyy=vbuyy_plus_2
-iny
-iny
-//FRAGMENT vbuaa=vbuxx
-txa
-//FRAGMENT vbuaa=vbuyy
-tya
-//FRAGMENT vbuxx=vbuaa
-tax
-//FRAGMENT vbuyy=vbuaa
-tay
-//FRAGMENT vbuyy=vbuxx
-txa
-tay
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx
-lda {c1},x
-tax
-//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy
-ldx {c1},y
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx
-ldy {c1},x
-//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy
-lda {c1},y
-tay
-//FRAGMENT pbuc1_derefidx_vbuxx=vbuaa
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuyy=vbuaa
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuaa=vbuxx
-tay
-txa
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuyy=vbuxx
-txa
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuz1=vbuyy
-tya
-ldy {z1}
-sta {c1},y
-//FRAGMENT pbuc1_derefidx_vbuaa=vbuyy
-tax
-tya
-sta {c1},x
-//FRAGMENT pbuc1_derefidx_vbuxx=vbuyy
-tya
-sta {c1},x
-//FRAGMENT vbuyy_lt_vbuz1_then_la1
-cpy {z1}
-bcc {la1}
-//FRAGMENT vbuyy=_byte0_vduz1
-ldy {z1}
-//FRAGMENT vbuyy=_byte1_vduz1
-ldy {z1}+1
-//FRAGMENT vbuyy=_byte2_vduz1
-ldy {z1}+2
-//FRAGMENT vbuyy=_byte1_vwuz1
-ldy {z1}+1
-//FRAGMENT vbuaa=vbuaa_bor_vbuyy
-sty $ff
-ora $ff
-//FRAGMENT vbuz1=vbuaa_bor_vbuyy
-sty $ff
-ora $ff
-sta {z1}
-//FRAGMENT vbuyy_eq_vbuc1_then_la1
-cpy #{c1}
-beq {la1}
-//FRAGMENT 0_eq_vbuxx_then_la1
-cpx #0
-beq {la1}
-//FRAGMENT 0_eq_vbuyy_then_la1
-cpy #0
-beq {la1}
-//FRAGMENT vbuz1=vbuyy_bor_vbuaa
-sty $ff
-ora $ff
-sta {z1}
-//FRAGMENT vwuz1=vwuz1_band_vbuc1
-lda #{c1}
-and {z1}
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vduz1=vduz1_ror_1
-lsr {z1}+3
-ror {z1}+2
-ror {z1}+1
-ror {z1}
-//FRAGMENT vduz1=vduz1_plus_vbuaa
-clc
-adc {z1}
-sta {z1}
-lda {z1}+1
-adc #0
-sta {z1}+1
-lda {z1}+2
-adc #0
-sta {z1}+2
-lda {z1}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vwuz1=vwuz1_rol_vbuz2
-ldy {z2}
-beq !e+
-!:
-asl {z1}
-rol {z1}+1
-dey
-bne !-
-!e:
-//FRAGMENT vbuz1=vbuz1_bor_vbuaa
-ora {z1}
-sta {z1}
-//FRAGMENT vbuz1=vbuaa_bor_vbuz1
-ora {z1}
-sta {z1}
-//FRAGMENT pbuz1=pbuz1_plus_vbuaa
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vwuz1=vwuz1_plus_vwuz2
-clc
-lda {z1}
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_plus_vwuz1
-clc
-lda {z1}
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1_le_vwuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne !+
-lda {z1}
-cmp #<{c1}
-!:
-bcc {la1}
-beq {la1}
-//FRAGMENT vbuz1=vwuz2_band_vbuc1
-lda #{c1}
-and {z2}
-sta {z1}
-//FRAGMENT _deref_pwuc1=vwuc2
-lda #<{c2}
-sta {c1}
-lda #>{c2}
-sta {c1}+1
-//FRAGMENT _deref_pduc1=vduc2
-lda #<{c2}
-sta {c1}
-lda #>{c2}
-sta {c1}+1
-lda #<{c2}>>$10
-sta {c1}+2
-lda #>{c2}>>$10
-sta {c1}+3
-//FRAGMENT vbsz1=pbsc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-//FRAGMENT vwuz1=vwuz2_ror_3
-lda {z2}+1
-lsr
-sta {z1}+1
-lda {z2}
-ror
-sta {z1}
-lsr {z1}+1
-ror {z1}
-lsr {z1}+1
-ror {z1}
-//FRAGMENT vwuz1=vwuz2_rol_1
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-//FRAGMENT pwuz1=pwuc1_plus_vwuz2
-lda {z2}
-clc
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT _deref_pwuz1=vwuz2
-ldy #0
-lda {z2}
-sta ({z1}),y
-iny
-lda {z2}+1
-sta ({z1}),y
-//FRAGMENT pbuz1=pbuc1_plus_vwuz2
-lda {z2}
-clc
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vbsz1=vbsz1_minus_1
-dec {z1}
-//FRAGMENT vbuz1=vbuz1_ror_1
-lsr {z1}
-//FRAGMENT vwuz1=vwuz2_ror_2
-lda {z2}+1
-lsr
-sta {z1}+1
-lda {z2}
-ror
-sta {z1}
-lsr {z1}+1
-ror {z1}
-//FRAGMENT vbsz1=vbsz1_minus_2
-dec {z1}
-dec {z1}
-//FRAGMENT vbuz1=vbuz1_ror_2
-lda {z1}
-lsr
-lsr
-sta {z1}
-//FRAGMENT vwuz1=vwuz2_ror_1
-lda {z2}+1
-lsr
-sta {z1}+1
-lda {z2}
-ror
-sta {z1}
-//FRAGMENT vbsz1=vbsz1_minus_vbsc1
-lda {z1}
-sec
-sbc #{c1}
-sta {z1}
-//FRAGMENT vbuz1=vbuz1_ror_4
-lda {z1}
-lsr
-lsr
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbsz1_ge_0_then_la1
-lda {z1}
-cmp #0
-bpl {la1}
-//FRAGMENT vbuz1=vbuz2_plus_vbuz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-//FRAGMENT vduz1=vduz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda {z2}+2
-sta {z1}+2
-lda {z2}+3
-sta {z1}+3
-//FRAGMENT vwuz1=vwuz2_rol_2
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-asl {z1}
-rol {z1}+1
-//FRAGMENT pduz1=pduc1_plus_vwuz2
-lda {z2}
-clc
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT _deref_pduz1=vduz2
-ldy #0
-lda {z2}
-sta ({z1}),y
-iny
-lda {z2}+1
-sta ({z1}),y
-iny
-lda {z2}+2
-sta ({z1}),y
-iny
-lda {z2}+3
-sta ({z1}),y
-//FRAGMENT vwuz1=vwuz2_minus_vwuz3
-lda {z2}
-sec
-sbc {z3}
-sta {z1}
-lda {z2}+1
-sbc {z3}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_7
-lda {z2}+1
-lsr
-lda {z2}
-ror
-sta {z1}+1
-lda #0
-ror
-sta {z1}
-//FRAGMENT vwuz1=vwuz2_bxor_vwuz3
-lda {z2}
-eor {z3}
-sta {z1}
-lda {z2}+1
-eor {z3}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_ror_9
-lda {z2}+1
-lsr
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_rol_8
-lda {z2}
-sta {z1}+1
-lda #0
-sta {z1}
-//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuz1_then_la1
-lda {c1}
-ldy {z1}
-cmp {c2},y
-bne {la1}
-//FRAGMENT vduz1=_dword_vwuz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-lda #0
-sta {z1}+2
-sta {z1}+3
-//FRAGMENT vwuz1_neq_0_then_la1
-lda {z1}
-ora {z1}+1
-bne {la1}
-//FRAGMENT vbuz1_eq_0_then_la1
-lda {z1}
-beq {la1}
-//FRAGMENT vduz1=vduz1_plus_vduz2
-clc
-lda {z1}
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-lda {z1}+2
-adc {z2}+2
-sta {z1}+2
-lda {z1}+3
-adc {z2}+3
-sta {z1}+3
-//FRAGMENT vwuz1=vwuz1_ror_1
-lsr {z1}+1
-ror {z1}
-//FRAGMENT vduz1=vduz1_rol_1
-asl {z1}
-rol {z1}+1
-rol {z1}+2
-rol {z1}+3
-//FRAGMENT vduz1_lt_vduz2_then_la1
-lda {z1}+3
-cmp {z2}+3
-bcc {la1}
-bne !+
-lda {z1}+2
-cmp {z2}+2
-bcc {la1}
-bne !+
-lda {z1}+1
-cmp {z2}+1
-bcc {la1}
-bne !+
-lda {z1}
-cmp {z2}
-bcc {la1}
-!:
-//FRAGMENT vduz1=_inc_vduz1
-inc {z1}
-bne !+
-inc {z1}+1
-bne !+
-inc {z1}+2
-bne !+
-inc {z1}+3
-!:
-//FRAGMENT vwuz1_ge_vwuz2_then_la1
-lda {z2}+1
-cmp {z1}+1
-bne !+
-lda {z2}
-cmp {z1}
-beq {la1}
-!:
-bcc {la1}
-//FRAGMENT vwuz1=vwuz1_minus_vwuz2
-lda {z1}
-sec
-sbc {z2}
-sta {z1}
-lda {z1}+1
-sbc {z2}+1
-sta {z1}+1
-//FRAGMENT vwuz1=vwuz2_plus_1
-clc
-lda {z2}
-adc #1
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-//FRAGMENT vwuz1=_dec_vwuz1
-lda {z1}
-bne !+
-dec {z1}+1
-!:
-dec {z1}
-//FRAGMENT vwuz1=vwuz1_rol_1
-asl {z1}
-rol {z1}+1
-//FRAGMENT vwuz1=vwuz1_bor_vbuc1
-lda #{c1}
-ora {z1}
-sta {z1}
-//FRAGMENT vduz1=_dword__deref_pwuz2
-ldy #0
-sty {z1}+2
-sty {z1}+3
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-//FRAGMENT vduz1=_deref_pduz2
-ldy #0
-lda ({z2}),y
-sta {z1}
-iny
-lda ({z2}),y
-sta {z1}+1
-iny
-lda ({z2}),y
-sta {z1}+2
-iny
-lda ({z2}),y
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_plus_vduz3
-lda {z2}
-clc
-adc {z3}
-sta {z1}
-lda {z2}+1
-adc {z3}+1
-sta {z1}+1
-lda {z2}+2
-adc {z3}+2
-sta {z1}+2
-lda {z2}+3
-adc {z3}+3
-sta {z1}+3
-//FRAGMENT vbuz1=vbuz1_rol_vbuz2
-lda {z1}
-ldy {z2}
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuz1=_bnot__deref_pbuz2
-ldy #0
-lda ({z2}),y
-eor #$ff
-sta {z1}
-//FRAGMENT vbuz1=_deref_pbuc1_band_vbuz2
-lda {c1}
-and {z2}
-sta {z1}
-//FRAGMENT vbuaa=vwuz1_band_vbuc1
-lda #{c1}
-and {z1}
-//FRAGMENT vbuxx=vwuz1_band_vbuc1
-lda #{c1}
-and {z1}
-tax
-//FRAGMENT vbuyy=vwuz1_band_vbuc1
-lda #{c1}
-and {z1}
-tay
-//FRAGMENT vbsaa=pbsc1_derefidx_vbuz1
-ldy {z1}
-lda {c1},y
-//FRAGMENT vbsxx=pbsc1_derefidx_vbuz1
-ldy {z1}
-ldx {c1},y
-//FRAGMENT vbsyy=pbsc1_derefidx_vbuz1
-ldx {z1}
-ldy {c1},x
-//FRAGMENT vbuxx=vbuxx_ror_2
-txa
-lsr
-lsr
-tax
-//FRAGMENT vbsxx=vbsxx_minus_vbsc1
-txa
-sec
-sbc #{c1}
-tax
-//FRAGMENT vbsxx_ge_0_then_la1
-cpx #0
-bpl {la1}
-//FRAGMENT vbuaa=vbuz1_rol_2
-lda {z1}
-asl
-asl
-//FRAGMENT vbuyy=vbuz1_rol_2
-lda {z1}
-asl
-asl
-tay
-//FRAGMENT vbuz1=vbuaa_plus_vbuz2
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuxx_plus_vbuz2
-txa
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_plus_vbuz2
-tya
-clc
-adc {z2}
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_plus_vbuz2
-lda {z1}
-clc
-adc {z2}
-//FRAGMENT vbuaa=vbuaa_plus_vbuz1
-clc
-adc {z1}
-//FRAGMENT vbuaa=vbuxx_plus_vbuz1
-txa
-clc
-adc {z1}
-//FRAGMENT vbuaa=vbuyy_plus_vbuz1
-tya
-clc
-adc {z1}
-//FRAGMENT vbuxx=vbuz1_plus_vbuz2
-lda {z1}
-clc
-adc {z2}
-tax
-//FRAGMENT vbuxx=vbuaa_plus_vbuz1
-clc
-adc {z1}
-tax
-//FRAGMENT vbuxx=vbuxx_plus_vbuz1
-txa
-clc
-adc {z1}
-tax
-//FRAGMENT vbuxx=vbuyy_plus_vbuz1
-tya
-clc
-adc {z1}
-tax
-//FRAGMENT vbuyy=vbuz1_plus_vbuz2
-lda {z1}
-clc
-adc {z2}
-tay
-//FRAGMENT vbuyy=vbuaa_plus_vbuz1
-clc
-adc {z1}
-tay
-//FRAGMENT vbuyy=vbuxx_plus_vbuz1
-txa
-clc
-adc {z1}
-tay
-//FRAGMENT vbuyy=vbuyy_plus_vbuz1
-tya
-clc
-adc {z1}
-tay
-//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuaa_then_la1
-tay
-lda {c1}
-cmp {c2},y
-bne {la1}
-//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuxx_then_la1
-lda {c2},x
-cmp {c1}
-bne {la1}
-//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuyy_then_la1
-lda {c1}
-cmp {c2},y
-bne {la1}
-//FRAGMENT vbuaa_eq_0_then_la1
-cmp #0
-beq {la1}
-//FRAGMENT vbuxx=vbuxx_rol_vbuz1
-txa
-ldx {z1}
-cpx #0
-beq !e+
-!:
-asl
-dex
-bne !-
-!e:
-tax
-//FRAGMENT vbuz1=vbuz1_rol_vbuaa
-tay
-lda {z1}
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_rol_vbuaa
-tay
-txa
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-tax
-//FRAGMENT vbuz1=vbuz1_rol_vbuxx
-lda {z1}
-cpx #0
-beq !e+
-!:
-asl
-dex
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_rol_vbuxx
-txa
-tax
-cpx #0
-beq !e+
-!:
-asl
-dex
-bne !-
-!e:
-tax
-//FRAGMENT vbuz1=vbuz1_rol_vbuyy
-lda {z1}
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_rol_vbuyy
-txa
-cpy #0
-beq !e+
-!:
-asl
-dey
-bne !-
-!e:
-tax
-//FRAGMENT vbuaa=_bnot__deref_pbuz1
-ldy #0
-lda ({z1}),y
-eor #$ff
-//FRAGMENT vbuxx=_bnot__deref_pbuz1
-ldy #0
-lda ({z1}),y
-eor #$ff
-tax
-//FRAGMENT vbuyy=_bnot__deref_pbuz1
-ldy #0
-lda ({z1}),y
-eor #$ff
-tay
-//FRAGMENT vbuz1=_deref_pbuc1_band_vbuaa
-and {c1}
-sta {z1}
-//FRAGMENT vbuz1=_deref_pbuc1_band_vbuxx
-txa
-and {c1}
-sta {z1}
-//FRAGMENT vbuz1=_deref_pbuc1_band_vbuyy
-tya
-and {c1}
-sta {z1}
-//FRAGMENT vbuaa=_deref_pbuc1_band_vbuz1
-lda {c1}
-and {z1}
-//FRAGMENT vbuaa=_deref_pbuc1_band_vbuaa
-and {c1}
-//FRAGMENT vbuaa=_deref_pbuc1_band_vbuxx
-txa
-and {c1}
-//FRAGMENT vbuaa=_deref_pbuc1_band_vbuyy
-tya
-and {c1}
-//FRAGMENT vbuxx=_deref_pbuc1_band_vbuz1
-lda {c1}
-and {z1}
-tax
-//FRAGMENT vbuxx=_deref_pbuc1_band_vbuaa
-and {c1}
-tax
-//FRAGMENT vbuxx=_deref_pbuc1_band_vbuxx
-txa
-and {c1}
-tax
-//FRAGMENT vbuxx=_deref_pbuc1_band_vbuyy
-tya
-and {c1}
-tax
-//FRAGMENT vbuyy=_deref_pbuc1_band_vbuz1
-lda {c1}
-and {z1}
-tay
-//FRAGMENT vbuyy=_deref_pbuc1_band_vbuaa
-and {c1}
-tay
-//FRAGMENT vbuyy=_deref_pbuc1_band_vbuxx
-txa
-and {c1}
-tay
-//FRAGMENT vbuyy=_deref_pbuc1_band_vbuyy
-tya
-and {c1}
-tay
-//FRAGMENT vbuz1=vbuaa_bor_vbuxx
-stx $ff
-ora $ff
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_bor_vbuxx
-stx $ff
-ora $ff
-//FRAGMENT vbuxx=vbuaa_bor_vbuxx
-stx $ff
-ora $ff
-tax
-//FRAGMENT vbuyy=vbuaa_bor_vbuxx
-stx $ff
-ora $ff
-tay
-//FRAGMENT vbuz1=vbuxx_bor_vbuxx
-stx {z1}
-//FRAGMENT vbuxx_eq_0_then_la1
-cpx #0
-beq {la1}
-//FRAGMENT vbuyy_eq_0_then_la1
-cpy #0
-beq {la1}
-//FRAGMENT vbuxx=vbuxx_ror_1
-txa
-lsr
-tax
-//FRAGMENT vbsxx=vbsxx_minus_1
-dex
-//FRAGMENT vbsxx=vbsxx_minus_2
-dex
-dex
-//FRAGMENT vbuz1=vbuyy_bor_vbuxx
-txa
-sty $ff
-ora $ff
-sta {z1}
-//FRAGMENT vwuz1=vwuz1_bxor_vwuz2
-lda {z1}
-eor {z2}
-sta {z1}
-lda {z1}+1
-eor {z2}+1
-sta {z1}+1
-//FRAGMENT pwuz1=pwuc1_plus_vwuz1
-lda {z1}
-clc
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT pduz1=pduc1_plus_vwuz1
-lda {z1}
-clc
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT _deref_pssc1=_deref_pssc2_memcpy_vbuc3
-ldy #{c3}
-!:
-lda {c2}-1,y
-sta {c1}-1,y
-dey
-bne !-
-//FRAGMENT vduz1=vwsc1
-NO_SYNTHESIS
-//FRAGMENT _deref_pwuc1=vbuc2
-lda #<{c2}
-sta {c1}
-lda #>{c2}
-sta {c1}+1
-//FRAGMENT vbuz1=vbuz2_rol_3
-lda {z2}
-asl
-asl
-asl
-sta {z1}
-//FRAGMENT vbuz1=vbuz2_ror_5
-lda {z2}
-lsr
-lsr
-lsr
-lsr
-lsr
-sta {z1}
-//FRAGMENT vwuz1=vwuz2_band_vwuc1
-lda {z2}
-and #<{c1}
-sta {z1}
-lda {z2}+1
-and #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz2_plus_vwuc1
-lda {z2}
-clc
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1_neq_vwuc1_then_la1
-lda {z1}+1
-cmp #>{c1}
-bne {la1}
-lda {z1}
-cmp #<{c1}
-bne {la1}
-//FRAGMENT vbuz1=_byte_vwuz2
-lda {z2}
-sta {z1}
-//FRAGMENT 0_neq__deref_pbuz1_then_la1
-ldy #0
-lda ({z1}),y
-cmp #0
-bne {la1}
-//FRAGMENT vbuaa=vbuz1_rol_3
-lda {z1}
-asl
-asl
-asl
-//FRAGMENT vbuxx=vbuz1_rol_3
-lda {z1}
-asl
-asl
-asl
-tax
-//FRAGMENT vbuyy=vbuz1_rol_3
-lda {z1}
-asl
-asl
-asl
-tay
-//FRAGMENT vbuz1=vbuaa_rol_3
-asl
-asl
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_rol_3
-asl
-asl
-asl
-//FRAGMENT vbuxx=vbuaa_rol_3
-asl
-asl
-asl
-tax
-//FRAGMENT vbuyy=vbuaa_rol_3
-asl
-asl
-asl
-tay
-//FRAGMENT vbuz1=vbuxx_rol_3
-txa
-asl
-asl
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_rol_3
-txa
-asl
-asl
-asl
-//FRAGMENT vbuxx=vbuxx_rol_3
-txa
-asl
-asl
-asl
-tax
-//FRAGMENT vbuyy=vbuxx_rol_3
-txa
-asl
-asl
-asl
-tay
-//FRAGMENT vbuz1=vbuyy_rol_3
-tya
-asl
-asl
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_rol_3
-tya
-asl
-asl
-asl
-//FRAGMENT vbuxx=vbuyy_rol_3
-tya
-asl
-asl
-asl
-tax
-//FRAGMENT vbuyy=vbuyy_rol_3
-tya
-asl
-asl
-asl
-tay
-//FRAGMENT vbuaa=vbuz1_ror_5
-lda {z1}
-lsr
-lsr
-lsr
-lsr
-lsr
-//FRAGMENT vbuxx=vbuz1_ror_5
-lda {z1}
-lsr
-lsr
-lsr
-lsr
-lsr
-tax
-//FRAGMENT vbuyy=vbuz1_ror_5
-lda {z1}
-lsr
-lsr
-lsr
-lsr
-lsr
-tay
-//FRAGMENT vbuz1=vbuaa_ror_5
-lsr
-lsr
-lsr
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_ror_5
-lsr
-lsr
-lsr
-lsr
-lsr
-//FRAGMENT vbuxx=vbuaa_ror_5
-lsr
-lsr
-lsr
-lsr
-lsr
-tax
-//FRAGMENT vbuyy=vbuaa_ror_5
-lsr
-lsr
-lsr
-lsr
-lsr
-tay
-//FRAGMENT vbuz1=vbuxx_ror_5
-txa
-lsr
-lsr
-lsr
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_ror_5
-txa
-lsr
-lsr
-lsr
-lsr
-lsr
-//FRAGMENT vbuxx=vbuxx_ror_5
-txa
-lsr
-lsr
-lsr
-lsr
-lsr
-tax
-//FRAGMENT vbuyy=vbuxx_ror_5
-txa
-lsr
-lsr
-lsr
-lsr
-lsr
-tay
-//FRAGMENT vbuz1=vbuyy_ror_5
-tya
-lsr
-lsr
-lsr
-lsr
-lsr
-sta {z1}
-//FRAGMENT vbuaa=vbuyy_ror_5
-tya
-lsr
-lsr
-lsr
-lsr
-lsr
-//FRAGMENT vbuxx=vbuyy_ror_5
-tya
-lsr
-lsr
-lsr
-lsr
-lsr
-tax
-//FRAGMENT vbuyy=vbuyy_ror_5
-tya
-lsr
-lsr
-lsr
-lsr
-lsr
-tay
-//FRAGMENT vbuz1=vbuxx_bor_vbuaa
-stx $ff
-ora $ff
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_bor_vbuaa
-stx $ff
-ora $ff
-tax
-//FRAGMENT vbuxx=vbuyy_bor_vbuaa
-sty $ff
-ora $ff
-tax
-//FRAGMENT vduz1=vduz2_plus_vduz1
-clc
-lda {z1}
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-lda {z1}+2
-adc {z2}+2
-sta {z1}+2
-lda {z1}+3
-adc {z2}+3
-sta {z1}+3
-//FRAGMENT vwuz1=vwuz1_band_vwuc1
-lda {z1}
-and #<{c1}
-sta {z1}
-lda {z1}+1
-and #>{c1}
-sta {z1}+1
-//FRAGMENT pbuz1=pbuz1_plus_vbuc1
-lda #{c1}
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vbuz1=_deref_pbuc1_band__deref_pbuc2
-lda {c1}
-and {c2}
-sta {z1}
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT pbuz1=_inc_pbuz2
-clc
-lda {z2}
-adc #1
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuz3
-ldy {z3}
-lda ({z2}),y
-sta {z1}
-//FRAGMENT vbuz1_ge_vbuz2_then_la1
-lda {z1}
-cmp {z2}
-bcs {la1}
-//FRAGMENT vbuz1=vbuz1_minus_vbuz2
-lda {z1}
-sec
-sbc {z2}
-sta {z1}
-//FRAGMENT vbuaa=_deref_pbuc1_band__deref_pbuc2
-lda {c1}
-and {c2}
-//FRAGMENT vbuxx=_deref_pbuc1_band__deref_pbuc2
-lda {c1}
-and {c2}
-tax
-//FRAGMENT vbuyy=_deref_pbuc1_band__deref_pbuc2
-lda {c1}
-and {c2}
-tay
-//FRAGMENT pbuc1_derefidx_vbuaa=vbuaa
-tax
-sta {c1},x
-//FRAGMENT vwuz1=_word_vbuaa
-sta {z1}
-lda #0
-sta {z1}+1
-//FRAGMENT vbuz1_lt_vbuaa_then_la1
-cmp {z1}
-beq !+
-bcs {la1}
-!:
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuaa
-tay
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuxx
-lda {c1},x
-ldy #0
-sta ({z1}),y
-//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuyy
-lda {c1},y
-ldy #0
-sta ({z1}),y
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuz2
-ldy {z2}
-lda ({z1}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuz2
-ldy {z2}
-lda ({z1}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuz2
-ldy {z2}
-lda ({z1}),y
-tay
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuaa
-tay
-lda ({z2}),y
-sta {z1}
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuaa
-tay
-lda ({z1}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuaa
-tay
-lda ({z1}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuaa
-tay
-lda ({z1}),y
-tay
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuxx
-txa
-tay
-lda ({z2}),y
-sta {z1}
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuxx
-txa
-tay
-lda ({z1}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuxx
-txa
-tay
-lda ({z1}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuxx
-txa
-tay
-lda ({z1}),y
-tay
-//FRAGMENT vbuz1=pbuz2_derefidx_vbuyy
-lda ({z2}),y
-sta {z1}
-//FRAGMENT vbuaa=pbuz1_derefidx_vbuyy
-lda ({z1}),y
-//FRAGMENT vbuxx=pbuz1_derefidx_vbuyy
-lda ({z1}),y
-tax
-//FRAGMENT vbuyy=pbuz1_derefidx_vbuyy
-lda ({z1}),y
-tay
-//FRAGMENT vbuxx_ge_vbuz1_then_la1
-cpx {z1}
-bcs {la1}
-//FRAGMENT vbuaa_ge_vbuz1_then_la1
-cmp {z1}
-bcs {la1}
-//FRAGMENT vbuxx=vbuxx_minus_vbuz1
-txa
-sec
-sbc {z1}
-tax
-//FRAGMENT vbuz1=vbuz1_minus_vbuaa
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_minus_vbuaa
-sta $ff
-txa
-sec
-sbc $ff
-tax
-//FRAGMENT vbuz1=vbuz1_minus_vbuxx
-txa
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_minus_vbuxx
-lda #0
-tax
-//FRAGMENT vbuz1=vbuz1_minus_vbuyy
-tya
-eor #$ff
-sec
-adc {z1}
-sta {z1}
-//FRAGMENT vbuxx=vbuxx_minus_vbuyy
-txa
-sty $ff
-sec
-sbc $ff
-tax
-//FRAGMENT vbuz1_ge_vbuxx_then_la1
-lda {z1}
-stx $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuz1_ge_vbuyy_then_la1
-lda {z1}
-sty $ff
-cmp $ff
-bcs {la1}
-//FRAGMENT vbuxx_ge_vbuyy_then_la1
-sty $ff
-cpx $ff
-bcs {la1}
-//FRAGMENT vbuz1_lt_vbuxx_then_la1
-cpx {z1}
-beq !+
-bcs {la1}
-!:
-//FRAGMENT vbuz1_lt_vbuyy_then_la1
-cpy {z1}
-beq !+
-bcs {la1}
-!:
-//FRAGMENT isr_rom_sys_cx16_entry
-
-//FRAGMENT vwuz1_neq_vbuc1_then_la1
-lda {z1}+1
-bne {la1}
-lda {z1}
-cmp #{c1}
-bne {la1}
-//FRAGMENT isr_rom_sys_cx16_exit
-jmp $e034
-//FRAGMENT _deref_pwuc1=_deref_pwuz1
-ldy #0
-lda ({z1}),y
-sta {c1}
-iny
-lda ({z1}),y
-sta {c1}+1
-//FRAGMENT vwuz1=vwuz1_plus_vbuc1
-lda #{c1}
-clc
-adc {z1}
-sta {z1}
-bcc !+
-inc {z1}+1
-!:
-//FRAGMENT vwuz1_lt_vbuc1_then_la1
-lda {z1}+1
-bne !+
-lda {z1}
-cmp #{c1}
-bcc {la1}
-!:
-//FRAGMENT vwuz1=vwuz1_minus_vbuc1
-sec
-lda {z1}
-sbc #{c1}
-sta {z1}
-lda {z1}+1
-sbc #0
-sta {z1}+1
-//FRAGMENT _deref_pwuc1=_deref_pwuc1_plus_vbuc2
-lda #{c2}
-clc
-adc {c1}
-sta {c1}
-bcc !+
-inc {c1}+1
-!:
-//FRAGMENT pbuz1_neq_pbuz2_then_la1
-lda {z1}+1
-cmp {z2}+1
-bne {la1}
-lda {z1}
-cmp {z2}
-bne {la1}
-//FRAGMENT vwsz1=vwsc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz1_plus_vwsz2
-clc
-lda {z1}
-adc {z2}
-sta {z1}
-lda {z1}+1
-adc {z2}+1
-sta {z1}+1
-//FRAGMENT vwsz1_le_vwsc1_then_la1
-lda #<{c1}
-cmp {z1}
-lda #>{c1}
-sbc {z1}+1
-bvc !+
-eor #$80
-!:
-bpl {la1}
-//FRAGMENT vwsz1=vbsc1
-lda #<{c1}
-sta {z1}
-lda #>{c1}
-sta {z1}+1
-//FRAGMENT vwsz1=vwsz2
-lda {z2}
-sta {z1}
-lda {z2}+1
-sta {z1}+1
-//FRAGMENT vwsz1=_neg_vwsz2
-sec
-lda #0
-sbc {z2}
-sta {z1}
-lda #0
-sbc {z2}+1
-sta {z1}+1
-//FRAGMENT vwsz1_ge_0_then_la1
-lda {z1}+1
-bpl {la1}
-//FRAGMENT _deref_(_deref_qbuc1)=vbuz1
-lda {z1}
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-sta ($fe),y
-//FRAGMENT vbuz1=_deref_(_deref_qbuc1)
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-lda ($fe),y
-sta {z1}
-//FRAGMENT vduz1=_dword_vbuz2
-lda {z2}
-sta {z1}
-lda #0
-sta {z1}+1
-sta {z1}+2
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_band_vbuc1
-NO_SYNTHESIS
-//FRAGMENT vduz1=vduz2_band_vwuc1
-NO_SYNTHESIS
-//FRAGMENT vduz1=vduz2_band_vwsc1
-NO_SYNTHESIS
-//FRAGMENT vduz1=vduz2_band_vduc1
-lda {z2}
-and #<{c1}
-sta {z1}
-lda {z2}+1
-and #>{c1}
-sta {z1}+1
-lda {z2}+2
-and #<{c1}>>$10
-sta {z1}+2
-lda {z2}+3
-and #>{c1}>>$10
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_rol_8
-lda #0
-sta {z1}
-lda {z2}
-sta {z1}+1
-lda {z2}+1
-sta {z1}+2
-lda {z2}+2
-sta {z1}+3
-//FRAGMENT vduz1=vduz2_rol_1
-lda {z2}
-asl
-sta {z1}
-lda {z2}+1
-rol
-sta {z1}+1
-lda {z2}+2
-rol
-sta {z1}+2
-lda {z2}+3
-rol
-sta {z1}+3
-//FRAGMENT vbuz1=vbuz2_ror_vbuz3
-lda {z2}
-ldy {z3}
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vduz1=vduz1_plus_vbuc1
-lda {z1}
-clc
-adc #{c1}
-sta {z1}
-bcc !+
-inc {z1}+1
-bne !+
-inc {z1}+2
-bne !+
-inc {z1}+3
-!:
-//FRAGMENT vduz1=vduz1_plus_1
-lda {z1}
-clc
-adc #1
-sta {z1}
-lda {z1}+1
-adc #0
-sta {z1}+1
-lda {z1}+2
-adc #0
-sta {z1}+2
-lda {z1}+3
-adc #0
-sta {z1}+3
-//FRAGMENT _deref_(_deref_qbuc1)=vbuaa
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-sta ($fe),y
-//FRAGMENT _deref_(_deref_qbuc1)=vbuxx
-txa
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-sta ($fe),y
-//FRAGMENT _deref_(_deref_qbuc1)=vbuyy
-tya
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-sta ($fe),y
-//FRAGMENT vbuaa=_deref_(_deref_qbuc1)
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-lda ($fe),y
-//FRAGMENT vbuxx=_deref_(_deref_qbuc1)
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-lda ($fe),y
-tax
-//FRAGMENT vbuyy=_deref_(_deref_qbuc1)
-ldy {c1}
-sty $fe
-ldy {c1}+1
-sty $ff
-ldy #0
-lda ($fe),y
-tay
-//FRAGMENT vduz1=_dword_vbuaa
-sta {z1}
-lda #0
-sta {z1}+1
-sta {z1}+2
-sta {z1}+3
-//FRAGMENT vduz1=_dword_vbuxx
-txa
-sta {z1}
-lda #0
-sta {z1}+1
-sta {z1}+2
-sta {z1}+3
-//FRAGMENT vduz1=_dword_vbuyy
-tya
-sta {z1}
-lda #0
-sta {z1}+1
-sta {z1}+2
-sta {z1}+3
-//FRAGMENT vbuaa=vbuz1_ror_vbuz2
-lda {z1}
-ldy {z2}
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-//FRAGMENT vbuxx=vbuz1_ror_vbuz2
-lda {z1}
-ldx {z2}
-cpx #0
-beq !e+
-!:
-lsr
-dex
-bne !-
-!e:
-tax
-//FRAGMENT vbuyy=vbuz1_ror_vbuz2
-lda {z1}
-ldy {z2}
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-tay
-//FRAGMENT vbuz1=vbuz2_ror_vbuaa
-tay
-lda {z2}
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_ror_vbuaa
-tay
-lda {z1}
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-//FRAGMENT vbuxx=vbuz1_ror_vbuaa
-tax
-lda {z1}
-cpx #0
-beq !e+
-!:
-lsr
-dex
-bne !-
-!e:
-tax
-//FRAGMENT vbuyy=vbuz1_ror_vbuaa
-tay
-lda {z1}
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-tay
-//FRAGMENT vbuz1=vbuz2_ror_vbuxx
-lda {z2}
-cpx #0
-beq !e+
-!:
-lsr
-dex
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_ror_vbuxx
-lda {z1}
-cpx #0
-beq !e+
-!:
-lsr
-dex
-bne !-
-!e:
-//FRAGMENT vbuxx=vbuz1_ror_vbuxx
-lda {z1}
-cpx #0
-beq !e+
-!:
-lsr
-dex
-bne !-
-!e:
-tax
-//FRAGMENT vbuyy=vbuz1_ror_vbuxx
-lda {z1}
-cpx #0
-beq !e+
-!:
-lsr
-dex
-bne !-
-!e:
-tay
-//FRAGMENT vbuz1=vbuz2_ror_vbuyy
-lda {z2}
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuaa=vbuz1_ror_vbuyy
-lda {z1}
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-//FRAGMENT vbuxx=vbuz1_ror_vbuyy
-lda {z1}
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-tax
-//FRAGMENT vbuyy=vbuz1_ror_vbuyy
-lda {z1}
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-tay
-//FRAGMENT vbuz1=vbuxx_ror_vbuz2
-ldy {z2}
-txa
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_ror_vbuz1
-ldy {z1}
-txa
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-//FRAGMENT vbuxx=vbuxx_ror_vbuz1
-txa
-ldx {z1}
-cpx #0
-beq !e+
-!:
-lsr
-dex
-bne !-
-!e:
-tax
-//FRAGMENT vbuyy=vbuxx_ror_vbuz1
-ldy {z1}
-txa
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-tay
-//FRAGMENT vbuz1=vbuxx_ror_vbuaa
-tay
-txa
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_ror_vbuaa
-tay
-txa
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-//FRAGMENT vbuxx=vbuxx_ror_vbuaa
-tay
-txa
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-tax
-//FRAGMENT vbuyy=vbuxx_ror_vbuaa
-tay
-txa
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-tay
-//FRAGMENT vbuz1=vbuxx_ror_vbuxx
-txa
-tay
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_ror_vbuxx
-txa
-tay
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-//FRAGMENT vbuxx=vbuxx_ror_vbuxx
-txa
-tax
-cpx #0
-beq !e+
-!:
-lsr
-dex
-bne !-
-!e:
-tax
-//FRAGMENT vbuyy=vbuxx_ror_vbuxx
-txa
-tay
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-tay
-//FRAGMENT vbuz1=vbuxx_ror_vbuyy
-txa
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-sta {z1}
-//FRAGMENT vbuaa=vbuxx_ror_vbuyy
-txa
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-//FRAGMENT vbuxx=vbuxx_ror_vbuyy
-txa
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-tax
-//FRAGMENT vbuyy=vbuxx_ror_vbuyy
-txa
-cpy #0
-beq !e+
-!:
-lsr
-dey
-bne !-
-!e:
-tay
-//FRAGMENT vbuyy=_byte0_vwuz1
-ldy {z1}
-//FRAGMENT vduz1=vduz1_band_vbuc1
-NO_SYNTHESIS
-//FRAGMENT vduz1=vduz1_band_vwuc1
-NO_SYNTHESIS
-//FRAGMENT vduz1=vduz1_band_vwsc1
-NO_SYNTHESIS
-//FRAGMENT vduz1=vduz1_band_vduc1
-lda {z1}
-and #<{c1}
-sta {z1}
-lda {z1}+1
-and #>{c1}
-sta {z1}+1
-lda {z1}+2
-and #<{c1}>>$10
-sta {z1}+2
-lda {z1}+3
-and #>{c1}>>$10
-sta {z1}+3
-//FRAGMENT vduz1=vduz1_rol_8
-lda {z1}+2
-sta {z1}+3
-lda {z1}+1
-sta {z1}+2
-lda {z1}
-sta {z1}+1
-lda #0
-sta {z1}
-//FRAGMENT 0_neq_pbuc1_derefidx_vbuaa_then_la1
-tay
-lda {c1},y
-cmp #0
-bne {la1}
-//FRAGMENT 0_neq_pbuc1_derefidx_vbuxx_then_la1
-lda {c1},x
-cmp #0
-bne {la1}
-//FRAGMENT 0_neq_pbuc1_derefidx_vbuyy_then_la1
-lda {c1},y
-cmp #0
-bne {la1}
-//FRAGMENT vbuyy=_byte1_pbuz1
-ldy {z1}+1
-//FRAGMENT vduz1_lt_vduc1_then_la1
-lda {z1}+3
-cmp #>{c1}>>$10
-bcc {la1}
-bne !+
-lda {z1}+2
-cmp #<{c1}>>$10
-bcc {la1}
-bne !+
-lda {z1}+1
-cmp #>{c1}
-bcc {la1}
-bne !+
-lda {z1}
-cmp #<{c1}
-bcc {la1}
-!:
-//FRAGMENT vduz1=vduz2_plus_vbuc1
-lda #{c1}
-clc
-adc {z2}
-sta {z1}
-lda {z2}+1
-adc #0
-sta {z1}+1
-lda {z2}+2
-adc #0
-sta {z1}+2
-lda {z2}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vwuz1=vwuz2_plus_vwuc1
-lda {z2}
-clc
-adc #<{c1}
-sta {z1}
-lda {z2}+1
-adc #>{c1}
-sta {z1}+1
-//FRAGMENT vduz1=vduz1_plus_vwuc1
-clc
-lda {z1}
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
-lda {z1}+2
-adc #0
-sta {z1}+2
-lda {z1}+3
-adc #0
-sta {z1}+3
-//FRAGMENT vbuz1=_byte_vduz2
-lda {z2}
-sta {z1}
-//FRAGMENT vduz1=pduc1_derefidx_vbuz2
-ldy {z2}
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-lda {c1}+2,y
-sta {z1}+2
-lda {c1}+3,y
-sta {z1}+3
-//FRAGMENT vduz1_ge_vduz2_then_la1
-lda {z1}+3
-cmp {z2}+3
-bcc !+
-bne {la1}
-lda {z1}+2
-cmp {z2}+2
-bcc !+
-bne {la1}
-lda {z1}+1
-cmp {z2}+1
-bcc !+
-bne {la1}
-lda {z1}
-cmp {z2}
-bcs {la1}
-!:
-//FRAGMENT vduz1=vduz1_minus_vduz2
-lda {z1}
-sec
-sbc {z2}
-sta {z1}
-lda {z1}+1
-sbc {z2}+1
-sta {z1}+1
-lda {z1}+2
-sbc {z2}+2
-sta {z1}+2
-lda {z1}+3
-sbc {z2}+3
-sta {z1}+3
-//FRAGMENT vbuaa=vbuxx_bor_vbuaa
-stx $ff
-ora $ff
-//FRAGMENT vbuyy=vbuxx_bor_vbuaa
-stx $ff
-ora $ff
-tay
-//FRAGMENT vbuaa=vbuyy_bor_vbuaa
-sty $ff
-ora $ff
-//FRAGMENT vbuyy=vbuyy_bor_vbuaa
-sty $ff
-ora $ff
-tay
-//FRAGMENT vbuaa=_byte_vduz1
-lda {z1}
-//FRAGMENT vbuxx=_byte_vduz1
-lda {z1}
-tax
-//FRAGMENT vbuyy=_byte_vduz1
-lda {z1}
-tay
-//FRAGMENT vbuz1=vbuaa_rol_2
-asl
-asl
-sta {z1}
-//FRAGMENT vbuz1=vbuyy_rol_2
-tya
-asl
-asl
-sta {z1}
-//FRAGMENT vbuaa=vbuaa_rol_2
-asl
-asl
-//FRAGMENT vbuaa=vbuxx_rol_2
-txa
-asl
-asl
-//FRAGMENT vbuaa=vbuyy_rol_2
-tya
-asl
-asl
-//FRAGMENT vbuxx=vbuaa_rol_2
-asl
-asl
-tax
-//FRAGMENT vbuxx=vbuyy_rol_2
-tya
-asl
-asl
-tax
-//FRAGMENT vbuyy=vbuaa_rol_2
-asl
-asl
-tay
-//FRAGMENT vbuyy=vbuxx_rol_2
-txa
-asl
-asl
-tay
-//FRAGMENT vbuyy=vbuyy_rol_2
-tya
-asl
-asl
-tay
-//FRAGMENT vduz1=pduc1_derefidx_vbuaa
-tay
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-lda {c1}+2,y
-sta {z1}+2
-lda {c1}+3,y
-sta {z1}+3
-//FRAGMENT vduz1=pduc1_derefidx_vbuxx
-lda {c1},x
-sta {z1}
-lda {c1}+1,x
-sta {z1}+1
-lda {c1}+2,x
-sta {z1}+2
-lda {c1}+3,x
-sta {z1}+3
-//FRAGMENT vduz1=pduc1_derefidx_vbuyy
-lda {c1},y
-sta {z1}
-lda {c1}+1,y
-sta {z1}+1
-lda {c1}+2,y
-sta {z1}+2
-lda {c1}+3,y
-sta {z1}+3
-//FRAGMENT vbuaa=_byte_vwuz1
-lda {z1}
-//FRAGMENT vbuxx=_byte_vwuz1
-ldx {z1}
-//FRAGMENT vbuyy=_byte_vwuz1
-ldy {z1}
-//FRAGMENT vbuyy_ge_vbuz1_then_la1
-cpy {z1}
-bcs {la1}
-//FRAGMENT vwuz1=vwuz1_plus_vwuc1
-lda {z1}
-clc
-adc #<{c1}
-sta {z1}
-lda {z1}+1
-adc #>{c1}
-sta {z1}+1
diff --git a/src/main/fragment/mos6502-common/pduc1_derefidx_vbum1=pduc1_derefidx_vbum1_plus_pduc2_derefidx_vbum1.asm b/src/main/fragment/mos6502-common/pduc1_derefidx_vbum1=pduc1_derefidx_vbum1_plus_pduc2_derefidx_vbum1.asm
index 01e0895d6..434a9d14c 100644
--- a/src/main/fragment/mos6502-common/pduc1_derefidx_vbum1=pduc1_derefidx_vbum1_plus_pduc2_derefidx_vbum1.asm
+++ b/src/main/fragment/mos6502-common/pduc1_derefidx_vbum1=pduc1_derefidx_vbum1_plus_pduc2_derefidx_vbum1.asm
@@ -11,4 +11,4 @@ adc {c2}+2,y
sta {c1}+2,y
lda {c1}+3,y
adc {c2}+3,y
-sta {c1}+3,y
+sta {c1}+3,y
\ No newline at end of file
diff --git a/src/main/fragment/mos6502-common/pduc1_derefidx_vbuxx=pduc1_derefidx_vbuxx_plus_pduc2_derefidx_vbuxx.asm b/src/main/fragment/mos6502-common/pduc1_derefidx_vbuxx=pduc1_derefidx_vbuxx_plus_pduc2_derefidx_vbuxx.asm
index fe298c372..c301dddd8 100644
--- a/src/main/fragment/mos6502-common/pduc1_derefidx_vbuxx=pduc1_derefidx_vbuxx_plus_pduc2_derefidx_vbuxx.asm
+++ b/src/main/fragment/mos6502-common/pduc1_derefidx_vbuxx=pduc1_derefidx_vbuxx_plus_pduc2_derefidx_vbuxx.asm
@@ -10,4 +10,4 @@ adc {c2}+2,x
sta {c1}+2,x
lda {c1}+3,x
adc {c2}+3,x
-sta {c1}+3,x
+sta {c1}+3,x
\ No newline at end of file
diff --git a/src/main/fragment/mos6502-common/pduc1_derefidx_vbuxx=pduc1_derefidx_vbuxx_plus_vdum1.asm b/src/main/fragment/mos6502-common/pduc1_derefidx_vbuxx=pduc1_derefidx_vbuxx_plus_vdum1.asm
new file mode 100644
index 000000000..8306bb812
--- /dev/null
+++ b/src/main/fragment/mos6502-common/pduc1_derefidx_vbuxx=pduc1_derefidx_vbuxx_plus_vdum1.asm
@@ -0,0 +1,13 @@
+lda {c1},x
+clc
+adc {m1}
+sta {c1},x
+lda {c1}+1,x
+adc {m1}+1
+sta {c1}+1,x
+lda {c1}+2,x
+adc {m1}+2
+sta {c1}+2,x
+lda {c1}+3,x
+adc {m1}+3
+sta {c1}+3,x
\ No newline at end of file
diff --git a/src/main/fragment/mos6502-common/vbuaa=vbuc1_band_vbum1.asm b/src/main/fragment/mos6502-common/vbuaa=vbuc1_band_vbum1.asm
new file mode 100644
index 000000000..f4ff21e6e
--- /dev/null
+++ b/src/main/fragment/mos6502-common/vbuaa=vbuc1_band_vbum1.asm
@@ -0,0 +1,2 @@
+lda {m1}
+and #{c1}
\ No newline at end of file
diff --git a/src/main/kc/lib/c64-time.c b/src/main/kc/lib/c64-time.c
index 9e4b44484..d1aad9104 100644
--- a/src/main/kc/lib/c64-time.c
+++ b/src/main/kc/lib/c64-time.c
@@ -7,7 +7,12 @@
// Returns the processor clock time used since the beginning of an implementation defined era (normally the beginning of the program).
// This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start()
clock_t clock(void) {
- return 0xffffffff - *CIA2_TIMER_AB;
+ // Stop the timer
+ CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_STOP | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES;
+ clock_t ticks = 0xffffffff - *CIA2_TIMER_AB;
+ // Start the timer
+ CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_START | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES;
+ return ticks;
}
// Reset & start the processor clock time. The value can be read using clock().
diff --git a/src/test/ref/cia-timer-cyclecount.asm b/src/test/ref/cia-timer-cyclecount.asm
index d3c275ab1..b1f7a228e 100644
--- a/src/test/ref/cia-timer-cyclecount.asm
+++ b/src/test/ref/cia-timer-cyclecount.asm
@@ -84,6 +84,10 @@ clock_start: {
// This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start()
clock: {
.label return = 9
+ // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_STOP | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES
+ // Stop the timer
+ lda #0
+ sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL
// 0xffffffff - *CIA2_TIMER_AB
lda #<$ffffffff
sec
@@ -98,6 +102,10 @@ clock: {
lda #>$ffffffff>>$10
sbc CIA2_TIMER_AB+3
sta.z return+3
+ // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_START | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES
+ // Start the timer
+ lda #CIA_TIMER_CONTROL_START
+ sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL
// }
rts
}
diff --git a/src/test/ref/cia-timer-cyclecount.cfg b/src/test/ref/cia-timer-cyclecount.cfg
index b3f515ee7..1d7172a17 100644
--- a/src/test/ref/cia-timer-cyclecount.cfg
+++ b/src/test/ref/cia-timer-cyclecount.cfg
@@ -33,67 +33,69 @@ clock_start::@return: scope:[clock_start] from clock_start
dword clock()
clock: scope:[clock] from main::@2
- [16] clock::return#0 = $ffffffff - *CIA2_TIMER_AB
+ [16] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0
+ [17] clock::return#0 = $ffffffff - *CIA2_TIMER_AB
+ [18] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START
to:clock::@return
clock::@return: scope:[clock] from clock
- [17] return
+ [19] return
to:@return
void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at)
print_ulong_at: scope:[print_ulong_at] from main::@3
- [18] print_uint_at::w#0 = word1 print_ulong_at::dw#0
- [19] call print_uint_at
+ [20] print_uint_at::w#0 = word1 print_ulong_at::dw#0
+ [21] call print_uint_at
to:print_ulong_at::@1
print_ulong_at::@1: scope:[print_ulong_at] from print_ulong_at
- [20] print_uint_at::w#1 = word0 print_ulong_at::dw#0
- [21] call print_uint_at
+ [22] print_uint_at::w#1 = word0 print_ulong_at::dw#0
+ [23] call print_uint_at
to:print_ulong_at::@return
print_ulong_at::@return: scope:[print_ulong_at] from print_ulong_at::@1
- [22] return
+ [24] return
to:@return
void print_uint_at(word print_uint_at::w , byte* print_uint_at::at)
print_uint_at: scope:[print_uint_at] from print_ulong_at print_ulong_at::@1
- [23] print_uint_at::at#2 = phi( print_ulong_at/SCREEN, print_ulong_at::@1/SCREEN+4 )
- [23] print_uint_at::w#2 = phi( print_ulong_at/print_uint_at::w#0, print_ulong_at::@1/print_uint_at::w#1 )
- [24] print_uchar_at::b#0 = byte1 print_uint_at::w#2
- [25] print_uchar_at::at#0 = print_uint_at::at#2
- [26] call print_uchar_at
+ [25] print_uint_at::at#2 = phi( print_ulong_at/SCREEN, print_ulong_at::@1/SCREEN+4 )
+ [25] print_uint_at::w#2 = phi( print_ulong_at/print_uint_at::w#0, print_ulong_at::@1/print_uint_at::w#1 )
+ [26] print_uchar_at::b#0 = byte1 print_uint_at::w#2
+ [27] print_uchar_at::at#0 = print_uint_at::at#2
+ [28] call print_uchar_at
to:print_uint_at::@1
print_uint_at::@1: scope:[print_uint_at] from print_uint_at
- [27] print_uchar_at::b#1 = byte0 print_uint_at::w#2
- [28] print_uchar_at::at#1 = print_uint_at::at#2 + 2
- [29] call print_uchar_at
+ [29] print_uchar_at::b#1 = byte0 print_uint_at::w#2
+ [30] print_uchar_at::at#1 = print_uint_at::at#2 + 2
+ [31] call print_uchar_at
to:print_uint_at::@return
print_uint_at::@return: scope:[print_uint_at] from print_uint_at::@1
- [30] return
+ [32] return
to:@return
void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at)
print_uchar_at: scope:[print_uchar_at] from print_uint_at print_uint_at::@1
- [31] print_uchar_at::at#2 = phi( print_uint_at/print_uchar_at::at#0, print_uint_at::@1/print_uchar_at::at#1 )
- [31] print_uchar_at::b#2 = phi( print_uint_at/print_uchar_at::b#0, print_uint_at::@1/print_uchar_at::b#1 )
- [32] print_uchar_at::$0 = print_uchar_at::b#2 >> 4
- [33] print_char_at::ch#0 = print_hextab[print_uchar_at::$0]
- [34] print_char_at::at#0 = print_uchar_at::at#2
- [35] call print_char_at
+ [33] print_uchar_at::at#2 = phi( print_uint_at/print_uchar_at::at#0, print_uint_at::@1/print_uchar_at::at#1 )
+ [33] print_uchar_at::b#2 = phi( print_uint_at/print_uchar_at::b#0, print_uint_at::@1/print_uchar_at::b#1 )
+ [34] print_uchar_at::$0 = print_uchar_at::b#2 >> 4
+ [35] print_char_at::ch#0 = print_hextab[print_uchar_at::$0]
+ [36] print_char_at::at#0 = print_uchar_at::at#2
+ [37] call print_char_at
to:print_uchar_at::@1
print_uchar_at::@1: scope:[print_uchar_at] from print_uchar_at
- [36] print_uchar_at::$2 = print_uchar_at::b#2 & $f
- [37] print_char_at::at#1 = print_uchar_at::at#2 + 1
- [38] print_char_at::ch#1 = print_hextab[print_uchar_at::$2]
- [39] call print_char_at
+ [38] print_uchar_at::$2 = print_uchar_at::b#2 & $f
+ [39] print_char_at::at#1 = print_uchar_at::at#2 + 1
+ [40] print_char_at::ch#1 = print_hextab[print_uchar_at::$2]
+ [41] call print_char_at
to:print_uchar_at::@return
print_uchar_at::@return: scope:[print_uchar_at] from print_uchar_at::@1
- [40] return
+ [42] return
to:@return
void print_char_at(byte print_char_at::ch , byte* print_char_at::at)
print_char_at: scope:[print_char_at] from print_uchar_at print_uchar_at::@1
- [41] print_char_at::at#2 = phi( print_uchar_at/print_char_at::at#0, print_uchar_at::@1/print_char_at::at#1 )
- [41] print_char_at::ch#2 = phi( print_uchar_at/print_char_at::ch#0, print_uchar_at::@1/print_char_at::ch#1 )
- [42] *print_char_at::at#2 = print_char_at::ch#2
+ [43] print_char_at::at#2 = phi( print_uchar_at/print_char_at::at#0, print_uchar_at::@1/print_char_at::at#1 )
+ [43] print_char_at::ch#2 = phi( print_uchar_at/print_char_at::ch#0, print_uchar_at::@1/print_char_at::ch#1 )
+ [44] *print_char_at::at#2 = print_char_at::ch#2
to:print_char_at::@return
print_char_at::@return: scope:[print_char_at] from print_char_at
- [43] return
+ [45] return
to:@return
diff --git a/src/test/ref/cia-timer-cyclecount.log b/src/test/ref/cia-timer-cyclecount.log
index bc42c4a51..0f9c6e781 100644
--- a/src/test/ref/cia-timer-cyclecount.log
+++ b/src/test/ref/cia-timer-cyclecount.log
@@ -5,8 +5,11 @@ CONTROL FLOW GRAPH SSA
dword clock()
clock: scope:[clock] from main::@3
+ *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES
clock::$0 = $ffffffff - *CIA2_TIMER_AB
- clock::return#0 = clock::$0
+ clock::ticks#0 = clock::$0
+ *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES
+ clock::return#0 = clock::ticks#0
to:clock::@return
clock::@return: scope:[clock] from clock
clock::return#3 = phi( clock/clock::return#0 )
@@ -176,6 +179,8 @@ dword clock::return#1
dword clock::return#2
dword clock::return#3
dword clock::return#4
+dword clock::ticks
+dword clock::ticks#0
void clock_start()
void main()
dword~ main::$1
@@ -266,7 +271,7 @@ Finalized unsigned number type (byte) 1
Successful SSA optimization PassNFinalizeNumberTypeConversions
Inferred type updated to dword in clock::$0 = $ffffffff - *CIA2_TIMER_AB
Inferred type updated to byte in print_uchar_at::$2 = print_uchar_at::b#3 & $f
-Alias clock::return#0 = clock::$0 clock::return#3 clock::return#1
+Alias clock::return#0 = clock::ticks#0 clock::$0 clock::return#3 clock::return#1
Alias print_uchar_at::b#0 = print_uint_at::$0
Alias print_uint_at::w#2 = print_uint_at::w#3
Alias print_uint_at::at#2 = print_uint_at::at#3
@@ -290,16 +295,19 @@ Constant print_ulong_at::at#0 = SCREEN
Successful SSA optimization Pass2ConstantIdentification
Constant print_uint_at::at#0 = print_ulong_at::at#0
Successful SSA optimization Pass2ConstantIdentification
-if() condition always true - replacing block destination [37] if(true) goto main::@2
+if() condition always true - replacing block destination [39] if(true) goto main::@2
Successful SSA optimization Pass2ConstantIfs
-Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES in [2] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES
-Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS in [3] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
+Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES in [0] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES
+Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES in [4] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES
+Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS in [5] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
Successful SSA optimization PassNSimplifyConstantZero
-Simplifying expression containing zero CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A in [3] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = 0|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
-Simplifying expression containing zero CIA_TIMER_CONTROL_START in [5] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
-Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [6] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES
+Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [2] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES
+Simplifying expression containing zero CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A in [5] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = 0|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
+Simplifying expression containing zero CIA_TIMER_CONTROL_START in [7] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
+Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [8] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES
Successful SSA optimization PassNSimplifyExpressionWithZero
-Simplifying expression containing zero CIA_TIMER_CONTROL_START in [6] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS
+Simplifying expression containing zero CIA_TIMER_CONTROL_START in [2] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS
+Simplifying expression containing zero CIA_TIMER_CONTROL_START in [8] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS
Successful SSA optimization PassNSimplifyExpressionWithZero
Removing unused block main::@return
Successful SSA optimization Pass2EliminateUnusedBlocks
@@ -314,7 +322,7 @@ Removing unused procedure block __start::@1
Removing unused procedure block __start::@2
Removing unused procedure block __start::@return
Successful SSA optimization PassNEliminateEmptyStart
-Constant right-side identified [19] print_uint_at::at#1 = print_ulong_at::at#0 + 4
+Constant right-side identified [21] print_uint_at::at#1 = print_ulong_at::at#0 + 4
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant print_uint_at::at#1 = print_ulong_at::at#0+4
Successful SSA optimization Pass2ConstantIdentification
@@ -338,21 +346,21 @@ Adding NOP phi() at start of print_uint_at::@2
Adding NOP phi() at start of print_uchar_at::@2
CALL GRAPH
Calls in [main] to clock_start:3 clock:5 print_ulong_at:10
-Calls in [print_ulong_at] to print_uint_at:22 print_uint_at:25
-Calls in [print_uint_at] to print_uchar_at:33 print_uchar_at:38
-Calls in [print_uchar_at] to print_char_at:47 print_char_at:53
+Calls in [print_ulong_at] to print_uint_at:24 print_uint_at:27
+Calls in [print_uint_at] to print_uchar_at:35 print_uchar_at:40
+Calls in [print_uchar_at] to print_char_at:49 print_char_at:55
Created 6 initial phi equivalence classes
-Coalesced [21] print_uint_at::w#4 = print_uint_at::w#0
-Coalesced [24] print_uint_at::w#5 = print_uint_at::w#1
-Coalesced [31] print_uchar_at::b#4 = print_uchar_at::b#0
-Coalesced [32] print_uchar_at::at#4 = print_uchar_at::at#0
-Coalesced [36] print_uchar_at::b#5 = print_uchar_at::b#1
-Coalesced [37] print_uchar_at::at#5 = print_uchar_at::at#1
-Coalesced [45] print_char_at::ch#3 = print_char_at::ch#0
-Coalesced [46] print_char_at::at#3 = print_char_at::at#0
-Coalesced [51] print_char_at::ch#4 = print_char_at::ch#1
-Coalesced [52] print_char_at::at#4 = print_char_at::at#1
+Coalesced [23] print_uint_at::w#4 = print_uint_at::w#0
+Coalesced [26] print_uint_at::w#5 = print_uint_at::w#1
+Coalesced [33] print_uchar_at::b#4 = print_uchar_at::b#0
+Coalesced [34] print_uchar_at::at#4 = print_uchar_at::at#0
+Coalesced [38] print_uchar_at::b#5 = print_uchar_at::b#1
+Coalesced [39] print_uchar_at::at#5 = print_uchar_at::at#1
+Coalesced [47] print_char_at::ch#3 = print_char_at::ch#0
+Coalesced [48] print_char_at::at#3 = print_char_at::at#0
+Coalesced [53] print_char_at::ch#4 = print_char_at::ch#1
+Coalesced [54] print_char_at::at#4 = print_char_at::at#1
Coalesced down to 6 phi equivalence classes
Culled Empty Block label main::@1
Culled Empty Block label main::@5
@@ -401,77 +409,80 @@ clock_start::@return: scope:[clock_start] from clock_start
dword clock()
clock: scope:[clock] from main::@2
- [16] clock::return#0 = $ffffffff - *CIA2_TIMER_AB
+ [16] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0
+ [17] clock::return#0 = $ffffffff - *CIA2_TIMER_AB
+ [18] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START
to:clock::@return
clock::@return: scope:[clock] from clock
- [17] return
+ [19] return
to:@return
void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at)
print_ulong_at: scope:[print_ulong_at] from main::@3
- [18] print_uint_at::w#0 = word1 print_ulong_at::dw#0
- [19] call print_uint_at
+ [20] print_uint_at::w#0 = word1 print_ulong_at::dw#0
+ [21] call print_uint_at
to:print_ulong_at::@1
print_ulong_at::@1: scope:[print_ulong_at] from print_ulong_at
- [20] print_uint_at::w#1 = word0 print_ulong_at::dw#0
- [21] call print_uint_at
+ [22] print_uint_at::w#1 = word0 print_ulong_at::dw#0
+ [23] call print_uint_at
to:print_ulong_at::@return
print_ulong_at::@return: scope:[print_ulong_at] from print_ulong_at::@1
- [22] return
+ [24] return
to:@return
void print_uint_at(word print_uint_at::w , byte* print_uint_at::at)
print_uint_at: scope:[print_uint_at] from print_ulong_at print_ulong_at::@1
- [23] print_uint_at::at#2 = phi( print_ulong_at/SCREEN, print_ulong_at::@1/SCREEN+4 )
- [23] print_uint_at::w#2 = phi( print_ulong_at/print_uint_at::w#0, print_ulong_at::@1/print_uint_at::w#1 )
- [24] print_uchar_at::b#0 = byte1 print_uint_at::w#2
- [25] print_uchar_at::at#0 = print_uint_at::at#2
- [26] call print_uchar_at
+ [25] print_uint_at::at#2 = phi( print_ulong_at/SCREEN, print_ulong_at::@1/SCREEN+4 )
+ [25] print_uint_at::w#2 = phi( print_ulong_at/print_uint_at::w#0, print_ulong_at::@1/print_uint_at::w#1 )
+ [26] print_uchar_at::b#0 = byte1 print_uint_at::w#2
+ [27] print_uchar_at::at#0 = print_uint_at::at#2
+ [28] call print_uchar_at
to:print_uint_at::@1
print_uint_at::@1: scope:[print_uint_at] from print_uint_at
- [27] print_uchar_at::b#1 = byte0 print_uint_at::w#2
- [28] print_uchar_at::at#1 = print_uint_at::at#2 + 2
- [29] call print_uchar_at
+ [29] print_uchar_at::b#1 = byte0 print_uint_at::w#2
+ [30] print_uchar_at::at#1 = print_uint_at::at#2 + 2
+ [31] call print_uchar_at
to:print_uint_at::@return
print_uint_at::@return: scope:[print_uint_at] from print_uint_at::@1
- [30] return
+ [32] return
to:@return
void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at)
print_uchar_at: scope:[print_uchar_at] from print_uint_at print_uint_at::@1
- [31] print_uchar_at::at#2 = phi( print_uint_at/print_uchar_at::at#0, print_uint_at::@1/print_uchar_at::at#1 )
- [31] print_uchar_at::b#2 = phi( print_uint_at/print_uchar_at::b#0, print_uint_at::@1/print_uchar_at::b#1 )
- [32] print_uchar_at::$0 = print_uchar_at::b#2 >> 4
- [33] print_char_at::ch#0 = print_hextab[print_uchar_at::$0]
- [34] print_char_at::at#0 = print_uchar_at::at#2
- [35] call print_char_at
+ [33] print_uchar_at::at#2 = phi( print_uint_at/print_uchar_at::at#0, print_uint_at::@1/print_uchar_at::at#1 )
+ [33] print_uchar_at::b#2 = phi( print_uint_at/print_uchar_at::b#0, print_uint_at::@1/print_uchar_at::b#1 )
+ [34] print_uchar_at::$0 = print_uchar_at::b#2 >> 4
+ [35] print_char_at::ch#0 = print_hextab[print_uchar_at::$0]
+ [36] print_char_at::at#0 = print_uchar_at::at#2
+ [37] call print_char_at
to:print_uchar_at::@1
print_uchar_at::@1: scope:[print_uchar_at] from print_uchar_at
- [36] print_uchar_at::$2 = print_uchar_at::b#2 & $f
- [37] print_char_at::at#1 = print_uchar_at::at#2 + 1
- [38] print_char_at::ch#1 = print_hextab[print_uchar_at::$2]
- [39] call print_char_at
+ [38] print_uchar_at::$2 = print_uchar_at::b#2 & $f
+ [39] print_char_at::at#1 = print_uchar_at::at#2 + 1
+ [40] print_char_at::ch#1 = print_hextab[print_uchar_at::$2]
+ [41] call print_char_at
to:print_uchar_at::@return
print_uchar_at::@return: scope:[print_uchar_at] from print_uchar_at::@1
- [40] return
+ [42] return
to:@return
void print_char_at(byte print_char_at::ch , byte* print_char_at::at)
print_char_at: scope:[print_char_at] from print_uchar_at print_uchar_at::@1
- [41] print_char_at::at#2 = phi( print_uchar_at/print_char_at::at#0, print_uchar_at::@1/print_char_at::at#1 )
- [41] print_char_at::ch#2 = phi( print_uchar_at/print_char_at::ch#0, print_uchar_at::@1/print_char_at::ch#1 )
- [42] *print_char_at::at#2 = print_char_at::ch#2
+ [43] print_char_at::at#2 = phi( print_uchar_at/print_char_at::at#0, print_uchar_at::@1/print_char_at::at#1 )
+ [43] print_char_at::ch#2 = phi( print_uchar_at/print_char_at::ch#0, print_uchar_at::@1/print_char_at::ch#1 )
+ [44] *print_char_at::at#2 = print_char_at::ch#2
to:print_char_at::@return
print_char_at::@return: scope:[print_char_at] from print_char_at
- [43] return
+ [45] return
to:@return
VARIABLE REGISTER WEIGHTS
dword clock()
dword clock::return
-dword clock::return#0 37.33333333333333
+dword clock::return#0 28.0
dword clock::return#2 22.0
+dword clock::ticks
void clock_start()
void main()
dword~ main::$1 22.0
@@ -560,19 +571,21 @@ Statement [11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TI
Statement [12] *CIA2_TIMER_AB = $ffffffff [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a
Statement [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a
Statement [14] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a
-Statement [16] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( clock:4 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
-Statement [18] print_uint_at::w#0 = word1 print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( print_ulong_at:9 [ print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a
-Statement [20] print_uint_at::w#1 = word0 print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( print_ulong_at:9 [ print_uint_at::w#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a
-Statement [25] print_uchar_at::at#0 = print_uint_at::at#2 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] ( print_ulong_at:9::print_uint_at:19 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:21 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } ) always clobbers reg byte a
+Statement [16] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock:4 [ ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
+Statement [17] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( clock:4 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
+Statement [18] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ clock::return#0 ] ( clock:4 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
+Statement [20] print_uint_at::w#0 = word1 print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( print_ulong_at:9 [ print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a
+Statement [22] print_uint_at::w#1 = word0 print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( print_ulong_at:9 [ print_uint_at::w#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a
+Statement [27] print_uchar_at::at#0 = print_uint_at::at#2 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] ( print_ulong_at:9::print_uint_at:21 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:23 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } ) always clobbers reg byte a
Removing always clobbered register reg byte a as potential for zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
-Statement [28] print_uchar_at::at#1 = print_uint_at::at#2 + 2 [ print_uchar_at::b#1 print_uchar_at::at#1 ] ( print_ulong_at:9::print_uint_at:19 [ print_ulong_at::dw#0 print_uchar_at::b#1 print_uchar_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } } print_ulong_at:9::print_uint_at:21 [ print_uchar_at::b#1 print_uchar_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } } ) always clobbers reg byte a
-Statement [32] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 [ print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] ( print_ulong_at:9::print_uint_at:19::print_uchar_at:26 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:26 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:19::print_uchar_at:29 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:29 [ print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } ) always clobbers reg byte a
-Statement [34] print_char_at::at#0 = print_uchar_at::at#2 [ print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] ( print_ulong_at:9::print_uint_at:19::print_uchar_at:26 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:26 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:19::print_uchar_at:29 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:29 [ print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } ) always clobbers reg byte a
+Statement [30] print_uchar_at::at#1 = print_uint_at::at#2 + 2 [ print_uchar_at::b#1 print_uchar_at::at#1 ] ( print_ulong_at:9::print_uint_at:21 [ print_ulong_at::dw#0 print_uchar_at::b#1 print_uchar_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } } print_ulong_at:9::print_uint_at:23 [ print_uchar_at::b#1 print_uchar_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } } ) always clobbers reg byte a
+Statement [34] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 [ print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] ( print_ulong_at:9::print_uint_at:21::print_uchar_at:28 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:28 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:31 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:31 [ print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } ) always clobbers reg byte a
+Statement [36] print_char_at::at#0 = print_uchar_at::at#2 [ print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] ( print_ulong_at:9::print_uint_at:21::print_uchar_at:28 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:28 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:31 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:31 [ print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } ) always clobbers reg byte a
Removing always clobbered register reg byte a as potential for zp[1]:9 [ print_char_at::ch#2 print_char_at::ch#0 print_char_at::ch#1 ]
-Statement [36] print_uchar_at::$2 = print_uchar_at::b#2 & $f [ print_uchar_at::at#2 print_uchar_at::$2 ] ( print_ulong_at:9::print_uint_at:19::print_uchar_at:26 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:26 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:19::print_uchar_at:29 [ print_ulong_at::dw#0 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:29 [ print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a
-Statement [37] print_char_at::at#1 = print_uchar_at::at#2 + 1 [ print_uchar_at::$2 print_char_at::at#1 ] ( print_ulong_at:9::print_uint_at:19::print_uchar_at:26 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:26 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:19::print_uchar_at:29 [ print_ulong_at::dw#0 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:29 [ print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a
+Statement [38] print_uchar_at::$2 = print_uchar_at::b#2 & $f [ print_uchar_at::at#2 print_uchar_at::$2 ] ( print_ulong_at:9::print_uint_at:21::print_uchar_at:28 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:28 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:31 [ print_ulong_at::dw#0 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:31 [ print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a
+Statement [39] print_char_at::at#1 = print_uchar_at::at#2 + 1 [ print_uchar_at::$2 print_char_at::at#1 ] ( print_ulong_at:9::print_uint_at:21::print_uchar_at:28 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:28 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:31 [ print_ulong_at::dw#0 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:31 [ print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a
Removing always clobbered register reg byte a as potential for zp[1]:33 [ print_uchar_at::$2 ]
-Statement [42] *print_char_at::at#2 = print_char_at::ch#2 [ ] ( print_ulong_at:9::print_uint_at:19::print_uchar_at:26::print_char_at:35 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:26::print_char_at:35 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:19::print_uchar_at:29::print_char_at:35 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:29::print_char_at:35 [ print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:9::print_uint_at:19::print_uchar_at:26::print_char_at:39 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:26::print_char_at:39 [ print_uint_at::w#2 print_uint_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:19::print_uchar_at:29::print_char_at:39 [ print_ulong_at::dw#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:29::print_char_at:39 [ ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a reg byte y
+Statement [44] *print_char_at::at#2 = print_char_at::ch#2 [ ] ( print_ulong_at:9::print_uint_at:21::print_uchar_at:28::print_char_at:37 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:28::print_char_at:37 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:31::print_char_at:37 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:31::print_char_at:37 [ print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:28::print_char_at:41 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:28::print_char_at:41 [ print_uint_at::w#2 print_uint_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:31::print_char_at:41 [ print_ulong_at::dw#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:31::print_char_at:41 [ ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a reg byte y
Removing always clobbered register reg byte y as potential for zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
Statement [5] clock::return#2 = clock::return#0 [ clock::return#2 ] ( [ clock::return#2 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
Statement [6] main::$1 = clock::return#2 [ main::$1 ] ( [ main::$1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } } ) always clobbers reg byte a
@@ -583,16 +596,18 @@ Statement [11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TI
Statement [12] *CIA2_TIMER_AB = $ffffffff [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a
Statement [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a
Statement [14] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a
-Statement [16] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( clock:4 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
-Statement [18] print_uint_at::w#0 = word1 print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( print_ulong_at:9 [ print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a
-Statement [20] print_uint_at::w#1 = word0 print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( print_ulong_at:9 [ print_uint_at::w#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a
-Statement [25] print_uchar_at::at#0 = print_uint_at::at#2 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] ( print_ulong_at:9::print_uint_at:19 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:21 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } ) always clobbers reg byte a
-Statement [28] print_uchar_at::at#1 = print_uint_at::at#2 + 2 [ print_uchar_at::b#1 print_uchar_at::at#1 ] ( print_ulong_at:9::print_uint_at:19 [ print_ulong_at::dw#0 print_uchar_at::b#1 print_uchar_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } } print_ulong_at:9::print_uint_at:21 [ print_uchar_at::b#1 print_uchar_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } } ) always clobbers reg byte a
-Statement [32] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 [ print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] ( print_ulong_at:9::print_uint_at:19::print_uchar_at:26 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:26 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:19::print_uchar_at:29 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:29 [ print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } ) always clobbers reg byte a
-Statement [34] print_char_at::at#0 = print_uchar_at::at#2 [ print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] ( print_ulong_at:9::print_uint_at:19::print_uchar_at:26 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:26 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:19::print_uchar_at:29 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:29 [ print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } ) always clobbers reg byte a
-Statement [36] print_uchar_at::$2 = print_uchar_at::b#2 & $f [ print_uchar_at::at#2 print_uchar_at::$2 ] ( print_ulong_at:9::print_uint_at:19::print_uchar_at:26 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:26 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:19::print_uchar_at:29 [ print_ulong_at::dw#0 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:29 [ print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a
-Statement [37] print_char_at::at#1 = print_uchar_at::at#2 + 1 [ print_uchar_at::$2 print_char_at::at#1 ] ( print_ulong_at:9::print_uint_at:19::print_uchar_at:26 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:26 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:19::print_uchar_at:29 [ print_ulong_at::dw#0 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:29 [ print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a
-Statement [42] *print_char_at::at#2 = print_char_at::ch#2 [ ] ( print_ulong_at:9::print_uint_at:19::print_uchar_at:26::print_char_at:35 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:26::print_char_at:35 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:19::print_uchar_at:29::print_char_at:35 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:29::print_char_at:35 [ print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:9::print_uint_at:19::print_uchar_at:26::print_char_at:39 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:26::print_char_at:39 [ print_uint_at::w#2 print_uint_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:19::print_uchar_at:29::print_char_at:39 [ print_ulong_at::dw#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:29::print_char_at:39 [ ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a reg byte y
+Statement [16] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock:4 [ ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
+Statement [17] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( clock:4 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
+Statement [18] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ clock::return#0 ] ( clock:4 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
+Statement [20] print_uint_at::w#0 = word1 print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( print_ulong_at:9 [ print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a
+Statement [22] print_uint_at::w#1 = word0 print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( print_ulong_at:9 [ print_uint_at::w#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a
+Statement [27] print_uchar_at::at#0 = print_uint_at::at#2 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] ( print_ulong_at:9::print_uint_at:21 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:23 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } ) always clobbers reg byte a
+Statement [30] print_uchar_at::at#1 = print_uint_at::at#2 + 2 [ print_uchar_at::b#1 print_uchar_at::at#1 ] ( print_ulong_at:9::print_uint_at:21 [ print_ulong_at::dw#0 print_uchar_at::b#1 print_uchar_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } } print_ulong_at:9::print_uint_at:23 [ print_uchar_at::b#1 print_uchar_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } } ) always clobbers reg byte a
+Statement [34] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 [ print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] ( print_ulong_at:9::print_uint_at:21::print_uchar_at:28 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:28 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:31 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:31 [ print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } ) always clobbers reg byte a
+Statement [36] print_char_at::at#0 = print_uchar_at::at#2 [ print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] ( print_ulong_at:9::print_uint_at:21::print_uchar_at:28 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:28 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:31 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:31 [ print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } ) always clobbers reg byte a
+Statement [38] print_uchar_at::$2 = print_uchar_at::b#2 & $f [ print_uchar_at::at#2 print_uchar_at::$2 ] ( print_ulong_at:9::print_uint_at:21::print_uchar_at:28 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:28 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:31 [ print_ulong_at::dw#0 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:31 [ print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a
+Statement [39] print_char_at::at#1 = print_uchar_at::at#2 + 1 [ print_uchar_at::$2 print_char_at::at#1 ] ( print_ulong_at:9::print_uint_at:21::print_uchar_at:28 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:28 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:31 [ print_ulong_at::dw#0 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:31 [ print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a
+Statement [44] *print_char_at::at#2 = print_char_at::ch#2 [ ] ( print_ulong_at:9::print_uint_at:21::print_uchar_at:28::print_char_at:37 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:28::print_char_at:37 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:31::print_char_at:37 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:31::print_char_at:37 [ print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:28::print_char_at:41 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:28::print_char_at:41 [ print_uint_at::w#2 print_uint_at::at#2 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:21::print_uchar_at:31::print_char_at:41 [ print_ulong_at::dw#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:9::print_uint_at:23::print_uchar_at:31::print_char_at:41 [ ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a reg byte y
Potential registers zp[2]:2 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] : zp[2]:2 ,
Potential registers zp[2]:4 [ print_uint_at::at#2 ] : zp[2]:4 ,
Potential registers zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ] : zp[1]:6 , reg byte x ,
@@ -612,7 +627,7 @@ Uplift Scope [print_char_at] 150,006: zp[1]:9 [ print_char_at::ch#2 print_char_a
Uplift Scope [print_uchar_at] 20,002: zp[1]:32 [ print_uchar_at::$0 ] 10,001: zp[1]:33 [ print_uchar_at::$2 ] 7,671.33: zp[2]:7 [ print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 ] 6,402.8: zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
Uplift Scope [print_uint_at] 955: zp[2]:2 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] 400.4: zp[2]:4 [ print_uint_at::at#2 ]
Uplift Scope [print_ulong_at] 71: zp[4]:24 [ print_ulong_at::dw#0 ]
-Uplift Scope [clock] 37.33: zp[4]:28 [ clock::return#0 ] 22: zp[4]:12 [ clock::return#2 ]
+Uplift Scope [clock] 28: zp[4]:28 [ clock::return#0 ] 22: zp[4]:12 [ clock::return#2 ]
Uplift Scope [main] 22: zp[4]:16 [ main::$1 ] 22: zp[4]:20 [ main::cyclecount#0 ]
Uplift Scope [MOS6526_CIA]
Uplift Scope [MOS6569_VICII]
@@ -621,20 +636,20 @@ Uplift Scope [clock_start]
Uplift Scope [RADIX]
Uplift Scope []
-Uplifting [print_char_at] best 1727 combination reg byte x [ print_char_at::ch#2 print_char_at::ch#0 print_char_at::ch#1 ] zp[2]:10 [ print_char_at::at#2 print_char_at::at#0 print_char_at::at#1 ]
-Uplifting [print_uchar_at] best 1719 combination reg byte a [ print_uchar_at::$0 ] reg byte y [ print_uchar_at::$2 ] zp[2]:7 [ print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 ] zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
-Uplifting [print_uint_at] best 1719 combination zp[2]:2 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] zp[2]:4 [ print_uint_at::at#2 ]
-Uplifting [print_ulong_at] best 1719 combination zp[4]:24 [ print_ulong_at::dw#0 ]
-Uplifting [clock] best 1719 combination zp[4]:28 [ clock::return#0 ] zp[4]:12 [ clock::return#2 ]
-Uplifting [main] best 1719 combination zp[4]:16 [ main::$1 ] zp[4]:20 [ main::cyclecount#0 ]
-Uplifting [MOS6526_CIA] best 1719 combination
-Uplifting [MOS6569_VICII] best 1719 combination
-Uplifting [MOS6581_SID] best 1719 combination
-Uplifting [clock_start] best 1719 combination
-Uplifting [RADIX] best 1719 combination
-Uplifting [] best 1719 combination
+Uplifting [print_char_at] best 1739 combination reg byte x [ print_char_at::ch#2 print_char_at::ch#0 print_char_at::ch#1 ] zp[2]:10 [ print_char_at::at#2 print_char_at::at#0 print_char_at::at#1 ]
+Uplifting [print_uchar_at] best 1731 combination reg byte a [ print_uchar_at::$0 ] reg byte y [ print_uchar_at::$2 ] zp[2]:7 [ print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 ] zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
+Uplifting [print_uint_at] best 1731 combination zp[2]:2 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] zp[2]:4 [ print_uint_at::at#2 ]
+Uplifting [print_ulong_at] best 1731 combination zp[4]:24 [ print_ulong_at::dw#0 ]
+Uplifting [clock] best 1731 combination zp[4]:28 [ clock::return#0 ] zp[4]:12 [ clock::return#2 ]
+Uplifting [main] best 1731 combination zp[4]:16 [ main::$1 ] zp[4]:20 [ main::cyclecount#0 ]
+Uplifting [MOS6526_CIA] best 1731 combination
+Uplifting [MOS6569_VICII] best 1731 combination
+Uplifting [MOS6581_SID] best 1731 combination
+Uplifting [clock_start] best 1731 combination
+Uplifting [RADIX] best 1731 combination
+Uplifting [] best 1731 combination
Attempting to uplift remaining variables inzp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
-Uplifting [print_uchar_at] best 1719 combination zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
+Uplifting [print_uchar_at] best 1731 combination zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
Coalescing zero page register [ zp[2]:4 [ print_uint_at::at#2 ] ] with [ zp[2]:7 [ print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 ] ] - score: 2
Coalescing zero page register [ zp[4]:12 [ clock::return#2 ] ] with [ zp[4]:16 [ main::$1 ] ] - score: 1
Coalescing zero page register [ zp[4]:12 [ clock::return#2 main::$1 ] ] with [ zp[4]:28 [ clock::return#0 ] ] - score: 1
@@ -753,7 +768,11 @@ clock_start: {
// This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start()
clock: {
.label return = 9
- // [16] clock::return#0 = $ffffffff - *CIA2_TIMER_AB -- vduz1=vduc1_minus__deref_pduc2
+ // [16] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2
+ // Stop the timer
+ lda #0
+ sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL
+ // [17] clock::return#0 = $ffffffff - *CIA2_TIMER_AB -- vduz1=vduc1_minus__deref_pduc2
lda #<$ffffffff
sec
sbc CIA2_TIMER_AB
@@ -767,10 +786,14 @@ clock: {
lda #>$ffffffff>>$10
sbc CIA2_TIMER_AB+3
sta.z return+3
+ // [18] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2
+ // Start the timer
+ lda #CIA_TIMER_CONTROL_START
+ sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL
jmp __breturn
// clock::@return
__breturn:
- // [17] return
+ // [19] return
rts
}
// print_ulong_at
@@ -778,43 +801,43 @@ clock: {
// print_ulong_at(dword zp(9) dw)
print_ulong_at: {
.label dw = 9
- // [18] print_uint_at::w#0 = word1 print_ulong_at::dw#0 -- vwuz1=_word1_vduz2
+ // [20] print_uint_at::w#0 = word1 print_ulong_at::dw#0 -- vwuz1=_word1_vduz2
lda.z dw+2
sta.z print_uint_at.w
lda.z dw+3
sta.z print_uint_at.w+1
- // [19] call print_uint_at
- // [23] phi from print_ulong_at to print_uint_at [phi:print_ulong_at->print_uint_at]
+ // [21] call print_uint_at
+ // [25] phi from print_ulong_at to print_uint_at [phi:print_ulong_at->print_uint_at]
print_uint_at_from_print_ulong_at:
- // [23] phi print_uint_at::at#2 = SCREEN [phi:print_ulong_at->print_uint_at#0] -- pbuz1=pbuc1
+ // [25] phi print_uint_at::at#2 = SCREEN [phi:print_ulong_at->print_uint_at#0] -- pbuz1=pbuc1
lda #SCREEN
sta.z print_uint_at.at+1
- // [23] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- register_copy
+ // [25] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- register_copy
jsr print_uint_at
jmp __b1
// print_ulong_at::@1
__b1:
- // [20] print_uint_at::w#1 = word0 print_ulong_at::dw#0 -- vwuz1=_word0_vduz2
+ // [22] print_uint_at::w#1 = word0 print_ulong_at::dw#0 -- vwuz1=_word0_vduz2
lda.z dw
sta.z print_uint_at.w
lda.z dw+1
sta.z print_uint_at.w+1
- // [21] call print_uint_at
- // [23] phi from print_ulong_at::@1 to print_uint_at [phi:print_ulong_at::@1->print_uint_at]
+ // [23] call print_uint_at
+ // [25] phi from print_ulong_at::@1 to print_uint_at [phi:print_ulong_at::@1->print_uint_at]
print_uint_at_from___b1:
- // [23] phi print_uint_at::at#2 = SCREEN+4 [phi:print_ulong_at::@1->print_uint_at#0] -- pbuz1=pbuc1
+ // [25] phi print_uint_at::at#2 = SCREEN+4 [phi:print_ulong_at::@1->print_uint_at#0] -- pbuz1=pbuc1
lda #SCREEN+4
sta.z print_uint_at.at+1
- // [23] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- register_copy
+ // [25] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- register_copy
jsr print_uint_at
jmp __breturn
// print_ulong_at::@return
__breturn:
- // [22] return
+ // [24] return
rts
}
// print_uint_at
@@ -823,23 +846,23 @@ print_ulong_at: {
print_uint_at: {
.label w = 2
.label at = 4
- // [24] print_uchar_at::b#0 = byte1 print_uint_at::w#2 -- vbuz1=_byte1_vwuz2
+ // [26] print_uchar_at::b#0 = byte1 print_uint_at::w#2 -- vbuz1=_byte1_vwuz2
lda.z w+1
sta.z print_uchar_at.b
- // [25] print_uchar_at::at#0 = print_uint_at::at#2
- // [26] call print_uchar_at
- // [31] phi from print_uint_at to print_uchar_at [phi:print_uint_at->print_uchar_at]
+ // [27] print_uchar_at::at#0 = print_uint_at::at#2
+ // [28] call print_uchar_at
+ // [33] phi from print_uint_at to print_uchar_at [phi:print_uint_at->print_uchar_at]
print_uchar_at_from_print_uint_at:
- // [31] phi print_uchar_at::at#2 = print_uchar_at::at#0 [phi:print_uint_at->print_uchar_at#0] -- register_copy
- // [31] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- register_copy
+ // [33] phi print_uchar_at::at#2 = print_uchar_at::at#0 [phi:print_uint_at->print_uchar_at#0] -- register_copy
+ // [33] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- register_copy
jsr print_uchar_at
jmp __b1
// print_uint_at::@1
__b1:
- // [27] print_uchar_at::b#1 = byte0 print_uint_at::w#2 -- vbuz1=_byte0_vwuz2
+ // [29] print_uchar_at::b#1 = byte0 print_uint_at::w#2 -- vbuz1=_byte0_vwuz2
lda.z w
sta.z print_uchar_at.b
- // [28] print_uchar_at::at#1 = print_uint_at::at#2 + 2 -- pbuz1=pbuz1_plus_vbuc1
+ // [30] print_uchar_at::at#1 = print_uint_at::at#2 + 2 -- pbuz1=pbuz1_plus_vbuc1
lda #2
clc
adc.z print_uchar_at.at
@@ -847,16 +870,16 @@ print_uint_at: {
bcc !+
inc.z print_uchar_at.at+1
!:
- // [29] call print_uchar_at
- // [31] phi from print_uint_at::@1 to print_uchar_at [phi:print_uint_at::@1->print_uchar_at]
+ // [31] call print_uchar_at
+ // [33] phi from print_uint_at::@1 to print_uchar_at [phi:print_uint_at::@1->print_uchar_at]
print_uchar_at_from___b1:
- // [31] phi print_uchar_at::at#2 = print_uchar_at::at#1 [phi:print_uint_at::@1->print_uchar_at#0] -- register_copy
- // [31] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- register_copy
+ // [33] phi print_uchar_at::at#2 = print_uchar_at::at#1 [phi:print_uint_at::@1->print_uchar_at#0] -- register_copy
+ // [33] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- register_copy
jsr print_uchar_at
jmp __breturn
// print_uint_at::@return
__breturn:
- // [30] return
+ // [32] return
rts
}
// print_uchar_at
@@ -865,35 +888,35 @@ print_uint_at: {
print_uchar_at: {
.label b = 6
.label at = 4
- // [32] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 -- vbuaa=vbuz1_ror_4
+ // [34] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 -- vbuaa=vbuz1_ror_4
lda.z b
lsr
lsr
lsr
lsr
- // [33] print_char_at::ch#0 = print_hextab[print_uchar_at::$0] -- vbuxx=pbuc1_derefidx_vbuaa
+ // [35] print_char_at::ch#0 = print_hextab[print_uchar_at::$0] -- vbuxx=pbuc1_derefidx_vbuaa
tay
ldx print_hextab,y
- // [34] print_char_at::at#0 = print_uchar_at::at#2 -- pbuz1=pbuz2
+ // [36] print_char_at::at#0 = print_uchar_at::at#2 -- pbuz1=pbuz2
lda.z at
sta.z print_char_at.at
lda.z at+1
sta.z print_char_at.at+1
- // [35] call print_char_at
+ // [37] call print_char_at
// Table of hexadecimal digits
- // [41] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at]
+ // [43] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at]
print_char_at_from_print_uchar_at:
- // [41] phi print_char_at::at#2 = print_char_at::at#0 [phi:print_uchar_at->print_char_at#0] -- register_copy
- // [41] phi print_char_at::ch#2 = print_char_at::ch#0 [phi:print_uchar_at->print_char_at#1] -- register_copy
+ // [43] phi print_char_at::at#2 = print_char_at::at#0 [phi:print_uchar_at->print_char_at#0] -- register_copy
+ // [43] phi print_char_at::ch#2 = print_char_at::ch#0 [phi:print_uchar_at->print_char_at#1] -- register_copy
jsr print_char_at
jmp __b1
// print_uchar_at::@1
__b1:
- // [36] print_uchar_at::$2 = print_uchar_at::b#2 & $f -- vbuyy=vbuz1_band_vbuc1
+ // [38] print_uchar_at::$2 = print_uchar_at::b#2 & $f -- vbuyy=vbuz1_band_vbuc1
lda #$f
and.z b
tay
- // [37] print_char_at::at#1 = print_uchar_at::at#2 + 1 -- pbuz1=pbuz2_plus_1
+ // [39] print_char_at::at#1 = print_uchar_at::at#2 + 1 -- pbuz1=pbuz2_plus_1
clc
lda.z at
adc #1
@@ -901,18 +924,18 @@ print_uchar_at: {
lda.z at+1
adc #0
sta.z print_char_at.at+1
- // [38] print_char_at::ch#1 = print_hextab[print_uchar_at::$2] -- vbuxx=pbuc1_derefidx_vbuyy
+ // [40] print_char_at::ch#1 = print_hextab[print_uchar_at::$2] -- vbuxx=pbuc1_derefidx_vbuyy
ldx print_hextab,y
- // [39] call print_char_at
- // [41] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at]
+ // [41] call print_char_at
+ // [43] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at]
print_char_at_from___b1:
- // [41] phi print_char_at::at#2 = print_char_at::at#1 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy
- // [41] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- register_copy
+ // [43] phi print_char_at::at#2 = print_char_at::at#1 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy
+ // [43] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- register_copy
jsr print_char_at
jmp __breturn
// print_uchar_at::@return
__breturn:
- // [40] return
+ // [42] return
rts
}
// print_char_at
@@ -920,14 +943,14 @@ print_uchar_at: {
// print_char_at(byte register(X) ch, byte* zp(7) at)
print_char_at: {
.label at = 7
- // [42] *print_char_at::at#2 = print_char_at::ch#2 -- _deref_pbuz1=vbuxx
+ // [44] *print_char_at::at#2 = print_char_at::ch#2 -- _deref_pbuz1=vbuxx
txa
ldy #0
sta (at),y
jmp __breturn
// print_char_at::@return
__breturn:
- // [43] return
+ // [45] return
rts
}
// File Data
@@ -986,8 +1009,9 @@ constant byte RADIX::OCTAL = 8
constant byte* const SCREEN = (byte*) 1024
dword clock()
dword clock::return
-dword clock::return#0 return zp[4]:9 37.33333333333333
+dword clock::return#0 return zp[4]:9 28.0
dword clock::return#2 return zp[4]:9 22.0
+dword clock::ticks
void clock_start()
void main()
dword~ main::$1 zp[4]:9 22.0
@@ -1037,7 +1061,7 @@ reg byte y [ print_uchar_at::$2 ]
FINAL ASSEMBLER
-Score: 869
+Score: 881
// File Comments
// Counting cycles using a CIA timer
@@ -1150,8 +1174,13 @@ clock_start: {
// This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start()
clock: {
.label return = 9
+ // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_STOP | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES
+ // [16] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2
+ // Stop the timer
+ lda #0
+ sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL
// 0xffffffff - *CIA2_TIMER_AB
- // [16] clock::return#0 = $ffffffff - *CIA2_TIMER_AB -- vduz1=vduc1_minus__deref_pduc2
+ // [17] clock::return#0 = $ffffffff - *CIA2_TIMER_AB -- vduz1=vduc1_minus__deref_pduc2
lda #<$ffffffff
sec
sbc CIA2_TIMER_AB
@@ -1165,9 +1194,14 @@ clock: {
lda #>$ffffffff>>$10
sbc CIA2_TIMER_AB+3
sta.z return+3
+ // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_START | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES
+ // [18] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2
+ // Start the timer
+ lda #CIA_TIMER_CONTROL_START
+ sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL
// clock::@return
// }
- // [17] return
+ // [19] return
rts
}
// print_ulong_at
@@ -1176,39 +1210,39 @@ clock: {
print_ulong_at: {
.label dw = 9
// print_uint_at(WORD1(dw), at)
- // [18] print_uint_at::w#0 = word1 print_ulong_at::dw#0 -- vwuz1=_word1_vduz2
+ // [20] print_uint_at::w#0 = word1 print_ulong_at::dw#0 -- vwuz1=_word1_vduz2
lda.z dw+2
sta.z print_uint_at.w
lda.z dw+3
sta.z print_uint_at.w+1
- // [19] call print_uint_at
- // [23] phi from print_ulong_at to print_uint_at [phi:print_ulong_at->print_uint_at]
- // [23] phi print_uint_at::at#2 = SCREEN [phi:print_ulong_at->print_uint_at#0] -- pbuz1=pbuc1
+ // [21] call print_uint_at
+ // [25] phi from print_ulong_at to print_uint_at [phi:print_ulong_at->print_uint_at]
+ // [25] phi print_uint_at::at#2 = SCREEN [phi:print_ulong_at->print_uint_at#0] -- pbuz1=pbuc1
lda #SCREEN
sta.z print_uint_at.at+1
- // [23] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- register_copy
+ // [25] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- register_copy
jsr print_uint_at
// print_ulong_at::@1
// print_uint_at(WORD0(dw), at+4)
- // [20] print_uint_at::w#1 = word0 print_ulong_at::dw#0 -- vwuz1=_word0_vduz2
+ // [22] print_uint_at::w#1 = word0 print_ulong_at::dw#0 -- vwuz1=_word0_vduz2
lda.z dw
sta.z print_uint_at.w
lda.z dw+1
sta.z print_uint_at.w+1
- // [21] call print_uint_at
- // [23] phi from print_ulong_at::@1 to print_uint_at [phi:print_ulong_at::@1->print_uint_at]
- // [23] phi print_uint_at::at#2 = SCREEN+4 [phi:print_ulong_at::@1->print_uint_at#0] -- pbuz1=pbuc1
+ // [23] call print_uint_at
+ // [25] phi from print_ulong_at::@1 to print_uint_at [phi:print_ulong_at::@1->print_uint_at]
+ // [25] phi print_uint_at::at#2 = SCREEN+4 [phi:print_ulong_at::@1->print_uint_at#0] -- pbuz1=pbuc1
lda #SCREEN+4
sta.z print_uint_at.at+1
- // [23] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- register_copy
+ // [25] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- register_copy
jsr print_uint_at
// print_ulong_at::@return
// }
- // [22] return
+ // [24] return
rts
}
// print_uint_at
@@ -1218,21 +1252,21 @@ print_uint_at: {
.label w = 2
.label at = 4
// print_uchar_at(BYTE1(w), at)
- // [24] print_uchar_at::b#0 = byte1 print_uint_at::w#2 -- vbuz1=_byte1_vwuz2
+ // [26] print_uchar_at::b#0 = byte1 print_uint_at::w#2 -- vbuz1=_byte1_vwuz2
lda.z w+1
sta.z print_uchar_at.b
- // [25] print_uchar_at::at#0 = print_uint_at::at#2
- // [26] call print_uchar_at
- // [31] phi from print_uint_at to print_uchar_at [phi:print_uint_at->print_uchar_at]
- // [31] phi print_uchar_at::at#2 = print_uchar_at::at#0 [phi:print_uint_at->print_uchar_at#0] -- register_copy
- // [31] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- register_copy
+ // [27] print_uchar_at::at#0 = print_uint_at::at#2
+ // [28] call print_uchar_at
+ // [33] phi from print_uint_at to print_uchar_at [phi:print_uint_at->print_uchar_at]
+ // [33] phi print_uchar_at::at#2 = print_uchar_at::at#0 [phi:print_uint_at->print_uchar_at#0] -- register_copy
+ // [33] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- register_copy
jsr print_uchar_at
// print_uint_at::@1
// print_uchar_at(BYTE0(w), at+2)
- // [27] print_uchar_at::b#1 = byte0 print_uint_at::w#2 -- vbuz1=_byte0_vwuz2
+ // [29] print_uchar_at::b#1 = byte0 print_uint_at::w#2 -- vbuz1=_byte0_vwuz2
lda.z w
sta.z print_uchar_at.b
- // [28] print_uchar_at::at#1 = print_uint_at::at#2 + 2 -- pbuz1=pbuz1_plus_vbuc1
+ // [30] print_uchar_at::at#1 = print_uint_at::at#2 + 2 -- pbuz1=pbuz1_plus_vbuc1
lda #2
clc
adc.z print_uchar_at.at
@@ -1240,14 +1274,14 @@ print_uint_at: {
bcc !+
inc.z print_uchar_at.at+1
!:
- // [29] call print_uchar_at
- // [31] phi from print_uint_at::@1 to print_uchar_at [phi:print_uint_at::@1->print_uchar_at]
- // [31] phi print_uchar_at::at#2 = print_uchar_at::at#1 [phi:print_uint_at::@1->print_uchar_at#0] -- register_copy
- // [31] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- register_copy
+ // [31] call print_uchar_at
+ // [33] phi from print_uint_at::@1 to print_uchar_at [phi:print_uint_at::@1->print_uchar_at]
+ // [33] phi print_uchar_at::at#2 = print_uchar_at::at#1 [phi:print_uint_at::@1->print_uchar_at#0] -- register_copy
+ // [33] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- register_copy
jsr print_uchar_at
// print_uint_at::@return
// }
- // [30] return
+ // [32] return
rts
}
// print_uchar_at
@@ -1257,35 +1291,35 @@ print_uchar_at: {
.label b = 6
.label at = 4
// b>>4
- // [32] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 -- vbuaa=vbuz1_ror_4
+ // [34] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 -- vbuaa=vbuz1_ror_4
lda.z b
lsr
lsr
lsr
lsr
// print_char_at(print_hextab[b>>4], at)
- // [33] print_char_at::ch#0 = print_hextab[print_uchar_at::$0] -- vbuxx=pbuc1_derefidx_vbuaa
+ // [35] print_char_at::ch#0 = print_hextab[print_uchar_at::$0] -- vbuxx=pbuc1_derefidx_vbuaa
tay
ldx print_hextab,y
- // [34] print_char_at::at#0 = print_uchar_at::at#2 -- pbuz1=pbuz2
+ // [36] print_char_at::at#0 = print_uchar_at::at#2 -- pbuz1=pbuz2
lda.z at
sta.z print_char_at.at
lda.z at+1
sta.z print_char_at.at+1
- // [35] call print_char_at
+ // [37] call print_char_at
// Table of hexadecimal digits
- // [41] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at]
- // [41] phi print_char_at::at#2 = print_char_at::at#0 [phi:print_uchar_at->print_char_at#0] -- register_copy
- // [41] phi print_char_at::ch#2 = print_char_at::ch#0 [phi:print_uchar_at->print_char_at#1] -- register_copy
+ // [43] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at]
+ // [43] phi print_char_at::at#2 = print_char_at::at#0 [phi:print_uchar_at->print_char_at#0] -- register_copy
+ // [43] phi print_char_at::ch#2 = print_char_at::ch#0 [phi:print_uchar_at->print_char_at#1] -- register_copy
jsr print_char_at
// print_uchar_at::@1
// b&$f
- // [36] print_uchar_at::$2 = print_uchar_at::b#2 & $f -- vbuyy=vbuz1_band_vbuc1
+ // [38] print_uchar_at::$2 = print_uchar_at::b#2 & $f -- vbuyy=vbuz1_band_vbuc1
lda #$f
and.z b
tay
// print_char_at(print_hextab[b&$f], at+1)
- // [37] print_char_at::at#1 = print_uchar_at::at#2 + 1 -- pbuz1=pbuz2_plus_1
+ // [39] print_char_at::at#1 = print_uchar_at::at#2 + 1 -- pbuz1=pbuz2_plus_1
clc
lda.z at
adc #1
@@ -1293,16 +1327,16 @@ print_uchar_at: {
lda.z at+1
adc #0
sta.z print_char_at.at+1
- // [38] print_char_at::ch#1 = print_hextab[print_uchar_at::$2] -- vbuxx=pbuc1_derefidx_vbuyy
+ // [40] print_char_at::ch#1 = print_hextab[print_uchar_at::$2] -- vbuxx=pbuc1_derefidx_vbuyy
ldx print_hextab,y
- // [39] call print_char_at
- // [41] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at]
- // [41] phi print_char_at::at#2 = print_char_at::at#1 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy
- // [41] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- register_copy
+ // [41] call print_char_at
+ // [43] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at]
+ // [43] phi print_char_at::at#2 = print_char_at::at#1 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy
+ // [43] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- register_copy
jsr print_char_at
// print_uchar_at::@return
// }
- // [40] return
+ // [42] return
rts
}
// print_char_at
@@ -1311,13 +1345,13 @@ print_uchar_at: {
print_char_at: {
.label at = 7
// *(at) = ch
- // [42] *print_char_at::at#2 = print_char_at::ch#2 -- _deref_pbuz1=vbuxx
+ // [44] *print_char_at::at#2 = print_char_at::ch#2 -- _deref_pbuz1=vbuxx
txa
ldy #0
sta (at),y
// print_char_at::@return
// }
- // [43] return
+ // [45] return
rts
}
// File Data
diff --git a/src/test/ref/cia-timer-cyclecount.sym b/src/test/ref/cia-timer-cyclecount.sym
index b37d7c644..81b4cd52f 100644
--- a/src/test/ref/cia-timer-cyclecount.sym
+++ b/src/test/ref/cia-timer-cyclecount.sym
@@ -12,8 +12,9 @@ constant byte RADIX::OCTAL = 8
constant byte* const SCREEN = (byte*) 1024
dword clock()
dword clock::return
-dword clock::return#0 return zp[4]:9 37.33333333333333
+dword clock::return#0 return zp[4]:9 28.0
dword clock::return#2 return zp[4]:9 22.0
+dword clock::ticks
void clock_start()
void main()
dword~ main::$1 zp[4]:9 22.0
diff --git a/src/test/ref/cia-timer-simple.asm b/src/test/ref/cia-timer-simple.asm
index 2e87dac7d..a9185f410 100644
--- a/src/test/ref/cia-timer-simple.asm
+++ b/src/test/ref/cia-timer-simple.asm
@@ -62,6 +62,10 @@ clock_start: {
// This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start()
clock: {
.label return = 9
+ // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_STOP | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES
+ // Stop the timer
+ lda #0
+ sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL
// 0xffffffff - *CIA2_TIMER_AB
lda #<$ffffffff
sec
@@ -76,6 +80,10 @@ clock: {
lda #>$ffffffff>>$10
sbc CIA2_TIMER_AB+3
sta.z return+3
+ // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_START | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES
+ // Start the timer
+ lda #CIA_TIMER_CONTROL_START
+ sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL
// }
rts
}
diff --git a/src/test/ref/cia-timer-simple.cfg b/src/test/ref/cia-timer-simple.cfg
index aebf29203..ae752ea57 100644
--- a/src/test/ref/cia-timer-simple.cfg
+++ b/src/test/ref/cia-timer-simple.cfg
@@ -28,67 +28,69 @@ clock_start::@return: scope:[clock_start] from clock_start
dword clock()
clock: scope:[clock] from main::@1
- [13] clock::return#0 = $ffffffff - *CIA2_TIMER_AB
+ [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0
+ [14] clock::return#0 = $ffffffff - *CIA2_TIMER_AB
+ [15] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START
to:clock::@return
clock::@return: scope:[clock] from clock
- [14] return
+ [16] return
to:@return
void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at)
print_ulong_at: scope:[print_ulong_at] from main::@2
- [15] print_uint_at::w#0 = word1 print_ulong_at::dw#0
- [16] call print_uint_at
+ [17] print_uint_at::w#0 = word1 print_ulong_at::dw#0
+ [18] call print_uint_at
to:print_ulong_at::@1
print_ulong_at::@1: scope:[print_ulong_at] from print_ulong_at
- [17] print_uint_at::w#1 = word0 print_ulong_at::dw#0
- [18] call print_uint_at
+ [19] print_uint_at::w#1 = word0 print_ulong_at::dw#0
+ [20] call print_uint_at
to:print_ulong_at::@return
print_ulong_at::@return: scope:[print_ulong_at] from print_ulong_at::@1
- [19] return
+ [21] return
to:@return
void print_uint_at(word print_uint_at::w , byte* print_uint_at::at)
print_uint_at: scope:[print_uint_at] from print_ulong_at print_ulong_at::@1
- [20] print_uint_at::at#2 = phi( print_ulong_at/SCREEN, print_ulong_at::@1/SCREEN+4 )
- [20] print_uint_at::w#2 = phi( print_ulong_at/print_uint_at::w#0, print_ulong_at::@1/print_uint_at::w#1 )
- [21] print_uchar_at::b#0 = byte1 print_uint_at::w#2
- [22] print_uchar_at::at#0 = print_uint_at::at#2
- [23] call print_uchar_at
+ [22] print_uint_at::at#2 = phi( print_ulong_at/SCREEN, print_ulong_at::@1/SCREEN+4 )
+ [22] print_uint_at::w#2 = phi( print_ulong_at/print_uint_at::w#0, print_ulong_at::@1/print_uint_at::w#1 )
+ [23] print_uchar_at::b#0 = byte1 print_uint_at::w#2
+ [24] print_uchar_at::at#0 = print_uint_at::at#2
+ [25] call print_uchar_at
to:print_uint_at::@1
print_uint_at::@1: scope:[print_uint_at] from print_uint_at
- [24] print_uchar_at::b#1 = byte0 print_uint_at::w#2
- [25] print_uchar_at::at#1 = print_uint_at::at#2 + 2
- [26] call print_uchar_at
+ [26] print_uchar_at::b#1 = byte0 print_uint_at::w#2
+ [27] print_uchar_at::at#1 = print_uint_at::at#2 + 2
+ [28] call print_uchar_at
to:print_uint_at::@return
print_uint_at::@return: scope:[print_uint_at] from print_uint_at::@1
- [27] return
+ [29] return
to:@return
void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at)
print_uchar_at: scope:[print_uchar_at] from print_uint_at print_uint_at::@1
- [28] print_uchar_at::at#2 = phi( print_uint_at/print_uchar_at::at#0, print_uint_at::@1/print_uchar_at::at#1 )
- [28] print_uchar_at::b#2 = phi( print_uint_at/print_uchar_at::b#0, print_uint_at::@1/print_uchar_at::b#1 )
- [29] print_uchar_at::$0 = print_uchar_at::b#2 >> 4
- [30] print_char_at::ch#0 = print_hextab[print_uchar_at::$0]
- [31] print_char_at::at#0 = print_uchar_at::at#2
- [32] call print_char_at
+ [30] print_uchar_at::at#2 = phi( print_uint_at/print_uchar_at::at#0, print_uint_at::@1/print_uchar_at::at#1 )
+ [30] print_uchar_at::b#2 = phi( print_uint_at/print_uchar_at::b#0, print_uint_at::@1/print_uchar_at::b#1 )
+ [31] print_uchar_at::$0 = print_uchar_at::b#2 >> 4
+ [32] print_char_at::ch#0 = print_hextab[print_uchar_at::$0]
+ [33] print_char_at::at#0 = print_uchar_at::at#2
+ [34] call print_char_at
to:print_uchar_at::@1
print_uchar_at::@1: scope:[print_uchar_at] from print_uchar_at
- [33] print_uchar_at::$2 = print_uchar_at::b#2 & $f
- [34] print_char_at::at#1 = print_uchar_at::at#2 + 1
- [35] print_char_at::ch#1 = print_hextab[print_uchar_at::$2]
- [36] call print_char_at
+ [35] print_uchar_at::$2 = print_uchar_at::b#2 & $f
+ [36] print_char_at::at#1 = print_uchar_at::at#2 + 1
+ [37] print_char_at::ch#1 = print_hextab[print_uchar_at::$2]
+ [38] call print_char_at
to:print_uchar_at::@return
print_uchar_at::@return: scope:[print_uchar_at] from print_uchar_at::@1
- [37] return
+ [39] return
to:@return
void print_char_at(byte print_char_at::ch , byte* print_char_at::at)
print_char_at: scope:[print_char_at] from print_uchar_at print_uchar_at::@1
- [38] print_char_at::at#2 = phi( print_uchar_at/print_char_at::at#0, print_uchar_at::@1/print_char_at::at#1 )
- [38] print_char_at::ch#2 = phi( print_uchar_at/print_char_at::ch#0, print_uchar_at::@1/print_char_at::ch#1 )
- [39] *print_char_at::at#2 = print_char_at::ch#2
+ [40] print_char_at::at#2 = phi( print_uchar_at/print_char_at::at#0, print_uchar_at::@1/print_char_at::at#1 )
+ [40] print_char_at::ch#2 = phi( print_uchar_at/print_char_at::ch#0, print_uchar_at::@1/print_char_at::ch#1 )
+ [41] *print_char_at::at#2 = print_char_at::ch#2
to:print_char_at::@return
print_char_at::@return: scope:[print_char_at] from print_char_at
- [40] return
+ [42] return
to:@return
diff --git a/src/test/ref/cia-timer-simple.log b/src/test/ref/cia-timer-simple.log
index 773866ba0..aab8642cb 100644
--- a/src/test/ref/cia-timer-simple.log
+++ b/src/test/ref/cia-timer-simple.log
@@ -5,8 +5,11 @@ CONTROL FLOW GRAPH SSA
dword clock()
clock: scope:[clock] from main::@2
+ *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES
clock::$0 = $ffffffff - *CIA2_TIMER_AB
- clock::return#0 = clock::$0
+ clock::ticks#0 = clock::$0
+ *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES
+ clock::return#0 = clock::ticks#0
to:clock::@return
clock::@return: scope:[clock] from clock
clock::return#3 = phi( clock/clock::return#0 )
@@ -172,6 +175,8 @@ dword clock::return#1
dword clock::return#2
dword clock::return#3
dword clock::return#4
+dword clock::ticks
+dword clock::ticks#0
void clock_start()
void main()
dword~ main::$1
@@ -259,7 +264,7 @@ Finalized unsigned number type (byte) 1
Successful SSA optimization PassNFinalizeNumberTypeConversions
Inferred type updated to dword in clock::$0 = $ffffffff - *CIA2_TIMER_AB
Inferred type updated to byte in print_uchar_at::$2 = print_uchar_at::b#3 & $f
-Alias clock::return#0 = clock::$0 clock::return#3 clock::return#1
+Alias clock::return#0 = clock::ticks#0 clock::$0 clock::return#3 clock::return#1
Alias print_uchar_at::b#0 = print_uint_at::$0
Alias print_uint_at::w#2 = print_uint_at::w#3
Alias print_uint_at::at#2 = print_uint_at::at#3
@@ -283,16 +288,19 @@ Constant print_ulong_at::at#0 = SCREEN
Successful SSA optimization Pass2ConstantIdentification
Constant print_uint_at::at#0 = print_ulong_at::at#0
Successful SSA optimization Pass2ConstantIdentification
-if() condition always true - replacing block destination [38] if(true) goto main::@2
+if() condition always true - replacing block destination [40] if(true) goto main::@2
Successful SSA optimization Pass2ConstantIfs
-Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES in [2] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES
-Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS in [3] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
+Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES in [0] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES
+Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES in [4] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES
+Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS in [5] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
Successful SSA optimization PassNSimplifyConstantZero
-Simplifying expression containing zero CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A in [3] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = 0|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
-Simplifying expression containing zero CIA_TIMER_CONTROL_START in [5] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
-Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [6] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES
+Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [2] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES
+Simplifying expression containing zero CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A in [5] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = 0|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
+Simplifying expression containing zero CIA_TIMER_CONTROL_START in [7] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
+Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [8] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES
Successful SSA optimization PassNSimplifyExpressionWithZero
-Simplifying expression containing zero CIA_TIMER_CONTROL_START in [6] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS
+Simplifying expression containing zero CIA_TIMER_CONTROL_START in [2] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS
+Simplifying expression containing zero CIA_TIMER_CONTROL_START in [8] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS
Successful SSA optimization PassNSimplifyExpressionWithZero
Removing unused block main::@return
Successful SSA optimization Pass2EliminateUnusedBlocks
@@ -307,7 +315,7 @@ Removing unused procedure block __start::@1
Removing unused procedure block __start::@2
Removing unused procedure block __start::@return
Successful SSA optimization PassNEliminateEmptyStart
-Constant right-side identified [19] print_uint_at::at#1 = print_ulong_at::at#0 + 4
+Constant right-side identified [21] print_uint_at::at#1 = print_ulong_at::at#0 + 4
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant print_uint_at::at#1 = print_ulong_at::at#0+4
Successful SSA optimization Pass2ConstantIdentification
@@ -332,21 +340,21 @@ Adding NOP phi() at start of print_uint_at::@2
Adding NOP phi() at start of print_uchar_at::@2
CALL GRAPH
Calls in [main] to clock_start:1 clock:5 print_ulong_at:8
-Calls in [print_ulong_at] to print_uint_at:20 print_uint_at:23
-Calls in [print_uint_at] to print_uchar_at:31 print_uchar_at:36
-Calls in [print_uchar_at] to print_char_at:45 print_char_at:51
+Calls in [print_ulong_at] to print_uint_at:22 print_uint_at:25
+Calls in [print_uint_at] to print_uchar_at:33 print_uchar_at:38
+Calls in [print_uchar_at] to print_char_at:47 print_char_at:53
Created 6 initial phi equivalence classes
-Coalesced [19] print_uint_at::w#4 = print_uint_at::w#0
-Coalesced [22] print_uint_at::w#5 = print_uint_at::w#1
-Coalesced [29] print_uchar_at::b#4 = print_uchar_at::b#0
-Coalesced [30] print_uchar_at::at#4 = print_uchar_at::at#0
-Coalesced [34] print_uchar_at::b#5 = print_uchar_at::b#1
-Coalesced [35] print_uchar_at::at#5 = print_uchar_at::at#1
-Coalesced [43] print_char_at::ch#3 = print_char_at::ch#0
-Coalesced [44] print_char_at::at#3 = print_char_at::at#0
-Coalesced [49] print_char_at::ch#4 = print_char_at::ch#1
-Coalesced [50] print_char_at::at#4 = print_char_at::at#1
+Coalesced [21] print_uint_at::w#4 = print_uint_at::w#0
+Coalesced [24] print_uint_at::w#5 = print_uint_at::w#1
+Coalesced [31] print_uchar_at::b#4 = print_uchar_at::b#0
+Coalesced [32] print_uchar_at::at#4 = print_uchar_at::at#0
+Coalesced [36] print_uchar_at::b#5 = print_uchar_at::b#1
+Coalesced [37] print_uchar_at::at#5 = print_uchar_at::at#1
+Coalesced [45] print_char_at::ch#3 = print_char_at::ch#0
+Coalesced [46] print_char_at::at#3 = print_char_at::at#0
+Coalesced [51] print_char_at::ch#4 = print_char_at::ch#1
+Coalesced [52] print_char_at::at#4 = print_char_at::at#1
Coalesced down to 6 phi equivalence classes
Culled Empty Block label main::@3
Culled Empty Block label main::@1
@@ -390,77 +398,80 @@ clock_start::@return: scope:[clock_start] from clock_start
dword clock()
clock: scope:[clock] from main::@1
- [13] clock::return#0 = $ffffffff - *CIA2_TIMER_AB
+ [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0
+ [14] clock::return#0 = $ffffffff - *CIA2_TIMER_AB
+ [15] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START
to:clock::@return
clock::@return: scope:[clock] from clock
- [14] return
+ [16] return
to:@return
void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at)
print_ulong_at: scope:[print_ulong_at] from main::@2
- [15] print_uint_at::w#0 = word1 print_ulong_at::dw#0
- [16] call print_uint_at
+ [17] print_uint_at::w#0 = word1 print_ulong_at::dw#0
+ [18] call print_uint_at
to:print_ulong_at::@1
print_ulong_at::@1: scope:[print_ulong_at] from print_ulong_at
- [17] print_uint_at::w#1 = word0 print_ulong_at::dw#0
- [18] call print_uint_at
+ [19] print_uint_at::w#1 = word0 print_ulong_at::dw#0
+ [20] call print_uint_at
to:print_ulong_at::@return
print_ulong_at::@return: scope:[print_ulong_at] from print_ulong_at::@1
- [19] return
+ [21] return
to:@return
void print_uint_at(word print_uint_at::w , byte* print_uint_at::at)
print_uint_at: scope:[print_uint_at] from print_ulong_at print_ulong_at::@1
- [20] print_uint_at::at#2 = phi( print_ulong_at/SCREEN, print_ulong_at::@1/SCREEN+4 )
- [20] print_uint_at::w#2 = phi( print_ulong_at/print_uint_at::w#0, print_ulong_at::@1/print_uint_at::w#1 )
- [21] print_uchar_at::b#0 = byte1 print_uint_at::w#2
- [22] print_uchar_at::at#0 = print_uint_at::at#2
- [23] call print_uchar_at
+ [22] print_uint_at::at#2 = phi( print_ulong_at/SCREEN, print_ulong_at::@1/SCREEN+4 )
+ [22] print_uint_at::w#2 = phi( print_ulong_at/print_uint_at::w#0, print_ulong_at::@1/print_uint_at::w#1 )
+ [23] print_uchar_at::b#0 = byte1 print_uint_at::w#2
+ [24] print_uchar_at::at#0 = print_uint_at::at#2
+ [25] call print_uchar_at
to:print_uint_at::@1
print_uint_at::@1: scope:[print_uint_at] from print_uint_at
- [24] print_uchar_at::b#1 = byte0 print_uint_at::w#2
- [25] print_uchar_at::at#1 = print_uint_at::at#2 + 2
- [26] call print_uchar_at
+ [26] print_uchar_at::b#1 = byte0 print_uint_at::w#2
+ [27] print_uchar_at::at#1 = print_uint_at::at#2 + 2
+ [28] call print_uchar_at
to:print_uint_at::@return
print_uint_at::@return: scope:[print_uint_at] from print_uint_at::@1
- [27] return
+ [29] return
to:@return
void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at)
print_uchar_at: scope:[print_uchar_at] from print_uint_at print_uint_at::@1
- [28] print_uchar_at::at#2 = phi( print_uint_at/print_uchar_at::at#0, print_uint_at::@1/print_uchar_at::at#1 )
- [28] print_uchar_at::b#2 = phi( print_uint_at/print_uchar_at::b#0, print_uint_at::@1/print_uchar_at::b#1 )
- [29] print_uchar_at::$0 = print_uchar_at::b#2 >> 4
- [30] print_char_at::ch#0 = print_hextab[print_uchar_at::$0]
- [31] print_char_at::at#0 = print_uchar_at::at#2
- [32] call print_char_at
+ [30] print_uchar_at::at#2 = phi( print_uint_at/print_uchar_at::at#0, print_uint_at::@1/print_uchar_at::at#1 )
+ [30] print_uchar_at::b#2 = phi( print_uint_at/print_uchar_at::b#0, print_uint_at::@1/print_uchar_at::b#1 )
+ [31] print_uchar_at::$0 = print_uchar_at::b#2 >> 4
+ [32] print_char_at::ch#0 = print_hextab[print_uchar_at::$0]
+ [33] print_char_at::at#0 = print_uchar_at::at#2
+ [34] call print_char_at
to:print_uchar_at::@1
print_uchar_at::@1: scope:[print_uchar_at] from print_uchar_at
- [33] print_uchar_at::$2 = print_uchar_at::b#2 & $f
- [34] print_char_at::at#1 = print_uchar_at::at#2 + 1
- [35] print_char_at::ch#1 = print_hextab[print_uchar_at::$2]
- [36] call print_char_at
+ [35] print_uchar_at::$2 = print_uchar_at::b#2 & $f
+ [36] print_char_at::at#1 = print_uchar_at::at#2 + 1
+ [37] print_char_at::ch#1 = print_hextab[print_uchar_at::$2]
+ [38] call print_char_at
to:print_uchar_at::@return
print_uchar_at::@return: scope:[print_uchar_at] from print_uchar_at::@1
- [37] return
+ [39] return
to:@return
void print_char_at(byte print_char_at::ch , byte* print_char_at::at)
print_char_at: scope:[print_char_at] from print_uchar_at print_uchar_at::@1
- [38] print_char_at::at#2 = phi( print_uchar_at/print_char_at::at#0, print_uchar_at::@1/print_char_at::at#1 )
- [38] print_char_at::ch#2 = phi( print_uchar_at/print_char_at::ch#0, print_uchar_at::@1/print_char_at::ch#1 )
- [39] *print_char_at::at#2 = print_char_at::ch#2
+ [40] print_char_at::at#2 = phi( print_uchar_at/print_char_at::at#0, print_uchar_at::@1/print_char_at::at#1 )
+ [40] print_char_at::ch#2 = phi( print_uchar_at/print_char_at::ch#0, print_uchar_at::@1/print_char_at::ch#1 )
+ [41] *print_char_at::at#2 = print_char_at::ch#2
to:print_char_at::@return
print_char_at::@return: scope:[print_char_at] from print_char_at
- [40] return
+ [42] return
to:@return
VARIABLE REGISTER WEIGHTS
dword clock()
dword clock::return
-dword clock::return#0 37.33333333333333
+dword clock::return#0 28.0
dword clock::return#2 22.0
+dword clock::ticks
void clock_start()
void main()
void print_char_at(byte print_char_at::ch , byte* print_char_at::at)
@@ -538,19 +549,21 @@ Statement [8] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIM
Statement [9] *CIA2_TIMER_AB = $ffffffff [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a
Statement [10] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a
Statement [11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a
-Statement [13] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( clock:3 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
-Statement [15] print_uint_at::w#0 = word1 print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( print_ulong_at:6 [ print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a
-Statement [17] print_uint_at::w#1 = word0 print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( print_ulong_at:6 [ print_uint_at::w#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a
-Statement [22] print_uchar_at::at#0 = print_uint_at::at#2 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] ( print_ulong_at:6::print_uint_at:16 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:18 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } ) always clobbers reg byte a
+Statement [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock:3 [ ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
+Statement [14] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( clock:3 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
+Statement [15] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ clock::return#0 ] ( clock:3 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
+Statement [17] print_uint_at::w#0 = word1 print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( print_ulong_at:6 [ print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a
+Statement [19] print_uint_at::w#1 = word0 print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( print_ulong_at:6 [ print_uint_at::w#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a
+Statement [24] print_uchar_at::at#0 = print_uint_at::at#2 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] ( print_ulong_at:6::print_uint_at:18 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:20 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } ) always clobbers reg byte a
Removing always clobbered register reg byte a as potential for zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
-Statement [25] print_uchar_at::at#1 = print_uint_at::at#2 + 2 [ print_uchar_at::b#1 print_uchar_at::at#1 ] ( print_ulong_at:6::print_uint_at:16 [ print_ulong_at::dw#0 print_uchar_at::b#1 print_uchar_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } } print_ulong_at:6::print_uint_at:18 [ print_uchar_at::b#1 print_uchar_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } } ) always clobbers reg byte a
-Statement [29] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 [ print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] ( print_ulong_at:6::print_uint_at:16::print_uchar_at:23 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:23 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:16::print_uchar_at:26 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:26 [ print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } ) always clobbers reg byte a
-Statement [31] print_char_at::at#0 = print_uchar_at::at#2 [ print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] ( print_ulong_at:6::print_uint_at:16::print_uchar_at:23 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:23 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:16::print_uchar_at:26 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:26 [ print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } ) always clobbers reg byte a
+Statement [27] print_uchar_at::at#1 = print_uint_at::at#2 + 2 [ print_uchar_at::b#1 print_uchar_at::at#1 ] ( print_ulong_at:6::print_uint_at:18 [ print_ulong_at::dw#0 print_uchar_at::b#1 print_uchar_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } } print_ulong_at:6::print_uint_at:20 [ print_uchar_at::b#1 print_uchar_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } } ) always clobbers reg byte a
+Statement [31] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 [ print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] ( print_ulong_at:6::print_uint_at:18::print_uchar_at:25 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:25 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:28 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:28 [ print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } ) always clobbers reg byte a
+Statement [33] print_char_at::at#0 = print_uchar_at::at#2 [ print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] ( print_ulong_at:6::print_uint_at:18::print_uchar_at:25 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:25 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:28 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:28 [ print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } ) always clobbers reg byte a
Removing always clobbered register reg byte a as potential for zp[1]:9 [ print_char_at::ch#2 print_char_at::ch#0 print_char_at::ch#1 ]
-Statement [33] print_uchar_at::$2 = print_uchar_at::b#2 & $f [ print_uchar_at::at#2 print_uchar_at::$2 ] ( print_ulong_at:6::print_uint_at:16::print_uchar_at:23 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:23 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:16::print_uchar_at:26 [ print_ulong_at::dw#0 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:26 [ print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a
-Statement [34] print_char_at::at#1 = print_uchar_at::at#2 + 1 [ print_uchar_at::$2 print_char_at::at#1 ] ( print_ulong_at:6::print_uint_at:16::print_uchar_at:23 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:23 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:16::print_uchar_at:26 [ print_ulong_at::dw#0 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:26 [ print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a
+Statement [35] print_uchar_at::$2 = print_uchar_at::b#2 & $f [ print_uchar_at::at#2 print_uchar_at::$2 ] ( print_ulong_at:6::print_uint_at:18::print_uchar_at:25 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:25 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:28 [ print_ulong_at::dw#0 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:28 [ print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a
+Statement [36] print_char_at::at#1 = print_uchar_at::at#2 + 1 [ print_uchar_at::$2 print_char_at::at#1 ] ( print_ulong_at:6::print_uint_at:18::print_uchar_at:25 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:25 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:28 [ print_ulong_at::dw#0 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:28 [ print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a
Removing always clobbered register reg byte a as potential for zp[1]:25 [ print_uchar_at::$2 ]
-Statement [39] *print_char_at::at#2 = print_char_at::ch#2 [ ] ( print_ulong_at:6::print_uint_at:16::print_uchar_at:23::print_char_at:32 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:23::print_char_at:32 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:16::print_uchar_at:26::print_char_at:32 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:26::print_char_at:32 [ print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:6::print_uint_at:16::print_uchar_at:23::print_char_at:36 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:23::print_char_at:36 [ print_uint_at::w#2 print_uint_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:16::print_uchar_at:26::print_char_at:36 [ print_ulong_at::dw#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:26::print_char_at:36 [ ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a reg byte y
+Statement [41] *print_char_at::at#2 = print_char_at::ch#2 [ ] ( print_ulong_at:6::print_uint_at:18::print_uchar_at:25::print_char_at:34 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:25::print_char_at:34 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:28::print_char_at:34 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:28::print_char_at:34 [ print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:25::print_char_at:38 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:25::print_char_at:38 [ print_uint_at::w#2 print_uint_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:28::print_char_at:38 [ print_ulong_at::dw#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:28::print_char_at:38 [ ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a reg byte y
Removing always clobbered register reg byte y as potential for zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
Statement [4] clock::return#2 = clock::return#0 [ clock::return#2 ] ( [ clock::return#2 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
Statement [5] print_ulong_at::dw#0 = clock::return#2 [ print_ulong_at::dw#0 ] ( [ print_ulong_at::dw#0 ] { { print_ulong_at::dw#0 = clock::return#2 } } ) always clobbers reg byte a
@@ -559,16 +572,18 @@ Statement [8] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIM
Statement [9] *CIA2_TIMER_AB = $ffffffff [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a
Statement [10] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a
Statement [11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a
-Statement [13] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( clock:3 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
-Statement [15] print_uint_at::w#0 = word1 print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( print_ulong_at:6 [ print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a
-Statement [17] print_uint_at::w#1 = word0 print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( print_ulong_at:6 [ print_uint_at::w#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a
-Statement [22] print_uchar_at::at#0 = print_uint_at::at#2 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] ( print_ulong_at:6::print_uint_at:16 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:18 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } ) always clobbers reg byte a
-Statement [25] print_uchar_at::at#1 = print_uint_at::at#2 + 2 [ print_uchar_at::b#1 print_uchar_at::at#1 ] ( print_ulong_at:6::print_uint_at:16 [ print_ulong_at::dw#0 print_uchar_at::b#1 print_uchar_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } } print_ulong_at:6::print_uint_at:18 [ print_uchar_at::b#1 print_uchar_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } } ) always clobbers reg byte a
-Statement [29] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 [ print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] ( print_ulong_at:6::print_uint_at:16::print_uchar_at:23 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:23 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:16::print_uchar_at:26 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:26 [ print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } ) always clobbers reg byte a
-Statement [31] print_char_at::at#0 = print_uchar_at::at#2 [ print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] ( print_ulong_at:6::print_uint_at:16::print_uchar_at:23 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:23 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:16::print_uchar_at:26 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:26 [ print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } ) always clobbers reg byte a
-Statement [33] print_uchar_at::$2 = print_uchar_at::b#2 & $f [ print_uchar_at::at#2 print_uchar_at::$2 ] ( print_ulong_at:6::print_uint_at:16::print_uchar_at:23 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:23 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:16::print_uchar_at:26 [ print_ulong_at::dw#0 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:26 [ print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a
-Statement [34] print_char_at::at#1 = print_uchar_at::at#2 + 1 [ print_uchar_at::$2 print_char_at::at#1 ] ( print_ulong_at:6::print_uint_at:16::print_uchar_at:23 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:23 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:16::print_uchar_at:26 [ print_ulong_at::dw#0 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:26 [ print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a
-Statement [39] *print_char_at::at#2 = print_char_at::ch#2 [ ] ( print_ulong_at:6::print_uint_at:16::print_uchar_at:23::print_char_at:32 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:23::print_char_at:32 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:16::print_uchar_at:26::print_char_at:32 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:26::print_char_at:32 [ print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:6::print_uint_at:16::print_uchar_at:23::print_char_at:36 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:23::print_char_at:36 [ print_uint_at::w#2 print_uint_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:16::print_uchar_at:26::print_char_at:36 [ print_ulong_at::dw#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:26::print_char_at:36 [ ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a reg byte y
+Statement [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock:3 [ ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
+Statement [14] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( clock:3 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
+Statement [15] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ clock::return#0 ] ( clock:3 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
+Statement [17] print_uint_at::w#0 = word1 print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( print_ulong_at:6 [ print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a
+Statement [19] print_uint_at::w#1 = word0 print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( print_ulong_at:6 [ print_uint_at::w#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a
+Statement [24] print_uchar_at::at#0 = print_uint_at::at#2 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] ( print_ulong_at:6::print_uint_at:18 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:20 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } ) always clobbers reg byte a
+Statement [27] print_uchar_at::at#1 = print_uint_at::at#2 + 2 [ print_uchar_at::b#1 print_uchar_at::at#1 ] ( print_ulong_at:6::print_uint_at:18 [ print_ulong_at::dw#0 print_uchar_at::b#1 print_uchar_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } } print_ulong_at:6::print_uint_at:20 [ print_uchar_at::b#1 print_uchar_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } } ) always clobbers reg byte a
+Statement [31] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 [ print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] ( print_ulong_at:6::print_uint_at:18::print_uchar_at:25 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:25 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:28 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:28 [ print_uchar_at::b#2 print_uchar_at::at#2 print_uchar_at::$0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } ) always clobbers reg byte a
+Statement [33] print_char_at::at#0 = print_uchar_at::at#2 [ print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] ( print_ulong_at:6::print_uint_at:18::print_uchar_at:25 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:25 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:28 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:28 [ print_uchar_at::b#2 print_uchar_at::at#2 print_char_at::ch#0 print_char_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } ) always clobbers reg byte a
+Statement [35] print_uchar_at::$2 = print_uchar_at::b#2 & $f [ print_uchar_at::at#2 print_uchar_at::$2 ] ( print_ulong_at:6::print_uint_at:18::print_uchar_at:25 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:25 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:28 [ print_ulong_at::dw#0 print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:28 [ print_uchar_at::at#2 print_uchar_at::$2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a
+Statement [36] print_char_at::at#1 = print_uchar_at::at#2 + 1 [ print_uchar_at::$2 print_char_at::at#1 ] ( print_ulong_at:6::print_uint_at:18::print_uchar_at:25 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:25 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:28 [ print_ulong_at::dw#0 print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:28 [ print_uchar_at::$2 print_char_at::at#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a
+Statement [41] *print_char_at::at#2 = print_char_at::ch#2 [ ] ( print_ulong_at:6::print_uint_at:18::print_uchar_at:25::print_char_at:34 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:25::print_char_at:34 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:28::print_char_at:34 [ print_ulong_at::dw#0 print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:28::print_char_at:34 [ print_uchar_at::b#2 print_uchar_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_char_at::ch#0 = print_char_at::ch#2 } { print_char_at::at#0 = print_char_at::at#2 print_uchar_at::at#2 print_uchar_at::at#1 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:25::print_char_at:38 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:25::print_char_at:38 [ print_uint_at::w#2 print_uint_at::at#2 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:18::print_uchar_at:28::print_char_at:38 [ print_ulong_at::dw#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } print_ulong_at:6::print_uint_at:20::print_uchar_at:28::print_char_at:38 [ ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#1 = print_uchar_at::b#2 } { print_uchar_at::at#1 = print_uchar_at::at#2 } { print_char_at::ch#1 = print_char_at::ch#2 } { print_char_at::at#1 = print_char_at::at#2 } } ) always clobbers reg byte a reg byte y
Potential registers zp[2]:2 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] : zp[2]:2 ,
Potential registers zp[2]:4 [ print_uint_at::at#2 ] : zp[2]:4 ,
Potential registers zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ] : zp[1]:6 , reg byte x ,
@@ -586,7 +601,7 @@ Uplift Scope [print_char_at] 150,006: zp[1]:9 [ print_char_at::ch#2 print_char_a
Uplift Scope [print_uchar_at] 20,002: zp[1]:24 [ print_uchar_at::$0 ] 10,001: zp[1]:25 [ print_uchar_at::$2 ] 7,671.33: zp[2]:7 [ print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 ] 6,402.8: zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
Uplift Scope [print_uint_at] 955: zp[2]:2 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] 400.4: zp[2]:4 [ print_uint_at::at#2 ]
Uplift Scope [print_ulong_at] 71: zp[4]:16 [ print_ulong_at::dw#0 ]
-Uplift Scope [clock] 37.33: zp[4]:20 [ clock::return#0 ] 22: zp[4]:12 [ clock::return#2 ]
+Uplift Scope [clock] 28: zp[4]:20 [ clock::return#0 ] 22: zp[4]:12 [ clock::return#2 ]
Uplift Scope [MOS6526_CIA]
Uplift Scope [MOS6569_VICII]
Uplift Scope [MOS6581_SID]
@@ -595,20 +610,20 @@ Uplift Scope [RADIX]
Uplift Scope [main]
Uplift Scope []
-Uplifting [print_char_at] best 1043 combination reg byte x [ print_char_at::ch#2 print_char_at::ch#0 print_char_at::ch#1 ] zp[2]:10 [ print_char_at::at#2 print_char_at::at#0 print_char_at::at#1 ]
-Uplifting [print_uchar_at] best 1035 combination reg byte a [ print_uchar_at::$0 ] reg byte y [ print_uchar_at::$2 ] zp[2]:7 [ print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 ] zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
-Uplifting [print_uint_at] best 1035 combination zp[2]:2 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] zp[2]:4 [ print_uint_at::at#2 ]
-Uplifting [print_ulong_at] best 1035 combination zp[4]:16 [ print_ulong_at::dw#0 ]
-Uplifting [clock] best 1035 combination zp[4]:20 [ clock::return#0 ] zp[4]:12 [ clock::return#2 ]
-Uplifting [MOS6526_CIA] best 1035 combination
-Uplifting [MOS6569_VICII] best 1035 combination
-Uplifting [MOS6581_SID] best 1035 combination
-Uplifting [clock_start] best 1035 combination
-Uplifting [RADIX] best 1035 combination
-Uplifting [main] best 1035 combination
-Uplifting [] best 1035 combination
+Uplifting [print_char_at] best 1055 combination reg byte x [ print_char_at::ch#2 print_char_at::ch#0 print_char_at::ch#1 ] zp[2]:10 [ print_char_at::at#2 print_char_at::at#0 print_char_at::at#1 ]
+Uplifting [print_uchar_at] best 1047 combination reg byte a [ print_uchar_at::$0 ] reg byte y [ print_uchar_at::$2 ] zp[2]:7 [ print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 ] zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
+Uplifting [print_uint_at] best 1047 combination zp[2]:2 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] zp[2]:4 [ print_uint_at::at#2 ]
+Uplifting [print_ulong_at] best 1047 combination zp[4]:16 [ print_ulong_at::dw#0 ]
+Uplifting [clock] best 1047 combination zp[4]:20 [ clock::return#0 ] zp[4]:12 [ clock::return#2 ]
+Uplifting [MOS6526_CIA] best 1047 combination
+Uplifting [MOS6569_VICII] best 1047 combination
+Uplifting [MOS6581_SID] best 1047 combination
+Uplifting [clock_start] best 1047 combination
+Uplifting [RADIX] best 1047 combination
+Uplifting [main] best 1047 combination
+Uplifting [] best 1047 combination
Attempting to uplift remaining variables inzp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
-Uplifting [print_uchar_at] best 1035 combination zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
+Uplifting [print_uchar_at] best 1047 combination zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
Coalescing zero page register [ zp[2]:4 [ print_uint_at::at#2 ] ] with [ zp[2]:7 [ print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 ] ] - score: 2
Coalescing zero page register [ zp[4]:12 [ clock::return#2 ] ] with [ zp[4]:16 [ print_ulong_at::dw#0 ] ] - score: 1
Coalescing zero page register [ zp[4]:12 [ clock::return#2 print_ulong_at::dw#0 ] ] with [ zp[4]:20 [ clock::return#0 ] ] - score: 1
@@ -699,7 +714,11 @@ clock_start: {
// This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start()
clock: {
.label return = 9
- // [13] clock::return#0 = $ffffffff - *CIA2_TIMER_AB -- vduz1=vduc1_minus__deref_pduc2
+ // [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2
+ // Stop the timer
+ lda #0
+ sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL
+ // [14] clock::return#0 = $ffffffff - *CIA2_TIMER_AB -- vduz1=vduc1_minus__deref_pduc2
lda #<$ffffffff
sec
sbc CIA2_TIMER_AB
@@ -713,10 +732,14 @@ clock: {
lda #>$ffffffff>>$10
sbc CIA2_TIMER_AB+3
sta.z return+3
+ // [15] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2
+ // Start the timer
+ lda #CIA_TIMER_CONTROL_START
+ sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL
jmp __breturn
// clock::@return
__breturn:
- // [14] return
+ // [16] return
rts
}
// print_ulong_at
@@ -724,43 +747,43 @@ clock: {
// print_ulong_at(dword zp(9) dw)
print_ulong_at: {
.label dw = 9
- // [15] print_uint_at::w#0 = word1 print_ulong_at::dw#0 -- vwuz1=_word1_vduz2
+ // [17] print_uint_at::w#0 = word1 print_ulong_at::dw#0 -- vwuz1=_word1_vduz2
lda.z dw+2
sta.z print_uint_at.w
lda.z dw+3
sta.z print_uint_at.w+1
- // [16] call print_uint_at
- // [20] phi from print_ulong_at to print_uint_at [phi:print_ulong_at->print_uint_at]
+ // [18] call print_uint_at
+ // [22] phi from print_ulong_at to print_uint_at [phi:print_ulong_at->print_uint_at]
print_uint_at_from_print_ulong_at:
- // [20] phi print_uint_at::at#2 = SCREEN [phi:print_ulong_at->print_uint_at#0] -- pbuz1=pbuc1
+ // [22] phi print_uint_at::at#2 = SCREEN [phi:print_ulong_at->print_uint_at#0] -- pbuz1=pbuc1
lda #SCREEN
sta.z print_uint_at.at+1
- // [20] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- register_copy
+ // [22] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- register_copy
jsr print_uint_at
jmp __b1
// print_ulong_at::@1
__b1:
- // [17] print_uint_at::w#1 = word0 print_ulong_at::dw#0 -- vwuz1=_word0_vduz2
+ // [19] print_uint_at::w#1 = word0 print_ulong_at::dw#0 -- vwuz1=_word0_vduz2
lda.z dw
sta.z print_uint_at.w
lda.z dw+1
sta.z print_uint_at.w+1
- // [18] call print_uint_at
- // [20] phi from print_ulong_at::@1 to print_uint_at [phi:print_ulong_at::@1->print_uint_at]
+ // [20] call print_uint_at
+ // [22] phi from print_ulong_at::@1 to print_uint_at [phi:print_ulong_at::@1->print_uint_at]
print_uint_at_from___b1:
- // [20] phi print_uint_at::at#2 = SCREEN+4 [phi:print_ulong_at::@1->print_uint_at#0] -- pbuz1=pbuc1
+ // [22] phi print_uint_at::at#2 = SCREEN+4 [phi:print_ulong_at::@1->print_uint_at#0] -- pbuz1=pbuc1
lda #SCREEN+4
sta.z print_uint_at.at+1
- // [20] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- register_copy
+ // [22] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- register_copy
jsr print_uint_at
jmp __breturn
// print_ulong_at::@return
__breturn:
- // [19] return
+ // [21] return
rts
}
// print_uint_at
@@ -769,23 +792,23 @@ print_ulong_at: {
print_uint_at: {
.label w = 2
.label at = 4
- // [21] print_uchar_at::b#0 = byte1 print_uint_at::w#2 -- vbuz1=_byte1_vwuz2
+ // [23] print_uchar_at::b#0 = byte1 print_uint_at::w#2 -- vbuz1=_byte1_vwuz2
lda.z w+1
sta.z print_uchar_at.b
- // [22] print_uchar_at::at#0 = print_uint_at::at#2
- // [23] call print_uchar_at
- // [28] phi from print_uint_at to print_uchar_at [phi:print_uint_at->print_uchar_at]
+ // [24] print_uchar_at::at#0 = print_uint_at::at#2
+ // [25] call print_uchar_at
+ // [30] phi from print_uint_at to print_uchar_at [phi:print_uint_at->print_uchar_at]
print_uchar_at_from_print_uint_at:
- // [28] phi print_uchar_at::at#2 = print_uchar_at::at#0 [phi:print_uint_at->print_uchar_at#0] -- register_copy
- // [28] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- register_copy
+ // [30] phi print_uchar_at::at#2 = print_uchar_at::at#0 [phi:print_uint_at->print_uchar_at#0] -- register_copy
+ // [30] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- register_copy
jsr print_uchar_at
jmp __b1
// print_uint_at::@1
__b1:
- // [24] print_uchar_at::b#1 = byte0 print_uint_at::w#2 -- vbuz1=_byte0_vwuz2
+ // [26] print_uchar_at::b#1 = byte0 print_uint_at::w#2 -- vbuz1=_byte0_vwuz2
lda.z w
sta.z print_uchar_at.b
- // [25] print_uchar_at::at#1 = print_uint_at::at#2 + 2 -- pbuz1=pbuz1_plus_vbuc1
+ // [27] print_uchar_at::at#1 = print_uint_at::at#2 + 2 -- pbuz1=pbuz1_plus_vbuc1
lda #2
clc
adc.z print_uchar_at.at
@@ -793,16 +816,16 @@ print_uint_at: {
bcc !+
inc.z print_uchar_at.at+1
!:
- // [26] call print_uchar_at
- // [28] phi from print_uint_at::@1 to print_uchar_at [phi:print_uint_at::@1->print_uchar_at]
+ // [28] call print_uchar_at
+ // [30] phi from print_uint_at::@1 to print_uchar_at [phi:print_uint_at::@1->print_uchar_at]
print_uchar_at_from___b1:
- // [28] phi print_uchar_at::at#2 = print_uchar_at::at#1 [phi:print_uint_at::@1->print_uchar_at#0] -- register_copy
- // [28] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- register_copy
+ // [30] phi print_uchar_at::at#2 = print_uchar_at::at#1 [phi:print_uint_at::@1->print_uchar_at#0] -- register_copy
+ // [30] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- register_copy
jsr print_uchar_at
jmp __breturn
// print_uint_at::@return
__breturn:
- // [27] return
+ // [29] return
rts
}
// print_uchar_at
@@ -811,35 +834,35 @@ print_uint_at: {
print_uchar_at: {
.label b = 6
.label at = 4
- // [29] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 -- vbuaa=vbuz1_ror_4
+ // [31] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 -- vbuaa=vbuz1_ror_4
lda.z b
lsr
lsr
lsr
lsr
- // [30] print_char_at::ch#0 = print_hextab[print_uchar_at::$0] -- vbuxx=pbuc1_derefidx_vbuaa
+ // [32] print_char_at::ch#0 = print_hextab[print_uchar_at::$0] -- vbuxx=pbuc1_derefidx_vbuaa
tay
ldx print_hextab,y
- // [31] print_char_at::at#0 = print_uchar_at::at#2 -- pbuz1=pbuz2
+ // [33] print_char_at::at#0 = print_uchar_at::at#2 -- pbuz1=pbuz2
lda.z at
sta.z print_char_at.at
lda.z at+1
sta.z print_char_at.at+1
- // [32] call print_char_at
+ // [34] call print_char_at
// Table of hexadecimal digits
- // [38] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at]
+ // [40] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at]
print_char_at_from_print_uchar_at:
- // [38] phi print_char_at::at#2 = print_char_at::at#0 [phi:print_uchar_at->print_char_at#0] -- register_copy
- // [38] phi print_char_at::ch#2 = print_char_at::ch#0 [phi:print_uchar_at->print_char_at#1] -- register_copy
+ // [40] phi print_char_at::at#2 = print_char_at::at#0 [phi:print_uchar_at->print_char_at#0] -- register_copy
+ // [40] phi print_char_at::ch#2 = print_char_at::ch#0 [phi:print_uchar_at->print_char_at#1] -- register_copy
jsr print_char_at
jmp __b1
// print_uchar_at::@1
__b1:
- // [33] print_uchar_at::$2 = print_uchar_at::b#2 & $f -- vbuyy=vbuz1_band_vbuc1
+ // [35] print_uchar_at::$2 = print_uchar_at::b#2 & $f -- vbuyy=vbuz1_band_vbuc1
lda #$f
and.z b
tay
- // [34] print_char_at::at#1 = print_uchar_at::at#2 + 1 -- pbuz1=pbuz2_plus_1
+ // [36] print_char_at::at#1 = print_uchar_at::at#2 + 1 -- pbuz1=pbuz2_plus_1
clc
lda.z at
adc #1
@@ -847,18 +870,18 @@ print_uchar_at: {
lda.z at+1
adc #0
sta.z print_char_at.at+1
- // [35] print_char_at::ch#1 = print_hextab[print_uchar_at::$2] -- vbuxx=pbuc1_derefidx_vbuyy
+ // [37] print_char_at::ch#1 = print_hextab[print_uchar_at::$2] -- vbuxx=pbuc1_derefidx_vbuyy
ldx print_hextab,y
- // [36] call print_char_at
- // [38] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at]
+ // [38] call print_char_at
+ // [40] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at]
print_char_at_from___b1:
- // [38] phi print_char_at::at#2 = print_char_at::at#1 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy
- // [38] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- register_copy
+ // [40] phi print_char_at::at#2 = print_char_at::at#1 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy
+ // [40] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- register_copy
jsr print_char_at
jmp __breturn
// print_uchar_at::@return
__breturn:
- // [37] return
+ // [39] return
rts
}
// print_char_at
@@ -866,14 +889,14 @@ print_uchar_at: {
// print_char_at(byte register(X) ch, byte* zp(7) at)
print_char_at: {
.label at = 7
- // [39] *print_char_at::at#2 = print_char_at::ch#2 -- _deref_pbuz1=vbuxx
+ // [41] *print_char_at::at#2 = print_char_at::ch#2 -- _deref_pbuz1=vbuxx
txa
ldy #0
sta (at),y
jmp __breturn
// print_char_at::@return
__breturn:
- // [40] return
+ // [42] return
rts
}
// File Data
@@ -929,8 +952,9 @@ constant byte RADIX::OCTAL = 8
constant byte* const SCREEN = (byte*) 1024
dword clock()
dword clock::return
-dword clock::return#0 return zp[4]:9 37.33333333333333
+dword clock::return#0 return zp[4]:9 28.0
dword clock::return#2 return zp[4]:9 22.0
+dword clock::ticks
void clock_start()
void main()
void print_char_at(byte print_char_at::ch , byte* print_char_at::at)
@@ -977,7 +1001,7 @@ reg byte y [ print_uchar_at::$2 ]
FINAL ASSEMBLER
-Score: 455
+Score: 467
// File Comments
// Setup and run a simple CIA-timer
@@ -1064,8 +1088,13 @@ clock_start: {
// This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start()
clock: {
.label return = 9
+ // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_STOP | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES
+ // [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2
+ // Stop the timer
+ lda #0
+ sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL
// 0xffffffff - *CIA2_TIMER_AB
- // [13] clock::return#0 = $ffffffff - *CIA2_TIMER_AB -- vduz1=vduc1_minus__deref_pduc2
+ // [14] clock::return#0 = $ffffffff - *CIA2_TIMER_AB -- vduz1=vduc1_minus__deref_pduc2
lda #<$ffffffff
sec
sbc CIA2_TIMER_AB
@@ -1079,9 +1108,14 @@ clock: {
lda #>$ffffffff>>$10
sbc CIA2_TIMER_AB+3
sta.z return+3
+ // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_START | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES
+ // [15] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2
+ // Start the timer
+ lda #CIA_TIMER_CONTROL_START
+ sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL
// clock::@return
// }
- // [14] return
+ // [16] return
rts
}
// print_ulong_at
@@ -1090,39 +1124,39 @@ clock: {
print_ulong_at: {
.label dw = 9
// print_uint_at(WORD1(dw), at)
- // [15] print_uint_at::w#0 = word1 print_ulong_at::dw#0 -- vwuz1=_word1_vduz2
+ // [17] print_uint_at::w#0 = word1 print_ulong_at::dw#0 -- vwuz1=_word1_vduz2
lda.z dw+2
sta.z print_uint_at.w
lda.z dw+3
sta.z print_uint_at.w+1
- // [16] call print_uint_at
- // [20] phi from print_ulong_at to print_uint_at [phi:print_ulong_at->print_uint_at]
- // [20] phi print_uint_at::at#2 = SCREEN [phi:print_ulong_at->print_uint_at#0] -- pbuz1=pbuc1
+ // [18] call print_uint_at
+ // [22] phi from print_ulong_at to print_uint_at [phi:print_ulong_at->print_uint_at]
+ // [22] phi print_uint_at::at#2 = SCREEN [phi:print_ulong_at->print_uint_at#0] -- pbuz1=pbuc1
lda #SCREEN
sta.z print_uint_at.at+1
- // [20] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- register_copy
+ // [22] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- register_copy
jsr print_uint_at
// print_ulong_at::@1
// print_uint_at(WORD0(dw), at+4)
- // [17] print_uint_at::w#1 = word0 print_ulong_at::dw#0 -- vwuz1=_word0_vduz2
+ // [19] print_uint_at::w#1 = word0 print_ulong_at::dw#0 -- vwuz1=_word0_vduz2
lda.z dw
sta.z print_uint_at.w
lda.z dw+1
sta.z print_uint_at.w+1
- // [18] call print_uint_at
- // [20] phi from print_ulong_at::@1 to print_uint_at [phi:print_ulong_at::@1->print_uint_at]
- // [20] phi print_uint_at::at#2 = SCREEN+4 [phi:print_ulong_at::@1->print_uint_at#0] -- pbuz1=pbuc1
+ // [20] call print_uint_at
+ // [22] phi from print_ulong_at::@1 to print_uint_at [phi:print_ulong_at::@1->print_uint_at]
+ // [22] phi print_uint_at::at#2 = SCREEN+4 [phi:print_ulong_at::@1->print_uint_at#0] -- pbuz1=pbuc1
lda #SCREEN+4
sta.z print_uint_at.at+1
- // [20] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- register_copy
+ // [22] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- register_copy
jsr print_uint_at
// print_ulong_at::@return
// }
- // [19] return
+ // [21] return
rts
}
// print_uint_at
@@ -1132,21 +1166,21 @@ print_uint_at: {
.label w = 2
.label at = 4
// print_uchar_at(BYTE1(w), at)
- // [21] print_uchar_at::b#0 = byte1 print_uint_at::w#2 -- vbuz1=_byte1_vwuz2
+ // [23] print_uchar_at::b#0 = byte1 print_uint_at::w#2 -- vbuz1=_byte1_vwuz2
lda.z w+1
sta.z print_uchar_at.b
- // [22] print_uchar_at::at#0 = print_uint_at::at#2
- // [23] call print_uchar_at
- // [28] phi from print_uint_at to print_uchar_at [phi:print_uint_at->print_uchar_at]
- // [28] phi print_uchar_at::at#2 = print_uchar_at::at#0 [phi:print_uint_at->print_uchar_at#0] -- register_copy
- // [28] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- register_copy
+ // [24] print_uchar_at::at#0 = print_uint_at::at#2
+ // [25] call print_uchar_at
+ // [30] phi from print_uint_at to print_uchar_at [phi:print_uint_at->print_uchar_at]
+ // [30] phi print_uchar_at::at#2 = print_uchar_at::at#0 [phi:print_uint_at->print_uchar_at#0] -- register_copy
+ // [30] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- register_copy
jsr print_uchar_at
// print_uint_at::@1
// print_uchar_at(BYTE0(w), at+2)
- // [24] print_uchar_at::b#1 = byte0 print_uint_at::w#2 -- vbuz1=_byte0_vwuz2
+ // [26] print_uchar_at::b#1 = byte0 print_uint_at::w#2 -- vbuz1=_byte0_vwuz2
lda.z w
sta.z print_uchar_at.b
- // [25] print_uchar_at::at#1 = print_uint_at::at#2 + 2 -- pbuz1=pbuz1_plus_vbuc1
+ // [27] print_uchar_at::at#1 = print_uint_at::at#2 + 2 -- pbuz1=pbuz1_plus_vbuc1
lda #2
clc
adc.z print_uchar_at.at
@@ -1154,14 +1188,14 @@ print_uint_at: {
bcc !+
inc.z print_uchar_at.at+1
!:
- // [26] call print_uchar_at
- // [28] phi from print_uint_at::@1 to print_uchar_at [phi:print_uint_at::@1->print_uchar_at]
- // [28] phi print_uchar_at::at#2 = print_uchar_at::at#1 [phi:print_uint_at::@1->print_uchar_at#0] -- register_copy
- // [28] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- register_copy
+ // [28] call print_uchar_at
+ // [30] phi from print_uint_at::@1 to print_uchar_at [phi:print_uint_at::@1->print_uchar_at]
+ // [30] phi print_uchar_at::at#2 = print_uchar_at::at#1 [phi:print_uint_at::@1->print_uchar_at#0] -- register_copy
+ // [30] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- register_copy
jsr print_uchar_at
// print_uint_at::@return
// }
- // [27] return
+ // [29] return
rts
}
// print_uchar_at
@@ -1171,35 +1205,35 @@ print_uchar_at: {
.label b = 6
.label at = 4
// b>>4
- // [29] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 -- vbuaa=vbuz1_ror_4
+ // [31] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 -- vbuaa=vbuz1_ror_4
lda.z b
lsr
lsr
lsr
lsr
// print_char_at(print_hextab[b>>4], at)
- // [30] print_char_at::ch#0 = print_hextab[print_uchar_at::$0] -- vbuxx=pbuc1_derefidx_vbuaa
+ // [32] print_char_at::ch#0 = print_hextab[print_uchar_at::$0] -- vbuxx=pbuc1_derefidx_vbuaa
tay
ldx print_hextab,y
- // [31] print_char_at::at#0 = print_uchar_at::at#2 -- pbuz1=pbuz2
+ // [33] print_char_at::at#0 = print_uchar_at::at#2 -- pbuz1=pbuz2
lda.z at
sta.z print_char_at.at
lda.z at+1
sta.z print_char_at.at+1
- // [32] call print_char_at
+ // [34] call print_char_at
// Table of hexadecimal digits
- // [38] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at]
- // [38] phi print_char_at::at#2 = print_char_at::at#0 [phi:print_uchar_at->print_char_at#0] -- register_copy
- // [38] phi print_char_at::ch#2 = print_char_at::ch#0 [phi:print_uchar_at->print_char_at#1] -- register_copy
+ // [40] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at]
+ // [40] phi print_char_at::at#2 = print_char_at::at#0 [phi:print_uchar_at->print_char_at#0] -- register_copy
+ // [40] phi print_char_at::ch#2 = print_char_at::ch#0 [phi:print_uchar_at->print_char_at#1] -- register_copy
jsr print_char_at
// print_uchar_at::@1
// b&$f
- // [33] print_uchar_at::$2 = print_uchar_at::b#2 & $f -- vbuyy=vbuz1_band_vbuc1
+ // [35] print_uchar_at::$2 = print_uchar_at::b#2 & $f -- vbuyy=vbuz1_band_vbuc1
lda #$f
and.z b
tay
// print_char_at(print_hextab[b&$f], at+1)
- // [34] print_char_at::at#1 = print_uchar_at::at#2 + 1 -- pbuz1=pbuz2_plus_1
+ // [36] print_char_at::at#1 = print_uchar_at::at#2 + 1 -- pbuz1=pbuz2_plus_1
clc
lda.z at
adc #1
@@ -1207,16 +1241,16 @@ print_uchar_at: {
lda.z at+1
adc #0
sta.z print_char_at.at+1
- // [35] print_char_at::ch#1 = print_hextab[print_uchar_at::$2] -- vbuxx=pbuc1_derefidx_vbuyy
+ // [37] print_char_at::ch#1 = print_hextab[print_uchar_at::$2] -- vbuxx=pbuc1_derefidx_vbuyy
ldx print_hextab,y
- // [36] call print_char_at
- // [38] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at]
- // [38] phi print_char_at::at#2 = print_char_at::at#1 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy
- // [38] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- register_copy
+ // [38] call print_char_at
+ // [40] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at]
+ // [40] phi print_char_at::at#2 = print_char_at::at#1 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy
+ // [40] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- register_copy
jsr print_char_at
// print_uchar_at::@return
// }
- // [37] return
+ // [39] return
rts
}
// print_char_at
@@ -1225,13 +1259,13 @@ print_uchar_at: {
print_char_at: {
.label at = 7
// *(at) = ch
- // [39] *print_char_at::at#2 = print_char_at::ch#2 -- _deref_pbuz1=vbuxx
+ // [41] *print_char_at::at#2 = print_char_at::ch#2 -- _deref_pbuz1=vbuxx
txa
ldy #0
sta (at),y
// print_char_at::@return
// }
- // [40] return
+ // [42] return
rts
}
// File Data
diff --git a/src/test/ref/cia-timer-simple.sym b/src/test/ref/cia-timer-simple.sym
index 3271c5b35..4e0fe6728 100644
--- a/src/test/ref/cia-timer-simple.sym
+++ b/src/test/ref/cia-timer-simple.sym
@@ -11,8 +11,9 @@ constant byte RADIX::OCTAL = 8
constant byte* const SCREEN = (byte*) 1024
dword clock()
dword clock::return
-dword clock::return#0 return zp[4]:9 37.33333333333333
+dword clock::return#0 return zp[4]:9 28.0
dword clock::return#2 return zp[4]:9 22.0
+dword clock::ticks
void clock_start()
void main()
void print_char_at(byte print_char_at::ch , byte* print_char_at::at)