diff --git a/src/main/fragment/cache/fragment-cache-csg65ce02.asm b/src/main/fragment/cache/fragment-cache-csg65ce02.asm index 2dc45385e..466e8b9a1 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 108dd16dc1 108dd18d7f +//KICKC FRAGMENT CACHE 11e0ba6c6b 11e0ba8c9f //FRAGMENT vbuzz=vbuc1 ldz #{c1} //FRAGMENT vbuzz_lt_vbuc1_then_la1 diff --git a/src/main/fragment/cache/fragment-cache-mega45gs02.asm b/src/main/fragment/cache/fragment-cache-mega45gs02.asm index a571c7e7c..03ddba012 100644 --- a/src/main/fragment/cache/fragment-cache-mega45gs02.asm +++ b/src/main/fragment/cache/fragment-cache-mega45gs02.asm @@ -1,1552 +1,76 @@ -//KICKC FRAGMENT CACHE 108dd16dc1 108dd18d7f -//FRAGMENT vbuz1=vbuc1 -lda #{c1} -sta {z1} +//KICKC FRAGMENT CACHE 11e0ba6c6b 11e0ba8c9f +//FRAGMENT _deref_pbuc1=vbuc2 +lda #{c2} +sta {c1} +//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2 +lda #{c2} +ora {c1} +sta {c1} //FRAGMENT pbuz1=pbuc1 lda #<{c1} sta {z1} lda #>{c1} sta {z1}+1 -//FRAGMENT isr_hardware_all_entry -pha @clob_a -phx @clob_x -phy @clob_y -phz @clob_z -//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2 -lda #{c2} -ora {c1} -sta {c1} -//FRAGMENT _deref_pbuc1=vbuc2 -lda #{c2} -sta {c1} -//FRAGMENT vbuz1=_inc_vbuz1 -inc {z1} -//FRAGMENT vbuz1=vbuz2 -lda {z2} -sta {z1} -//FRAGMENT vbuz1_neq_vbuc1_then_la1 -lda #{c1} -cmp {z1} -bne {la1} -//FRAGMENT vbuz1_lt_vbuc1_then_la1 -lda {z1} -cmp #{c1} -bcc {la1} -//FRAGMENT vbuz1=vbuz2_rol_4 -lda {z2} -asl -asl -asl -asl -sta {z1} -//FRAGMENT vbuz1=_dec_vbuz1 -dec {z1} -//FRAGMENT vbuz1=_deref_pbuz2 -ldy #0 -lda ({z2}),y -sta {z1} -//FRAGMENT pbuz1=_inc_pbuz1 -inw {z1} -//FRAGMENT vbuz1_neq_0_then_la1 -lda {z1} -bne {la1} -//FRAGMENT vbuz1=vbuz2_band_vbuc1 -lda #{c1} -and {z2} -sta {z1} -//FRAGMENT _deref_pbuc1=vbuz1 -lda {z1} -sta {c1} -//FRAGMENT isr_hardware_all_exit -plz @clob_z -ply @clob_y -plx @clob_x -pla @clob_a -rti -//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 -ldy {z1} -lda {c2},y -sta {c1},y -//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_band_vbuc2 -lda #{c2} -ldy {z2} -and {c1},y -sta {z1} -//FRAGMENT pbuc1_derefidx_vbuz1=vbuz2 -lda {z2} -ldy {z1} -sta {c1},y -//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_ror_1 -ldy {z2} -lda {c1},y -lsr -sta {z1} -//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2 -ldy {z2} -lda {c1},y -sta {z1} -//FRAGMENT vbuz1=vbuz1_plus_vbuc1 -lda #{c1} -clc -adc {z1} -sta {z1} -//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2 -lda #{c2} -ldy {z1} -sta {c1},y -//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_ror_2 -ldy {z2} -lda {c1},y -lsr -lsr -sta {z1} -//FRAGMENT vbuz1=vbuz2_ror_1 -lda {z2} -lsr -sta {z1} -//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 -ldy {z2} -lda {c2},y -ldy {z1} -sta {c1},y -//FRAGMENT vbuz1_eq_vbuc1_then_la1 -lda #{c1} -cmp {z1} -beq {la1} -//FRAGMENT vbuz1=vbuz2_plus_1 -lda {z2} -inc -sta {z1} -//FRAGMENT vbuz1=_deref_pbuc1 -lda {c1} -sta {z1} -//FRAGMENT vbuz1_eq__deref_pbuc1_then_la1 -lda {c1} -cmp {z1} -beq {la1} -//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuz1 -ldy {z1} -lda {c2},y -sta {c1} -//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuc2 -lda #{c2} -and {c1} -sta {c1} -//FRAGMENT _deref_qprc1=pprc2 -lda #<{c2} -sta {c1} -lda #>{c2} -sta {c1}+1 -//FRAGMENT pbuz1_neq_pbuc1_then_la1 +//FRAGMENT pbuz1_lt_pbuc1_then_la1 lda {z1}+1 cmp #>{c1} -bne {la1} +bcc {la1} +bne !+ lda {z1} cmp #<{c1} -bne {la1} +bcc {la1} +!: +//FRAGMENT _deref_pbuc1=_deref_pbuc2 +lda {c2} +sta {c1} +//FRAGMENT vbuz1=_lo_pbuz2 +lda {z2} +sta {z1} +//FRAGMENT _deref_pbuz1=vbuz2 +lda {z2} +ldy #0 +sta ({z1}),y +//FRAGMENT pbuz1=_inc_pbuz1 +inw {z1} //FRAGMENT _deref_pbuz1=vbuc1 lda #{c1} ldy #0 sta ({z1}),y -//FRAGMENT vbuaa=vbuz1 +//FRAGMENT vbuaa=_lo_pbuz1 lda {z1} -//FRAGMENT vbuxx=vbuz1 +//FRAGMENT vbuxx=_lo_pbuz1 ldx {z1} -//FRAGMENT vbuaa_neq_vbuc1_then_la1 -cmp #{c1} -bne {la1} -//FRAGMENT vbuaa_lt_vbuc1_then_la1 -cmp #{c1} -bcc {la1} -//FRAGMENT vbuaa=vbuz1_rol_4 -lda {z1} -asl -asl -asl -asl -//FRAGMENT vbuxx=vbuz1_rol_4 -lda {z1} -asl -asl -asl -asl -tax -//FRAGMENT vbuyy=vbuz1_rol_4 -lda {z1} -asl -asl -asl -asl -tay -//FRAGMENT vbuzz=vbuz1_rol_4 -lda {z1} -asl -asl -asl -asl -taz -//FRAGMENT vbuaa=_deref_pbuz1 +//FRAGMENT _deref_pbuz1=vbuaa ldy #0 -lda ({z1}),y -//FRAGMENT vbuxx=_deref_pbuz1 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=vbuxx +txa ldy #0 -lda ({z1}),y -tax -//FRAGMENT vbuyy=_deref_pbuz1 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=vbuyy +tya ldy #0 -lda ({z1}),y -tay -//FRAGMENT vbuzz=_deref_pbuz1 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=vbuzz +tza ldy #0 -lda ({z1}),y -taz -//FRAGMENT vbuaa_neq_0_then_la1 -cmp #0 -bne {la1} -//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 vbuz1=vbuzz_band_vbuc1 -tza -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 vbuaa=vbuzz_band_vbuc1 -tza -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 vbuxx=vbuzz_band_vbuc1 -tza -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 vbuyy=vbuzz_band_vbuc1 -tza -and #{c1} -tay -//FRAGMENT vbuzz=vbuz1_band_vbuc1 -lda #{c1} -and {z1} -taz -//FRAGMENT vbuzz=vbuaa_band_vbuc1 -and #{c1} -taz -//FRAGMENT vbuzz=vbuxx_band_vbuc1 -txa -and #{c1} -taz -//FRAGMENT vbuzz=vbuyy_band_vbuc1 -tya -and #{c1} -taz -//FRAGMENT vbuzz=vbuzz_band_vbuc1 -tza -and #{c1} -taz -//FRAGMENT _deref_pbuc1=vbuaa -sta {c1} -//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuaa -tay -lda {c2},y -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx -lda {c2},x -sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy -lda {c2},y -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuzz=pbuc2_derefidx_vbuzz -tza -tay -lda {c2},y -sta {c1},y -//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_band_vbuc2 -lda #{c2} +sta ({z1}),y +//FRAGMENT vbuyy=_lo_pbuz1 ldy {z1} -and {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_band_vbuc2 -lda #{c2} -ldx {z1} -and {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_band_vbuc2 -lda #{c2} -ldy {z1} -and {c1},y -tay -//FRAGMENT vbuzz=pbuc1_derefidx_vbuz1_band_vbuc2 -lda #{c2} -ldy {z1} -and {c1},y -taz -//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_band_vbuc2 -tay -lda #{c2} -and {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_band_vbuc2 -tay -lda #{c2} -and {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_band_vbuc2 -tax -lda #{c2} -and {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_band_vbuc2 -tay -lda #{c2} -and {c1},y -tay -//FRAGMENT vbuzz=pbuc1_derefidx_vbuaa_band_vbuc2 -tay -lda #{c2} -and {c1},y -taz -//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_band_vbuc2 -lda #{c2} -and {c1},x -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_band_vbuc2 -lda #{c2} -and {c1},x -//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_band_vbuc2 -lda #{c2} -and {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_band_vbuc2 -lda #{c2} -and {c1},x -tay -//FRAGMENT vbuzz=pbuc1_derefidx_vbuxx_band_vbuc2 -lda #{c2} -and {c1},x -taz -//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_band_vbuc2 -lda #{c2} -and {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_band_vbuc2 -lda #{c2} -and {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_band_vbuc2 -lda #{c2} -and {c1},y -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_band_vbuc2 -lda #{c2} -and {c1},y -tay -//FRAGMENT vbuzz=pbuc1_derefidx_vbuyy_band_vbuc2 -lda #{c2} -and {c1},y -taz -//FRAGMENT vbuz1=pbuc1_derefidx_vbuzz_band_vbuc2 -tza -tay -lda #{c2} -and {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuzz_band_vbuc2 -tza -tay -lda #{c2} -and {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuzz_band_vbuc2 -tza -tax -lda #{c2} -and {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuzz_band_vbuc2 -tza -tay -lda #{c2} -and {c1},y -tay -//FRAGMENT vbuzz=pbuc1_derefidx_vbuzz_band_vbuc2 -tza -tay -lda #{c2} -and {c1},y -taz -//FRAGMENT pbuc1_derefidx_vbuxx=vbuz1 -lda {z1} -sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuyy=vbuz1 -lda {z1} -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuzz=vbuz1 -tza -tay -lda {z1} -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuz1=vbuaa -ldy {z1} -sta {c1},y -//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_ror_1 -ldy {z1} -lda {c1},y -lsr -//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_ror_1 -ldx {z1} -lda {c1},x -lsr -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_ror_1 -ldy {z1} -lda {c1},y -lsr -tay -//FRAGMENT vbuzz=pbuc1_derefidx_vbuz1_ror_1 -ldy {z1} -lda {c1},y -lsr -taz -//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_ror_1 -tay -lda {c1},y -lsr -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_ror_1 -tay -lda {c1},y -lsr -//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_ror_1 -tax -lda {c1},x -lsr -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_ror_1 -tay -lda {c1},y -lsr -tay -//FRAGMENT vbuzz=pbuc1_derefidx_vbuaa_ror_1 -tay -lda {c1},y -lsr -taz -//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_ror_1 -lda {c1},x -lsr -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_ror_1 -lda {c1},x -lsr -//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_ror_1 -lda {c1},x -lsr -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_ror_1 -lda {c1},x -lsr -tay -//FRAGMENT vbuzz=pbuc1_derefidx_vbuxx_ror_1 -lda {c1},x -lsr -taz -//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_ror_1 -lda {c1},y -lsr -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_ror_1 -lda {c1},y -lsr -//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_ror_1 -lda {c1},y -lsr -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_ror_1 -lda {c1},y -lsr -tay -//FRAGMENT vbuzz=pbuc1_derefidx_vbuyy_ror_1 -lda {c1},y -lsr -taz -//FRAGMENT vbuz1=pbuc1_derefidx_vbuzz_ror_1 -tza -tay -lda {c1},y -lsr -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuzz_ror_1 -tza -tay -lda {c1},y -lsr -//FRAGMENT vbuxx=pbuc1_derefidx_vbuzz_ror_1 -tza -tax -lda {c1},x -lsr -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuzz_ror_1 -tza -tay -lda {c1},y -lsr -tay -//FRAGMENT vbuzz=pbuc1_derefidx_vbuzz_ror_1 -tza -tay -lda {c1},y -lsr -taz -//FRAGMENT pbuc1_derefidx_vbuz1=vbuxx -ldy {z1} -txa -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuz1=vbuyy -tya -ldy {z1} -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuz1=vbuzz -ldy {z1} -tza -sta {c1},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 vbuzz=pbuc1_derefidx_vbuz1 -ldx {z1} -ldz {c1},x -//FRAGMENT vbuz1=vbuaa_rol_4 -asl -asl -asl -asl -sta {z1} -//FRAGMENT vbuaa=vbuaa_rol_4 -asl -asl -asl -asl -//FRAGMENT vbuxx=vbuaa_rol_4 -asl -asl -asl -asl -tax -//FRAGMENT vbuyy=vbuaa_rol_4 -asl -asl -asl -asl -tay -//FRAGMENT vbuzz=vbuaa_rol_4 -asl -asl -asl -asl -taz -//FRAGMENT vbuz1=vbuxx_rol_4 -txa -asl -asl -asl -asl -sta {z1} -//FRAGMENT vbuaa=vbuxx_rol_4 -txa -asl -asl -asl -asl -//FRAGMENT vbuxx=vbuxx_rol_4 -txa -asl -asl -asl -asl -tax -//FRAGMENT vbuyy=vbuxx_rol_4 -txa -asl -asl -asl -asl -tay -//FRAGMENT vbuzz=vbuxx_rol_4 -txa -asl -asl -asl -asl -taz -//FRAGMENT vbuz1=vbuyy_rol_4 -tya -asl -asl -asl -asl -sta {z1} -//FRAGMENT vbuaa=vbuyy_rol_4 -tya -asl -asl -asl -asl -//FRAGMENT vbuxx=vbuyy_rol_4 -tya -asl -asl -asl -asl -tax -//FRAGMENT vbuyy=vbuyy_rol_4 -tya -asl -asl -asl -asl -tay -//FRAGMENT vbuzz=vbuyy_rol_4 -tya -asl -asl -asl -asl -taz -//FRAGMENT vbuz1=vbuzz_rol_4 -tza -asl -asl -asl -asl -sta {z1} -//FRAGMENT vbuaa=vbuzz_rol_4 -tza -asl -asl -asl -asl -//FRAGMENT vbuxx=vbuzz_rol_4 -tza -asl -asl -asl -asl -tax -//FRAGMENT vbuyy=vbuzz_rol_4 -tza -asl -asl -asl -asl -tay -//FRAGMENT vbuzz=vbuzz_rol_4 -tza -asl -asl -asl -asl -taz -//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 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_vbuzz=vbuc2 -tza -tay -lda #{c2} -sta {c1},y -//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_ror_2 -ldy {z1} -lda {c1},y -lsr -lsr -//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_ror_2 -ldx {z1} -lda {c1},x -lsr -lsr -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_ror_2 -ldy {z1} -lda {c1},y -lsr -lsr -tay -//FRAGMENT vbuzz=pbuc1_derefidx_vbuz1_ror_2 -ldy {z1} -lda {c1},y -lsr -lsr -taz -//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_ror_2 -tay -lda {c1},y -lsr -lsr -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_ror_2 -tay -lda {c1},y -lsr -lsr -//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_ror_2 -tax -lda {c1},x -lsr -lsr -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_ror_2 -tay -lda {c1},y -lsr -lsr -tay -//FRAGMENT vbuzz=pbuc1_derefidx_vbuaa_ror_2 -tay -lda {c1},y -lsr -lsr -taz -//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_ror_2 -lda {c1},x -lsr -lsr -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_ror_2 -lda {c1},x -lsr -lsr -//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_ror_2 -lda {c1},x -lsr -lsr -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_ror_2 -lda {c1},x -lsr -lsr -tay -//FRAGMENT vbuzz=pbuc1_derefidx_vbuxx_ror_2 -lda {c1},x -lsr -lsr -taz -//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_ror_2 -lda {c1},y -lsr -lsr -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_ror_2 -lda {c1},y -lsr -lsr -//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_ror_2 -lda {c1},y -lsr -lsr -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_ror_2 -lda {c1},y -lsr -lsr -tay -//FRAGMENT vbuzz=pbuc1_derefidx_vbuyy_ror_2 -lda {c1},y -lsr -lsr -taz -//FRAGMENT vbuz1=pbuc1_derefidx_vbuzz_ror_2 -tza -tay -lda {c1},y -lsr -lsr -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuzz_ror_2 -tza -tay -lda {c1},y -lsr -lsr -//FRAGMENT vbuxx=pbuc1_derefidx_vbuzz_ror_2 -tza -tax -lda {c1},x -lsr -lsr -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuzz_ror_2 -tza -tay -lda {c1},y -lsr -lsr -tay -//FRAGMENT vbuzz=pbuc1_derefidx_vbuzz_ror_2 -tza -tay -lda {c1},y -lsr -lsr -taz -//FRAGMENT vbuz1=vbuaa_ror_1 -lsr -sta {z1} -//FRAGMENT vbuz1=vbuxx_ror_1 -txa -lsr -sta {z1} -//FRAGMENT vbuz1=vbuyy_ror_1 -tya -lsr -sta {z1} -//FRAGMENT vbuz1=vbuzz_ror_1 -tza -lsr -sta {z1} -//FRAGMENT vbuaa=vbuz1_ror_1 -lda {z1} -lsr -//FRAGMENT vbuaa=vbuaa_ror_1 -lsr -//FRAGMENT vbuaa=vbuxx_ror_1 -txa -lsr -//FRAGMENT vbuaa=vbuyy_ror_1 -tya -lsr -//FRAGMENT vbuaa=vbuzz_ror_1 -tza -lsr -//FRAGMENT vbuxx=vbuz1_ror_1 -lda {z1} -lsr -tax -//FRAGMENT vbuxx=vbuaa_ror_1 -lsr -tax -//FRAGMENT vbuxx=vbuxx_ror_1 -txa -lsr -tax -//FRAGMENT vbuxx=vbuyy_ror_1 -tya -lsr -tax -//FRAGMENT vbuxx=vbuzz_ror_1 -tza -lsr -tax -//FRAGMENT vbuyy=vbuz1_ror_1 -lda {z1} -lsr -tay -//FRAGMENT vbuyy=vbuaa_ror_1 -lsr -tay -//FRAGMENT vbuyy=vbuxx_ror_1 -txa -lsr -tay -//FRAGMENT vbuyy=vbuyy_ror_1 -tya -lsr -tay -//FRAGMENT vbuyy=vbuzz_ror_1 -tza -lsr -tay -//FRAGMENT vbuzz=vbuz1_ror_1 -lda {z1} -lsr -taz -//FRAGMENT vbuzz=vbuaa_ror_1 -lsr -taz -//FRAGMENT vbuzz=vbuxx_ror_1 -txa -lsr -taz -//FRAGMENT vbuzz=vbuyy_ror_1 -tya -lsr -taz -//FRAGMENT vbuzz=vbuzz_ror_1 -tza -lsr -taz -//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuz1 -ldy {z1} -lda {c2},y -sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuz1 -ldx {z1} -lda {c2},x -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuzz=pbuc2_derefidx_vbuz1 -ldx {z1} -tza -tay -lda {c2},x -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuxx -lda {c2},x -ldy {z1} -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx -lda {c2},x -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuzz=pbuc2_derefidx_vbuxx -tza -tay -lda {c2},x -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuyy -lda {c2},y -ldy {z1} -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy -lda {c2},y -sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuzz=pbuc2_derefidx_vbuyy -tza -tax -lda {c2},y -sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuzz -tza -tay -lda {c2},y -ldy {z1} -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuzz -tza -tay -lda {c2},y -sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuzz -tza -tax -lda {c2},x -sta {c1},y -//FRAGMENT vbuaa_eq_vbuc1_then_la1 -cmp #{c1} -beq {la1} -//FRAGMENT vbuaa=vbuz1_plus_1 -lda {z1} -inc -//FRAGMENT vbuxx=vbuz1_plus_1 -ldx {z1} -inx -//FRAGMENT vbuaa=_deref_pbuc1 -lda {c1} -//FRAGMENT vbuxx=_deref_pbuc1 -ldx {c1} -//FRAGMENT vbuaa_eq__deref_pbuc1_then_la1 -cmp {c1} -beq {la1} -//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuxx -lda {c2},x -sta {c1} -//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuyy -lda {c2},y -sta {c1} -//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuzz -tza -tay -lda {c2},y -sta {c1} -//FRAGMENT vbuxx_neq_0_then_la1 -cpx #0 -bne {la1} -//FRAGMENT vbuxx_neq_vbuc1_then_la1 -cpx #{c1} -bne {la1} -//FRAGMENT vbuxx_lt_vbuc1_then_la1 -cpx #{c1} -bcc {la1} -//FRAGMENT vbuxx_eq_vbuc1_then_la1 -cpx #{c1} -beq {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 vbuzz=vbuc1 -ldz #{c1} -//FRAGMENT vbuzz_lt_vbuc1_then_la1 -cpz #{c1} -bcc {la1} -//FRAGMENT vbuzz=_inc_vbuzz -inz -//FRAGMENT vbuyy_neq_0_then_la1 -cpy #0 -bne {la1} -//FRAGMENT vbuzz_neq_0_then_la1 -cpz #0 -bne {la1} -//FRAGMENT vbuaa=_dec_vbuaa -sec -sbc #1 -//FRAGMENT vbuaa=_inc_vbuaa -inc -//FRAGMENT vbuxx=_dec_vbuxx -dex -//FRAGMENT vbuyy=_dec_vbuyy -dey -//FRAGMENT vbuzz=_dec_vbuzz -dez -//FRAGMENT pbuc1_derefidx_vbuxx=vbuzz -tza -sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuyy=vbuzz -tza -sta {c1},y -//FRAGMENT vbuaa=vbuc1 -lda #{c1} -//FRAGMENT vbuxx_eq__deref_pbuc1_then_la1 -cpx {c1} -beq {la1} -//FRAGMENT vbuyy=_deref_pbuc1 -ldy {c1} -//FRAGMENT vbuyy_eq__deref_pbuc1_then_la1 -cpy {c1} -beq {la1} -//FRAGMENT vbuzz=_deref_pbuc1 -ldz {c1} -//FRAGMENT vbuzz_eq__deref_pbuc1_then_la1 -cpz {c1} -beq {la1} -//FRAGMENT vbuyy=vbuz1 -ldy {z1} -//FRAGMENT vbuzz=vbuz1 +//FRAGMENT vbuzz=_lo_pbuz1 ldz {z1} -//FRAGMENT vbuyy_neq_vbuc1_then_la1 -cpy #{c1} -bne {la1} -//FRAGMENT vbuzz_neq_vbuc1_then_la1 -cpz #{c1} -bne {la1} -//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy -lda {c1},y -sta {z1} -//FRAGMENT vbuyy_eq_vbuc1_then_la1 -cpy #{c1} -beq {la1} -//FRAGMENT vbuz1=pbuc1_derefidx_vbuzz -tza -tay -lda {c1},y -sta {z1} -//FRAGMENT vbuzz_eq_vbuc1_then_la1 -cpz #{c1} -beq {la1} -//FRAGMENT pbuc1_derefidx_vbuxx=vbuaa -sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuxx=vbuyy -tya -sta {c1},x -//FRAGMENT vbuyy=vbuz1_plus_1 -ldy {z1} -iny -//FRAGMENT _deref_pbuc1=vbuyy -sty {c1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuzz -tza -tay -lda {c1},y -//FRAGMENT vbuyy=pbuc1_derefidx_vbuzz -tza -tax -ldy {c1},x -//FRAGMENT vbuaa=vbuaa_plus_1 -inc -//FRAGMENT vbuaa=vbuyy_plus_1 -tya -inc -//FRAGMENT _deref_pbuc1=vbuxx -stx {c1} -//FRAGMENT _deref_pbuc1=vbuzz -stz {c1} -//FRAGMENT pvoz1=pvoc1 -lda #<{c1} -sta {z1} -lda #>{c1} -sta {z1}+1 -//FRAGMENT vwuz1=vwuc1 -lda #<{c1} -sta {z1} -lda #>{c1} -sta {z1}+1 -//FRAGMENT pwuz1=pbuc1 -lda #<{c1} -sta {z1} -lda #>{c1} -sta {z1}+1 -//FRAGMENT _deref_pbuc1=_deref_pbuc2 -lda {c2} -sta {c1} -//FRAGMENT pbuz1=pbuz1_plus_vwuc1 -clc -lda {z1} -adc #<{c1} -sta {z1} -lda {z1}+1 -adc #>{c1} -sta {z1}+1 -//FRAGMENT pbuz1=pbuz1_plus_vbuc1 +//FRAGMENT vbuz1=vbuc1 lda #{c1} -clc -adc {z1} sta {z1} -bcc !+ -inc {z1}+1 -!: -//FRAGMENT pbuz1_derefidx_vbuz2=pbuz3_derefidx_vbuz2 -ldy {z2} -lda ({z3}),y -sta ({z1}),y -//FRAGMENT vwuz1=_word_vbuz2 -lda {z2} -sta {z1} -lda #0 -sta {z1}+1 -//FRAGMENT pwuz1=pwuz1_plus_vbuc1 -lda #{c1} -clc -adc {z1} -sta {z1} -bcc !+ -inc {z1}+1 -!: -//FRAGMENT vbuz1=vbuz2_rol_1 -lda {z2} -asl -sta {z1} -//FRAGMENT pwuz1_derefidx_vbuz2=vwuz3 -ldy {z2} -lda {z3} -sta ({z1}),y -iny -lda {z3}+1 -sta ({z1}),y -//FRAGMENT vwuz1=vwuz1_plus_vbuc1 -lda #{c1} -clc -adc {z1} -sta {z1} -bcc !+ -inc {z1}+1 -!: -//FRAGMENT _deref_pwuc1=vwuz1 -lda {z1} -sta {c1} -lda {z1}+1 -sta {c1}+1 -//FRAGMENT _deref_qbuc1=_ptr_vbuz1 -lda {z1} -sta {c1} -lda #0 -sta {c1}+1 -//FRAGMENT _deref_qbuc1=pbuz1 -lda {z1} -sta {c1} -lda {z1}+1 -sta {c1}+1 -//FRAGMENT _deref_pwuc1=vwuc2 -lda #<{c2} -sta {c1} -lda #>{c2} -sta {c1}+1 -//FRAGMENT _deref_qbuc1=pbuc2 -lda #<{c2} -sta {c1} -lda #>{c2} -sta {c1}+1 -//FRAGMENT pbuz1_derefidx_vbuaa=pbuz2_derefidx_vbuaa -tay -lda ({z2}),y -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuxx=pbuz2_derefidx_vbuxx -txa -tay -lda ({z2}),y -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuyy=pbuz2_derefidx_vbuyy -lda ({z2}),y -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuzz=pbuz2_derefidx_vbuzz -tza -tay -lda ({z2}),y -sta ({z1}),y -//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 vwuz1=_word_vbuzz -tza -sta {z1} -lda #0 -sta {z1}+1 -//FRAGMENT vbuz1=vbuaa_rol_1 -asl -sta {z1} -//FRAGMENT vbuz1=vbuxx_rol_1 -txa -asl -sta {z1} -//FRAGMENT vbuz1=vbuyy_rol_1 -tya -asl -sta {z1} -//FRAGMENT vbuz1=vbuzz_rol_1 -tza -asl -sta {z1} -//FRAGMENT vbuaa=vbuz1_rol_1 -lda {z1} -asl -//FRAGMENT vbuaa=vbuaa_rol_1 -asl -//FRAGMENT vbuaa=vbuxx_rol_1 -txa -asl -//FRAGMENT vbuaa=vbuyy_rol_1 -tya -asl -//FRAGMENT vbuaa=vbuzz_rol_1 -tza -asl -//FRAGMENT vbuxx=vbuz1_rol_1 -lda {z1} -asl -tax -//FRAGMENT vbuxx=vbuaa_rol_1 -asl -tax -//FRAGMENT vbuxx=vbuxx_rol_1 -txa -asl -tax -//FRAGMENT vbuxx=vbuyy_rol_1 -tya -asl -tax -//FRAGMENT vbuxx=vbuzz_rol_1 -tza -asl -tax -//FRAGMENT vbuyy=vbuz1_rol_1 -lda {z1} -asl -tay -//FRAGMENT vbuyy=vbuaa_rol_1 -asl -tay -//FRAGMENT vbuyy=vbuxx_rol_1 -txa -asl -tay -//FRAGMENT vbuyy=vbuyy_rol_1 -tya -asl -tay -//FRAGMENT vbuyy=vbuzz_rol_1 -tza -asl -tay -//FRAGMENT vbuzz=vbuz1_rol_1 -lda {z1} -asl -taz -//FRAGMENT vbuzz=vbuaa_rol_1 -asl -taz -//FRAGMENT vbuzz=vbuxx_rol_1 -txa -asl -taz -//FRAGMENT vbuzz=vbuyy_rol_1 -tya -asl -taz -//FRAGMENT vbuzz=vbuzz_rol_1 -tza -asl -taz -//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 pwuz1_derefidx_vbuzz=vwuz2 -tza -tay -lda {z2} -sta ({z1}),y -iny -lda {z2}+1 -sta ({z1}),y -//FRAGMENT _deref_qbuc1=_ptr_vbuxx -txa -sta {c1} -lda #0 -sta {c1}+1 -//FRAGMENT _deref_qbuc1=_ptr_vbuyy -tya -sta {c1} -lda #0 -sta {c1}+1 -//FRAGMENT _deref_qbuc1=_ptr_vbuzz -tza -sta {c1} -lda #0 -sta {c1}+1 -//FRAGMENT _deref_pbuc1=_inc__deref_pbuc1 -inc {c1} //FRAGMENT vwuz1=vbuc1 lda #<{c1} sta {z1} lda #>{c1} sta {z1}+1 -//FRAGMENT _deref_pbuc1_eq_vbuz1_then_la1 -lda {c1} -cmp {z1} -beq {la1} -//FRAGMENT _deref_pbuc1=_dec__deref_pbuc1 -dec {c1} -//FRAGMENT pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 -ldx {z1} -inc {c1},x -//FRAGMENT vbuz1=_lo_vwuz2 -lda {z2} -sta {z1} -//FRAGMENT vbuz1=_hi_vwuz2 -lda {z2}+1 -sta {z1} -//FRAGMENT vbuz1=vbuz2_bor_vbuz3 -lda {z2} -ora {z3} -sta {z1} -//FRAGMENT _deref_pbuc1_eq_vbuaa_then_la1 -cmp {c1} -beq {la1} -//FRAGMENT pbuc1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuaa -tax -inc {c1},x -//FRAGMENT pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuxx -inc {c1},x -//FRAGMENT vbuaa=_lo_vwuz1 +//FRAGMENT vbuz1_lt_vbuc1_then_la1 lda {z1} -//FRAGMENT vbuxx=_lo_vwuz1 -ldx {z1} -//FRAGMENT vbuz1=vbuaa -sta {z1} -//FRAGMENT vbuaa=_hi_vwuz1 -lda {z1}+1 -//FRAGMENT vbuxx=_hi_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 vbuz1=vbuzz_bor_vbuz2 -tza -ora {z2} -sta {z1} -//FRAGMENT vbuz1=vbuz2_bor_vbuaa -ora {z2} -sta {z1} -//FRAGMENT vbuz1=vbuxx_bor_vbuaa -stx $ff -ora $ff -sta {z1} -//FRAGMENT vbuz1=vbuyy_bor_vbuaa -sty $ff -ora $ff -sta {z1} -//FRAGMENT vbuz1=vbuzz_bor_vbuaa -tay -tza -sty $ff -ora $ff -sta {z1} -//FRAGMENT vbuz1=vbuz2_bor_vbuxx -txa -ora {z2} -sta {z1} -//FRAGMENT vbuz1=vbuxx_bor_vbuxx -stx {z1} -//FRAGMENT vbuz1=vbuxx -stx {z1} -//FRAGMENT vbuyy=_lo_vwuz1 -ldy {z1} -//FRAGMENT vbuz1=vbuyy -sty {z1} -//FRAGMENT vbuzz=_lo_vwuz1 -ldz {z1} -//FRAGMENT vbuz1=vbuzz -tza -sta {z1} -//FRAGMENT vbuyy=_hi_vwuz1 -ldy {z1}+1 -//FRAGMENT vbuzz=_hi_vwuz1 -ldz {z1}+1 -//FRAGMENT vbuz1=vbuz2_bor_vbuyy -tya -ora {z2} -sta {z1} -//FRAGMENT pbuc1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuyy -lda {c1},y -inc -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuzz=_inc_pbuc1_derefidx_vbuzz -tza -tax -inc {c1},x -//FRAGMENT _deref_pbuc1_eq_vbuxx_then_la1 -cpx {c1} -beq {la1} -//FRAGMENT _deref_pbuc1_eq_vbuyy_then_la1 -cpy {c1} -beq {la1} -//FRAGMENT _deref_pbuc1_eq_vbuzz_then_la1 -cpz {c1} -beq {la1} -//FRAGMENT vbuaa=vbuz1_bor_vbuaa -ora {z1} -//FRAGMENT vbuxx=vbuz1_bor_vbuaa -ora {z1} -tax -//FRAGMENT vbuyy=vbuz1_bor_vbuaa -ora {z1} -tay -//FRAGMENT vbuzz=vbuz1_bor_vbuaa -ora {z1} -taz -//FRAGMENT vbuz1=vbuz2_bor_vbuzz -tza -ora {z2} -sta {z1} -//FRAGMENT vbuaa=vbuxx_bor_vbuaa -stx $ff -ora $ff -//FRAGMENT vbuaa=vbuyy_bor_vbuaa -sty $ff -ora $ff -//FRAGMENT vbuaa=vbuzz_bor_vbuaa -tay -tza -sty $ff -ora $ff +cmp #{c1} +bcc {la1} //FRAGMENT vduz1=vduc1 lda #<{c1} sta {z1} @@ -1568,6 +92,16 @@ lda #{c1} clc adc {z2} sta {z1} +//FRAGMENT pbuc1_derefidx_vbuz1=vbuz2 +lda {z2} +ldy {z1} +sta {c1},y +//FRAGMENT vbuz1=_inc_vbuz1 +inc {z1} +//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 +ldy {z1} +lda {c2},y +sta {c1},y //FRAGMENT vwuz1=vwuc1_minus_vbuz2 sec lda #<{c1} @@ -1595,11 +129,35 @@ dey bne !- !e: sta {z1} +//FRAGMENT vbuz1=vbuz2 +lda {z2} +sta {z1} //FRAGMENT vwuz1=vwuz2 lda {z2} sta {z1} lda {z2}+1 sta {z1}+1 +//FRAGMENT vbuz1=_lo_vwuz2 +lda {z2} +sta {z1} +//FRAGMENT vbuz1=vbuz2_rol_4 +lda {z2} +asl +asl +asl +asl +sta {z1} +//FRAGMENT vbuz1=_hi_vwuz2 +lda {z2}+1 +sta {z1} +//FRAGMENT vbuz1=vbuz2_band_vbuc1 +lda #{c1} +and {z2} +sta {z1} +//FRAGMENT vbuz1=vbuz2_bor_vbuz3 +lda {z2} +ora {z3} +sta {z1} //FRAGMENT vduz1=vduz2_ror_4 lda {z2}+3 lsr @@ -1633,6 +191,9 @@ lda {z2} sta {z1} lda {z2}+1 sta {z1}+1 +//FRAGMENT vbuaa_lt_vbuc1_then_la1 +cmp #{c1} +bcc {la1} //FRAGMENT vbuz1=vbuc1_plus_vbuaa clc adc #{c1} @@ -1743,6 +304,35 @@ tza clc adc #{c1} taz +//FRAGMENT pbuc1_derefidx_vbuxx=vbuz1 +lda {z1} +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuyy=vbuz1 +lda {z1} +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuzz=vbuz1 +tza +tay +lda {z1} +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuz1=vbuaa +ldy {z1} +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuaa +tay +lda {c2},y +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx +lda {c2},x +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy +lda {c2},y +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuzz=pbuc2_derefidx_vbuzz +tza +tay +lda {c2},y +sta {c1},y //FRAGMENT vwuz1=vwuc1_minus_vbuaa tax stx $ff @@ -2186,6 +776,270 @@ dey bne !- !e: taz +//FRAGMENT vbuaa=vbuz1 +lda {z1} +//FRAGMENT vbuxx=vbuz1 +ldx {z1} +//FRAGMENT vbuaa=_lo_vwuz1 +lda {z1} +//FRAGMENT vbuxx=_lo_vwuz1 +ldx {z1} +//FRAGMENT vbuz1=vbuaa +sta {z1} +//FRAGMENT vbuaa=vbuz1_rol_4 +lda {z1} +asl +asl +asl +asl +//FRAGMENT vbuxx=vbuz1_rol_4 +lda {z1} +asl +asl +asl +asl +tax +//FRAGMENT vbuyy=vbuz1_rol_4 +lda {z1} +asl +asl +asl +asl +tay +//FRAGMENT vbuzz=vbuz1_rol_4 +lda {z1} +asl +asl +asl +asl +taz +//FRAGMENT vbuz1=vbuxx_rol_4 +txa +asl +asl +asl +asl +sta {z1} +//FRAGMENT vbuaa=vbuxx_rol_4 +txa +asl +asl +asl +asl +//FRAGMENT vbuxx=vbuxx_rol_4 +txa +asl +asl +asl +asl +tax +//FRAGMENT vbuyy=vbuxx_rol_4 +txa +asl +asl +asl +asl +tay +//FRAGMENT vbuzz=vbuxx_rol_4 +txa +asl +asl +asl +asl +taz +//FRAGMENT vbuz1=vbuyy_rol_4 +tya +asl +asl +asl +asl +sta {z1} +//FRAGMENT vbuaa=vbuyy_rol_4 +tya +asl +asl +asl +asl +//FRAGMENT vbuxx=vbuyy_rol_4 +tya +asl +asl +asl +asl +tax +//FRAGMENT vbuyy=vbuyy_rol_4 +tya +asl +asl +asl +asl +tay +//FRAGMENT vbuzz=vbuyy_rol_4 +tya +asl +asl +asl +asl +taz +//FRAGMENT vbuz1=vbuzz_rol_4 +tza +asl +asl +asl +asl +sta {z1} +//FRAGMENT vbuaa=vbuzz_rol_4 +tza +asl +asl +asl +asl +//FRAGMENT vbuxx=vbuzz_rol_4 +tza +asl +asl +asl +asl +tax +//FRAGMENT vbuyy=vbuzz_rol_4 +tza +asl +asl +asl +asl +tay +//FRAGMENT vbuzz=vbuzz_rol_4 +tza +asl +asl +asl +asl +taz +//FRAGMENT vbuaa=_hi_vwuz1 +lda {z1}+1 +//FRAGMENT vbuxx=_hi_vwuz1 +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 vbuz1=vbuzz_band_vbuc1 +tza +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 vbuaa=vbuzz_band_vbuc1 +tza +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 vbuxx=vbuzz_band_vbuc1 +tza +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 vbuyy=vbuzz_band_vbuc1 +tza +and #{c1} +tay +//FRAGMENT vbuzz=vbuz1_band_vbuc1 +lda #{c1} +and {z1} +taz +//FRAGMENT vbuzz=vbuaa_band_vbuc1 +and #{c1} +taz +//FRAGMENT vbuzz=vbuxx_band_vbuc1 +txa +and #{c1} +taz +//FRAGMENT vbuzz=vbuyy_band_vbuc1 +tya +and #{c1} +taz +//FRAGMENT vbuzz=vbuzz_band_vbuc1 +tza +and #{c1} +taz +//FRAGMENT vbuz1=vbuxx_bor_vbuz2 +txa +ora {z2} +sta {z1} +//FRAGMENT vbuz1=vbuyy_bor_vbuz2 +tya +ora {z2} +sta {z1} +//FRAGMENT vbuz1=vbuzz_bor_vbuz2 +tza +ora {z2} +sta {z1} +//FRAGMENT vbuz1=vbuz2_bor_vbuaa +ora {z2} +sta {z1} +//FRAGMENT vbuz1=vbuxx_bor_vbuaa +stx $ff +ora $ff +sta {z1} +//FRAGMENT vbuz1=vbuyy_bor_vbuaa +sty $ff +ora $ff +sta {z1} +//FRAGMENT vbuz1=vbuzz_bor_vbuaa +tay +tza +sty $ff +ora $ff +sta {z1} +//FRAGMENT vbuz1=vbuz2_bor_vbuxx +txa +ora {z2} +sta {z1} +//FRAGMENT vbuz1=vbuxx_bor_vbuxx +stx {z1} //FRAGMENT vbuaa=_hi__word_vduz1 lda {z1}+1 //FRAGMENT vbuxx=_hi__word_vduz1 @@ -2250,6 +1104,20 @@ tay tza ora {z1} taz +//FRAGMENT vbuaa=vbuz1_bor_vbuaa +ora {z1} +//FRAGMENT vbuxx=vbuz1_bor_vbuaa +ora {z1} +tax +//FRAGMENT vbuyy=vbuz1_bor_vbuaa +ora {z1} +tay +//FRAGMENT vbuzz=vbuz1_bor_vbuaa +ora {z1} +taz +//FRAGMENT vbuaa=vbuxx_bor_vbuaa +stx $ff +ora $ff //FRAGMENT vbuxx=vbuxx_bor_vbuaa stx $ff ora $ff @@ -2262,6 +1130,9 @@ tay stx $ff ora $ff taz +//FRAGMENT vbuaa=vbuyy_bor_vbuaa +sty $ff +ora $ff //FRAGMENT vbuxx=vbuyy_bor_vbuaa sty $ff ora $ff @@ -2274,6 +1145,11 @@ tay sty $ff ora $ff taz +//FRAGMENT vbuaa=vbuzz_bor_vbuaa +tay +tza +sty $ff +ora $ff //FRAGMENT vbuxx=vbuzz_bor_vbuaa tax tza @@ -2307,11 +1183,53 @@ tay txa ora {z1} taz +//FRAGMENT vbuxx_lt_vbuc1_then_la1 +cpx #{c1} +bcc {la1} +//FRAGMENT vbuz1=vbuxx +stx {z1} +//FRAGMENT vbuyy=_lo_vwuz1 +ldy {z1} +//FRAGMENT vbuz1=vbuyy +sty {z1} +//FRAGMENT vbuzz=_lo_vwuz1 +ldz {z1} +//FRAGMENT vbuz1=vbuzz +tza +sta {z1} +//FRAGMENT vbuyy=_hi_vwuz1 +ldy {z1}+1 +//FRAGMENT vbuzz=_hi_vwuz1 +ldz {z1}+1 +//FRAGMENT vbuz1=vbuz2_bor_vbuyy +tya +ora {z2} +sta {z1} //FRAGMENT vbuyy=_hi__word_vduz1 ldy {z1}+1 //FRAGMENT vbuzz=_hi__word_vduz1 lda {z1}+1 taz +//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 vbuzz=vbuc1 +ldz #{c1} +//FRAGMENT vbuzz_lt_vbuc1_then_la1 +cpz #{c1} +bcc {la1} +//FRAGMENT vbuzz=_inc_vbuzz +inz +//FRAGMENT pbuc1_derefidx_vbuxx=vbuaa +sta {c1},x //FRAGMENT pbuc1_derefidx_vbuyy=vbuaa sta {c1},y //FRAGMENT pbuc1_derefidx_vbuzz=vbuaa @@ -2320,6 +1238,10 @@ tza tay txa sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuz1=vbuxx +ldy {z1} +txa +sta {c1},y //FRAGMENT pbuc1_derefidx_vbuyy=vbuxx txa sta {c1},y @@ -2328,11 +1250,32 @@ tza tay txa sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuz1=vbuyy +tya +ldy {z1} +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuxx=vbuyy +tya +sta {c1},x //FRAGMENT pbuc1_derefidx_vbuzz=vbuyy tza tax tya sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuz1=vbuzz +ldy {z1} +tza +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuxx=vbuzz +tza +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuyy=vbuzz +tza +sta {c1},y +//FRAGMENT vbuz1=vbuz2_bor_vbuzz +tza +ora {z2} +sta {z1} //FRAGMENT vbuxx=vbuaa tax //FRAGMENT vbuyy=vbuaa @@ -2403,49 +1346,827 @@ sta {z1}+3 NO_SYNTHESIS //FRAGMENT vduz1=vwsc1 NO_SYNTHESIS -//FRAGMENT pbuz1_lt_pbuc1_then_la1 +//FRAGMENT vbuz1=_deref_pbuc1 +lda {c1} +sta {z1} +//FRAGMENT _deref_pwuc1=vwuc2 +lda #<{c2} +sta {c1} +lda #>{c2} +sta {c1}+1 +//FRAGMENT _deref_qbuc1=pbuc2 +lda #<{c2} +sta {c1} +lda #>{c2} +sta {c1}+1 +//FRAGMENT _deref_pbuc1=vbuz1 +lda {z1} +sta {c1} +//FRAGMENT vbuaa=_deref_pbuc1 +lda {c1} +//FRAGMENT vbuxx=_deref_pbuc1 +ldx {c1} +//FRAGMENT _deref_pbuc1=vbuxx +stx {c1} +//FRAGMENT vbuyy=_deref_pbuc1 +ldy {c1} +//FRAGMENT _deref_pbuc1=vbuyy +sty {c1} +//FRAGMENT vbuzz=_deref_pbuc1 +ldz {c1} +//FRAGMENT _deref_pbuc1=vbuzz +stz {c1} +//FRAGMENT isr_hardware_all_entry +pha @clob_a +phx @clob_x +phy @clob_y +phz @clob_z +//FRAGMENT vbuz1_neq_vbuc1_then_la1 +lda #{c1} +cmp {z1} +bne {la1} +//FRAGMENT vbuz1=_dec_vbuz1 +dec {z1} +//FRAGMENT vbuz1=_deref_pbuz2 +ldy #0 +lda ({z2}),y +sta {z1} +//FRAGMENT vbuz1_neq_0_then_la1 +lda {z1} +bne {la1} +//FRAGMENT isr_hardware_all_exit +plz @clob_z +ply @clob_y +plx @clob_x +pla @clob_a +rti +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_band_vbuc2 +lda #{c2} +ldy {z2} +and {c1},y +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_ror_1 +ldy {z2} +lda {c1},y +lsr +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} +//FRAGMENT vbuz1=vbuz1_plus_vbuc1 +lda #{c1} +clc +adc {z1} +sta {z1} +//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2 +lda #{c2} +ldy {z1} +sta {c1},y +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_ror_2 +ldy {z2} +lda {c1},y +lsr +lsr +sta {z1} +//FRAGMENT vbuz1=vbuz2_ror_1 +lda {z2} +lsr +sta {z1} +//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 +ldy {z2} +lda {c2},y +ldy {z1} +sta {c1},y +//FRAGMENT vbuz1_eq_vbuc1_then_la1 +lda #{c1} +cmp {z1} +beq {la1} +//FRAGMENT vbuz1=vbuz2_plus_1 +lda {z2} +inc +sta {z1} +//FRAGMENT vbuz1_eq__deref_pbuc1_then_la1 +lda {c1} +cmp {z1} +beq {la1} +//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuz1 +ldy {z1} +lda {c2},y +sta {c1} +//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuc2 +lda #{c2} +and {c1} +sta {c1} +//FRAGMENT _deref_qprc1=pprc2 +lda #<{c2} +sta {c1} +lda #>{c2} +sta {c1}+1 +//FRAGMENT pbuz1_neq_pbuc1_then_la1 lda {z1}+1 cmp #>{c1} -bcc {la1} -bne !+ +bne {la1} lda {z1} cmp #<{c1} -bcc {la1} -!: -//FRAGMENT vbuz1=_lo_pbuz2 -lda {z2} -sta {z1} -//FRAGMENT _deref_pbuz1=vbuz2 -lda {z2} +bne {la1} +//FRAGMENT vbuaa_neq_vbuc1_then_la1 +cmp #{c1} +bne {la1} +//FRAGMENT vbuaa=_deref_pbuz1 ldy #0 -sta ({z1}),y -//FRAGMENT vbuaa=_lo_pbuz1 -lda {z1} -//FRAGMENT vbuxx=_lo_pbuz1 -ldx {z1} -//FRAGMENT _deref_pbuz1=vbuaa +lda ({z1}),y +//FRAGMENT vbuxx=_deref_pbuz1 ldy #0 -sta ({z1}),y -//FRAGMENT _deref_pbuz1=vbuxx -txa +lda ({z1}),y +tax +//FRAGMENT vbuyy=_deref_pbuz1 ldy #0 -sta ({z1}),y -//FRAGMENT _deref_pbuz1=vbuyy -tya +lda ({z1}),y +tay +//FRAGMENT vbuzz=_deref_pbuz1 ldy #0 -sta ({z1}),y -//FRAGMENT _deref_pbuz1=vbuzz -tza -ldy #0 -sta ({z1}),y -//FRAGMENT vbuyy=_lo_pbuz1 +lda ({z1}),y +taz +//FRAGMENT vbuaa_neq_0_then_la1 +cmp #0 +bne {la1} +//FRAGMENT _deref_pbuc1=vbuaa +sta {c1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_band_vbuc2 +lda #{c2} ldy {z1} -//FRAGMENT vbuzz=_lo_pbuz1 +and {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_band_vbuc2 +lda #{c2} +ldx {z1} +and {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_band_vbuc2 +lda #{c2} +ldy {z1} +and {c1},y +tay +//FRAGMENT vbuzz=pbuc1_derefidx_vbuz1_band_vbuc2 +lda #{c2} +ldy {z1} +and {c1},y +taz +//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_band_vbuc2 +tay +lda #{c2} +and {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_band_vbuc2 +tay +lda #{c2} +and {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_band_vbuc2 +tax +lda #{c2} +and {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_band_vbuc2 +tay +lda #{c2} +and {c1},y +tay +//FRAGMENT vbuzz=pbuc1_derefidx_vbuaa_band_vbuc2 +tay +lda #{c2} +and {c1},y +taz +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_band_vbuc2 +lda #{c2} +and {c1},x +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_band_vbuc2 +lda #{c2} +and {c1},x +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_band_vbuc2 +lda #{c2} +and {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_band_vbuc2 +lda #{c2} +and {c1},x +tay +//FRAGMENT vbuzz=pbuc1_derefidx_vbuxx_band_vbuc2 +lda #{c2} +and {c1},x +taz +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_band_vbuc2 +lda #{c2} +and {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_band_vbuc2 +lda #{c2} +and {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_band_vbuc2 +lda #{c2} +and {c1},y +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_band_vbuc2 +lda #{c2} +and {c1},y +tay +//FRAGMENT vbuzz=pbuc1_derefidx_vbuyy_band_vbuc2 +lda #{c2} +and {c1},y +taz +//FRAGMENT vbuz1=pbuc1_derefidx_vbuzz_band_vbuc2 +tza +tay +lda #{c2} +and {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuzz_band_vbuc2 +tza +tay +lda #{c2} +and {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuzz_band_vbuc2 +tza +tax +lda #{c2} +and {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuzz_band_vbuc2 +tza +tay +lda #{c2} +and {c1},y +tay +//FRAGMENT vbuzz=pbuc1_derefidx_vbuzz_band_vbuc2 +tza +tay +lda #{c2} +and {c1},y +taz +//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_ror_1 +ldy {z1} +lda {c1},y +lsr +//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_ror_1 +ldx {z1} +lda {c1},x +lsr +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_ror_1 +ldy {z1} +lda {c1},y +lsr +tay +//FRAGMENT vbuzz=pbuc1_derefidx_vbuz1_ror_1 +ldy {z1} +lda {c1},y +lsr +taz +//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_ror_1 +tay +lda {c1},y +lsr +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_ror_1 +tay +lda {c1},y +lsr +//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_ror_1 +tax +lda {c1},x +lsr +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_ror_1 +tay +lda {c1},y +lsr +tay +//FRAGMENT vbuzz=pbuc1_derefidx_vbuaa_ror_1 +tay +lda {c1},y +lsr +taz +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_ror_1 +lda {c1},x +lsr +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_ror_1 +lda {c1},x +lsr +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_ror_1 +lda {c1},x +lsr +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_ror_1 +lda {c1},x +lsr +tay +//FRAGMENT vbuzz=pbuc1_derefidx_vbuxx_ror_1 +lda {c1},x +lsr +taz +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_ror_1 +lda {c1},y +lsr +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_ror_1 +lda {c1},y +lsr +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_ror_1 +lda {c1},y +lsr +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_ror_1 +lda {c1},y +lsr +tay +//FRAGMENT vbuzz=pbuc1_derefidx_vbuyy_ror_1 +lda {c1},y +lsr +taz +//FRAGMENT vbuz1=pbuc1_derefidx_vbuzz_ror_1 +tza +tay +lda {c1},y +lsr +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuzz_ror_1 +tza +tay +lda {c1},y +lsr +//FRAGMENT vbuxx=pbuc1_derefidx_vbuzz_ror_1 +tza +tax +lda {c1},x +lsr +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuzz_ror_1 +tza +tay +lda {c1},y +lsr +tay +//FRAGMENT vbuzz=pbuc1_derefidx_vbuzz_ror_1 +tza +tay +lda {c1},y +lsr +taz +//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 vbuz1=vbuaa_rol_4 +asl +asl +asl +asl +sta {z1} +//FRAGMENT vbuaa=vbuaa_rol_4 +asl +asl +asl +asl +//FRAGMENT vbuxx=vbuaa_rol_4 +asl +asl +asl +asl +tax +//FRAGMENT vbuyy=vbuaa_rol_4 +asl +asl +asl +asl +tay +//FRAGMENT vbuzz=vbuaa_rol_4 +asl +asl +asl +asl +taz +//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 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_vbuzz=vbuc2 +tza +tay +lda #{c2} +sta {c1},y +//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_ror_2 +ldy {z1} +lda {c1},y +lsr +lsr +//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_ror_2 +ldx {z1} +lda {c1},x +lsr +lsr +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_ror_2 +ldy {z1} +lda {c1},y +lsr +lsr +tay +//FRAGMENT vbuzz=pbuc1_derefidx_vbuz1_ror_2 +ldy {z1} +lda {c1},y +lsr +lsr +taz +//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_ror_2 +tay +lda {c1},y +lsr +lsr +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_ror_2 +tay +lda {c1},y +lsr +lsr +//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_ror_2 +tax +lda {c1},x +lsr +lsr +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_ror_2 +tay +lda {c1},y +lsr +lsr +tay +//FRAGMENT vbuzz=pbuc1_derefidx_vbuaa_ror_2 +tay +lda {c1},y +lsr +lsr +taz +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_ror_2 +lda {c1},x +lsr +lsr +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_ror_2 +lda {c1},x +lsr +lsr +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_ror_2 +lda {c1},x +lsr +lsr +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_ror_2 +lda {c1},x +lsr +lsr +tay +//FRAGMENT vbuzz=pbuc1_derefidx_vbuxx_ror_2 +lda {c1},x +lsr +lsr +taz +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_ror_2 +lda {c1},y +lsr +lsr +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_ror_2 +lda {c1},y +lsr +lsr +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_ror_2 +lda {c1},y +lsr +lsr +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_ror_2 +lda {c1},y +lsr +lsr +tay +//FRAGMENT vbuzz=pbuc1_derefidx_vbuyy_ror_2 +lda {c1},y +lsr +lsr +taz +//FRAGMENT vbuz1=pbuc1_derefidx_vbuzz_ror_2 +tza +tay +lda {c1},y +lsr +lsr +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuzz_ror_2 +tza +tay +lda {c1},y +lsr +lsr +//FRAGMENT vbuxx=pbuc1_derefidx_vbuzz_ror_2 +tza +tax +lda {c1},x +lsr +lsr +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuzz_ror_2 +tza +tay +lda {c1},y +lsr +lsr +tay +//FRAGMENT vbuzz=pbuc1_derefidx_vbuzz_ror_2 +tza +tay +lda {c1},y +lsr +lsr +taz +//FRAGMENT vbuz1=vbuaa_ror_1 +lsr +sta {z1} +//FRAGMENT vbuz1=vbuxx_ror_1 +txa +lsr +sta {z1} +//FRAGMENT vbuz1=vbuyy_ror_1 +tya +lsr +sta {z1} +//FRAGMENT vbuz1=vbuzz_ror_1 +tza +lsr +sta {z1} +//FRAGMENT vbuaa=vbuz1_ror_1 +lda {z1} +lsr +//FRAGMENT vbuaa=vbuaa_ror_1 +lsr +//FRAGMENT vbuaa=vbuxx_ror_1 +txa +lsr +//FRAGMENT vbuaa=vbuyy_ror_1 +tya +lsr +//FRAGMENT vbuaa=vbuzz_ror_1 +tza +lsr +//FRAGMENT vbuxx=vbuz1_ror_1 +lda {z1} +lsr +tax +//FRAGMENT vbuxx=vbuaa_ror_1 +lsr +tax +//FRAGMENT vbuxx=vbuxx_ror_1 +txa +lsr +tax +//FRAGMENT vbuxx=vbuyy_ror_1 +tya +lsr +tax +//FRAGMENT vbuxx=vbuzz_ror_1 +tza +lsr +tax +//FRAGMENT vbuyy=vbuz1_ror_1 +lda {z1} +lsr +tay +//FRAGMENT vbuyy=vbuaa_ror_1 +lsr +tay +//FRAGMENT vbuyy=vbuxx_ror_1 +txa +lsr +tay +//FRAGMENT vbuyy=vbuyy_ror_1 +tya +lsr +tay +//FRAGMENT vbuyy=vbuzz_ror_1 +tza +lsr +tay +//FRAGMENT vbuzz=vbuz1_ror_1 +lda {z1} +lsr +taz +//FRAGMENT vbuzz=vbuaa_ror_1 +lsr +taz +//FRAGMENT vbuzz=vbuxx_ror_1 +txa +lsr +taz +//FRAGMENT vbuzz=vbuyy_ror_1 +tya +lsr +taz +//FRAGMENT vbuzz=vbuzz_ror_1 +tza +lsr +taz +//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuz1 +ldy {z1} +lda {c2},y +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuz1 +ldx {z1} +lda {c2},x +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuzz=pbuc2_derefidx_vbuz1 +ldx {z1} +tza +tay +lda {c2},x +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuxx +lda {c2},x +ldy {z1} +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx +lda {c2},x +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuzz=pbuc2_derefidx_vbuxx +tza +tay +lda {c2},x +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuyy +lda {c2},y +ldy {z1} +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy +lda {c2},y +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuzz=pbuc2_derefidx_vbuyy +tza +tax +lda {c2},y +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuzz +tza +tay +lda {c2},y +ldy {z1} +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuzz +tza +tay +lda {c2},y +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuzz +tza +tax +lda {c2},x +sta {c1},y +//FRAGMENT vbuaa_eq_vbuc1_then_la1 +cmp #{c1} +beq {la1} +//FRAGMENT vbuaa=vbuz1_plus_1 +lda {z1} +inc +//FRAGMENT vbuxx=vbuz1_plus_1 +ldx {z1} +inx +//FRAGMENT vbuaa_eq__deref_pbuc1_then_la1 +cmp {c1} +beq {la1} +//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuxx +lda {c2},x +sta {c1} +//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuyy +lda {c2},y +sta {c1} +//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuzz +tza +tay +lda {c2},y +sta {c1} +//FRAGMENT vbuxx_neq_0_then_la1 +cpx #0 +bne {la1} +//FRAGMENT vbuxx_neq_vbuc1_then_la1 +cpx #{c1} +bne {la1} +//FRAGMENT vbuxx_eq_vbuc1_then_la1 +cpx #{c1} +beq {la1} +//FRAGMENT vbuyy_neq_0_then_la1 +cpy #0 +bne {la1} +//FRAGMENT vbuzz_neq_0_then_la1 +cpz #0 +bne {la1} +//FRAGMENT vbuaa=_dec_vbuaa +sec +sbc #1 +//FRAGMENT vbuaa=_inc_vbuaa +inc +//FRAGMENT vbuxx=_dec_vbuxx +dex +//FRAGMENT vbuyy=_dec_vbuyy +dey +//FRAGMENT vbuzz=_dec_vbuzz +dez +//FRAGMENT vbuaa=vbuc1 +lda #{c1} +//FRAGMENT vbuxx_eq__deref_pbuc1_then_la1 +cpx {c1} +beq {la1} +//FRAGMENT vbuyy_eq__deref_pbuc1_then_la1 +cpy {c1} +beq {la1} +//FRAGMENT vbuzz_eq__deref_pbuc1_then_la1 +cpz {c1} +beq {la1} +//FRAGMENT vbuyy=vbuz1 +ldy {z1} +//FRAGMENT vbuzz=vbuz1 ldz {z1} +//FRAGMENT vbuyy_neq_vbuc1_then_la1 +cpy #{c1} +bne {la1} +//FRAGMENT vbuzz_neq_vbuc1_then_la1 +cpz #{c1} +bne {la1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy +lda {c1},y +sta {z1} +//FRAGMENT vbuyy_eq_vbuc1_then_la1 +cpy #{c1} +beq {la1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuzz +tza +tay +lda {c1},y +sta {z1} +//FRAGMENT vbuzz_eq_vbuc1_then_la1 +cpz #{c1} +beq {la1} +//FRAGMENT vbuyy=vbuz1_plus_1 +ldy {z1} +iny +//FRAGMENT vbuaa=pbuc1_derefidx_vbuzz +tza +tay +lda {c1},y +//FRAGMENT vbuyy=pbuc1_derefidx_vbuzz +tza +tax +ldy {c1},x +//FRAGMENT vbuaa=vbuaa_plus_1 +inc +//FRAGMENT vbuaa=vbuyy_plus_1 +tya +inc //FRAGMENT vbuz1=_deref_pbuc1_plus_1 lda {c1} inc sta {z1} +//FRAGMENT vwuz1=_word_vbuz2 +lda {z2} +sta {z1} +lda #0 +sta {z1}+1 //FRAGMENT vwuz1=vwuz2_rol_2 lda {z2} asl @@ -2500,6 +2221,19 @@ sta ({z1}),z lda #{c1} ldz {z2} sta ({z1}),z +//FRAGMENT pbuz1=pbuz1_plus_vbuc1 +lda #{c1} +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT pvoz1=pvoc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 //FRAGMENT pbuz1=pbuz1_minus_vbuc1 sec lda {z1} @@ -2542,6 +2276,21 @@ inc //FRAGMENT vbuxx=_deref_pbuc1_plus_1 ldx {c1} inx +//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 0_neq_vbuaa_then_la1 cmp #0 bne {la1} @@ -2609,3 +2358,254 @@ asw {z1} asw {z1} asw {z1} asw {z1} +//FRAGMENT vwuz1=vwuc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT pwuz1=pbuc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT pbuz1=pbuz1_plus_vwuc1 +clc +lda {z1} +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT pbuz1_derefidx_vbuz2=pbuz3_derefidx_vbuz2 +ldy {z2} +lda ({z3}),y +sta ({z1}),y +//FRAGMENT pwuz1=pwuz1_plus_vbuc1 +lda #{c1} +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT vbuz1=vbuz2_rol_1 +lda {z2} +asl +sta {z1} +//FRAGMENT pwuz1_derefidx_vbuz2=vwuz3 +ldy {z2} +lda {z3} +sta ({z1}),y +iny +lda {z3}+1 +sta ({z1}),y +//FRAGMENT vwuz1=vwuz1_plus_vbuc1 +lda #{c1} +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT _deref_pwuc1=vwuz1 +lda {z1} +sta {c1} +lda {z1}+1 +sta {c1}+1 +//FRAGMENT _deref_qbuc1=_ptr_vbuz1 +lda {z1} +sta {c1} +lda #0 +sta {c1}+1 +//FRAGMENT _deref_qbuc1=pbuz1 +lda {z1} +sta {c1} +lda {z1}+1 +sta {c1}+1 +//FRAGMENT pbuz1_derefidx_vbuaa=pbuz2_derefidx_vbuaa +tay +lda ({z2}),y +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuxx=pbuz2_derefidx_vbuxx +txa +tay +lda ({z2}),y +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuyy=pbuz2_derefidx_vbuyy +lda ({z2}),y +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuzz=pbuz2_derefidx_vbuzz +tza +tay +lda ({z2}),y +sta ({z1}),y +//FRAGMENT vwuz1=_word_vbuaa +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vbuz1=vbuaa_rol_1 +asl +sta {z1} +//FRAGMENT vbuz1=vbuxx_rol_1 +txa +asl +sta {z1} +//FRAGMENT vbuz1=vbuyy_rol_1 +tya +asl +sta {z1} +//FRAGMENT vbuz1=vbuzz_rol_1 +tza +asl +sta {z1} +//FRAGMENT vbuaa=vbuz1_rol_1 +lda {z1} +asl +//FRAGMENT vbuaa=vbuaa_rol_1 +asl +//FRAGMENT vbuaa=vbuxx_rol_1 +txa +asl +//FRAGMENT vbuaa=vbuyy_rol_1 +tya +asl +//FRAGMENT vbuaa=vbuzz_rol_1 +tza +asl +//FRAGMENT vbuxx=vbuz1_rol_1 +lda {z1} +asl +tax +//FRAGMENT vbuxx=vbuaa_rol_1 +asl +tax +//FRAGMENT vbuxx=vbuxx_rol_1 +txa +asl +tax +//FRAGMENT vbuxx=vbuyy_rol_1 +tya +asl +tax +//FRAGMENT vbuxx=vbuzz_rol_1 +tza +asl +tax +//FRAGMENT vbuyy=vbuz1_rol_1 +lda {z1} +asl +tay +//FRAGMENT vbuyy=vbuaa_rol_1 +asl +tay +//FRAGMENT vbuyy=vbuxx_rol_1 +txa +asl +tay +//FRAGMENT vbuyy=vbuyy_rol_1 +tya +asl +tay +//FRAGMENT vbuyy=vbuzz_rol_1 +tza +asl +tay +//FRAGMENT vbuzz=vbuz1_rol_1 +lda {z1} +asl +taz +//FRAGMENT vbuzz=vbuaa_rol_1 +asl +taz +//FRAGMENT vbuzz=vbuxx_rol_1 +txa +asl +taz +//FRAGMENT vbuzz=vbuyy_rol_1 +tya +asl +taz +//FRAGMENT vbuzz=vbuzz_rol_1 +tza +asl +taz +//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 pwuz1_derefidx_vbuzz=vwuz2 +tza +tay +lda {z2} +sta ({z1}),y +iny +lda {z2}+1 +sta ({z1}),y +//FRAGMENT _deref_qbuc1=_ptr_vbuxx +txa +sta {c1} +lda #0 +sta {c1}+1 +//FRAGMENT _deref_qbuc1=_ptr_vbuyy +tya +sta {c1} +lda #0 +sta {c1}+1 +//FRAGMENT _deref_qbuc1=_ptr_vbuzz +tza +sta {c1} +lda #0 +sta {c1}+1 +//FRAGMENT _deref_pbuc1=_inc__deref_pbuc1 +inc {c1} +//FRAGMENT _deref_pbuc1_eq_vbuz1_then_la1 +lda {c1} +cmp {z1} +beq {la1} +//FRAGMENT _deref_pbuc1=_dec__deref_pbuc1 +dec {c1} +//FRAGMENT pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 +ldx {z1} +inc {c1},x +//FRAGMENT _deref_pbuc1_eq_vbuaa_then_la1 +cmp {c1} +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuaa +tax +inc {c1},x +//FRAGMENT pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuxx +inc {c1},x +//FRAGMENT pbuc1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuyy +lda {c1},y +inc +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuzz=_inc_pbuc1_derefidx_vbuzz +tza +tax +inc {c1},x +//FRAGMENT _deref_pbuc1_eq_vbuxx_then_la1 +cpx {c1} +beq {la1} +//FRAGMENT _deref_pbuc1_eq_vbuyy_then_la1 +cpy {c1} +beq {la1} +//FRAGMENT _deref_pbuc1_eq_vbuzz_then_la1 +cpz {c1} +beq {la1} diff --git a/src/main/fragment/cache/fragment-cache-mos6502.asm b/src/main/fragment/cache/fragment-cache-mos6502.asm index 64a568a9f..b97357c11 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 108dd16dc1 108dd18d7f +//KICKC FRAGMENT CACHE 11e0ba6c6b 11e0ba8c9f //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 c8630e54d..0f78935a1 100644 --- a/src/main/fragment/cache/fragment-cache-mos6502x.asm +++ b/src/main/fragment/cache/fragment-cache-mos6502x.asm @@ -1,86 +1,30 @@ -//KICKC FRAGMENT CACHE 108dd16dc1 108dd18d7f +//KICKC FRAGMENT CACHE 11e0ba6c6b 11e0ba8c9f +//FRAGMENT pssz1=pssc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 //FRAGMENT vbuz1=vbuc1 lda #{c1} sta {z1} -//FRAGMENT pbuz1=pbuc1 -lda #<{c1} -sta {z1} -lda #>{c1} -sta {z1}+1 -//FRAGMENT vwuz1=vwuc1 -lda #<{c1} -sta {z1} -lda #>{c1} -sta {z1}+1 -//FRAGMENT vwsz1=vwsc1 -lda #<{c1} -sta {z1} -lda #>{c1} -sta {z1}+1 -//FRAGMENT vwsz1=vwsz1_plus_vbsc1 -clc +//FRAGMENT vbuz1_lt_vbuc1_then_la1 lda {z1} -adc #<{c1} -sta {z1} -lda {z1}+1 -adc #>{c1} -sta {z1}+1 -//FRAGMENT vwuz1=vwuz1_plus_vwuc1 -clc -lda {z1} -adc #<{c1} -sta {z1} -lda {z1}+1 -adc #>{c1} -sta {z1}+1 -//FRAGMENT vwsz1=vwsz2 -lda {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vwuz1=vwuz2 -lda {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vbuz1=_inc_vbuz1 -inc {z1} -//FRAGMENT vbuz1_neq_vbuc1_then_la1 -lda #{c1} -cmp {z1} -bne {la1} -//FRAGMENT pbuz1=pbuz2 -lda {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vwsz1_lt_0_then_la1 -lda {z1}+1 -bmi {la1} -//FRAGMENT vwsz1=_neg_vwsz1 -sec -lda #0 -sbc {z1} -sta {z1} -lda #0 -sbc {z1}+1 -sta {z1}+1 -//FRAGMENT _deref_pbuz1=vbuz2 -lda {z2} -ldy #0 -sta ({z1}),y -//FRAGMENT pbuz1=_inc_pbuz1 -inc {z1} -bne !+ -inc {z1}+1 -!: -//FRAGMENT vbuz1=_hi_vwuz2 -lda {z2}+1 -sta {z1} -//FRAGMENT vbuz1=_lo_vwuz2 -lda {z2} -sta {z1} -//FRAGMENT pbuz1=pbuz1_plus_vbuc1 +cmp #{c1} +bcc {la1} +//FRAGMENT (qwuz1_derefidx_vbuc1)_derefidx_vbuc2=pwuz1_derefidx_vbuc2 +ldy #{c1} +lda ({z1}),y +sta $fe +iny +lda ({z1}),y +sta $ff +ldy #{c2} +lda ({z1}),y +sta ($fe),y +iny +lda ({z1}),y +sta ($fe),y +//FRAGMENT pssz1=pssz1_plus_vbuc1 lda #{c1} clc adc {z1} @@ -88,181 +32,196 @@ sta {z1} bcc !+ inc {z1}+1 !: -//FRAGMENT pbuz1_lt_pbuz2_then_la1 -lda {z1}+1 -cmp {z2}+1 +//FRAGMENT vbuz1=_inc_vbuz1 +inc {z1} +//FRAGMENT vbuaa_lt_vbuc1_then_la1 +cmp #{c1} bcc {la1} -bne !+ +//FRAGMENT vbuxx_lt_vbuc1_then_la1 +cpx #{c1} +bcc {la1} +//FRAGMENT vbuxx=vbuc1 +ldx #{c1} +//FRAGMENT vbuxx=_inc_vbuxx +inx +//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2 +lda #{c2} +ldy {z1} +sta {c1},y +//FRAGMENT _deref_pbuc1=vbuc2 +lda #{c2} +sta {c1} +//FRAGMENT vbuz1=vbuz1_plus_2 +lda {z1} +clc +adc #2 +sta {z1} +//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 vbuxx=vbuxx_plus_2 +inx +inx +//FRAGMENT vbuyy=vbuc1 +ldy #{c1} +//FRAGMENT vbuyy_lt_vbuc1_then_la1 +cpy #{c1} +bcc {la1} +//FRAGMENT vbuyy=vbuyy_plus_2 +iny +iny +//FRAGMENT vbuz1_eq_vbuz2_then_la1 lda {z1} cmp {z2} -bcc {la1} -!: -//FRAGMENT vbuz1=vbuz2_ror_4 +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuz1=vbuz2 lda {z2} -lsr -lsr -lsr -lsr -sta {z1} -//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2 -ldy {z2} -lda {c1},y -sta {z1} +ldy {z1} +sta {c1},y +//FRAGMENT vbuz1_eq_vbuaa_then_la1 +cmp {z1} +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuz1=vbuxx +ldy {z1} +txa +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuz1=vbuyy +tya +ldy {z1} +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuxx=vbuz1 +lda {z1} +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuxx=vbuxx +txa +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuxx=vbuyy +tya +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuyy=vbuz1 +lda {z1} +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuyy=vbuxx +txa +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuyy=vbuyy +tya +sta {c1},y +//FRAGMENT vbuyy=_inc_vbuyy +iny +//FRAGMENT vbuaa=vbuc1 +lda #{c1} +//FRAGMENT vbuz1_eq_vbuyy_then_la1 +tya +cmp {z1} +beq {la1} +//FRAGMENT vbuyy_eq_vbuz1_then_la1 +tya +cmp {z1} +beq {la1} +//FRAGMENT vbuyy_eq_vbuaa_then_la1 +tax +sty $ff +cpx $ff +beq {la1} //FRAGMENT vbuz1=vbuz2_band_vbuc1 lda #{c1} and {z2} sta {z1} -//FRAGMENT vbuxx_neq_vbuc1_then_la1 -cpx #{c1} +//FRAGMENT vbuz1_ge_vbuc1_then_la1 +lda {z1} +cmp #{c1} +bcs {la1} +//FRAGMENT vbuz1_neq_0_then_la1 +lda {z1} bne {la1} -//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 vbuaa=_hi_vwuz1 -lda {z1}+1 -//FRAGMENT vbuxx=_hi_vwuz1 -ldx {z1}+1 -//FRAGMENT vbuaa=_lo_vwuz1 -lda {z1} -//FRAGMENT vbuxx=_lo_vwuz1 -ldx {z1} -//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 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 vbuz1=vbuxx_band_vbuc1 +//FRAGMENT vbuz1_neq_vbuc1_then_la1 lda #{c1} -sax {z1} +cmp {z1} +bne {la1} //FRAGMENT vbuaa=vbuz1_band_vbuc1 lda #{c1} and {z1} -//FRAGMENT vbuaa=vbuxx_band_vbuc1 -txa -and #{c1} //FRAGMENT vbuxx=vbuz1_band_vbuc1 lda #{c1} and {z1} tax -//FRAGMENT vbuxx=vbuxx_band_vbuc1 -lda #{c1} -axs #0 //FRAGMENT vbuyy=vbuz1_band_vbuc1 lda #{c1} and {z1} tay +//FRAGMENT vbuz1=vbuaa_band_vbuc1 +and #{c1} +sta {z1} +//FRAGMENT vbuaa=vbuaa_band_vbuc1 +and #{c1} +//FRAGMENT vbuxx=vbuaa_band_vbuc1 +ldx #{c1} +axs #0 +//FRAGMENT vbuaa_ge_vbuc1_then_la1 +cmp #{c1} +bcs {la1} +//FRAGMENT vbuaa_neq_0_then_la1 +cmp #0 +bne {la1} +//FRAGMENT vbuxx_neq_vbuc1_then_la1 +cpx #{c1} +bne {la1} +//FRAGMENT vbuz1=vbuxx_band_vbuc1 +lda #{c1} +sax {z1} +//FRAGMENT vbuaa=vbuxx_band_vbuc1 +txa +and #{c1} +//FRAGMENT vbuxx=vbuxx_band_vbuc1 +lda #{c1} +axs #0 //FRAGMENT vbuyy=vbuxx_band_vbuc1 txa and #{c1} tay -//FRAGMENT vbuaa=vbuc1 -lda #{c1} -//FRAGMENT vbuxx=vbuc1 +//FRAGMENT vbuz1=vbuyy_band_vbuc1 +tya +and #{c1} +sta {z1} +//FRAGMENT vbuaa=vbuyy_band_vbuc1 +tya +and #{c1} +//FRAGMENT vbuxx=vbuyy_band_vbuc1 ldx #{c1} -//FRAGMENT vbuyy=vbuc1 -ldy #{c1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx -lda {c1},x -//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy -lda {c1},y +tya +axs #0 +//FRAGMENT vbuyy=vbuyy_band_vbuc1 +tya +and #{c1} +tay +//FRAGMENT vbuxx_ge_vbuc1_then_la1 +cpx #{c1} +bcs {la1} +//FRAGMENT vbuyy_ge_vbuc1_then_la1 +cpy #{c1} +bcs {la1} +//FRAGMENT vbuyy_neq_vbuc1_then_la1 +cpy #{c1} +bne {la1} +//FRAGMENT vbuxx_neq_0_then_la1 +cpx #0 +bne {la1} +//FRAGMENT vbuyy_neq_0_then_la1 +cpy #0 +bne {la1} +//FRAGMENT pbuz1=pbuc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 //FRAGMENT 0_neq_pbuz1_derefidx_vbuz2_then_la1 ldy {z2} lda ({z1}),y @@ -274,11 +233,6 @@ ldx {z1} //FRAGMENT vbuaa=pbuz1_derefidx_vbuz2 ldy {z2} lda ({z1}),y -//FRAGMENT vbuz1=vbuz1_plus_2 -lda {z1} -clc -adc #2 -sta {z1} //FRAGMENT pbuz1_derefidx_vbuxx=vbuaa stx $ff ldy $ff @@ -307,39 +261,188 @@ tay lda ({z1}),y //FRAGMENT vbuaa=pbuz1_derefidx_vbuyy lda ({z1}),y -//FRAGMENT vbuxx=vbuxx_plus_2 -inx -inx +//FRAGMENT vbuz1=vbuz2 +lda {z2} +sta {z1} +//FRAGMENT _deref_pbuc1=vbuz1 +lda {z1} +sta {c1} +//FRAGMENT vbuz1_neq_vbuz2_then_la1 +lda {z1} +cmp {z2} +bne {la1} +//FRAGMENT vbuz1_gt_vbuz2_then_la1 +lda {z2} +cmp {z1} +bcc {la1} +//FRAGMENT vbuz1=vbuz1_minus_vbuz2 +lda {z1} +sec +sbc {z2} +sta {z1} +//FRAGMENT vbuaa=vbuz1 +lda {z1} +//FRAGMENT _deref_pbuc1=vbuaa +sta {c1} +//FRAGMENT vbuz1_neq_vbuaa_then_la1 +cmp {z1} +bne {la1} +//FRAGMENT vbuz1_gt_vbuaa_then_la1 +cmp {z1} +bcc {la1} +//FRAGMENT vbuaa=vbuaa_minus_vbuz1 +sec +sbc {z1} +//FRAGMENT vbuxx=vbuxx_minus_vbuz1 +txa +sec +sbc {z1} +tax +//FRAGMENT vbuyy=vbuyy_minus_vbuz1 +tya +sec +sbc {z1} +tay +//FRAGMENT vbuz1=vbuz1_minus_vbuaa +eor #$ff +sec +adc {z1} +sta {z1} +//FRAGMENT vbuaa=vbuaa_minus_vbuaa +lda #0 +//FRAGMENT vbuxx=vbuxx_minus_vbuaa +sta $ff +txa +sec +sbc $ff +tax +//FRAGMENT vbuyy=vbuyy_minus_vbuaa +sta $ff +tya +sec +sbc $ff +tay +//FRAGMENT vbuz1=vbuz1_minus_vbuxx +txa +eor #$ff +sec +adc {z1} +sta {z1} +//FRAGMENT vbuaa=vbuaa_minus_vbuxx +stx $ff +sec +sbc $ff +//FRAGMENT vbuxx=vbuxx_minus_vbuxx +lda #0 +tax +//FRAGMENT vbuyy=vbuyy_minus_vbuxx +tya +stx $ff +sec +sbc $ff +tay +//FRAGMENT vbuz1=vbuz1_minus_vbuyy +tya +eor #$ff +sec +adc {z1} +sta {z1} +//FRAGMENT vbuaa=vbuaa_minus_vbuyy +sty $ff +sec +sbc $ff +//FRAGMENT vbuxx=vbuxx_minus_vbuyy +txa +sty $ff +sec +sbc $ff +tax +//FRAGMENT vbuyy=vbuyy_minus_vbuyy +lda #0 +tay +//FRAGMENT vbuz1_neq_vbuxx_then_la1 +cpx {z1} +bne {la1} +//FRAGMENT vbuz1_gt_vbuxx_then_la1 +cpx {z1} +bcc {la1} +//FRAGMENT vbuz1_neq_vbuyy_then_la1 +cpy {z1} +bne {la1} +//FRAGMENT vbuz1_gt_vbuyy_then_la1 +cpy {z1} +bcc {la1} +//FRAGMENT vbuz1=vbuxx +stx {z1} +//FRAGMENT vbuxx_neq_vbuz1_then_la1 +cpx {z1} +bne {la1} +//FRAGMENT vbuxx_gt_vbuz1_then_la1 +cpx {z1} +beq !+ +bcs {la1} +!: +//FRAGMENT vbuxx_neq_vbuyy_then_la1 +stx $ff +cpy $ff +bne {la1} +//FRAGMENT vbuxx_gt_vbuyy_then_la1 +stx $ff +cpy $ff +bcc {la1} +//FRAGMENT vbuz1=vbuyy +sty {z1} +//FRAGMENT vbuyy_neq_vbuz1_then_la1 +cpy {z1} +bne {la1} +//FRAGMENT vbuyy_gt_vbuz1_then_la1 +cpy {z1} +beq !+ +bcs {la1} +!: +//FRAGMENT vbuyy_neq_vbuxx_then_la1 +stx $ff +cpy $ff +bne {la1} +//FRAGMENT vbuyy_gt_vbuxx_then_la1 +sty $ff +cpx $ff +bcc {la1} +//FRAGMENT vbuz1=vbuaa +sta {z1} +//FRAGMENT vbuaa=vbuxx +txa +//FRAGMENT vbuaa=vbuyy +tya +//FRAGMENT vbuxx=vbuyy +tya +tax +//FRAGMENT vbuyy=vbuz1 +ldy {z1} +//FRAGMENT vbuyy=vbuxx +txa +tay +//FRAGMENT vbuxx=vbuaa +tax +//FRAGMENT _deref_pbuc1=vbuxx +stx {c1} +//FRAGMENT vbuyy=vbuaa +tay +//FRAGMENT _deref_pbuc1=vbuyy +sty {c1} //FRAGMENT pbuc1_derefidx_vbuz1=vbuz1 ldy {z1} tya sta {c1},y -//FRAGMENT vbuaa_neq_vbuc1_then_la1 -cmp #{c1} -bne {la1} //FRAGMENT pbuc1_derefidx_vbuaa=vbuaa tax sta {c1},x +//FRAGMENT vbuaa_neq_vbuc1_then_la1 +cmp #{c1} +bne {la1} //FRAGMENT vbuaa=_inc_vbuaa clc adc #1 -//FRAGMENT pbuc1_derefidx_vbuxx=vbuxx -txa -sta {c1},x -//FRAGMENT vbuxx=_inc_vbuxx -inx -//FRAGMENT vbuyy_neq_vbuc1_then_la1 -cpy #{c1} -bne {la1} -//FRAGMENT pbuc1_derefidx_vbuyy=vbuyy -tya -sta {c1},y -//FRAGMENT vbuyy=_inc_vbuyy -iny -//FRAGMENT vbuz1_lt_vbuc1_then_la1 -lda {z1} -cmp #{c1} -bcc {la1} //FRAGMENT vbuz1=vbuz2_rol_1 lda {z2} asl @@ -362,9 +465,6 @@ sta {c1},y lda {c1}+1,y adc {c2}+1,y sta {c1}+1,y -//FRAGMENT vbuaa_lt_vbuc1_then_la1 -cmp #{c1} -bcc {la1} //FRAGMENT vbuaa=vbuz1_rol_1 lda {z1} asl @@ -464,15 +564,30 @@ sta {c1},y lda {c1}+1,y adc {c2}+1,y sta {c1}+1,y -//FRAGMENT vbuxx_lt_vbuc1_then_la1 -cpx #{c1} -bcc {la1} -//FRAGMENT vbuyy_lt_vbuc1_then_la1 -cpy #{c1} -bcc {la1} -//FRAGMENT _deref_pbuc1=vbuc2 +//FRAGMENT isr_hardware_all_entry +sta rega+1 @clob_a +stx regx+1 @clob_x +sty regy+1 @clob_y +//FRAGMENT isr_hardware_all_exit +rega: @clob_a @nooptimize lda #0 @clob_a @nooptimize +regx: @clob_x @nooptimize ldx #0 @clob_x @nooptimize +regy: @clob_y @nooptimize ldy #0 @clob_y @nooptimize +rti +//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2 lda #{c2} +ora {c1} sta {c1} +//FRAGMENT _deref_qprc1=pprc2 +lda #<{c2} +sta {c1} +lda #>{c2} +sta {c1}+1 +//FRAGMENT _deref_pbuc1=_inc__deref_pbuc1 +inc {c1} +//FRAGMENT isr_rom_min_c64_entry + +//FRAGMENT isr_rom_min_c64_exit +jmp $ea81 //FRAGMENT vbuz1=_deref_pbuc1 lda {c1} sta {z1} @@ -480,10 +595,6 @@ sta {z1} lax {z2} axs #-[{c1}] stx {z1} -//FRAGMENT pbuc1_derefidx_vbuz1=vbuz2 -lda {z2} -ldy {z1} -sta {c1},y //FRAGMENT vbuaa=_deref_pbuc1 lda {c1} //FRAGMENT vbuxx=_deref_pbuc1 @@ -513,24 +624,10 @@ axs #-[{c1}] //FRAGMENT pbuc1_derefidx_vbuz1=vbuaa ldy {z1} sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuz1=vbuxx -ldy {z1} -txa -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuz1=vbuyy -tya -ldy {z1} -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_vbuxx=vbuaa sta {c1},x //FRAGMENT pbuc1_derefidx_vbuyy=vbuaa @@ -539,16 +636,10 @@ sta {c1},y tay txa sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuyy=vbuxx -txa -sta {c1},y //FRAGMENT pbuc1_derefidx_vbuaa=vbuyy tax tya sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuxx=vbuyy -tya -sta {c1},x //FRAGMENT vbuyy=vbuaa_plus_vbuc1 clc adc #{c1} @@ -585,106 +676,51 @@ axs #-[{c1}] ldy {z2} iny sty {z1} -//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2 -lda #{c2} -ldy {z1} -sta {c1},y -//FRAGMENT vbuz1=vbuz2 -lda {z2} -sta {z1} //FRAGMENT vbuz1=_inc_vbuaa clc adc #1 sta {z1} -//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 vbuaa=vbuz1 -lda {z1} //FRAGMENT vbuz1=_inc_vbuxx inx stx {z1} //FRAGMENT vbuz1=_inc_vbuyy iny sty {z1} -//FRAGMENT vbuyy=vbuz1 -ldy {z1} //FRAGMENT vbuaa=_inc_vbuz1 lda {z1} clc adc #1 -//FRAGMENT vbuz1=vbuaa -sta {z1} //FRAGMENT vbuaa=_inc_vbuxx inx txa -//FRAGMENT vbuxx=vbuaa -tax //FRAGMENT vbuaa=_inc_vbuyy iny tya -//FRAGMENT vbuyy=vbuaa -tay //FRAGMENT vbuxx=_inc_vbuz1 ldx {z1} inx -//FRAGMENT vbuz1=vbuxx -stx {z1} //FRAGMENT vbuxx=_inc_vbuaa tax inx -//FRAGMENT vbuaa=vbuxx -txa //FRAGMENT vbuxx=_inc_vbuyy tya tax inx -//FRAGMENT vbuyy=vbuxx -txa -tay //FRAGMENT vbuyy=_inc_vbuz1 ldy {z1} iny -//FRAGMENT vbuz1=vbuyy -sty {z1} //FRAGMENT vbuyy=_inc_vbuaa tay iny -//FRAGMENT vbuaa=vbuyy -tya //FRAGMENT vbuyy=_inc_vbuxx txa tay iny -//FRAGMENT vbuxx=vbuyy -tya -tax -//FRAGMENT vwsz1=vwsz2_minus_vbsc1 -lda {z2} -sec -sbc #{c1} +//FRAGMENT vwsz1=vwsc1 +lda #<{c1} sta {z1} -lda {z2}+1 -sbc #>{c1} +lda #>{c1} 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=vbuc1 -lda #{c1} -ldy #0 -sta ({z1}),y //FRAGMENT vwsz1=vwsz1_minus_vbsc1 lda {z1} sec @@ -715,6 +751,11 @@ lda {z1} sta {c1},y lda {z1}+1 sta {c1}+1,y +//FRAGMENT pvoz1=pvoc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 //FRAGMENT vbuz1=_bnot_vbuz2 lda {z2} eor #$ff @@ -802,6 +843,24 @@ inc {m1} lda #{c1} cmp {m1} bne {la1} +//FRAGMENT pbuz1_lt_pbuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bcc {la1} +bne !+ +lda {z1} +cmp #<{c1} +bcc {la1} +!: +//FRAGMENT _deref_pbuz1=vbuc1 +lda #{c1} +ldy #0 +sta ({z1}),y +//FRAGMENT pbuz1=_inc_pbuz1 +inc {z1} +bne !+ +inc {z1}+1 +!: //FRAGMENT vboz1=vbuz2_eq_vbuc1 lda {z2} eor #{c1} @@ -828,14 +887,6 @@ sta {z1} lda {z2} ora {z3} sta {z1} -//FRAGMENT vbuz1=vbuaa_band_vbuc1 -and #{c1} -sta {z1} -//FRAGMENT vbuaa=vbuaa_band_vbuc1 -and #{c1} -//FRAGMENT vbuxx=vbuaa_band_vbuc1 -ldx #{c1} -axs #0 //FRAGMENT vboaa=vbuz1_eq_vbuc1 lda {z1} eor #{c1} @@ -1234,21 +1285,6 @@ tya sty $ff ora $ff tay -//FRAGMENT vbuz1=vbuyy_band_vbuc1 -tya -and #{c1} -sta {z1} -//FRAGMENT vbuaa=vbuyy_band_vbuc1 -tya -and #{c1} -//FRAGMENT vbuxx=vbuyy_band_vbuc1 -ldx #{c1} -tya -axs #0 -//FRAGMENT vbuyy=vbuyy_band_vbuc1 -tya -and #{c1} -tay //FRAGMENT vbuyy=vbuaa_band_vbuc1 and #{c1} tay @@ -1431,1760 +1467,18 @@ dey bne !- !e: tay -//FRAGMENT _deref_pwsc1=vbsc2 -NO_SYNTHESIS -//FRAGMENT _deref_pwsc1=vwuc2 -NO_SYNTHESIS -//FRAGMENT _deref_pwsc1=vwsc2 -lda #<{c2} -sta {c1} -lda #>{c2} -sta {c1}+1 -//FRAGMENT vwsz1=vbsc1 -lda #<{c1} -sta {z1} -lda #>{c1} -sta {z1}+1 -//FRAGMENT vwsz1=vwsz2_rol_1 -lda {z2} -asl -sta {z1} -lda {z2}+1 -rol -sta {z1}+1 -//FRAGMENT pwsz1=pwsc1_plus_vwsz2 -clc -lda {z2} -adc #<{c1} -sta {z1} -lda {z2}+1 -adc #>{c1} -sta {z1}+1 -//FRAGMENT vwsz1=_deref_pwsz2 -ldy #0 -lda ({z2}),y -sta {z1} -iny -lda ({z2}),y -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 vwsz1_le_vwsz2_then_la1 -lda {z2} -cmp {z1} -lda {z2}+1 -sbc {z1}+1 -bvc !+ -eor #$80 -!: -bpl {la1} -//FRAGMENT vwsz1=_inc_vwsz1 -inc {z1} -bne !+ -inc {z1}+1 -!: -//FRAGMENT vwsz1_neq_0_then_la1 -lda {z1}+1 -ora {z1} -bne {la1} -//FRAGMENT _deref_pwsz1=vwsz2 -ldy #0 -lda {z2} -sta ({z1}),y -iny -lda {z2}+1 -sta ({z1}),y -//FRAGMENT vwsz1_lt_vwsc1_then_la1 -lda {z1} -cmp #<{c1} -lda {z1}+1 -sbc #>{c1} -bvc !+ -eor #$80 -!: -bmi {la1} -//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 vwsz1_ge_0_then_la1 -lda {z1}+1 -bpl {la1} -//FRAGMENT vwuz1=_hi_vduz2 -lda {z2}+2 -sta {z1} -lda {z2}+3 -sta {z1}+1 -//FRAGMENT vwuz1=vwuz2_minus_vwuz3 -lda {z2} -sec -sbc {z3} -sta {z1} -lda {z2}+1 -sbc {z3}+1 -sta {z1}+1 -//FRAGMENT vduz1=vduz1_sethi_vwuz2 -lda {z2} -sta {z1}+2 -lda {z2}+1 -sta {z1}+3 -//FRAGMENT vduz1=_dword_vwuz2 -lda {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -lda #0 -sta {z1}+2 -sta {z1}+3 -//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_neq_0_then_la1 -lda {z1} -ora {z1}+1 -bne {la1} -//FRAGMENT vbuz1=vwuz2_band_vbuc1 -lda #{c1} -and {z2} -sta {z1} //FRAGMENT vbuz1_eq_0_then_la1 lda {z1} beq {la1} -//FRAGMENT vduz1=vduz1_plus_vduz2 -lda {z1} -clc -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 vwsz1=_neg_vwsz2 -sec -lda #0 -sbc {z2} -sta {z1} -lda #0 -sbc {z2}+1 -sta {z1}+1 -//FRAGMENT vbuz1=vbuz1_bxor_vbuc1 -lda #{c1} -eor {z1} -sta {z1} -//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 vwuz1=pwuc1_derefidx_vbuz2 -ldy {z2} -lda {c1},y -sta {z1} -lda {c1}+1,y -sta {z1}+1 -//FRAGMENT 0_neq_vbuz1_then_la1 -lda {z1} -bne {la1} -//FRAGMENT vwuz1_ge_vwuz2_then_la1 -lda {z2}+1 -cmp {z1}+1 -bne !+ -lda {z2} -cmp {z1} -beq {la1} -!: -bcc {la1} -//FRAGMENT 0_neq__deref_pbuz1_then_la1 -ldy #0 -lda ({z1}),y -cmp #0 -bne {la1} -//FRAGMENT vbuz1=_deref_pbuz2 -ldy #0 -lda ({z2}),y -sta {z1} -//FRAGMENT vwuz1=vwuz1_rol_1 -asl {z1} -rol {z1}+1 -//FRAGMENT vwuz1=vwuz1_bor_vbuc1 -lda #{c1} -ora {z1} -sta {z1} -//FRAGMENT vwuz1_lt_vwuz2_then_la1 -lda {z1}+1 -cmp {z2}+1 -bcc {la1} -bne !+ -lda {z1} -cmp {z2} -bcc {la1} -!: -//FRAGMENT vwuz1=_inc_vwuz1 -inc {z1} -bne !+ -inc {z1}+1 -!: -//FRAGMENT vwuz1=vwuz1_minus_vwuz2 -lda {z1} -sec -sbc {z2} -sta {z1} -lda {z1}+1 -sbc {z2}+1 -sta {z1}+1 -//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 vbuaa_eq_0_then_la1 cmp #0 beq {la1} //FRAGMENT vbuxx_eq_0_then_la1 cpx #0 beq {la1} -//FRAGMENT vbuxx=vbuxx_bxor_vbuc1 -txa -eor #{c1} -tax -//FRAGMENT vbuyy=vbuyy_bxor_vbuc1 -tya -eor #{c1} -tay -//FRAGMENT vbuaa=_byte_vwuz1 -lda {z1} -//FRAGMENT vbuxx=_byte_vwuz1 -lda {z1} -tax -//FRAGMENT vbuyy=_byte_vwuz1 -lda {z1} -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 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 0_neq_vbuxx_then_la1 -cpx #0 -bne {la1} -//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 vbuyy=_hi_vwuz1 -ldy {z1}+1 //FRAGMENT vbuyy_eq_0_then_la1 cpy #0 beq {la1} -//FRAGMENT 0_neq_vbuyy_then_la1 -cpy #0 -bne {la1} -//FRAGMENT pwsz1=pwsc1_plus_vwsz1 -clc -lda {z1} -adc #<{c1} -sta {z1} -lda {z1}+1 -adc #>{c1} -sta {z1}+1 -//FRAGMENT vwsz1=_deref_pwsz1 -ldy #0 -lda ({z1}),y -pha -iny -lda ({z1}),y -sta {z1}+1 -pla -sta {z1} -//FRAGMENT pbuz1_lt_vwuc1_then_la1 -lda {z1}+1 -cmp #>{c1} -bcc {la1} -bne !+ -lda {z1} -cmp #<{c1} -bcc {la1} -!: -//FRAGMENT _deref_pbuz1=_inc__deref_pbuz1 -ldy #0 -lda ({z1}),y -clc -adc #1 -ldy #0 -sta ({z1}),y -//FRAGMENT pbuz1_lt_pbuc1_then_la1 -lda {z1}+1 -cmp #>{c1} -bcc {la1} -bne !+ -lda {z1} -cmp #<{c1} -bcc {la1} -!: -//FRAGMENT vbuxx=vbuxx_plus_vbuc1 -txa -axs #-[{c1}] -//FRAGMENT vbuyy=vbuyy_plus_vbuc1 -tya -clc -adc #{c1} -tay -//FRAGMENT _deref_pbuz1=_deref_pbuz2 -ldy #0 -lda ({z2}),y -ldy #0 -sta ({z1}),y -//FRAGMENT vbuz1_neq_vbuz2_then_la1 -lda {z1} -cmp {z2} -bne {la1} -//FRAGMENT vbuz1_gt_vbuz2_then_la1 -lda {z2} -cmp {z1} -bcc {la1} -//FRAGMENT vbuz1=vbuz1_minus_vbuz2 -lda {z1} -sec -sbc {z2} -sta {z1} -//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 vbuz1=pbuc1_derefidx_vbuyy -lda {c1},y -sta {z1} -//FRAGMENT vbuz1_neq_vbuaa_then_la1 -cmp {z1} -bne {la1} -//FRAGMENT vbuz1_gt_vbuaa_then_la1 -cmp {z1} -bcc {la1} -//FRAGMENT vbuaa=vbuaa_minus_vbuz1 -sec -sbc {z1} -//FRAGMENT vbuxx=vbuxx_minus_vbuz1 -txa -sec -sbc {z1} -tax -//FRAGMENT vbuyy=vbuyy_minus_vbuz1 -tya -sec -sbc {z1} -tay -//FRAGMENT vbuz1=vbuz1_minus_vbuaa -eor #$ff -sec -adc {z1} -sta {z1} -//FRAGMENT vbuaa=vbuaa_minus_vbuaa -lda #0 -//FRAGMENT vbuxx=vbuxx_minus_vbuaa -sta $ff -txa -sec -sbc $ff -tax -//FRAGMENT vbuyy=vbuyy_minus_vbuaa -sta $ff -tya -sec -sbc $ff -tay -//FRAGMENT vbuz1=vbuz1_minus_vbuxx -txa -eor #$ff -sec -adc {z1} -sta {z1} -//FRAGMENT vbuaa=vbuaa_minus_vbuxx -stx $ff -sec -sbc $ff -//FRAGMENT vbuxx=vbuxx_minus_vbuxx -lda #0 -tax -//FRAGMENT vbuyy=vbuyy_minus_vbuxx -tya -stx $ff -sec -sbc $ff -tay -//FRAGMENT vbuz1=vbuz1_minus_vbuyy -tya -eor #$ff -sec -adc {z1} -sta {z1} -//FRAGMENT vbuaa=vbuaa_minus_vbuyy -sty $ff -sec -sbc $ff -//FRAGMENT vbuxx=vbuxx_minus_vbuyy -txa -sty $ff -sec -sbc $ff -tax -//FRAGMENT vbuyy=vbuyy_minus_vbuyy -lda #0 -tay -//FRAGMENT vbuz1_neq_vbuxx_then_la1 -cpx {z1} -bne {la1} -//FRAGMENT vbuz1_gt_vbuxx_then_la1 -cpx {z1} -bcc {la1} -//FRAGMENT vbuz1_neq_vbuyy_then_la1 -cpy {z1} -bne {la1} -//FRAGMENT vbuz1_gt_vbuyy_then_la1 -cpy {z1} -bcc {la1} -//FRAGMENT vbuxx_neq_vbuz1_then_la1 -cpx {z1} -bne {la1} -//FRAGMENT vbuxx_gt_vbuz1_then_la1 -cpx {z1} -beq !+ -bcs {la1} -!: -//FRAGMENT vbuxx_neq_vbuyy_then_la1 -stx $ff -cpy $ff -bne {la1} -//FRAGMENT vbuxx_gt_vbuyy_then_la1 -stx $ff -cpy $ff -bcc {la1} -//FRAGMENT vbuyy_neq_vbuz1_then_la1 -cpy {z1} -bne {la1} -//FRAGMENT vbuyy_gt_vbuz1_then_la1 -cpy {z1} -beq !+ -bcs {la1} -!: -//FRAGMENT vbuyy_neq_vbuxx_then_la1 -stx $ff -cpy $ff -bne {la1} -//FRAGMENT vbuyy_gt_vbuxx_then_la1 -sty $ff -cpx $ff -bcc {la1} -//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 -ldy {z2} -lda {c2},y -ldy {z1} -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuaa -tay -lda {c2},y -ldy {z1} -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuxx -lda {c2},x -ldy {z1} -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuyy -lda {c2},y -ldy {z1} -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuz1 -ldx {z1} -tay -lda {c2},x -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuaa -tay -lda {c2},y -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuxx -tay -lda {c2},x -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuyy -tax -lda {c2},y -sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuz1 -ldy {z1} -lda {c2},y -sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuaa -tay -lda {c2},y -sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx -lda {c2},x -sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy -lda {c2},y -sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuz1 -ldx {z1} -lda {c2},x -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuaa -tax -lda {c2},x -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx -lda {c2},x -sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy -lda {c2},y -sta {c1},y -//FRAGMENT vwuz1=_deref_pwuc1_minus_vwuc2 -sec -lda {c1} -sbc #<{c2} -sta {z1} -lda {c1}+1 -sbc #>{c2} -sta {z1}+1 -//FRAGMENT _deref_pwuc1=vwuz1 -lda {z1} -sta {c1} -lda {z1}+1 -sta {c1}+1 -//FRAGMENT pbuz1=_deref_qbuc1_plus_vwuc2 -clc -lda {c1} -adc #<{c2} -sta {z1} -lda {c1}+1 -adc #>{c2} -sta {z1}+1 -//FRAGMENT _deref_qbuc1=pbuz1 -lda {z1} -sta {c1} -lda {z1}+1 -sta {c1}+1 -//FRAGMENT vbuz1_neq_0_then_la1 -lda {z1} -bne {la1} -//FRAGMENT vbuaa_neq_0_then_la1 -cmp #0 -bne {la1} -//FRAGMENT vbuxx_neq_0_then_la1 -cpx #0 -bne {la1} -//FRAGMENT vbuyy_neq_0_then_la1 -cpy #0 -bne {la1} -//FRAGMENT _deref_pbuc1=_inc__deref_pbuc1 -inc {c1} -//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 -ldy {z1} -lda {c2},y -sta {c1},y -//FRAGMENT 0_neq_pbuc1_derefidx_vbuz1_then_la1 -ldy {z1} -lda {c1},y -cmp #0 -bne {la1} -//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuz3 -ldy {z3} -lda {c1},y -ldy {z2} -sta ({z1}),y -//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 pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuz2 -txa -ldx {z2} -tay -lda {c1},x -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuz2 -ldx {z2} -lda {c1},x -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuxx -lda {c1},x -ldy {z2} -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuxx -txa -tay -lda {c1},y -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuxx -lda {c1},x -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuyy -lda {c1},y -ldy {z2} -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuyy -lda {c1},y -stx $ff -ldy $ff -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuyy -lda {c1},y -sta ({z1}),y -//FRAGMENT vbuyy=vbuyy_plus_2 -iny -iny -//FRAGMENT vwsz1=_sword_vbuz2 -lda {z2} -sta {z1} -lda #0 -sta {z1}+1 -//FRAGMENT vwsz1=vwsz1_rol_1 -asl {z1} -rol {z1}+1 -//FRAGMENT _stackpushbyte_=vbuc1 -lda #{c1} -pha -//FRAGMENT _stackpullbyte_1 -pla -//FRAGMENT vbuz1=_stackpullbyte_ -pla -sta {z1} -//FRAGMENT _deref_pbuc1=vbuz1 -lda {z1} -sta {c1} -//FRAGMENT vbuz1=_stackidxbyte_vbuc1 -tsx -lda STACK_BASE+{c1},x -sta {z1} -//FRAGMENT vbuz1=vbuz2_plus_vbuz3 -lda {z2} -clc -adc {z3} -sta {z1} -//FRAGMENT _stackidxbyte_vbuc1=vbuz1 -lda {z1} -tsx -sta STACK_BASE+{c1},x -//FRAGMENT vbuaa=_stackpullbyte_ -pla -//FRAGMENT vbuxx=_stackpullbyte_ -pla -tax -//FRAGMENT vbuyy=_stackpullbyte_ -pla -tay -//FRAGMENT _deref_pbuc1=vbuaa -sta {c1} -//FRAGMENT vbuaa=_stackidxbyte_vbuc1 -tsx -lda STACK_BASE+{c1},x -//FRAGMENT vbuxx=_stackidxbyte_vbuc1 -tsx -lda STACK_BASE+{c1},x -tax -//FRAGMENT vbuyy=_stackidxbyte_vbuc1 -tsx -lda STACK_BASE+{c1},x -tay -//FRAGMENT vbuaa=vbuz1_plus_vbuz2 -lda {z1} -clc -adc {z2} -//FRAGMENT vbuxx=vbuz1_plus_vbuz2 -lda {z1} -clc -adc {z2} -tax -//FRAGMENT vbuyy=vbuz1_plus_vbuz2 -lda {z1} -clc -adc {z2} -tay -//FRAGMENT vbuz1=vbuyy_plus_vbuz2 -tya -clc -adc {z2} -sta {z1} -//FRAGMENT vbuaa=vbuyy_plus_vbuz1 -tya -clc -adc {z1} -//FRAGMENT vbuxx=vbuyy_plus_vbuz1 -tya -clc -adc {z1} -tax -//FRAGMENT vbuyy=vbuyy_plus_vbuz1 -tya -clc -adc {z1} -tay -//FRAGMENT vbuz1=vbuz2_plus_vbuaa -clc -adc {z2} -sta {z1} -//FRAGMENT vbuaa=vbuz1_plus_vbuaa -clc -adc {z1} -//FRAGMENT vbuxx=vbuz1_plus_vbuaa -clc -adc {z1} -tax -//FRAGMENT vbuyy=vbuz1_plus_vbuaa -clc -adc {z1} -tay -//FRAGMENT vbuz1=vbuyy_plus_vbuaa -sty $ff -clc -adc $ff -sta {z1} -//FRAGMENT vbuaa=vbuyy_plus_vbuaa -sty $ff -clc -adc $ff -//FRAGMENT vbuxx=vbuyy_plus_vbuaa -sty $ff -clc -adc $ff -tax -//FRAGMENT vbuyy=vbuyy_plus_vbuaa -sty $ff -clc -adc $ff -tay -//FRAGMENT vbuz1=vbuz2_plus_vbuxx -txa -clc -adc {z2} -sta {z1} -//FRAGMENT vbuaa=vbuz1_plus_vbuxx -txa -clc -adc {z1} -//FRAGMENT vbuxx=vbuz1_plus_vbuxx -txa -clc -adc {z1} -tax -//FRAGMENT vbuyy=vbuz1_plus_vbuxx -txa -clc -adc {z1} -tay -//FRAGMENT vbuz1=vbuyy_plus_vbuxx -txa -sty $ff -clc -adc $ff -sta {z1} -//FRAGMENT vbuaa=vbuyy_plus_vbuxx -txa -sty $ff -clc -adc $ff -//FRAGMENT vbuxx=vbuyy_plus_vbuxx -txa -sty $ff -clc -adc $ff -tax -//FRAGMENT vbuyy=vbuyy_plus_vbuxx -txa -sty $ff -clc -adc $ff -tay -//FRAGMENT vbuz1=vbuz2_plus_vbuyy -tya -clc -adc {z2} -sta {z1} -//FRAGMENT vbuaa=vbuz1_plus_vbuyy -tya -clc -adc {z1} -//FRAGMENT vbuxx=vbuz1_plus_vbuyy -tya -clc -adc {z1} -tax -//FRAGMENT vbuyy=vbuz1_plus_vbuyy -tya -clc -adc {z1} -tay -//FRAGMENT vbuz1=vbuyy_plus_vbuyy -tya -asl -sta {z1} -//FRAGMENT vbuaa=vbuyy_plus_vbuyy -tya -asl -//FRAGMENT vbuxx=vbuyy_plus_vbuyy -tya -asl -tax -//FRAGMENT vbuyy=vbuyy_plus_vbuyy -tya -asl -tay -//FRAGMENT _stackidxbyte_vbuc1=vbuaa -tsx -sta STACK_BASE+{c1},x -//FRAGMENT _stackidxbyte_vbuc1=vbuxx -txa -tsx -sta STACK_BASE+{c1},x -//FRAGMENT _stackidxbyte_vbuc1=vbuyy -tya -tsx -sta STACK_BASE+{c1},x -//FRAGMENT vbuz1=vbuaa_plus_vbuz2 -clc -adc {z2} -sta {z1} -//FRAGMENT vbuaa=vbuaa_plus_vbuz1 -clc -adc {z1} -//FRAGMENT vbuxx=vbuaa_plus_vbuz1 -clc -adc {z1} -tax -//FRAGMENT vbuyy=vbuaa_plus_vbuz1 -clc -adc {z1} -tay -//FRAGMENT vbuz1=vbuxx_plus_vbuz2 -txa -clc -adc {z2} -sta {z1} -//FRAGMENT vbuaa=vbuxx_plus_vbuz1 -txa -clc -adc {z1} -//FRAGMENT vbuxx=vbuxx_plus_vbuz1 -txa -clc -adc {z1} -tax -//FRAGMENT vbuyy=vbuxx_plus_vbuz1 -txa -clc -adc {z1} -tay -//FRAGMENT vbuz1=vbuaa_plus_vbuaa -asl -sta {z1} -//FRAGMENT vbuaa=vbuaa_plus_vbuaa -asl -//FRAGMENT vbuxx=vbuaa_plus_vbuaa -asl -tax -//FRAGMENT vbuyy=vbuaa_plus_vbuaa -asl -tay -//FRAGMENT vbuz1=vbuxx_plus_vbuaa -stx $ff -clc -adc $ff -sta {z1} -//FRAGMENT vbuaa=vbuxx_plus_vbuaa -stx $ff -clc -adc $ff -//FRAGMENT vbuxx=vbuxx_plus_vbuaa -stx $ff -clc -adc $ff -tax -//FRAGMENT vbuyy=vbuxx_plus_vbuaa -stx $ff -clc -adc $ff -tay -//FRAGMENT vbuz1=vbuaa_plus_vbuxx -stx $ff -clc -adc $ff -sta {z1} -//FRAGMENT vbuaa=vbuaa_plus_vbuxx -stx $ff -clc -adc $ff -//FRAGMENT vbuxx=vbuaa_plus_vbuxx -stx $ff -clc -adc $ff -tax -//FRAGMENT vbuyy=vbuaa_plus_vbuxx -stx $ff -clc -adc $ff -tay -//FRAGMENT vbuz1=vbuxx_plus_vbuxx -txa -asl -sta {z1} -//FRAGMENT vbuaa=vbuxx_plus_vbuxx -txa -asl -//FRAGMENT vbuxx=vbuxx_plus_vbuxx -txa -asl -tax -//FRAGMENT vbuyy=vbuxx_plus_vbuxx -txa -asl -tay -//FRAGMENT vbuz1=vbuaa_plus_vbuyy -sty $ff -clc -adc $ff -sta {z1} -//FRAGMENT vbuaa=vbuaa_plus_vbuyy -sty $ff -clc -adc $ff -//FRAGMENT vbuxx=vbuaa_plus_vbuyy -sty $ff -clc -adc $ff -tax -//FRAGMENT vbuyy=vbuaa_plus_vbuyy -sty $ff -clc -adc $ff -tay -//FRAGMENT vbuz1=vbuxx_plus_vbuyy -txa -sty $ff -clc -adc $ff -sta {z1} -//FRAGMENT vbuaa=vbuxx_plus_vbuyy -txa -sty $ff -clc -adc $ff -//FRAGMENT vbuxx=vbuxx_plus_vbuyy -txa -sty $ff -clc -adc $ff -tax -//FRAGMENT vbuyy=vbuxx_plus_vbuyy -txa -sty $ff -clc -adc $ff -tay -//FRAGMENT _deref_pbuc1=vbuxx -stx {c1} -//FRAGMENT _deref_pbuc1=vbuyy -sty {c1} -//FRAGMENT vbuz1=vbuz1_plus_1 -inc {z1} -//FRAGMENT vbuaa=vbuaa_plus_1 -clc -adc #1 -//FRAGMENT vbuxx=vbuxx_plus_1 -inx -//FRAGMENT vbuyy=vbuyy_plus_1 -iny -//FRAGMENT vbuz1=_dec_vbuz1 -dec {z1} -//FRAGMENT vbuz1_gt_0_then_la1 -lda {z1} -bne {la1} -//FRAGMENT vbuaa_gt_0_then_la1 -cmp #0 -bne {la1} -//FRAGMENT vbuaa=_dec_vbuaa -sec -sbc #1 -//FRAGMENT vbuxx=_dec_vbuxx -dex -//FRAGMENT vbuxx_gt_0_then_la1 -cpx #0 -bne {la1} -//FRAGMENT vbuyy=_dec_vbuyy -dey -//FRAGMENT vbuyy_gt_0_then_la1 -cpy #0 -bne {la1} -//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 -clc -lda {z2} -adc #<{c1} -sta {z1} -lda {z2}+1 -adc #>{c1} -sta {z1}+1 -//FRAGMENT pbuz1_derefidx_vbuz2=vbuz3 -lda {z3} -ldy {z2} -sta ({z1}),y -//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 pbuz1_derefidx_vbuz2=vbuaa -ldy {z2} -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuz2=vbuxx -ldy {z2} -txa -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuz2=vbuyy -tya -ldy {z2} -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuxx=vbuz2 -txa -tay -lda {z2} -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuxx=vbuxx -txa -tay -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuxx=vbuyy -stx $ff -tya -ldy $ff -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuyy=vbuz2 -lda {z2} -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuyy=vbuaa -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuyy=vbuxx -txa -sta ({z1}),y -//FRAGMENT vwuz1=vwuz2_plus_vwuz1 -lda {z1} -clc -adc {z2} -sta {z1} -lda {z1}+1 -adc {z2}+1 -sta {z1}+1 -//FRAGMENT pbuz1=pbuc1_plus_vwuz1 -clc -lda {z1} -adc #<{c1} -sta {z1} -lda {z1}+1 -adc #>{c1} -sta {z1}+1 -//FRAGMENT vwuz1=vwuz1_rol_3 -asl {z1} -rol {z1}+1 -asl {z1} -rol {z1}+1 -asl {z1} -rol {z1}+1 -//FRAGMENT 0_eq_vbuz1_then_la1 -lda {z1} -beq {la1} -//FRAGMENT vbuz1=vbuz2_plus_1 -ldy {z2} -iny -sty {z1} -//FRAGMENT pbuz1_derefidx_vbuz2=vbuc1 -lda #{c1} -ldy {z2} -sta ({z1}),y -//FRAGMENT 0_eq_vbuaa_then_la1 -cmp #0 -beq {la1} -//FRAGMENT vbuz1=vbuaa_plus_1 -clc -adc #1 -sta {z1} -//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuaa -tay -lda {c1},y -ldy {z2} -sta ({z1}),y -//FRAGMENT vbuz1=vbuxx_plus_1 -inx -stx {z1} -//FRAGMENT 0_eq_vbuxx_then_la1 -cpx #0 -beq {la1} -//FRAGMENT 0_eq_vbuyy_then_la1 -cpy #0 -beq {la1} -//FRAGMENT vbuz1=_lo_vwsz2 -lda {z2} -sta {z1} -//FRAGMENT vbuaa=_lo_vwsz1 -lda {z1} -//FRAGMENT vbuxx=_lo_vwsz1 -ldx {z1} -//FRAGMENT vbuyy=_lo_vwsz1 -ldy {z1} -//FRAGMENT vbuz1_ge_vbuc1_then_la1 -lda {z1} -cmp #{c1} -bcs {la1} -//FRAGMENT vbuaa_ge_vbuc1_then_la1 -cmp #{c1} -bcs {la1} -//FRAGMENT vbuxx_ge_vbuc1_then_la1 -cpx #{c1} -bcs {la1} -//FRAGMENT vbuyy_ge_vbuc1_then_la1 -cpy #{c1} -bcs {la1} -//FRAGMENT pbuz1=pbuz2_plus_vbuc1 -lda #{c1} -clc -adc {z2} -sta {z1} -lda #0 -adc {z2}+1 -sta {z1}+1 -//FRAGMENT pbuz1_derefidx_vbuaa=vbuz2 -tay -lda {z2} -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuaa=vbuaa -tay -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuaa=vbuxx -tay -txa -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuaa=vbuyy -sta $ff -tya -ldy $ff -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuyy=vbuyy -tya -sta ({z1}),y -//FRAGMENT _deref_pbuz1_eq_vbuz2_then_la1 -lda {z2} -ldy #0 -cmp ({z1}),y -beq {la1} -//FRAGMENT _deref_pbuz1_neq_0_then_la1 -ldy #0 -lda ({z1}),y -cmp #0 -bne {la1} -//FRAGMENT _deref_pbuz1_eq_vbuxx_then_la1 -txa -ldy #0 -cmp ({z1}),y -beq {la1} -//FRAGMENT _deref_pbuz1_eq_vbuyy_then_la1 -tya -ldy #0 -cmp ({z1}),y -beq {la1} -//FRAGMENT pbuz1=pbuc1_plus_vbuz2 -lda {z2} -clc -adc #<{c1} -sta {z1} -lda #>{c1} -adc #0 -sta {z1}+1 -//FRAGMENT pbuz1=pbuz2_plus_vwuz3 -lda {z2} -clc -adc {z3} -sta {z1} -lda {z2}+1 -adc {z3}+1 -sta {z1}+1 -//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 pbuz1=pbuz1_plus_vwuz2 -lda {z1} -clc -adc {z2} -sta {z1} -lda {z1}+1 -adc {z2}+1 -sta {z1}+1 -//FRAGMENT vbuz1=vbuz1_plus_vbuc1 -lax {z1} -axs #-[{c1}] -stx {z1} -//FRAGMENT vwuz1=vbuz2 -lda {z2} -sta {z1} -lda #0 -sta {z1}+1 -//FRAGMENT pwuc1_derefidx_vbuz1=vwuz2 -ldy {z1} -lda {z2} -sta {c1},y -lda {z2}+1 -sta {c1}+1,y -//FRAGMENT vbuz1=pwuc1_derefidx_vbuz2_band_vbuc2 -lda #{c2} -ldy {z2} -and {c1},y -sta {z1} -//FRAGMENT vbuz1=vbuz2_ror_1 -lda {z2} -lsr -sta {z1} -//FRAGMENT vwuz1=vbuaa -sta {z1} -lda #0 -sta {z1}+1 -//FRAGMENT vwuz1=vbuxx -txa -sta {z1} -lda #0 -sta {z1}+1 -//FRAGMENT vwuz1=vbuyy -tya -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=pwuc1_derefidx_vbuz1_band_vbuc2 -lda #{c2} -ldy {z1} -and {c1},y -//FRAGMENT vbuxx=pwuc1_derefidx_vbuz1_band_vbuc2 -lda #{c2} -ldx {z1} -and {c1},x -tax -//FRAGMENT vbuyy=pwuc1_derefidx_vbuz1_band_vbuc2 -lda #{c2} -ldy {z1} -and {c1},y -tay -//FRAGMENT vbuz1=pwuc1_derefidx_vbuaa_band_vbuc2 -tay -lda #{c2} -and {c1},y -sta {z1} -//FRAGMENT vbuaa=pwuc1_derefidx_vbuaa_band_vbuc2 -tay -lda #{c2} -and {c1},y -//FRAGMENT vbuxx=pwuc1_derefidx_vbuaa_band_vbuc2 -tax -lda #{c2} -and {c1},x -tax -//FRAGMENT vbuyy=pwuc1_derefidx_vbuaa_band_vbuc2 -tay -lda #{c2} -and {c1},y -tay -//FRAGMENT vbuz1=pwuc1_derefidx_vbuxx_band_vbuc2 -lda #{c2} -and {c1},x -sta {z1} -//FRAGMENT vbuaa=pwuc1_derefidx_vbuxx_band_vbuc2 -lda #{c2} -and {c1},x -//FRAGMENT vbuxx=pwuc1_derefidx_vbuxx_band_vbuc2 -lda #{c2} -and {c1},x -tax -//FRAGMENT vbuyy=pwuc1_derefidx_vbuxx_band_vbuc2 -lda #{c2} -and {c1},x -tay -//FRAGMENT vbuz1=pwuc1_derefidx_vbuyy_band_vbuc2 -lda #{c2} -and {c1},y -sta {z1} -//FRAGMENT vbuaa=pwuc1_derefidx_vbuyy_band_vbuc2 -lda #{c2} -and {c1},y -//FRAGMENT vbuxx=pwuc1_derefidx_vbuyy_band_vbuc2 -lda #{c2} -and {c1},y -tax -//FRAGMENT vbuyy=pwuc1_derefidx_vbuyy_band_vbuc2 -lda #{c2} -and {c1},y -tay -//FRAGMENT vbuaa=vbuz1_ror_1 -lda {z1} -lsr -//FRAGMENT vbuxx=vbuz1_ror_1 -lda {z1} -lsr -tax -//FRAGMENT vbuyy=vbuz1_ror_1 -lda {z1} -lsr -tay -//FRAGMENT vbuz1=vbuaa_ror_1 -lsr -sta {z1} -//FRAGMENT vbuaa=vbuaa_ror_1 -lsr -//FRAGMENT vbuxx=vbuaa_ror_1 -lsr -tax -//FRAGMENT vbuyy=vbuaa_ror_1 -lsr -tay -//FRAGMENT vbuz1=vbuxx_ror_1 -txa -lsr -sta {z1} -//FRAGMENT vbuaa=vbuxx_ror_1 -txa -lsr -//FRAGMENT vbuxx=vbuxx_ror_1 -txa -lsr -tax -//FRAGMENT vbuyy=vbuxx_ror_1 -txa -lsr -tay -//FRAGMENT vbuz1=vbuyy_ror_1 -tya -lsr -sta {z1} -//FRAGMENT vbuaa=vbuyy_ror_1 -tya -lsr -//FRAGMENT vbuxx=vbuyy_ror_1 -tya -lsr -tax -//FRAGMENT vbuyy=vbuyy_ror_1 -tya -lsr -tay -//FRAGMENT _deref_pbuc1_neq_vbuc2_then_la1 -lda #{c2} -cmp {c1} -bne {la1} -//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuz2 -ldx {z2} -tay -lda {c1},x -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuxx -tay -lda {c1},x -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuyy -ldx {c1},y -tay -txa -sta ({z1}),y -//FRAGMENT vwuz1=vbuz2_word_vbuz3 -lda {z2} -sta {z1}+1 -lda {z3} -sta {z1} -//FRAGMENT vwuz1=vbuaa_word_vbuz2 -sta {z1}+1 -lda {z2} -sta {z1} -//FRAGMENT vwuz1=vbuxx_word_vbuz2 -lda {z2} -stx {z1}+1 -sta {z1} -//FRAGMENT vwuz1=vbuyy_word_vbuz2 -lda {z2} -sty {z1}+1 -sta {z1} -//FRAGMENT vwuz1=vbuz2_word_vbuaa -ldy {z2} -sty {z1}+1 -sta {z1} -//FRAGMENT vwuz1=vbuxx_word_vbuaa -stx {z1}+1 -sta {z1} -//FRAGMENT vwuz1=vbuyy_word_vbuaa -sty {z1}+1 -sta {z1} -//FRAGMENT vwuz1=vbuz2_word_vbuxx -lda {z2} -sta {z1}+1 -stx {z1} -//FRAGMENT vwuz1=vbuaa_word_vbuxx -sta {z1}+1 -stx {z1} -//FRAGMENT vwuz1=vbuyy_word_vbuxx -sty {z1}+1 -stx {z1} -//FRAGMENT vwuz1=vbuz2_word_vbuyy -lda {z2} -sta {z1}+1 -sty {z1} -//FRAGMENT vwuz1=vbuaa_word_vbuyy -sta {z1}+1 -sty {z1} -//FRAGMENT vwuz1=vbuxx_word_vbuyy -stx {z1}+1 -sty {z1} -//FRAGMENT _deref_pbuc1=_dec__deref_pbuc1 -dec {c1} -//FRAGMENT vbuz1_lt_vbuz2_then_la1 -lda {z1} -cmp {z2} -bcc {la1} -//FRAGMENT vbuz1_lt_vbuaa_then_la1 -cmp {z1} -beq !+ -bcs {la1} -!: -//FRAGMENT vbuaa_lt_vbuz1_then_la1 -cmp {z1} -bcc {la1} -//FRAGMENT vbuxx_lt_vbuz1_then_la1 -cpx {z1} -bcc {la1} -//FRAGMENT vbuxx_lt_vbuaa_then_la1 -sta $ff -cpx $ff -bcc {la1} -//FRAGMENT vbuz1_lt_vbuxx_then_la1 -cpx {z1} -beq !+ -bcs {la1} -!: -//FRAGMENT vbuaa_lt_vbuxx_then_la1 -stx $ff -cmp $ff -bcc {la1} -//FRAGMENT vbuz1=vbuz1_plus_vbuz2 -lda {z1} -clc -adc {z2} -sta {z1} -//FRAGMENT vbuz1=vbuz1_plus_vbuaa -clc -adc {z1} -sta {z1} -//FRAGMENT vbuz1=vbuz1_plus_vbuxx -txa -clc -adc {z1} -sta {z1} -//FRAGMENT vbuz1=vbuz1_plus_vbuyy -tya -clc -adc {z1} -sta {z1} -//FRAGMENT pbuz1_derefidx_vbuaa=vbuc1 -tay -lda #{c1} -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuxx=vbuc1 -txa -tay -lda #{c1} -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuyy=vbuc1 -lda #{c1} -sta ({z1}),y -//FRAGMENT _deref_pboc1=vboc2 -lda #{c2} -sta {c1} -//FRAGMENT _deref_pboc1_then_la1 -lda {c1} -cmp #0 -bne {la1} -//FRAGMENT vboz1=vboc1 -lda #{c1} -sta {z1} -//FRAGMENT vboaa=vboc1 -lda #{c1} -//FRAGMENT vboxx=vboc1 -lda #{c1} -tax -//FRAGMENT vboyy=vboc1 -lda #{c1} -tay -//FRAGMENT _deref_pbuc1_lt_vbuc2_then_la1 -lda {c1} -cmp #{c2} -bcc {la1} -//FRAGMENT pbuz1_ge_vwuc1_then_la1 -lda {z1}+1 -cmp #>{c1} -bcc !+ -bne {la1} -lda {z1} -cmp #<{c1} -bcs {la1} -!: -//FRAGMENT _deref_pbuz1_neq_vbuc1_then_la1 -ldy #0 -lda ({z1}),y -cmp #{c1} -bne {la1} -//FRAGMENT pbuz1_derefidx_vbuz2_eq_vbuc1_then_la1 -lda #{c1} -ldy {z2} -cmp ({z1}),y -beq {la1} -//FRAGMENT pbuz1_derefidx_vbuaa_eq_vbuc1_then_la1 -tay -lda #{c1} -cmp ({z1}),y -beq {la1} -//FRAGMENT pbuz1_derefidx_vbuxx_eq_vbuc1_then_la1 -txa -tay -lda #{c1} -cmp ({z1}),y -beq {la1} -//FRAGMENT pbuz1_derefidx_vbuyy_eq_vbuc1_then_la1 -lda #{c1} -cmp ({z1}),y -beq {la1} -//FRAGMENT vbuz1_eq_vbuz2_then_la1 -lda {z1} -cmp {z2} -beq {la1} -//FRAGMENT vbuz1_eq_vbuaa_then_la1 -cmp {z1} -beq {la1} -//FRAGMENT vbuz1_eq_vbuyy_then_la1 -tya -cmp {z1} -beq {la1} -//FRAGMENT vbuyy_eq_vbuz1_then_la1 -tya -cmp {z1} -beq {la1} -//FRAGMENT vbuyy_eq_vbuaa_then_la1 -tax -sty $ff -cpx $ff -beq {la1} -//FRAGMENT isr_hardware_all_entry -sta rega+1 @clob_a -stx regx+1 @clob_x -sty regy+1 @clob_y -//FRAGMENT isr_hardware_all_exit -rega: @clob_a @nooptimize lda #0 @clob_a @nooptimize -regx: @clob_x @nooptimize ldx #0 @clob_x @nooptimize -regy: @clob_y @nooptimize ldy #0 @clob_y @nooptimize -rti -//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2 -lda #{c2} -ora {c1} -sta {c1} -//FRAGMENT _deref_qprc1=pprc2 -lda #<{c2} -sta {c1} -lda #>{c2} -sta {c1}+1 -//FRAGMENT isr_rom_min_c64_entry - -//FRAGMENT isr_rom_min_c64_exit -jmp $ea81 //FRAGMENT pprz1=pprc1 lda #<{c1} sta {z1} @@ -3217,9 +1511,99 @@ lda {c1},y sta {z1} lda {c1}+1,y sta {z1}+1 +//FRAGMENT pbuz1_lt_vwuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bcc {la1} +bne !+ +lda {z1} +cmp #<{c1} +bcc {la1} +!: +//FRAGMENT _deref_pbuz1=_inc__deref_pbuz1 +ldy #0 +lda ({z1}),y +clc +adc #1 +ldy #0 +sta ({z1}),y +//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 +ldy {z2} +lda {c2},y +ldy {z1} +sta {c1},y +//FRAGMENT 0_neq_pbuc1_derefidx_vbuz1_then_la1 +ldy {z1} +lda {c1},y +cmp #0 +bne {la1} +//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuaa +tay +lda {c2},y +ldy {z1} +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuxx +lda {c2},x +ldy {z1} +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuyy +lda {c2},y +ldy {z1} +sta {c1},y +//FRAGMENT 0_neq_pbuc1_derefidx_vbuxx_then_la1 +lda {c1},x +cmp #0 +bne {la1} +//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuz3 +ldx {z1} +ldy {z3} +lda ({z2}),y +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuaa +ldx {z1} +tay +lda ({z2}),y +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuxx +txa +ldx {z1} +tay +lda ({z2}),y +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuyy +lda ({z2}),y +ldx {z1} +sta {c1},x +//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +ldy #0 +sta ({z1}),y +//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 vbsz1=vbsc1 lda #{c1} sta {z1} +//FRAGMENT _deref_pbuc1_neq_vbuc2_then_la1 +lda #{c2} +cmp {c1} +bne {la1} +//FRAGMENT vbuz1=vbuz2_plus_vbuz3 +lda {z2} +clc +adc {z3} +sta {z1} //FRAGMENT pbuz1_derefidx_(pbsc1_derefidx_vbuz2)=vbuc2 lda #{c2} ldx {z2} @@ -3261,12 +1645,239 @@ ldx {z2} lda {c2},x ldy {c1},x sta ({z1}),y +//FRAGMENT pbuz1=pbuz1_plus_vbuc1 +lda #{c1} +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: //FRAGMENT vbsz1=_neg_vbsz1 lda {z1} eor #$ff clc adc #$01 sta {z1} +//FRAGMENT vbuaa=vbuz1_plus_vbuz2 +lda {z1} +clc +adc {z2} +//FRAGMENT vbuxx=vbuz1_plus_vbuz2 +lda {z1} +clc +adc {z2} +tax +//FRAGMENT vbuyy=vbuz1_plus_vbuz2 +lda {z1} +clc +adc {z2} +tay +//FRAGMENT vbuz1=vbuz2_plus_vbuxx +txa +clc +adc {z2} +sta {z1} +//FRAGMENT vbuaa=vbuz1_plus_vbuxx +txa +clc +adc {z1} +//FRAGMENT vbuxx=vbuz1_plus_vbuxx +txa +clc +adc {z1} +tax +//FRAGMENT vbuyy=vbuz1_plus_vbuxx +txa +clc +adc {z1} +tay +//FRAGMENT vbuz1=vbuz2_plus_vbuyy +tya +clc +adc {z2} +sta {z1} +//FRAGMENT vbuaa=vbuz1_plus_vbuyy +tya +clc +adc {z1} +//FRAGMENT vbuxx=vbuz1_plus_vbuyy +tya +clc +adc {z1} +tax +//FRAGMENT vbuyy=vbuz1_plus_vbuyy +tya +clc +adc {z1} +tay +//FRAGMENT vbuz1=vbuaa_plus_vbuz2 +clc +adc {z2} +sta {z1} +//FRAGMENT vbuaa=vbuaa_plus_vbuz1 +clc +adc {z1} +//FRAGMENT vbuxx=vbuaa_plus_vbuz1 +clc +adc {z1} +tax +//FRAGMENT vbuyy=vbuaa_plus_vbuz1 +clc +adc {z1} +tay +//FRAGMENT vbuz1=vbuaa_plus_vbuxx +stx $ff +clc +adc $ff +sta {z1} +//FRAGMENT vbuaa=vbuaa_plus_vbuxx +stx $ff +clc +adc $ff +//FRAGMENT vbuxx=vbuaa_plus_vbuxx +stx $ff +clc +adc $ff +tax +//FRAGMENT vbuyy=vbuaa_plus_vbuxx +stx $ff +clc +adc $ff +tay +//FRAGMENT vbuz1=vbuaa_plus_vbuyy +sty $ff +clc +adc $ff +sta {z1} +//FRAGMENT vbuaa=vbuaa_plus_vbuyy +sty $ff +clc +adc $ff +//FRAGMENT vbuxx=vbuaa_plus_vbuyy +sty $ff +clc +adc $ff +tax +//FRAGMENT vbuyy=vbuaa_plus_vbuyy +sty $ff +clc +adc $ff +tay +//FRAGMENT vbuz1=vbuxx_plus_vbuz2 +txa +clc +adc {z2} +sta {z1} +//FRAGMENT vbuaa=vbuxx_plus_vbuz1 +txa +clc +adc {z1} +//FRAGMENT vbuxx=vbuxx_plus_vbuz1 +txa +clc +adc {z1} +tax +//FRAGMENT vbuyy=vbuxx_plus_vbuz1 +txa +clc +adc {z1} +tay +//FRAGMENT vbuz1=vbuxx_plus_vbuxx +txa +asl +sta {z1} +//FRAGMENT vbuaa=vbuxx_plus_vbuxx +txa +asl +//FRAGMENT vbuxx=vbuxx_plus_vbuxx +txa +asl +tax +//FRAGMENT vbuyy=vbuxx_plus_vbuxx +txa +asl +tay +//FRAGMENT vbuz1=vbuxx_plus_vbuyy +txa +sty $ff +clc +adc $ff +sta {z1} +//FRAGMENT vbuaa=vbuxx_plus_vbuyy +txa +sty $ff +clc +adc $ff +//FRAGMENT vbuxx=vbuxx_plus_vbuyy +txa +sty $ff +clc +adc $ff +tax +//FRAGMENT vbuyy=vbuxx_plus_vbuyy +txa +sty $ff +clc +adc $ff +tay +//FRAGMENT vbuz1=vbuyy_plus_vbuz2 +tya +clc +adc {z2} +sta {z1} +//FRAGMENT vbuaa=vbuyy_plus_vbuz1 +tya +clc +adc {z1} +//FRAGMENT vbuxx=vbuyy_plus_vbuz1 +tya +clc +adc {z1} +tax +//FRAGMENT vbuyy=vbuyy_plus_vbuz1 +tya +clc +adc {z1} +tay +//FRAGMENT vbuz1=vbuyy_plus_vbuxx +txa +sty $ff +clc +adc $ff +sta {z1} +//FRAGMENT vbuaa=vbuyy_plus_vbuxx +txa +sty $ff +clc +adc $ff +//FRAGMENT vbuxx=vbuyy_plus_vbuxx +txa +sty $ff +clc +adc $ff +tax +//FRAGMENT vbuyy=vbuyy_plus_vbuxx +txa +sty $ff +clc +adc $ff +tay +//FRAGMENT vbuz1=vbuyy_plus_vbuyy +tya +asl +sta {z1} +//FRAGMENT vbuaa=vbuyy_plus_vbuyy +tya +asl +//FRAGMENT vbuxx=vbuyy_plus_vbuyy +tya +asl +tax +//FRAGMENT vbuyy=vbuyy_plus_vbuyy +tya +asl +tay //FRAGMENT pbuz1_derefidx_(pbsc1_derefidx_vbuaa)=vbuc2 tax lda #{c2} @@ -3403,6 +2014,29 @@ tay sta {c1},x //FRAGMENT vbsyy=vbsc1 ldy #{c1} +//FRAGMENT vbuxx=vbuxx_plus_vbuc1 +txa +axs #-[{c1}] +//FRAGMENT vbuyy=vbuyy_plus_vbuc1 +tya +clc +adc #{c1} +tay +//FRAGMENT 0_neq__deref_pbuz1_then_la1 +ldy #0 +lda ({z1}),y +cmp #0 +bne {la1} +//FRAGMENT _deref_pbuz1=_deref_pbuz2 +ldy #0 +lda ({z2}),y +ldy #0 +sta ({z1}),y +//FRAGMENT vwuz1=vwuc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 //FRAGMENT vbuz1=_lo__deref_pwuc1 lda {c1} sta {z1} @@ -3421,6 +2055,28 @@ ldx {c1}+1 ldy {c1} //FRAGMENT vbuyy=_hi__deref_pwuc1 ldy {c1}+1 +//FRAGMENT vwsz1_lt_vwsc1_then_la1 +lda {z1} +cmp #<{c1} +lda {z1}+1 +sbc #>{c1} +bvc !+ +eor #$80 +!: +bmi {la1} +//FRAGMENT vwsz1=vwsz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vwsz1=vwsz1_plus_vbsc1 +clc +lda {z1} +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 //FRAGMENT pbuz1=pbuz2_plus_vwsz3 lda {z2} clc @@ -3436,6 +2092,17 @@ bne {la1} lda {z1} cmp {z2} bne {la1} +//FRAGMENT _deref_pbuz1=vbuz2 +lda {z2} +ldy #0 +sta ({z1}),y +//FRAGMENT vwsz1=vwsz2_rol_1 +lda {z2} +asl +sta {z1} +lda {z2}+1 +rol +sta {z1}+1 //FRAGMENT vwsz1=vbsc1_minus_vwsz2 NO_SYNTHESIS //FRAGMENT vwsz1=vwuc1_minus_vwsz2 @@ -3446,6 +2113,18 @@ sta {z1} lda #>{c1} sbc {z2}+1 sta {z1}+1 +//FRAGMENT vwsz1_le_vwsz2_then_la1 +lda {z2} +cmp {z1} +lda {z2}+1 +sbc {z1}+1 +bvc !+ +eor #$80 +!: +bpl {la1} +//FRAGMENT vwsz1_lt_0_then_la1 +lda {z1}+1 +bmi {la1} //FRAGMENT vwsz1=vwsz1_minus_1 sec lda {z1} @@ -3503,6 +2182,11 @@ sta {z1} lda #>{c1} sbc {z2}+1 sta {z1}+1 +//FRAGMENT vwsz1=_inc_vwsz1 +inc {z1} +bne !+ +inc {z1}+1 +!: //FRAGMENT vwsz1_gt_vwsc1_then_la1 lda #<{c1} cmp {z1} @@ -3536,6 +2220,9 @@ sta {z1} lda {z2}+1 adc #>{c1} sta {z1}+1 +//FRAGMENT vbuz1=_lo_vwsz2 +lda {z2} +sta {z1} //FRAGMENT pbuz1=pbuz2_plus_vbuz3 lda {z3} clc @@ -3587,6 +2274,18 @@ lda ({z2}),y ldy {z3} ora {c1},y sta {z1} +//FRAGMENT _deref_pbuz1=vbuxx +txa +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=vbuyy +tya +ldy #0 +sta ({z1}),y +//FRAGMENT vbuaa=_lo_vwsz1 +lda {z1} +//FRAGMENT vbuxx=_lo_vwsz1 +ldx {z1} //FRAGMENT pbuz1=pbuz2_plus_vbuaa clc adc {z2} @@ -3699,6 +2398,11 @@ lda {c1},y ldy #0 ora ({z1}),y tay +//FRAGMENT _deref_pbuz1=vbuaa +ldy #0 +sta ({z1}),y +//FRAGMENT vbuyy=_lo_vwsz1 +ldy {z1} //FRAGMENT vwsz1=vwsz1_plus_vwsz2 lda {z1} clc @@ -3784,26 +2488,84 @@ lda #<{c2} sta {c1} lda #>{c2} sta {c1}+1 +//FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 +ldy {z1} +lda {c2},y +sta {c1},y +//FRAGMENT vwuz1=vbuc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT 0_eq_vwuz1_then_la1 +lda {z1} +ora {z1}+1 +beq {la1} +//FRAGMENT vwuz1=_dec_vwuz1 +lda {z1} +bne !+ +dec {z1}+1 +!: +dec {z1} +//FRAGMENT 0_neq_pbuc1_derefidx_vbuaa_then_la1 +tay +lda {c1},y +cmp #0 +bne {la1} +//FRAGMENT 0_neq_pbuc1_derefidx_vbuyy_then_la1 +lda {c1},y +cmp #0 +bne {la1} +//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx +lda {c2},x +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy +lda {c2},y +sta {c1},y //FRAGMENT _deref_pwuc1=_deref_pwuc2 lda {c2} sta {c1} lda {c2}+1 sta {c1}+1 -//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuz3 -ldx {z1} -ldy {z3} -lda ({z2}),y -sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuxx -txa +//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuz1 ldx {z1} tay -lda ({z2}),y +lda {c2},x +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuaa +tay +lda {c2},y +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuxx +tay +lda {c2},x +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuyy +tax +lda {c2},y sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuyy -lda ({z2}),y +//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuz1 +ldy {z1} +lda {c2},y +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuaa +tay +lda {c2},y +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy +lda {c2},y +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuz1 ldx {z1} -sta {c1},x +lda {c2},x +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuaa +tax +lda {c2},x +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx +lda {c2},x +sta {c1},y //FRAGMENT pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuz2 ldy {z2} lda ({z1}),y @@ -3858,6 +2620,10 @@ lda {z2} asl asl sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} //FRAGMENT vbuaa=vbuz1_rol_2 lda {z1} asl @@ -3925,6 +2691,36 @@ tya asl asl tay +//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 vbuz1=pbuc1_derefidx_vbuyy +lda {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy +lda {c1},y //FRAGMENT vbuz1=vbuz2_rol_3 lda {z2} asl @@ -4136,21 +2932,73 @@ bne !- //FRAGMENT _deref_pbuc1=_byte_pprz1 lda {z1} sta {c1} +//FRAGMENT vwuz1=_deref_pwuc1_minus_vwuc2 +sec +lda {c1} +sbc #<{c2} +sta {z1} +lda {c1}+1 +sbc #>{c2} +sta {z1}+1 +//FRAGMENT _deref_pwuc1=vwuz1 +lda {z1} +sta {c1} +lda {z1}+1 +sta {c1}+1 +//FRAGMENT pbuz1=_deref_qbuc1_plus_vwuc2 +clc +lda {c1} +adc #<{c2} +sta {z1} +lda {c1}+1 +adc #>{c2} +sta {z1}+1 +//FRAGMENT _deref_qbuc1=pbuz1 +lda {z1} +sta {c1} +lda {z1}+1 +sta {c1}+1 +//FRAGMENT vbuz1=_deref_pbuz2 +ldy #0 +lda ({z2}),y +sta {z1} +//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 vbuz1=vbuz2_plus_vbuz2 lda {z2} asl sta {z1} +//FRAGMENT vbuz1=vbuaa_plus_vbuaa +asl +sta {z1} //FRAGMENT vbuaa=vbuz1_plus_vbuz1 lda {z1} asl +//FRAGMENT vbuaa=vbuaa_plus_vbuaa +asl //FRAGMENT vbuxx=vbuz1_plus_vbuz1 lda {z1} asl tax +//FRAGMENT vbuxx=vbuaa_plus_vbuaa +asl +tax //FRAGMENT vbuyy=vbuz1_plus_vbuz1 lda {z1} asl tay +//FRAGMENT vbuyy=vbuaa_plus_vbuaa +asl +tay //FRAGMENT 0_neq__deref_pbuc1_then_la1 lda {c1} cmp #0 @@ -4160,6 +3008,11 @@ lda #{c1} ldy {z2} sty {z1}+1 sta {z1} +//FRAGMENT vwuz1=vwuz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 //FRAGMENT vwuz1=vwuz2_plus_vbuc1 lda #{c1} clc @@ -4168,6 +3021,9 @@ sta {z1} lda #0 adc {z2}+1 sta {z1}+1 +//FRAGMENT vbuz1=_hi_vwuz2 +lda {z2}+1 +sta {z1} //FRAGMENT vbsz1=_inc_vbsz1 inc {z1} //FRAGMENT vbsz1_neq_vbsc1_then_la1 @@ -4191,6 +3047,29 @@ sta {z1} lda {z2} ora {z3} sta {z1} +//FRAGMENT pbuz1_derefidx_vbuz2=vbuz3 +lda {z3} +ldy {z2} +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuz2=vbuc1 +lda #{c1} +ldy {z2} +sta ({z1}),y +//FRAGMENT vwsz1_ge_0_then_la1 +lda {z1}+1 +bpl {la1} +//FRAGMENT vwsz1=_neg_vwsz2 +sec +lda #0 +sbc {z2} +sta {z1} +lda #0 +sbc {z2}+1 +sta {z1}+1 +//FRAGMENT vwsz1_neq_0_then_la1 +lda {z1}+1 +ora {z1} +bne {la1} //FRAGMENT vwuz1=vwuz2_ror_1 lda {z2}+1 lsr @@ -4214,6 +3093,9 @@ sta {z1} lda #0 sbc {z1}+1 sta {z1}+1 +//FRAGMENT 0_eq_vbuz1_then_la1 +lda {z1} +beq {la1} //FRAGMENT vwsz1=vwsz1_ror_1 lda {z1}+1 cmp #$80 @@ -4269,6 +3151,10 @@ sty {z1} lda #{c1} stx {z1}+1 sta {z1} +//FRAGMENT vbuaa=_hi_vwuz1 +lda {z1}+1 +//FRAGMENT vbuxx=_hi_vwuz1 +ldx {z1}+1 //FRAGMENT vbsxx_neq_vbsc1_then_la1 cpx #{c1} bne {la1} @@ -4465,6 +3351,32 @@ ora {z2} sta {z1} //FRAGMENT vbuz1=vbuxx_bor_vbuxx stx {z1} +//FRAGMENT pbuz1_derefidx_vbuxx=vbuz2 +txa +tay +lda {z2} +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuyy=vbuz2 +lda {z2} +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuz2=vbuaa +ldy {z2} +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuxx=vbuc1 +txa +tay +lda #{c1} +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuyy=vbuc1 +lda #{c1} +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuaa=vbuc1 +tay +lda #{c1} +sta ({z1}),y +//FRAGMENT 0_eq_vbuxx_then_la1 +cpx #0 +beq {la1} //FRAGMENT vwuz1=vwuz1_minus_pwuc1_derefidx_vbuaa tay sec @@ -4521,6 +3433,9 @@ sta {z1}+1 //FRAGMENT vbuxx=vbuxx_minus_2 dex dex +//FRAGMENT 0_eq_vbuyy_then_la1 +cpy #0 +beq {la1} //FRAGMENT vbuyy=vbuyy_minus_2 dey dey @@ -4546,6 +3461,10 @@ ora {z1} lda {z1} ora {z2} tax +//FRAGMENT pbuz1_derefidx_vbuz2=vbuxx +ldy {z2} +txa +sta ({z1}),y //FRAGMENT vbuxx=vbuz1_bor_vbuaa ora {z1} tax @@ -4561,6 +3480,10 @@ tax lda {z1} ora {z2} tay +//FRAGMENT pbuz1_derefidx_vbuz2=vbuyy +tya +ldy {z2} +sta ({z1}),y //FRAGMENT vbuyy=vbuz1_bor_vbuaa ora {z1} tay @@ -4572,9 +3495,21 @@ tay tya ora {z1} tay +//FRAGMENT pbuz1_derefidx_vbuxx=vbuyy +stx $ff +tya +ldy $ff +sta ({z1}),y +//FRAGMENT vbuyy=_hi_vwuz1 +ldy {z1}+1 +//FRAGMENT pbuz1_derefidx_vbuyy=vbuaa +sta ({z1}),y //FRAGMENT vbuaa=vbuyy_bor_vbuaa sty $ff ora $ff +//FRAGMENT vwuz1=vwuz1_ror_1 +lsr {z1}+1 +ror {z1} //FRAGMENT vwuz1=vwuz1_plus_vbuc1 lda #{c1} clc @@ -4583,6 +3518,13 @@ sta {z1} bcc !+ inc {z1}+1 !: +//FRAGMENT pbuz1_neq_pbuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bne {la1} +lda {z1} +cmp #<{c1} +bne {la1} //FRAGMENT vbuaa_eq_vbuc1_then_la1 cmp #{c1} beq {la1} @@ -4605,6 +3547,53 @@ beq {la1} sty $ff cpx $ff beq {la1} +//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuz3 +ldy {z3} +lda {c1},y +ldy {z2} +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuz2 +txa +ldx {z2} +tay +lda {c1},x +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuz2 +ldx {z2} +lda {c1},x +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuxx +lda {c1},x +ldy {z2} +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuxx +txa +tay +lda {c1},y +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuxx +lda {c1},x +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuyy +lda {c1},y +ldy {z2} +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuyy +lda {c1},y +stx $ff +ldy $ff +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuyy +lda {c1},y +sta ({z1}),y +//FRAGMENT vwsz1=_sword_vbuz2 +lda {z2} +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwsz1=vwsz1_rol_1 +asl {z1} +rol {z1}+1 //FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuc2 lda #{c2} and {c1} @@ -4769,6 +3758,59 @@ tya clc adc #{c1} tay +//FRAGMENT vbuz1=vbuz2_plus_vbuaa +clc +adc {z2} +sta {z1} +//FRAGMENT vbuz1=vbuxx_plus_vbuaa +stx $ff +clc +adc $ff +sta {z1} +//FRAGMENT vbuz1=vbuyy_plus_vbuaa +sty $ff +clc +adc $ff +sta {z1} +//FRAGMENT vbuaa=vbuz1_plus_vbuaa +clc +adc {z1} +//FRAGMENT vbuaa=vbuxx_plus_vbuaa +stx $ff +clc +adc $ff +//FRAGMENT vbuaa=vbuyy_plus_vbuaa +sty $ff +clc +adc $ff +//FRAGMENT vbuxx=vbuz1_plus_vbuaa +clc +adc {z1} +tax +//FRAGMENT vbuxx=vbuxx_plus_vbuaa +stx $ff +clc +adc $ff +tax +//FRAGMENT vbuxx=vbuyy_plus_vbuaa +sty $ff +clc +adc $ff +tax +//FRAGMENT vbuyy=vbuz1_plus_vbuaa +clc +adc {z1} +tay +//FRAGMENT vbuyy=vbuxx_plus_vbuaa +stx $ff +clc +adc $ff +tay +//FRAGMENT vbuyy=vbuyy_plus_vbuaa +sty $ff +clc +adc $ff +tay //FRAGMENT vbuz1=vbuz2_rol_4 lda {z2} asl @@ -4938,6 +3980,9 @@ ora {z1} txa sty $ff ora $ff +//FRAGMENT pbuz1_derefidx_vbuyy=vbuxx +txa +sta ({z1}),y //FRAGMENT vbuxx=vbuxx_bor_vbuz1 txa ora {z1} @@ -4964,9 +4009,6 @@ txa sty $ff ora $ff tay -//FRAGMENT vboz1=vboyy -tya -sta {z1} //FRAGMENT vbuz1=_byte_pwuc1_derefidx_vbuz2 ldy {z2} lda {c1},y @@ -5100,6 +4142,9 @@ inc {c1},x bne !+ inc {c1}+1,x !: +//FRAGMENT vbuz1=_lo_vwuz2 +lda {z2} +sta {z1} //FRAGMENT vwuz1_gt_vbuc1_then_la1 lda {z1}+1 bne {la1} @@ -5118,6 +4163,10 @@ sta {c1} lda {c1} ora {z1} sta {c1} +//FRAGMENT vbuaa=_lo_vwuz1 +lda {z1} +//FRAGMENT vbuxx=_lo_vwuz1 +ldx {z1} //FRAGMENT vbuaa=vbuz1_bxor_vbuc1 lda #{c1} eor {z1} @@ -5147,6 +4196,10 @@ sta {z1} //FRAGMENT vbuaa=vbuxx_bxor_vbuc1 txa eor #{c1} +//FRAGMENT vbuxx=vbuxx_bxor_vbuc1 +txa +eor #{c1} +tax //FRAGMENT vbuyy=vbuxx_bxor_vbuc1 txa eor #{c1} @@ -5162,6 +4215,10 @@ eor #{c1} tya eor #{c1} tax +//FRAGMENT vbuyy=vbuyy_bxor_vbuc1 +tya +eor #{c1} +tay //FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuaa and {c1} sta {c1} @@ -5194,6 +4251,52 @@ bcs {la1} cmp #{c1} bcc {la1} beq {la1} +//FRAGMENT _stackpushbyte_=vbuc1 +lda #{c1} +pha +//FRAGMENT _stackpullbyte_1 +pla +//FRAGMENT vbuz1=_stackpullbyte_ +pla +sta {z1} +//FRAGMENT vbuz1=_stackidxbyte_vbuc1 +tsx +lda STACK_BASE+{c1},x +sta {z1} +//FRAGMENT _stackidxbyte_vbuc1=vbuz1 +lda {z1} +tsx +sta STACK_BASE+{c1},x +//FRAGMENT vbuaa=_stackpullbyte_ +pla +//FRAGMENT vbuxx=_stackpullbyte_ +pla +tax +//FRAGMENT vbuyy=_stackpullbyte_ +pla +tay +//FRAGMENT vbuaa=_stackidxbyte_vbuc1 +tsx +lda STACK_BASE+{c1},x +//FRAGMENT vbuxx=_stackidxbyte_vbuc1 +tsx +lda STACK_BASE+{c1},x +tax +//FRAGMENT vbuyy=_stackidxbyte_vbuc1 +tsx +lda STACK_BASE+{c1},x +tay +//FRAGMENT _stackidxbyte_vbuc1=vbuaa +tsx +sta STACK_BASE+{c1},x +//FRAGMENT _stackidxbyte_vbuc1=vbuxx +txa +tsx +sta STACK_BASE+{c1},x +//FRAGMENT _stackidxbyte_vbuc1=vbuyy +tya +tsx +sta STACK_BASE+{c1},x //FRAGMENT vbsz1_ge_0_then_la1 lda {z1} cmp #0 @@ -5212,6 +4315,10 @@ lda #0 !: adc #>{c1} sta {z1}+1 +//FRAGMENT vbuz1_lt_vbuz2_then_la1 +lda {z1} +cmp {z2} +bcc {la1} //FRAGMENT vbuz1=_deref_pbuz2_band_vbuc1 lda #{c1} ldy #0 @@ -5258,6 +4365,9 @@ lda #0 !: adc #>{c1} sta {z1}+1 +//FRAGMENT vbuaa_lt_vbuz1_then_la1 +cmp {z1} +bcc {la1} //FRAGMENT vbuaa=_deref_pbuz1_band_vbuc1 lda #{c1} ldy #0 @@ -5294,6 +4404,9 @@ tay //FRAGMENT vbsxx_ge_0_then_la1 cpx #0 bpl {la1} +//FRAGMENT vbuxx_lt_vbuz1_then_la1 +cpx {z1} +bcc {la1} //FRAGMENT vbuyy=vbuxx_bor_vbuyy txa sty $ff @@ -5314,6 +4427,10 @@ bne !+ dec {z1}+1 !: dec {z1} +//FRAGMENT vbuz1=vbuz2_ror_1 +lda {z2} +lsr +sta {z1} //FRAGMENT _stackpushbyte_=vbuz1 lda {z1} pha @@ -5322,12 +4439,68 @@ pha //FRAGMENT _stackpullbyte_2 pla pla +//FRAGMENT vbuz1=vbuaa_ror_1 +lsr +sta {z1} +//FRAGMENT vbuz1=vbuxx_ror_1 +txa +lsr +sta {z1} +//FRAGMENT vbuz1=vbuyy_ror_1 +tya +lsr +sta {z1} +//FRAGMENT vbuaa=vbuz1_ror_1 +lda {z1} +lsr +//FRAGMENT vbuaa=vbuaa_ror_1 +lsr +//FRAGMENT vbuaa=vbuxx_ror_1 +txa +lsr +//FRAGMENT vbuaa=vbuyy_ror_1 +tya +lsr +//FRAGMENT vbuxx=vbuz1_ror_1 +lda {z1} +lsr +tax +//FRAGMENT vbuxx=vbuaa_ror_1 +lsr +tax +//FRAGMENT vbuxx=vbuxx_ror_1 +txa +lsr +tax +//FRAGMENT vbuxx=vbuyy_ror_1 +tya +lsr +tax +//FRAGMENT vbuyy=vbuz1_ror_1 +lda {z1} +lsr +tay +//FRAGMENT vbuyy=vbuaa_ror_1 +lsr +tay +//FRAGMENT vbuyy=vbuxx_ror_1 +txa +lsr +tay +//FRAGMENT vbuyy=vbuyy_ror_1 +tya +lsr +tay //FRAGMENT _stackpushbyte_=vbuxx txa pha //FRAGMENT _stackpushbyte_=vbuyy tya pha +//FRAGMENT vbuz1=vbuz2_plus_1 +ldy {z2} +iny +sty {z1} //FRAGMENT _stackpushbyte_3 pha pha @@ -5344,6 +4517,9 @@ adc #1 //FRAGMENT vbuyy=vbuz1_plus_1 ldy {z1} iny +//FRAGMENT vbuz1=vbuxx_plus_1 +inx +stx {z1} //FRAGMENT vbuz1=vbuyy_plus_1 iny sty {z1} @@ -5372,6 +4548,11 @@ tsx txa axs #-3 txs +//FRAGMENT vbuz1_lt_vbuxx_then_la1 +cpx {z1} +beq !+ +bcs {la1} +!: //FRAGMENT vbuz1=vbuz2_minus_1 ldx {z2} dex @@ -5399,6 +4580,15 @@ sbc #1 //FRAGMENT vbuxx=vbuaa_minus_1 tax dex +//FRAGMENT vbuz1=vbuz1_plus_1 +inc {z1} +//FRAGMENT vbuaa=vbuaa_plus_1 +clc +adc #1 +//FRAGMENT vbuxx=vbuxx_plus_1 +inx +//FRAGMENT vbuyy=vbuyy_plus_1 +iny //FRAGMENT pbuc1_derefidx_vbuz1_neq_0_then_la1 ldy {z1} lda {c1},y @@ -5421,128 +4611,42 @@ bne {la1} lda {c1},y cmp #0 bne {la1} -//FRAGMENT pvoz1=pvoz2 -lda {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vwuz1=vbuc1 -lda #<{c1} -sta {z1} -lda #>{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=pbuz2_derefidx_vbuz3 -ldy {z3} -lda ({z2}),y -sta {z1} -//FRAGMENT vbuz1_le_0_then_la1 +//FRAGMENT vbuz1=_dec_vbuz1 +dec {z1} +//FRAGMENT vbuz1_gt_0_then_la1 lda {z1} +bne {la1} +//FRAGMENT vbuaa_gt_0_then_la1 cmp #0 -beq {la1} -//FRAGMENT vwuz1_eq_vwuc1_then_la1 -lda {z1} -cmp #<{c1} -bne !+ -lda {z1}+1 -cmp #>{c1} -beq {la1} -!: -//FRAGMENT vwuz1=pwuz2_derefidx_vbuz3 -ldy {z3} -lda ({z2}),y -sta {z1} -iny -lda ({z2}),y -sta {z1}+1 -//FRAGMENT _deref_pbuz1_eq_vbuc1_then_la1 -lda #{c1} -ldy #0 -cmp ({z1}),y -beq {la1} -//FRAGMENT _deref_pbuz1_gt_vbuz2_then_la1 -ldy #0 -lda ({z1}),y -cmp {z2} -beq !+ -bcs {la1} -!: -//FRAGMENT pbuz1=pbuz2_plus_vwuc1 -clc -lda {z2} -adc #<{c1} -sta {z1} -lda {z2}+1 -adc #>{c1} -sta {z1}+1 -//FRAGMENT vbuz1=vbuc1_minus_vbuz2 -lda #{c1} -sec -sbc {z2} -sta {z1} -//FRAGMENT pbuz1=pbuz1_minus_vbuc1 -sec -lda {z1} -sbc #{c1} -sta {z1} -lda {z1}+1 -sbc #0 -sta {z1}+1 -//FRAGMENT vbuz1=vbuz2_minus_vbuc1 -lax {z2} -axs #{c1} -stx {z1} -//FRAGMENT vbuz1=_neg_vbuz2 -lda {z2} -eor #$ff -clc -adc #$01 -sta {z1} -//FRAGMENT pbuz1_derefidx_(_deref_pbuz2)=_inc_pbuz1_derefidx_(_deref_pbuz2) -ldy #0 -lda ({z2}),y -tay -lda ({z1}),y -clc -adc #1 -sta ({z1}),y -//FRAGMENT vwuz1_neq_vwuc1_then_la1 -lda {z1}+1 -cmp #>{c1} bne {la1} -lda {z1} -cmp #<{c1} +//FRAGMENT vbuaa=_dec_vbuaa +sec +sbc #1 +//FRAGMENT vbuxx=_dec_vbuxx +dex +//FRAGMENT vbuxx_gt_0_then_la1 +cpx #0 bne {la1} -//FRAGMENT vwuz1=_deref_pbuz2_rol_1 -ldy #0 -lda ({z2}),y -asl +//FRAGMENT vbuyy=_dec_vbuyy +dey +//FRAGMENT vbuyy_gt_0_then_la1 +cpy #0 +bne {la1} +//FRAGMENT vwuz1=_word_vbuz2 +lda {z2} sta {z1} lda #0 -rol sta {z1}+1 -//FRAGMENT vwuz1=vwuz2_rol_1 +//FRAGMENT vwuz1=vwuz2_rol_2 lda {z2} asl sta {z1} lda {z2}+1 rol sta {z1}+1 -//FRAGMENT qwuz1=qwuz2_plus_vwuz3 +asl {z1} +rol {z1}+1 +//FRAGMENT vwuz1=vwuz2_plus_vwuz3 lda {z2} clc adc {z3} @@ -5550,532 +4654,52 @@ sta {z1} lda {z2}+1 adc {z3}+1 sta {z1}+1 -//FRAGMENT _deref_qwuz1=pwuz2 -ldy #0 +//FRAGMENT vwuz1=vwuz2_rol_3 lda {z2} -sta ({z1}),y -iny -lda {z2}+1 -sta ({z1}),y -//FRAGMENT vwuz1_neq_vbuc1_then_la1 -NO_SYNTHESIS -//FRAGMENT vwuz1_neq_vbsc1_then_la1 -NO_SYNTHESIS -//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 pbuz1_derefidx_vbuz2=_inc_pbuz1_derefidx_vbuz2 -ldy {z2} -lda ({z1}),y -clc -adc #1 -sta ({z1}),y -//FRAGMENT pwuz1=pwuz2 -lda {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT _deref_pwuz1=vwuz2 -ldy #0 -lda {z2} -sta ({z1}),y -iny -lda {z2}+1 -sta ({z1}),y -//FRAGMENT pwuz1=pwuz1_plus_vbuc1 -lda #{c1} -clc -adc {z1} -sta {z1} -bcc !+ -inc {z1}+1 -!: -//FRAGMENT vwuz1=vwuz1_plus_vbuz2 -lda {z2} -clc -adc {z1} -sta {z1} -bcc !+ -inc {z1}+1 -!: -//FRAGMENT vwuz1=pwuz2_minus_pwuz3 -lda {z2} -sec -sbc {z3} -sta {z1} -lda {z2}+1 -sbc {z3}+1 -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 vbuz1=vbuz1_ror_1 -lsr {z1} -//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 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_vbuxx -txa -tay -lda ({z2}),y -sta {z1} -//FRAGMENT vbuxx=pbuz1_derefidx_vbuxx -txa -tay -lda ({z1}),y -tax -//FRAGMENT vbuyy=pbuz1_derefidx_vbuxx -txa -tay -lda ({z1}),y -tay -//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 vbuaa=vbuc1_minus_vbuz1 -lda #{c1} -sec -sbc {z1} -//FRAGMENT vbuxx=vbuc1_minus_vbuz1 -lda #{c1} -sec -sbc {z1} -tax -//FRAGMENT vbuyy=vbuc1_minus_vbuz1 -lda #{c1} -sec -sbc {z1} -tay -//FRAGMENT vbuz1=vbuc1_minus_vbuaa -eor #$ff -sec -adc #{c1} -sta {z1} -//FRAGMENT vbuaa=vbuc1_minus_vbuaa -eor #$ff -sec -adc #{c1} -//FRAGMENT vbuxx=vbuc1_minus_vbuaa -eor #$ff -tax -axs #-{c1}-1 -//FRAGMENT vbuyy=vbuc1_minus_vbuaa -eor #$ff -sec -adc #{c1} -tay -//FRAGMENT vbuz1=vbuc1_minus_vbuxx -txa -eor #$ff -sec -adc #{c1} -sta {z1} -//FRAGMENT vbuaa=vbuc1_minus_vbuxx -txa -eor #$ff -sec -adc #{c1} -//FRAGMENT vbuxx=vbuc1_minus_vbuxx -txa -eor #$ff -tax -axs #-{c1}-1 -//FRAGMENT vbuyy=vbuc1_minus_vbuxx -txa -eor #$ff -sec -adc #{c1} -tay -//FRAGMENT vbuz1=vbuc1_minus_vbuyy -tya -eor #$ff -sec -adc #{c1} -sta {z1} -//FRAGMENT vbuaa=vbuc1_minus_vbuyy -tya -eor #$ff -sec -adc #{c1} -//FRAGMENT vbuxx=vbuc1_minus_vbuyy -tya -eor #$ff -tax -axs #-{c1}-1 -//FRAGMENT vbuyy=vbuc1_minus_vbuyy -tya -eor #$ff -sec -adc #{c1} -tay -//FRAGMENT vbuz1=vbuaa_minus_vbuc1 -sec -sbc #{c1} -sta {z1} -//FRAGMENT vbuz1=vbuxx_minus_vbuc1 -txa -axs #{c1} -stx {z1} -//FRAGMENT vbuz1=vbuyy_minus_vbuc1 -tya -sec -sbc #{c1} -sta {z1} -//FRAGMENT vbuaa=vbuz1_minus_vbuc1 -lda {z1} -sec -sbc #{c1} -//FRAGMENT vbuaa=vbuaa_minus_vbuc1 -sec -sbc #{c1} -//FRAGMENT vbuaa=vbuxx_minus_vbuc1 -txa -sec -sbc #{c1} -//FRAGMENT vbuaa=vbuyy_minus_vbuc1 -tya -sec -sbc #{c1} -//FRAGMENT vbuxx=vbuz1_minus_vbuc1 -lax {z1} -axs #{c1} -//FRAGMENT vbuxx=vbuaa_minus_vbuc1 -tax -axs #{c1} -//FRAGMENT vbuyy=vbuz1_minus_vbuc1 -lda {z1} -sec -sbc #{c1} -tay -//FRAGMENT vbuz1=_neg_vbuaa -eor #$ff -clc -adc #$01 -sta {z1} -//FRAGMENT vbuz1=_neg_vbuxx -dex -txa -eor #$ff -sta {z1} -//FRAGMENT vbuz1=_neg_vbuyy -dey -tya -eor #$ff -sta {z1} -//FRAGMENT vbuaa=_neg_vbuz1 -lda {z1} -eor #$ff -clc -adc #$01 -//FRAGMENT vbuaa=_neg_vbuaa -eor #$ff -clc -adc #$01 -//FRAGMENT vbuaa=_neg_vbuxx -dex -txa -eor #$ff -//FRAGMENT vbuaa=_neg_vbuyy -dey -tya -eor #$ff -//FRAGMENT vbuxx=_neg_vbuz1 -lda {z1} -eor #$ff -tax -inx -//FRAGMENT vbuxx=_neg_vbuaa -eor #$ff -tax -inx -//FRAGMENT vbuxx=_neg_vbuxx -dex -txa -eor #$ff -tax -//FRAGMENT vbuxx=_neg_vbuyy -tya -eor #$ff -tax -inx -//FRAGMENT vbuyy=_neg_vbuz1 -lda {z1} -eor #$ff -tay -iny -//FRAGMENT vbuyy=_neg_vbuaa -eor #$ff -tay -iny -//FRAGMENT vbuyy=_neg_vbuxx -txa -eor #$ff -tay -iny -//FRAGMENT vbuyy=_neg_vbuyy -dey -tya -eor #$ff -tay -//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 -lda ({z1}),y -clc -adc #1 -sta ({z1}),y -//FRAGMENT vwuz1=vwuz1_plus_vbuaa -clc -adc {z1} -sta {z1} -bcc !+ -inc {z1}+1 -!: -//FRAGMENT vwuz1=vwuz1_plus_vbuxx -txa -clc -adc {z1} -sta {z1} -bcc !+ -inc {z1}+1 -!: -//FRAGMENT vwuz1=vwuz1_plus_vbuyy -tya -clc -adc {z1} -sta {z1} -bcc !+ -inc {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 vbuxx_le_0_then_la1 -cpx #0 -beq {la1} -//FRAGMENT vwuz1=vbuyy_word_vbuc1 -lda #{c1} -sty {z1}+1 -sta {z1} -//FRAGMENT vbuyy=vbuaa_minus_vbuc1 -sec -sbc #{c1} -tay -//FRAGMENT vbuxx=vbuxx_minus_vbuc1 -txa -axs #{c1} -//FRAGMENT vbuyy=vbuxx_minus_vbuc1 -txa -sec -sbc #{c1} -tay -//FRAGMENT vbuxx=vbuyy_minus_vbuc1 -tya -tax -axs #{c1} -//FRAGMENT vbuyy=vbuyy_minus_vbuc1 -tya -sec -sbc #{c1} -tay -//FRAGMENT vbuaa=vbuxx_plus_1 -inx -txa -//FRAGMENT vbuaa=vbuyy_plus_1 -iny -tya -//FRAGMENT vbuxx=vbuz1_plus_1 -ldx {z1} -inx -//FRAGMENT vbuxx=vbuaa_plus_1 -tax -inx -//FRAGMENT vbuxx=vbuyy_plus_1 -tya -tax -inx -//FRAGMENT vbuyy=vbuaa_plus_1 -tay -iny -//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 +lda {z2}+1 rol sta {z1}+1 -//FRAGMENT pbuz1=pbuz1_plus_vwuc1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +//FRAGMENT pbuz1=pbuc1_plus_vwuz2 +clc +lda {z2} +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//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 pbuz1_derefidx_vbuxx=vbuxx +txa +tay +sta ({z1}),y +//FRAGMENT vwuz1=vwuz2_plus_vwuz1 +lda {z1} +clc +adc {z2} +sta {z1} +lda {z1}+1 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT pbuz1=pbuc1_plus_vwuz1 clc lda {z1} adc #<{c1} @@ -6083,39 +4707,144 @@ sta {z1} lda {z1}+1 adc #>{c1} sta {z1}+1 -//FRAGMENT qwuz1=qwuz2_plus_vwuz1 -lda {z1} +//FRAGMENT vwuz1=vwuz1_rol_3 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +//FRAGMENT vbuz1=vbuz2_ror_4 +lda {z2} +lsr +lsr +lsr +lsr +sta {z1} +//FRAGMENT 0_eq_vbuaa_then_la1 +cmp #0 +beq {la1} +//FRAGMENT vbuz1=vbuaa_plus_1 clc -adc {z2} +adc #1 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 +//FRAGMENT vbuaa=vbuz1_ror_4 lda {z1} -sec -sbc {z2} -sta {z1} -lda {z1}+1 -sbc {z2}+1 -sta {z1}+1 -//FRAGMENT vwuz1=vwuz1_plus_vwuz2 +lsr +lsr +lsr +lsr +//FRAGMENT vbuxx=vbuz1_ror_4 lda {z1} -clc -adc {z2} +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} -lda {z1}+1 -adc {z2}+1 -sta {z1}+1 +//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 pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuaa +tay +lda {c1},y +ldy {z2} +sta ({z1}),y +//FRAGMENT 0_neq_vbuz1_then_la1 +lda {z1} +bne {la1} +//FRAGMENT 0_neq_vbuxx_then_la1 +cpx #0 +bne {la1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx +lda {c1},x +//FRAGMENT 0_neq_vbuyy_then_la1 +cpy #0 +bne {la1} +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy +ldx {c1},y +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx +ldy {c1},x //FRAGMENT pbuz1_le_pbuc1_then_la1 lda {z1}+1 cmp #>{c1} @@ -6134,6 +4863,73 @@ lda #<{c1} cmp {z1} bcc {la1} !: +//FRAGMENT vbuz1=vbuc1_bor_vbuz2 +lda #{c1} +ora {z2} +sta {z1} +//FRAGMENT vbuz1=vbuz1_rol_1 +asl {z1} +//FRAGMENT vbuz1=vbuc1_bor_vbuaa +ora #{c1} +sta {z1} +//FRAGMENT vbuz1=vbuc1_bor_vbuxx +txa +ora #{c1} +sta {z1} +//FRAGMENT vbuz1=vbuc1_bor_vbuyy +tya +ora #{c1} +sta {z1} +//FRAGMENT vbuaa=vbuc1_bor_vbuz1 +lda #{c1} +ora {z1} +//FRAGMENT vbuaa=vbuc1_bor_vbuaa +ora #{c1} +//FRAGMENT vbuaa=vbuc1_bor_vbuxx +txa +ora #{c1} +//FRAGMENT vbuaa=vbuc1_bor_vbuyy +tya +ora #{c1} +//FRAGMENT vbuxx=vbuc1_bor_vbuz1 +lda #{c1} +ora {z1} +tax +//FRAGMENT vbuxx=vbuc1_bor_vbuaa +ora #{c1} +tax +//FRAGMENT vbuxx=vbuc1_bor_vbuxx +txa +ora #{c1} +tax +//FRAGMENT vbuxx=vbuc1_bor_vbuyy +tya +ora #{c1} +tax +//FRAGMENT vbuyy=vbuc1_bor_vbuz1 +lda #{c1} +ora {z1} +tay +//FRAGMENT vbuyy=vbuc1_bor_vbuaa +ora #{c1} +tay +//FRAGMENT vbuyy=vbuc1_bor_vbuxx +txa +ora #{c1} +tay +//FRAGMENT vbuyy=vbuc1_bor_vbuyy +tya +ora #{c1} +tay +//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 vdsz1=vdsc1 lda #<{c1} sta {z1} @@ -6428,167 +5224,108 @@ tax //FRAGMENT vbuyy=_byte_vduz1 lda {z1} tay -//FRAGMENT pvoz1=pvoc1 -lda #<{c1} +//FRAGMENT _deref_pbuc1=_dec__deref_pbuc1 +dec {c1} +//FRAGMENT pbuz1=pbuz2_plus_vbuc1 +lda #{c1} +clc +adc {z2} sta {z1} -lda #>{c1} +lda #0 +adc {z2}+1 sta {z1}+1 -//FRAGMENT vwuz1_lt_vbuc1_then_la1 -lda {z1}+1 -bne !+ -lda {z1} -cmp #{c1} -bcc {la1} -!: -//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 vwuz1=_word_vduz2 -lda {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vwuz1_lt_vwuc1_then_la1 -lda {z1}+1 -cmp #>{c1} -bcc {la1} -bne !+ -lda {z1} -cmp #<{c1} -bcc {la1} -!: -//FRAGMENT vwuz1_le_0_then_la1 -lda {z1} -bne !+ -lda {z1}+1 -beq {la1} -!: -//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 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 vwuz1=_lo_vduz2 -lda {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vduz1=vwuz2_dword_vwuz3 -lda {z2} -sta {z1}+2 -lda {z2}+1 -sta {z1}+3 -lda {z3} -sta {z1} -lda {z3}+1 -sta {z1}+1 -//FRAGMENT vwuz1=vwuz1_minus_vwuc1 -lda {z1} -sec -sbc #<{c1} -sta {z1} -lda {z1}+1 -sbc #>{c1} -sta {z1}+1 -//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 vduz1=pduc1_derefidx_vbuaa +//FRAGMENT pbuz1_derefidx_vbuaa=vbuz2 tay -lda {c1},y +lda {z2} +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuaa=vbuaa +tay +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuaa=vbuxx +tay +txa +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuaa=vbuyy +sta $ff +tya +ldy $ff +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuyy=vbuyy +tya +sta ({z1}),y +//FRAGMENT pbuz1=pbuz2 +lda {z2} sta {z1} -lda {c1}+1,y +lda {z2}+1 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 +//FRAGMENT _deref_pbuz1_eq_vbuz2_then_la1 +lda {z2} +ldy #0 +cmp ({z1}),y +beq {la1} +//FRAGMENT pbuz1=_inc_pbuz2 +clc +lda {z2} +adc #1 sta {z1} -lda {c1}+1,x +lda {z2}+1 +adc #0 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 +//FRAGMENT _deref_pbuz1_neq_0_then_la1 +ldy #0 +lda ({z1}),y +cmp #0 +bne {la1} +//FRAGMENT _deref_pbuz1_eq_vbuxx_then_la1 +txa +ldy #0 +cmp ({z1}),y +beq {la1} +//FRAGMENT _deref_pbuz1_eq_vbuyy_then_la1 +tya +ldy #0 +cmp ({z1}),y +beq {la1} +//FRAGMENT pbuz1=pbuc1_plus_vbuz2 +lda {z2} +clc +adc #<{c1} sta {z1} -lda {c1}+1,y +lda #>{c1} +adc #0 sta {z1}+1 -lda {c1}+2,y -sta {z1}+2 -lda {c1}+3,y -sta {z1}+3 -//FRAGMENT pbuz1=pbuz2_plus_vwuz1 +//FRAGMENT pbuz1=pbuz2_plus_vwuz3 +lda {z2} +clc +adc {z3} +sta {z1} +lda {z2}+1 +adc {z3}+1 +sta {z1}+1 +//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 pbuz1=pbuz1_plus_vwuz2 lda {z1} clc adc {z2} @@ -6596,20 +5333,460 @@ sta {z1} lda {z1}+1 adc {z2}+1 sta {z1}+1 -//FRAGMENT vduz1=vduz1_minus_vduc1 +//FRAGMENT vbuz1=vbuz1_plus_vbuc1 +lax {z1} +axs #-[{c1}] +stx {z1} +//FRAGMENT vwuz1=vbuz2 +lda {z2} +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT pwuc1_derefidx_vbuz1=vwuz2 +ldy {z1} +lda {z2} +sta {c1},y +lda {z2}+1 +sta {c1}+1,y +//FRAGMENT vbuz1=vwuz2_band_vbuc1 +lda #{c1} +and {z2} +sta {z1} +//FRAGMENT vbuz1=pwuc1_derefidx_vbuz2_band_vbuc2 +lda #{c2} +ldy {z2} +and {c1},y +sta {z1} +//FRAGMENT vwuz1=vbuaa +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=vbuxx +txa +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=vbuyy +tya +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=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 vbuaa=pwuc1_derefidx_vbuz1_band_vbuc2 +lda #{c2} +ldy {z1} +and {c1},y +//FRAGMENT vbuxx=pwuc1_derefidx_vbuz1_band_vbuc2 +lda #{c2} +ldx {z1} +and {c1},x +tax +//FRAGMENT vbuyy=pwuc1_derefidx_vbuz1_band_vbuc2 +lda #{c2} +ldy {z1} +and {c1},y +tay +//FRAGMENT vbuz1=pwuc1_derefidx_vbuaa_band_vbuc2 +tay +lda #{c2} +and {c1},y +sta {z1} +//FRAGMENT vbuaa=pwuc1_derefidx_vbuaa_band_vbuc2 +tay +lda #{c2} +and {c1},y +//FRAGMENT vbuxx=pwuc1_derefidx_vbuaa_band_vbuc2 +tax +lda #{c2} +and {c1},x +tax +//FRAGMENT vbuyy=pwuc1_derefidx_vbuaa_band_vbuc2 +tay +lda #{c2} +and {c1},y +tay +//FRAGMENT vbuz1=pwuc1_derefidx_vbuxx_band_vbuc2 +lda #{c2} +and {c1},x +sta {z1} +//FRAGMENT vbuaa=pwuc1_derefidx_vbuxx_band_vbuc2 +lda #{c2} +and {c1},x +//FRAGMENT vbuxx=pwuc1_derefidx_vbuxx_band_vbuc2 +lda #{c2} +and {c1},x +tax +//FRAGMENT vbuyy=pwuc1_derefidx_vbuxx_band_vbuc2 +lda #{c2} +and {c1},x +tay +//FRAGMENT vbuz1=pwuc1_derefidx_vbuyy_band_vbuc2 +lda #{c2} +and {c1},y +sta {z1} +//FRAGMENT vbuaa=pwuc1_derefidx_vbuyy_band_vbuc2 +lda #{c2} +and {c1},y +//FRAGMENT vbuxx=pwuc1_derefidx_vbuyy_band_vbuc2 +lda #{c2} +and {c1},y +tax +//FRAGMENT vbuyy=pwuc1_derefidx_vbuyy_band_vbuc2 +lda #{c2} +and {c1},y +tay +//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuz2 +ldx {z2} +tay +lda {c1},x +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuxx +tay +lda {c1},x +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuyy +ldx {c1},y +tay +txa +sta ({z1}),y +//FRAGMENT vwuz1=_inc_vwuz1 +inc {z1} +bne !+ +inc {z1}+1 +!: +//FRAGMENT vwuz1_neq_vwuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bne {la1} +lda {z1} +cmp #<{c1} +bne {la1} +//FRAGMENT vwuz1=vwuz2_plus_vbuz3 +lda {z3} +clc +adc {z2} +sta {z1} +lda #0 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT vbuz1=vbuz1_plus_vbuz2 +lda {z1} +clc +adc {z2} +sta {z1} +//FRAGMENT vbuz1=vbuz1_minus_vbuc1 +lax {z1} +axs #{c1} +stx {z1} +//FRAGMENT vbuz1=vbuz1_plus_pbuc1_derefidx_vbuz2 +lda {z1} +ldy {z2} +clc +adc {c1},y +sta {z1} +//FRAGMENT pbuz1=pbuz2_plus_vwuc1 +clc +lda {z2} +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vbuz1=pbuz2_derefidx_vbuc1_plus_pbuz2_derefidx_vbuc1 +ldy #{c1} +lda ({z2}),y +clc +adc ({z2}),y +sta {z1} +//FRAGMENT vbuz1=vbuz2_plus_pbuz3_derefidx_vbuc1 +lda {z2} +ldy #{c1} +clc +adc ({z3}),y +sta {z1} +//FRAGMENT vbuz1=vbuz2_ror_2 +lda {z2} +lsr +lsr +sta {z1} +//FRAGMENT vwuz1=vwuz2_plus_vbuxx +txa +clc +adc {z2} +sta {z1} +lda #0 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_plus_vbuyy +tya +clc +adc {z2} +sta {z1} +lda #0 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT vbuz1=vbuz1_plus_vbuxx +txa +clc +adc {z1} +sta {z1} +//FRAGMENT vbuxx=vbuxx_minus_vbuc1 +txa +axs #{c1} +//FRAGMENT vbuyy=vbuyy_plus_pbuc1_derefidx_vbuz1 +tya +ldy {z1} +clc +adc {c1},y +tay +//FRAGMENT vbuz1=vbuz1_plus_pbuc1_derefidx_vbuaa +tay +lda {c1},y +clc +adc {z1} +sta {z1} +//FRAGMENT vbuyy=vbuyy_plus_pbuc1_derefidx_vbuaa +tax +tya +clc +adc {c1},x +tay +//FRAGMENT vbuz1=vbuz1_plus_pbuc1_derefidx_vbuxx +lda {c1},x +clc +adc {z1} +sta {z1} +//FRAGMENT vbuyy=vbuyy_plus_pbuc1_derefidx_vbuxx +tya +clc +adc {c1},x +tay +//FRAGMENT vbuz1=vbuz1_plus_pbuc1_derefidx_vbuyy +lda {c1},y +clc +adc {z1} +sta {z1} +//FRAGMENT vbuyy=vbuyy_plus_pbuc1_derefidx_vbuyy +tya +clc +adc {c1},y +tay +//FRAGMENT vbuaa=pbuz1_derefidx_vbuc1_plus_pbuz1_derefidx_vbuc1 +ldy #{c1} +lda ({z1}),y +clc +adc ({z1}),y +//FRAGMENT vbuxx=pbuz1_derefidx_vbuc1_plus_pbuz1_derefidx_vbuc1 +ldy #{c1} +lda ({z1}),y +clc +adc ({z1}),y +tax +//FRAGMENT vbuyy=pbuz1_derefidx_vbuc1_plus_pbuz1_derefidx_vbuc1 +ldy #{c1} +lda ({z1}),y +clc +adc ({z1}),y +tay +//FRAGMENT vbuaa=vbuz1_plus_pbuz2_derefidx_vbuc1 +lda {z1} +ldy #{c1} +clc +adc ({z2}),y +//FRAGMENT vbuxx=vbuz1_plus_pbuz2_derefidx_vbuc1 +lda {z1} +ldy #{c1} +clc +adc ({z2}),y +tax +//FRAGMENT vbuyy=vbuz1_plus_pbuz2_derefidx_vbuc1 +lda {z1} +ldy #{c1} +clc +adc ({z2}),y +tay +//FRAGMENT vbuz1=vbuaa_plus_pbuz2_derefidx_vbuc1 +ldy #{c1} +clc +adc ({z2}),y +sta {z1} +//FRAGMENT vbuaa=vbuaa_plus_pbuz1_derefidx_vbuc1 +ldy #{c1} +clc +adc ({z1}),y +//FRAGMENT vbuxx=vbuaa_plus_pbuz1_derefidx_vbuc1 +ldy #{c1} +clc +adc ({z1}),y +tax +//FRAGMENT vbuyy=vbuaa_plus_pbuz1_derefidx_vbuc1 +ldy #{c1} +clc +adc ({z1}),y +tay +//FRAGMENT vbuz1=vbuxx_plus_pbuz2_derefidx_vbuc1 +ldy #{c1} +txa +clc +adc ({z2}),y +sta {z1} +//FRAGMENT vbuaa=vbuxx_plus_pbuz1_derefidx_vbuc1 +ldy #{c1} +txa +clc +adc ({z1}),y +//FRAGMENT vbuxx=vbuxx_plus_pbuz1_derefidx_vbuc1 +ldy #{c1} +txa +clc +adc ({z1}),y +tax +//FRAGMENT vbuyy=vbuxx_plus_pbuz1_derefidx_vbuc1 +ldy #{c1} +txa +clc +adc ({z1}),y +tay +//FRAGMENT vbuz1=vbuyy_plus_pbuz2_derefidx_vbuc1 +tya +ldy #{c1} +clc +adc ({z2}),y +sta {z1} +//FRAGMENT vbuaa=vbuyy_plus_pbuz1_derefidx_vbuc1 +tya +ldy #{c1} +clc +adc ({z1}),y +//FRAGMENT vbuxx=vbuyy_plus_pbuz1_derefidx_vbuc1 +tya +ldy #{c1} +clc +adc ({z1}),y +tax +//FRAGMENT vbuyy=vbuyy_plus_pbuz1_derefidx_vbuc1 +tya +ldy #{c1} +clc +adc ({z1}),y +tay +//FRAGMENT vbuz1=vbuaa_ror_2 +lsr +lsr +sta {z1} +//FRAGMENT vbuz1=vbuxx_ror_2 +txa +lsr +lsr +sta {z1} +//FRAGMENT vbuz1=vbuyy_ror_2 +tya +lsr +lsr +sta {z1} +//FRAGMENT vbuaa=vbuz1_ror_2 +lda {z1} +lsr +lsr +//FRAGMENT vbuaa=vbuaa_ror_2 +lsr +lsr +//FRAGMENT vbuaa=vbuxx_ror_2 +txa +lsr +lsr +//FRAGMENT vbuaa=vbuyy_ror_2 +tya +lsr +lsr +//FRAGMENT vbuxx=vbuz1_ror_2 +lda {z1} +lsr +lsr +tax +//FRAGMENT vbuxx=vbuaa_ror_2 +lsr +lsr +tax +//FRAGMENT vbuxx=vbuxx_ror_2 +txa +lsr +lsr +tax +//FRAGMENT vbuxx=vbuyy_ror_2 +tya +lsr +lsr +tax +//FRAGMENT vbuyy=vbuz1_ror_2 +lda {z1} +lsr +lsr +tay +//FRAGMENT vbuyy=vbuaa_ror_2 +lsr +lsr +tay +//FRAGMENT vbuyy=vbuxx_ror_2 +txa +lsr +lsr +tay +//FRAGMENT vbuyy=vbuyy_ror_2 +tya +lsr +lsr +tay +//FRAGMENT vbuaa=vbuaa_minus_vbuc1 sec -sbc #<{c1} +sbc #{c1} +//FRAGMENT vbuyy=vbuyy_minus_vbuc1 +tya +sec +sbc #{c1} +tay +//FRAGMENT pbuz1=pbuz1_plus_vwuc1 +clc +lda {z1} +adc #<{c1} sta {z1} lda {z1}+1 -sbc #>{c1} +adc #>{c1} sta {z1}+1 -lda {z1}+2 -sbc #<{c1}>>$10 -sta {z1}+2 -lda {z1}+3 -sbc #>{c1}>>$10 -sta {z1}+3 +//FRAGMENT vwuz1=vwuz1_plus_vbuz2 +lda {z2} +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: //FRAGMENT _deref_qbuc1=pbuc2 lda #<{c2} sta {c1} @@ -6618,158 +5795,67 @@ sta {c1}+1 //FRAGMENT _deref_pbsc1=vbsc2 lda #{c2} sta {c1} +//FRAGMENT vbuz1=_dec_vbuz2 +ldy {z2} +dey +sty {z1} +//FRAGMENT vbuz1=_dec_vbuaa +sec +sbc #1 +sta {z1} //FRAGMENT 0_neq_vbuaa_then_la1 cmp #0 bne {la1} -//FRAGMENT vwuz1=vwuz2_bor_vbuz3 -lda {z3} -ora {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vbuz1=vbuz1_rol_1 -asl {z1} -//FRAGMENT pbuz1_derefidx_vbuz2=pbuz3_derefidx_vbuz2 -ldy {z2} -lda ({z3}),y -sta ({z1}),y -//FRAGMENT vwuz1=vwuz2_rol_4 -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 -//FRAGMENT pbuz1_derefidx_vbuc1=pbuc2_derefidx_vbuz2 -ldy {z2} -lda {c2},y -ldy #{c1} -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuz2_eq_pbuz3_derefidx_vbuz2_then_la1 -ldy {z2} -lda ({z1}),y - -cmp ({z3}),y -beq {la1} -//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_vbuyy -lda ({z2}),y -sta {z1} -//FRAGMENT vbuxx=pbuz1_derefidx_vbuyy -lda ({z1}),y -tax -//FRAGMENT vbuyy=pbuz1_derefidx_vbuyy -lda ({z1}),y -tay -//FRAGMENT vwuz1=vwuz2_bor_vbuxx +//FRAGMENT vbuz1=_dec_vbuxx +dex +stx {z1} +//FRAGMENT vbuz1=_dec_vbuyy +dey +sty {z1} +//FRAGMENT vbuaa=_dec_vbuz1 +lda {z1} +sec +sbc #1 +//FRAGMENT vbuaa=_dec_vbuxx txa -ora {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vwuz1=vwuz2_bor_vbuyy +sec +sbc #1 +//FRAGMENT vbuaa=_dec_vbuyy tya -ora {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT pbuz1_derefidx_vbuaa=pbuz2_derefidx_vbuaa +sec +sbc #1 +//FRAGMENT vbuxx=_dec_vbuz1 +ldx {z1} +dex +//FRAGMENT vbuxx=_dec_vbuaa +tax +dex +//FRAGMENT vbuxx=_dec_vbuyy +tya +tax +dex +//FRAGMENT vbuyy=_dec_vbuz1 +ldy {z1} +dey +//FRAGMENT vbuyy=_dec_vbuaa tay -lda ({z2}),y -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuxx=pbuz2_derefidx_vbuxx +dey +//FRAGMENT vbuyy=_dec_vbuxx txa tay -lda ({z2}),y -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuyy=pbuz2_derefidx_vbuyy -lda ({z2}),y -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuc1=pbuc2_derefidx_vbuaa -tay -lda {c2},y -ldy #{c1} -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuc1=pbuc2_derefidx_vbuxx -lda {c2},x -ldy #{c1} -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuc1=pbuc2_derefidx_vbuyy -lda {c2},y -ldy #{c1} -sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuaa_eq_pbuz2_derefidx_vbuaa_then_la1 -tay -lda ({z1}),y - -cmp ({z2}),y -beq {la1} -//FRAGMENT pbuz1_derefidx_vbuxx_eq_pbuz2_derefidx_vbuxx_then_la1 -txa -tay -lda ({z1}),y - -cmp ({z2}),y -beq {la1} -//FRAGMENT pbuz1_derefidx_vbuyy_eq_pbuz2_derefidx_vbuyy_then_la1 -lda ({z1}),y - -cmp ({z2}),y -beq {la1} -//FRAGMENT vbuyy_lt_vbuz1_then_la1 -cpy {z1} -bcc {la1} -//FRAGMENT vbuyy_lt_vbuxx_then_la1 -stx $ff -cpy $ff -bcc {la1} -//FRAGMENT vbuz1_lt_vbuyy_then_la1 -cpy {z1} -beq !+ -bcs {la1} -!: -//FRAGMENT vbuxx_lt_vbuyy_then_la1 -sty $ff -cpx $ff -bcc {la1} -//FRAGMENT vwuz1=vwuz1_bor_vbuxx -txa -ora {z1} -sta {z1} -//FRAGMENT vwuz1=vwuz1_rol_4 -asl {z1} -rol {z1}+1 -asl {z1} -rol {z1}+1 -asl {z1} -rol {z1}+1 -asl {z1} -rol {z1}+1 +dey //FRAGMENT pwuz1=pwuc1 lda #<{c1} sta {z1} lda #>{c1} sta {z1}+1 +//FRAGMENT _deref_pwuz1=vwuz2 +ldy #0 +lda {z2} +sta ({z1}),y +iny +lda {z2}+1 +sta ({z1}),y //FRAGMENT pwuz1_derefidx_vbuc1=vwuz2 ldy #{c1} lda {z2} @@ -6777,44 +5863,27 @@ sta ({z1}),y iny lda {z2}+1 sta ({z1}),y -//FRAGMENT vbuz1=vbuz2_plus_2 -lda {z2} +//FRAGMENT pwuz1=pwuz1_plus_vbuc1 +lda #{c1} clc -adc #2 +adc {z1} sta {z1} -//FRAGMENT vbuz1=vbuaa_plus_2 +bcc !+ +inc {z1}+1 +!: +//FRAGMENT vwuz1=vwuz1_plus_vwuz2 +lda {z1} clc -adc #2 +adc {z2} sta {z1} -//FRAGMENT vbuz1=vbuxx_plus_2 -inx -inx -stx {z1} -//FRAGMENT vbuxx_le_vbuc1_then_la1 -cpx #{c1} -bcc {la1} -beq {la1} -//FRAGMENT vbuyy_le_vbuc1_then_la1 -cpy #{c1} -bcc {la1} -beq {la1} -//FRAGMENT vbuxx=vbuz1_plus_2 -ldx {z1} -inx -inx -//FRAGMENT vbuyy=vbuz1_plus_2 -ldy {z1} -iny -iny -//FRAGMENT vbuxx=vbuaa_plus_2 -tax -inx -inx -//FRAGMENT vbuxx=vbuyy_plus_2 -tya -clc -adc #2 -tax +lda {z1}+1 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT vbuz1=vbuz1_ror_1 +lsr {z1} +//FRAGMENT vwuz1=vwuz1_rol_1 +asl {z1} +rol {z1}+1 //FRAGMENT vbsz1_lt_vbsc1_then_la1 lda {z1} sec @@ -6850,6 +5919,19 @@ bmi {la1} inx //FRAGMENT vbsyy=_inc_vbsyy iny +//FRAGMENT vwsz1=_neg_vwsz1 +sec +lda #0 +sbc {z1} +sta {z1} +lda #0 +sbc {z1}+1 +sta {z1}+1 +//FRAGMENT vwsz1=vbsc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 //FRAGMENT vwsz1=vwsz1_plus_vwsc1 clc lda {z1} @@ -6987,26 +6069,77 @@ tya sta {c1},y lda #0 sta {c1}+1,y +//FRAGMENT pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1 +lda #{c2} +ldy {z1} +cmp {c1},y +bne {la1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_band_vbuc2 +lda #{c2} +ldy {z2} +and {c1},y +sta {z1} +//FRAGMENT pbuc1_derefidx_vbuaa_neq_vbuc2_then_la1 +tay +lda #{c2} +cmp {c1},y +bne {la1} +//FRAGMENT pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1 +lda {c1},x +cmp #{c2} +bne {la1} +//FRAGMENT pbuc1_derefidx_vbuyy_neq_vbuc2_then_la1 +lda #{c2} +cmp {c1},y +bne {la1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_band_vbuc2 +lda #{c2} +ldy {z1} +and {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_band_vbuc2 +lda #{c2} +ldx {z1} +and {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_band_vbuc2 +lda #{c2} +ldy {z1} +and {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_band_vbuc2 +lda #{c2} +and {c1},x +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_band_vbuc2 +lda #{c2} +and {c1},x +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_band_vbuc2 +lda #{c2} +and {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_band_vbuc2 +lda #{c2} +and {c1},x +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_band_vbuc2 +lda #{c2} +and {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_band_vbuc2 +lda #{c2} +and {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_band_vbuc2 +lda #{c2} +and {c1},y +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_band_vbuc2 +lda #{c2} +and {c1},y +tay //FRAGMENT _deref_pbuc1=_deref_pbuz1 ldy #0 lda ({z1}),y sta {c1} -//FRAGMENT vwuz1=pbuc1_minus_pbuz2 -sec -lda #<{c1} -sbc {z2} -sta {z1} -lda #>{c1} -sbc {z2}+1 -sta {z1}+1 -//FRAGMENT vwuz1=pbuc1_minus_pbuz1 -sec -lda #<{c1} -sbc {z1} -sta {z1} -lda #>{c1} -sbc {z1}+1 -sta {z1}+1 //FRAGMENT pbuc1_derefidx_vbuaa=_deref_pbuz1 tax ldy #0 @@ -7022,6 +6155,11 @@ tax ldy #0 lda ({z1}),y sta {c1},x +//FRAGMENT pvoz1=pvoz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 //FRAGMENT vwsz1_neq_vbsc1_then_la1 NO_SYNTHESIS //FRAGMENT vwsz1_neq_vwuc1_then_la1 @@ -7031,99 +6169,10 @@ bne {la1} lda {z1} cmp #<{c1} bne {la1} -//FRAGMENT vwuz1=_word__deref_pbuc1 -lda {c1} -sta {z1} -lda #0 -sta {z1}+1 -//FRAGMENT vwuz1=vwuz2_rol_8 -lda {z2} -sta {z1}+1 -lda #0 -sta {z1} -//FRAGMENT vbuz1_le_vbuz2_then_la1 -lda {z2} -cmp {z1} -bcs {la1} -//FRAGMENT pbuc1_derefidx_vbuz1=_byte_vwuz2 -ldy {z1} -lda {z2} -sta {c1},y -//FRAGMENT vwuz1=vwuz2_plus_1 -clc -lda {z2} -adc #1 -sta {z1} -lda {z2}+1 -adc #0 -sta {z1}+1 -//FRAGMENT vwuz1=vwuz2_ror_4 -lda {z2}+1 -lsr -sta {z1}+1 -lda {z2} -ror -sta {z1} -lsr {z1}+1 -ror {z1} -lsr {z1}+1 -ror {z1} -lsr {z1}+1 -ror {z1} -//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 vbuxx_le_vbuz1_then_la1 -lda {z1} -stx $ff -cmp $ff -bcs {la1} -//FRAGMENT vbuz1_le_vbuxx_then_la1 -cpx {z1} -bcs {la1} -//FRAGMENT pbuc1_derefidx_vbuxx=_byte_vwuz1 -lda {z1} -sta {c1},x -//FRAGMENT vbuz1_le_vbuyy_then_la1 -cpy {z1} -bcs {la1} -//FRAGMENT vwuz1=vwuz1_plus_1 -inc {z1} -bne !+ -inc {z1}+1 -!: -//FRAGMENT vwuz1=vwuz1_rol_8 -lda {z1} -sta {z1}+1 -lda #0 -sta {z1} -//FRAGMENT vwuz1=vwuz1_ror_4 -lsr {z1}+1 -ror {z1} -lsr {z1}+1 -ror {z1} -lsr {z1}+1 -ror {z1} -lsr {z1}+1 -ror {z1} +//FRAGMENT vwuz1_neq_vbuc1_then_la1 +NO_SYNTHESIS +//FRAGMENT vwuz1_neq_vbsc1_then_la1 +NO_SYNTHESIS //FRAGMENT pwsc1_derefidx_vbuz1=vwsc2 ldy {z1} lda #<{c2} @@ -7151,62 +6200,64 @@ lda #<{c2} sta {c1},y lda #>{c2} sta {c1}+1,y -//FRAGMENT vwuz1=vwuz2_plus_vbuz3 -lda {z3} -clc -adc {z2} -sta {z1} -lda #0 -adc {z2}+1 -sta {z1}+1 -//FRAGMENT vwuz1=vwuz2_rol_7 -lda {z2}+1 -lsr +//FRAGMENT _deref_pbuz1_eq_vbuc1_then_la1 +lda #{c1} +ldy #0 +cmp ({z1}),y +beq {la1} +//FRAGMENT vbsz1=vbsz2_plus_vbsc1 +lax {z2} +axs #-[{c1}] +stx {z1} +//FRAGMENT vbsz1=vbsc1_plus_vbsz2 +lax {z2} +axs #-[{c1}] +stx {z1} +//FRAGMENT vbsz1=vbsz2_plus_vbsz2 lda {z2} -ror -sta {z1}+1 -lda #0 -ror +asl 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_plus_vbuxx -txa +//FRAGMENT vbsaa=vbsz1_plus_vbsc1 +lda #{c1} clc -adc {z2} -sta {z1} -lda #0 -adc {z2}+1 -sta {z1}+1 -//FRAGMENT vwuz1=vwuz2_plus_vbuyy -tya +adc {z1} +//FRAGMENT vbsxx=vbsz1_plus_vbsc1 +lax {z1} +axs #-[{c1}] +//FRAGMENT vbsyy=vbsz1_plus_vbsc1 +lda #{c1} clc -adc {z2} -sta {z1} -lda #0 -adc {z2}+1 -sta {z1}+1 -//FRAGMENT vwuz1=vwuz1_bxor_vwuz2 -lda {z1} -eor {z2} -sta {z1} -lda {z1}+1 -eor {z2}+1 -sta {z1}+1 -//FRAGMENT _deref_pbuc1=_byte_vwuz1 -lda {z1} +adc {z1} +tay +//FRAGMENT _deref_pbsc1=vbsaa sta {c1} +//FRAGMENT vbsaa=vbsc1_plus_vbsz1 +lda #{c1} +clc +adc {z1} +//FRAGMENT vbsxx=vbsc1_plus_vbsz1 +lax {z1} +axs #-[{c1}] +//FRAGMENT vbsyy=vbsc1_plus_vbsz1 +lda #{c1} +clc +adc {z1} +tay +//FRAGMENT vbsaa=vbsz1_plus_vbsz1 +lda {z1} +asl +//FRAGMENT vbsxx=vbsz1_plus_vbsz1 +lda {z1} +asl +tax +//FRAGMENT vbsyy=vbsz1_plus_vbsz1 +lda {z1} +asl +tay +//FRAGMENT _deref_pbsc1=vbsxx +stx {c1} +//FRAGMENT _deref_pbsc1=vbsyy +sty {c1} //FRAGMENT pbuz1=pbuz1_plus_1 inc {z1} bne !+ @@ -7216,48 +6267,13 @@ inc {z1}+1 lda {z1} cmp #{c1} bcc {la1} -//FRAGMENT vbuz1=vbuz1_minus_vbuc1 -lax {z1} -axs #{c1} -stx {z1} //FRAGMENT vbuc1_gt_vbuxx_then_la1 cpx #{c1} bcc {la1} -//FRAGMENT vwuz1=vbuz2_rol_1 -lda {z2} -asl -sta {z1} -lda #0 -rol -sta {z1}+1 -//FRAGMENT vwuz1=vbuxx_rol_1 -txa -asl -sta {z1} -lda #0 -rol -sta {z1}+1 -//FRAGMENT vwuz1=vbuyy_rol_1 -tya -asl -sta {z1} -lda #0 -rol -sta {z1}+1 -//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 isr_rom_sys_c64_entry - -//FRAGMENT isr_rom_sys_c64_exit -jmp $ea31 +//FRAGMENT vwuz1_neq_0_then_la1 +lda {z1} +ora {z1}+1 +bne {la1} //FRAGMENT vwsz1_neq_vwsc1_then_la1 lda {z1}+1 cmp #>{c1} @@ -7280,11 +6296,29 @@ tax lda {c1} eor #$ff tay +//FRAGMENT _deref_pwsc1=vwsc2 +lda #<{c2} +sta {c1} +lda #>{c2} +sta {c1}+1 //FRAGMENT _deref_pwsc1=vwsz1 lda {z1} sta {c1} lda {z1}+1 sta {c1}+1 +//FRAGMENT vbuaa=vbuxx_plus_1 +inx +txa +//FRAGMENT vbuaa=vbuyy_plus_1 +iny +tya +//FRAGMENT vbuxx=vbuz1_plus_1 +ldx {z1} +inx +//FRAGMENT vbuxx=vbuyy_plus_1 +tya +tax +inx //FRAGMENT pssz1=pssc1_plus_vbuz2 lda {z2} clc @@ -7346,97 +6380,11 @@ ldy #{c2} tax lda ({z1}),y sta {c1},x -//FRAGMENT pssz1=pssc1 -lda #<{c1} -sta {z1} -lda #>{c1} -sta {z1}+1 -//FRAGMENT pssz1=pssz1_plus_vbuc1 -lda #{c1} -clc -adc {z1} -sta {z1} -bcc !+ -inc {z1}+1 -!: //FRAGMENT pbuc1_derefidx_vbuaa=pbuz1_derefidx_vbuc2 ldy #{c2} tax lda ({z1}),y sta {c1},x -//FRAGMENT _deref_qssc1=pssc2 -lda #<{c2} -sta {c1} -lda #>{c2} -sta {c1}+1 -//FRAGMENT pssc1_neq_pssz1_then_la1 -lda {z1}+1 -cmp #>{c1} -bne {la1} -lda {z1} -cmp #<{c1} -bne {la1} -//FRAGMENT vbuz1=vbuc1_plus__deref_pbuz2 -lda #{c1} -clc -ldy #0 -adc ({z2}),y -sta {z1} -//FRAGMENT vbuz1=_lo_qssz2_derefidx_vbuc1 -ldy #{c1} -lda ({z2}),y -sta {z1} -//FRAGMENT vbuz1=_hi_qssz2_derefidx_vbuc1 -ldy #{c1}+1 -lda ({z2}),y -sta {z1} -//FRAGMENT pssz1=qssz1_derefidx_vbuc1 -ldy #{c1} -lda ({z1}),y -pha -iny -lda ({z1}),y -sta {z1}+1 -pla -sta {z1} -//FRAGMENT vbuaa=vbuc1_plus__deref_pbuz1 -lda #{c1} -clc -ldy #0 -adc ({z1}),y -//FRAGMENT vbuxx=vbuc1_plus__deref_pbuz1 -ldy #0 -lda ({z1}),y -tax -axs #-[{c1}] -//FRAGMENT vbuyy=vbuc1_plus__deref_pbuz1 -lda #{c1} -clc -ldy #0 -adc ({z1}),y -tay -//FRAGMENT vbuaa=_lo_qssz1_derefidx_vbuc1 -ldy #{c1} -lda ({z1}),y -//FRAGMENT vbuxx=_lo_qssz1_derefidx_vbuc1 -ldy #{c1} -lda ({z1}),y -tax -//FRAGMENT vbuyy=_lo_qssz1_derefidx_vbuc1 -ldy #{c1} -lda ({z1}),y -tay -//FRAGMENT vbuaa=_hi_qssz1_derefidx_vbuc1 -ldy #{c1}+1 -lda ({z1}),y -//FRAGMENT vbuxx=_hi_qssz1_derefidx_vbuc1 -ldy #{c1}+1 -lda ({z1}),y -tax -//FRAGMENT vbuyy=_hi_qssz1_derefidx_vbuc1 -ldy #{c1}+1 -lda ({z1}),y -tay //FRAGMENT pssc1_derefidx_vbuz1=pssc2_derefidx_vbuz1_memcpy_vbuc3 ldx #{c3} ldy {z1} @@ -7501,6 +6449,10 @@ lda #<{c2} sta {c1},y lda #>{c2} sta {c1}+1,y +//FRAGMENT _deref_pbuc1_lt_vbuc2_then_la1 +lda {c1} +cmp #{c2} +bcc {la1} //FRAGMENT _deref_pbuc1_ge_vbuc2_then_la1 lda {c1} cmp #{c2} @@ -7508,6 +6460,9 @@ bcs {la1} //FRAGMENT vboz1=vboxx txa sta {z1} +//FRAGMENT vboz1=vboyy +tya +sta {z1} //FRAGMENT vboaa=vboxx txa //FRAGMENT vboxx=vboaa @@ -7518,6 +6473,28 @@ tax //FRAGMENT vboyy=vboxx txa tay +//FRAGMENT _deref_pbuz1=_deref_pbuc1 +lda {c1} +ldy #0 +sta ({z1}),y +//FRAGMENT vbuz1_lt_vbuaa_then_la1 +cmp {z1} +beq !+ +bcs {la1} +!: +//FRAGMENT vbuxx_lt_vbuaa_then_la1 +sta $ff +cpx $ff +bcc {la1} +//FRAGMENT vbuaa_lt_vbuxx_then_la1 +stx $ff +cmp $ff +bcc {la1} +//FRAGMENT vwuz1=vwuz1_plus_1 +inc {z1} +bne !+ +inc {z1}+1 +!: //FRAGMENT vbuc1_ge_vbuz1_then_la1 lda #{c1} cmp {z1} @@ -7582,34 +6559,6 @@ tax sty $ff cpx $ff beq {la1} -//FRAGMENT pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_minus_1 -ldx {z1} -lda {c1},x -bne !+ -dec {c1}+1,x -!: -dec {c1},x -//FRAGMENT pwuc1_derefidx_vbuaa=pwuc1_derefidx_vbuaa_minus_1 -tax -lda {c1},x -bne !+ -dec {c1}+1,x -!: -dec {c1},x -//FRAGMENT pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_minus_1 -lda {c1},x -bne !+ -dec {c1}+1,x -!: -dec {c1},x -//FRAGMENT pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_minus_1 -sec -lda {c1},y -sbc #$01 -sta {c1},y -lda {c1}+1,y -sbc #$00 -sta {c1}+1,y //FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_1 ldx {z2} ldy {c1},x @@ -7668,6 +6617,12 @@ adc #1 //FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_1 ldx {c1},y inx +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx +lda {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy +lda {c1},y +tay //FRAGMENT vbuz1=vbuz2_plus_pbuc1_derefidx_vbuz3 lda {z2} ldy {z3} @@ -7731,12 +6686,6 @@ tya clc adc {c1},x tax -//FRAGMENT vbuyy=vbuyy_plus_pbuc1_derefidx_vbuz1 -tya -ldy {z1} -clc -adc {c1},y -tay //FRAGMENT vbuz1=vbuz2_plus_pbuc1_derefidx_vbuxx lda {c1},x clc @@ -7789,11 +6738,6 @@ tya clc adc {c1},x tax -//FRAGMENT vbuyy=vbuyy_plus_pbuc1_derefidx_vbuxx -tya -clc -adc {c1},x -tay //FRAGMENT vbuz1=vbuz2_plus_pbuc1_derefidx_vbuyy lda {c1},y clc @@ -7846,11 +6790,6 @@ tya clc adc {c1},y tax -//FRAGMENT vbuyy=vbuyy_plus_pbuc1_derefidx_vbuyy -tya -clc -adc {c1},y -tay //FRAGMENT vbuz1=vbuz2_band__deref_pbuc1 lda {c1} and {z2} @@ -7905,119 +6844,6 @@ tay tya and {c1} tay -//FRAGMENT vduz1_lt_vwuc1_then_la1 -NO_SYNTHESIS -//FRAGMENT vduz1_lt_vwsc1_then_la1 -NO_SYNTHESIS -//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_rol_4 -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 -//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 vduz1=vduz2_rol_2 -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 -//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 vduz1=vduz1_plus_vwuc1 -lda {z1} -clc -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 vduz1=vduz1_rol_2 -asl {z1} -rol {z1}+1 -rol {z1}+2 -rol {z1}+3 -asl {z1} -rol {z1}+1 -rol {z1}+2 -rol {z1}+3 //FRAGMENT pbuz1=_deref_qbuc1 lda {c1} sta {z1} @@ -8081,12 +6907,6 @@ ldy {z2} sec sbc {c1},y sta {z1} -//FRAGMENT vbuz1=vbuz1_plus_pbuc1_derefidx_vbuz2 -lda {z1} -ldy {z2} -clc -adc {c1},y -sta {z1} //FRAGMENT vbsz1=vbsaa sta {z1} //FRAGMENT vbsaa_neq_vbsc1_then_la1 @@ -8182,6 +7002,35 @@ bpl {la1} //FRAGMENT vbsxx_neq_0_then_la1 cpx #0 bne {la1} +//FRAGMENT vbuaa=vbuc1_minus_vbuaa +eor #$ff +sec +adc #{c1} +//FRAGMENT vbuxx=vbuc1_minus_vbuxx +txa +eor #$ff +tax +axs #-{c1}-1 +//FRAGMENT vbuyy=vbuc1_minus_vbuyy +tya +eor #$ff +sec +adc #{c1} +tay +//FRAGMENT vbuaa=_neg_vbuaa +eor #$ff +clc +adc #$01 +//FRAGMENT vbuxx=_neg_vbuxx +dex +txa +eor #$ff +tax +//FRAGMENT vbuyy=_neg_vbuyy +dey +tya +eor #$ff +tay //FRAGMENT vbsaa=vbsz1_ror_vbuz2 lda {z1} ldy {z2} @@ -8998,16 +7847,6 @@ tay sec sbc {c1},y tay -//FRAGMENT vbuz1=vbuz1_plus_pbuc1_derefidx_vbuxx -lda {c1},x -clc -adc {z1} -sta {z1} -//FRAGMENT vbuz1=vbuz1_plus_pbuc1_derefidx_vbuyy -lda {c1},y -clc -adc {z1} -sta {z1} //FRAGMENT vbsxx=vbsz1 ldx {z1} //FRAGMENT vbsz1=vbsxx @@ -9017,6 +7856,15 @@ cpy #0 bne {la1} //FRAGMENT vbsyy=vbsz1 ldy {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 _deref_pduc1=vduz1 lda {z1} sta {c1} @@ -9026,6 +7874,23 @@ lda {z1}+2 sta {c1}+2 lda {z1}+3 sta {c1}+3 +//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=_dec_vduz2 lda {z2} sec @@ -9049,6 +7914,20 @@ inc {z1}+2 bne !+ inc {z1}+3 !: +//FRAGMENT vduz1=vduz1_plus_vduz2 +lda {z1} +clc +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 vduz1=vduz1_plus_vbuc1 lda {z1} clc @@ -9119,10 +7998,26 @@ sta {z1}+1 //FRAGMENT pbuc1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuaa tax inc {c1},x +//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 //FRAGMENT vbuz1=vbuz1_bor_vbuc1 lda #{c1} ora {z1} sta {z1} +//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=vbuaa_bor_vbuc1 ora #{c1} //FRAGMENT vbuxx=vbuxx_bor_vbuc1 @@ -9133,6 +8028,49 @@ tax tya ora #{c1} tay +//FRAGMENT vbuz1=_deref_pbuz2_rol_1 +ldy #0 +lda ({z2}),y +asl +sta {z1} +//FRAGMENT pwuc1_derefidx_vbuz1=_inc_pwuc1_derefidx_vbuz1 +ldx {z1} +inc {c1},x +bne !+ +inc {c1}+1,x +!: +//FRAGMENT vbuaa=_deref_pbuz1_rol_1 +ldy #0 +lda ({z1}),y +asl +//FRAGMENT vbuxx=_deref_pbuz1_rol_1 +ldy #0 +lda ({z1}),y +asl +tax +//FRAGMENT vbuyy=_deref_pbuz1_rol_1 +ldy #0 +lda ({z1}),y +asl +tay +//FRAGMENT pwuc1_derefidx_vbuaa=_inc_pwuc1_derefidx_vbuaa +tax +inc {c1},x +bne !+ +inc {c1}+1,x +!: +//FRAGMENT pwuc1_derefidx_vbuxx=_inc_pwuc1_derefidx_vbuxx +inc {c1},x +bne !+ +inc {c1}+1,x +!: +//FRAGMENT pwuc1_derefidx_vbuyy=_inc_pwuc1_derefidx_vbuyy +tya +tax +inc {c1},x +bne !+ +inc {c1}+1,x +!: //FRAGMENT pbuc1_derefidx_vbuz1=pbuc2_derefidx_(pbuc3_derefidx_vbuz1) ldx {z1} ldy {c3},x @@ -9146,77 +8084,272 @@ sta {c1},x ldx {c3},y lda {c2},x sta {c1},y +//FRAGMENT vbuz1=_deref_pbuc1_band_vbuc2 +lda #{c2} +and {c1} +sta {z1} +//FRAGMENT _deref_pbuc1_lt_vbuz1_then_la1 +lda {c1} +cmp {z1} +bcc {la1} +//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz2)_then_la1 +lda {z1} +ldx {z2} +ldy {c2},x +cmp {c1},y +bcs {la1} +//FRAGMENT vbuz1_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuz2)_then_la1 +lda {z1} +ldx {z2} +ldy {c2},x +cmp {c1},y +bcc {la1} +//FRAGMENT vbuz1=pbuc1_derefidx_(pbuc2_derefidx_vbuz2) +ldx {z2} +ldy {c2},x +ldx {c1},y +stx {z1} +//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_(pbuc2_derefidx_vbuz3) +ldx {z3} +ldy {c2},x +lda {c1},y +ldy {z2} +sta ({z1}),y +//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} +//FRAGMENT vbuz1=_hi_pwuc1_derefidx_vbuz2 +ldy {z2} +lda {c1}+1,y +sta {z1} //FRAGMENT vbuz1=vbuc1_bxor_vbuz2 lda #{c1} eor {z2} sta {z1} -//FRAGMENT vbuz1=_deref_pbuc1_bxor_vbuc2 +//FRAGMENT vbuaa=_deref_pbuc1_band_vbuc2 lda #{c2} -eor {c1} -sta {z1} -//FRAGMENT vbuz1=vbuc1_bxor_vbuaa -eor #{c1} -sta {z1} -//FRAGMENT vbuz1=vbuc1_bxor_vbuxx +and {c1} +//FRAGMENT vbuxx=_deref_pbuc1_band_vbuc2 +lda #{c2} +and {c1} +tax +//FRAGMENT vbuyy=_deref_pbuc1_band_vbuc2 +lda #{c2} +and {c1} +tay +//FRAGMENT _deref_pbuc1_lt_vbuaa_then_la1 +ldy {c1} +sta $ff +cpy $ff +bcc {la1} +//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuaa)_then_la1 +tax +lda {z1} +ldy {c2},x +cmp {c1},y +bcs {la1} +//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1 +lda {z1} +ldy {c2},x +cmp {c1},y +bcs {la1} +//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1 +lda {z1} +ldx {c2},y +cmp {c1},x +bcs {la1} +//FRAGMENT vbuaa_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1 +ldx {z1} +ldy {c2},x +cmp {c1},y +bcs {la1} +//FRAGMENT vbuz1_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1 +lda {z1} +ldy {c2},x +cmp {c1},y +bcc {la1} +//FRAGMENT vbuz1_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1 +lda {z1} +ldx {c2},y +cmp {c1},x +bcc {la1} +//FRAGMENT vbuxx_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1 +ldy {z1} txa -eor #{c1} -sta {z1} -//FRAGMENT vbuz1=vbuc1_bxor_vbuyy +ldx {c2},y +cmp {c1},x +bcc {la1} +//FRAGMENT vbuxx_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1 +txa +ldy {c2},x +cmp {c1},y +bcc {la1} +//FRAGMENT vbuxx_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1 +txa +ldx {c2},y +cmp {c1},x +bcc {la1} +//FRAGMENT vbuyy_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1 +ldx {z1} tya -eor #{c1} +ldy {c2},x +cmp {c1},y +bcc {la1} +//FRAGMENT vbuyy_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1 +tya +ldy {c2},x +cmp {c1},y +bcc {la1} +//FRAGMENT vbuyy_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1 +tya +ldx {c2},y +cmp {c1},x +bcc {la1} +//FRAGMENT vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuz1) +ldx {z1} +ldy {c2},x +lda {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuz1) +ldx {z1} +ldy {c2},x +ldx {c1},y +//FRAGMENT vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuz1) +ldy {z1} +ldx {c2},y +ldy {c1},x +//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuz1 +ldy {z1} +lda {c1},y +//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuz1 +ldx {z1} +lda {c1},x +tax +//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuz1 +ldy {z1} +lda {c1},y +tay +//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuaa +tay +lda {c1},y sta {z1} +//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuaa +tay +lda {c1},y +//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuaa +tax +lda {c1},x +tax +//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuaa +tay +lda {c1},y +tay +//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuxx +lda {c1},x +sta {z1} +//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuxx +lda {c1},x +//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuxx +lda {c1},x +tax +//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuxx +lda {c1},x +tay +//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuyy +lda {c1},y +sta {z1} +//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuyy +lda {c1},y +//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuyy +lda {c1},y +tax +//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuyy +lda {c1},y +tay +//FRAGMENT vbuz1=_hi_pwuc1_derefidx_vbuxx +lda {c1}+1,x +sta {z1} +//FRAGMENT vbuaa=_hi_pwuc1_derefidx_vbuz1 +ldy {z1} +lda {c1}+1,y +//FRAGMENT vbuaa=_hi_pwuc1_derefidx_vbuxx +lda {c1}+1,x +//FRAGMENT vbuxx=_hi_pwuc1_derefidx_vbuz1 +ldx {z1} +lda {c1}+1,x +tax +//FRAGMENT vbuxx=_hi_pwuc1_derefidx_vbuxx +lda {c1}+1,x +tax +//FRAGMENT vbuyy=_hi_pwuc1_derefidx_vbuz1 +ldy {z1} +lda {c1}+1,y +tay +//FRAGMENT vbuyy=_hi_pwuc1_derefidx_vbuxx +lda {c1}+1,x +tay //FRAGMENT vbuaa=vbuc1_bxor_vbuz1 lda #{c1} eor {z1} -//FRAGMENT vbuaa=vbuc1_bxor_vbuaa -eor #{c1} -//FRAGMENT vbuaa=vbuc1_bxor_vbuxx -txa -eor #{c1} -//FRAGMENT vbuaa=vbuc1_bxor_vbuyy -tya -eor #{c1} //FRAGMENT vbuxx=vbuc1_bxor_vbuz1 lda #{c1} eor {z1} tax -//FRAGMENT vbuxx=vbuc1_bxor_vbuaa -eor #{c1} -tax -//FRAGMENT vbuxx=vbuc1_bxor_vbuxx -txa -eor #{c1} -tax -//FRAGMENT vbuxx=vbuc1_bxor_vbuyy -tya -eor #{c1} -tax //FRAGMENT vbuyy=vbuc1_bxor_vbuz1 lda #{c1} eor {z1} tay -//FRAGMENT vbuyy=vbuc1_bxor_vbuaa -eor #{c1} -tay -//FRAGMENT vbuyy=vbuc1_bxor_vbuxx +//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1 +ldy {z1} txa -eor #{c1} -tay -//FRAGMENT vbuyy=vbuc1_bxor_vbuyy +ldx {c2},y +cmp {c1},x +bcs {la1} +//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1 +txa +ldy {c2},x +cmp {c1},y +bcs {la1} +//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1 +txa +ldx {c2},y +cmp {c1},x +bcs {la1} +//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1 +ldx {z1} tya -eor #{c1} -tay -//FRAGMENT vbuaa=_deref_pbuc1_bxor_vbuc2 -lda #{c2} -eor {c1} -//FRAGMENT vbuxx=_deref_pbuc1_bxor_vbuc2 -lda #{c2} -eor {c1} -tax -//FRAGMENT vbuyy=_deref_pbuc1_bxor_vbuc2 -lda #{c2} -eor {c1} -tay +ldy {c2},x +cmp {c1},y +bcs {la1} +//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1 +tya +ldy {c2},x +cmp {c1},y +bcs {la1} +//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1 +tya +ldx {c2},y +cmp {c1},x +bcs {la1} +//FRAGMENT _deref_pbuc1_lt_vbuxx_then_la1 +lda {c1} +stx $ff +cmp $ff +bcc {la1} +//FRAGMENT _deref_pbuc1_lt_vbuyy_then_la1 +ldx {c1} +sty $ff +cpx $ff +bcc {la1} +//FRAGMENT vbuz1=vbuz1_plus_vbuaa +clc +adc {z1} +sta {z1} +//FRAGMENT vbuz1=vbuz1_plus_vbuyy +tya +clc +adc {z1} +sta {z1} //FRAGMENT vbuaa=vbuaa_plus_2 clc adc #2 @@ -9289,6 +8422,72 @@ sta ($fe),y lda {c1} cmp {c2} beq {la1} +//FRAGMENT vbuz1=vbuc1_minus_vbuz2 +lda #{c1} +sec +sbc {z2} +sta {z1} +//FRAGMENT vbuaa=vbuc1_minus_vbuz1 +lda #{c1} +sec +sbc {z1} +//FRAGMENT vbuxx=vbuc1_minus_vbuz1 +lda #{c1} +sec +sbc {z1} +tax +//FRAGMENT vbuyy=vbuc1_minus_vbuz1 +lda #{c1} +sec +sbc {z1} +tay +//FRAGMENT vbuz1=vbuc1_minus_vbuaa +eor #$ff +sec +adc #{c1} +sta {z1} +//FRAGMENT vbuxx=vbuc1_minus_vbuaa +eor #$ff +tax +axs #-{c1}-1 +//FRAGMENT vbuyy=vbuc1_minus_vbuaa +eor #$ff +sec +adc #{c1} +tay +//FRAGMENT vbuz1=vbuc1_minus_vbuxx +txa +eor #$ff +sec +adc #{c1} +sta {z1} +//FRAGMENT vbuaa=vbuc1_minus_vbuxx +txa +eor #$ff +sec +adc #{c1} +//FRAGMENT vbuyy=vbuc1_minus_vbuxx +txa +eor #$ff +sec +adc #{c1} +tay +//FRAGMENT vbuz1=vbuc1_minus_vbuyy +tya +eor #$ff +sec +adc #{c1} +sta {z1} +//FRAGMENT vbuaa=vbuc1_minus_vbuyy +tya +eor #$ff +sec +adc #{c1} +//FRAGMENT vbuxx=vbuc1_minus_vbuyy +tya +eor #$ff +tax +axs #-{c1}-1 //FRAGMENT _deref_pbsc1=_deref_pbsc2 lda {c2} sta {c1} @@ -9646,16 +8845,29 @@ dex lda {c1} tay dey -//FRAGMENT vbsz1_neq_vbsz2_then_la1 -lda {z1} -cmp {z2} -bne {la1} -//FRAGMENT vbsz1_neq_vbsxx_then_la1 -cpx {z1} -bne {la1} -//FRAGMENT vbsxx_neq_vbsz1_then_la1 -cpx {z1} -bne {la1} +//FRAGMENT vbuz1_lt_vbuyy_then_la1 +cpy {z1} +beq !+ +bcs {la1} +!: +//FRAGMENT vwuz1=pwuc1_derefidx_vbuaa +tay +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_rol_8 +lda {z2} +sta {z1}+1 +lda #0 +sta {z1} +//FRAGMENT vwuz1=vwuz2_rol_1 +lda {z2} +asl +sta {z1} +lda {z2}+1 +rol +sta {z1}+1 //FRAGMENT pwuz1=pwuc1_plus_vwuz2 clc lda {z2} @@ -9664,6 +8876,19 @@ sta {z1} lda {z2}+1 adc #>{c1} sta {z1}+1 +//FRAGMENT vwuz1=vwuz1_rol_8 +lda {z1} +sta {z1}+1 +lda #0 +sta {z1} +//FRAGMENT vwuz1=vwuz1_plus_vbuxx +txa +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: //FRAGMENT pwuz1=pwuc1_plus_vwuz1 clc lda {z1} @@ -9672,6 +8897,15 @@ sta {z1} lda {z1}+1 adc #>{c1} sta {z1}+1 +//FRAGMENT vwuz1_lt_vwuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bcc {la1} +bne !+ +lda {z1} +cmp #<{c1} +bcc {la1} +!: //FRAGMENT vwuz1=vwuz2_plus_vbuaa clc adc {z2} @@ -9679,6 +8913,10 @@ sta {z1} lda #0 adc {z2}+1 sta {z1}+1 +//FRAGMENT vbuz1=vbuz1_bxor_vbuc1 +lda #{c1} +eor {z1} +sta {z1} //FRAGMENT _deref_pbuz1=vbum2 lda {m2} ldy #0 @@ -9696,28 +8934,6 @@ lda {m1} ldx {m1} //FRAGMENT vbuyy=vbum1 ldy {m1} -//FRAGMENT qbuc1_derefidx_vbuz1=pbuc2 -ldy {z1} -lda #<{c2} -sta {c1},y -lda #>{c2} -sta {c1}+1,y -//FRAGMENT qbuc1_derefidx_vbuaa=pbuc2 -tay -lda #<{c2} -sta {c1},y -lda #>{c2} -sta {c1}+1,y -//FRAGMENT qbuc1_derefidx_vbuxx=pbuc2 -lda #<{c2} -sta {c1},x -lda #>{c2} -sta {c1}+1,x -//FRAGMENT qbuc1_derefidx_vbuyy=pbuc2 -lda #<{c2} -sta {c1},y -lda #>{c2} -sta {c1}+1,y //FRAGMENT pbuz1_ge_pbuc1_then_la1 lda {z1}+1 cmp #>{c1} @@ -9727,9 +8943,66 @@ lda {z1} cmp #<{c1} bcs {la1} !: -//FRAGMENT vbuz1=_deref_pbuc1_band_vbuc2 -lda #{c2} -and {c1} +//FRAGMENT pbuz1=pbuz1_minus_vbuc1 +sec +lda {z1} +sbc #{c1} +sta {z1} +lda {z1}+1 +sbc #0 +sta {z1}+1 +//FRAGMENT vbuz1=_neg_vbuz2 +lda {z2} +eor #$ff +clc +adc #$01 +sta {z1} +//FRAGMENT vbuz1=_neg_vbuxx +dex +txa +eor #$ff +sta {z1} +//FRAGMENT vbuz1=_neg_vbuyy +dey +tya +eor #$ff +sta {z1} +//FRAGMENT vbuaa=_neg_vbuz1 +lda {z1} +eor #$ff +clc +adc #$01 +//FRAGMENT vbuaa=_neg_vbuxx +dex +txa +eor #$ff +//FRAGMENT vbuaa=_neg_vbuyy +dey +tya +eor #$ff +//FRAGMENT vbuxx=_neg_vbuz1 +lda {z1} +eor #$ff +tax +inx +//FRAGMENT vbuxx=_neg_vbuyy +tya +eor #$ff +tax +inx +//FRAGMENT vbuyy=_neg_vbuz1 +lda {z1} +eor #$ff +tay +iny +//FRAGMENT vbuyy=_neg_vbuxx +txa +eor #$ff +tay +iny +//FRAGMENT vwuz1=vbuyy_word_vbuc1 +lda #{c1} +sty {z1}+1 sta {z1} //FRAGMENT vbuz1=_deref_pbuc1_ror_1 lda {c1} @@ -9745,6 +9018,9 @@ cmp {z1} beq {la1} !: bcc {la1} +//FRAGMENT vbuz1=_byte_vwuz2 +lda {z2} +sta {z1} //FRAGMENT _deref_(_deref_qbuc1)=pbuc2_derefidx_vbuz1 ldy {z1} lda {c2},y @@ -9759,17 +9035,6 @@ inc {c1} bne !+ inc {c1}+1 !: -//FRAGMENT vbuaa=_deref_pbuc1_band_vbuc2 -lda #{c2} -and {c1} -//FRAGMENT vbuxx=_deref_pbuc1_band_vbuc2 -lda #{c2} -and {c1} -tax -//FRAGMENT vbuyy=_deref_pbuc1_band_vbuc2 -lda #{c2} -and {c1} -tay //FRAGMENT vbuaa=_deref_pbuc1_ror_1 lda {c1} lsr @@ -9809,6 +9074,14 @@ cmp {z1} beq {la1} !: bcc {la1} +//FRAGMENT vbuaa=_byte_vwuz1 +lda {z1} +//FRAGMENT vbuxx=_byte_vwuz1 +lda {z1} +tax +//FRAGMENT vbuyy=_byte_vwuz1 +lda {z1} +tay //FRAGMENT _deref_(_deref_qbuc1)=pbuc2_derefidx_vbuaa tay lda {c2},y @@ -9834,33 +9107,10 @@ ldy {c1}+1 sty $ff ldy #0 sta ($fe),y -//FRAGMENT _deref_pwuz1=vbuz2 -lda {z2} -ldy #0 -sta ({z1}),y -tya -iny -sta ({z1}),y -//FRAGMENT _deref_pwuz1=vbuaa -ldy #0 -sta ({z1}),y -tya -iny -sta ({z1}),y -//FRAGMENT _deref_pwuz1=vbuxx -txa -ldy #0 -sta ({z1}),y -tya -iny -sta ({z1}),y -//FRAGMENT _deref_pwuz1=vbuyy -tya -ldy #0 -sta ({z1}),y -tya -iny -sta ({z1}),y +//FRAGMENT isr_rom_sys_c64_entry + +//FRAGMENT isr_rom_sys_c64_exit +jmp $ea31 //FRAGMENT vbsz1=vbsz2_rol_1 lda {z2} asl @@ -9924,6 +9174,59 @@ sta {z1} iny lda ({z2}),y sta {z1}+1 +//FRAGMENT vbuz1=vbuz2_minus_vbuc1 +lax {z2} +axs #{c1} +stx {z1} +//FRAGMENT vbuaa=vbuz1_minus_vbuc1 +lda {z1} +sec +sbc #{c1} +//FRAGMENT vbuxx=vbuz1_minus_vbuc1 +lax {z1} +axs #{c1} +//FRAGMENT vbuyy=vbuz1_minus_vbuc1 +lda {z1} +sec +sbc #{c1} +tay +//FRAGMENT vbuz1=vbuaa_minus_vbuc1 +sec +sbc #{c1} +sta {z1} +//FRAGMENT vbuxx=vbuaa_minus_vbuc1 +tax +axs #{c1} +//FRAGMENT vbuz1=vbuxx_minus_vbuc1 +txa +axs #{c1} +stx {z1} +//FRAGMENT vbuz1=vbuyy_minus_vbuc1 +tya +sec +sbc #{c1} +sta {z1} +//FRAGMENT vbuaa=vbuxx_minus_vbuc1 +txa +sec +sbc #{c1} +//FRAGMENT vbuaa=vbuyy_minus_vbuc1 +tya +sec +sbc #{c1} +//FRAGMENT vbuxx=vbuyy_minus_vbuc1 +tya +tax +axs #{c1} +//FRAGMENT vbuyy=vbuaa_minus_vbuc1 +sec +sbc #{c1} +tay +//FRAGMENT vbuyy=vbuxx_minus_vbuc1 +txa +sec +sbc #{c1} +tay //FRAGMENT pwsz1=pwsc1 lda #<{c1} sta {z1} @@ -9992,84 +9295,6 @@ sta {c1},x iny lda ({z1}),y sta {c1}+1,x -//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuz2 -ldy {z2} -lda {c1},y -sta {z1} -//FRAGMENT vbuz1=_hi_pwuc1_derefidx_vbuz2 -ldy {z2} -lda {c1}+1,y -sta {z1} -//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuz1 -ldy {z1} -lda {c1},y -//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuz1 -ldx {z1} -lda {c1},x -tax -//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuz1 -ldy {z1} -lda {c1},y -tay -//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuaa -tay -lda {c1},y -sta {z1} -//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuaa -tay -lda {c1},y -//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuaa -tax -lda {c1},x -tax -//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuaa -tay -lda {c1},y -tay -//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuxx -lda {c1},x -sta {z1} -//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuxx -lda {c1},x -//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuxx -lda {c1},x -tax -//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuxx -lda {c1},x -tay -//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuyy -lda {c1},y -sta {z1} -//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuyy -lda {c1},y -//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuyy -lda {c1},y -tax -//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuyy -lda {c1},y -tay -//FRAGMENT vbuaa=_hi_pwuc1_derefidx_vbuz1 -ldy {z1} -lda {c1}+1,y -//FRAGMENT vbuxx=_hi_pwuc1_derefidx_vbuz1 -ldx {z1} -lda {c1}+1,x -tax -//FRAGMENT vbuyy=_hi_pwuc1_derefidx_vbuz1 -ldy {z1} -lda {c1}+1,y -tay -//FRAGMENT vbuz1=_hi_pwuc1_derefidx_vbuxx -lda {c1}+1,x -sta {z1} -//FRAGMENT vbuaa=_hi_pwuc1_derefidx_vbuxx -lda {c1}+1,x -//FRAGMENT vbuxx=_hi_pwuc1_derefidx_vbuxx -lda {c1}+1,x -tax -//FRAGMENT vbuyy=_hi_pwuc1_derefidx_vbuxx -lda {c1}+1,x -tay //FRAGMENT vbuz1=_hi_pwuc1_derefidx_vbuyy lda {c1}+1,y sta {z1} @@ -10163,84 +9388,15 @@ sta {z1} lda {z2}+1 adc #0 sta {z1}+1 -//FRAGMENT vbuz1=vbuz2_ror_2 -lda {z2} -lsr -lsr -sta {z1} -//FRAGMENT vbuz1=vbuaa_ror_2 -lsr -lsr -sta {z1} -//FRAGMENT vbuz1=vbuxx_ror_2 -txa -lsr -lsr -sta {z1} -//FRAGMENT vbuz1=vbuyy_ror_2 -tya -lsr -lsr -sta {z1} -//FRAGMENT vbuaa=vbuz1_ror_2 -lda {z1} -lsr -lsr -//FRAGMENT vbuaa=vbuaa_ror_2 -lsr -lsr -//FRAGMENT vbuaa=vbuxx_ror_2 -txa -lsr -lsr -//FRAGMENT vbuaa=vbuyy_ror_2 -tya -lsr -lsr -//FRAGMENT vbuxx=vbuz1_ror_2 -lda {z1} -lsr -lsr -tax -//FRAGMENT vbuxx=vbuaa_ror_2 -lsr -lsr -tax -//FRAGMENT vbuxx=vbuxx_ror_2 -txa -lsr -lsr -tax -//FRAGMENT vbuxx=vbuyy_ror_2 -tya -lsr -lsr -tax -//FRAGMENT vbuyy=vbuz1_ror_2 -lda {z1} -lsr -lsr -tay -//FRAGMENT vbuyy=vbuaa_ror_2 -lsr -lsr -tay -//FRAGMENT vbuyy=vbuxx_ror_2 -txa -lsr -lsr -tay -//FRAGMENT vbuyy=vbuyy_ror_2 -tya -lsr -lsr -tay //FRAGMENT vwuz1=vbuz2_band_vbuc1 lda {z2} and #{c1} sta {z1} lda #0 sta {z1}+1 +//FRAGMENT _deref_pbuc1=_byte_vwuz1 +lda {z1} +sta {c1} //FRAGMENT vwuz1=vbuaa_band_vbuc1 and #{c1} sta {z1} @@ -10267,6 +9423,21 @@ cmp #<{c2} beq {la1} !: bcc {la1} +//FRAGMENT _deref_pboc1=vboc2 +lda #{c2} +sta {c1} +//FRAGMENT _deref_pboc1_then_la1 +lda {c1} +cmp #0 +bne {la1} +//FRAGMENT vwuz1=vwuz1_plus_vwuc1 +clc +lda {z1} +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 //FRAGMENT pbuz1_derefidx_vbuc1=_byte_vwuz2 ldy #{c1} lda {z2} @@ -10323,6 +9494,15 @@ tax ldy #{c1} lda ({z1}),y tay +//FRAGMENT pssz1_lt_pssc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bcc {la1} +bne !+ +lda {z1} +cmp #<{c1} +bcc {la1} +!: //FRAGMENT vbuz1_lt__deref_pbuc1_then_la1 lda {z1} cmp {c1} @@ -10377,6 +9557,28 @@ sta {c1},y //FRAGMENT vbuxx_lt__deref_pbuc1_then_la1 cpx {c1} bcc {la1} +//FRAGMENT vbuz1=vbuc1_plus__deref_pbuz2 +lda #{c1} +clc +ldy #0 +adc ({z2}),y +sta {z1} +//FRAGMENT vbuaa=vbuc1_plus__deref_pbuz1 +lda #{c1} +clc +ldy #0 +adc ({z1}),y +//FRAGMENT vbuxx=vbuc1_plus__deref_pbuz1 +ldy #0 +lda ({z1}),y +tax +axs #-[{c1}] +//FRAGMENT vbuyy=vbuc1_plus__deref_pbuz1 +lda #{c1} +clc +ldy #0 +adc ({z1}),y +tay //FRAGMENT pssz1_neq_pssc1_then_la1 lda {z1}+1 cmp #>{c1} @@ -10396,14 +9598,14 @@ tay lda {c2},y ldy {z1} sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_(_deref_pbuz1) -tax +//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_(_deref_pbuz1) ldy #0 lda ({z1}),y tay lda {c2},y sta {c1},x -//FRAGMENT pbuc1_derefidx_vbuxx=pbuc2_derefidx_(_deref_pbuz1) +//FRAGMENT pbuc1_derefidx_vbuaa=pbuc2_derefidx_(_deref_pbuz1) +tax ldy #0 lda ({z1}),y tay @@ -10459,20 +9661,58 @@ lda ({z1}),y sta {z1}+1 pla sta {z1} -//FRAGMENT vwuz1=_deref_pbuz2_word__deref_pbuz3 -ldy #0 -lda ({z3}),y +//FRAGMENT vboz1=vboc1 +lda #{c1} sta {z1} -lda ({z2}),y -sta {z1}+1 -//FRAGMENT 0_neq_vwuz1_then_la1 -lda {z1} -ora {z1}+1 -bne {la1} +//FRAGMENT vboaa=vboc1 +lda #{c1} +//FRAGMENT vboxx=vboc1 +lda #{c1} +tax +//FRAGMENT vboyy=vboc1 +lda #{c1} +tay +//FRAGMENT vbuz1=_deref_pbuc1_plus_2 +lda {c1} +clc +adc #2 +sta {z1} +//FRAGMENT vbuaa=_deref_pbuc1_plus_2 +lda {c1} +clc +adc #2 +//FRAGMENT vbuxx=_deref_pbuc1_plus_2 +ldx {c1} +inx +inx +//FRAGMENT vbuyy=_deref_pbuc1_plus_2 +ldy {c1} +iny +iny +//FRAGMENT vbuxx_lt_vbuyy_then_la1 +sty $ff +cpx $ff +bcc {la1} +//FRAGMENT vbuyy_lt_vbuz1_then_la1 +cpy {z1} +bcc {la1} +//FRAGMENT vbuyy_lt_vbuxx_then_la1 +stx $ff +cpy $ff +bcc {la1} //FRAGMENT _deref_pbuz1=_byte_vwsz2 lda {z2} ldy #0 sta ({z1}),y +//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 vbuz1=vbuxx_band_pbuz2_derefidx_vbuc1 ldy #{c1} txa @@ -10491,10 +9731,6 @@ ldy #{c1} txa and ({z1}),y tay -//FRAGMENT _deref_pbuc1_eq_vbuc2_then_la1 -lda #{c2} -cmp {c1} -beq {la1} //FRAGMENT vbuz1=vbuz2_ror_3 lda {z2} lsr @@ -10636,10 +9872,61 @@ tya cmp #$80 ror tay +//FRAGMENT vbuz1=pbuz2_derefidx_vbuz3 +ldy {z3} +lda ({z2}),y +sta {z1} //FRAGMENT vbuz1=vbuz2_band_vbuz3 lda {z2} and {z3} sta {z1} +//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 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 vbuxx=pbuz1_derefidx_vbuyy +lda ({z1}),y +tax +//FRAGMENT vbuyy=pbuz1_derefidx_vbuyy +lda ({z1}),y +tay //FRAGMENT vbuz1=vbuaa_band_vbuz2 and {z2} sta {z1} @@ -10695,6 +9982,40 @@ tay tya and {z1} tay +//FRAGMENT pbuz1_ge_vwuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bcc !+ +bne {la1} +lda {z1} +cmp #<{c1} +bcs {la1} +!: +//FRAGMENT _deref_pbuz1_neq_vbuc1_then_la1 +ldy #0 +lda ({z1}),y +cmp #{c1} +bne {la1} +//FRAGMENT pbuz1_derefidx_vbuz2_eq_vbuc1_then_la1 +lda #{c1} +ldy {z2} +cmp ({z1}),y +beq {la1} +//FRAGMENT pbuz1_derefidx_vbuaa_eq_vbuc1_then_la1 +tay +lda #{c1} +cmp ({z1}),y +beq {la1} +//FRAGMENT pbuz1_derefidx_vbuxx_eq_vbuc1_then_la1 +txa +tay +lda #{c1} +cmp ({z1}),y +beq {la1} +//FRAGMENT pbuz1_derefidx_vbuyy_eq_vbuc1_then_la1 +lda #{c1} +cmp ({z1}),y +beq {la1} //FRAGMENT pbuc1_derefidx_vbuz1=vbum2 lda {m2} ldy {z1} @@ -10812,6 +10133,289 @@ lda #0 !: adc {z1}+1 sta {z1}+1 +//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuz1 +ldy {z1} +lda {c2},y +sta {c1} +//FRAGMENT vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 +lda {z2} +ldy {z3} +and {c1},y +sta {z1} +//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuaa +tay +lda {c2},y +sta {c1} +//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuxx +lda {c2},x +sta {c1} +//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuyy +lda {c2},y +sta {c1} +//FRAGMENT vbuz1=vbuaa_ror_3 +lsr +lsr +lsr +sta {z1} +//FRAGMENT vbuaa=vbuaa_ror_3 +lsr +lsr +lsr +//FRAGMENT vbuxx=vbuaa_ror_3 +lsr +lsr +lsr +tax +//FRAGMENT vbuyy=vbuaa_ror_3 +lsr +lsr +lsr +tay +//FRAGMENT vbuz1=vbuz2_band_pbuc1_derefidx_vbuxx +lda {c1},x +and {z2} +sta {z1} +//FRAGMENT vbuz1=vbuz2_band_pbuc1_derefidx_vbuyy +lda {c1},y +and {z2} +sta {z1} +//FRAGMENT vbuaa=vbuz1_band_pbuc1_derefidx_vbuz2 +lda {z1} +ldy {z2} +and {c1},y +//FRAGMENT vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx +lda {c1},x +and {z1} +//FRAGMENT vbuaa=vbuz1_band_pbuc1_derefidx_vbuyy +lda {c1},y +and {z1} +//FRAGMENT vbuxx=vbuz1_band_pbuc1_derefidx_vbuz2 +lda {z1} +ldx {z2} +and {c1},x +tax +//FRAGMENT vbuxx=vbuz1_band_pbuc1_derefidx_vbuxx +lda {c1},x +and {z1} +tax +//FRAGMENT vbuxx=vbuz1_band_pbuc1_derefidx_vbuyy +lda {c1},y +and {z1} +tax +//FRAGMENT vbuyy=vbuz1_band_pbuc1_derefidx_vbuz2 +lda {z1} +ldy {z2} +and {c1},y +tay +//FRAGMENT vbuyy=vbuz1_band_pbuc1_derefidx_vbuxx +lda {c1},x +and {z1} +tay +//FRAGMENT vbuyy=vbuz1_band_pbuc1_derefidx_vbuyy +lda {c1},y +and {z1} +tay +//FRAGMENT vbuz1=vbuaa_band_pbuc1_derefidx_vbuz2 +ldy {z2} +and {c1},y +sta {z1} +//FRAGMENT vbuz1=vbuaa_band_pbuc1_derefidx_vbuxx +and {c1},x +sta {z1} +//FRAGMENT vbuz1=vbuaa_band_pbuc1_derefidx_vbuyy +and {c1},y +sta {z1} +//FRAGMENT vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1 +ldy {z1} +and {c1},y +//FRAGMENT vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx +and {c1},x +//FRAGMENT vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy +and {c1},y +//FRAGMENT vbuxx=vbuaa_band_pbuc1_derefidx_vbuz1 +ldx {z1} +and {c1},x +tax +//FRAGMENT vbuxx=vbuaa_band_pbuc1_derefidx_vbuxx +and {c1},x +tax +//FRAGMENT vbuxx=vbuaa_band_pbuc1_derefidx_vbuyy +ldx {c1},y +axs #0 +//FRAGMENT vbuz1=vbuxx_band_pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sax {z1} +//FRAGMENT vbuz1=vbuyy_band_pbuc1_derefidx_vbuz2 +tya +ldy {z2} +and {c1},y +sta {z1} +//FRAGMENT vbuaa=vbuxx_band_pbuc1_derefidx_vbuz1 +ldy {z1} +txa +and {c1},y +//FRAGMENT vbuaa=vbuyy_band_pbuc1_derefidx_vbuz1 +tya +ldy {z1} +and {c1},y +//FRAGMENT vbuz1=_lo_pbuz2 +lda {z2} +sta {z1} +//FRAGMENT vbuz1=_hi_pbuz2 +lda {z2}+1 +sta {z1} +//FRAGMENT pbuz1=pbuc1_sethi_vbuz2 +lda {z2} +sta {z1}+1 +lda #<{c1} +sta {z1} +//FRAGMENT pbuz1=pbuz2_setlo_vbuz3 +lda {z3} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vwuc1_sethi_vbuz2 +lda {z2} +sta {z1}+1 +lda #<{c1} +sta {z1} +//FRAGMENT vwuz1=vwuz2_setlo_vbuz3 +lda {z3} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuz3 +ldy #0 +lda ({z2}),y +ldy {z3} +ora {c1},y +sta {z1} +//FRAGMENT vbuaa=_lo_pbuz1 +lda {z1} +//FRAGMENT vbuxx=_lo_pbuz1 +ldx {z1} +//FRAGMENT vbuz1=vbuaa_bor_vbuaa +sta {z1} +//FRAGMENT vbuaa=_hi_pbuz1 +lda {z1}+1 +//FRAGMENT vbuxx=_hi_pbuz1 +ldx {z1}+1 +//FRAGMENT pbuz1=pbuc1_sethi_vbuaa +sta {z1}+1 +lda #<{c1} +sta {z1} +//FRAGMENT pbuz1=pbuc1_sethi_vbuxx +stx {z1}+1 +ldx #<{c1} +stx {z1} +//FRAGMENT pbuz1=pbuz2_setlo_vbuaa +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT pbuz1=pbuz2_setlo_vbuxx +stx {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT pbuz1=pbuz2_setlo_vbuyy +sty {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vwuc1_sethi_vbuaa +sta {z1}+1 +lda #<{c1} +sta {z1} +//FRAGMENT vwuz1=vwuc1_sethi_vbuxx +stx {z1}+1 +ldx #<{c1} +stx {z1} +//FRAGMENT vwuz1=vwuz2_setlo_vbuaa +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_setlo_vbuxx +stx {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_setlo_vbuyy +sty {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuxx +lda {c1},x +ldy #0 +ora ({z2}),y +sta {z1} +//FRAGMENT vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuyy +lda {c1},y +ldy #0 +ora ({z2}),y +sta {z1} +//FRAGMENT vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2 +ldy #0 +lda ({z1}),y +ldy {z2} +ora {c1},y +//FRAGMENT vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx +lda {c1},x +ldy #0 +ora ({z1}),y +//FRAGMENT vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy +lda {c1},y +ldy #0 +ora ({z1}),y +//FRAGMENT vbuxx=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2 +ldx {z2} +lda {c1},x +ldy #0 +ora ({z1}),y +tax +//FRAGMENT vbuxx=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx +lda {c1},x +ldy #0 +ora ({z1}),y +tax +//FRAGMENT vbuxx=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy +lda {c1},y +ldy #0 +ora ({z1}),y +tax +//FRAGMENT vbuyy=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2 +ldy #0 +lda ({z1}),y +ldy {z2} +ora {c1},y +tay +//FRAGMENT vbuyy=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx +lda {c1},x +ldy #0 +ora ({z1}),y +tay +//FRAGMENT vbuyy=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy +lda {c1},y +ldy #0 +ora ({z1}),y +tay +//FRAGMENT pbuz1=pbuc1_sethi_vbuyy +sty {z1}+1 +ldy #<{c1} +sty {z1} +//FRAGMENT vwuz1=vwuc1_sethi_vbuyy +sty {z1}+1 +ldy #<{c1} +sty {z1} +//FRAGMENT vbuyy=_lo_pbuz1 +ldy {z1} +//FRAGMENT vbuz1=vbuz2_bor__lo_pbuz3 +lda {z2} +ora {z3} +sta {z1} +//FRAGMENT vbuyy=_hi_pbuz1 +ldy {z1}+1 +//FRAGMENT pbuz1=pbuz1_setlo_vbuaa +sta {z1} +//FRAGMENT vwuz1=vwuz1_setlo_vbuaa +sta {z1} //FRAGMENT pwsc1_derefidx_vbuz1_ge_vwsz2_then_la1 ldy {z1} lda {c1},y @@ -10865,18 +10469,16 @@ bvc !+ eor #$80 !: bpl {la1} -//FRAGMENT pbuz1_derefidx_vbuz2=vbuz2 +//FRAGMENT vwuz1=_lo_vduz2 lda {z2} -tay -sta ({z1}),y -//FRAGMENT pbuz1=pbuz2_minus_vbuc1 -sec -lda {z2} -sbc #{c1} sta {z1} lda {z2}+1 -sbc #0 sta {z1}+1 +//FRAGMENT vduz1=vduz1_rol_1 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 //FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuz2 ldy {z2} lda {c1},y @@ -10961,6 +10563,10 @@ lda {c1},y clc adc {c2},y tay +//FRAGMENT _deref_pbuc1_eq_vbuc2_then_la1 +lda #{c2} +cmp {c1} +beq {la1} //FRAGMENT _deref_pbuc1=_deref_(_deref_qbuc2) ldy {c2} sty $fe @@ -10969,20 +10575,6 @@ sty $ff ldy #0 lda ($fe),y sta {c1} -//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuz1 -ldy {z1} -lda {c2},y -sta {c1} -//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuaa -tay -lda {c2},y -sta {c1} -//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuxx -lda {c2},x -sta {c1} -//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuyy -lda {c2},y -sta {c1} //FRAGMENT _deref_pwsz1=vwsc1 ldy #0 lda #<{c1} @@ -11028,6 +10620,13 @@ lda #{c2} sta {c1},y lda #0 sta {c1}+1,y +//FRAGMENT vwuz1_lt_vbuc1_then_la1 +lda {z1}+1 +bne !+ +lda {z1} +cmp #{c1} +bcc {la1} +!: //FRAGMENT _deref_pwuz1=vbuc1 lda #{c1} ldy #0 @@ -11035,6 +10634,11 @@ sta ({z1}),y tya iny sta ({z1}),y +//FRAGMENT vbuz1=vbuz2_plus_2 +lda {z2} +clc +adc #2 +sta {z1} //FRAGMENT vwuz1=pwuc1_derefidx_vbuz2_plus_pwuc1_derefidx_vbuz3 ldx {z2} ldy {z3} @@ -11049,6 +10653,10 @@ sta {z1}+1 lda {z1} clc adc #2 +//FRAGMENT vbuxx=vbuz1_plus_2 +ldx {z1} +inx +inx //FRAGMENT vwuz1=pwuc1_derefidx_vbuxx_plus_pwuc1_derefidx_vbuz2 ldy {z2} clc @@ -11149,6 +10757,10 @@ sta {z1} lda {c1}+1,x adc {c1}+1,y sta {z1}+1 +//FRAGMENT vbuz1=vbuxx_plus_2 +inx +inx +stx {z1} //FRAGMENT vbuz1=vbuyy_plus_2 iny iny @@ -11180,6 +10792,14 @@ clc ldy #0 adc ({z2}),y tay +//FRAGMENT vwuz1=vwuz2_plus_1 +clc +lda {z2} +adc #1 +sta {z1} +lda {z2}+1 +adc #0 +sta {z1}+1 //FRAGMENT vwuz1=_deref_pwuz2_plus__deref_pwuz3 ldy #0 clc @@ -11255,6 +10875,21 @@ ldy #{c1} clc adc ({z1}),y sta ({z1}),y +//FRAGMENT vwuz1=vwuz1_plus_vbuaa +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT vwuz1=vwuz1_plus_vbuyy +tya +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: //FRAGMENT vbuz1=_deref_pbuz2_ror_4 ldy #0 lda ({z2}),y @@ -11263,9 +10898,6 @@ lsr lsr lsr sta {z1} -//FRAGMENT vbuz1=_hi_pbuz2 -lda {z2}+1 -sta {z1} //FRAGMENT vbuaa=_deref_pbuz1_ror_4 ldy #0 lda ({z1}),y @@ -11289,12 +10921,6 @@ lsr lsr lsr tay -//FRAGMENT vbuaa=_hi_pbuz1 -lda {z1}+1 -//FRAGMENT vbuxx=_hi_pbuz1 -ldx {z1}+1 -//FRAGMENT vbuyy=_hi_pbuz1 -ldy {z1}+1 //FRAGMENT pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_plus_vwuc2 ldy {z1} clc @@ -11395,113 +11021,17 @@ tya sta {c1},y lda #0 sta {c1}+1,y -//FRAGMENT vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 -lda {z2} -ldy {z3} -and {c1},y -sta {z1} -//FRAGMENT vbuz1=vbuaa_ror_3 -lsr -lsr -lsr -sta {z1} -//FRAGMENT vbuaa=vbuaa_ror_3 -lsr -lsr -lsr -//FRAGMENT vbuxx=vbuaa_ror_3 -lsr -lsr -lsr -tax -//FRAGMENT vbuyy=vbuaa_ror_3 -lsr -lsr -lsr -tay -//FRAGMENT vbuz1=vbuz2_band_pbuc1_derefidx_vbuxx -lda {c1},x -and {z2} -sta {z1} -//FRAGMENT vbuz1=vbuz2_band_pbuc1_derefidx_vbuyy -lda {c1},y -and {z2} -sta {z1} -//FRAGMENT vbuaa=vbuz1_band_pbuc1_derefidx_vbuz2 -lda {z1} -ldy {z2} -and {c1},y -//FRAGMENT vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx -lda {c1},x -and {z1} -//FRAGMENT vbuaa=vbuz1_band_pbuc1_derefidx_vbuyy -lda {c1},y -and {z1} -//FRAGMENT vbuxx=vbuz1_band_pbuc1_derefidx_vbuz2 -lda {z1} -ldx {z2} -and {c1},x -tax -//FRAGMENT vbuxx=vbuz1_band_pbuc1_derefidx_vbuxx -lda {c1},x -and {z1} -tax -//FRAGMENT vbuxx=vbuz1_band_pbuc1_derefidx_vbuyy -lda {c1},y -and {z1} -tax -//FRAGMENT vbuyy=vbuz1_band_pbuc1_derefidx_vbuz2 -lda {z1} -ldy {z2} -and {c1},y -tay -//FRAGMENT vbuyy=vbuz1_band_pbuc1_derefidx_vbuxx -lda {c1},x -and {z1} -tay -//FRAGMENT vbuyy=vbuz1_band_pbuc1_derefidx_vbuyy -lda {c1},y -and {z1} -tay -//FRAGMENT vbuz1=vbuaa_band_pbuc1_derefidx_vbuz2 -ldy {z2} -and {c1},y -sta {z1} -//FRAGMENT vbuz1=vbuaa_band_pbuc1_derefidx_vbuxx -and {c1},x -sta {z1} -//FRAGMENT vbuz1=vbuaa_band_pbuc1_derefidx_vbuyy -and {c1},y -sta {z1} -//FRAGMENT vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1 -ldy {z1} -and {c1},y -//FRAGMENT vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx -and {c1},x -//FRAGMENT vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy -and {c1},y -//FRAGMENT vbuxx=vbuaa_band_pbuc1_derefidx_vbuz1 -ldx {z1} -and {c1},x -tax -//FRAGMENT vbuxx=vbuaa_band_pbuc1_derefidx_vbuxx -and {c1},x -tax -//FRAGMENT vbuxx=vbuaa_band_pbuc1_derefidx_vbuyy -ldx {c1},y -axs #0 -//FRAGMENT vbuz1=vbuxx_band_pbuc1_derefidx_vbuz2 -ldy {z2} -lda {c1},y -sax {z1} -//FRAGMENT vbuz1=vbuyy_band_pbuc1_derefidx_vbuz2 -tya -ldy {z2} -and {c1},y -sta {z1} //FRAGMENT vbuyy=vbuaa_band_pbuc1_derefidx_vbuyy and {c1},y tay +//FRAGMENT vduz1=_dword_vwuz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +lda #0 +sta {z1}+2 +sta {z1}+3 //FRAGMENT vduz1=vduz2_plus_vwuz3 lda {z2} clc @@ -11569,6 +11099,10 @@ ldy {c1}+1 sty $ff ldy #0 sta ($fe),y +//FRAGMENT _deref_pwsc1=vbsc2 +NO_SYNTHESIS +//FRAGMENT _deref_pwsc1=vwuc2 +NO_SYNTHESIS //FRAGMENT vbsz1_le_vbsc1_then_la1 lda #{c1} sec @@ -11616,6 +11150,11 @@ cmp {z1} beq !+ bcs {la1} !: +//FRAGMENT vbuxx=vbuyy_plus_2 +tya +clc +adc #2 +tax //FRAGMENT pbuz1=_dec_pbuz2 lda {z2} sec @@ -11709,25 +11248,15 @@ adc ({z1}),y sta {z1}+1 pla sta {z1} -//FRAGMENT vwuz1_le_vwuz2_then_la1 -lda {z1}+1 -cmp {z2}+1 -bne !+ -lda {z1} -cmp {z2} -beq {la1} -!: -bcc {la1} -//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuaa -ldx {z1} -tay -lda ({z2}),y -sta {c1},x //FRAGMENT pprz1=_deref_qprc1 lda {c1} sta {z1} lda {c1}+1 sta {z1}+1 +//FRAGMENT vbuz1_le_vbuz2_then_la1 +lda {z2} +cmp {z1} +bcs {la1} //FRAGMENT vbuz1_ge_vbuaa_then_la1 ldy {z1} sta $ff @@ -11736,6 +11265,12 @@ bcs {la1} //FRAGMENT vbuz1_le_vbuaa_then_la1 cmp {z1} bcs {la1} +//FRAGMENT vbuz1_le_vbuxx_then_la1 +cpx {z1} +bcs {la1} +//FRAGMENT vbuz1_le_vbuyy_then_la1 +cpy {z1} +bcs {la1} //FRAGMENT vbuaa_le_vbuz1_then_la1 ldy {z1} sta $ff @@ -11750,6 +11285,11 @@ bcs {la1} sta $ff cpy $ff bcs {la1} +//FRAGMENT vbuxx_le_vbuz1_then_la1 +lda {z1} +stx $ff +cmp $ff +bcs {la1} //FRAGMENT vbuxx_ge_vbuaa_then_la1 tay sty $ff @@ -11812,35 +11352,15 @@ sta {c1},x iny lda ({z1}),y sta {c1}+1,x -//FRAGMENT 0_eq_vwuz1_then_la1 +//FRAGMENT _deref_qvoc1=pvoc2 +lda #<{c2} +sta {c1} +lda #>{c2} +sta {c1}+1 +//FRAGMENT 0_neq_vwuz1_then_la1 lda {z1} ora {z1}+1 -beq {la1} -//FRAGMENT vbuz1=_dec_vbuz2 -ldy {z2} -dey -sty {z1} -//FRAGMENT vbuz1=_dec_vbuaa -sec -sbc #1 -sta {z1} -//FRAGMENT vbuz1=_dec_vbuxx -dex -stx {z1} -//FRAGMENT vbuz1=_dec_vbuyy -dey -sty {z1} -//FRAGMENT vbuaa=_dec_vbuz1 -lda {z1} -sec -sbc #1 -//FRAGMENT vbuaa=_dec_vbuxx -txa -sec -sbc #1 -//FRAGMENT vbuyy=_dec_vbuz1 -ldy {z1} -dey +bne {la1} //FRAGMENT 0_neq_vbsz1_then_la1 lda {z1} cmp #0 @@ -11859,6 +11379,18 @@ bne {la1} //FRAGMENT 0_neq_vbsyy_then_la1 cpy #0 bne {la1} +//FRAGMENT vbum1=vbum2 +lda {m2} +sta {m1} +//FRAGMENT vbum1=vbum1_plus_vbuc1 +lax {m1} +axs #-[{c1}] +stx {m1} +//FRAGMENT pbuc1_derefidx_vbum1=pbuc2_derefidx_vbum2 +ldy {m2} +lda {c2},y +ldy {m1} +sta {c1},y //FRAGMENT pbuc1_derefidx_vbuz1=pbuc1_derefidx_vbuz1_bor_vbuc2 lda #{c2} ldy {z1} @@ -11872,79 +11404,2195 @@ sta {c1},x lda #{c2} ora {c1},y sta {c1},y -//FRAGMENT pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1 -lda #{c2} -ldy {z1} -cmp {c1},y -bne {la1} -//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_band_vbuc2 -lda #{c2} -ldy {z2} -and {c1},y -sta {z1} -//FRAGMENT pbuc1_derefidx_vbuaa_neq_vbuc2_then_la1 -tay -lda #{c2} -cmp {c1},y -bne {la1} -//FRAGMENT pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1 -lda {c1},x -cmp #{c2} -bne {la1} -//FRAGMENT pbuc1_derefidx_vbuyy_neq_vbuc2_then_la1 -lda #{c2} -cmp {c1},y -bne {la1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_band_vbuc2 -lda #{c2} -ldy {z1} -and {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_band_vbuc2 -lda #{c2} -ldx {z1} -and {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_band_vbuc2 -lda #{c2} -ldy {z1} -and {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_band_vbuc2 -lda #{c2} -and {c1},x -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_band_vbuc2 -lda #{c2} -and {c1},x -//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_band_vbuc2 -lda #{c2} -and {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_band_vbuc2 -lda #{c2} -and {c1},x -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_band_vbuc2 -lda #{c2} -and {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_band_vbuc2 -lda #{c2} -and {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_band_vbuc2 -lda #{c2} -and {c1},y -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_band_vbuc2 -lda #{c2} -and {c1},y -tay -//FRAGMENT vwuz1=vwuz1_sethi_vbuz2 +//FRAGMENT vwsz1=vwsz2_minus_vbsc1 lda {z2} +sec +sbc #{c1} +sta {z1} +lda {z2}+1 +sbc #>{c1} sta {z1}+1 +//FRAGMENT pbuz1_lt_pbuz2_then_la1 +lda {z1}+1 +cmp {z2}+1 +bcc {la1} +bne !+ +lda {z1} +cmp {z2} +bcc {la1} +!: +//FRAGMENT vwuz1=_deref_pbuc1_word__deref_pbuc2 +lda {c2} +sta {z1} +lda {c1} +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_bor_vbuz3 +lda {z3} +ora {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT pbuz1_derefidx_vbuz2=pbuz3_derefidx_vbuz2 +ldy {z2} +lda ({z3}),y +sta ({z1}),y +//FRAGMENT vwuz1=vwuz2_rol_4 +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 +//FRAGMENT pbuz1_derefidx_vbuc1=pbuc2_derefidx_vbuz2 +ldy {z2} +lda {c2},y +ldy #{c1} +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuz2_eq_pbuz3_derefidx_vbuz2_then_la1 +ldy {z2} +lda ({z1}),y + +cmp ({z3}),y +beq {la1} +//FRAGMENT vwuz1=vwuz2_bor_vbuxx +txa +ora {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_bor_vbuyy +tya +ora {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT pbuz1_derefidx_vbuaa=pbuz2_derefidx_vbuaa +tay +lda ({z2}),y +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuxx=pbuz2_derefidx_vbuxx +txa +tay +lda ({z2}),y +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuyy=pbuz2_derefidx_vbuyy +lda ({z2}),y +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuc1=pbuc2_derefidx_vbuaa +tay +lda {c2},y +ldy #{c1} +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuc1=pbuc2_derefidx_vbuxx +lda {c2},x +ldy #{c1} +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuc1=pbuc2_derefidx_vbuyy +lda {c2},y +ldy #{c1} +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuaa_eq_pbuz2_derefidx_vbuaa_then_la1 +tay +lda ({z1}),y + +cmp ({z2}),y +beq {la1} +//FRAGMENT pbuz1_derefidx_vbuxx_eq_pbuz2_derefidx_vbuxx_then_la1 +txa +tay +lda ({z1}),y + +cmp ({z2}),y +beq {la1} +//FRAGMENT pbuz1_derefidx_vbuyy_eq_pbuz2_derefidx_vbuyy_then_la1 +lda ({z1}),y + +cmp ({z2}),y +beq {la1} +//FRAGMENT vwuz1=vwuz1_bor_vbuxx +txa +ora {z1} +sta {z1} +//FRAGMENT vwuz1=vwuz1_rol_4 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +//FRAGMENT vbuz1=vbuaa_plus_2 +clc +adc #2 +sta {z1} +//FRAGMENT vbuxx_le_vbuc1_then_la1 +cpx #{c1} +bcc {la1} +beq {la1} +//FRAGMENT vbuyy_le_vbuc1_then_la1 +cpy #{c1} +bcc {la1} +beq {la1} +//FRAGMENT vbuyy=vbuz1_plus_2 +ldy {z1} +iny +iny +//FRAGMENT vbuxx=vbuaa_plus_2 +tax +inx +inx +//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=vwuz1_bxor_vwuz2 +lda {z1} +eor {z2} +sta {z1} +lda {z1}+1 +eor {z2}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vbuz2_rol_1 +lda {z2} +asl +sta {z1} +lda #0 +rol +sta {z1}+1 +//FRAGMENT vwuz1=vbuxx_rol_1 +txa +asl +sta {z1} +lda #0 +rol +sta {z1}+1 +//FRAGMENT vwuz1=vbuyy_rol_1 +tya +asl +sta {z1} +lda #0 +rol +sta {z1}+1 +//FRAGMENT vbsz1=_sbyte_vwuz2 +lda {z2} +sta {z1} +//FRAGMENT vbsz1=vbsc1_minus_vbsz2 +lda #{c1} +sec +sbc {z2} +sta {z1} +//FRAGMENT vbsaa=_sbyte_vwuz1 +lda {z1} +//FRAGMENT vbsxx=_sbyte_vwuz1 +ldx {z1} +//FRAGMENT vbsz1=vbsc1_minus_vbsaa +eor #$ff +sec +adc #{c1} +sta {z1} +//FRAGMENT vbsz1=vbsc1_minus_vbsxx +txa +eor #$ff +sec +adc #{c1} +sta {z1} +//FRAGMENT vbsz1=vbsc1_minus_vbsyy +tya +eor #$ff +sec +adc #{c1} +sta {z1} +//FRAGMENT vbsaa=vbsc1_minus_vbsz1 +lda #{c1} +sec +sbc {z1} +//FRAGMENT vbsaa=vbsc1_minus_vbsaa +eor #$ff +sec +adc #{c1} +//FRAGMENT vbsaa=vbsc1_minus_vbsxx +txa +eor #$ff +sec +adc #{c1} +//FRAGMENT vbsaa=vbsc1_minus_vbsyy +tya +eor #$ff +sec +adc #{c1} +//FRAGMENT vbsxx=vbsc1_minus_vbsz1 +lda #{c1} +sec +sbc {z1} +tax +//FRAGMENT vbsxx=vbsc1_minus_vbsaa +eor #$ff +tax +axs #-{c1}-1 +//FRAGMENT vbsxx=vbsc1_minus_vbsxx +txa +eor #$ff +tax +axs #-{c1}-1 +//FRAGMENT vbsxx=vbsc1_minus_vbsyy +tya +eor #$ff +tax +axs #-{c1}-1 +//FRAGMENT vbsyy=vbsc1_minus_vbsz1 +lda #{c1} +sec +sbc {z1} +tay +//FRAGMENT vbsyy=vbsc1_minus_vbsaa +eor #$ff +sec +adc #{c1} +tay +//FRAGMENT vbsyy=vbsc1_minus_vbsxx +txa +eor #$ff +sec +adc #{c1} +tay +//FRAGMENT vbsyy=vbsc1_minus_vbsyy +tya +eor #$ff +sec +adc #{c1} +tay +//FRAGMENT vbsyy=_sbyte_vwuz1 +ldy {z1} +//FRAGMENT vwsz1=vbsz2 +lda {z2} +sta {z1} +and #$80 +beq !+ +lda #$ff +!: +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=vwuz1_minus_vwuz2 +lda {z1} +sec +sbc {z2} +sta {z1} +lda {z1}+1 +sbc {z2}+1 +sta {z1}+1 +//FRAGMENT vbsaa_neq_0_then_la1 +cmp #0 +bne {la1} +//FRAGMENT vwsz1=vbsaa +sta {z1} +and #$80 +beq !+ +lda #$ff +!: +sta {z1}+1 +//FRAGMENT vwsz1=vbsxx +txa +sta {z1} +and #$80 +beq !+ +lda #$ff +!: +sta {z1}+1 +//FRAGMENT vwsz1=vbsyy +tya +sta {z1} +and #$80 +beq !+ +lda #$ff +!: +sta {z1}+1 +//FRAGMENT pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_minus_1 +ldx {z1} +lda {c1},x +bne !+ +dec {c1}+1,x +!: +dec {c1},x +//FRAGMENT pwuc1_derefidx_vbuaa=pwuc1_derefidx_vbuaa_minus_1 +tax +lda {c1},x +bne !+ +dec {c1}+1,x +!: +dec {c1},x +//FRAGMENT pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_minus_1 +lda {c1},x +bne !+ +dec {c1}+1,x +!: +dec {c1},x +//FRAGMENT pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_minus_1 +sec +lda {c1},y +sbc #$01 +sta {c1},y +lda {c1}+1,y +sbc #$00 +sta {c1}+1,y +//FRAGMENT vwuz1_eq_vwuz2_then_la1 +lda {z1} +cmp {z2} +bne !+ +lda {z1}+1 +cmp {z2}+1 +beq {la1} +!: +//FRAGMENT vwuz1_neq_vwuz2_then_la1 +lda {z1}+1 +cmp {z2}+1 +bne {la1} +lda {z1} +cmp {z2} +bne {la1} +//FRAGMENT vwuz1_lt_vwuz2_then_la1 +lda {z1}+1 +cmp {z2}+1 +bcc {la1} +bne !+ +lda {z1} +cmp {z2} +bcc {la1} +!: +//FRAGMENT vwuz1_le_vwuz2_then_la1 +lda {z1}+1 +cmp {z2}+1 +bne !+ +lda {z1} +cmp {z2} +beq {la1} +!: +bcc {la1} +//FRAGMENT vwuz1_gt_vwuz2_then_la1 +lda {z2}+1 +cmp {z1}+1 +bcc {la1} +bne !+ +lda {z2} +cmp {z1} +bcc {la1} +!: +//FRAGMENT vwuz1=vwuz2_minus_vwuz3 +lda {z2} +sec +sbc {z3} +sta {z1} +lda {z2}+1 +sbc {z3}+1 +sta {z1}+1 +//FRAGMENT vduz1=vwuz2_dword_vwuz3 +lda {z2} +sta {z1}+2 +lda {z2}+1 +sta {z1}+3 +lda {z3} +sta {z1} +lda {z3}+1 +sta {z1}+1 +//FRAGMENT vduz1=vwuz2_dword_vwuc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +lda {z2} +sta {z1}+2 +lda {z2}+1 +sta {z1}+3 +//FRAGMENT vwuz1=_hi_vduz2 +lda {z2}+2 +sta {z1} +lda {z2}+3 +sta {z1}+1 +//FRAGMENT vwuz1=vwuz1_bor_vbuc1 +lda #{c1} +ora {z1} +sta {z1} +//FRAGMENT vwuz1=vwuz1_minus_vbuc1 +sec +lda {z1} +sbc #{c1} +sta {z1} +lda {z1}+1 +sbc #0 +sta {z1}+1 +//FRAGMENT vduz1_lt_vwuc1_then_la1 +NO_SYNTHESIS +//FRAGMENT vduz1_lt_vwsc1_then_la1 +NO_SYNTHESIS +//FRAGMENT vduz1=vduz2_rol_4 +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 +//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 vduz1=vduz2_rol_2 +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 +//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 vduz1=vduz1_plus_vwuc1 +lda {z1} +clc +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 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 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=vduz1_rol_2 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +//FRAGMENT pwsz1_lt_pwsc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bcc {la1} +bne !+ +lda {z1} +cmp #<{c1} +bcc {la1} +!: +//FRAGMENT vwsz1=_deref_pwsz2 +ldy #0 +lda ({z2}),y +sta {z1} +iny +lda ({z2}),y +sta {z1}+1 +//FRAGMENT _deref_pwsz1=vwsz2 +ldy #0 +lda {z2} +sta ({z1}),y +iny +lda {z2}+1 +sta ({z1}),y +//FRAGMENT vduz1=vduz1_minus_vduc1 +lda {z1} +sec +sbc #<{c1} +sta {z1} +lda {z1}+1 +sbc #>{c1} +sta {z1}+1 +lda {z1}+2 +sbc #<{c1}>>$10 +sta {z1}+2 +lda {z1}+3 +sbc #>{c1}>>$10 +sta {z1}+3 +//FRAGMENT vduz1=vduc1_minus_vduz1 +lda #<{c1} +sec +sbc {z1} +sta {z1} +lda #>{c1} +sbc {z1}+1 +sta {z1}+1 +lda #<{c1}>>$10 +sbc {z1}+2 +sta {z1}+2 +lda #>{c1}>>$10 +sbc {z1}+3 +sta {z1}+3 +//FRAGMENT vduz1=vduz2_rol_3 +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 +//FRAGMENT vwuz1=vwuz2_ror_4 +lda {z2}+1 +lsr +sta {z1}+1 +lda {z2} +ror +sta {z1} +lsr {z1}+1 +ror {z1} +lsr {z1}+1 +ror {z1} +lsr {z1}+1 +ror {z1} +//FRAGMENT vwuz1=vwuz1_minus_vwuc1 +lda {z1} +sec +sbc #<{c1} +sta {z1} +lda {z1}+1 +sbc #>{c1} +sta {z1}+1 +//FRAGMENT vduz1=vduz2_rol_vbuz3 +ldy {z3} +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_vbuxx +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_rol_vbuyy +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=vduz1_rol_3 +ldy #3 +!: +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +dey +bne !- +//FRAGMENT vduz1=vduz1_rol_vbuxx +cpx #0 +beq !e+ +!: +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +dex +bne !- +!e: +//FRAGMENT vwuz1=vwuz1_ror_4 +lsr {z1}+1 +ror {z1} +lsr {z1}+1 +ror {z1} +lsr {z1}+1 +ror {z1} +lsr {z1}+1 +ror {z1} +//FRAGMENT vbuz1=_deref_pbuc1_bxor_vbuc2 +lda #{c2} +eor {c1} +sta {z1} +//FRAGMENT vbuz1=vbuc1_bxor_vbuaa +eor #{c1} +sta {z1} +//FRAGMENT vbuz1=vbuc1_bxor_vbuxx +txa +eor #{c1} +sta {z1} +//FRAGMENT vbuz1=vbuc1_bxor_vbuyy +tya +eor #{c1} +sta {z1} +//FRAGMENT vbuaa=vbuc1_bxor_vbuaa +eor #{c1} +//FRAGMENT vbuaa=vbuc1_bxor_vbuxx +txa +eor #{c1} +//FRAGMENT vbuaa=vbuc1_bxor_vbuyy +tya +eor #{c1} +//FRAGMENT vbuxx=vbuc1_bxor_vbuaa +eor #{c1} +tax +//FRAGMENT vbuxx=vbuc1_bxor_vbuxx +txa +eor #{c1} +tax +//FRAGMENT vbuxx=vbuc1_bxor_vbuyy +tya +eor #{c1} +tax +//FRAGMENT vbuyy=vbuc1_bxor_vbuaa +eor #{c1} +tay +//FRAGMENT vbuyy=vbuc1_bxor_vbuxx +txa +eor #{c1} +tay +//FRAGMENT vbuyy=vbuc1_bxor_vbuyy +tya +eor #{c1} +tay +//FRAGMENT vbuaa=_deref_pbuc1_bxor_vbuc2 +lda #{c2} +eor {c1} +//FRAGMENT vbuxx=_deref_pbuc1_bxor_vbuc2 +lda #{c2} +eor {c1} +tax +//FRAGMENT vbuyy=_deref_pbuc1_bxor_vbuc2 +lda #{c2} +eor {c1} +tay +//FRAGMENT vduz1_neq_vduc1_then_la1 +lda {z1}+3 +cmp #>{c1}>>$10 +bne {la1} +lda {z1}+2 +cmp #<{c1}>>$10 +bne {la1} +lda {z1}+1 +cmp #>{c1} +bne {la1} +lda {z1} +cmp #<{c1} +bne {la1} +//FRAGMENT vwuz1=vwuz2_plus_vwuc1 +clc +lda {z2} +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vduz1=vduz2_sethi_vwuz3 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +lda {z3} +sta {z1}+2 +lda {z3}+1 +sta {z1}+3 +//FRAGMENT vduz1=vduz2_setlo_vwuz3 +lda {z3} +sta {z1} +lda {z3}+1 +sta {z1}+1 +lda {z2}+2 +sta {z1}+2 +lda {z2}+3 +sta {z1}+3 +//FRAGMENT vduz1=vduz1_setlo_vwuz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//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 vwsz1_eq_vwsz2_then_la1 +lda {z1} +cmp {z2} +bne !+ +lda {z1}+1 +cmp {z2}+1 +beq {la1} +!: +//FRAGMENT vwsz1_neq_vwsz2_then_la1 +lda {z1}+1 +cmp {z2}+1 +bne {la1} +lda {z1} +cmp {z2} +bne {la1} +//FRAGMENT vwsz1_lt_vwsz2_then_la1 +lda {z1} +cmp {z2} +lda {z1}+1 +sbc {z2}+1 +bvc !+ +eor #$80 +!: +bmi {la1} +//FRAGMENT vwsz1_gt_vwsz2_then_la1 +lda {z2} +cmp {z1} +lda {z2}+1 +sbc {z1}+1 +bvc !+ +eor #$80 +!: +bmi {la1} +//FRAGMENT vwsz1_ge_vwsz2_then_la1 +lda {z1} +cmp {z2} +lda {z1}+1 +sbc {z2}+1 +bvc !+ +eor #$80 +!: +bpl {la1} +//FRAGMENT vbsz1_neq_vbsz2_then_la1 +lda {z1} +cmp {z2} +bne {la1} +//FRAGMENT vbsz1_neq_vbsxx_then_la1 +cpx {z1} +bne {la1} +//FRAGMENT vbsxx_neq_vbsz1_then_la1 +cpx {z1} +bne {la1} +//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 _deref_pwuz1=vbuz2 +lda {z2} +ldy #0 +sta ({z1}),y +tya +iny +sta ({z1}),y +//FRAGMENT _deref_pwuz1=vbuaa +ldy #0 +sta ({z1}),y +tya +iny +sta ({z1}),y +//FRAGMENT _deref_pwuz1=vbuxx +txa +ldy #0 +sta ({z1}),y +tya +iny +sta ({z1}),y +//FRAGMENT _deref_pwuz1=vbuyy +tya +ldy #0 +sta ({z1}),y +tya +iny +sta ({z1}),y +//FRAGMENT pbuz1=pbuz2_plus_vwuz1 +lda {z1} +clc +adc {z2} +sta {z1} +lda {z1}+1 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT vbsz1=pbsc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} //FRAGMENT vbsz1_lt_0_then_la1 lda {z1} bmi {la1} +//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 vbsz1=pbsc1_derefidx_vbuaa +tay +lda {c1},y +sta {z1} +//FRAGMENT vbsaa=pbsc1_derefidx_vbuaa +tay +lda {c1},y +//FRAGMENT vbsxx=pbsc1_derefidx_vbuaa +tay +ldx {c1},y +//FRAGMENT vbsyy=pbsc1_derefidx_vbuaa +tax +ldy {c1},x +//FRAGMENT vbsz1=pbsc1_derefidx_vbuxx +lda {c1},x +sta {z1} +//FRAGMENT vbsz1=pbsc1_derefidx_vbuyy +lda {c1},y +sta {z1} +//FRAGMENT vbsxx_lt_0_then_la1 +cpx #0 +bmi {la1} +//FRAGMENT vbsz1=vbsyy +sty {z1} +//FRAGMENT vbsaa=vbsxx +txa +//FRAGMENT vbsaa=vbsyy +tya +//FRAGMENT vbsxx=vbsaa +tax +//FRAGMENT vbsyy=vbsaa +tay +//FRAGMENT vbsyy=vbsxx +txa +tay +//FRAGMENT vbuz1=_neg_vbuaa +eor #$ff +clc +adc #$01 +sta {z1} +//FRAGMENT vbuxx=_neg_vbuaa +eor #$ff +tax +inx +//FRAGMENT vbuyy=_neg_vbuaa +eor #$ff +tay +iny +//FRAGMENT vbsaa_lt_0_then_la1 +cmp #0 +bmi {la1} +//FRAGMENT vdsz1_lt_0_then_la1 +lda {z1}+3 +bmi {la1} +//FRAGMENT vdsz1=_neg_vdsz1 +sec +lda {z1} +eor #$ff +adc #$0 +sta {z1} +lda {z1}+1 +eor #$ff +adc #$0 +sta {z1}+1 +lda {z1}+2 +eor #$ff +adc #$0 +sta {z1}+2 +lda {z1}+3 +eor #$ff +adc #$0 +sta {z1}+3 +//FRAGMENT pbuz1_derefidx_vbuz2=vbuz2 +lda {z2} +tay +sta ({z1}),y +//FRAGMENT pbuz1=pbuz2_minus_vbuc1 +sec +lda {z2} +sbc #{c1} +sta {z1} +lda {z2}+1 +sbc #0 +sta {z1}+1 +//FRAGMENT vbuz1=vbuz1_bor_pbuc1_derefidx_vbuz2 +lda {z1} +ldy {z2} +ora {c1},y +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuz3 +ldy {z2} +lda {c1},y +ldy {z3} +clc +adc {c2},y +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc1_derefidx_vbuz3 +ldy {z2} +lda {c1},y +ldy {z3} +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuz1 +txa +ldx {z1} +ora {c1},x +tax +//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuz1 +tya +ldy {z1} +ora {c1},y +tay +//FRAGMENT vbuz1=vbuz1_bor_pbuc1_derefidx_vbuxx +lda {c1},x +ora {z1} +sta {z1} +//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuxx +txa +ora {c1},x +tax +//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuxx +tya +ora {c1},x +tay +//FRAGMENT vbuz1=vbuz1_bor_pbuc1_derefidx_vbuyy +lda {c1},y +ora {z1} +sta {z1} +//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuyy +txa +ora {c1},y +tax +//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuyy +tya +ora {c1},y +tay +//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2 +ldy {z1} +lda {c1},y +ldy {z2} +clc +adc {c2},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2 +ldx {z1} +lda {c1},x +ldx {z2} +clc +adc {c2},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2 +ldy {z1} +lda {c1},y +ldy {z2} +clc +adc {c2},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuz2 +tay +lda {c1},y +ldy {z2} +clc +adc {c2},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuz1 +tay +lda {c1},y +ldy {z1} +clc +adc {c2},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuz1 +tax +lda {c1},x +ldx {z1} +clc +adc {c2},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuz1 +tay +lda {c1},y +ldy {z1} +clc +adc {c2},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuz2 +lda {c1},x +ldy {z2} +clc +adc {c2},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuz1 +lda {c1},x +ldy {z1} +clc +adc {c2},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuz1 +lda {c1},x +ldx {z1} +clc +adc {c2},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuz1 +lda {c1},x +ldy {z1} +clc +adc {c2},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuz2 +lda {c1},y +ldy {z2} +clc +adc {c2},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuz1 +lda {c1},y +ldy {z1} +clc +adc {c2},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuz1 +lda {c1},y +ldx {z1} +clc +adc {c2},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuz1 +lda {c1},y +ldy {z1} +clc +adc {c2},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuxx +lda {c2},x +ldy {z2} +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuxx +lda {c2},x +ldy {z1} +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuxx +lda {c2},x +ldx {z1} +clc +adc {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuxx +lda {c2},x +ldy {z1} +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuxx +tay +lda {c1},y +clc +adc {c2},x +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuxx +tay +lda {c1},y +clc +adc {c2},x +//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuxx +tay +lda {c1},y +clc +adc {c2},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuxx +tay +lda {c1},y +clc +adc {c2},x +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx +lda {c1},y +clc +adc {c2},x +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx +lda {c1},y +clc +adc {c2},x +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx +lda {c1},y +clc +adc {c2},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx +lda {c1},y +clc +adc {c2},x +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuyy +lda {c2},y +ldy {z2} +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuyy +lda {c2},y +ldy {z1} +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuyy +lda {c2},y +ldx {z1} +clc +adc {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuyy +lda {c2},y +ldy {z1} +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuyy +tax +lda {c1},x +clc +adc {c2},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuyy +tax +lda {c1},x +clc +adc {c2},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuyy +tax +lda {c1},x +clc +adc {c2},y +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuyy +tax +lda {c1},x +clc +adc {c2},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuyy +lda {c1},x +clc +adc {c2},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuyy +lda {c1},x +clc +adc {c2},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuyy +lda {c1},x +clc +adc {c2},y +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuyy +lda {c1},x +clc +adc {c2},y +tay +//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2 +ldy {z1} +lda {c1},y +ldy {z2} +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2 +ldx {z1} +lda {c1},x +ldx {z2} +clc +adc {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2 +ldy {z1} +lda {c1},y +ldy {z2} +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuz2 +tay +lda {c1},y +ldy {z2} +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuz1 +tay +lda {c1},y +ldy {z1} +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuz1 +tax +lda {c1},x +ldx {z1} +clc +adc {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuz1 +tay +lda {c1},y +ldy {z1} +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuz2 +lda {c1},x +ldy {z2} +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuz1 +lda {c1},x +ldy {z1} +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuz1 +lda {c1},x +ldx {z1} +clc +adc {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuz1 +lda {c1},x +ldy {z1} +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuz2 +lda {c1},y +ldy {z2} +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuz1 +lda {c1},y +ldy {z1} +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuz1 +lda {c1},y +ldx {z1} +clc +adc {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuz1 +lda {c1},y +ldy {z1} +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc1_derefidx_vbuaa +tay +lda {c1},y +ldy {z2} +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuaa +tay +lda {c1},y +ldy {z1} +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuaa +tax +lda {c1},x +ldx {z1} +clc +adc {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuaa +tay +lda {c1},y +ldy {z1} +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuaa +tay +lda {c1},y +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuaa +tay +lda {c1},y +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuaa +tax +lda {c1},x +clc +adc {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuaa +tay +lda {c1},y +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuaa +tay +lda {c1},x +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuaa +tay +lda {c1},x +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuaa +tay +lda {c1},x +clc +adc {c1},y +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuaa +tay +lda {c1},x +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuaa +tax +lda {c1},x +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuaa +tax +lda {c1},x +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuaa +tax +lda {c1},x +clc +adc {c1},y +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuaa +tax +lda {c1},x +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc1_derefidx_vbuxx +lda {c1},x +ldy {z2} +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuxx +lda {c1},x +ldy {z1} +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuxx +lda {c1},x +ldx {z1} +clc +adc {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuxx +lda {c1},x +ldy {z1} +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuxx +tay +lda {c1},x +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuxx +tay +lda {c1},x +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuxx +tay +lda {c1},x +clc +adc {c1},y +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuxx +tay +lda {c1},x +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuxx +lda {c1},x +clc +adc {c1},x +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuxx +lda {c1},x +clc +adc {c1},x +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuxx +lda {c1},x +clc +adc {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuxx +lda {c1},x +clc +adc {c1},x +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuxx +lda {c1},x +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuxx +lda {c1},x +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuxx +lda {c1},x +clc +adc {c1},y +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuxx +lda {c1},x +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc1_derefidx_vbuyy +lda {c1},y +ldy {z2} +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuyy +lda {c1},y +ldy {z1} +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuyy +lda {c1},y +ldx {z1} +clc +adc {c1},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuyy +lda {c1},y +ldy {z1} +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuyy +tax +lda {c1},x +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuyy +tax +lda {c1},x +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuyy +tax +lda {c1},x +clc +adc {c1},y +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuyy +tax +lda {c1},x +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuyy +lda {c1},x +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuyy +lda {c1},x +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuyy +lda {c1},x +clc +adc {c1},y +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuyy +lda {c1},x +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuyy +lda {c1},y +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuyy +lda {c1},y +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuyy +lda {c1},y +clc +adc {c1},y +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuyy +lda {c1},y +clc +adc {c1},y +tay +//FRAGMENT pwsc1_derefidx_vbuz1=pwsc1_derefidx_vbuz1_minus_vbuz2 +ldx {z1} +sec +lda {c1},x +sbc {z2} +sta {c1},x +bcs !+ +dec {c1}+1,x +!: +//FRAGMENT pwsc1_derefidx_vbuz1=pwsc1_derefidx_vbuz1_minus_vbuxx +ldy {z1} +stx $ff +sec +lda {c1},y +sbc $ff +sta {c1},y +lda {c1}+1,y +sbc #0 +sta {c1},y +//FRAGMENT pwsc1_derefidx_vbuz1=pwsc1_derefidx_vbuz1_minus_vbuyy +tya +ldy {z1} +clc +sbc {c1},y +eor #$ff +sta {c1},y +bcc !+ +lda {c1}+1,y +sbc #$01 +sta {c1}+1,y +!: +//FRAGMENT pwsc1_derefidx_vbuaa=pwsc1_derefidx_vbuaa_minus_vbuz1 +tax +sec +lda {c1},x +sbc {z1} +sta {c1},x +bcs !+ +dec {c1}+1,x +!: +//FRAGMENT pwsc1_derefidx_vbuaa=pwsc1_derefidx_vbuaa_minus_vbuxx +sec +stx $ff +tax +lda {c1},x +sbc $ff +sta {c1},x +bcs !+ +dec {c1}+1,x +!: +//FRAGMENT pwsc1_derefidx_vbuaa=pwsc1_derefidx_vbuaa_minus_vbuyy +sec +sty $ff +tay +lda {c1},y +sbc $ff +sta {c1},y +lda {c1}+1,y +sbc #$00 +sta {c1}+1,y +//FRAGMENT pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_minus_vbuz1 +sec +lda {c1},x +sbc {z1} +sta {c1},x +bcs !+ +dec {c1}+1,x +!: +//FRAGMENT pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_minus_vbuxx +txa +clc +sbc {c1},x +eor #$ff +sta {c1},x +bcc !+ +lda {c1}+1,x +sbc #$01 +sta {c1}+1,x +!: +//FRAGMENT pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_minus_vbuyy +tya +clc +sbc {c1},x +eor #$ff +sta {c1},x +bcc !+ +lda {c1}+1,x +sbc #$01 +sta {c1}+1,x +!: +//FRAGMENT pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_minus_vbuz1 +sec +lda {c1},y +sbc {z1} +sta {c1},y +lda {c1}+1,y +sbc #0 +sta {c1}+1,y +//FRAGMENT pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_minus_vbuxx +stx $ff +sec +lda {c1},y +sbc $ff +sta {c1},y +lda {c1}+1,y +sbc #0 +sta {c1},y +//FRAGMENT pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_minus_vbuyy +tya +clc +sbc {c1},y +eor #$ff +sta {c1},y +bcc !+ +lda {c1}+1,y +sbc #$01 +sta {c1}+1,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 pbuz1=pbuz1_plus_vbuz2 +lda {z2} +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT pbuz1=pbuz1_plus_vbuxx +txa +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT pbuz1_neq_vwuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bne {la1} +lda {z1} +cmp #<{c1} +bne {la1} +//FRAGMENT pbuz1_derefidx_vbuz2=_inc_pbuz1_derefidx_vbuz2 +ldy {z2} +lda ({z1}),y +clc +adc #1 +sta ({z1}),y +//FRAGMENT _deref_qssc1=pssc2 +lda #<{c2} +sta {c1} +lda #>{c2} +sta {c1}+1 +//FRAGMENT pssc1_neq_pssz1_then_la1 +lda {z1}+1 +cmp #>{c1} +bne {la1} +lda {z1} +cmp #<{c1} +bne {la1} +//FRAGMENT vbuz1=_lo_qssz2_derefidx_vbuc1 +ldy #{c1} +lda ({z2}),y +sta {z1} +//FRAGMENT vbuz1=_hi_qssz2_derefidx_vbuc1 +ldy #{c1}+1 +lda ({z2}),y +sta {z1} +//FRAGMENT pssz1=qssz1_derefidx_vbuc1 +ldy #{c1} +lda ({z1}),y +pha +iny +lda ({z1}),y +sta {z1}+1 +pla +sta {z1} +//FRAGMENT vbuaa=_lo_qssz1_derefidx_vbuc1 +ldy #{c1} +lda ({z1}),y +//FRAGMENT vbuxx=_lo_qssz1_derefidx_vbuc1 +ldy #{c1} +lda ({z1}),y +tax +//FRAGMENT vbuyy=_lo_qssz1_derefidx_vbuc1 +ldy #{c1} +lda ({z1}),y +tay +//FRAGMENT vbuaa=_hi_qssz1_derefidx_vbuc1 +ldy #{c1}+1 +lda ({z1}),y +//FRAGMENT vbuxx=_hi_qssz1_derefidx_vbuc1 +ldy #{c1}+1 +lda ({z1}),y +tax +//FRAGMENT vbuyy=_hi_qssz1_derefidx_vbuc1 +ldy #{c1}+1 +lda ({z1}),y +tay +//FRAGMENT qbuc1_derefidx_vbuz1=pbuc2 +ldy {z1} +lda #<{c2} +sta {c1},y +lda #>{c2} +sta {c1}+1,y +//FRAGMENT qbuc1_derefidx_vbuaa=pbuc2 +tay +lda #<{c2} +sta {c1},y +lda #>{c2} +sta {c1}+1,y +//FRAGMENT qbuc1_derefidx_vbuxx=pbuc2 +lda #<{c2} +sta {c1},x +lda #>{c2} +sta {c1}+1,x +//FRAGMENT qbuc1_derefidx_vbuyy=pbuc2 +lda #<{c2} +sta {c1},y +lda #>{c2} +sta {c1}+1,y +//FRAGMENT (_deref_qbuc1)_derefidx_vbuc2=vbuc3 +lda #{c3} +ldy #{c2} +ldx {c1} +stx $fe +ldx {c1}+1 +stx $ff +sta ($fe),y +//FRAGMENT vwuz1=(_deref_qwuc1)_derefidx_vbuc2 +ldy #{c2} +lda {c1} +sta $fe +lda {c1}+1 +sta $ff +lda ($fe),y +sta {z1} +iny +lda ($fe),y +sta {z1}+1 +//FRAGMENT _deref_qssz1=pssz2 +ldy #0 +lda {z2} +sta ({z1}),y +iny +lda {z2}+1 +sta ({z1}),y +//FRAGMENT vwuz1=vwuz1_plus_pwuz2_derefidx_vbuc1 +ldy #{c1} +clc +lda {z1} +adc ({z2}),y +sta {z1} +iny +lda {z1}+1 +adc ({z2}),y +sta {z1}+1 +//FRAGMENT vwuz1_eq_0_then_la1 +lda {z1} +ora {z1}+1 +beq {la1} +//FRAGMENT vwuz1_le_0_then_la1 +lda {z1} +bne !+ +lda {z1}+1 +beq {la1} +!: +//FRAGMENT vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1}+1 +lda {c2},y +sta {z1} +//FRAGMENT vwuz1=vwuz2_band_vwuc1 +lda {z2} +and #<{c1} +sta {z1} +lda {z2}+1 +and #>{c1} +sta {z1}+1 +//FRAGMENT _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2 +ldy #0 +lda ({z1}),y +ldy {z2} +ora {c1},y +ldy #0 +sta ({z1}),y +//FRAGMENT vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa +tay +lda {c1},y +sta {z1}+1 +lda {c2},y +sta {z1} +//FRAGMENT vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx +lda {c1},x +sta {z1}+1 +lda {c2},x +sta {z1} +//FRAGMENT vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy +lda {c1},y +sta {z1}+1 +lda {c2},y +sta {z1} +//FRAGMENT _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuaa +tay +lda {c1},y +ldy #0 +ora ({z1}),y +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx +lda {c1},x +ldy #0 +ora ({z1}),y +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy +lda {c1},y +ldy #0 +ora ({z1}),y +ldy #0 +sta ({z1}),y +//FRAGMENT vwuz1=vbuz2_word_vbuz3 +lda {z2} +sta {z1}+1 +lda {z3} +sta {z1} +//FRAGMENT vwuz1=vbuaa_word_vbuz2 +sta {z1}+1 +lda {z2} +sta {z1} +//FRAGMENT vwuz1=vbuxx_word_vbuz2 +lda {z2} +stx {z1}+1 +sta {z1} +//FRAGMENT vwuz1=vbuyy_word_vbuz2 +lda {z2} +sty {z1}+1 +sta {z1} +//FRAGMENT vwuz1=vbuz2_word_vbuaa +ldy {z2} +sty {z1}+1 +sta {z1} +//FRAGMENT vwuz1=vbuxx_word_vbuaa +stx {z1}+1 +sta {z1} +//FRAGMENT vwuz1=vbuyy_word_vbuaa +sty {z1}+1 +sta {z1} +//FRAGMENT vwuz1=vbuz2_word_vbuxx +lda {z2} +sta {z1}+1 +stx {z1} +//FRAGMENT vwuz1=vbuaa_word_vbuxx +sta {z1}+1 +stx {z1} +//FRAGMENT vwuz1=vbuyy_word_vbuxx +sty {z1}+1 +stx {z1} +//FRAGMENT vwuz1=vbuz2_word_vbuyy +lda {z2} +sta {z1}+1 +sty {z1} +//FRAGMENT vwuz1=vbuaa_word_vbuyy +sta {z1}+1 +sty {z1} +//FRAGMENT vwuz1=vbuxx_word_vbuyy +stx {z1}+1 +sty {z1} +//FRAGMENT vwuz1=pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=pbuc1_derefidx_vbuaa +tay +lda {c1},y +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=pbuc1_derefidx_vbuxx +lda {c1},x +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=pbuc1_derefidx_vbuyy +lda {c1},y +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1_eq_vwuc1_then_la1 +lda {z1} +cmp #<{c1} +bne !+ +lda {z1}+1 +cmp #>{c1} +beq {la1} +!: +//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuaa +tay +lda {c1},y +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuxx +lda {c1},x +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuyy +lda {c1},y +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=pbuc1_minus_pbuz2 +sec +lda #<{c1} +sbc {z2} +sta {z1} +lda #>{c1} +sbc {z2}+1 +sta {z1}+1 +//FRAGMENT vwuz1=pbuc1_minus_pbuz1 +sec +lda #<{c1} +sbc {z1} +sta {z1} +lda #>{c1} +sbc {z1}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vwuz1_sethi_vbuz2 +lda {z2} +sta {z1}+1 //FRAGMENT vwuz1=vwuz2_rol_vbuz3 lda {z2} sta {z1} @@ -11960,9 +13608,6 @@ bne !- !e: //FRAGMENT vwuz1=vwuz1_sethi_vbuaa sta {z1}+1 -//FRAGMENT vbsaa_lt_0_then_la1 -cmp #0 -bmi {la1} //FRAGMENT vwuz1=vwuz2_rol_vbuxx lda {z2} sta {z1} @@ -11989,19 +13634,6 @@ rol {z1}+1 dey bne !- !e: -//FRAGMENT vbsz1=vbsyy -sty {z1} -//FRAGMENT vbsaa=vbsxx -txa -//FRAGMENT vbsaa=vbsyy -tya -//FRAGMENT vbsxx=vbsaa -tax -//FRAGMENT vbsyy=vbsaa -tay -//FRAGMENT vbsyy=vbsxx -txa -tay //FRAGMENT vwuz1=vwuz1_sethi_vbuxx stx {z1}+1 //FRAGMENT vwuz1=vwuz1_sethi_vbuyy @@ -12009,9 +13641,6 @@ sty {z1}+1 //FRAGMENT vbsyy_ge_0_then_la1 cpy #0 bpl {la1} -//FRAGMENT vbsxx_lt_0_then_la1 -cpx #0 -bmi {la1} //FRAGMENT vbuz1=vbuc1_plus__hi_vwsz2 lda #{c1} clc @@ -12026,22 +13655,553 @@ rol {z1}+1 dey bne !- !e: -//FRAGMENT vwuz1=_deref_pbuc1_word__deref_pbuc2 -lda {c2} -sta {z1} -lda {c1} -sta {z1}+1 -//FRAGMENT _deref_pbuz1=pbuz2_derefidx_vbuz3 -ldy {z3} -lda ({z2}),y +//FRAGMENT vwuz1=vwuz2_plus__deref_pwuz3 ldy #0 -sta ({z1}),y +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 +clc +lda {c1} +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 {c1} +adc {z1} +sta {z1} +lda {c1}+1 +adc {z1}+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 +clc +lda {z1} +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 +clc +lda {z2} +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +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_sethi_vwuz2 +lda {z2} +sta {z1}+2 +lda {z2}+1 +sta {z1}+3 +//FRAGMENT pwsz1=pwsc1_plus_vwsz1 +clc +lda {z1} +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +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 @@ -12069,13 +14229,6 @@ sta ({z1}),y lda ({z2}),y ldy #0 sta ({z1}),y -//FRAGMENT pbuz1_derefidx_vbuxx_neq_vbuc1_then_la1 -txa -tay -lda ({z1}),y - -cmp #{c1} -bne {la1} //FRAGMENT pbuz1_derefidx_vbuxx_neq_0_then_la1 txa tay @@ -12120,12 +14273,6 @@ asl {z1} rol {z1}+1 asl {z1} rol {z1}+1 -//FRAGMENT vwuz1=_dec_vwuz1 -lda {z1} -bne !+ -dec {z1}+1 -!: -dec {z1} //FRAGMENT vbuz1=vbuz2_minus__deref_pbuz3 lda {z2} sec @@ -12172,6 +14319,11 @@ 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 lda {z2} sec @@ -12180,6 +14332,87 @@ 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 vbuxx=vbuaa_plus_1 +tax +inx +//FRAGMENT vbuyy=vbuaa_plus_1 +tay +iny //FRAGMENT vwuz1=pwuz1_minus_pwuc1 lda {z1} sec @@ -12188,234 +14421,462 @@ sta {z1} lda {z1}+1 sbc #>{c1} sta {z1}+1 -//FRAGMENT vbuz1=_lo_pbuz2 +//FRAGMENT pbuz1=pbuz2_minus_vwuz3 lda {z2} -sta {z1} -//FRAGMENT vwuz1_eq_0_then_la1 -lda {z1} -ora {z1}+1 -beq {la1} -//FRAGMENT vwuz1_gt_vwuz2_then_la1 -lda {z2}+1 -cmp {z1}+1 -bcc {la1} -bne !+ -lda {z2} -cmp {z1} -bcc {la1} -!: -//FRAGMENT vwuz1_neq_vwuz2_then_la1 -lda {z1}+1 -cmp {z2}+1 -bne {la1} -lda {z1} -cmp {z2} -bne {la1} -//FRAGMENT vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 -ldy {z2} -lda {c1},y -sta {z1}+1 -lda {c2},y -sta {z1} -//FRAGMENT vwuz1=vwuz2_band_vwuc1 -lda {z2} -and #<{c1} +sec +sbc {z3} sta {z1} lda {z2}+1 -and #>{c1} +sbc {z3}+1 sta {z1}+1 -//FRAGMENT _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2 -ldy #0 -lda ({z1}),y -ldy {z2} -ora {c1},y -ldy #0 -sta ({z1}),y -//FRAGMENT vbuaa=_lo_pbuz1 -lda {z1} -//FRAGMENT vbuxx=_lo_pbuz1 -ldx {z1} -//FRAGMENT vbuz1=vbuaa_bor_vbuaa -sta {z1} -//FRAGMENT vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa -tay -lda {c1},y -sta {z1}+1 -lda {c2},y -sta {z1} -//FRAGMENT vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx -lda {c1},x -sta {z1}+1 -lda {c2},x -sta {z1} -//FRAGMENT vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy -lda {c1},y -sta {z1}+1 -lda {c2},y -sta {z1} -//FRAGMENT _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuaa -tay -lda {c1},y -ldy #0 -ora ({z1}),y -ldy #0 -sta ({z1}),y -//FRAGMENT _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx -lda {c1},x -ldy #0 -ora ({z1}),y -ldy #0 -sta ({z1}),y -//FRAGMENT _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy -lda {c1},y -ldy #0 -ora ({z1}),y -ldy #0 -sta ({z1}),y -//FRAGMENT vbuz1=pbuz2_derefidx_vbuc1_plus_pbuz2_derefidx_vbuc1 -ldy #{c1} +//FRAGMENT pwuz1=qwuz2_derefidx_vbuz3 +ldy {z3} lda ({z2}),y -clc -adc ({z2}),y sta {z1} -//FRAGMENT vbuz1=vbuz2_plus_pbuz3_derefidx_vbuc1 +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 +lda ({z1}),y +clc +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} -ldy #{c1} clc -adc ({z3}),y +adc {z3} sta {z1} -//FRAGMENT vbuz1=vbuz1_plus_pbuc1_derefidx_vbuaa +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 +lda ({z1}),y +clc +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 -clc +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} -sta {z1} -//FRAGMENT vbuyy=vbuyy_plus_pbuc1_derefidx_vbuaa tax -tya -clc -adc {c1},x -tay -//FRAGMENT vbuaa=pbuz1_derefidx_vbuc1_plus_pbuz1_derefidx_vbuc1 -ldy #{c1} -lda ({z1}),y -clc -adc ({z1}),y -//FRAGMENT vbuxx=pbuz1_derefidx_vbuc1_plus_pbuz1_derefidx_vbuc1 -ldy #{c1} -lda ({z1}),y -clc -adc ({z1}),y -tax -//FRAGMENT vbuyy=pbuz1_derefidx_vbuc1_plus_pbuz1_derefidx_vbuc1 -ldy #{c1} -lda ({z1}),y -clc -adc ({z1}),y -tay -//FRAGMENT vbuaa=vbuz1_plus_pbuz2_derefidx_vbuc1 -lda {z1} -ldy #{c1} -clc -adc ({z2}),y -//FRAGMENT vbuxx=vbuz1_plus_pbuz2_derefidx_vbuc1 -lda {z1} -ldy #{c1} -clc -adc ({z2}),y -tax -//FRAGMENT vbuyy=vbuz1_plus_pbuz2_derefidx_vbuc1 -lda {z1} -ldy #{c1} -clc -adc ({z2}),y -tay -//FRAGMENT vbuz1=vbuaa_plus_pbuz2_derefidx_vbuc1 -ldy #{c1} -clc -adc ({z2}),y -sta {z1} -//FRAGMENT vbuaa=vbuaa_plus_pbuz1_derefidx_vbuc1 -ldy #{c1} -clc -adc ({z1}),y -//FRAGMENT vbuxx=vbuaa_plus_pbuz1_derefidx_vbuc1 -ldy #{c1} -clc -adc ({z1}),y -tax -//FRAGMENT vbuyy=vbuaa_plus_pbuz1_derefidx_vbuc1 -ldy #{c1} -clc -adc ({z1}),y -tay -//FRAGMENT vbuz1=vbuxx_plus_pbuz2_derefidx_vbuc1 -ldy #{c1} +//FRAGMENT vbsxx=vbsz1_minus_vbsxx txa -clc -adc ({z2}),y -sta {z1} -//FRAGMENT vbuaa=vbuxx_plus_pbuz1_derefidx_vbuc1 -ldy #{c1} -txa -clc -adc ({z1}),y -//FRAGMENT vbuxx=vbuxx_plus_pbuz1_derefidx_vbuc1 -ldy #{c1} -txa -clc -adc ({z1}),y +eor #$ff +sec +adc {z1} tax -//FRAGMENT vbuyy=vbuxx_plus_pbuz1_derefidx_vbuc1 -ldy #{c1} -txa -clc -adc ({z1}),y -tay -//FRAGMENT vbuz1=vbuyy_plus_pbuz2_derefidx_vbuc1 +//FRAGMENT vbsxx=vbsz1_minus_vbsyy tya -ldy #{c1} -clc -adc ({z2}),y -sta {z1} -//FRAGMENT vbuaa=vbuyy_plus_pbuz1_derefidx_vbuc1 -tya -ldy #{c1} -clc -adc ({z1}),y -//FRAGMENT vbuxx=vbuyy_plus_pbuz1_derefidx_vbuc1 -tya -ldy #{c1} -clc -adc ({z1}),y +eor #$ff +sec +adc {z1} tax -//FRAGMENT vbuyy=vbuyy_plus_pbuz1_derefidx_vbuc1 +//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 -ldy #{c1} -clc -adc ({z1}),y -tay -//FRAGMENT vbuaa=_dec_vbuyy +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 -//FRAGMENT vbuxx=_dec_vbuz1 -ldx {z1} -dex -//FRAGMENT vbuxx=_dec_vbuaa +sta {z1} +//FRAGMENT vbuaa_lt_vbuyy_then_la1 tax -dex -//FRAGMENT vbuxx=_dec_vbuyy -tya -tax -dex -//FRAGMENT vbuyy=_dec_vbuaa -tay -dey -//FRAGMENT vbuyy=_dec_vbuxx +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 vwsz1=vwsz2_plus_pbuz3_derefidx_vbuz4 +ldy {z4} +clc +lda {z2} +adc ({z3}),y +sta {z1} +bcc !+ +inc {z2}+1 +!: +//FRAGMENT vwsz1=vwsz2_minus_vbuc1 +sec +lda {z2} +sbc #{c1} +sta {z1} +lda {z2}+1 +sbc #0 +sta {z1}+1 +//FRAGMENT vwsz1=vwsz2_plus_pbuz3_derefidx_vbuxx txa tay -dey +clc +lda {z2} +adc ({z3}),y +sta {z1} +bcc !+ +inc {z2}+1 +!: +//FRAGMENT vwsz1=vwsz2_plus_pbuz3_derefidx_vbuyy +clc +lda {z2} +adc ({z3}),y +sta {z1} +bcc !+ +inc {z2}+1 +!: +//FRAGMENT vwsz1=vwsz2_plus_vwsz1 +lda {z1} +clc +adc {z2} +sta {z1} +lda {z1}+1 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT vwsz1=vwsz1_minus_vbuc1 +sec +lda {z1} +sbc #{c1} +sta {z1} +bcs !+ +dec {z1}+1 +!: +//FRAGMENT vwsz1=vwsz1_plus_pbuz2_derefidx_vbuyy +clc +lda {z1} +adc ({z2}),y +sta {z1} +bcc !+ +inc {z1}+1 +!: //FRAGMENT vbuz1_ge_pbuc1_derefidx_vbuz2_then_la1 lda {z1} ldy {z2} @@ -12711,32 +15172,6 @@ tax stx $ff cpy $ff bne {la1} -//FRAGMENT vwuz1=pbuc1_derefidx_vbuz2 -ldy {z2} -lda {c1},y -sta {z1} -lda #0 -sta {z1}+1 -//FRAGMENT vwuz1=pbuc1_derefidx_vbuaa -tay -lda {c1},y -sta {z1} -lda #0 -sta {z1}+1 -//FRAGMENT vwuz1=pbuc1_derefidx_vbuxx -lda {c1},x -sta {z1} -lda #0 -sta {z1}+1 -//FRAGMENT vwuz1=pbuc1_derefidx_vbuyy -lda {c1},y -sta {z1} -lda #0 -sta {z1}+1 -//FRAGMENT vbsz1=pbsc1_derefidx_vbuz2 -ldy {z2} -lda {c1},y -sta {z1} //FRAGMENT vbsz1=vbsz1_plus_2 inc {z1} inc {z1} @@ -12749,11 +15184,6 @@ lda {z2} clc adc {z3} sta {z1} -//FRAGMENT vbsz1=vbsz2_minus_vbsz3 -lda {z2} -sec -sbc {z3} -sta {z1} //FRAGMENT vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz3 ldy {z2} lda {c1},y @@ -12789,31 +15219,6 @@ sta {z1} //FRAGMENT vbsz1=_deref_pbsc1 lda {c1} sta {z1} -//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 vbsz1=pbsc1_derefidx_vbuxx -lda {c1},x -sta {z1} -//FRAGMENT vbsz1=pbsc1_derefidx_vbuaa -tay -lda {c1},y -sta {z1} -//FRAGMENT vbsaa=pbsc1_derefidx_vbuaa -tay -lda {c1},y -//FRAGMENT vbsxx=pbsc1_derefidx_vbuaa -tay -ldx {c1},y -//FRAGMENT vbsyy=pbsc1_derefidx_vbuaa -tax -ldy {c1},x //FRAGMENT vbsxx=vbsxx_minus_vbsc1 txa axs #{c1} @@ -13075,18 +15480,6 @@ sty $ff clc adc $ff tay -//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 vbsaa=vbsz1_minus_vbsz2 lda {z1} sec @@ -13101,23 +15494,6 @@ tya eor #$ff sec adc {z1} -//FRAGMENT vbsxx=vbsz1_minus_vbsz2 -lda {z1} -sec -sbc {z2} -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 vbsyy=vbsz1_minus_vbsz2 lda {z1} sec @@ -13135,20 +15511,6 @@ eor #$ff sec adc {z1} tay -//FRAGMENT vbsz1=vbsxx_minus_vbsz2 -txa -sec -sbc {z2} -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 vbsaa=vbsxx_minus_vbsz1 txa sec @@ -13174,20 +15536,6 @@ sty $ff sec sbc $ff tay -//FRAGMENT vbsz1=vbsyy_minus_vbsz2 -tya -sec -sbc {z2} -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 vbsaa=vbsyy_minus_vbsz1 tya sec @@ -13199,20 +15547,6 @@ sec sbc $ff //FRAGMENT vbsaa=vbsyy_minus_vbsyy lda #0 -//FRAGMENT vbsxx=vbsyy_minus_vbsz1 -tya -sec -sbc {z1} -tax -//FRAGMENT vbsxx=vbsyy_minus_vbsxx -tya -stx $ff -sec -sbc $ff -tax -//FRAGMENT vbsxx=vbsyy_minus_vbsyy -lda #0 -tax //FRAGMENT vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 ldy {z1} lda {c1},y @@ -13401,8 +15735,6 @@ clc lda {c1},y adc {c1},y tay -//FRAGMENT _deref_pbsc1=vbsaa -sta {c1} //FRAGMENT vbsz1=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsz2 lda {c1},x ldy {z2} @@ -14072,168 +16404,112 @@ tay lda {c1} //FRAGMENT vbsxx=_deref_pbsc1 ldx {c1} -//FRAGMENT vbsz1=pbsc1_derefidx_vbuyy -lda {c1},y -sta {z1} //FRAGMENT vbsyy=_deref_pbsc1 ldy {c1} -//FRAGMENT _deref_pbsc1=vbsxx -stx {c1} -//FRAGMENT _deref_pbsc1=vbsyy -sty {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 vbsz1=_sbyte_vwuz2 -lda {z2} -sta {z1} -//FRAGMENT vbsz1=vbsc1_minus_vbsz2 -lda #{c1} -sec -sbc {z2} -sta {z1} -//FRAGMENT vbsaa=_sbyte_vwuz1 -lda {z1} -//FRAGMENT vbsxx=_sbyte_vwuz1 -ldx {z1} -//FRAGMENT vbsz1=vbsc1_minus_vbsaa -eor #$ff -sec -adc #{c1} -sta {z1} -//FRAGMENT vbsz1=vbsc1_minus_vbsxx -txa -eor #$ff -sec -adc #{c1} -sta {z1} -//FRAGMENT vbsz1=vbsc1_minus_vbsyy -tya -eor #$ff -sec -adc #{c1} -sta {z1} -//FRAGMENT vbsaa=vbsc1_minus_vbsz1 -lda #{c1} -sec -sbc {z1} -//FRAGMENT vbsaa=vbsc1_minus_vbsaa -eor #$ff -sec -adc #{c1} -//FRAGMENT vbsaa=vbsc1_minus_vbsxx -txa -eor #$ff -sec -adc #{c1} -//FRAGMENT vbsaa=vbsc1_minus_vbsyy -tya -eor #$ff -sec -adc #{c1} -//FRAGMENT vbsxx=vbsc1_minus_vbsz1 -lda #{c1} -sec -sbc {z1} -tax -//FRAGMENT vbsxx=vbsc1_minus_vbsaa -eor #$ff -tax -axs #-{c1}-1 -//FRAGMENT vbsxx=vbsc1_minus_vbsxx -txa -eor #$ff -tax -axs #-{c1}-1 -//FRAGMENT vbsxx=vbsc1_minus_vbsyy -tya -eor #$ff -tax -axs #-{c1}-1 -//FRAGMENT vbsyy=vbsc1_minus_vbsz1 -lda #{c1} -sec -sbc {z1} -tay -//FRAGMENT vbsyy=vbsc1_minus_vbsaa -eor #$ff -sec -adc #{c1} -tay -//FRAGMENT vbsyy=vbsc1_minus_vbsxx -txa -eor #$ff -sec -adc #{c1} -tay -//FRAGMENT vbsyy=vbsc1_minus_vbsyy -tya -eor #$ff -sec -adc #{c1} -tay -//FRAGMENT vbsyy=_sbyte_vwuz1 +//FRAGMENT pbuc1_derefidx_vbuz1=_byte_vwuz2 ldy {z1} -//FRAGMENT _deref_pbuz1=_deref_pbuc1 -lda {c1} -ldy #0 -sta ({z1}),y +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 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 vwuz1=_hi_vdsz2 lda {z2}+2 sta {z1} @@ -14247,41 +16523,6 @@ sta {z1} lda {z2}+1 adc #>{c1} sta {z1}+1 -//FRAGMENT vduz1=vduc1_minus_vduz1 -lda #<{c1} -sec -sbc {z1} -sta {z1} -lda #>{c1} -sbc {z1}+1 -sta {z1}+1 -lda #<{c1}>>$10 -sbc {z1}+2 -sta {z1}+2 -lda #>{c1}>>$10 -sbc {z1}+3 -sta {z1}+3 -//FRAGMENT vduz1=vduz2_rol_3 -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 //FRAGMENT vwuz1=vwuz2_minus_vwuc1 lda {z2} sec @@ -14293,34 +16534,9 @@ sta {z1}+1 //FRAGMENT vbuz1=_byte_vwsz2 lda {z2} sta {z1} -//FRAGMENT vwsz1=vwsz1_minus_vwsc1 -lda {z1} -sec -sbc #<{c1} -sta {z1} -lda {z1}+1 -sbc #>{c1} -sta {z1}+1 -//FRAGMENT vduz1=vduz2_rol_vbuz3 -ldy {z3} +//FRAGMENT vbsz1=_sbyte_vwsz2 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 vbuaa=_byte_vwsz1 lda {z1} //FRAGMENT vbuxx=_byte_vwsz1 @@ -14329,53 +16545,14 @@ tax //FRAGMENT vbuyy=_byte_vwsz1 lda {z1} tay -//FRAGMENT vduz1=vduz2_rol_vbuxx -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_rol_vbuyy -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=vduz1_rol_3 -ldy #3 -!: -asl {z1} -rol {z1}+1 -rol {z1}+2 -rol {z1}+3 -dey -bne !- +//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 clc lda {z1} @@ -14384,17 +16561,6 @@ sta {z1} lda {z1}+1 adc #>{c1} sta {z1}+1 -//FRAGMENT vduz1=vduz1_rol_vbuxx -cpx #0 -beq !e+ -!: -asl {z1} -rol {z1}+1 -rol {z1}+2 -rol {z1}+3 -dex -bne !- -!e: //FRAGMENT vbsz1=pbsc1_derefidx_vbuz2_minus_pbsc2_derefidx_vbuz2 ldy {z2} lda {c1},y @@ -14504,94 +16670,6 @@ sta ({z1}),y tya ldy #0 sta ({z1}),y -//FRAGMENT vwuz1_eq_vwuz2_then_la1 -lda {z1} -cmp {z2} -bne !+ -lda {z1}+1 -cmp {z2}+1 -beq {la1} -!: -//FRAGMENT vduz1=vwuz2_dword_vwuc1 -lda #<{c1} -sta {z1} -lda #>{c1} -sta {z1}+1 -lda {z2} -sta {z1}+2 -lda {z2}+1 -sta {z1}+3 -//FRAGMENT vwuz1=vwuz1_minus_vbuc1 -sec -lda {z1} -sbc #{c1} -sta {z1} -lda {z1}+1 -sbc #0 -sta {z1}+1 -//FRAGMENT vbuz1=_deref_pbuz2_rol_1 -ldy #0 -lda ({z2}),y -asl -sta {z1} -//FRAGMENT pwuc1_derefidx_vbuz1=_inc_pwuc1_derefidx_vbuz1 -ldx {z1} -inc {c1},x -bne !+ -inc {c1}+1,x -!: -//FRAGMENT vbuaa=_deref_pbuz1_rol_1 -ldy #0 -lda ({z1}),y -asl -//FRAGMENT vbuxx=_deref_pbuz1_rol_1 -ldy #0 -lda ({z1}),y -asl -tax -//FRAGMENT vbuyy=_deref_pbuz1_rol_1 -ldy #0 -lda ({z1}),y -asl -tay -//FRAGMENT pwuc1_derefidx_vbuaa=_inc_pwuc1_derefidx_vbuaa -tax -inc {c1},x -bne !+ -inc {c1}+1,x -!: -//FRAGMENT pwuc1_derefidx_vbuxx=_inc_pwuc1_derefidx_vbuxx -inc {c1},x -bne !+ -inc {c1}+1,x -!: -//FRAGMENT pwuc1_derefidx_vbuyy=_inc_pwuc1_derefidx_vbuyy -tya -tax -inc {c1},x -bne !+ -inc {c1}+1,x -!: -//FRAGMENT pwsz1_lt_pwsc1_then_la1 -lda {z1}+1 -cmp #>{c1} -bcc {la1} -bne !+ -lda {z1} -cmp #<{c1} -bcc {la1} -!: -//FRAGMENT vbsz1=vbsz2_minus_vbsaa -eor #$ff -sec -adc {z2} -sta {z1} -//FRAGMENT vbsz1=vbsxx_minus_vbsaa -sta $ff -txa -sec -sbc $ff -sta {z1} //FRAGMENT vbsaa=vbsz1_minus_vbsaa eor #$ff sec @@ -14601,123 +16679,6 @@ sta $ff txa sec sbc $ff -//FRAGMENT vbsxx=vbsz1_minus_vbsaa -eor #$ff -sec -adc {z1} -tax -//FRAGMENT vbsxx=vbsxx_minus_vbsaa -sta $ff -txa -sec -sbc $ff -tax -//FRAGMENT vbsyy=vbsz1_minus_vbsaa -eor #$ff -sec -adc {z1} -tay -//FRAGMENT vbsyy=vbsxx_minus_vbsaa -sta $ff -txa -sec -sbc $ff -tay -//FRAGMENT vduz1_neq_vduc1_then_la1 -lda {z1}+3 -cmp #>{c1}>>$10 -bne {la1} -lda {z1}+2 -cmp #<{c1}>>$10 -bne {la1} -lda {z1}+1 -cmp #>{c1} -bne {la1} -lda {z1} -cmp #<{c1} -bne {la1} -//FRAGMENT vwuz1=vwuz2_plus_vwuc1 -clc -lda {z2} -adc #<{c1} -sta {z1} -lda {z2}+1 -adc #>{c1} -sta {z1}+1 -//FRAGMENT vduz1=vduz2_sethi_vwuz3 -lda {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -lda {z3} -sta {z1}+2 -lda {z3}+1 -sta {z1}+3 -//FRAGMENT vduz1=vduz2_setlo_vwuz3 -lda {z3} -sta {z1} -lda {z3}+1 -sta {z1}+1 -lda {z2}+2 -sta {z1}+2 -lda {z2}+3 -sta {z1}+3 -//FRAGMENT vduz1=vduz1_setlo_vwuz2 -lda {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//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 vwsz1_eq_vwsz2_then_la1 -lda {z1} -cmp {z2} -bne !+ -lda {z1}+1 -cmp {z2}+1 -beq {la1} -!: -//FRAGMENT vwsz1_neq_vwsz2_then_la1 -lda {z1}+1 -cmp {z2}+1 -bne {la1} -lda {z1} -cmp {z2} -bne {la1} -//FRAGMENT vwsz1_lt_vwsz2_then_la1 -lda {z1} -cmp {z2} -lda {z1}+1 -sbc {z2}+1 -bvc !+ -eor #$80 -!: -bmi {la1} -//FRAGMENT vwsz1_gt_vwsz2_then_la1 -lda {z2} -cmp {z1} -lda {z2}+1 -sbc {z1}+1 -bvc !+ -eor #$80 -!: -bmi {la1} -//FRAGMENT vwsz1_ge_vwsz2_then_la1 -lda {z1} -cmp {z2} -lda {z1}+1 -sbc {z2}+1 -bvc !+ -eor #$80 -!: -bpl {la1} //FRAGMENT vwuz1=vwuc1_plus_pbuc2_derefidx_vbuz2 ldy {z2} lda {c2},y @@ -14771,1538 +16732,6 @@ sta {z1} //FRAGMENT vbuz1=vbuz1_bor_vbuaa ora {z1} sta {z1} -//FRAGMENT pssz1_lt_pssc1_then_la1 -lda {z1}+1 -cmp #>{c1} -bcc {la1} -bne !+ -lda {z1} -cmp #<{c1} -bcc {la1} -!: -//FRAGMENT (_deref_qbuc1)_derefidx_vbuc2=vbuc3 -lda #{c3} -ldy #{c2} -ldx {c1} -stx $fe -ldx {c1}+1 -stx $ff -sta ($fe),y -//FRAGMENT vwuz1=(_deref_qwuc1)_derefidx_vbuc2 -ldy #{c2} -lda {c1} -sta $fe -lda {c1}+1 -sta $ff -lda ($fe),y -sta {z1} -iny -lda ($fe),y -sta {z1}+1 -//FRAGMENT pbuz1_neq_vwuc1_then_la1 -lda {z1}+1 -cmp #>{c1} -bne {la1} -lda {z1} -cmp #<{c1} -bne {la1} -//FRAGMENT vbuyy=vbuaa_band_pbuc1_derefidx_vbuz1 -ldy {z1} -and {c1},y -tay -//FRAGMENT vbuyy=_lo_pbuz1 -ldy {z1} -//FRAGMENT vbuz1=vbuz2_bor__lo_pbuz3 -lda {z2} -ora {z3} -sta {z1} -//FRAGMENT vbsaa=pbsc1_derefidx_vbuxx -lda {c1},x -//FRAGMENT vbsaa=pbsc1_derefidx_vbuyy -lda {c1},y -//FRAGMENT vbsyy_lt_0_then_la1 -cpy #0 -bmi {la1} -//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__hi_vdsz2 -NO_SYNTHESIS -//FRAGMENT vwuz1=vwuc1_plus__hi_vdsz2 -clc -lda #<{c1} -adc {z2}+2 -sta {z1} -lda #>{c1} -adc {z2}+3 -sta {z1}+1 -//FRAGMENT vwuz1=vbsc1_plus__hi_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 -clc -lda {z2} -adc #<{c1} -sta {z1} -lda {z2}+1 -adc #>{c1} -sta {z1}+1 -//FRAGMENT vwsz1=vwsz1_plus_vbuz2 -clc -lda {z1} -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 -clc -lda {z1} -adc #<{c1} -sta {z1} -lda {z1}+1 -adc #>{c1} -sta {z1}+1 -//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuz2 -ldy {z2} -lda {c1},y -sta {z1} -lda #0 -sta {z1}+1 -//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuaa -tay -lda {c1},y -sta {z1} -lda #0 -sta {z1}+1 -//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuxx -lda {c1},x -sta {z1} -lda #0 -sta {z1}+1 -//FRAGMENT vwuz1=_word_pbuc1_derefidx_vbuyy -lda {c1},y -sta {z1} -lda #0 -sta {z1}+1 -//FRAGMENT vbuaa=vbuxx_band_pbuc1_derefidx_vbuz1 -ldy {z1} -txa -and {c1},y -//FRAGMENT vbuaa=vbuyy_band_pbuc1_derefidx_vbuz1 -tya -ldy {z1} -and {c1},y -//FRAGMENT vdsz1_lt_0_then_la1 -lda {z1}+3 -bmi {la1} -//FRAGMENT vdsz1=_neg_vdsz1 -sec -lda {z1} -eor #$ff -adc #$0 -sta {z1} -lda {z1}+1 -eor #$ff -adc #$0 -sta {z1}+1 -lda {z1}+2 -eor #$ff -adc #$0 -sta {z1}+2 -lda {z1}+3 -eor #$ff -adc #$0 -sta {z1}+3 -//FRAGMENT _deref_qssz1=pssz2 -ldy #0 -lda {z2} -sta ({z1}),y -iny -lda {z2}+1 -sta ({z1}),y -//FRAGMENT vwuz1=vwuz1_plus_pwuz2_derefidx_vbuc1 -ldy #{c1} -clc -lda {z1} -adc ({z2}),y -sta {z1} -iny -lda {z1}+1 -adc ({z2}),y -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 -sec -lda {z1} -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 -sec -lda {z1} -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 -sec -lda {z1} -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=vbuz1_bor_pbuc1_derefidx_vbuz2 -lda {z1} -ldy {z2} -ora {c1},y -sta {z1} -//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 vbuz1=vbuz1_bor_pbuc1_derefidx_vbuxx -lda {c1},x -ora {z1} -sta {z1} -//FRAGMENT vbuz1=vbuz1_bor_pbuc1_derefidx_vbuyy -lda {c1},y -ora {z1} -sta {z1} -//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuz1 -txa -ldx {z1} -ora {c1},x -tax -//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuaa -tay -txa -ora {c1},y -tax -//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuxx -txa -ora {c1},x -tax -//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuyy -txa -ora {c1},y -tax -//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuz1 -tya -ldy {z1} -ora {c1},y -tay -//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuaa -tax -tya -ora {c1},x -tay -//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuxx -tya -ora {c1},x -tay -//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuyy -tya -ora {c1},y -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 pwsc1_derefidx_vbuz1=pwsc1_derefidx_vbuz1_minus_vbuz2 -ldx {z1} -sec -lda {c1},x -sbc {z2} -sta {c1},x -bcs !+ -dec {c1}+1,x -!: -//FRAGMENT pwsc1_derefidx_vbuz1=pwsc1_derefidx_vbuz1_minus_vbuxx -ldy {z1} -stx $ff -sec -lda {c1},y -sbc $ff -sta {c1},y -lda {c1}+1,y -sbc #0 -sta {c1},y -//FRAGMENT pwsc1_derefidx_vbuz1=pwsc1_derefidx_vbuz1_minus_vbuyy -tya -ldy {z1} -clc -sbc {c1},y -eor #$ff -sta {c1},y -bcc !+ -lda {c1}+1,y -sbc #$01 -sta {c1}+1,y -!: -//FRAGMENT pwsc1_derefidx_vbuaa=pwsc1_derefidx_vbuaa_minus_vbuz1 -tax -sec -lda {c1},x -sbc {z1} -sta {c1},x -bcs !+ -dec {c1}+1,x -!: -//FRAGMENT pwsc1_derefidx_vbuaa=pwsc1_derefidx_vbuaa_minus_vbuxx -sec -stx $ff -tax -lda {c1},x -sbc $ff -sta {c1},x -bcs !+ -dec {c1}+1,x -!: -//FRAGMENT pwsc1_derefidx_vbuaa=pwsc1_derefidx_vbuaa_minus_vbuyy -sec -sty $ff -tay -lda {c1},y -sbc $ff -sta {c1},y -lda {c1}+1,y -sbc #$00 -sta {c1}+1,y -//FRAGMENT pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_minus_vbuz1 -sec -lda {c1},x -sbc {z1} -sta {c1},x -bcs !+ -dec {c1}+1,x -!: -//FRAGMENT pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_minus_vbuxx -txa -clc -sbc {c1},x -eor #$ff -sta {c1},x -bcc !+ -lda {c1}+1,x -sbc #$01 -sta {c1}+1,x -!: -//FRAGMENT pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_minus_vbuyy -tya -clc -sbc {c1},x -eor #$ff -sta {c1},x -bcc !+ -lda {c1}+1,x -sbc #$01 -sta {c1}+1,x -!: -//FRAGMENT pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_minus_vbuz1 -sec -lda {c1},y -sbc {z1} -sta {c1},y -lda {c1}+1,y -sbc #0 -sta {c1}+1,y -//FRAGMENT pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_minus_vbuxx -stx $ff -sec -lda {c1},y -sbc $ff -sta {c1},y -lda {c1}+1,y -sbc #0 -sta {c1},y -//FRAGMENT pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_minus_vbuyy -tya -clc -sbc {c1},y -eor #$ff -sta {c1},y -bcc !+ -lda {c1}+1,y -sbc #$01 -sta {c1}+1,y -!: -//FRAGMENT vwsz1=_deref_pwsz2_minus__deref_pwsz3 -ldy #0 -sec -lda ({z2}),y -sbc ({z3}),y -sta {z1} -iny -lda ({z2}),y -sbc ({z3}),y -sta {z1}+1 -//FRAGMENT vwsz1=vbsz2_plus_vwsc1 -lda {z2} -tax -clc -adc #<{c1} -sta {z1} -txa -ora #$7f -bmi !+ -lda #0 -!: -adc #>{c1} -sta {z1}+1 -//FRAGMENT vwsz1=vbsaa_plus_vwsc1 -tax -clc -adc #<{c1} -sta {z1} -txa -ora #$7f -bmi !+ -lda #0 -!: -adc #>{c1} -sta {z1}+1 -//FRAGMENT vwsz1=vbsxx_plus_vwsc1 -txa -tax -clc -adc #<{c1} -sta {z1} -txa -ora #$7f -bmi !+ -lda #0 -!: -adc #>{c1} -sta {z1}+1 -//FRAGMENT vwsz1=vbsyy_plus_vwsc1 -tya -tax -clc -adc #<{c1} -sta {z1} -txa -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}+1 -ora #$7f -bmi !+ -lda #0 -!: -sta $ff -lda {z1} -clc -adc {z2} -sta {z1} -lda {z1}+1 -adc {z2}+1 -sta {z1}+1 -lda {z1}+2 -adc $ff -sta {z1}+2 -lda {z1}+3 -adc $ff -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 pbuz1=pbuz1_plus_vbuz2 -lda {z2} -clc -adc {z1} -sta {z1} -bcc !+ -inc {z1}+1 -!: -//FRAGMENT pbuz1=pbuz1_plus_vbuxx -txa -clc -adc {z1} -sta {z1} -bcc !+ -inc {z1}+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 vbum1=vbum2 -lda {m2} -sta {m1} -//FRAGMENT vbum1=vbum1_plus_vbuc1 -lax {m1} -axs #-[{c1}] -stx {m1} -//FRAGMENT pbuc1_derefidx_vbum1=pbuc2_derefidx_vbum2 -ldy {m2} -lda {c2},y -ldy {m1} -sta {c1},y -//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 -//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 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 -clc -lda {c1} -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 {c1} -adc {z1} -sta {z1} -lda {c1}+1 -adc {z1}+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_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 vbsz1=vbsyy_minus_vbsaa -sta $ff -tya -sec -sbc $ff -sta {z1} -//FRAGMENT vbsxx=vbsyy_minus_vbsaa -sta $ff -tya -sec -sbc $ff -tax -//FRAGMENT vwsz1=vwsz2_plus_pbuz3_derefidx_vbuz4 -ldy {z4} -clc -lda {z2} -adc ({z3}),y -sta {z1} -bcc !+ -inc {z2}+1 -!: -//FRAGMENT vwsz1=vwsz2_minus_vbuc1 -sec -lda {z2} -sbc #{c1} -sta {z1} -lda {z2}+1 -sbc #0 -sta {z1}+1 -//FRAGMENT vwsz1=vwsz2_plus_pbuz3_derefidx_vbuxx -txa -tay -clc -lda {z2} -adc ({z3}),y -sta {z1} -bcc !+ -inc {z2}+1 -!: -//FRAGMENT vwsz1=vwsz2_plus_pbuz3_derefidx_vbuyy -clc -lda {z2} -adc ({z3}),y -sta {z1} -bcc !+ -inc {z2}+1 -!: -//FRAGMENT vwsz1=vwsz2_plus_vwsz1 -lda {z1} -clc -adc {z2} -sta {z1} -lda {z1}+1 -adc {z2}+1 -sta {z1}+1 -//FRAGMENT vwsz1=vwsz1_minus_vbuc1 -sec -lda {z1} -sbc #{c1} -sta {z1} -bcs !+ -dec {z1}+1 -!: -//FRAGMENT vwsz1=vwsz1_plus_pbuz2_derefidx_vbuyy -clc -lda {z1} -adc ({z2}),y -sta {z1} -bcc !+ -inc {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=vbsyy_minus_vbsaa -sta $ff -tya -sec -sbc $ff -tay -//FRAGMENT vwsz1=vbsz2 -lda {z2} -sta {z1} -and #$80 -beq !+ -lda #$ff -!: -sta {z1}+1 -//FRAGMENT vbsaa_neq_0_then_la1 -cmp #0 -bne {la1} -//FRAGMENT vwsz1=vbsaa -sta {z1} -and #$80 -beq !+ -lda #$ff -!: -sta {z1}+1 -//FRAGMENT vwsz1=vbsxx -txa -sta {z1} -and #$80 -beq !+ -lda #$ff -!: -sta {z1}+1 -//FRAGMENT vwsz1=vbsyy -tya -sta {z1} -and #$80 -beq !+ -lda #$ff -!: -sta {z1}+1 -//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 vbuz1=vbuxx_minus_1 -dex -stx {z1} -//FRAGMENT vbuz1=vbuyy_minus_1 -tya -sec -sbc #1 -sta {z1} //FRAGMENT vbuxx_neq_vbuaa_then_la1 tay stx $ff @@ -16313,6 +16742,12 @@ 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 @@ -16348,14 +16783,6 @@ sta {z1} lsr $ff ror {z1}+1 ror {z1} -//FRAGMENT vwuz1=vwuz2_minus_vbuc1 -sec -lda {z2} -sbc #{c1} -sta {z1} -lda {z2}+1 -sbc #0 -sta {z1}+1 //FRAGMENT vduz1=vwuz2 lda {z2} sta {z1} @@ -16690,6 +17117,491 @@ 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 _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 +sec +lda {z1} +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 +sec +lda {z1} +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 +sec +lda {z1} +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 +sec +lda ({z2}),y +sbc ({z3}),y +sta {z1} +iny +lda ({z2}),y +sbc ({z3}),y +sta {z1}+1 +//FRAGMENT vwsz1=vbsz2_plus_vwsc1 +lda {z2} +tax +clc +adc #<{c1} +sta {z1} +txa +ora #$7f +bmi !+ +lda #0 +!: +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwsz1=vbsaa_plus_vwsc1 +tax +clc +adc #<{c1} +sta {z1} +txa +ora #$7f +bmi !+ +lda #0 +!: +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwsz1=vbsxx_plus_vwsc1 +txa +tax +clc +adc #<{c1} +sta {z1} +txa +ora #$7f +bmi !+ +lda #0 +!: +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwsz1=vbsyy_plus_vwsc1 +tya +tax +clc +adc #<{c1} +sta {z1} +txa +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}+1 +ora #$7f +bmi !+ +lda #0 +!: +sta $ff +lda {z1} +clc +adc {z2} +sta {z1} +lda {z1}+1 +adc {z2}+1 +sta {z1}+1 +lda {z1}+2 +adc $ff +sta {z1}+2 +lda {z1}+3 +adc $ff +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} @@ -16709,45 +17621,78 @@ tya sta {c1} lda #0 sta {c1}+1 -//FRAGMENT vwuz1=pbuz2_minus_pbuc1 -lda {z2} -sec -sbc #<{c1} +//FRAGMENT vbuz1=vbuz2_plus__deref_pbuc1 +lda {c1} +clc +adc {z2} 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 +//FRAGMENT vbuaa=vbuz1_plus__deref_pbuc1 +lda {c1} +clc +adc {z1} +//FRAGMENT vbuxx=vbuz1_plus__deref_pbuc1 +lda {c1} +clc +adc {z1} tax -ldy #0 -lda ({z1}),y +//FRAGMENT vbuyy=vbuz1_plus__deref_pbuc1 +lda {c1} +clc +adc {z1} tay -stx $ff -cpy $ff -bne {la1} -//FRAGMENT vwuz1=pbuz1_minus_pbuc1 -lda {z1} -sec -sbc #<{c1} +//FRAGMENT vbuz1=vbuaa_plus__deref_pbuc1 +clc +adc {c1} sta {z1} -lda {z1}+1 -sbc #>{c1} -sta {z1}+1 +//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 vduz1=vduz2_rol_0 lda {z2} sta {z1} @@ -17261,109 +18206,112 @@ ror {z1} dex bne !- !e: -//FRAGMENT vbsz1=vbsz2_plus_vbsc1 -lax {z2} -axs #-[{c1}] -stx {z1} -//FRAGMENT vbsz1=vbsc1_plus_vbsz2 -lax {z2} -axs #-[{c1}] -stx {z1} -//FRAGMENT vbsz1=vbsz2_plus_vbsz2 +//FRAGMENT vwsz1=_sword_vbsz2 lda {z2} -asl sta {z1} -//FRAGMENT vbsaa=vbsz1_plus_vbsc1 -lda #{c1} -clc -adc {z1} -//FRAGMENT vbsxx=vbsz1_plus_vbsc1 -lax {z1} -axs #-[{c1}] -//FRAGMENT vbsyy=vbsz1_plus_vbsc1 -lda #{c1} -clc -adc {z1} -tay -//FRAGMENT vbsaa=vbsc1_plus_vbsz1 -lda #{c1} -clc -adc {z1} -//FRAGMENT vbsxx=vbsc1_plus_vbsz1 -lax {z1} -axs #-[{c1}] -//FRAGMENT vbsyy=vbsc1_plus_vbsz1 -lda #{c1} -clc -adc {z1} -tay -//FRAGMENT vbsaa=vbsz1_plus_vbsz1 +// sign-extend the byte +ora #$7f +bmi !+ +lda #0 +!: +sta {z1}+1 +//FRAGMENT vwsz1=vwsz1_minus_vwsc1 lda {z1} -asl -//FRAGMENT vbsxx=vbsz1_plus_vbsz1 -lda {z1} -asl -tax -//FRAGMENT vbsyy=vbsz1_plus_vbsz1 -lda {z1} -asl -tay -//FRAGMENT vbuz1=vbuc1_bor_vbuz2 -lda #{c1} -ora {z2} +sec +sbc #<{c1} sta {z1} -//FRAGMENT vbuz1=vbuc1_bor_vbuaa -ora #{c1} +lda {z1}+1 +sbc #>{c1} +sta {z1}+1 +//FRAGMENT vwsz1=_sword_vbsyy +tya sta {z1} -//FRAGMENT vbuz1=vbuc1_bor_vbuxx -txa -ora #{c1} +// sign-extend the byte +ora #$7f +bmi !+ +lda #0 +!: +sta {z1}+1 +//FRAGMENT vwuz1=_word_vduz2 +lda {z2} sta {z1} -//FRAGMENT vbuz1=vbuc1_bor_vbuyy -tya -ora #{c1} +lda {z2}+1 +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 vwuz1=vwuc1_plus_vbuz2 +lda {z2} +clc +adc #<{c1} sta {z1} -//FRAGMENT vbuaa=vbuc1_bor_vbuz1 -lda #{c1} -ora {z1} -//FRAGMENT vbuaa=vbuc1_bor_vbuaa -ora #{c1} -//FRAGMENT vbuaa=vbuc1_bor_vbuxx +lda #>{c1} +adc #0 +sta {z1}+1 +//FRAGMENT pwuz1=pwuc1_plus_vbuz2 +lda {z2} +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 +//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_vbuxx txa -ora #{c1} -//FRAGMENT vbuaa=vbuc1_bor_vbuyy -tya -ora #{c1} -//FRAGMENT vbuxx=vbuc1_bor_vbuz1 -lda #{c1} -ora {z1} -tax -//FRAGMENT vbuxx=vbuc1_bor_vbuaa -ora #{c1} -tax -//FRAGMENT vbuxx=vbuc1_bor_vbuxx +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 +//FRAGMENT pwuz1=pwuc1_plus_vbuaa +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 +//FRAGMENT pwuz1=pwuc1_plus_vbuxx txa -ora #{c1} -tax -//FRAGMENT vbuxx=vbuc1_bor_vbuyy +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 +//FRAGMENT pwuz1=pwuc1_plus_vbuyy tya -ora #{c1} -tax -//FRAGMENT vbuyy=vbuc1_bor_vbuz1 -lda #{c1} -ora {z1} -tay -//FRAGMENT vbuyy=vbuc1_bor_vbuaa -ora #{c1} -tay -//FRAGMENT vbuyy=vbuc1_bor_vbuxx -txa -ora #{c1} -tay -//FRAGMENT vbuyy=vbuc1_bor_vbuyy -tya -ora #{c1} -tay +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 //FRAGMENT vbuz1_eq__deref_pbuc1_then_la1 lda {c1} cmp {z1} @@ -17397,12 +18345,6 @@ sta {z1}+2 lda {z2}+3 adc #0 sta {z1}+3 -//FRAGMENT pbuz1_derefidx_vbuz2=pbuc1_derefidx_(pbuc2_derefidx_vbuz3) -ldx {z3} -ldy {c2},x -lda {c1},y -ldy {z2} -sta ({z1}),y //FRAGMENT pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuz1 ldx {z1} dec {c1},x @@ -17431,18 +18373,6 @@ lda {z2} ldy {z3} eor {c1},y sta {z1} -//FRAGMENT vbuz1=vbuz2_bor_vbuc1 -lda #{c1} -ora {z2} -sta {z1} -//FRAGMENT vwuz1=vwuc1_plus_vwuz2 -clc -lda {z2} -adc #<{c1} -sta {z1} -lda {z2}+1 -adc #>{c1} -sta {z1}+1 //FRAGMENT vbuxx_eq__deref_pbuc1_then_la1 cpx {c1} beq {la1} @@ -17850,6 +18780,10 @@ tax 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 @@ -17928,17 +18862,6 @@ tay tya and {c1},y tay -//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} @@ -18037,999 +18960,105 @@ sta {z1} lda {z1}+1 and #>{c1} sta {z1}+1 -//FRAGMENT vwuz1=vwuc1_plus_vwuz1 -clc -lda {z1} -adc #<{c1} -sta {z1} -lda {z1}+1 -adc #>{c1} -sta {z1}+1 -//FRAGMENT vbsz1=_sbyte_vwsz2 +//FRAGMENT vdsz1=vdsz2_rol_4 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 _deref_pbuc1_lt_vbuz1_then_la1 -lda {c1} -cmp {z1} -bcc {la1} -//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz2)_then_la1 -lda {z1} -ldx {z2} -ldy {c2},x -cmp {c1},y -bcs {la1} -//FRAGMENT vbuz1_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuz2)_then_la1 -lda {z1} -ldx {z2} -ldy {c2},x -cmp {c1},y -bcc {la1} -//FRAGMENT vbuz1=pbuc1_derefidx_(pbuc2_derefidx_vbuz2) -ldx {z2} -ldy {c2},x -ldx {c1},y -stx {z1} -//FRAGMENT _deref_pbuc1_lt_vbuaa_then_la1 -ldy {c1} -sta $ff -cpy $ff -bcc {la1} -//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuaa)_then_la1 -tax -lda {z1} -ldy {c2},x -cmp {c1},y -bcs {la1} -//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1 -lda {z1} -ldy {c2},x -cmp {c1},y -bcs {la1} -//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1 -lda {z1} -ldx {c2},y -cmp {c1},x -bcs {la1} -//FRAGMENT vbuaa_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1 -ldx {z1} -ldy {c2},x -cmp {c1},y -bcs {la1} -//FRAGMENT vbuz1_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1 -lda {z1} -ldy {c2},x -cmp {c1},y -bcc {la1} -//FRAGMENT vbuz1_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1 -lda {z1} -ldx {c2},y -cmp {c1},x -bcc {la1} -//FRAGMENT vbuxx_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1 -ldy {z1} -txa -ldx {c2},y -cmp {c1},x -bcc {la1} -//FRAGMENT vbuxx_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1 -txa -ldy {c2},x -cmp {c1},y -bcc {la1} -//FRAGMENT vbuxx_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1 -txa -ldx {c2},y -cmp {c1},x -bcc {la1} -//FRAGMENT vbuyy_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1 -ldx {z1} -tya -ldy {c2},x -cmp {c1},y -bcc {la1} -//FRAGMENT vbuyy_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1 -tya -ldy {c2},x -cmp {c1},y -bcc {la1} -//FRAGMENT vbuyy_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1 -tya -ldx {c2},y -cmp {c1},x -bcc {la1} -//FRAGMENT vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuz1) -ldx {z1} -ldy {c2},x -lda {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuz1) -ldx {z1} -ldy {c2},x -ldx {c1},y -//FRAGMENT vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuz1) -ldy {z1} -ldx {c2},y -ldy {c1},x -//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1 -ldy {z1} -txa -ldx {c2},y -cmp {c1},x -bcs {la1} -//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1 -txa -ldy {c2},x -cmp {c1},y -bcs {la1} -//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1 -txa -ldx {c2},y -cmp {c1},x -bcs {la1} -//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1 -ldx {z1} -tya -ldy {c2},x -cmp {c1},y -bcs {la1} -//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1 -tya -ldy {c2},x -cmp {c1},y -bcs {la1} -//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1 -tya -ldx {c2},y -cmp {c1},x -bcs {la1} -//FRAGMENT _deref_pbuc1_lt_vbuxx_then_la1 -lda {c1} -stx $ff -cmp $ff -bcc {la1} -//FRAGMENT _deref_pbuc1_lt_vbuyy_then_la1 -ldx {c1} -sty $ff -cpx $ff -bcc {la1} -//FRAGMENT vbuz1=_deref_pbuc1_plus_2 -lda {c1} -clc -adc #2 -sta {z1} -//FRAGMENT vbuaa=_deref_pbuc1_plus_2 -lda {c1} -clc -adc #2 -//FRAGMENT vbuxx=_deref_pbuc1_plus_2 -ldx {c1} -inx -inx -//FRAGMENT vbuyy=_deref_pbuc1_plus_2 -ldy {c1} -iny -iny -//FRAGMENT pbuz1=pbuc1_sethi_vbuz2 -lda {z2} -sta {z1}+1 -lda #<{c1} -sta {z1} -//FRAGMENT pbuz1=pbuz2_setlo_vbuz3 -lda {z3} -sta {z1} lda {z2}+1 sta {z1}+1 -//FRAGMENT vwuz1=vwuc1_sethi_vbuz2 -lda {z2} -sta {z1}+1 -lda #<{c1} -sta {z1} -//FRAGMENT vwuz1=vwuz2_setlo_vbuz3 -lda {z3} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuz3 -ldy #0 -lda ({z2}),y -ldy {z3} -ora {c1},y -sta {z1} -//FRAGMENT pbuz1=pbuc1_sethi_vbuaa -sta {z1}+1 -lda #<{c1} -sta {z1} -//FRAGMENT pbuz1=pbuc1_sethi_vbuxx -stx {z1}+1 -ldx #<{c1} -stx {z1} -//FRAGMENT pbuz1=pbuz2_setlo_vbuaa -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT pbuz1=pbuz2_setlo_vbuxx -stx {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT pbuz1=pbuz2_setlo_vbuyy -sty {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vwuz1=vwuc1_sethi_vbuaa -sta {z1}+1 -lda #<{c1} -sta {z1} -//FRAGMENT vwuz1=vwuc1_sethi_vbuxx -stx {z1}+1 -ldx #<{c1} -stx {z1} -//FRAGMENT vwuz1=vwuz2_setlo_vbuaa -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vwuz1=vwuz2_setlo_vbuxx -stx {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vwuz1=vwuz2_setlo_vbuyy -sty {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuxx -lda {c1},x -ldy #0 -ora ({z2}),y -sta {z1} -//FRAGMENT vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuyy -lda {c1},y -ldy #0 -ora ({z2}),y -sta {z1} -//FRAGMENT vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2 -ldy #0 -lda ({z1}),y -ldy {z2} -ora {c1},y -//FRAGMENT vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx -lda {c1},x -ldy #0 -ora ({z1}),y -//FRAGMENT vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy -lda {c1},y -ldy #0 -ora ({z1}),y -//FRAGMENT vbuxx=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2 -ldx {z2} -lda {c1},x -ldy #0 -ora ({z1}),y -tax -//FRAGMENT vbuxx=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx -lda {c1},x -ldy #0 -ora ({z1}),y -tax -//FRAGMENT vbuxx=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy -lda {c1},y -ldy #0 -ora ({z1}),y -tax -//FRAGMENT vbuyy=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2 -ldy #0 -lda ({z1}),y -ldy {z2} -ora {c1},y -tay -//FRAGMENT vbuyy=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx -lda {c1},x -ldy #0 -ora ({z1}),y -tay -//FRAGMENT vbuyy=_deref_pbuz1_bor_pbuc1_derefidx_vbuyy -lda {c1},y -ldy #0 -ora ({z1}),y -tay -//FRAGMENT pbuz1=pbuc1_sethi_vbuyy -sty {z1}+1 -ldy #<{c1} -sty {z1} -//FRAGMENT vwuz1=vwuc1_sethi_vbuyy -sty {z1}+1 -ldy #<{c1} -sty {z1} -//FRAGMENT pbuz1=pbuz1_setlo_vbuaa -sta {z1} -//FRAGMENT vwuz1=vwuz1_setlo_vbuaa -sta {z1} -//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuz3 -ldy {z2} -lda {c1},y -ldy {z3} -clc -adc {c2},y -sta {z1} -//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc1_derefidx_vbuz3 -ldy {z2} -lda {c1},y -ldy {z3} -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2 -ldy {z1} -lda {c1},y -ldy {z2} -clc -adc {c2},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2 -ldx {z1} -lda {c1},x -ldx {z2} -clc -adc {c2},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuz2 -ldy {z1} -lda {c1},y -ldy {z2} -clc -adc {c2},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuz2 -tay -lda {c1},y -ldy {z2} -clc -adc {c2},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuz1 -tay -lda {c1},y -ldy {z1} -clc -adc {c2},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuz1 -tax -lda {c1},x -ldx {z1} -clc -adc {c2},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuz1 -tay -lda {c1},y -ldy {z1} -clc -adc {c2},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuz2 -lda {c1},x -ldy {z2} -clc -adc {c2},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuz1 -lda {c1},x -ldy {z1} -clc -adc {c2},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuz1 -lda {c1},x -ldx {z1} -clc -adc {c2},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuz1 -lda {c1},x -ldy {z1} -clc -adc {c2},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuz2 -lda {c1},y -ldy {z2} -clc -adc {c2},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuz1 -lda {c1},y -ldy {z1} -clc -adc {c2},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuz1 -lda {c1},y -ldx {z1} -clc -adc {c2},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuz1 -lda {c1},y -ldy {z1} -clc -adc {c2},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuxx -lda {c2},x -ldy {z2} -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuxx -lda {c2},x -ldy {z1} -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuxx -lda {c2},x -ldx {z1} -clc -adc {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuxx -lda {c2},x -ldy {z1} -clc -adc {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuxx -tay -lda {c1},y -clc -adc {c2},x -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuxx -tay -lda {c1},y -clc -adc {c2},x -//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuxx -tay -lda {c1},y -clc -adc {c2},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuxx -tay -lda {c1},y -clc -adc {c2},x -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx -lda {c1},y -clc -adc {c2},x -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx -lda {c1},y -clc -adc {c2},x -//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx -lda {c1},y -clc -adc {c2},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx -lda {c1},y -clc -adc {c2},x -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuyy -lda {c2},y -ldy {z2} -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuyy -lda {c2},y -ldy {z1} -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuyy -lda {c2},y -ldx {z1} -clc -adc {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc2_derefidx_vbuyy -lda {c2},y -ldy {z1} -clc -adc {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuyy -tax -lda {c1},x -clc -adc {c2},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuyy -tax -lda {c1},x -clc -adc {c2},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuyy -tax -lda {c1},x -clc -adc {c2},y -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc2_derefidx_vbuyy -tax -lda {c1},x -clc -adc {c2},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuyy -lda {c1},x -clc -adc {c2},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuyy -lda {c1},x -clc -adc {c2},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuyy -lda {c1},x -clc -adc {c2},y -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuyy -lda {c1},x -clc -adc {c2},y -tay -//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2 -ldy {z1} -lda {c1},y -ldy {z2} -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2 -ldx {z1} -lda {c1},x -ldx {z2} -clc -adc {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2 -ldy {z1} -lda {c1},y -ldy {z2} -clc -adc {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuz2 -tay -lda {c1},y -ldy {z2} -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuz1 -tay -lda {c1},y -ldy {z1} -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuz1 -tax -lda {c1},x -ldx {z1} -clc -adc {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuz1 -tay -lda {c1},y -ldy {z1} -clc -adc {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuz2 -lda {c1},x -ldy {z2} -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuz1 -lda {c1},x -ldy {z1} -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuz1 -lda {c1},x -ldx {z1} -clc -adc {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuz1 -lda {c1},x -ldy {z1} -clc -adc {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuz2 -lda {c1},y -ldy {z2} -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuz1 -lda {c1},y -ldy {z1} -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuz1 -lda {c1},y -ldx {z1} -clc -adc {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuz1 -lda {c1},y -ldy {z1} -clc -adc {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc1_derefidx_vbuaa -tay -lda {c1},y -ldy {z2} -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuaa -tay -lda {c1},y -ldy {z1} -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuaa -tax -lda {c1},x -ldx {z1} -clc -adc {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuaa -tay -lda {c1},y -ldy {z1} -clc -adc {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuaa -tay -lda {c1},y -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuaa -tay -lda {c1},y -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuaa -tax -lda {c1},x -clc -adc {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuaa -tay -lda {c1},y -clc -adc {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuaa -tay -lda {c1},x -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuaa -tay -lda {c1},x -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuaa -tay -lda {c1},x -clc -adc {c1},y -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuaa -tay -lda {c1},x -clc -adc {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuaa -tax -lda {c1},x -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuaa -tax -lda {c1},x -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuaa -tax -lda {c1},x -clc -adc {c1},y -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuaa -tax -lda {c1},x -clc -adc {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc1_derefidx_vbuxx -lda {c1},x -ldy {z2} -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuxx -lda {c1},x -ldy {z1} -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuxx -lda {c1},x -ldx {z1} -clc -adc {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuxx -lda {c1},x -ldy {z1} -clc -adc {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuxx -tay -lda {c1},x -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuxx -tay -lda {c1},x -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuxx -tay -lda {c1},x -clc -adc {c1},y -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuxx -tay -lda {c1},x -clc -adc {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuxx -lda {c1},x -clc -adc {c1},x -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuxx -lda {c1},x -clc -adc {c1},x -//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuxx -lda {c1},x -clc -adc {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuxx -lda {c1},x -clc -adc {c1},x -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuxx -lda {c1},x -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuxx -lda {c1},x -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuxx -lda {c1},x -clc -adc {c1},y -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuxx -lda {c1},x -clc -adc {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc1_derefidx_vbuyy -lda {c1},y -ldy {z2} -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuyy -lda {c1},y -ldy {z1} -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuyy -lda {c1},y -ldx {z1} -clc -adc {c1},x -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuyy -lda {c1},y -ldy {z1} -clc -adc {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuyy -tax -lda {c1},x -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuyy -tax -lda {c1},x -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuyy -tax -lda {c1},x -clc -adc {c1},y -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa_plus_pbuc1_derefidx_vbuyy -tax -lda {c1},x -clc -adc {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuyy -lda {c1},x -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuyy -lda {c1},x -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuyy -lda {c1},x -clc -adc {c1},y -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc1_derefidx_vbuyy -lda {c1},x -clc -adc {c1},y -tay -//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuyy -lda {c1},y -clc -adc {c1},y -sta {z1} -//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuyy -lda {c1},y -clc -adc {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuyy -lda {c1},y -clc -adc {c1},y -tax -//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc1_derefidx_vbuyy -lda {c1},y -clc -adc {c1},y -tay -//FRAGMENT vbuz1=vbuz2_plus__deref_pbuc1 -lda {c1} +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} -//FRAGMENT vbuaa=vbuz1_plus__deref_pbuc1 -lda {c1} +lda #0 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vbuc1_plus__hi_vdsz2 +NO_SYNTHESIS +//FRAGMENT vwuz1=vwuc1_plus__hi_vdsz2 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} +lda #<{c1} +adc {z2}+2 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 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 #>{c1} +adc {z2}+3 +sta {z1}+1 +//FRAGMENT vwuz1=vbsc1_plus__hi_vdsz2 +NO_SYNTHESIS +//FRAGMENT vwuz1=vwuz2_minus_vwuz1 lda {z2} sec sbc {z1} sta {z1} -//FRAGMENT pssz1=pssz1_plus_vwuc1 +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 +clc +lda {z2} +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwsz1=vwsz1_plus_vbuz2 +clc +lda {z1} +adc {z2} +sta {z1} +lda {z1}+1 +adc #0 +sta {z1}+1 +//FRAGMENT vwsz1=vwsc1_plus_vwsz1 clc lda {z1} adc #<{c1} @@ -19037,7 +19066,146 @@ sta {z1} lda {z1}+1 adc #>{c1} sta {z1}+1 -//FRAGMENT pssz1=pssz1_minus_vwuc1 +//FRAGMENT vwsz1=vbsc1_plus_vwsz1 +clc +lda {z1} +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+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 vwuz1=pbuz2_minus_pbuc1 +lda {z2} +sec +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} @@ -19045,156 +19213,6 @@ 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 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 _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 vbuz1=pbuc1_derefidx_vbuz2_plus_vbuz3 lda {z3} ldy {z2} @@ -19749,18 +19767,3 @@ sta {z1} lda {z1}+1 adc {z2}+1 sta {z1}+1 -//FRAGMENT vwuz1=_word1_vduz2 -lda {z2}+2 -sta {z1} -lda {z2}+3 -sta {z1}+1 -//FRAGMENT vwuz1=_word1_vdsz2 -lda {z2}+2 -sta {z1} -lda {z2}+3 -sta {z1}+1 -//FRAGMENT _deref_qvoc1=pvoc2 -lda #<{c2} -sta {c1} -lda #>{c2} -sta {c1}+1 diff --git a/src/main/fragment/cache/fragment-cache-rom6502x.asm b/src/main/fragment/cache/fragment-cache-rom6502x.asm index d5b4cd33e..019e91a2a 100644 --- a/src/main/fragment/cache/fragment-cache-rom6502x.asm +++ b/src/main/fragment/cache/fragment-cache-rom6502x.asm @@ -1,13 +1,12 @@ -//KICKC FRAGMENT CACHE 108dd16dc1 108dd18d7f +//KICKC FRAGMENT CACHE 11e0ba6c6b 11e0ba8c9f +//FRAGMENT _deref_pbuc1=_inc__deref_pbuc1 +inc {c1} //FRAGMENT isr_hardware_all_entry pha @clob_none txa @clob_x pha @clob_x tya @clob_y pha @clob_y -//FRAGMENT _deref_pbuc1=vbuc2 -lda #{c2} -sta {c1} //FRAGMENT isr_hardware_all_exit pla @clob_y tay @clob_y @@ -15,17 +14,6 @@ pla @clob_x tax @clob_x pla @clob_none rti -//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2 -lda #{c2} -ora {c1} -sta {c1} -//FRAGMENT _deref_qprc1=pprc2 -lda #<{c2} -sta {c1} -lda #>{c2} -sta {c1}+1 -//FRAGMENT _deref_pbuc1=_inc__deref_pbuc1 -inc {c1} //FRAGMENT vbuz1=vbuc1 lda #{c1} sta {z1} @@ -63,6 +51,18 @@ iny //FRAGMENT vbuyy_neq_vbuc1_then_la1 cpy #{c1} bne {la1} +//FRAGMENT _deref_pbuc1=vbuc2 +lda #{c2} +sta {c1} +//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2 +lda #{c2} +ora {c1} +sta {c1} +//FRAGMENT _deref_qprc1=pprc2 +lda #<{c2} +sta {c1} +lda #>{c2} +sta {c1}+1 //FRAGMENT vbuz1=vbuz2 lda {z2} sta {z1} diff --git a/src/main/fragment/cache/fragment-cache-wdc65c02.asm b/src/main/fragment/cache/fragment-cache-wdc65c02.asm index 7559a15e0..9698e5da2 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 108dd16dc1 108dd18d7f +//KICKC FRAGMENT CACHE 11e0ba6c6b 11e0ba8c9f //FRAGMENT vbuz1=_deref_pbuc1 lda {c1} sta {z1} @@ -65,125 +65,19 @@ inc tay //FRAGMENT vbuyy=vbuyy_plus_1 iny -//FRAGMENT pbuz1=pbuc1 -lda #<{c1} -sta {z1} -lda #>{c1} -sta {z1}+1 //FRAGMENT vbuz1=vbuc1 lda #{c1} sta {z1} -//FRAGMENT 0_neq_pbuc1_derefidx_vbuz1_then_la1 -ldy {z1} -lda {c1},y -cmp #0 -bne {la1} -//FRAGMENT pbuz1=pbuz2 -lda {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2 -ldy {z2} -lda {c1},y -sta {z1} -//FRAGMENT pbuz1=_inc_pbuz2 -clc -lda {z2} -adc #1 -sta {z1} -lda {z2}+1 -adc #0 -sta {z1}+1 -//FRAGMENT vbuz1=_inc_vbuz1 -inc {z1} -//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuc2 -lda #{c2} -and {c1} -sta {c1} -//FRAGMENT _deref_pbuc1=vbuc2 -lda #{c2} -sta {c1} -//FRAGMENT pbuz1_neq_pbuc1_then_la1 -lda {z1}+1 -cmp #>{c1} -bne {la1} -lda {z1} -cmp #<{c1} -bne {la1} -//FRAGMENT _deref_pbuc1=_deref_pbuz1 -ldy #0 -lda ({z1}),y -sta {c1} -//FRAGMENT pbuz1=_inc_pbuz1 -inc {z1} -bne !+ -inc {z1}+1 -!: -//FRAGMENT vbuz1=_lo_pbuz2 -lda {z2} -sta {z1} -//FRAGMENT vbuz1=_hi_pbuz2 -lda {z2}+1 -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 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_vbuxx -lda {c1},x -//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy -lda {c1},y -//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1 -ldy {z1} -ldx {c1},y -//FRAGMENT vbuaa=_lo_pbuz1 -lda {z1} -//FRAGMENT vbuxx=_lo_pbuz1 -ldx {z1} -//FRAGMENT vbuaa=_hi_pbuz1 -lda {z1}+1 -//FRAGMENT vbuxx=_hi_pbuz1 -ldx {z1}+1 -//FRAGMENT vbuyy=_lo_pbuz1 -ldy {z1} -//FRAGMENT vbuyy=_hi_pbuz1 -ldy {z1}+1 -//FRAGMENT vbuxx=vbuc1 -ldx #{c1} -//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1 -ldx {z1} -ldy {c1},x -//FRAGMENT vbuyy=vbuc1 -ldy #{c1} -//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy -ldx {c1},y -//FRAGMENT vbuyy=_inc_vbuyy -iny //FRAGMENT isr_rom_min_cx16_entry //FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2 lda #{c2} ora {c1} sta {c1} +//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuc2 +lda #{c2} +and {c1} +sta {c1} //FRAGMENT vbuz1_neq_vbuc1_then_la1 lda #{c1} cmp {z1} @@ -197,6 +91,8 @@ bne {la1} lda {z1} cmp #{c1} bcs {la1} +//FRAGMENT vbuz1=_inc_vbuz1 +inc {z1} //FRAGMENT vbuz1=vbuz2 lda {z2} sta {z1} @@ -204,6 +100,9 @@ sta {z1} lda {z1} cmp #{c1} bcc {la1} +//FRAGMENT _deref_pbuc1=vbuc2 +lda #{c2} +sta {c1} //FRAGMENT isr_rom_min_cx16_exit jmp $e049 //FRAGMENT pbuz1=pbuc1_plus_pbuc2_derefidx_vbuz2 @@ -233,10 +132,27 @@ lda #<{c2} sta {c1} lda #>{c2} sta {c1}+1 +//FRAGMENT pbuz1=pbuc1 +lda #<{c1} +sta {z1} +lda #>{c1} +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=vbuc1 lda #{c1} ldy #0 sta ({z1}),y +//FRAGMENT pbuz1=_inc_pbuz1 +inc {z1} +bne !+ +inc {z1}+1 +!: //FRAGMENT vbuaa_neq_vbuc1_then_la1 cmp #{c1} bne {la1} @@ -310,11 +226,17 @@ bne {la1} //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 vbuaa=vbuc1 lda #{c1} //FRAGMENT vbuaa=_inc_vbuaa @@ -322,222 +244,89 @@ inc //FRAGMENT vbuyy_neq_vbuc1_then_la1 cpy #{c1} bne {la1} +//FRAGMENT 0_neq_pbuc1_derefidx_vbuz1_then_la1 +ldy {z1} +lda {c1},y +cmp #0 +bne {la1} +//FRAGMENT pbuz1=pbuz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} +//FRAGMENT pbuz1=_inc_pbuz2 +clc +lda {z2} +adc #1 +sta {z1} +lda {z2}+1 +adc #0 +sta {z1}+1 +//FRAGMENT _deref_pbuc1=_deref_pbuz1 +ldy #0 +lda ({z1}),y +sta {c1} +//FRAGMENT vbuz1=_lo_pbuz2 +lda {z2} +sta {z1} +//FRAGMENT vbuz1=_hi_pbuz2 +lda {z2}+1 +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 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_vbuxx +lda {c1},x +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy +lda {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1 +ldy {z1} +ldx {c1},y +//FRAGMENT vbuaa=_lo_pbuz1 +lda {z1} +//FRAGMENT vbuxx=_lo_pbuz1 +ldx {z1} +//FRAGMENT vbuaa=_hi_pbuz1 +lda {z1}+1 +//FRAGMENT vbuxx=_hi_pbuz1 +ldx {z1}+1 +//FRAGMENT vbuyy=_lo_pbuz1 +ldy {z1} +//FRAGMENT vbuyy=_hi_pbuz1 +ldy {z1}+1 +//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1 +ldx {z1} +ldy {c1},x +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy +ldx {c1},y //FRAGMENT vwuz1=vwuc1 lda #<{c1} sta {z1} lda #>{c1} sta {z1}+1 -//FRAGMENT isr_rom_sys_cx16_entry - -//FRAGMENT vwuz1=_inc_vwuz1 -inc {z1} -bne !+ -inc {z1}+1 -!: -//FRAGMENT vwuz1_neq_vbuc1_then_la1 -NO_SYNTHESIS -//FRAGMENT vwuz1_neq_vwuc1_then_la1 -lda {z1}+1 -cmp #>{c1} -bne {la1} -lda {z1} -cmp #<{c1} -bne {la1} -//FRAGMENT vwuz1=vbuc1 -lda #<{c1} -sta {z1} -lda #>{c1} -sta {z1}+1 -//FRAGMENT vwuz1=_dec_vwuz1 -lda {z1} -bne !+ -dec {z1}+1 -!: -dec {z1} -//FRAGMENT vwuz1=vwuz2 -lda {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT isr_rom_sys_cx16_exit -jmp $e034 -//FRAGMENT vwuz1=vwuz2_rol_1 -lda {z2} -asl -sta {z1} -lda {z2}+1 -rol -sta {z1}+1 -//FRAGMENT pwuz1=pwuc1_plus_vwuz2 -clc -lda {z2} -adc #<{c1} -sta {z1} -lda {z2}+1 -adc #>{c1} -sta {z1}+1 -//FRAGMENT _deref_pwuc1=_deref_pwuz1 -ldy #0 -lda ({z1}),y -sta {c1} -iny -lda ({z1}),y -sta {c1}+1 -//FRAGMENT pvoz1=pvoz2 -lda {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT pvoz1=pvoc1 -lda #<{c1} -sta {z1} -lda #>{c1} -sta {z1}+1 -//FRAGMENT pbuz1=pbuz1_plus_vbuc1 -lda #{c1} -clc -adc {z1} -sta {z1} -bcc !+ -inc {z1}+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 -NO_SYNTHESIS -//FRAGMENT _deref_pwuc1=_deref_pwuc1_plus_vbsc2 -NO_SYNTHESIS -//FRAGMENT _deref_pwuc1=_deref_pwuc1_plus_vwuc2 -lda #<{c2} -clc -adc {c1} -sta {c1} -lda #>{c2} -adc {c1}+1 -sta {c1}+1 -//FRAGMENT vbuz1=_lo_pvoz2 -lda {z2} -sta {z1} -//FRAGMENT vbuz1=_hi_pvoz2 -lda {z2}+1 -sta {z1} -//FRAGMENT vbuz1=vbuc1_bor_vbuz2 -lda #{c1} -ora {z2} -sta {z1} -//FRAGMENT pbuz1=pbuz2_plus_vwuz3 -lda {z2} -clc -adc {z3} -sta {z1} -lda {z2}+1 -adc {z3}+1 -sta {z1}+1 -//FRAGMENT pbuz1_neq_pbuz2_then_la1 -lda {z1}+1 -cmp {z2}+1 -bne {la1} -lda {z1} -cmp {z2} -bne {la1} -//FRAGMENT vbuaa=_lo_pvoz1 -lda {z1} -//FRAGMENT vbuxx=_lo_pvoz1 -ldx {z1} -//FRAGMENT vbuaa=_hi_pvoz1 -lda {z1}+1 -//FRAGMENT vbuxx=_hi_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 vbuyy=_lo_pvoz1 -ldy {z1} -//FRAGMENT vbuyy=_hi_pvoz1 -ldy {z1}+1 -//FRAGMENT pbuz1=pbuz2_plus_vwuz1 -lda {z1} -clc -adc {z2} -sta {z1} -lda {z1}+1 -adc {z2}+1 -sta {z1}+1 -//FRAGMENT pwuz1=pwuc1_plus_vwuz1 -clc -lda {z1} -adc #<{c1} -sta {z1} -lda {z1}+1 -adc #>{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 vduz1=vduc1 lda #<{c1} sta {z1} @@ -547,44 +336,23 @@ lda #<{c1}>>$10 sta {z1}+2 lda #>{c1}>>$10 sta {z1}+3 -//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 vwuz1=vwuz1_plus_vwuc1 -clc +//FRAGMENT vbuz1_lt_vbuz2_then_la1 lda {z1} -adc #<{c1} +cmp {z2} +bcc {la1} +//FRAGMENT vbuz1=vbuz2_minus_1 +ldx {z2} +dex +stx {z1} +//FRAGMENT pvoz1=pvoc1 +lda #<{c1} sta {z1} -lda {z1}+1 -adc #>{c1} +lda #>{c1} sta {z1}+1 -//FRAGMENT vbuz1=vbuz1_plus_2 -lda {z1} -clc -adc #2 +//FRAGMENT vwuz1=vbuc1 +lda #<{c1} 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 +lda #>{c1} sta {z1}+1 //FRAGMENT _deref_pbuc1=_deref_pbuc1_bor__deref_pbuc2 lda {c1} @@ -593,16 +361,29 @@ sta {c1} //FRAGMENT 0_eq_vbuz1_then_la1 lda {z1} beq {la1} -//FRAGMENT vbuz1=_bnot__deref_pbuc1 -lda {c1} -eor #$ff +//FRAGMENT vwuz1=vwuz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vwuz1=_inc_vwuz1 +inc {z1} +bne !+ +inc {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_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 @@ -655,10 +436,6 @@ 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} @@ -674,6 +451,10 @@ bcs {la1} //FRAGMENT 0_lt_vbuz1_then_la1 lda {z1} bne {la1} +//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2 +lda #{c2} +ldy {z1} +sta {c1},y //FRAGMENT vwuz1=_word_vbuz2 lda {z2} sta {z1} @@ -698,6 +479,16 @@ lda {z2} sta {c1},y lda {z2}+1 sta {c1}+1,y +//FRAGMENT vbuz1=_lo_pvoz2 +lda {z2} +sta {z1} +//FRAGMENT vbuz1=_hi_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 @@ -710,10 +501,6 @@ bcc {la1} //FRAGMENT _deref_pbuc1=_deref_pbuc2 lda {c2} sta {c1} -//FRAGMENT vbuz1_eq_vbuc1_then_la1 -lda #{c1} -cmp {z1} -beq {la1} //FRAGMENT vwuz1_eq_vbuc1_then_la1 lda #{c1} cmp {z1} @@ -722,16 +509,23 @@ lda {z1}+1 bne !+ jmp {la1} !: -//FRAGMENT vbuz1=vbuz1_bor_vbuc1 -lda #{c1} -ora {z1} -sta {z1} +//FRAGMENT vwuz1_neq_vwuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bne {la1} +lda {z1} +cmp #<{c1} +bne {la1} //FRAGMENT pwuc1_derefidx_vbuz1=vwuc2 ldy {z1} lda #<{c2} sta {c1},y lda #>{c2} sta {c1}+1,y +//FRAGMENT vbuz1=vbuz1_bor_vbuc1 +lda #{c1} +ora {z1} +sta {z1} //FRAGMENT vwuz1=_lo_vduz2 lda {z2} sta {z1} @@ -781,12 +575,30 @@ sta {z1} lda #{c1} and {z2} sta {z1} +//FRAGMENT vbuz1_eq_vbuc1_then_la1 +lda #{c1} +cmp {z1} +beq {la1} //FRAGMENT pwuc1_derefidx_vbuz1=vbuc2 lda #{c2} ldy {z1} sta {c1},y lda #0 sta {c1}+1,y +//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 vbuz1=vbuz2_rol_4 lda {z2} asl @@ -816,60 +628,146 @@ sta {z1} lda {z1}+1 adc {z2}+1 sta {z1}+1 -//FRAGMENT vduz1=_deref_pduc1 -lda {c1} +//FRAGMENT vbuz1=_deref_pbuz2 +ldy #0 +lda ({z2}),y 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 +//FRAGMENT 0_neq_vbuz1_then_la1 +lda {z1} +bne {la1} +//FRAGMENT vbsz1=pbsc1_derefidx_vbuz2 ldy {z2} -lda #<{c1} +lda {c1},y sta {z1} -lda #>{c1}+1 +//FRAGMENT vwuz1=vwuz2_ror_3 +lda {z2}+1 +lsr sta {z1}+1 -cpy #0 -beq !e+ -!: -asl {z1} -rol {z1}+1 -dey -bne !- -!e: -//FRAGMENT vbuz1=_lo_vwuz2 lda {z2} +ror sta {z1} -//FRAGMENT vduz1=vduz2_plus_vwuz3 +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 +clc +lda {z2} +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 +clc +lda {z2} +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} -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} +//FRAGMENT vduz1=vduz2 +lda {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_rol_2 +lda {z2} +asl +sta {z1} +lda {z2}+1 +rol +sta {z1}+1 +asl {z1} +rol {z1}+1 +//FRAGMENT pduz1=pduc1_plus_vwuz2 +clc +lda {z2} +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 vduz1=vduz1_plus_vwuz2 lda {z1} clc @@ -884,13 +782,49 @@ sta {z1}+2 lda {z1}+3 adc #0 sta {z1}+3 -//FRAGMENT vbuz1=_deref_pbuz2 -ldy #0 -lda ({z2}),y +//FRAGMENT vbuz1=_lo_vwuz2 +lda {z2} +sta {z1} +//FRAGMENT pvoz1=pvoz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//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 0_neq_vbuz1_then_la1 -lda {z1} -bne {la1} //FRAGMENT pbuz1=_deref_qbuc1 lda {c1} sta {z1} @@ -950,6 +884,120 @@ lda {z2} ldy {z1} cmp {c1},y bne {la1} +//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 +lda {z1} +clc +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=vwuz1_plus_vwuz2 +lda {z1} +clc +adc {z2} +sta {z1} +lda {z1}+1 +adc {z2}+1 +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=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 vbuz1=pbuc1_derefidx_vbuz2_rol_4 ldy {z2} lda {c1},y @@ -971,6 +1019,62 @@ sta {z1} lda {z2}+1 adc {z3}+1 sta {z1}+1 +//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 pbuc1_derefidx_vbuz1_lt_vbuz2_then_la1 ldy {z1} lda {c1},y @@ -997,6 +1101,14 @@ 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} @@ -1018,52 +1130,20 @@ 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 +//FRAGMENT vbuaa=vwuz1_band_vbuc1 +lda #{c1} +and {z1} +//FRAGMENT vbuxx=vwuz1_band_vbuc1 +lda #{c1} +and {z1} tax -//FRAGMENT vbuyy=_bnot__deref_pbuc1 -lda {c1} -eor #$ff +//FRAGMENT vbuyy=vwuz1_band_vbuc1 +lda #{c1} +and {z1} 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 @@ -1526,16 +1606,6 @@ 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} @@ -1587,17 +1657,58 @@ lda {z1} sta {c1},y lda {z1}+1 sta {c1}+1,y -//FRAGMENT vbuaa_eq_vbuc1_then_la1 -cmp #{c1} -beq {la1} -//FRAGMENT vbuxx=vbuxx_bor_vbuc1 +//FRAGMENT vbuaa=_lo_pvoz1 +lda {z1} +//FRAGMENT vbuxx=_lo_pvoz1 +ldx {z1} +//FRAGMENT vbuaa=_hi_pvoz1 +lda {z1}+1 +//FRAGMENT vbuxx=_hi_pvoz1 +ldx {z1}+1 +//FRAGMENT vbuz1=vbuc1_bor_vbuxx +txa +ora #{c1} +sta {z1} +//FRAGMENT vbuz1=vbuc1_bor_vbuyy +tya +ora #{c1} +sta {z1} +//FRAGMENT vbuaa=vbuc1_bor_vbuz1 +lda #{c1} +ora {z1} +//FRAGMENT vbuaa=vbuc1_bor_vbuxx +txa +ora #{c1} +//FRAGMENT vbuaa=vbuc1_bor_vbuyy +tya +ora #{c1} +//FRAGMENT vbuxx=vbuc1_bor_vbuz1 +lda #{c1} +ora {z1} +tax +//FRAGMENT vbuxx=vbuc1_bor_vbuxx txa ora #{c1} tax -//FRAGMENT vbuyy=vbuyy_bor_vbuc1 +//FRAGMENT vbuxx=vbuc1_bor_vbuyy +tya +ora #{c1} +tax +//FRAGMENT vbuyy=vbuc1_bor_vbuz1 +lda #{c1} +ora {z1} +tay +//FRAGMENT vbuyy=vbuc1_bor_vbuxx +txa +ora #{c1} +tay +//FRAGMENT vbuyy=vbuc1_bor_vbuyy tya ora #{c1} tay +//FRAGMENT pbuc1_derefidx_vbuxx=vbuc2 +lda #{c2} +sta {c1},x //FRAGMENT pwuc1_derefidx_vbuaa=vwuc2 tay lda #<{c2} @@ -1614,6 +1725,16 @@ lda #<{c2} sta {c1},y lda #>{c2} sta {c1}+1,y +//FRAGMENT vbuxx=vbuxx_bor_vbuc1 +txa +ora #{c1} +tax +//FRAGMENT vbuyy=vbuyy_bor_vbuc1 +tya +ora #{c1} +tay +//FRAGMENT vbuz1=vbuxx +stx {z1} //FRAGMENT pbuc1_derefidx_vbuxx=_byte_vwuz1 lda {z1} sta {c1},x @@ -1907,172 +2028,6 @@ ora #{c1} 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=_lo_vwuz1 -lda {z1} -//FRAGMENT vbuxx=_lo_vwuz1 -ldx {z1} -//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 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 @@ -2087,6 +2042,111 @@ tay //FRAGMENT 0_neq_vbuaa_then_la1 cmp #0 bne {la1} +//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 vbuxx_neq_0_then_la1 +cpx #0 +bne {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 vbuaa=_lo_vwuz1 +lda {z1} +//FRAGMENT vbuxx=_lo_vwuz1 +ldx {z1} //FRAGMENT vbuz1=pbuc1_derefidx_vbuaa tay lda {c1},y @@ -2162,6 +2222,22 @@ sta {z1} lda #0 adc {z2}+1 sta {z1}+1 +//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 vbuaa=pbuc1_derefidx_vbuz1_rol_4 ldy {z1} lda {c1},y @@ -2335,6 +2411,167 @@ tax tya ora {c1},x tay +//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_vbuz2 +txa +ora {z2} +sta {z1} +//FRAGMENT vbuz1=vbuxx_bor_vbuxx +stx {z1} //FRAGMENT vbuxx=vbuz1_minus_1 ldx {z1} dex @@ -2405,6 +2642,14 @@ lda {z1}+1 bne {la1} cpy {z1} bcc {la1} +//FRAGMENT vbuyy=_lo_pvoz1 +ldy {z1} +//FRAGMENT vbuyy=_hi_pvoz1 +ldy {z1}+1 +//FRAGMENT vbuyy=_lo_vwuz1 +ldy {z1} +//FRAGMENT vbuyy=_hi_vwuz1 +ldy {z1}+1 //FRAGMENT vbuyy=vbuz1 ldy {z1} //FRAGMENT vbuz1=vbuyy @@ -2430,26 +2675,41 @@ dey txa tay dey +//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 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 vbuyy=vbuxx +txa +tay //FRAGMENT vbuxx=vbuaa tax //FRAGMENT vbuyy=vbuaa tay -//FRAGMENT vbuyy=vbuxx -txa -tay +//FRAGMENT 0_eq_vbuxx_then_la1 +cpx #0 +beq {la1} +//FRAGMENT 0_eq_vbuyy_then_la1 +cpy #0 +beq {la1} //FRAGMENT vbuxx=pbuc1_derefidx_vbuxx lda {c1},x tax @@ -2480,57 +2740,27 @@ sta {c1},x //FRAGMENT pbuc1_derefidx_vbuxx=vbuyy tya sta {c1},x -//FRAGMENT vbuyy_lt_vbuz1_then_la1 -cpy {z1} -bcc {la1} -//FRAGMENT vbuyy=_lo_vwuz1 -ldy {z1} -//FRAGMENT vbuyy=_hi_vwuz1 -ldy {z1}+1 -//FRAGMENT vbuaa=vbuaa_bor_vbuyy -sty $ff -ora $ff -//FRAGMENT vbuz1=vbuaa_bor_vbuyy +//FRAGMENT vbuz1=vbuyy_bor_vbuxx +txa 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} +//FRAGMENT vwuz1=vwuz1_bxor_vwuz2 +lda {z1} +eor {z2} sta {z1} lda {z1}+1 -adc #0 +eor {z2}+1 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+ @@ -2543,9 +2773,22 @@ bne !- //FRAGMENT vbuz1=vbuz1_bor_vbuaa ora {z1} sta {z1} -//FRAGMENT vbuz1=vbuaa_bor_vbuz1 -ora {z1} +//FRAGMENT pwuz1=pwuc1_plus_vwuz1 +clc +lda {z1} +adc #<{c1} sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT pduz1=pduc1_plus_vwuz1 +clc +lda {z1} +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 //FRAGMENT pbuz1=pbuz1_plus_vbuaa clc adc {z1} @@ -2553,7 +2796,7 @@ sta {z1} bcc !+ inc {z1}+1 !: -//FRAGMENT vwuz1=vwuz1_plus_vwuz2 +//FRAGMENT pbuz1=pbuz2_plus_vwuz1 lda {z1} clc adc {z2} @@ -2561,225 +2804,18 @@ sta {z1} lda {z1}+1 adc {z2}+1 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=vwuc2 -lda #<{c2} -sta {c1} -lda #>{c2} -sta {c1}+1 -//FRAGMENT _deref_pwuc1=vbuc2 -lda #0 -sta {c1}+1 -lda #<{c2} -sta {c1} -//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 vwuz1=vwuz2_rol_8 -lda {z2} -sta {z1}+1 -lda #0 -sta {z1} -//FRAGMENT vwuz1=vwuz2_bor_vbuz3 -lda {z3} -ora {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vwuz1=vwuz2_ror_5 -lda {z2}+1 -lsr -sta {z1}+1 -lda {z2} -ror -sta {z1} -lsr {z1}+1 -ror {z1} -lsr {z1}+1 -ror {z1} -lsr {z1}+1 -ror {z1} -lsr {z1}+1 -ror {z1} -//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 vbuz1=_byte_vwuz2 -lda {z2} -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 -clc -lda {z2} -adc #<{c1} -sta {z1} -lda {z2}+1 -adc #>{c1} -sta {z1}+1 -//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 pbuz1_neq_vwuc1_then_la1 -lda {z1}+1 -cmp #>{c1} -bne {la1} -lda {z1} -cmp #<{c1} -bne {la1} -//FRAGMENT vduz1=_inc_vduz1 -inc {z1} -bne !+ -inc {z1}+1 -bne !+ -inc {z1}+2 -bne !+ -inc {z1}+3 -!: -//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 0_neq__deref_pbuz1_then_la1 -ldy #0 -lda ({z1}),y -cmp #0 -bne {la1} -//FRAGMENT vwuz1=vwuz2_bor_vbuxx -txa -ora {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vwuz1=vwuz2_bor_vbuyy -tya -ora {z2} -sta {z1} -lda {z2}+1 -sta {z1}+1 -//FRAGMENT vwuz1=_word_vbuaa -sta {z1} -lda #0 -sta {z1}+1 -//FRAGMENT vbuaa=_byte_vwuz1 -lda {z1} -//FRAGMENT vbuxx=_byte_vwuz1 -lda {z1} -tax -//FRAGMENT vbuyy=_byte_vwuz1 -lda {z1} -tay -//FRAGMENT vduz1=vduz2_plus_vduz1 -lda {z1} -clc -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 pbuz1=pbuz1_plus_vwuc1 -clc -lda {z1} -adc #<{c1} -sta {z1} -lda {z1}+1 -adc #>{c1} -sta {z1}+1 -//FRAGMENT vwuz1=vwuz1_rol_8 -lda {z1} -sta {z1}+1 -lda #0 -sta {z1} -//FRAGMENT vwuz1=vwuz1_bor_vbuxx -txa -ora {z1} -sta {z1} -//FRAGMENT vwuz1=vwuz1_rol_3 -asl {z1} -rol {z1}+1 -asl {z1} -rol {z1}+1 -asl {z1} -rol {z1}+1 -//FRAGMENT vwuz1=vwuz1_band_vwuc1 -lda {z1} -and #<{c1} -sta {z1} -lda {z1}+1 -and #>{c1} -sta {z1}+1 -//FRAGMENT vwuz1=vwuz1_ror_5 -lsr {z1}+1 -ror {z1} -lsr {z1}+1 -ror {z1} -lsr {z1}+1 -ror {z1} -lsr {z1}+1 -ror {z1} -lsr {z1}+1 -ror {z1} //FRAGMENT vbuz1=_deref_pbuc1_band__deref_pbuc2 lda {c1} and {c2} sta {z1} +//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 _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy {z2} lda {c1},y @@ -2809,9 +2845,38 @@ tax lda {c1} and {c2} tay +//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 pbuc1_derefidx_vbuaa=vbuaa tax sta {c1},x +//FRAGMENT vwuz1=_word_vbuaa +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vbuaa_eq_vbuc1_then_la1 +cmp #{c1} +beq {la1} //FRAGMENT vbuz1_lt_vbuaa_then_la1 cmp {z1} beq !+ @@ -2929,6 +2994,9 @@ sty $ff sec sbc $ff tax +//FRAGMENT vbuyy_lt_vbuz1_then_la1 +cpy {z1} +bcc {la1} //FRAGMENT vbuz1_ge_vbuxx_then_la1 lda {z1} stx $ff @@ -2953,11 +3021,16 @@ cpy {z1} beq !+ bcs {la1} !: +//FRAGMENT vbuyy_eq_vbuc1_then_la1 +cpy #{c1} +beq {la1} //FRAGMENT vwsz1=vwsc1 lda #<{c1} sta {z1} lda #>{c1} sta {z1}+1 +//FRAGMENT isr_rom_sys_cx16_entry + //FRAGMENT vwsz1=vwsz1_plus_vwsz2 lda {z1} clc @@ -3004,15 +3077,8 @@ ldy {c1}+1 sty $ff ldy #0 sta ($fe),y -//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 isr_rom_sys_cx16_exit +jmp $e034 //FRAGMENT vbuz1=_deref_(_deref_qbuc1) ldy {c1} sty $fe @@ -3512,11 +3578,6 @@ sta {z1}+2 lda {z1}+3 and #>{c1}>>$10 sta {z1}+3 -//FRAGMENT vduz1=vduz1_rol_1 -asl {z1} -rol {z1}+1 -rol {z1}+2 -rol {z1}+3 //FRAGMENT vduz1=vduz1_rol_8 lda {z1}+2 sta {z1}+3 @@ -3557,6 +3618,48 @@ sta {z1}+2 lda {z2}+3 adc #0 sta {z1}+3 +//FRAGMENT vwuz1=vwuz2_bor_vbuz3 +lda {z3} +ora {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_ror_5 +lda {z2}+1 +lsr +sta {z1}+1 +lda {z2} +ror +sta {z1} +lsr {z1}+1 +ror {z1} +lsr {z1}+1 +ror {z1} +lsr {z1}+1 +ror {z1} +lsr {z1}+1 +ror {z1} +//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 vbuz1=_byte_vwuz2 +lda {z2} +sta {z1} +//FRAGMENT vwuz1=vwuz2_band_vwuc1 +lda {z2} +and #<{c1} +sta {z1} +lda {z2}+1 +and #>{c1} +sta {z1}+1 //FRAGMENT vwuz1=vwuz2_plus_vwuc1 clc lda {z2} @@ -3579,20 +3682,6 @@ sta {z1}+2 lda {z1}+3 adc #0 sta {z1}+3 -//FRAGMENT vduz1=vduz1_plus_vduz2 -lda {z1} -clc -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 vbuz1=_byte_vduz2 lda {z2} sta {z1} @@ -3623,15 +3712,6 @@ lda {z1} cmp {z2} bcs {la1} !: -//FRAGMENT vwuz1_ge_vwuz2_then_la1 -lda {z2}+1 -cmp {z1}+1 -bne !+ -lda {z2} -cmp {z1} -beq {la1} -!: -bcc {la1} //FRAGMENT vduz1=vduz1_minus_vduz2 lda {z1} sec @@ -3646,14 +3726,31 @@ sta {z1}+2 lda {z1}+3 sbc {z2}+3 sta {z1}+3 -//FRAGMENT vwuz1=vwuz1_minus_vwuz2 -lda {z1} -sec -sbc {z2} +//FRAGMENT vwuz1=_word_vbuyy +tya sta {z1} -lda {z1}+1 -sbc {z2}+1 +lda #0 sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_bor_vbuxx +txa +ora {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_bor_vbuyy +tya +ora {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vbuaa=_byte_vwuz1 +lda {z1} +//FRAGMENT vbuxx=_byte_vwuz1 +lda {z1} +tax +//FRAGMENT vbuyy=_byte_vwuz1 +lda {z1} +tay //FRAGMENT vbuaa=_byte_vduz1 lda {z1} //FRAGMENT vbuxx=_byte_vduz1 @@ -3671,10 +3768,6 @@ tya asl asl sta {z1} -//FRAGMENT vbuaa=vbuz1_rol_2 -lda {z1} -asl -asl //FRAGMENT vbuaa=vbuaa_rol_2 asl asl @@ -3695,11 +3788,6 @@ tya asl asl tax -//FRAGMENT vbuyy=vbuz1_rol_2 -lda {z1} -asl -asl -tay //FRAGMENT vbuyy=vbuaa_rol_2 asl asl @@ -3745,108 +3833,72 @@ sta {z1}+3 //FRAGMENT vbuyy_ge_vbuz1_then_la1 cpy {z1} bcs {la1} -//FRAGMENT vwuz1_le_vwuc1_then_la1 -lda {z1}+1 -cmp #>{c1} -bne !+ +//FRAGMENT vwuz1=vwuz1_rol_8 lda {z1} -cmp #<{c1} -!: -bcc {la1} -beq {la1} -//FRAGMENT vbuz1=vwuz2_band_vbuc1 -lda #{c1} -and {z2} -sta {z1} -//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 +lda #0 sta {z1} -lsr {z1}+1 -ror {z1} -lsr {z1}+1 -ror {z1} -//FRAGMENT _deref_pwuz1=vwuz2 -ldy #0 -lda {z2} -sta ({z1}),y -iny -lda {z2}+1 -sta ({z1}),y -//FRAGMENT pbuz1=pbuc1_plus_vwuz2 -clc -lda {z2} -adc #<{c1} +//FRAGMENT vwuz1=vwuz1_bor_vbuxx +txa +ora {z1} 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 vwuz1=vwuz2_rol_2 -lda {z2} -asl -sta {z1} -lda {z2}+1 -rol -sta {z1}+1 +//FRAGMENT vwuz1=vwuz1_rol_3 asl {z1} rol {z1}+1 -//FRAGMENT pduz1=pduc1_plus_vwuz2 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +//FRAGMENT vwuz1=vwuz1_band_vwuc1 +lda {z1} +and #<{c1} +sta {z1} +lda {z1}+1 +and #>{c1} +sta {z1}+1 +//FRAGMENT vwuz1=vwuz1_plus_vwuc1 +clc +lda {z1} +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwuz1=vwuz1_ror_5 +lsr {z1}+1 +ror {z1} +lsr {z1}+1 +ror {z1} +lsr {z1}+1 +ror {z1} +lsr {z1}+1 +ror {z1} +lsr {z1}+1 +ror {z1} +//FRAGMENT _deref_pssc1=_deref_pssc2_memcpy_vbuc3 +ldy #{c3} +!: +lda {c2}-1,y +sta {c1}-1,y +dey +bne !- +//FRAGMENT vduz1=vbuc1 +lda #{c1} +sta {z1} +lda #0 +sta {z1}+1 +sta {z1}+2 +sta {z1}+3 +//FRAGMENT vduz1=vwuc1 +NO_SYNTHESIS +//FRAGMENT vduz1=vwsc1 +NO_SYNTHESIS +//FRAGMENT _deref_pwuc1=vbuc2 +lda #0 +sta {c1}+1 +lda #<{c2} +sta {c1} +//FRAGMENT pbuz1=pbuz2_plus_vwuc1 clc lda {z2} adc #<{c1} @@ -3854,73 +3906,110 @@ sta {z1} lda {z2}+1 adc #>{c1} sta {z1}+1 -//FRAGMENT _deref_pduz1=vduz2 +//FRAGMENT pbuz1_neq_vwuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bne {la1} +lda {z1} +cmp #<{c1} +bne {la1} +//FRAGMENT 0_neq__deref_pbuz1_then_la1 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 _deref_pbuc1_neq_pbuc2_derefidx_vbuz1_then_la1 -lda {c1} -ldy {z1} -cmp {c2},y +lda ({z1}),y +cmp #0 bne {la1} -//FRAGMENT vduz1=_dword_vwuz2 -lda {z2} +//FRAGMENT vduz1=vduz2_plus_vduz1 +lda {z1} +clc +adc {z2} sta {z1} -lda {z2}+1 +lda {z1}+1 +adc {z2}+1 sta {z1}+1 -lda #0 +lda {z1}+2 +adc {z2}+2 sta {z1}+2 +lda {z1}+3 +adc {z2}+3 sta {z1}+3 -//FRAGMENT vwuz1_neq_0_then_la1 +//FRAGMENT pbuz1=pbuz1_plus_vwuc1 +clc lda {z1} -ora {z1}+1 +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwuz1_neq_vbuc1_then_la1 +NO_SYNTHESIS +//FRAGMENT _deref_pwuc1=_deref_pwuz1 +ldy #0 +lda ({z1}),y +sta {c1} +iny +lda ({z1}),y +sta {c1}+1 +//FRAGMENT pbuz1=pbuz1_plus_vbuc1 +lda #{c1} +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+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 +NO_SYNTHESIS +//FRAGMENT _deref_pwuc1=_deref_pwuc1_plus_vbsc2 +NO_SYNTHESIS +//FRAGMENT _deref_pwuc1=_deref_pwuc1_plus_vwuc2 +lda #<{c2} +clc +adc {c1} +sta {c1} +lda #>{c2} +adc {c1}+1 +sta {c1}+1 +//FRAGMENT pbuz1_neq_pbuz2_then_la1 +lda {z1}+1 +cmp {z2}+1 bne {la1} -//FRAGMENT vbuz1_eq_0_then_la1 lda {z1} -beq {la1} -//FRAGMENT vwuz1=vwuz1_ror_1 -lsr {z1}+1 -ror {z1} -//FRAGMENT vwuz1=vwuz2_plus_1 +cmp {z2} +bne {la1} +//FRAGMENT pbuc1_derefidx_vbuz1=pbuc1_derefidx_vbuz1_plus_1 +ldy {z1} +lda {c1},y +inc +sta {c1},y +//FRAGMENT vbuz1=vbuz1_plus_2 +lda {z1} +clc +adc #2 +sta {z1} +//FRAGMENT vwuz1=_inc_vwuz2 clc lda {z2} adc #1 @@ -3928,360 +4017,271 @@ sta {z1} lda {z2}+1 adc #0 sta {z1}+1 -//FRAGMENT vwuz1=vwuz1_rol_1 -asl {z1} -rol {z1}+1 -//FRAGMENT vwuz1=vwuz1_bor_vbuc1 +//FRAGMENT vwuz1=vwuz2_band_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 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} +lda #0 +sta {z1}+1 +//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 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 pbuc1_derefidx_vbuaa=pbuc1_derefidx_vbuaa_plus_1 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 +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=vbuxx_plus_2 +inx +inx +//FRAGMENT pbuc1_derefidx_vbuaa=vbuc2 +tay +lda #{c2} +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuyy=vbuc2 +lda #{c2} +sta {c1},y +//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 -bpl {la1} -//FRAGMENT vbuz1=vbuaa_plus_vbuz2 +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 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=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} -//FRAGMENT vbuz1=vbuxx_plus_vbuz2 +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} -//FRAGMENT vbuz1=vbuyy_plus_vbuz2 +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} -//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 +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=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 -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 +ora #{c1} +sta {z1} +//FRAGMENT vbuaa=vbuyy_bor_vbuc1 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 +ora #{c1} +//FRAGMENT vbuxx=vbuyy_bor_vbuc1 tya -clc -adc {z1} -tay -//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuaa_then_la1 -tay -lda {c1} -cmp {c2},y +ora #{c1} +tax +//FRAGMENT vbuyy_neq_0_then_la1 +cpy #0 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 +//FRAGMENT vbuyy=vbuyy_plus_2 +iny +iny +//FRAGMENT vbuaa=vbuaa_bor_vbuyy +sty $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 +//FRAGMENT vbuz1=vbuaa_bor_vbuyy sty $ff ora $ff sta {z1} -//FRAGMENT vwuz1=vwuz1_bxor_vwuz2 -lda {z1} -eor {z2} +//FRAGMENT vwuz1=vwuz1_band_vbuc1 +lda #{c1} +and {z1} sta {z1} -lda {z1}+1 -eor {z2}+1 +lda #0 sta {z1}+1 -//FRAGMENT pduz1=pduc1_plus_vwuz1 +//FRAGMENT vduz1=vduz1_plus_vbuaa clc -lda {z1} -adc #<{c1} +adc {z1} sta {z1} lda {z1}+1 -adc #>{c1} +adc #0 sta {z1}+1 +lda {z1}+2 +adc #0 +sta {z1}+2 +lda {z1}+3 +adc #0 +sta {z1}+3 +//FRAGMENT vbuz1=vbuaa_bor_vbuz1 +ora {z1} +sta {z1} diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass2FixInlineConstructors.java b/src/main/java/dk/camelot64/kickc/passes/Pass2FixInlineConstructors.java index 2fae459c8..8b5f32037 100644 --- a/src/main/java/dk/camelot64/kickc/passes/Pass2FixInlineConstructors.java +++ b/src/main/java/dk/camelot64/kickc/passes/Pass2FixInlineConstructors.java @@ -46,14 +46,14 @@ public class Pass2FixInlineConstructors extends Pass2SsaOptimization { OperatorCast operatorCast = (OperatorCast) operator; SymbolType castToType = operatorCast.getToType(); if(SymbolType.WORD.equals(castToType)) { - addLiteralWordConstructor(Operators.WORD, SymbolType.WORD, SymbolType.BYTE, programExpression, listValues, currentStmt, stmtIt, currentBlock); + addLiteralWordConstructor(Operators.WORD, SymbolType.WORD, SymbolType.WORD, SymbolType.BYTE, programExpression, listValues, currentStmt, stmtIt, currentBlock); optimized.set(true); } else if(SymbolType.DWORD.equals(castToType)) { - addLiteralWordConstructor(Operators.DWORD, SymbolType.DWORD, SymbolType.WORD, programExpression, listValues, currentStmt, stmtIt, currentBlock); + addLiteralWordConstructor(Operators.DWORD, SymbolType.DWORD, SymbolType.DWORD, SymbolType.WORD, programExpression, listValues, currentStmt, stmtIt, currentBlock); optimized.set(true); } else if((castToType instanceof SymbolTypePointer)) { SymbolType castType = ((OperatorCastPtr) operator).getToType(); - addLiteralWordConstructor(Operators.WORD, castType, SymbolType.BYTE, programExpression, listValues, currentStmt, stmtIt, currentBlock); + addLiteralWordConstructor(Operators.WORD, castType, SymbolType.WORD, SymbolType.BYTE, programExpression, listValues, currentStmt, stmtIt, currentBlock); optimized.set(true); } } @@ -79,7 +79,7 @@ public class Pass2FixInlineConstructors extends Pass2SsaOptimization { * @param stmtIt * @param currentBlock */ - public void addLiteralWordConstructor(OperatorBinary constructOperator, SymbolType constructType, SymbolType subType, ProgramExpression programExpression, List listValues, Statement currentStmt, ListIterator stmtIt, ControlFlowBlock currentBlock) { + public void addLiteralWordConstructor(OperatorBinary constructOperator, SymbolType castType, SymbolType constructType, SymbolType subType, ProgramExpression programExpression, List listValues, Statement currentStmt, ListIterator stmtIt, ControlFlowBlock currentBlock) { // Convert list to a word constructor in a new tmp variable Scope currentScope = Pass2FixInlineConstructors.this.getScope().getScope(currentBlock.getScope()); Variable tmpVar = currentScope.addVariableIntermediate(); @@ -91,8 +91,11 @@ public class Pass2FixInlineConstructors extends Pass2SsaOptimization { stmtIt.add(assignment); // Move back before the current statement stmtIt.next(); - // Replace current value with the reference - programExpression.set(tmpVar.getRef()); + // Replace current value with the reference (adding a cast if needed) + if(constructType.equals(castType)) + programExpression.set(tmpVar.getRef()); + else + programExpression.set(new CastValue(castType, tmpVar.getRef())); Pass2FixInlineConstructors.this.getLog().append("Fixing inline constructor with " + assignment.toString()); } diff --git a/src/main/java/dk/camelot64/kickc/passes/PassNAddTypeConversionAssignment.java b/src/main/java/dk/camelot64/kickc/passes/PassNAddTypeConversionAssignment.java index a5d8185c8..7864ac50e 100644 --- a/src/main/java/dk/camelot64/kickc/passes/PassNAddTypeConversionAssignment.java +++ b/src/main/java/dk/camelot64/kickc/passes/PassNAddTypeConversionAssignment.java @@ -4,7 +4,10 @@ import dk.camelot64.kickc.model.CompileError; import dk.camelot64.kickc.model.Program; import dk.camelot64.kickc.model.iterator.ProgramExpressionBinary; import dk.camelot64.kickc.model.iterator.ProgramExpressionIterator; -import dk.camelot64.kickc.model.types.*; +import dk.camelot64.kickc.model.types.SymbolType; +import dk.camelot64.kickc.model.types.SymbolTypeConversion; +import dk.camelot64.kickc.model.types.SymbolTypeInference; +import dk.camelot64.kickc.model.types.SymbolTypePointer; import dk.camelot64.kickc.model.values.RValue; import dk.camelot64.kickc.model.values.ValueList; @@ -43,12 +46,7 @@ public class PassNAddTypeConversionAssignment extends Pass2SsaOptimization { if(!SymbolTypeConversion.assignmentTypeMatch(leftType, rightType) || SymbolType.VAR.equals(rightType)) { // Assigning a pointer from an unsigned word if(programExpression instanceof ProgramExpressionBinary.ProgramExpressionBinaryAssignmentLValue || programExpression instanceof ProgramExpressionBinary.ProgramExpressionBinaryCallParameter) { - if((leftType instanceof SymbolTypePointer) && SymbolType.isInteger(rightType)) { - if(!pass1 || getLog().isVerbosePass1CreateSsa()) - getLog().append("Adding pointer type conversion cast (" + leftType + ") " + binary.getLeft().toString() + " in " + currentStmt.toString(getProgram(), false)); - binary.addRightCast(leftType, stmtIt, currentBlock.getScope(), getScope()); - modified.set(true); - } else if((leftType instanceof SymbolTypePointer) && rightType instanceof SymbolTypePointer && SymbolType.VOID.equals(((SymbolTypePointer) leftType).getElementType())) { + if((leftType instanceof SymbolTypePointer) && rightType instanceof SymbolTypePointer && SymbolType.VOID.equals(((SymbolTypePointer) leftType).getElementType())) { if(!pass1 || getLog().isVerbosePass1CreateSsa()) getLog().append("Adding void pointer type conversion cast (" + leftType + ") " + binary.getRight().toString() + " in " + currentStmt.toString(getProgram(), false)); binary.addRightCast(leftType, stmtIt, currentBlock.getScope(), getScope()); diff --git a/src/main/kc/lib/conio-cx16.c b/src/main/kc/lib/conio-cx16.c index 09d7e75d4..23dca6fbd 100644 --- a/src/main/kc/lib/conio-cx16.c +++ b/src/main/kc/lib/conio-cx16.c @@ -340,7 +340,7 @@ unsigned byte scroll(unsigned byte onoff) { void screenlayer(unsigned byte layer) { conio_screen_layer = layer; CONIO_SCREEN_BANK = vera_layer_get_mapbase_bank(conio_screen_layer); - CONIO_SCREEN_TEXT = vera_layer_get_mapbase_offset(conio_screen_layer); + CONIO_SCREEN_TEXT = (char*)vera_layer_get_mapbase_offset(conio_screen_layer); conio_width = vera_layer_get_width(conio_screen_layer); conio_rowshift = vera_layer_get_rowshift(conio_screen_layer); conio_rowskip = vera_layer_get_rowskip(conio_screen_layer); diff --git a/src/main/kc/lib/cx16-bitmap.c b/src/main/kc/lib/cx16-bitmap.c index cd5f0f18a..031d8202f 100644 --- a/src/main/kc/lib/cx16-bitmap.c +++ b/src/main/kc/lib/cx16-bitmap.c @@ -95,7 +95,7 @@ void bitmap_clear() { word hdelta = hdeltas[(__bitmap_color_depth<<2)+__bitmap_hscale]; dword count = mul16u(hdelta,vdelta); char vbank = <(>__bitmap_address); - void* vdest = <__bitmap_address; + void* vdest = (void*) <__bitmap_address; memset_vram(vbank, vdest, 0, count); } diff --git a/src/main/kc/lib/cx16.c b/src/main/kc/lib/cx16.c index 29b633743..8423d920e 100644 --- a/src/main/kc/lib/cx16.c +++ b/src/main/kc/lib/cx16.c @@ -75,14 +75,14 @@ void memcpy_bank_to_vram(unsigned long vdest, unsigned long src, unsigned long n unsigned long end = src+num; char bank = (byte)(((((word)<(>beg)<<8)|>(>5)+((word)<(>beg)<<3)); - char* addr = ((PORT_A = (char)bank; // select the bank for(unsigned long pos=beg; posPORT_A = (char)++bank; // select the bank - addr = 0xA000; + addr = (char*)0xA000; } *VERA_DATA0 = *addr; addr++; @@ -168,7 +168,7 @@ char load_to_bank( char device, char* filename, dword address) { setnam(filename); setlfs(device); char bank = (byte)(((((word)<(>address)<<8)|>(>5)+((word)<(>address)<<3)); - char* addr = ((PORT_A = (char)bank; // select the bank return load(addr, 0); diff --git a/src/main/kc/lib/string.c b/src/main/kc/lib/string.c index dd0abd00a..39b959d8c 100644 --- a/src/main/kc/lib/string.c +++ b/src/main/kc/lib/string.c @@ -78,5 +78,5 @@ void *memchr(const void *str, char c, size_t n) { return ptr; ptr++; } - return 0; + return (void*)0; } \ No newline at end of file diff --git a/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java b/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java index 3b9315475..179b6ba54 100644 --- a/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java +++ b/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java @@ -4442,7 +4442,7 @@ public class TestProgramsFast extends TestPrograms { @Test public void testTypeMismatch() throws IOException { - assertError("typemismatch.c", "Type mismatch"); + assertError("typemismatch.c", "Type mismatch (byte) cannot be assigned from (word)"); } @Test diff --git a/src/test/kc/array-16bit-init.c b/src/test/kc/array-16bit-init.c index e3bdeb3cf..909e2f7fd 100644 --- a/src/test/kc/array-16bit-init.c +++ b/src/test/kc/array-16bit-init.c @@ -5,5 +5,5 @@ char* levelRowOff[31] = { 1, 2, 3 }; void main() { for(char c=0;c(plane_addr*4); dtvSetCpuBankSegment1(gfxbCpuBank++); - byte* gfxb = $4000 + (VERA_SPRITE_ATTR, VERA_SPRITE_ATTR, (char*)SPRITE_PIXELS_VRAM, SPRITE_PIXELS_VRAM, (char*)VERA_PALETTE, VERA_PALETTE, (char*)SIDBDRWD_LO = 1; // Transfer banked code/data to upper memory ($10000) - memcpy_dma4(1, 0x0000, 0, upperCodeData, MUSIC_END-MUSIC); + memcpy_dma4(1, (void*)0x0000, 0, upperCodeData, MUSIC_END-MUSIC); // Remap [$4000-$5fff] to point to [$10000-$11fff] memoryRemapBlock(0x40, 0x100); diff --git a/src/test/kc/examples/mega65/dypp65.c b/src/test/kc/examples/mega65/dypp65.c index 4085824e9..871860daf 100644 --- a/src/test/kc/examples/mega65/dypp65.c +++ b/src/test/kc/examples/mega65/dypp65.c @@ -66,7 +66,7 @@ void main() { // Fill the screen with 0 memset_dma(SCREEN, 0, 45*25*2); // Fill the colours with WHITE - directly into $ff80000 - memset_dma256(0xff,0x08,0x0000, WHITE, 45*25*2); + memset_dma256(0xff,0x08,(void*)0x0000, WHITE, 45*25*2); // Fill the charset with 0x55 memset_dma(CHARSET, 0x55, 45*32*8); diff --git a/src/test/kc/inline-function-level2.c b/src/test/kc/inline-function-level2.c index 6c064b38d..89d186dbe 100644 --- a/src/test/kc/inline-function-level2.c +++ b/src/test/kc/inline-function-level2.c @@ -1,15 +1,15 @@ // Inline functions in two levels void main() { - for(byte* sc = $400;sc<$400+1000;sc++) *sc = ' '; + for(byte* sc = (byte*)$400;sc<$400+1000;sc++) *sc = ' '; line(2, $40, 10, '*'); line(4, $80, 15, '.'); } -byte* cur_line = $400; +byte* cur_line = (byte*)$400; inline void line(byte xpos, byte xadd, byte ysize, byte ch) { - cur_line = $400; + cur_line = (byte*)$400; word pos = {xpos, 0}; for( byte i=0;ipos, ch); diff --git a/src/test/kc/inline-string-3.c b/src/test/kc/inline-string-3.c index fcf4df6fc..0696d21de 100644 --- a/src/test/kc/inline-string-3.c +++ b/src/test/kc/inline-string-3.c @@ -3,10 +3,10 @@ // Erroneously tries to inline the string completely leading to a CompileError void main() { const byte STRING[] = "camelot"z; - byte* const PTR = $9ffe; + byte* const PTR = (byte*)$9ffe; *PTR = STRING; byte* ptr = (byte*) { *(PTR+1), *PTR }; - byte* const SCREEN = $400; + byte* const SCREEN = (byte*)$400; *SCREEN = *ptr; } \ No newline at end of file diff --git a/src/test/kc/library-constructor-3.c b/src/test/kc/library-constructor-3.c index 1437d5f6d..0bdabe50c 100644 --- a/src/test/kc/library-constructor-3.c +++ b/src/test/kc/library-constructor-3.c @@ -12,7 +12,7 @@ void init_1(void) { } void init_2(void) { - SCREEN = 0x0400; + SCREEN = (char*)0x0400; } void main(void) { diff --git a/src/test/kc/millfork-benchmarks/linkedlist-kc.c b/src/test/kc/millfork-benchmarks/linkedlist-kc.c index 2384c45c6..f0fc820da 100644 --- a/src/test/kc/millfork-benchmarks/linkedlist-kc.c +++ b/src/test/kc/millfork-benchmarks/linkedlist-kc.c @@ -12,7 +12,7 @@ struct node* root; void init(void) { free_ = 0; - root = 0; + root = (void*)0; } struct node* alloc() { diff --git a/src/test/kc/problem-ma-var-overwrite.c b/src/test/kc/problem-ma-var-overwrite.c index c20e1aac6..3f777ca21 100644 --- a/src/test/kc/problem-ma-var-overwrite.c +++ b/src/test/kc/problem-ma-var-overwrite.c @@ -4,11 +4,11 @@ unsigned char *volatile h1; // This must be volatile because is used in an inte void test(unsigned char *videoMem, unsigned char *colorMem, unsigned char *other) { - unsigned char *diff; + unsigned int diff; __ma unsigned char *dst; // This must be declared as __ma because is used in an assembly routine... - diff = colorMem - videoMem; + diff = colorMem - videoMem; dst = other + ((unsigned int)diff); dst[0] = 1; @@ -21,5 +21,5 @@ void test(unsigned char *videoMem, unsigned char *colorMem, unsigned char *other void main(void) { - test(h1, 0xD800, 0xC000); + test(h1, (char*)0xD800, (char*)0xC000); } diff --git a/src/test/kc/semi-struct-2.c b/src/test/kc/semi-struct-2.c index e5a84f2b7..a9be61141 100644 --- a/src/test/kc/semi-struct-2.c +++ b/src/test/kc/semi-struct-2.c @@ -125,10 +125,10 @@ void main() { // Set all values in the passed struct // Sets the values to n, n+1, n... to help test that everything works as intended void initEntry(byte* entry, byte n) { - *entryBufDisk(entry) = 0x1111+n; - *entryBufEdit(entry) = 0x2222+n; + *entryBufDisk(entry) = (byte*)(0x1111+n); + *entryBufEdit(entry) = (byte*)(0x2222+n); *entryTsLen(entry) = 0x3333+n; - *entryTsOrder(entry) = 0x4444+n; + *entryTsOrder(entry) = (word*)(0x4444+n); *entryTLastLink(entry) = 0x55+n; *entrySLastLink(entry) = 0x66+n; *entryBFlag(entry) = 0x77+n; diff --git a/src/test/kc/sieve.c b/src/test/kc/sieve.c index 6ab366932..83c1ceedf 100644 --- a/src/test/kc/sieve.c +++ b/src/test/kc/sieve.c @@ -14,7 +14,7 @@ uint8_t* sieve = 0x1000; void main (void) { //Show lower case font - *D018 = toD018(SCREEN, 0x1800); + *D018 = toD018(SCREEN, (char*)0x1800); print_cls(); print_str("Sieve benchmark - calculating primes"); print_ln(); diff --git a/src/test/kc/struct-ptr-22.c b/src/test/kc/struct-ptr-22.c index 6cbe332b9..3576f8af6 100644 --- a/src/test/kc/struct-ptr-22.c +++ b/src/test/kc/struct-ptr-22.c @@ -15,7 +15,7 @@ ENTRY *file; int main(void) { file = files; - file->bufEdit = 0x4000; + file->bufEdit = (char*)0x4000; file->bufEdit[3] = 0xAA; // writes address 0x0000 (wrong!) ((char *)file->bufEdit)[4] = 0xCC; // writes address 0x4004 (right!) print_cls(); diff --git a/src/test/kc/struct-ptr-26.c b/src/test/kc/struct-ptr-26.c index ed4492c79..0947587c4 100644 --- a/src/test/kc/struct-ptr-26.c +++ b/src/test/kc/struct-ptr-26.c @@ -10,8 +10,8 @@ typedef struct fileentry ENTRY; void main(){ ENTRY *file; WORD uSize; - file = 0x4000; - file->bufEdit = 4; + file = (ENTRY *)0x4000; + file->bufEdit = (BYTE*)4; word* ptrw = (WORD *)(file->bufEdit + 30); uSize = *ptrw; print_uint(uSize); diff --git a/src/test/kc/struct-ptr-5.c b/src/test/kc/struct-ptr-5.c index 53a30e997..06c4647fd 100644 --- a/src/test/kc/struct-ptr-5.c +++ b/src/test/kc/struct-ptr-5.c @@ -5,7 +5,7 @@ struct Entry { struct Entry* next; }; -struct Entry* ENTRIES= 0x1000; +struct Entry* ENTRIES = (struct Entry*)0x1000; void main() { // Create a few (non-linear) linked entries @@ -17,11 +17,11 @@ void main() { entry0->value = 1; entry2->next = entry1; entry2->value = 2; - entry1->next = 0; + entry1->next = (struct Entry*)0; entry1->value = 3; // Run through the linked list - byte* const SCREEN = 0x0400; + byte* const SCREEN = (byte*)0x0400; byte idx = 0; struct Entry* entry = ENTRIES; diff --git a/src/test/kc/true-inline-words.c b/src/test/kc/true-inline-words.c index 9efb35017..360996ccc 100644 --- a/src/test/kc/true-inline-words.c +++ b/src/test/kc/true-inline-words.c @@ -4,12 +4,12 @@ void main() { byte b = 4; // constant byte word w = { b, 0 }; // constant inline word word w2 = (word){ 1, 1 } + w + (word){ 0, 0 }; // constant inline words inside expression - byte* sc = w2; // implicit cast to (byte*) + byte* sc = (byte*)w2; // cast to (byte*) *sc = bs[1]; // In the end $501 is set to 'c' // Test the result - byte* pos = $501; - byte* BG_COLOR = $d021; + byte* pos = (byte*)$501; + byte* BG_COLOR = (byte*)$d021; if(*pos=='m') { *BG_COLOR = 5; } else { diff --git a/src/test/kc/var-forward-problem2.c b/src/test/kc/var-forward-problem2.c index 2013c0f15..ec74effbd 100644 --- a/src/test/kc/var-forward-problem2.c +++ b/src/test/kc/var-forward-problem2.c @@ -1,7 +1,7 @@ // Illustrates the problem with variable forward references not working void main() { - screen = $400; + screen = (byte*)$400; b = 'a'; *screen = b; } diff --git a/src/test/kc/var-init-problem.c b/src/test/kc/var-init-problem.c index 4ccc84e5f..0cc5a0554 100644 --- a/src/test/kc/var-init-problem.c +++ b/src/test/kc/var-init-problem.c @@ -1,9 +1,9 @@ // Variables without initialization causes problems when compiling -byte* screen; +char* screen; void main() { - screen = $400; + screen = (char*)$400; *screen = 'a'; } \ No newline at end of file diff --git a/src/test/ref/array-16bit-init.asm b/src/test/ref/array-16bit-init.asm index 687e36f5b..9098467b6 100644 --- a/src/test/ref/array-16bit-init.asm +++ b/src/test/ref/array-16bit-init.asm @@ -19,7 +19,7 @@ main: { // } rts __b2: - // levelRowOff[c] = 12345 + // levelRowOff[c] = (char*)12345 txa asl tay diff --git a/src/test/ref/array-16bit-init.log b/src/test/ref/array-16bit-init.log index fba624751..13e08d43e 100644 --- a/src/test/ref/array-16bit-init.log +++ b/src/test/ref/array-16bit-init.log @@ -15,7 +15,7 @@ main::@1: scope:[main] from main main::@2 main::@2: scope:[main] from main::@1 main::c#3 = phi( main::@1/main::c#2 ) main::$3 = main::c#3 * SIZEOF_POINTER - levelRowOff[main::$3] = ((byte*)) $3039 + levelRowOff[main::$3] = (byte*)$3039 main::c#1 = ++ main::c#3 to:main::@1 main::@return: scope:[main] from main::@1 @@ -47,8 +47,6 @@ byte main::c#1 byte main::c#2 byte main::c#3 -Inlining cast levelRowOff[main::$3] = (byte*)$3039 -Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (byte*) 1 Simplifying constant pointer cast (byte*) 2 Simplifying constant pointer cast (byte*) 3 @@ -261,7 +259,7 @@ main: { rts // main::@2 __b2: - // levelRowOff[c] = 12345 + // levelRowOff[c] = (char*)12345 // [4] main::$3 = main::c#2 << 1 -- vbuaa=vbuxx_rol_1 txa asl diff --git a/src/test/ref/bitmap-line-anim-1.log b/src/test/ref/bitmap-line-anim-1.log index 4c02561a5..8d3cd17cf 100644 --- a/src/test/ref/bitmap-line-anim-1.log +++ b/src/test/ref/bitmap-line-anim-1.log @@ -1138,13 +1138,11 @@ Inferred type updated to word in bitmap_line::$20 = bitmap_line::dy#2 / 2 Inferred type updated to word in bitmap_line::$15 = bitmap_line::dx#3 / 2 Inferred type updated to byte in abs_u16::$1 = abs_u16::$0 & $80 Inferred type updated to byte in sgn_u16::$1 = sgn_u16::$0 & $80 -Adding pointer type conversion cast (byte*) bitmap_plot::$2 in bitmap_plot::$2 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] -Successful SSA optimization PassNAddTypeConversionAssignment Inversing boolean not [2] memset::$1 = memset::num#2 <= 0 from [1] memset::$0 = memset::num#2 > 0 Inversing boolean not [29] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [28] bitmap_init::$0 = bitmap_init::bits#1 == 0 Inversing boolean not [49] bitmap_init::$9 = bitmap_init::$7 != 7 from [48] bitmap_init::$8 = bitmap_init::$7 == 7 -Inversing boolean not [145] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [144] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1 -Inversing boolean not [165] bitmap_line::$23 = bitmap_line::dx#5 >= bitmap_line::e1#1 from [164] bitmap_line::$22 = bitmap_line::dx#5 < bitmap_line::e1#1 +Inversing boolean not [144] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [143] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1 +Inversing boolean not [164] bitmap_line::$23 = bitmap_line::dx#5 >= bitmap_line::e1#1 from [163] bitmap_line::$22 = bitmap_line::dx#5 < bitmap_line::e1#1 Successful SSA optimization Pass2UnaryNotSimplification Alias memset::return#0 = memset::str#2 memset::return#4 memset::return#1 Alias memset::str#3 = memset::str#4 @@ -1171,7 +1169,6 @@ Alias bitmap_gfx#1 = bitmap_gfx#7 bitmap_gfx#13 Alias bitmap_screen#1 = bitmap_screen#7 bitmap_screen#13 Alias bitmap_clear::col#0 = bitmap_clear::$1 Alias bitmap_gfx#14 = bitmap_gfx#8 -Alias bitmap_plot::plotter#0 = bitmap_plot::$2 Alias bitmap_line::x#0 = bitmap_line::x1#1 bitmap_line::x1#4 bitmap_line::x#16 bitmap_line::x1#3 bitmap_line::x#10 bitmap_line::x1#2 bitmap_line::x#19 bitmap_line::x#18 bitmap_line::x#17 bitmap_line::x#3 bitmap_line::x#14 bitmap_line::x#11 Alias bitmap_line::y#0 = bitmap_line::y1#1 bitmap_line::y1#2 bitmap_line::y#16 bitmap_line::y#10 bitmap_line::y1#5 bitmap_line::y1#4 bitmap_line::y#19 bitmap_line::y1#3 bitmap_line::y#18 bitmap_line::y#17 bitmap_line::y#3 bitmap_line::y#14 bitmap_line::y#11 Alias abs_u16::w#0 = bitmap_line::$0 @@ -1373,8 +1370,6 @@ Successful SSA optimization PassNEliminateEmptyStart Adding number conversion cast (unumber) 0 in [16] if(bitmap_init::x#1!=0) goto bitmap_init::@1 Adding number conversion cast (unumber) 0 in [28] if(bitmap_init::y#1!=0) goto bitmap_init::@5 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast [39] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 -Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification @@ -1400,7 +1395,7 @@ Successful SSA optimization Pass2ConstantIdentification Inlining Noop Cast [2] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 Inlining Noop Cast [4] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [35] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 keeping bitmap_plot::plotter#0 +Inlining Noop Cast [35] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$2 keeping bitmap_plot::plotter#0 Successful SSA optimization Pass2NopCastInlining Rewriting division to use shift [59] bitmap_line::e1#0 = bitmap_line::dy#0 / 2 Rewriting division to use shift [60] bitmap_line::e#0 = bitmap_line::dx#0 / 2 diff --git a/src/test/ref/bitmap-line-anim-2.log b/src/test/ref/bitmap-line-anim-2.log index cf32a249d..e920036df 100644 --- a/src/test/ref/bitmap-line-anim-2.log +++ b/src/test/ref/bitmap-line-anim-2.log @@ -1125,14 +1125,12 @@ Inferred type updated to word in bitmap_line::$20 = bitmap_line::dy#2 / 2 Inferred type updated to word in bitmap_line::$15 = bitmap_line::dx#3 / 2 Inferred type updated to byte in abs_u16::$1 = abs_u16::$0 & $80 Inferred type updated to byte in sgn_u16::$1 = sgn_u16::$0 & $80 -Adding pointer type conversion cast (byte*) bitmap_plot::$2 in bitmap_plot::$2 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] -Successful SSA optimization PassNAddTypeConversionAssignment Inversing boolean not [2] memset::$1 = memset::num#2 <= 0 from [1] memset::$0 = memset::num#2 > 0 Inversing boolean not [29] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [28] bitmap_init::$0 = bitmap_init::bits#1 == 0 Inversing boolean not [49] bitmap_init::$9 = bitmap_init::$7 != 7 from [48] bitmap_init::$8 = bitmap_init::$7 == 7 -Inversing boolean not [145] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [144] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1 -Inversing boolean not [165] bitmap_line::$23 = bitmap_line::dx#5 >= bitmap_line::e1#1 from [164] bitmap_line::$22 = bitmap_line::dx#5 < bitmap_line::e1#1 -Inversing boolean not [220] main::$4 = next#0 != $140 from [219] main::$3 = next#0 == $140 +Inversing boolean not [144] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [143] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1 +Inversing boolean not [164] bitmap_line::$23 = bitmap_line::dx#5 >= bitmap_line::e1#1 from [163] bitmap_line::$22 = bitmap_line::dx#5 < bitmap_line::e1#1 +Inversing boolean not [219] main::$4 = next#0 != $140 from [218] main::$3 = next#0 == $140 Successful SSA optimization Pass2UnaryNotSimplification Alias memset::return#0 = memset::str#2 memset::return#4 memset::return#1 Alias memset::str#3 = memset::str#4 @@ -1159,7 +1157,6 @@ Alias bitmap_gfx#1 = bitmap_gfx#7 bitmap_gfx#13 Alias bitmap_screen#1 = bitmap_screen#7 bitmap_screen#13 Alias bitmap_clear::col#0 = bitmap_clear::$1 Alias bitmap_gfx#14 = bitmap_gfx#8 -Alias bitmap_plot::plotter#0 = bitmap_plot::$2 Alias bitmap_line::x#0 = bitmap_line::x1#1 bitmap_line::x1#4 bitmap_line::x#16 bitmap_line::x1#3 bitmap_line::x#10 bitmap_line::x1#2 bitmap_line::x#19 bitmap_line::x#18 bitmap_line::x#17 bitmap_line::x#3 bitmap_line::x#14 bitmap_line::x#11 Alias bitmap_line::y#0 = bitmap_line::y1#1 bitmap_line::y1#2 bitmap_line::y#16 bitmap_line::y#10 bitmap_line::y1#5 bitmap_line::y1#4 bitmap_line::y#19 bitmap_line::y1#3 bitmap_line::y#18 bitmap_line::y#17 bitmap_line::y#3 bitmap_line::y#14 bitmap_line::y#11 Alias abs_u16::w#0 = bitmap_line::$0 @@ -1360,8 +1357,6 @@ Successful SSA optimization PassNEliminateEmptyStart Adding number conversion cast (unumber) 0 in [16] if(bitmap_init::x#1!=0) goto bitmap_init::@1 Adding number conversion cast (unumber) 0 in [28] if(bitmap_init::y#1!=0) goto bitmap_init::@5 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast [39] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 -Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification @@ -1390,7 +1385,7 @@ Successful SSA optimization Pass2ConstantIdentification Inlining Noop Cast [2] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 Inlining Noop Cast [4] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [35] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 keeping bitmap_plot::plotter#0 +Inlining Noop Cast [35] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$2 keeping bitmap_plot::plotter#0 Successful SSA optimization Pass2NopCastInlining Rewriting division to use shift [59] bitmap_line::e1#0 = bitmap_line::dy#0 / 2 Rewriting division to use shift [60] bitmap_line::e#0 = bitmap_line::dx#0 / 2 diff --git a/src/test/ref/bitmap-plot-0.log b/src/test/ref/bitmap-plot-0.log index fec6d3d63..7903ca31b 100644 --- a/src/test/ref/bitmap-plot-0.log +++ b/src/test/ref/bitmap-plot-0.log @@ -795,12 +795,10 @@ Inferred type updated to byte in main::toD0181_$2 = > main::toD0181_$1 Inferred type updated to byte in main::toD0181_$4 = main::toD0181_$3 / 4 Inferred type updated to byte in main::toD0181_$5 = main::toD0181_$4 & $f Inferred type updated to byte in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 -Adding pointer type conversion cast (byte*) bitmap_plot::$2 in bitmap_plot::$2 = bitmap_plot_yhi[bitmap_plot::y#1] w= bitmap_plot_ylo[bitmap_plot::y#1] -Successful SSA optimization PassNAddTypeConversionAssignment Inversing boolean not [2] memset::$1 = memset::num#2 <= 0 from [1] memset::$0 = memset::num#2 > 0 Inversing boolean not [29] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [28] bitmap_init::$0 = bitmap_init::bits#1 == 0 Inversing boolean not [49] bitmap_init::$9 = bitmap_init::$7 != 7 from [48] bitmap_init::$8 = bitmap_init::$7 == 7 -Inversing boolean not [166] irq::$0 = 0 == frame_cnt from [165] irq::$1 = 0 != frame_cnt +Inversing boolean not [165] irq::$0 = 0 == frame_cnt from [164] irq::$1 = 0 != frame_cnt Successful SSA optimization Pass2UnaryNotSimplification Alias memset::return#0 = memset::str#2 memset::return#4 memset::return#1 Alias memset::str#3 = memset::str#4 @@ -827,7 +825,6 @@ Alias bitmap_gfx#1 = bitmap_gfx#7 bitmap_gfx#13 Alias bitmap_screen#1 = bitmap_screen#7 bitmap_screen#13 Alias bitmap_clear::col#0 = bitmap_clear::$1 Alias bitmap_gfx#14 = bitmap_gfx#8 -Alias bitmap_plot::plotter#0 = bitmap_plot::$2 Alias bitmap_gfx#2 = bitmap_gfx#9 bitmap_gfx#34 bitmap_gfx#32 bitmap_gfx#27 bitmap_gfx#23 bitmap_gfx#20 Alias bitmap_screen#19 = bitmap_screen#2 bitmap_screen#9 bitmap_screen#33 bitmap_screen#31 bitmap_screen#26 bitmap_screen#22 Alias main::toD0181_screen#0 = main::toD0181_screen#1 @@ -958,8 +955,6 @@ Successful SSA optimization PassNEliminateUnusedVars Adding number conversion cast (unumber) 0 in if(bitmap_init::x#1!=0) goto bitmap_init::@1 Adding number conversion cast (unumber) 0 in if(bitmap_init::y#1!=0) goto bitmap_init::@5 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 -Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification @@ -1006,7 +1001,7 @@ Successful SSA optimization Pass2ConstantIdentification Inlining Noop Cast [2] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 Inlining Noop Cast [4] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [34] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 keeping bitmap_plot::plotter#0 +Inlining Noop Cast [34] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$2 keeping bitmap_plot::plotter#0 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings memset::num#0 Inlining constant with var siblings memset::c#1 diff --git a/src/test/ref/bitmap-plot-1.log b/src/test/ref/bitmap-plot-1.log index e6c6086f5..2f8204876 100644 --- a/src/test/ref/bitmap-plot-1.log +++ b/src/test/ref/bitmap-plot-1.log @@ -1876,8 +1876,6 @@ Inferred type updated to byte in main::toD0181_$5 = main::toD0181_$4 & $f Inferred type updated to byte in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 Inferred type updated to word in main::$8 = $a0 + main::$7 Inferred type updated to word in main::$12 = $64 + main::$11 -Adding pointer type conversion cast (byte*) bitmap_plot::$2 in bitmap_plot::$2 = bitmap_plot_yhi[bitmap_plot::y#1] w= bitmap_plot_ylo[bitmap_plot::y#1] -Successful SSA optimization PassNAddTypeConversionAssignment Inversing boolean not [9] divr16u::$4 = divr16u::$2 == 0 from [8] divr16u::$3 = divr16u::$2 != 0 Inversing boolean not [17] divr16u::$9 = divr16u::rem#6 < divr16u::divisor#2 from [16] divr16u::$8 = divr16u::rem#6 >= divr16u::divisor#2 Inversing boolean not [74] mul16u::$3 = mul16u::$1 == 0 from [73] mul16u::$2 = mul16u::$1 != 0 @@ -1889,9 +1887,9 @@ Inversing boolean not [228] sin16s::$15 = sin16s::isUpper#2 == 0 from [227] sin1 Inversing boolean not [256] memset::$1 = memset::num#2 <= 0 from [255] memset::$0 = memset::num#2 > 0 Inversing boolean not [283] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [282] bitmap_init::$0 = bitmap_init::bits#1 == 0 Inversing boolean not [303] bitmap_init::$9 = bitmap_init::$7 != 7 from [302] bitmap_init::$8 = bitmap_init::$7 == 7 -Inversing boolean not [416] main::$15 = main::idx_x#1 != $200 from [415] main::$14 = main::idx_x#1 == $200 -Inversing boolean not [421] main::$17 = main::idx_y#1 != $200 from [420] main::$16 = main::idx_y#1 == $200 -Inversing boolean not [446] irq::$0 = 0 == frame_cnt from [445] irq::$1 = 0 != frame_cnt +Inversing boolean not [415] main::$15 = main::idx_x#1 != $200 from [414] main::$14 = main::idx_x#1 == $200 +Inversing boolean not [420] main::$17 = main::idx_y#1 != $200 from [419] main::$16 = main::idx_y#1 == $200 +Inversing boolean not [445] irq::$0 = 0 == frame_cnt from [444] irq::$1 = 0 != frame_cnt Successful SSA optimization Pass2UnaryNotSimplification Alias divr16u::rem#0 = divr16u::$0 divr16u::rem#7 Alias divr16u::dividend#0 = divr16u::$6 divr16u::dividend#8 @@ -2003,7 +2001,6 @@ Alias bitmap_gfx#1 = bitmap_gfx#7 bitmap_gfx#13 Alias bitmap_screen#1 = bitmap_screen#7 bitmap_screen#13 Alias bitmap_clear::col#0 = bitmap_clear::$1 Alias bitmap_gfx#14 = bitmap_gfx#8 -Alias bitmap_plot::plotter#0 = bitmap_plot::$2 Alias bitmap_gfx#15 = bitmap_gfx#20 Alias bitmap_screen#14 = bitmap_screen#19 Alias rem16u#18 = rem16u#7 rem16u#43 rem16u#41 rem16u#39 rem16u#36 rem16u#32 rem16u#29 @@ -2210,8 +2207,6 @@ Adding number conversion cast (unumber) $10 in if(divr16u::i#1!=$10) goto divr16 Adding number conversion cast (unumber) 0 in if(bitmap_init::x#1!=0) goto bitmap_init::@1 Adding number conversion cast (unumber) 0 in if(bitmap_init::y#1!=0) goto bitmap_init::@5 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 -Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $10 Simplifying constant integer cast 0 Simplifying constant integer cast 0 @@ -2280,7 +2275,7 @@ Inlining Noop Cast [128] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 Inlining Noop Cast [130] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Inlining Noop Cast [71] sin16s_gen2::$8 = (signed word)sin16s_gen2::$7 keeping sin16s_gen2::$8 -Inlining Noop Cast [160] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 keeping bitmap_plot::plotter#0 +Inlining Noop Cast [160] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$2 keeping bitmap_plot::plotter#0 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift [173] main::$19 = main::idx_x#3 * SIZEOF_SIGNED_WORD Rewriting multiplication to use shift [183] main::$20 = main::idx_y#3 * SIZEOF_SIGNED_WORD diff --git a/src/test/ref/bitmap-plot-2.log b/src/test/ref/bitmap-plot-2.log index 68d8a8372..e9df3c7f7 100644 --- a/src/test/ref/bitmap-plot-2.log +++ b/src/test/ref/bitmap-plot-2.log @@ -1994,8 +1994,6 @@ Inferred type updated to byte in main::toD0181_$5 = main::toD0181_$4 & $f Inferred type updated to byte in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 Inferred type updated to signed word in main::$8 = $a0 + main::$7 Inferred type updated to signed word in main::$12 = $64 + main::$11 -Adding pointer type conversion cast (byte*) bitmap_plot::$2 in bitmap_plot::$2 = bitmap_plot_yhi[bitmap_plot::y#1] w= bitmap_plot_ylo[bitmap_plot::y#1] -Successful SSA optimization PassNAddTypeConversionAssignment Inversing boolean not [9] divr16u::$4 = divr16u::$2 == 0 from [8] divr16u::$3 = divr16u::$2 != 0 Inversing boolean not [17] divr16u::$9 = divr16u::rem#6 < divr16u::divisor#2 from [16] divr16u::$8 = divr16u::rem#6 >= divr16u::divisor#2 Inversing boolean not [74] mul16u::$3 = mul16u::$1 == 0 from [73] mul16u::$2 = mul16u::$1 != 0 @@ -2007,10 +2005,10 @@ Inversing boolean not [228] sin16s::$15 = sin16s::isUpper#2 == 0 from [227] sin1 Inversing boolean not [256] memset::$1 = memset::num#2 <= 0 from [255] memset::$0 = memset::num#2 > 0 Inversing boolean not [283] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [282] bitmap_init::$0 = bitmap_init::bits#1 == 0 Inversing boolean not [303] bitmap_init::$9 = bitmap_init::$7 != 7 from [302] bitmap_init::$8 = bitmap_init::$7 == 7 -Inversing boolean not [421] main::$16 = main::idx_x#1 < $200 from [420] main::$15 = main::idx_x#1 >= $200 -Inversing boolean not [426] main::$18 = main::idx_y#1 < $200 from [425] main::$17 = main::idx_y#1 >= $200 -Inversing boolean not [441] main::$24 = main::r#5 < (signed word)$200*$c+$100 from [440] main::$23 = main::r#5 >= (signed word)$200*$c+$100 -Inversing boolean not [466] irq::$0 = 0 == frame_cnt from [465] irq::$1 = 0 != frame_cnt +Inversing boolean not [420] main::$16 = main::idx_x#1 < $200 from [419] main::$15 = main::idx_x#1 >= $200 +Inversing boolean not [425] main::$18 = main::idx_y#1 < $200 from [424] main::$17 = main::idx_y#1 >= $200 +Inversing boolean not [440] main::$24 = main::r#5 < (signed word)$200*$c+$100 from [439] main::$23 = main::r#5 >= (signed word)$200*$c+$100 +Inversing boolean not [465] irq::$0 = 0 == frame_cnt from [464] irq::$1 = 0 != frame_cnt Successful SSA optimization Pass2UnaryNotSimplification Alias divr16u::rem#0 = divr16u::$0 divr16u::rem#7 Alias divr16u::dividend#0 = divr16u::$6 divr16u::dividend#8 @@ -2122,7 +2120,6 @@ Alias bitmap_gfx#1 = bitmap_gfx#7 bitmap_gfx#13 Alias bitmap_screen#1 = bitmap_screen#7 bitmap_screen#13 Alias bitmap_clear::col#0 = bitmap_clear::$1 Alias bitmap_gfx#14 = bitmap_gfx#8 -Alias bitmap_plot::plotter#0 = bitmap_plot::$2 Alias bitmap_gfx#15 = bitmap_gfx#20 Alias bitmap_screen#14 = bitmap_screen#19 Alias rem16u#18 = rem16u#7 rem16u#47 rem16u#45 rem16u#43 rem16u#40 rem16u#37 rem16u#33 @@ -2356,8 +2353,6 @@ Adding number conversion cast (unumber) $10 in if(divr16u::i#1!=$10) goto divr16 Adding number conversion cast (unumber) 0 in if(bitmap_init::x#1!=0) goto bitmap_init::@1 Adding number conversion cast (unumber) 0 in if(bitmap_init::y#1!=0) goto bitmap_init::@5 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 -Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $10 Simplifying constant integer cast 0 Simplifying constant integer cast 0 @@ -2428,7 +2423,7 @@ Inlining Noop Cast [128] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 Inlining Noop Cast [130] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Inlining Noop Cast [71] sin16s_gen2::$8 = (signed word)sin16s_gen2::$7 keeping sin16s_gen2::$8 -Inlining Noop Cast [160] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 keeping bitmap_plot::plotter#0 +Inlining Noop Cast [160] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$2 keeping bitmap_plot::plotter#0 Inlining Noop Cast [182] main::$28 = (signed word)main::$6 keeping main::$28 Inlining Noop Cast [185] main::x#0 = (word)main::$8 keeping main::x#0 Inlining Noop Cast [195] main::$29 = (signed word)main::$10 keeping main::$29 diff --git a/src/test/ref/bitmap-plot-3.log b/src/test/ref/bitmap-plot-3.log index a42ca1734..560a6edc0 100644 --- a/src/test/ref/bitmap-plot-3.log +++ b/src/test/ref/bitmap-plot-3.log @@ -1205,13 +1205,11 @@ Inferred type updated to word in main::$4 = main::$13 + $78 Inferred type updated to byte in main::$5 = main::a#2 + $20 Inferred type updated to word in main::$6 = main::$14 + $78 Inferred type updated to byte in main::$7 = main::a#2 + $20 -Adding pointer type conversion cast (byte*) bitmap_plot::$2 in bitmap_plot::$2 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] -Successful SSA optimization PassNAddTypeConversionAssignment Inversing boolean not [2] memset::$1 = memset::num#2 <= 0 from [1] memset::$0 = memset::num#2 > 0 Inversing boolean not [29] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [28] bitmap_init::$0 = bitmap_init::bits#1 == 0 Inversing boolean not [49] bitmap_init::$9 = bitmap_init::$7 != 7 from [48] bitmap_init::$8 = bitmap_init::$7 == 7 -Inversing boolean not [145] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [144] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1 -Inversing boolean not [165] bitmap_line::$23 = bitmap_line::dx#5 >= bitmap_line::e1#1 from [164] bitmap_line::$22 = bitmap_line::dx#5 < bitmap_line::e1#1 +Inversing boolean not [144] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [143] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1 +Inversing boolean not [164] bitmap_line::$23 = bitmap_line::dx#5 >= bitmap_line::e1#1 from [163] bitmap_line::$22 = bitmap_line::dx#5 < bitmap_line::e1#1 Successful SSA optimization Pass2UnaryNotSimplification Alias memset::return#0 = memset::str#2 memset::return#4 memset::return#1 Alias memset::str#3 = memset::str#4 @@ -1238,7 +1236,6 @@ Alias bitmap_gfx#1 = bitmap_gfx#7 bitmap_gfx#13 Alias bitmap_screen#1 = bitmap_screen#7 bitmap_screen#13 Alias bitmap_clear::col#0 = bitmap_clear::$1 Alias bitmap_gfx#14 = bitmap_gfx#8 -Alias bitmap_plot::plotter#0 = bitmap_plot::$2 Alias bitmap_line::x#0 = bitmap_line::x1#1 bitmap_line::x1#4 bitmap_line::x#16 bitmap_line::x1#3 bitmap_line::x#10 bitmap_line::x1#2 bitmap_line::x#19 bitmap_line::x#18 bitmap_line::x#17 bitmap_line::x#3 bitmap_line::x#14 bitmap_line::x#11 Alias bitmap_line::y#0 = bitmap_line::y1#1 bitmap_line::y1#2 bitmap_line::y#16 bitmap_line::y#10 bitmap_line::y1#5 bitmap_line::y1#4 bitmap_line::y#19 bitmap_line::y1#3 bitmap_line::y#18 bitmap_line::y#17 bitmap_line::y#3 bitmap_line::y#14 bitmap_line::y#11 Alias abs_u16::w#0 = bitmap_line::$0 @@ -1440,8 +1437,6 @@ Successful SSA optimization PassNEliminateEmptyStart Adding number conversion cast (unumber) 0 in [16] if(bitmap_init::x#1!=0) goto bitmap_init::@1 Adding number conversion cast (unumber) 0 in [28] if(bitmap_init::y#1!=0) goto bitmap_init::@5 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast [39] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 -Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification @@ -1485,7 +1480,7 @@ Successful SSA optimization Pass2ConstantIdentification Inlining Noop Cast [2] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 Inlining Noop Cast [4] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [35] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 keeping bitmap_plot::plotter#0 +Inlining Noop Cast [35] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$2 keeping bitmap_plot::plotter#0 Successful SSA optimization Pass2NopCastInlining Rewriting division to use shift [63] bitmap_line::e1#0 = bitmap_line::dy#0 / 2 Rewriting division to use shift [64] bitmap_line::e#0 = bitmap_line::dx#0 / 2 diff --git a/src/test/ref/c64dtv-8bppchunkystretch.log b/src/test/ref/c64dtv-8bppchunkystretch.log index abcb0aa56..5b270b772 100644 --- a/src/test/ref/c64dtv-8bppchunkystretch.log +++ b/src/test/ref/c64dtv-8bppchunkystretch.log @@ -127,7 +127,7 @@ gfx_init_chunky::@8: scope:[gfx_init_chunky] from gfx_init_chunky::@4 gfx_init_chunky::x#4 = phi( gfx_init_chunky::@4/gfx_init_chunky::x#5 ) gfx_init_chunky::gfxbCpuBank#5 = phi( gfx_init_chunky::@4/gfx_init_chunky::gfxbCpuBank#4 ) gfx_init_chunky::gfxbCpuBank#2 = ++ gfx_init_chunky::gfxbCpuBank#5 - gfx_init_chunky::gfxb#2 = ((byte*)) $4000 + gfx_init_chunky::gfxb#2 = (byte*)$4000 to:gfx_init_chunky::@3 gfx_init_chunky::@5: scope:[gfx_init_chunky] from gfx_init_chunky::@3 gfx_init_chunky::gfxbCpuBank#9 = phi( gfx_init_chunky::@3/gfx_init_chunky::gfxbCpuBank#8 ) @@ -301,7 +301,6 @@ Inlining cast *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = (unumber)(unumbe Inlining cast *VICII_MEMORY = (unumber)(byte)(word)CHUNKY&(unumber)$3fff/(unumber)$40|(unumber)>(word)CHUNKY&(unumber)$3fff/(unumber)4 Inlining cast *VICII_CONTROL1 = (unumber)VICII_DEN|VICII_ECM|VICII_RSEL|(unumber)3 Inlining cast *BORDER_COLOR = (unumber)0 -Inlining cast gfx_init_chunky::gfxb#2 = (byte*)$4000 Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (byte*) 53266 Simplifying constant pointer cast (byte*) 53280 diff --git a/src/test/ref/c64dtv-gfxexplorer.asm b/src/test/ref/c64dtv-gfxexplorer.asm index 33e5ac78f..5cf2bb55e 100644 --- a/src/test/ref/c64dtv-gfxexplorer.asm +++ b/src/test/ref/c64dtv-gfxexplorer.asm @@ -2845,7 +2845,7 @@ gfx_init_plane_fill: { lda.z __5+1 and #>$3fff sta.z __5+1 - // $4000 + (> 3 - [775] keyboard_event_pressed::row_bits#0 = keyboard_scan_values[keyboard_event_pressed::$0] - [776] keyboard_event_pressed::$1 = keyboard_event_pressed::keycode#4 & 7 - [777] keyboard_event_pressed::return#10 = keyboard_event_pressed::row_bits#0 & keyboard_matrix_col_bitmask[keyboard_event_pressed::$1] + [772] keyboard_event_pressed::keycode#4 = phi( keyboard_event_scan::@1/KEY_RSHIFT, keyboard_event_scan::@17/KEY_LSHIFT, keyboard_event_scan::@2/KEY_CTRL, keyboard_event_scan::@3/KEY_COMMODORE ) + [773] keyboard_event_pressed::$0 = keyboard_event_pressed::keycode#4 >> 3 + [774] keyboard_event_pressed::row_bits#0 = keyboard_scan_values[keyboard_event_pressed::$0] + [775] keyboard_event_pressed::$1 = keyboard_event_pressed::keycode#4 & 7 + [776] keyboard_event_pressed::return#10 = keyboard_event_pressed::row_bits#0 & keyboard_matrix_col_bitmask[keyboard_event_pressed::$1] to:keyboard_event_pressed::@return keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed - [778] return + [777] return to:@return word abs_u16(word abs_u16::w) abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12 - [779] abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/abs_u16::w#1 ) - [780] abs_u16::$0 = > abs_u16::w#2 - [781] abs_u16::$1 = abs_u16::$0 & $80 - [782] if(0!=abs_u16::$1) goto abs_u16::@1 + [778] abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/abs_u16::w#1 ) + [779] abs_u16::$0 = > abs_u16::w#2 + [780] abs_u16::$1 = abs_u16::$0 & $80 + [781] if(0!=abs_u16::$1) goto abs_u16::@1 to:abs_u16::@return abs_u16::@1: scope:[abs_u16] from abs_u16 - [783] abs_u16::return#2 = - abs_u16::w#2 + [782] abs_u16::return#2 = - abs_u16::w#2 to:abs_u16::@return abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1 - [784] abs_u16::return#4 = phi( abs_u16::@1/abs_u16::return#2, abs_u16/abs_u16::w#2 ) - [785] return + [783] abs_u16::return#4 = phi( abs_u16::@1/abs_u16::return#2, abs_u16/abs_u16::w#2 ) + [784] return to:@return word sgn_u16(word sgn_u16::w) sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14 - [786] sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/sgn_u16::w#1 ) - [787] sgn_u16::$0 = > sgn_u16::w#2 - [788] sgn_u16::$1 = sgn_u16::$0 & $80 - [789] if(0!=sgn_u16::$1) goto sgn_u16::@1 + [785] sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/sgn_u16::w#1 ) + [786] sgn_u16::$0 = > sgn_u16::w#2 + [787] sgn_u16::$1 = sgn_u16::$0 & $80 + [788] if(0!=sgn_u16::$1) goto sgn_u16::@1 to:sgn_u16::@return sgn_u16::@1: scope:[sgn_u16] from sgn_u16 - [790] phi() + [789] phi() to:sgn_u16::@return sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1 - [791] sgn_u16::return#4 = phi( sgn_u16::@1/-1, sgn_u16/1 ) - [792] return + [790] sgn_u16::return#4 = phi( sgn_u16::@1/-1, sgn_u16/1 ) + [791] return to:@return void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9 - [793] bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 ) - [793] bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 ) - [794] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] - [795] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 - [796] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 - [797] bitmap_plot::$1 = < bitmap_plot::x#4 - [798] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] + [792] bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 ) + [792] bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 ) + [793] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] + [794] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 + [795] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 + [796] bitmap_plot::$1 = < bitmap_plot::x#4 + [797] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot - [799] return + [798] return to:@return diff --git a/src/test/ref/c64dtv-gfxexplorer.log b/src/test/ref/c64dtv-gfxexplorer.log index 30127da18..7f67564cb 100644 --- a/src/test/ref/c64dtv-gfxexplorer.log +++ b/src/test/ref/c64dtv-gfxexplorer.log @@ -2225,7 +2225,7 @@ gfx_init_plane_8bppchunky::@8: scope:[gfx_init_plane_8bppchunky] from gfx_init_ gfx_init_plane_8bppchunky::x#4 = phi( gfx_init_plane_8bppchunky::@4/gfx_init_plane_8bppchunky::x#5 ) gfx_init_plane_8bppchunky::gfxbCpuBank#5 = phi( gfx_init_plane_8bppchunky::@4/gfx_init_plane_8bppchunky::gfxbCpuBank#4 ) gfx_init_plane_8bppchunky::gfxbCpuBank#2 = ++ gfx_init_plane_8bppchunky::gfxbCpuBank#5 - gfx_init_plane_8bppchunky::gfxb#2 = ((byte*)) $4000 + gfx_init_plane_8bppchunky::gfxb#2 = (byte*)$4000 to:gfx_init_plane_8bppchunky::@3 gfx_init_plane_8bppchunky::@5: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@3 gfx_init_plane_8bppchunky::gfxbCpuBank#9 = phi( gfx_init_plane_8bppchunky::@3/gfx_init_plane_8bppchunky::gfxbCpuBank#8 ) @@ -2558,8 +2558,8 @@ gfx_init_plane_fill::@5: scope:[gfx_init_plane_fill] from gfx_init_plane_fill gfx_init_plane_fill::gfxbCpuBank#1 = ++ gfx_init_plane_fill::gfxbCpuBank#2 gfx_init_plane_fill::$4 = < gfx_init_plane_fill::plane_addr#4 gfx_init_plane_fill::$5 = gfx_init_plane_fill::$4 & $3fff - gfx_init_plane_fill::$6 = $4000 + gfx_init_plane_fill::$5 - gfx_init_plane_fill::gfxb#0 = ((byte*)) gfx_init_plane_fill::$6 + gfx_init_plane_fill::$6 = (byte*)$4000 + gfx_init_plane_fill::$5 + gfx_init_plane_fill::gfxb#0 = gfx_init_plane_fill::$6 gfx_init_plane_fill::by#0 = 0 to:gfx_init_plane_fill::@1 gfx_init_plane_fill::@1: scope:[gfx_init_plane_fill] from gfx_init_plane_fill::@3 gfx_init_plane_fill::@5 @@ -4383,7 +4383,7 @@ number~ gfx_init_plane_fill::$1 number~ gfx_init_plane_fill::$2 word~ gfx_init_plane_fill::$4 number~ gfx_init_plane_fill::$5 -number~ gfx_init_plane_fill::$6 +byte*~ gfx_init_plane_fill::$6 bool~ gfx_init_plane_fill::$8 bool~ gfx_init_plane_fill::$9 byte gfx_init_plane_fill::bx @@ -5824,8 +5824,6 @@ Adding number conversion cast (unumber) gfx_init_plane_fill::$1 in gfx_init_plan Adding number conversion cast (unumber) gfx_init_plane_fill::$2 in gfx_init_plane_fill::$2 = < gfx_init_plane_fill::$1 Adding number conversion cast (unumber) $3fff in gfx_init_plane_fill::$5 = gfx_init_plane_fill::$4 & $3fff Adding number conversion cast (unumber) gfx_init_plane_fill::$5 in gfx_init_plane_fill::$5 = gfx_init_plane_fill::$4 & (unumber)$3fff -Adding number conversion cast (unumber) $4000 in gfx_init_plane_fill::$6 = $4000 + gfx_init_plane_fill::$5 -Adding number conversion cast (unumber) gfx_init_plane_fill::$6 in gfx_init_plane_fill::$6 = (unumber)$4000 + gfx_init_plane_fill::$5 Adding number conversion cast (unumber) $10000 in *DTV_GRAPHICS_VIC_BANK = (byte)(dword)FORM_CHARSET/$10000 Adding number conversion cast (unumber) $400 in *DTV_COLOR_BANK_LO = <(word)DTV_COLOR_BANK_DEFAULT/$400 Adding number conversion cast (unumber) $400 in *DTV_COLOR_BANK_HI = >(word)DTV_COLOR_BANK_DEFAULT/$400 @@ -5894,14 +5892,12 @@ Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = (unumbe Inlining cast *PROCPORT = (unumber)$32 Inlining cast *PROCPORT = (unumber)$37 Inlining cast *gfx_init_screen4::ch#2 = (unumber)0 -Inlining cast gfx_init_plane_8bppchunky::gfxb#2 = (byte*)$4000 Inlining cast *gfx_init_plane_horisontal::gfxa#3 = (unumber)0 Inlining cast *gfx_init_plane_horisontal::gfxa#4 = (unumber)$ff Inlining cast *gfx_init_plane_vertical::gfxb#2 = (unumber)$f Inlining cast gfx_init_plane_fill::fill#0 = (unumber)$1b Inlining cast gfx_init_plane_fill::fill#1 = (unumber)0 Inlining cast gfx_init_plane_fill::fill#2 = (unumber)$ff -Inlining cast gfx_init_plane_fill::gfxb#0 = (byte*)gfx_init_plane_fill::$6 Inlining cast *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = (unumber)3 Inlining cast *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = (unumber)(unumber)3^(byte)(word)FORM_CHARSET/(unumber)$4000 Inlining cast *DTV_CONTROL = (unumber)0 @@ -6166,7 +6162,7 @@ Simplifying constant integer cast 0 Simplifying constant integer cast $ff Simplifying constant integer cast 4 Simplifying constant integer cast $3fff -Simplifying constant integer cast $4000 +Simplifying constant pointer cast (byte*) 16384 Simplifying constant integer cast $10000 Simplifying constant integer cast $400 Simplifying constant integer cast $400 @@ -6409,7 +6405,6 @@ Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) $ff Finalized unsigned number type (byte) 4 Finalized unsigned number type (word) $3fff -Finalized unsigned number type (word) $4000 Finalized unsigned number type (dword) $10000 Finalized unsigned number type (word) $400 Finalized unsigned number type (word) $400 @@ -6510,14 +6505,10 @@ Inferred type updated to dword in gfx_init_plane_fill::$0 = gfx_init_plane_fill: Inferred type updated to word in gfx_init_plane_fill::$1 = > gfx_init_plane_fill::$0 Inferred type updated to byte in gfx_init_plane_fill::$2 = < gfx_init_plane_fill::$1 Inferred type updated to word in gfx_init_plane_fill::$5 = gfx_init_plane_fill::$4 & $3fff -Inferred type updated to word in gfx_init_plane_fill::$6 = $4000 + gfx_init_plane_fill::$5 Inferred type updated to byte in form_control::$13 = *form_control::field#1 | $80 Inferred type updated to byte in form_control::$12 = *form_control::field#2 & $7f Inferred type updated to byte in form_control::$14 = *form_control::field#3 & $7f Inferred type updated to byte in form_control::$19 = form_fields_cnt - 1 -Adding pointer type conversion cast (byte*) bitmap_plot::$2 in bitmap_plot::$2 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] -Adding pointer type conversion cast (byte*) form_field_ptr::$1 in form_field_ptr::$1 = form_line_hi[form_field_ptr::y#0] w= form_line_lo[form_field_ptr::y#0] -Successful SSA optimization PassNAddTypeConversionAssignment Inversing boolean not [6] memset::$1 = memset::num#3 <= 0 from [5] memset::$0 = memset::num#3 > 0 Inversing boolean not [32] print_str_lines::$0 = 0 == print_str_lines::ch#0 from [31] print_str_lines::$5 = 0 != print_str_lines::ch#0 Inversing boolean not [136] keyboard_event_scan::$18 = keyboard_event_scan::$16 == 0 from [135] keyboard_event_scan::$17 = keyboard_event_scan::$16 != 0 @@ -6528,33 +6519,33 @@ Inversing boolean not [190] keyboard_event_scan::$8 = keyboard_event_scan::$6 == Inversing boolean not [202] keyboard_event_scan::$11 = keyboard_event_scan::$9 == 0 from [201] keyboard_event_scan::$10 = keyboard_event_scan::$9 != 0 Inversing boolean not [244] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [243] bitmap_init::$0 = bitmap_init::bits#1 == 0 Inversing boolean not [264] bitmap_init::$9 = bitmap_init::$7 != 7 from [263] bitmap_init::$8 = bitmap_init::$7 == 7 -Inversing boolean not [360] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [359] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1 -Inversing boolean not [380] bitmap_line::$23 = bitmap_line::dx#5 >= bitmap_line::e1#1 from [379] bitmap_line::$22 = bitmap_line::dx#5 < bitmap_line::e1#1 -Inversing boolean not [503] get_plane::$14 = get_plane::idx#15 != $d from [502] get_plane::$13 = get_plane::idx#15 == $d -Inversing boolean not [528] get_VICII_screen::$5 = get_VICII_screen::idx#6 != 4 from [527] get_VICII_screen::$4 = get_VICII_screen::idx#6 == 4 -Inversing boolean not [541] get_VICII_charset::$2 = get_VICII_charset::idx#2 != 1 from [540] get_VICII_charset::$1 = get_VICII_charset::idx#2 == 1 -Inversing boolean not [657] gfx_mode::$1 = *form_ctrl_line == 0 from [656] gfx_mode::$0 = *form_ctrl_line != 0 -Inversing boolean not [661] gfx_mode::$3 = *form_ctrl_borof == 0 from [660] gfx_mode::$2 = *form_ctrl_borof != 0 -Inversing boolean not [668] gfx_mode::$5 = *form_ctrl_hicol == 0 from [667] gfx_mode::$4 = *form_ctrl_hicol != 0 -Inversing boolean not [675] gfx_mode::$7 = *form_ctrl_overs == 0 from [674] gfx_mode::$6 = *form_ctrl_overs != 0 -Inversing boolean not [682] gfx_mode::$9 = *form_ctrl_colof == 0 from [681] gfx_mode::$8 = *form_ctrl_colof != 0 -Inversing boolean not [689] gfx_mode::$11 = *form_ctrl_chunk == 0 from [688] gfx_mode::$10 = *form_ctrl_chunk != 0 -Inversing boolean not [698] gfx_mode::$13 = *form_ctrl_ecm == 0 from [697] gfx_mode::$12 = *form_ctrl_ecm != 0 -Inversing boolean not [705] gfx_mode::$15 = *form_ctrl_bmm == 0 from [704] gfx_mode::$14 = *form_ctrl_bmm != 0 -Inversing boolean not [714] gfx_mode::$17 = *form_ctrl_mcm == 0 from [713] gfx_mode::$16 = *form_ctrl_mcm != 0 -Inversing boolean not [866] gfx_mode::$81 = gfx_mode::keyboard_event#0 != KEY_SPACE from [865] gfx_mode::$80 = gfx_mode::keyboard_event#0 == KEY_SPACE -Inversing boolean not [1060] gfx_init_plane_8bppchunky::$3 = gfx_init_plane_8bppchunky::gfxb#3 != $8000 from [1059] gfx_init_plane_8bppchunky::$2 = gfx_init_plane_8bppchunky::gfxb#3 == $8000 -Inversing boolean not [1180] gfx_init_plane_charset8::$4 = gfx_init_plane_charset8::$2 == 0 from [1179] gfx_init_plane_charset8::$3 = gfx_init_plane_charset8::$2 != 0 -Inversing boolean not [1322] form_mode::$13 = form_mode::$11 == 0 from [1321] form_mode::$12 = form_mode::$11 != 0 -Inversing boolean not [1326] form_mode::$15 = form_mode::preset_current#2 == *form_preset from [1325] form_mode::$14 = form_mode::preset_current#2 != *form_preset -Inversing boolean not [1396] form_control::$2 = form_cursor_count#4 >= 0 from [1395] form_control::$1 = form_cursor_count#4 < 0 -Inversing boolean not [1421] form_control::$7 = form_control::key_event#0 != KEY_CRSR_DOWN from [1420] form_control::$6 = form_control::key_event#0 == KEY_CRSR_DOWN -Inversing boolean not [1425] form_control::$9 = form_control::key_event#1 != KEY_CRSR_RIGHT from [1424] form_control::$8 = form_control::key_event#1 == KEY_CRSR_RIGHT -Inversing boolean not [1436] form_control::$21 = form_field_idx#4 != form_fields_cnt from [1435] form_control::$20 = form_field_idx#4 == form_fields_cnt -Inversing boolean not [1441] form_control::$18 = form_field_idx#5 != $ff from [1440] form_control::$17 = form_field_idx#5 == $ff -Inversing boolean not [1460] form_control::$11 = form_control::key_event#2 != KEY_SPACE from [1459] form_control::$10 = form_control::key_event#2 == KEY_SPACE -Inversing boolean not [1469] form_control::$27 = form_fields_val[form_field_idx#20] <= form_fields_max[form_field_idx#20] from [1468] form_control::$26 = form_fields_val[form_field_idx#20] > form_fields_max[form_field_idx#20] -Inversing boolean not [1474] form_control::$25 = form_fields_val[form_field_idx#21] != $ff from [1473] form_control::$24 = form_fields_val[form_field_idx#21] == $ff +Inversing boolean not [359] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [358] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1 +Inversing boolean not [379] bitmap_line::$23 = bitmap_line::dx#5 >= bitmap_line::e1#1 from [378] bitmap_line::$22 = bitmap_line::dx#5 < bitmap_line::e1#1 +Inversing boolean not [502] get_plane::$14 = get_plane::idx#15 != $d from [501] get_plane::$13 = get_plane::idx#15 == $d +Inversing boolean not [527] get_VICII_screen::$5 = get_VICII_screen::idx#6 != 4 from [526] get_VICII_screen::$4 = get_VICII_screen::idx#6 == 4 +Inversing boolean not [540] get_VICII_charset::$2 = get_VICII_charset::idx#2 != 1 from [539] get_VICII_charset::$1 = get_VICII_charset::idx#2 == 1 +Inversing boolean not [656] gfx_mode::$1 = *form_ctrl_line == 0 from [655] gfx_mode::$0 = *form_ctrl_line != 0 +Inversing boolean not [660] gfx_mode::$3 = *form_ctrl_borof == 0 from [659] gfx_mode::$2 = *form_ctrl_borof != 0 +Inversing boolean not [667] gfx_mode::$5 = *form_ctrl_hicol == 0 from [666] gfx_mode::$4 = *form_ctrl_hicol != 0 +Inversing boolean not [674] gfx_mode::$7 = *form_ctrl_overs == 0 from [673] gfx_mode::$6 = *form_ctrl_overs != 0 +Inversing boolean not [681] gfx_mode::$9 = *form_ctrl_colof == 0 from [680] gfx_mode::$8 = *form_ctrl_colof != 0 +Inversing boolean not [688] gfx_mode::$11 = *form_ctrl_chunk == 0 from [687] gfx_mode::$10 = *form_ctrl_chunk != 0 +Inversing boolean not [697] gfx_mode::$13 = *form_ctrl_ecm == 0 from [696] gfx_mode::$12 = *form_ctrl_ecm != 0 +Inversing boolean not [704] gfx_mode::$15 = *form_ctrl_bmm == 0 from [703] gfx_mode::$14 = *form_ctrl_bmm != 0 +Inversing boolean not [713] gfx_mode::$17 = *form_ctrl_mcm == 0 from [712] gfx_mode::$16 = *form_ctrl_mcm != 0 +Inversing boolean not [865] gfx_mode::$81 = gfx_mode::keyboard_event#0 != KEY_SPACE from [864] gfx_mode::$80 = gfx_mode::keyboard_event#0 == KEY_SPACE +Inversing boolean not [1059] gfx_init_plane_8bppchunky::$3 = gfx_init_plane_8bppchunky::gfxb#3 != $8000 from [1058] gfx_init_plane_8bppchunky::$2 = gfx_init_plane_8bppchunky::gfxb#3 == $8000 +Inversing boolean not [1179] gfx_init_plane_charset8::$4 = gfx_init_plane_charset8::$2 == 0 from [1178] gfx_init_plane_charset8::$3 = gfx_init_plane_charset8::$2 != 0 +Inversing boolean not [1321] form_mode::$13 = form_mode::$11 == 0 from [1320] form_mode::$12 = form_mode::$11 != 0 +Inversing boolean not [1325] form_mode::$15 = form_mode::preset_current#2 == *form_preset from [1324] form_mode::$14 = form_mode::preset_current#2 != *form_preset +Inversing boolean not [1394] form_control::$2 = form_cursor_count#4 >= 0 from [1393] form_control::$1 = form_cursor_count#4 < 0 +Inversing boolean not [1419] form_control::$7 = form_control::key_event#0 != KEY_CRSR_DOWN from [1418] form_control::$6 = form_control::key_event#0 == KEY_CRSR_DOWN +Inversing boolean not [1423] form_control::$9 = form_control::key_event#1 != KEY_CRSR_RIGHT from [1422] form_control::$8 = form_control::key_event#1 == KEY_CRSR_RIGHT +Inversing boolean not [1434] form_control::$21 = form_field_idx#4 != form_fields_cnt from [1433] form_control::$20 = form_field_idx#4 == form_fields_cnt +Inversing boolean not [1439] form_control::$18 = form_field_idx#5 != $ff from [1438] form_control::$17 = form_field_idx#5 == $ff +Inversing boolean not [1458] form_control::$11 = form_control::key_event#2 != KEY_SPACE from [1457] form_control::$10 = form_control::key_event#2 == KEY_SPACE +Inversing boolean not [1467] form_control::$27 = form_fields_val[form_field_idx#20] <= form_fields_max[form_field_idx#20] from [1466] form_control::$26 = form_fields_val[form_field_idx#20] > form_fields_max[form_field_idx#20] +Inversing boolean not [1472] form_control::$25 = form_fields_val[form_field_idx#21] != $ff from [1471] form_control::$24 = form_fields_val[form_field_idx#21] == $ff Successful SSA optimization Pass2UnaryNotSimplification Alias memset::return#0 = memset::str#3 memset::return#5 memset::return#1 Alias memset::str#4 = memset::str#5 @@ -6638,7 +6629,6 @@ Alias bitmap_gfx#1 = bitmap_gfx#11 bitmap_gfx#21 Alias bitmap_screen#1 = bitmap_screen#11 bitmap_screen#21 Alias bitmap_clear::col#0 = bitmap_clear::$1 Alias bitmap_gfx#12 = bitmap_gfx#22 -Alias bitmap_plot::plotter#0 = bitmap_plot::$2 Alias bitmap_line::x#0 = bitmap_line::x1#1 bitmap_line::x1#4 bitmap_line::x#16 bitmap_line::x1#3 bitmap_line::x#10 bitmap_line::x1#2 bitmap_line::x#19 bitmap_line::x#18 bitmap_line::x#17 bitmap_line::x#3 bitmap_line::x#14 bitmap_line::x#11 Alias bitmap_line::y#0 = bitmap_line::y1#1 bitmap_line::y1#2 bitmap_line::y#16 bitmap_line::y#10 bitmap_line::y1#5 bitmap_line::y1#4 bitmap_line::y#19 bitmap_line::y1#3 bitmap_line::y#18 bitmap_line::y#17 bitmap_line::y#3 bitmap_line::y#14 bitmap_line::y#11 Alias abs_u16::w#0 = bitmap_line::$0 @@ -6843,6 +6833,7 @@ Alias gfx_init_plane_charset8::col#1 = gfx_init_plane_charset8::col#7 gfx_init_p Alias gfx_init_plane_fill::gfxbCpuBank#0 = gfx_init_plane_fill::$2 gfx_init_plane_fill::gfxbCpuBank#2 Alias gfx_init_plane_fill::plane_addr#3 = gfx_init_plane_fill::plane_addr#4 Alias gfx_init_plane_fill::fill#6 = gfx_init_plane_fill::fill#7 +Alias gfx_init_plane_fill::gfxb#0 = gfx_init_plane_fill::$6 Alias gfx_init_plane_fill::by#2 = gfx_init_plane_fill::by#3 Alias gfx_init_plane_fill::fill#3 = gfx_init_plane_fill::fill#5 Alias gfx_init_plane_fill::gfxb#1 = gfx_init_plane_fill::gfxb#4 @@ -6894,7 +6885,6 @@ Alias form_field_idx#15 = form_field_idx#3 Alias form_mode::preset_current#1 = form_mode::preset_current#8 form_mode::preset_current#7 Alias form_set_screen::line#0 = form_set_screen::screen#1 Alias form_set_screen::line#1 = form_set_screen::$2 -Alias form_field_ptr::line#0 = form_field_ptr::$1 Alias form_field_ptr::return#0 = form_field_ptr::field#0 form_field_ptr::$0 form_field_ptr::return#4 form_field_ptr::return#1 Alias form_render_values::idx#2 = form_render_values::idx#3 form_render_values::idx#4 Alias form_field_ptr::return#2 = form_field_ptr::return#5 @@ -7291,32 +7281,32 @@ Simple Condition gfx_init_plane_charset8::$4 [888] if(gfx_init_plane_charset8::$ Simple Condition gfx_init_plane_charset8::$6 [896] if(gfx_init_plane_charset8::cp#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@3 Simple Condition gfx_init_plane_charset8::$7 [899] if(gfx_init_plane_charset8::cr#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@2 Simple Condition gfx_init_plane_charset8::$8 [902] if(gfx_init_plane_charset8::ch#1!=rangelast(0,$ff)) goto gfx_init_plane_charset8::@1 -Simple Condition gfx_init_plane_fill::$8 [938] if(gfx_init_plane_fill::bx#1!=rangelast(0,$27)) goto gfx_init_plane_fill::@2 -Simple Condition gfx_init_plane_fill::$9 [941] if(gfx_init_plane_fill::by#1!=rangelast(0,$c7)) goto gfx_init_plane_fill::@1 -Simple Condition form_mode::$9 [984] if(form_mode::i#1!=rangelast(0,$f)) goto form_mode::@1 -Simple Condition form_mode::$10 [992] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto form_mode::@4 -Simple Condition form_mode::$13 [998] if(form_mode::$11==0) goto form_mode::@6 -Simple Condition form_mode::$15 [1000] if(form_mode::preset_current#6==*form_preset) goto form_mode::@3 -Simple Condition form_set_screen::$3 [1019] if(form_set_screen::y#1!=rangelast(0,$18)) goto form_set_screen::@1 -Simple Condition form_render_values::$0 [1031] if(form_render_values::idx#2=0) goto form_control::@1 -Simple Condition form_control::$3 [1049] if(form_cursor_count#16=0) goto form_control::@1 +Simple Condition form_control::$3 [1048] if(form_cursor_count#16(word)DTV_COLOR_BANK_DEFAULT/$400 in [969] *DTV_COLOR_BANK_HI = >(word)DTV_COLOR_BANK_DEFAULT/$400 -Simplifying constant evaluating to zero (byte)(word)FORM_CHARSET/$4000 in [971] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = 3^(byte)(word)FORM_CHARSET/$4000 -Simplifying constant evaluating to zero (word)DTV_COLOR_BANK_DEFAULT/$400 in [968] *DTV_COLOR_BANK_HI = >(word)DTV_COLOR_BANK_DEFAULT/$400 +Simplifying constant evaluating to zero (byte)(word)FORM_CHARSET/$4000 in [970] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = 3^(byte)(word)FORM_CHARSET/$4000 +Simplifying constant evaluating to zero > 3 - [775] keyboard_event_pressed::row_bits#0 = keyboard_scan_values[keyboard_event_pressed::$0] - [776] keyboard_event_pressed::$1 = keyboard_event_pressed::keycode#4 & 7 - [777] keyboard_event_pressed::return#10 = keyboard_event_pressed::row_bits#0 & keyboard_matrix_col_bitmask[keyboard_event_pressed::$1] + [772] keyboard_event_pressed::keycode#4 = phi( keyboard_event_scan::@1/KEY_RSHIFT, keyboard_event_scan::@17/KEY_LSHIFT, keyboard_event_scan::@2/KEY_CTRL, keyboard_event_scan::@3/KEY_COMMODORE ) + [773] keyboard_event_pressed::$0 = keyboard_event_pressed::keycode#4 >> 3 + [774] keyboard_event_pressed::row_bits#0 = keyboard_scan_values[keyboard_event_pressed::$0] + [775] keyboard_event_pressed::$1 = keyboard_event_pressed::keycode#4 & 7 + [776] keyboard_event_pressed::return#10 = keyboard_event_pressed::row_bits#0 & keyboard_matrix_col_bitmask[keyboard_event_pressed::$1] to:keyboard_event_pressed::@return keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed - [778] return + [777] return to:@return word abs_u16(word abs_u16::w) abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12 - [779] abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/abs_u16::w#1 ) - [780] abs_u16::$0 = > abs_u16::w#2 - [781] abs_u16::$1 = abs_u16::$0 & $80 - [782] if(0!=abs_u16::$1) goto abs_u16::@1 + [778] abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/abs_u16::w#1 ) + [779] abs_u16::$0 = > abs_u16::w#2 + [780] abs_u16::$1 = abs_u16::$0 & $80 + [781] if(0!=abs_u16::$1) goto abs_u16::@1 to:abs_u16::@return abs_u16::@1: scope:[abs_u16] from abs_u16 - [783] abs_u16::return#2 = - abs_u16::w#2 + [782] abs_u16::return#2 = - abs_u16::w#2 to:abs_u16::@return abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1 - [784] abs_u16::return#4 = phi( abs_u16::@1/abs_u16::return#2, abs_u16/abs_u16::w#2 ) - [785] return + [783] abs_u16::return#4 = phi( abs_u16::@1/abs_u16::return#2, abs_u16/abs_u16::w#2 ) + [784] return to:@return word sgn_u16(word sgn_u16::w) sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14 - [786] sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/sgn_u16::w#1 ) - [787] sgn_u16::$0 = > sgn_u16::w#2 - [788] sgn_u16::$1 = sgn_u16::$0 & $80 - [789] if(0!=sgn_u16::$1) goto sgn_u16::@1 + [785] sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/sgn_u16::w#1 ) + [786] sgn_u16::$0 = > sgn_u16::w#2 + [787] sgn_u16::$1 = sgn_u16::$0 & $80 + [788] if(0!=sgn_u16::$1) goto sgn_u16::@1 to:sgn_u16::@return sgn_u16::@1: scope:[sgn_u16] from sgn_u16 - [790] phi() + [789] phi() to:sgn_u16::@return sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1 - [791] sgn_u16::return#4 = phi( sgn_u16::@1/-1, sgn_u16/1 ) - [792] return + [790] sgn_u16::return#4 = phi( sgn_u16::@1/-1, sgn_u16/1 ) + [791] return to:@return void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9 - [793] bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 ) - [793] bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 ) - [794] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] - [795] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 - [796] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 - [797] bitmap_plot::$1 = < bitmap_plot::x#4 - [798] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] + [792] bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 ) + [792] bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 ) + [793] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] + [794] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 + [795] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 + [796] bitmap_plot::$1 = < bitmap_plot::x#4 + [797] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot - [799] return + [798] return to:@return @@ -11030,13 +11016,12 @@ byte gfx_init_plane_fill::by byte gfx_init_plane_fill::by#1 15001.5 byte gfx_init_plane_fill::by#4 3333.6666666666665 byte gfx_init_plane_fill::fill -byte gfx_init_plane_fill::fill#6 5555.611111111111 +byte gfx_init_plane_fill::fill#6 5882.411764705882 byte* gfx_init_plane_fill::gfxb -word gfx_init_plane_fill::gfxb#0 1001.0 +byte* gfx_init_plane_fill::gfxb#0 2002.0 byte* gfx_init_plane_fill::gfxb#1 42000.600000000006 byte* gfx_init_plane_fill::gfxb#2 155002.0 byte* gfx_init_plane_fill::gfxb#3 21003.0 -byte* gfx_init_plane_fill::gfxb#6 2002.0 byte gfx_init_plane_fill::gfxbCpuBank byte gfx_init_plane_fill::gfxbCpuBank#0 2002.0 dword gfx_init_plane_fill::plane_addr @@ -11480,7 +11465,7 @@ Initial phi equivalence classes [ gfx_init_plane_fill::plane_addr#3 ] [ gfx_init_plane_fill::fill#6 ] [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] -[ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 ] +[ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#0 ] [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ] [ memset::num#3 ] [ memset::str#4 memset::str#0 ] @@ -11620,7 +11605,6 @@ Added variable gfx_init_plane_fill::$1 to live range equivalence class [ gfx_ini Added variable gfx_init_plane_fill::gfxbCpuBank#0 to live range equivalence class [ gfx_init_plane_fill::gfxbCpuBank#0 ] Added variable gfx_init_plane_fill::$4 to live range equivalence class [ gfx_init_plane_fill::$4 ] Added variable gfx_init_plane_fill::$5 to live range equivalence class [ gfx_init_plane_fill::$5 ] -Added variable gfx_init_plane_fill::gfxb#0 to live range equivalence class [ gfx_init_plane_fill::gfxb#0 ] Added variable memset::end#0 to live range equivalence class [ memset::end#0 ] Added variable form_field_ptr::y#0 to live range equivalence class [ form_field_ptr::y#0 ] Added variable form_field_ptr::line#0 to live range equivalence class [ form_field_ptr::line#0 ] @@ -11728,7 +11712,7 @@ Complete equivalence classes [ gfx_init_plane_fill::plane_addr#3 ] [ gfx_init_plane_fill::fill#6 ] [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] -[ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 ] +[ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#0 ] [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ] [ memset::num#3 ] [ memset::str#4 memset::str#0 ] @@ -11868,7 +11852,6 @@ Complete equivalence classes [ gfx_init_plane_fill::gfxbCpuBank#0 ] [ gfx_init_plane_fill::$4 ] [ gfx_init_plane_fill::$5 ] -[ gfx_init_plane_fill::gfxb#0 ] [ memset::end#0 ] [ form_field_ptr::y#0 ] [ form_field_ptr::line#0 ] @@ -11975,7 +11958,7 @@ Allocated zp[1]:118 [ dtvSetCpuBankSegment1::cpuBankIdx#13 dtvSetCpuBankSegment1 Allocated zp[4]:119 [ gfx_init_plane_fill::plane_addr#3 ] Allocated zp[1]:123 [ gfx_init_plane_fill::fill#6 ] Allocated zp[1]:124 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] -Allocated zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 ] +Allocated zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#0 ] Allocated zp[1]:127 [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ] Allocated zp[2]:128 [ memset::num#3 ] Allocated zp[2]:130 [ memset::str#4 memset::str#0 ] @@ -12115,25 +12098,24 @@ Allocated zp[2]:320 [ gfx_init_plane_fill::$1 ] Allocated zp[1]:322 [ gfx_init_plane_fill::gfxbCpuBank#0 ] Allocated zp[2]:323 [ gfx_init_plane_fill::$4 ] Allocated zp[2]:325 [ gfx_init_plane_fill::$5 ] -Allocated zp[2]:327 [ gfx_init_plane_fill::gfxb#0 ] -Allocated zp[2]:329 [ memset::end#0 ] -Allocated zp[1]:331 [ form_field_ptr::y#0 ] -Allocated zp[2]:332 [ form_field_ptr::line#0 ] -Allocated zp[1]:334 [ form_field_ptr::x#0 ] -Allocated zp[2]:335 [ form_field_ptr::return#0 ] -Allocated zp[1]:337 [ keyboard_matrix_read::return#0 ] -Allocated zp[1]:338 [ keyboard_event_pressed::$0 ] -Allocated zp[1]:339 [ keyboard_event_pressed::row_bits#0 ] -Allocated zp[1]:340 [ keyboard_event_pressed::$1 ] -Allocated zp[1]:341 [ keyboard_event_pressed::return#10 ] -Allocated zp[1]:342 [ abs_u16::$0 ] -Allocated zp[1]:343 [ abs_u16::$1 ] -Allocated zp[1]:344 [ sgn_u16::$0 ] -Allocated zp[1]:345 [ sgn_u16::$1 ] -Allocated zp[2]:346 [ bitmap_plot::plotter#0 ] -Allocated zp[2]:348 [ bitmap_plot::$0 ] -Allocated zp[2]:350 [ bitmap_plot::plotter#1 ] -Allocated zp[1]:352 [ bitmap_plot::$1 ] +Allocated zp[2]:327 [ memset::end#0 ] +Allocated zp[1]:329 [ form_field_ptr::y#0 ] +Allocated zp[2]:330 [ form_field_ptr::line#0 ] +Allocated zp[1]:332 [ form_field_ptr::x#0 ] +Allocated zp[2]:333 [ form_field_ptr::return#0 ] +Allocated zp[1]:335 [ keyboard_matrix_read::return#0 ] +Allocated zp[1]:336 [ keyboard_event_pressed::$0 ] +Allocated zp[1]:337 [ keyboard_event_pressed::row_bits#0 ] +Allocated zp[1]:338 [ keyboard_event_pressed::$1 ] +Allocated zp[1]:339 [ keyboard_event_pressed::return#10 ] +Allocated zp[1]:340 [ abs_u16::$0 ] +Allocated zp[1]:341 [ abs_u16::$1 ] +Allocated zp[1]:342 [ sgn_u16::$0 ] +Allocated zp[1]:343 [ sgn_u16::$1 ] +Allocated zp[2]:344 [ bitmap_plot::plotter#0 ] +Allocated zp[2]:346 [ bitmap_plot::$0 ] +Allocated zp[2]:348 [ bitmap_plot::plotter#1 ] +Allocated zp[1]:350 [ bitmap_plot::$1 ] REGISTER UPLIFT POTENTIAL REGISTERS Equivalence Class zp[1]:297 [ bitmap_init::$4 ] has ALU potential. Statement [1] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( [ ] { } ) always clobbers reg byte a @@ -12419,43 +12401,42 @@ Statement [720] gfx_init_plane_fill::$0 = gfx_init_plane_fill::plane_addr#3 << 2 Statement [721] gfx_init_plane_fill::$1 = > gfx_init_plane_fill::$0 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$1 ] ( gfx_init:6::gfx_init_plane_vertical2:40::gfx_init_plane_fill:418 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$1 ] { { dtvSetCpuBankSegment1::cpuBankIdx#11 = dtvSetCpuBankSegment1::cpuBankIdx#13 gfx_init_plane_fill::gfxbCpuBank#0 } } gfx_init:6::gfx_init_plane_blank:42::gfx_init_plane_fill:421 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$1 ] { { dtvSetCpuBankSegment1::cpuBankIdx#11 = dtvSetCpuBankSegment1::cpuBankIdx#13 gfx_init_plane_fill::gfxbCpuBank#0 } } gfx_init:6::gfx_init_plane_full:44::gfx_init_plane_fill:424 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$1 ] { { dtvSetCpuBankSegment1::cpuBankIdx#11 = dtvSetCpuBankSegment1::cpuBankIdx#13 gfx_init_plane_fill::gfxbCpuBank#0 } } ) always clobbers reg byte a Statement [725] gfx_init_plane_fill::$4 = < gfx_init_plane_fill::plane_addr#3 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$4 ] ( gfx_init:6::gfx_init_plane_vertical2:40::gfx_init_plane_fill:418 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$4 ] { } gfx_init:6::gfx_init_plane_blank:42::gfx_init_plane_fill:421 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$4 ] { } gfx_init:6::gfx_init_plane_full:44::gfx_init_plane_fill:424 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$4 ] { } ) always clobbers reg byte a Statement [726] gfx_init_plane_fill::$5 = gfx_init_plane_fill::$4 & $3fff [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] ( gfx_init:6::gfx_init_plane_vertical2:40::gfx_init_plane_fill:418 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] { } gfx_init:6::gfx_init_plane_blank:42::gfx_init_plane_fill:421 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] { } gfx_init:6::gfx_init_plane_full:44::gfx_init_plane_fill:424 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] { } ) always clobbers reg byte a -Statement [727] gfx_init_plane_fill::gfxb#0 = $4000 + gfx_init_plane_fill::$5 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#0 ] ( gfx_init:6::gfx_init_plane_vertical2:40::gfx_init_plane_fill:418 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#0 ] { } gfx_init:6::gfx_init_plane_blank:42::gfx_init_plane_fill:421 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#0 ] { } gfx_init:6::gfx_init_plane_full:44::gfx_init_plane_fill:424 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#0 ] { } ) always clobbers reg byte a -Statement [728] gfx_init_plane_fill::gfxb#6 = (byte*)gfx_init_plane_fill::gfxb#0 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#6 ] ( gfx_init:6::gfx_init_plane_vertical2:40::gfx_init_plane_fill:418 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#6 ] { } gfx_init:6::gfx_init_plane_blank:42::gfx_init_plane_fill:421 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#6 ] { } gfx_init:6::gfx_init_plane_full:44::gfx_init_plane_fill:424 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#6 ] { } ) always clobbers reg byte a -Statement [731] *gfx_init_plane_fill::gfxb#2 = gfx_init_plane_fill::fill#6 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] ( gfx_init:6::gfx_init_plane_vertical2:40::gfx_init_plane_fill:418 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] { } gfx_init:6::gfx_init_plane_blank:42::gfx_init_plane_fill:421 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] { } gfx_init:6::gfx_init_plane_full:44::gfx_init_plane_fill:424 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] { } ) always clobbers reg byte a reg byte y +Statement [727] gfx_init_plane_fill::gfxb#0 = (byte*) 16384 + gfx_init_plane_fill::$5 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#0 ] ( gfx_init:6::gfx_init_plane_vertical2:40::gfx_init_plane_fill:418 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#0 ] { } gfx_init:6::gfx_init_plane_blank:42::gfx_init_plane_fill:421 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#0 ] { } gfx_init:6::gfx_init_plane_full:44::gfx_init_plane_fill:424 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#0 ] { } ) always clobbers reg byte a +Statement [730] *gfx_init_plane_fill::gfxb#2 = gfx_init_plane_fill::fill#6 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] ( gfx_init:6::gfx_init_plane_vertical2:40::gfx_init_plane_fill:418 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] { } gfx_init:6::gfx_init_plane_blank:42::gfx_init_plane_fill:421 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] { } gfx_init:6::gfx_init_plane_full:44::gfx_init_plane_fill:424 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:123 [ gfx_init_plane_fill::fill#6 ] Removing always clobbered register reg byte a as potential for zp[1]:124 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] Removing always clobbered register reg byte y as potential for zp[1]:124 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] Removing always clobbered register reg byte a as potential for zp[1]:127 [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ] Removing always clobbered register reg byte y as potential for zp[1]:127 [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ] -Statement [741] if(memset::num#3<=0) goto memset::@return [ memset::num#3 memset::str#4 memset::c#5 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::num#3 memset::str#4 memset::c#5 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::num#3 memset::str#4 memset::c#5 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::num#3 memset::str#4 memset::c#5 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::num#3 memset::str#4 memset::c#5 ] { } ) always clobbers reg byte a +Statement [740] if(memset::num#3<=0) goto memset::@return [ memset::num#3 memset::str#4 memset::c#5 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::num#3 memset::str#4 memset::c#5 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::num#3 memset::str#4 memset::c#5 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::num#3 memset::str#4 memset::c#5 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::num#3 memset::str#4 memset::c#5 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:132 [ memset::c#5 ] -Statement [742] memset::end#0 = (byte*)memset::str#4 + memset::num#3 [ memset::str#4 memset::c#5 memset::end#0 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::str#4 memset::c#5 memset::end#0 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::str#4 memset::c#5 memset::end#0 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::str#4 memset::c#5 memset::end#0 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::str#4 memset::c#5 memset::end#0 ] { } ) always clobbers reg byte a -Statement [743] memset::dst#4 = (byte*)memset::str#4 [ memset::c#5 memset::end#0 memset::dst#4 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#4 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#4 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::c#5 memset::end#0 memset::dst#4 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::c#5 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a -Statement [745] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#5 memset::end#0 memset::dst#2 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#2 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#2 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::c#5 memset::end#0 memset::dst#2 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a -Statement [747] *memset::dst#2 = memset::c#5 [ memset::c#5 memset::end#0 memset::dst#2 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#2 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#2 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::c#5 memset::end#0 memset::dst#2 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Statement [741] memset::end#0 = (byte*)memset::str#4 + memset::num#3 [ memset::str#4 memset::c#5 memset::end#0 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::str#4 memset::c#5 memset::end#0 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::str#4 memset::c#5 memset::end#0 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::str#4 memset::c#5 memset::end#0 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::str#4 memset::c#5 memset::end#0 ] { } ) always clobbers reg byte a +Statement [742] memset::dst#4 = (byte*)memset::str#4 [ memset::c#5 memset::end#0 memset::dst#4 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#4 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#4 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::c#5 memset::end#0 memset::dst#4 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::c#5 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [744] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#5 memset::end#0 memset::dst#2 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#2 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#2 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::c#5 memset::end#0 memset::dst#2 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [746] *memset::dst#2 = memset::c#5 [ memset::c#5 memset::end#0 memset::dst#2 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#2 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#2 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::c#5 memset::end#0 memset::dst#2 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:132 [ memset::c#5 ] -Statement [749] *print_char_cursor#43 = print_char::ch#0 [ print_char_cursor#43 ] ( form_mode:9::print_str_lines:51::print_char:442 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_line_cursor#1 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#43 ] { { print_char::ch#0 = print_str_lines::ch#0 } } form_mode:9::print_str_lines:57::print_char:442 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_line_cursor#1 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#43 ] { { print_char::ch#0 = print_str_lines::ch#0 } } ) always clobbers reg byte y +Statement [748] *print_char_cursor#43 = print_char::ch#0 [ print_char_cursor#43 ] ( form_mode:9::print_str_lines:51::print_char:442 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_line_cursor#1 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#43 ] { { print_char::ch#0 = print_str_lines::ch#0 } } form_mode:9::print_str_lines:57::print_char:442 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_line_cursor#1 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#43 ] { { print_char::ch#0 = print_str_lines::ch#0 } } ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp[1]:266 [ print_str_lines::ch#0 ] -Statement [754] print_line_cursor#2 = print_line_cursor#22 + $28 [ print_line_cursor#2 print_char_cursor#44 ] ( form_mode:9::print_str_lines:51::print_ln:446 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_str_lines::str#0 print_line_cursor#2 print_char_cursor#44 ] { } form_mode:9::print_str_lines:57::print_ln:446 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_str_lines::str#0 print_line_cursor#2 print_char_cursor#44 ] { } ) always clobbers reg byte a -Statement [755] if(print_line_cursor#2> 3 [ keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ( gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:590 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:590 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:596 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:596 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:602 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:602 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:608 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:608 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } ) always clobbers reg byte a +Statement [760] form_field_ptr::return#0 = (byte*)form_field_ptr::line#0 + form_field_ptr::x#0 [ form_field_ptr::line#0 form_field_ptr::x#0 form_field_ptr::return#0 ] ( form_mode:9::form_render_values:61::form_field_ptr:463 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 form_render_values::idx#2 form_field_ptr::line#0 form_field_ptr::x#0 form_field_ptr::return#0 ] { { form_field_ptr::field_idx#0 = form_field_ptr::field_idx#2 form_render_values::idx#2 } } form_mode:9::form_render_values:95::form_field_ptr:463 [ form_cursor_count#17 keyboard_events_size#25 form_field_idx#19 form_mode::preset_current#1 form_render_values::idx#2 form_field_ptr::line#0 form_field_ptr::x#0 form_field_ptr::return#0 ] { { form_field_ptr::field_idx#0 = form_field_ptr::field_idx#2 form_render_values::idx#2 } } form_mode:9::form_control:86::form_field_ptr:484 [ form_mode::preset_current#6 form_cursor_count#23 keyboard_events_size#49 form_field_idx#30 form_field_ptr::line#0 form_field_ptr::x#0 form_field_ptr::return#0 ] { { form_control::return#0 = form_control::return#2 } { form_field_ptr::field_idx#1 = form_field_ptr::field_idx#2 form_field_idx#30 } { form_field_ptr::return#0 = form_field_ptr::return#3 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:332 [ form_field_ptr::x#0 ] +Statement [764] if(0!=*print_str_at::str#2) goto print_str_at::@2 [ print_str_at::str#2 print_str_at::at#2 ] ( form_mode:9::render_preset_name:63::print_str_at:481 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] { { render_preset_name::idx#0 = render_preset_name::idx#10 } { print_str_at::str#1 = render_preset_name::name#13 } } form_mode:9::render_preset_name:97::print_str_at:481 [ form_cursor_count#17 keyboard_events_size#25 form_field_idx#19 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] { { render_preset_name::idx#1 = render_preset_name::idx#10 } { print_str_at::str#1 = render_preset_name::name#13 } } ) always clobbers reg byte a reg byte y +Statement [766] *print_str_at::at#2 = *print_str_at::str#2 [ print_str_at::str#2 print_str_at::at#2 ] ( form_mode:9::render_preset_name:63::print_str_at:481 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] { { render_preset_name::idx#0 = render_preset_name::idx#10 } { print_str_at::str#1 = render_preset_name::name#13 } } form_mode:9::render_preset_name:97::print_str_at:481 [ form_cursor_count#17 keyboard_events_size#25 form_field_idx#19 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] { { render_preset_name::idx#1 = render_preset_name::idx#10 } { print_str_at::str#1 = render_preset_name::name#13 } } ) always clobbers reg byte a reg byte y +Statement [769] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] [ ] ( gfx_mode:11::keyboard_event_scan:225::keyboard_matrix_read:581 [ form_cursor_count#17 form_field_idx#19 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#107 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_matrix_read::rowid#0 = keyboard_event_scan::row#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_matrix_read:581 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#107 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_matrix_read::rowid#0 = keyboard_event_scan::row#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [770] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( gfx_mode:11::keyboard_event_scan:225::keyboard_matrix_read:581 [ form_cursor_count#17 form_field_idx#19 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#107 keyboard_matrix_read::return#0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_matrix_read::rowid#0 = keyboard_event_scan::row#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_matrix_read:581 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#107 keyboard_matrix_read::return#0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_matrix_read::rowid#0 = keyboard_event_scan::row#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [773] keyboard_event_pressed::$0 = keyboard_event_pressed::keycode#4 >> 3 [ keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ( gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:590 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:590 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:596 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:596 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:602 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:602 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:608 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:608 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:142 [ keyboard_event_pressed::keycode#4 ] -Statement [776] keyboard_event_pressed::$1 = keyboard_event_pressed::keycode#4 & 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:590 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:590 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:596 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:596 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:602 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:602 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:608 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:608 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:339 [ keyboard_event_pressed::row_bits#0 ] -Statement [777] keyboard_event_pressed::return#10 = keyboard_event_pressed::row_bits#0 & keyboard_matrix_col_bitmask[keyboard_event_pressed::$1] [ keyboard_event_pressed::return#10 ] ( gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:590 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:590 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:596 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:596 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:602 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:602 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:608 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:608 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } ) always clobbers reg byte a -Statement [783] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::abs_u16:665 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::abs_u16:669 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { abs_u16::w#1 = abs_u16::w#2 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a -Statement [794] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:687 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:704 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:714 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [795] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:687 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:704 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:714 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [796] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:687 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:704 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:714 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [798] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] [ ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:687 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:704 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:714 [ gfx_init_VICII_bitmap::l#2 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a reg byte y +Statement [775] keyboard_event_pressed::$1 = keyboard_event_pressed::keycode#4 & 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:590 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:590 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:596 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:596 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:602 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:602 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:608 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:608 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:337 [ keyboard_event_pressed::row_bits#0 ] +Statement [776] keyboard_event_pressed::return#10 = keyboard_event_pressed::row_bits#0 & keyboard_matrix_col_bitmask[keyboard_event_pressed::$1] [ keyboard_event_pressed::return#10 ] ( gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:590 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:590 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:596 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:596 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:602 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:602 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:608 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:608 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } ) always clobbers reg byte a +Statement [782] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::abs_u16:665 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::abs_u16:669 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { abs_u16::w#1 = abs_u16::w#2 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a +Statement [793] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:687 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:704 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:714 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a +Statement [794] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:687 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:704 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:714 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a +Statement [795] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:687 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:704 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:714 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a +Statement [797] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] [ ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:687 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:704 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:714 [ gfx_init_VICII_bitmap::l#2 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:43 [ gfx_init_VICII_bitmap::l#2 gfx_init_VICII_bitmap::l#1 ] Statement [1] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *PROCPORT = PROCPORT_RAM_IO [ ] ( [ ] { } ) always clobbers reg byte a @@ -12662,31 +12643,30 @@ Statement [720] gfx_init_plane_fill::$0 = gfx_init_plane_fill::plane_addr#3 << 2 Statement [721] gfx_init_plane_fill::$1 = > gfx_init_plane_fill::$0 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$1 ] ( gfx_init:6::gfx_init_plane_vertical2:40::gfx_init_plane_fill:418 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$1 ] { { dtvSetCpuBankSegment1::cpuBankIdx#11 = dtvSetCpuBankSegment1::cpuBankIdx#13 gfx_init_plane_fill::gfxbCpuBank#0 } } gfx_init:6::gfx_init_plane_blank:42::gfx_init_plane_fill:421 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$1 ] { { dtvSetCpuBankSegment1::cpuBankIdx#11 = dtvSetCpuBankSegment1::cpuBankIdx#13 gfx_init_plane_fill::gfxbCpuBank#0 } } gfx_init:6::gfx_init_plane_full:44::gfx_init_plane_fill:424 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$1 ] { { dtvSetCpuBankSegment1::cpuBankIdx#11 = dtvSetCpuBankSegment1::cpuBankIdx#13 gfx_init_plane_fill::gfxbCpuBank#0 } } ) always clobbers reg byte a Statement [725] gfx_init_plane_fill::$4 = < gfx_init_plane_fill::plane_addr#3 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$4 ] ( gfx_init:6::gfx_init_plane_vertical2:40::gfx_init_plane_fill:418 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$4 ] { } gfx_init:6::gfx_init_plane_blank:42::gfx_init_plane_fill:421 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$4 ] { } gfx_init:6::gfx_init_plane_full:44::gfx_init_plane_fill:424 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$4 ] { } ) always clobbers reg byte a Statement [726] gfx_init_plane_fill::$5 = gfx_init_plane_fill::$4 & $3fff [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] ( gfx_init:6::gfx_init_plane_vertical2:40::gfx_init_plane_fill:418 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] { } gfx_init:6::gfx_init_plane_blank:42::gfx_init_plane_fill:421 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] { } gfx_init:6::gfx_init_plane_full:44::gfx_init_plane_fill:424 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] { } ) always clobbers reg byte a -Statement [727] gfx_init_plane_fill::gfxb#0 = $4000 + gfx_init_plane_fill::$5 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#0 ] ( gfx_init:6::gfx_init_plane_vertical2:40::gfx_init_plane_fill:418 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#0 ] { } gfx_init:6::gfx_init_plane_blank:42::gfx_init_plane_fill:421 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#0 ] { } gfx_init:6::gfx_init_plane_full:44::gfx_init_plane_fill:424 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#0 ] { } ) always clobbers reg byte a -Statement [728] gfx_init_plane_fill::gfxb#6 = (byte*)gfx_init_plane_fill::gfxb#0 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#6 ] ( gfx_init:6::gfx_init_plane_vertical2:40::gfx_init_plane_fill:418 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#6 ] { } gfx_init:6::gfx_init_plane_blank:42::gfx_init_plane_fill:421 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#6 ] { } gfx_init:6::gfx_init_plane_full:44::gfx_init_plane_fill:424 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#6 ] { } ) always clobbers reg byte a -Statement [731] *gfx_init_plane_fill::gfxb#2 = gfx_init_plane_fill::fill#6 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] ( gfx_init:6::gfx_init_plane_vertical2:40::gfx_init_plane_fill:418 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] { } gfx_init:6::gfx_init_plane_blank:42::gfx_init_plane_fill:421 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] { } gfx_init:6::gfx_init_plane_full:44::gfx_init_plane_fill:424 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] { } ) always clobbers reg byte a reg byte y -Statement [741] if(memset::num#3<=0) goto memset::@return [ memset::num#3 memset::str#4 memset::c#5 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::num#3 memset::str#4 memset::c#5 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::num#3 memset::str#4 memset::c#5 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::num#3 memset::str#4 memset::c#5 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::num#3 memset::str#4 memset::c#5 ] { } ) always clobbers reg byte a -Statement [742] memset::end#0 = (byte*)memset::str#4 + memset::num#3 [ memset::str#4 memset::c#5 memset::end#0 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::str#4 memset::c#5 memset::end#0 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::str#4 memset::c#5 memset::end#0 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::str#4 memset::c#5 memset::end#0 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::str#4 memset::c#5 memset::end#0 ] { } ) always clobbers reg byte a -Statement [743] memset::dst#4 = (byte*)memset::str#4 [ memset::c#5 memset::end#0 memset::dst#4 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#4 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#4 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::c#5 memset::end#0 memset::dst#4 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::c#5 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a -Statement [745] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#5 memset::end#0 memset::dst#2 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#2 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#2 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::c#5 memset::end#0 memset::dst#2 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a -Statement [747] *memset::dst#2 = memset::c#5 [ memset::c#5 memset::end#0 memset::dst#2 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#2 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#2 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::c#5 memset::end#0 memset::dst#2 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y -Statement [749] *print_char_cursor#43 = print_char::ch#0 [ print_char_cursor#43 ] ( form_mode:9::print_str_lines:51::print_char:442 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_line_cursor#1 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#43 ] { { print_char::ch#0 = print_str_lines::ch#0 } } form_mode:9::print_str_lines:57::print_char:442 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_line_cursor#1 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#43 ] { { print_char::ch#0 = print_str_lines::ch#0 } } ) always clobbers reg byte y -Statement [754] print_line_cursor#2 = print_line_cursor#22 + $28 [ print_line_cursor#2 print_char_cursor#44 ] ( form_mode:9::print_str_lines:51::print_ln:446 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_str_lines::str#0 print_line_cursor#2 print_char_cursor#44 ] { } form_mode:9::print_str_lines:57::print_ln:446 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_str_lines::str#0 print_line_cursor#2 print_char_cursor#44 ] { } ) always clobbers reg byte a -Statement [755] if(print_line_cursor#2> 3 [ keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ( gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:590 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:590 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:596 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:596 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:602 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:602 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:608 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:608 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } ) always clobbers reg byte a -Statement [776] keyboard_event_pressed::$1 = keyboard_event_pressed::keycode#4 & 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:590 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:590 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:596 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:596 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:602 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:602 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:608 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:608 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } ) always clobbers reg byte a -Statement [777] keyboard_event_pressed::return#10 = keyboard_event_pressed::row_bits#0 & keyboard_matrix_col_bitmask[keyboard_event_pressed::$1] [ keyboard_event_pressed::return#10 ] ( gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:590 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:590 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:596 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:596 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:602 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:602 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:608 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:608 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } ) always clobbers reg byte a -Statement [783] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::abs_u16:665 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::abs_u16:669 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { abs_u16::w#1 = abs_u16::w#2 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a -Statement [794] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:687 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:704 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:714 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [795] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:687 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:704 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:714 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [796] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:687 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:704 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:714 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [798] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] [ ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:687 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:704 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:714 [ gfx_init_VICII_bitmap::l#2 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a reg byte y +Statement [727] gfx_init_plane_fill::gfxb#0 = (byte*) 16384 + gfx_init_plane_fill::$5 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#0 ] ( gfx_init:6::gfx_init_plane_vertical2:40::gfx_init_plane_fill:418 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#0 ] { } gfx_init:6::gfx_init_plane_blank:42::gfx_init_plane_fill:421 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#0 ] { } gfx_init:6::gfx_init_plane_full:44::gfx_init_plane_fill:424 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#0 ] { } ) always clobbers reg byte a +Statement [730] *gfx_init_plane_fill::gfxb#2 = gfx_init_plane_fill::fill#6 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] ( gfx_init:6::gfx_init_plane_vertical2:40::gfx_init_plane_fill:418 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] { } gfx_init:6::gfx_init_plane_blank:42::gfx_init_plane_fill:421 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] { } gfx_init:6::gfx_init_plane_full:44::gfx_init_plane_fill:424 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] { } ) always clobbers reg byte a reg byte y +Statement [740] if(memset::num#3<=0) goto memset::@return [ memset::num#3 memset::str#4 memset::c#5 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::num#3 memset::str#4 memset::c#5 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::num#3 memset::str#4 memset::c#5 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::num#3 memset::str#4 memset::c#5 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::num#3 memset::str#4 memset::c#5 ] { } ) always clobbers reg byte a +Statement [741] memset::end#0 = (byte*)memset::str#4 + memset::num#3 [ memset::str#4 memset::c#5 memset::end#0 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::str#4 memset::c#5 memset::end#0 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::str#4 memset::c#5 memset::end#0 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::str#4 memset::c#5 memset::end#0 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::str#4 memset::c#5 memset::end#0 ] { } ) always clobbers reg byte a +Statement [742] memset::dst#4 = (byte*)memset::str#4 [ memset::c#5 memset::end#0 memset::dst#4 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#4 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#4 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::c#5 memset::end#0 memset::dst#4 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::c#5 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [744] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#5 memset::end#0 memset::dst#2 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#2 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#2 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::c#5 memset::end#0 memset::dst#2 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [746] *memset::dst#2 = memset::c#5 [ memset::c#5 memset::end#0 memset::dst#2 ] ( form_mode:9::print_cls:49::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#2 ] { { memset::str#0 = memset::str#4 } } form_mode:9::print_cls:55::memset:430 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_screen#0 memset::c#5 memset::end#0 memset::dst#2 ] { { memset::str#0 = memset::str#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:660 [ memset::c#5 memset::end#0 memset::dst#2 ] { } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_clear:316::memset:662 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Statement [748] *print_char_cursor#43 = print_char::ch#0 [ print_char_cursor#43 ] ( form_mode:9::print_str_lines:51::print_char:442 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_line_cursor#1 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#43 ] { { print_char::ch#0 = print_str_lines::ch#0 } } form_mode:9::print_str_lines:57::print_char:442 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_line_cursor#1 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#43 ] { { print_char::ch#0 = print_str_lines::ch#0 } } ) always clobbers reg byte y +Statement [753] print_line_cursor#2 = print_line_cursor#22 + $28 [ print_line_cursor#2 print_char_cursor#44 ] ( form_mode:9::print_str_lines:51::print_ln:446 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_str_lines::str#0 print_line_cursor#2 print_char_cursor#44 ] { } form_mode:9::print_str_lines:57::print_ln:446 [ form_cursor_count#1 keyboard_events_size#28 form_field_idx#1 print_str_lines::str#0 print_line_cursor#2 print_char_cursor#44 ] { } ) always clobbers reg byte a +Statement [754] if(print_line_cursor#2> 3 [ keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ( gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:590 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:590 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:596 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:596 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:602 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:602 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:608 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:608 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } ) always clobbers reg byte a +Statement [775] keyboard_event_pressed::$1 = keyboard_event_pressed::keycode#4 & 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:590 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:590 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:596 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:596 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:602 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:602 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:608 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:608 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } ) always clobbers reg byte a +Statement [776] keyboard_event_pressed::return#10 = keyboard_event_pressed::row_bits#0 & keyboard_matrix_col_bitmask[keyboard_event_pressed::$1] [ keyboard_event_pressed::return#10 ] ( gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:590 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:590 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:596 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:596 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:602 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:602 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } gfx_mode:11::keyboard_event_scan:225::keyboard_event_pressed:608 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } form_mode:9::form_control:86::keyboard_event_scan:495::keyboard_event_pressed:608 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } ) always clobbers reg byte a +Statement [782] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::abs_u16:665 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::abs_u16:669 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { abs_u16::w#1 = abs_u16::w#2 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a +Statement [793] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:687 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:704 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:714 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a +Statement [794] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:687 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:704 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:714 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a +Statement [795] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:687 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:704 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:714 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a +Statement [797] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] [ ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:687 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:704 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:324::bitmap_plot:714 [ gfx_init_VICII_bitmap::l#2 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ form_mode::i#2 form_mode::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ form_cursor_count#23 form_cursor_count#1 form_cursor_count#17 form_cursor_count#16 form_cursor_count#4 ] : zp[1]:3 , reg byte x , Potential registers zp[1]:4 [ form_field_idx#30 form_field_idx#1 form_field_idx#19 form_field_idx#33 form_field_idx#5 form_field_idx#4 ] : zp[1]:4 , reg byte x , @@ -12775,7 +12755,7 @@ Potential registers zp[1]:118 [ dtvSetCpuBankSegment1::cpuBankIdx#13 dtvSetCpuBa Potential registers zp[4]:119 [ gfx_init_plane_fill::plane_addr#3 ] : zp[4]:119 , Potential registers zp[1]:123 [ gfx_init_plane_fill::fill#6 ] : zp[1]:123 , reg byte x , Potential registers zp[1]:124 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] : zp[1]:124 , reg byte x , -Potential registers zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 ] : zp[2]:125 , +Potential registers zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#0 ] : zp[2]:125 , Potential registers zp[1]:127 [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ] : zp[1]:127 , reg byte x , Potential registers zp[2]:128 [ memset::num#3 ] : zp[2]:128 , Potential registers zp[2]:130 [ memset::str#4 memset::str#0 ] : zp[2]:130 , @@ -12915,48 +12895,47 @@ Potential registers zp[2]:320 [ gfx_init_plane_fill::$1 ] : zp[2]:320 , Potential registers zp[1]:322 [ gfx_init_plane_fill::gfxbCpuBank#0 ] : zp[1]:322 , reg byte a , reg byte x , reg byte y , Potential registers zp[2]:323 [ gfx_init_plane_fill::$4 ] : zp[2]:323 , Potential registers zp[2]:325 [ gfx_init_plane_fill::$5 ] : zp[2]:325 , -Potential registers zp[2]:327 [ gfx_init_plane_fill::gfxb#0 ] : zp[2]:327 , -Potential registers zp[2]:329 [ memset::end#0 ] : zp[2]:329 , -Potential registers zp[1]:331 [ form_field_ptr::y#0 ] : zp[1]:331 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:332 [ form_field_ptr::line#0 ] : zp[2]:332 , -Potential registers zp[1]:334 [ form_field_ptr::x#0 ] : zp[1]:334 , reg byte x , reg byte y , -Potential registers zp[2]:335 [ form_field_ptr::return#0 ] : zp[2]:335 , -Potential registers zp[1]:337 [ keyboard_matrix_read::return#0 ] : zp[1]:337 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:338 [ keyboard_event_pressed::$0 ] : zp[1]:338 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:339 [ keyboard_event_pressed::row_bits#0 ] : zp[1]:339 , reg byte x , reg byte y , -Potential registers zp[1]:340 [ keyboard_event_pressed::$1 ] : zp[1]:340 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:341 [ keyboard_event_pressed::return#10 ] : zp[1]:341 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:342 [ abs_u16::$0 ] : zp[1]:342 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:343 [ abs_u16::$1 ] : zp[1]:343 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:344 [ sgn_u16::$0 ] : zp[1]:344 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:345 [ sgn_u16::$1 ] : zp[1]:345 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:346 [ bitmap_plot::plotter#0 ] : zp[2]:346 , -Potential registers zp[2]:348 [ bitmap_plot::$0 ] : zp[2]:348 , -Potential registers zp[2]:350 [ bitmap_plot::plotter#1 ] : zp[2]:350 , -Potential registers zp[1]:352 [ bitmap_plot::$1 ] : zp[1]:352 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:327 [ memset::end#0 ] : zp[2]:327 , +Potential registers zp[1]:329 [ form_field_ptr::y#0 ] : zp[1]:329 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:330 [ form_field_ptr::line#0 ] : zp[2]:330 , +Potential registers zp[1]:332 [ form_field_ptr::x#0 ] : zp[1]:332 , reg byte x , reg byte y , +Potential registers zp[2]:333 [ form_field_ptr::return#0 ] : zp[2]:333 , +Potential registers zp[1]:335 [ keyboard_matrix_read::return#0 ] : zp[1]:335 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:336 [ keyboard_event_pressed::$0 ] : zp[1]:336 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:337 [ keyboard_event_pressed::row_bits#0 ] : zp[1]:337 , reg byte x , reg byte y , +Potential registers zp[1]:338 [ keyboard_event_pressed::$1 ] : zp[1]:338 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:339 [ keyboard_event_pressed::return#10 ] : zp[1]:339 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:340 [ abs_u16::$0 ] : zp[1]:340 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:341 [ abs_u16::$1 ] : zp[1]:341 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:342 [ sgn_u16::$0 ] : zp[1]:342 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:343 [ sgn_u16::$1 ] : zp[1]:343 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:344 [ bitmap_plot::plotter#0 ] : zp[2]:344 , +Potential registers zp[2]:346 [ bitmap_plot::$0 ] : zp[2]:346 , +Potential registers zp[2]:348 [ bitmap_plot::plotter#1 ] : zp[2]:348 , +Potential registers zp[1]:350 [ bitmap_plot::$1 ] : zp[1]:350 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES Uplift Scope [keyboard_event_scan] 2,000,000,000,002: zp[1]:292 [ keyboard_event_scan::$15 ] 2,000,000,000,002: zp[1]:293 [ keyboard_event_scan::$16 ] 2,000,000,000,002: zp[1]:294 [ keyboard_event_scan::event_type#0 ] 2,000,000,000,002: zp[1]:295 [ keyboard_event_scan::$23 ] 1,785,714,285,716.07: zp[1]:101 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] 1,190,384,615,389.25: zp[1]:102 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] 210,000,000,001.74: zp[1]:99 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] 127,777,777,778.06: zp[1]:283 [ keyboard_event_scan::row_scan#0 ] 20,000,002: zp[1]:285 [ keyboard_event_scan::$0 ] 20,000,002: zp[1]:287 [ keyboard_event_scan::$3 ] 20,000,002: zp[1]:289 [ keyboard_event_scan::$6 ] 20,000,002: zp[1]:291 [ keyboard_event_scan::$9 ] Uplift Scope [] 5,881,709,169,057.27: zp[1]:103 [ keyboard_events_size#19 keyboard_events_size#107 keyboard_events_size#98 keyboard_events_size#49 keyboard_events_size#28 keyboard_events_size#25 keyboard_events_size#100 keyboard_events_size#106 keyboard_events_size#0 keyboard_events_size#1 keyboard_events_size#3 ] 2,601,131,954.45: zp[2]:135 [ print_line_cursor#22 print_line_cursor#1 print_screen#0 print_line_cursor#2 ] 150,938,221.86: zp[2]:76 [ print_char_cursor#43 print_char_cursor#2 print_char_cursor#72 print_char_cursor#73 print_char_cursor#44 print_char_cursor#29 ] 82,000,008.36: zp[1]:100 [ keyboard_modifiers#22 keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#19 keyboard_modifiers#2 keyboard_modifiers#3 keyboard_modifiers#4 ] 5,680,494.6: zp[1]:4 [ form_field_idx#30 form_field_idx#1 form_field_idx#19 form_field_idx#33 form_field_idx#5 form_field_idx#4 ] 1,541,532.48: zp[1]:3 [ form_cursor_count#23 form_cursor_count#1 form_cursor_count#17 form_cursor_count#16 form_cursor_count#4 ] -Uplift Scope [keyboard_matrix_read] 1,100,000,000,002: zp[1]:281 [ keyboard_matrix_read::rowid#0 ] 366,666,666,667.33: zp[1]:337 [ keyboard_matrix_read::return#0 ] 200,000,000,002: zp[1]:282 [ keyboard_matrix_read::return#2 ] +Uplift Scope [keyboard_matrix_read] 1,100,000,000,002: zp[1]:281 [ keyboard_matrix_read::rowid#0 ] 366,666,666,667.33: zp[1]:335 [ keyboard_matrix_read::return#0 ] 200,000,000,002: zp[1]:282 [ keyboard_matrix_read::return#2 ] Uplift Scope [print_str_at] 3,000,800,004.25: zp[2]:138 [ print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 ] 2,000,000,002: zp[2]:140 [ print_str_at::at#2 print_str_at::at#0 ] -Uplift Scope [form_field_ptr] 3,000,000,003: zp[1]:331 [ form_field_ptr::y#0 ] 902,333,338.67: zp[1]:137 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] 525,000,000.75: zp[1]:334 [ form_field_ptr::x#0 ] 333,666,667.33: zp[2]:335 [ form_field_ptr::return#0 ] 200,000,000.2: zp[2]:332 [ form_field_ptr::line#0 ] 2,000,002: zp[2]:270 [ form_field_ptr::return#3 ] -Uplift Scope [keyboard_event_pressed] 200,000,002: zp[1]:338 [ keyboard_event_pressed::$0 ] 200,000,002: zp[1]:340 [ keyboard_event_pressed::$1 ] 100,000,001: zp[1]:339 [ keyboard_event_pressed::row_bits#0 ] 66,666,667.33: zp[1]:142 [ keyboard_event_pressed::keycode#4 ] 23,333,334.17: zp[1]:341 [ keyboard_event_pressed::return#10 ] 20,000,002: zp[1]:284 [ keyboard_event_pressed::return#0 ] 20,000,002: zp[1]:286 [ keyboard_event_pressed::return#1 ] 20,000,002: zp[1]:288 [ keyboard_event_pressed::return#2 ] 20,000,002: zp[1]:290 [ keyboard_event_pressed::return#3 ] +Uplift Scope [form_field_ptr] 3,000,000,003: zp[1]:329 [ form_field_ptr::y#0 ] 902,333,338.67: zp[1]:137 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] 525,000,000.75: zp[1]:332 [ form_field_ptr::x#0 ] 333,666,667.33: zp[2]:333 [ form_field_ptr::return#0 ] 200,000,000.2: zp[2]:330 [ form_field_ptr::line#0 ] 2,000,002: zp[2]:270 [ form_field_ptr::return#3 ] +Uplift Scope [keyboard_event_pressed] 200,000,002: zp[1]:336 [ keyboard_event_pressed::$0 ] 200,000,002: zp[1]:338 [ keyboard_event_pressed::$1 ] 100,000,001: zp[1]:337 [ keyboard_event_pressed::row_bits#0 ] 66,666,667.33: zp[1]:142 [ keyboard_event_pressed::keycode#4 ] 23,333,334.17: zp[1]:339 [ keyboard_event_pressed::return#10 ] 20,000,002: zp[1]:284 [ keyboard_event_pressed::return#0 ] 20,000,002: zp[1]:286 [ keyboard_event_pressed::return#1 ] 20,000,002: zp[1]:288 [ keyboard_event_pressed::return#2 ] 20,000,002: zp[1]:290 [ keyboard_event_pressed::return#3 ] Uplift Scope [apply_preset] 366,666,670.33: zp[1]:88 [ apply_preset::i#2 apply_preset::i#1 ] 20,000,000.2: zp[2]:86 [ apply_preset::preset#15 ] 100,910.18: zp[1]:154 [ apply_preset::idx#0 ] Uplift Scope [form_render_values] 300,000,003: zp[1]:81 [ form_render_values::idx#2 form_render_values::idx#1 ] -Uplift Scope [bitmap_plot] 26,060,014: zp[1]:149 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ] 20,000,002: zp[2]:348 [ bitmap_plot::$0 ] 20,000,002: zp[1]:352 [ bitmap_plot::$1 ] 15,000,001.5: zp[2]:350 [ bitmap_plot::plotter#1 ] 7,525,005.5: zp[2]:150 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] 5,000,000.5: zp[2]:346 [ bitmap_plot::plotter#0 ] +Uplift Scope [bitmap_plot] 26,060,014: zp[1]:149 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ] 20,000,002: zp[2]:346 [ bitmap_plot::$0 ] 20,000,002: zp[1]:350 [ bitmap_plot::$1 ] 15,000,001.5: zp[2]:348 [ bitmap_plot::plotter#1 ] 7,525,005.5: zp[2]:150 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] 5,000,000.5: zp[2]:344 [ bitmap_plot::plotter#0 ] Uplift Scope [keyboard_event_get] 22,752,502.75: zp[1]:104 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] 2,000,002: zp[1]:275 [ keyboard_event_get::return#4 ] 20,002: zp[1]:238 [ keyboard_event_get::return#3 ] Uplift Scope [bitmap_line] 6,908,834.24: zp[2]:112 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 ] 5,505,574.66: zp[2]:114 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 ] 5,255,340.77: zp[2]:110 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] 5,255,340.77: zp[2]:116 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] 84,444.64: zp[2]:306 [ bitmap_line::dy#0 ] 77,307.81: zp[2]:314 [ bitmap_line::sy#0 ] 76,000.18: zp[2]:302 [ bitmap_line::dx#0 ] 67,000.1: zp[2]:310 [ bitmap_line::sx#0 ] 31,906.38: zp[2]:257 [ bitmap_line::y2#0 ] 30,939.52: zp[2]:255 [ bitmap_line::x2#0 ] Uplift Scope [form_control] 2,000,002: zp[1]:274 [ form_control::$12 ] 2,000,002: zp[1]:277 [ form_control::$14 ] 2,000,002: zp[1]:278 [ form_control::$15 ] 2,000,002: zp[1]:279 [ form_control::$22 ] 2,000,002: zp[1]:280 [ form_control::$13 ] 1,333,334.67: zp[1]:276 [ form_control::key_event#0 ] 296,296.59: zp[2]:272 [ form_control::field#0 ] 200,002: zp[1]:152 [ form_control::return#0 ] 33,333.67: zp[1]:85 [ form_control::return#2 ] Uplift Scope [print_char] 11,000,002: zp[1]:267 [ print_char::ch#0 ] -Uplift Scope [memset] 3,356,672.33: zp[2]:133 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 168,333.67: zp[2]:329 [ memset::end#0 ] 125,000.12: zp[1]:132 [ memset::c#5 ] 10,001: zp[2]:128 [ memset::num#3 ] 2,335.67: zp[2]:130 [ memset::str#4 memset::str#0 ] +Uplift Scope [memset] 3,356,672.33: zp[2]:133 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 168,333.67: zp[2]:327 [ memset::end#0 ] 125,000.12: zp[1]:132 [ memset::c#5 ] 10,001: zp[2]:128 [ memset::num#3 ] 2,335.67: zp[2]:130 [ memset::str#4 memset::str#0 ] Uplift Scope [print_str_lines] 1,934,338.17: zp[2]:74 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] 666,667.33: zp[1]:266 [ print_str_lines::ch#0 ] Uplift Scope [gfx_init_plane_charset8] 400,004: zp[1]:59 [ gfx_init_plane_charset8::c#2 gfx_init_plane_charset8::c#3 ] 200,002: zp[1]:262 [ gfx_init_plane_charset8::$2 ] 172,223.94: zp[1]:58 [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] 104,287.79: zp[1]:54 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] 84,115.22: zp[2]:55 [ gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 ] 77,896.93: zp[1]:57 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] 18,816.69: zp[2]:51 [ gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 ] 16,430.21: zp[1]:53 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] 1,619.26: zp[1]:50 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] -Uplift Scope [abs_u16] 375,008.25: zp[2]:143 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 ] 200,002: zp[1]:342 [ abs_u16::$0 ] 200,002: zp[1]:343 [ abs_u16::$1 ] 20,002: zp[2]:300 [ abs_u16::return#0 ] 20,002: zp[2]:304 [ abs_u16::return#1 ] +Uplift Scope [abs_u16] 375,008.25: zp[2]:143 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 ] 200,002: zp[1]:340 [ abs_u16::$0 ] 200,002: zp[1]:341 [ abs_u16::$1 ] 20,002: zp[2]:300 [ abs_u16::return#0 ] 20,002: zp[2]:304 [ abs_u16::return#1 ] Uplift Scope [form_set_screen] 216,668.83: zp[1]:80 [ form_set_screen::y#2 form_set_screen::y#1 ] 200,002: zp[1]:268 [ form_set_screen::$0 ] 200,002: zp[1]:269 [ form_set_screen::$1 ] 146,668.13: zp[2]:78 [ form_set_screen::line#2 form_set_screen::line#1 ] Uplift Scope [gfx_mode] 210,004.5: zp[2]:12 [ gfx_mode::col#2 gfx_mode::col#3 gfx_mode::col#1 ] 200,002: zp[1]:14 [ gfx_mode::cx#2 gfx_mode::cx#1 ] 165,640.27: zp[2]:10 [ gfx_mode::VICII_colors#2 gfx_mode::VICII_colors#3 gfx_mode::VICII_colors#1 gfx_mode::VICII_colors#0 ] 35,003.5: zp[1]:15 [ gfx_mode::j#2 gfx_mode::j#1 ] 35,003.5: zp[1]:16 [ gfx_mode::i#2 gfx_mode::i#1 ] 20,002: zp[1]:239 [ gfx_mode::keyboard_event#0 ] 17,858.93: zp[1]:9 [ gfx_mode::cy#4 gfx_mode::cy#1 ] 2,222: zp[1]:6 [ gfx_mode::dtv_control#12 gfx_mode::dtv_control#6 gfx_mode::dtv_control#13 gfx_mode::dtv_control#5 gfx_mode::dtv_control#11 gfx_mode::dtv_control#4 gfx_mode::dtv_control#10 gfx_mode::dtv_control#3 gfx_mode::dtv_control#15 gfx_mode::dtv_control#14 gfx_mode::dtv_control#2 ] 606: zp[1]:7 [ gfx_mode::VICII_control#4 gfx_mode::VICII_control#2 gfx_mode::VICII_control#5 ] 202: zp[1]:155 [ gfx_mode::$18 ] 202: zp[4]:161 [ gfx_mode::$20 ] 202: zp[2]:169 [ gfx_mode::$22 ] 202: zp[1]:171 [ gfx_mode::$23 ] 202: zp[2]:172 [ gfx_mode::$24 ] 202: zp[1]:174 [ gfx_mode::$25 ] 202: zp[2]:175 [ gfx_mode::$26 ] 202: zp[1]:177 [ gfx_mode::$27 ] 202: zp[1]:178 [ gfx_mode::$28 ] 202: zp[1]:179 [ gfx_mode::$29 ] 202: zp[1]:180 [ gfx_mode::$30 ] 202: zp[1]:181 [ gfx_mode::$31 ] 202: zp[1]:182 [ gfx_mode::$32 ] 202: zp[4]:188 [ gfx_mode::$34 ] 202: zp[2]:196 [ gfx_mode::$36 ] 202: zp[1]:198 [ gfx_mode::$37 ] 202: zp[2]:199 [ gfx_mode::$38 ] 202: zp[1]:201 [ gfx_mode::$39 ] 202: zp[2]:202 [ gfx_mode::$40 ] 202: zp[1]:204 [ gfx_mode::$41 ] 202: zp[1]:205 [ gfx_mode::$42 ] 202: zp[1]:206 [ gfx_mode::$43 ] 202: zp[1]:207 [ gfx_mode::$44 ] 202: zp[1]:208 [ gfx_mode::$45 ] 202: zp[2]:213 [ gfx_mode::$47 ] 202: zp[2]:222 [ gfx_mode::$50 ] 202: zp[1]:224 [ gfx_mode::$51 ] 202: zp[1]:226 [ gfx_mode::$84 ] 202: zp[1]:227 [ gfx_mode::$53 ] 202: zp[1]:230 [ gfx_mode::$55 ] 202: zp[1]:231 [ gfx_mode::$56 ] 202: zp[1]:232 [ gfx_mode::$57 ] 202: zp[1]:233 [ gfx_mode::$58 ] 202: zp[1]:234 [ gfx_mode::$59 ] 202: zp[1]:235 [ gfx_mode::$60 ] 202: zp[1]:236 [ gfx_mode::$61 ] 202: zp[1]:237 [ gfx_mode::$62 ] 101: zp[1]:8 [ gfx_mode::VICII_control2#2 ] 101: zp[2]:211 [ gfx_mode::$82 ] 101: zp[2]:220 [ gfx_mode::$83 ] 101: zp[1]:225 [ gfx_mode::$52 ] 57.71: zp[4]:165 [ gfx_mode::plane_a#0 ] 57.71: zp[4]:192 [ gfx_mode::plane_b#0 ] 40.4: zp[1]:156 [ gfx_mode::plane_a_offs#0 ] 40.4: zp[1]:183 [ gfx_mode::plane_b_offs#0 ] 12.62: zp[2]:215 [ gfx_mode::$48 ] -Uplift Scope [sgn_u16] 200,002: zp[1]:344 [ sgn_u16::$0 ] 200,002: zp[1]:345 [ sgn_u16::$1 ] 160,007: zp[2]:145 [ sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ] 20,002: zp[2]:308 [ sgn_u16::return#0 ] 20,002: zp[2]:312 [ sgn_u16::return#1 ] 5,000.5: zp[2]:147 [ sgn_u16::return#4 ] -Uplift Scope [gfx_init_plane_fill] 220,007.6: zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 ] 216,668.83: zp[1]:127 [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ] 18,335.17: zp[1]:124 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] 5,555.61: zp[1]:123 [ gfx_init_plane_fill::fill#6 ] 2,002: zp[4]:316 [ gfx_init_plane_fill::$0 ] 2,002: zp[2]:320 [ gfx_init_plane_fill::$1 ] 2,002: zp[1]:322 [ gfx_init_plane_fill::gfxbCpuBank#0 ] 2,002: zp[2]:323 [ gfx_init_plane_fill::$4 ] 2,002: zp[2]:325 [ gfx_init_plane_fill::$5 ] 1,001: zp[2]:327 [ gfx_init_plane_fill::gfxb#0 ] 333.67: zp[4]:119 [ gfx_init_plane_fill::plane_addr#3 ] +Uplift Scope [sgn_u16] 200,002: zp[1]:342 [ sgn_u16::$0 ] 200,002: zp[1]:343 [ sgn_u16::$1 ] 160,007: zp[2]:145 [ sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ] 20,002: zp[2]:308 [ sgn_u16::return#0 ] 20,002: zp[2]:312 [ sgn_u16::return#1 ] 5,000.5: zp[2]:147 [ sgn_u16::return#4 ] +Uplift Scope [gfx_init_plane_fill] 220,007.6: zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#0 ] 216,668.83: zp[1]:127 [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ] 18,335.17: zp[1]:124 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] 5,882.41: zp[1]:123 [ gfx_init_plane_fill::fill#6 ] 2,002: zp[4]:316 [ gfx_init_plane_fill::$0 ] 2,002: zp[2]:320 [ gfx_init_plane_fill::$1 ] 2,002: zp[1]:322 [ gfx_init_plane_fill::gfxbCpuBank#0 ] 2,002: zp[2]:323 [ gfx_init_plane_fill::$4 ] 2,002: zp[2]:325 [ gfx_init_plane_fill::$5 ] 333.67: zp[4]:119 [ gfx_init_plane_fill::plane_addr#3 ] Uplift Scope [form_mode] 200,002: zp[1]:153 [ form_mode::$11 ] 43,965.62: zp[1]:5 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ] 35,003.5: zp[1]:2 [ form_mode::i#2 form_mode::i#1 ] Uplift Scope [render_preset_name] 121,123.36: zp[1]:82 [ render_preset_name::idx#10 render_preset_name::idx#0 render_preset_name::idx#1 ] 100,001: zp[2]:83 [ render_preset_name::name#13 ] Uplift Scope [bitmap_init] 36,253.62: zp[2]:108 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] 31,669.83: zp[1]:105 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] 20,002: zp[1]:106 [ bitmap_init::x#2 bitmap_init::x#1 ] 20,002: zp[1]:107 [ bitmap_init::y#2 bitmap_init::y#1 ] 20,002: zp[1]:297 [ bitmap_init::$4 ] 20,002: zp[1]:298 [ bitmap_init::$5 ] 20,002: zp[1]:299 [ bitmap_init::$6 ] 5,000.5: zp[1]:296 [ bitmap_init::$7 ] @@ -12990,289 +12969,289 @@ Uplift Scope [gfx_init_plane_vertical2] Uplift Scope [gfx_init_plane_blank] Uplift Scope [gfx_init_plane_full] -Uplifting [keyboard_event_scan] best 15252590 combination reg byte a [ keyboard_event_scan::$15 ] reg byte a [ keyboard_event_scan::$16 ] zp[1]:294 [ keyboard_event_scan::event_type#0 ] zp[1]:295 [ keyboard_event_scan::$23 ] zp[1]:101 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp[1]:102 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] zp[1]:99 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp[1]:283 [ keyboard_event_scan::row_scan#0 ] zp[1]:285 [ keyboard_event_scan::$0 ] zp[1]:287 [ keyboard_event_scan::$3 ] zp[1]:289 [ keyboard_event_scan::$6 ] zp[1]:291 [ keyboard_event_scan::$9 ] +Uplifting [keyboard_event_scan] best 15252578 combination reg byte a [ keyboard_event_scan::$15 ] reg byte a [ keyboard_event_scan::$16 ] zp[1]:294 [ keyboard_event_scan::event_type#0 ] zp[1]:295 [ keyboard_event_scan::$23 ] zp[1]:101 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp[1]:102 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] zp[1]:99 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp[1]:283 [ keyboard_event_scan::row_scan#0 ] zp[1]:285 [ keyboard_event_scan::$0 ] zp[1]:287 [ keyboard_event_scan::$3 ] zp[1]:289 [ keyboard_event_scan::$6 ] zp[1]:291 [ keyboard_event_scan::$9 ] Limited combination testing to 10 combinations of 5308416 possible. -Uplifting [] best 15252572 combination zp[1]:103 [ keyboard_events_size#19 keyboard_events_size#107 keyboard_events_size#98 keyboard_events_size#49 keyboard_events_size#28 keyboard_events_size#25 keyboard_events_size#100 keyboard_events_size#106 keyboard_events_size#0 keyboard_events_size#1 keyboard_events_size#3 ] zp[2]:135 [ print_line_cursor#22 print_line_cursor#1 print_screen#0 print_line_cursor#2 ] zp[2]:76 [ print_char_cursor#43 print_char_cursor#2 print_char_cursor#72 print_char_cursor#73 print_char_cursor#44 print_char_cursor#29 ] reg byte x [ keyboard_modifiers#22 keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#19 keyboard_modifiers#2 keyboard_modifiers#3 keyboard_modifiers#4 ] zp[1]:4 [ form_field_idx#30 form_field_idx#1 form_field_idx#19 form_field_idx#33 form_field_idx#5 form_field_idx#4 ] zp[1]:3 [ form_cursor_count#23 form_cursor_count#1 form_cursor_count#17 form_cursor_count#16 form_cursor_count#4 ] +Uplifting [] best 15252560 combination zp[1]:103 [ keyboard_events_size#19 keyboard_events_size#107 keyboard_events_size#98 keyboard_events_size#49 keyboard_events_size#28 keyboard_events_size#25 keyboard_events_size#100 keyboard_events_size#106 keyboard_events_size#0 keyboard_events_size#1 keyboard_events_size#3 ] zp[2]:135 [ print_line_cursor#22 print_line_cursor#1 print_screen#0 print_line_cursor#2 ] zp[2]:76 [ print_char_cursor#43 print_char_cursor#2 print_char_cursor#72 print_char_cursor#73 print_char_cursor#44 print_char_cursor#29 ] reg byte x [ keyboard_modifiers#22 keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#19 keyboard_modifiers#2 keyboard_modifiers#3 keyboard_modifiers#4 ] zp[1]:4 [ form_field_idx#30 form_field_idx#1 form_field_idx#19 form_field_idx#33 form_field_idx#5 form_field_idx#4 ] zp[1]:3 [ form_cursor_count#23 form_cursor_count#1 form_cursor_count#17 form_cursor_count#16 form_cursor_count#4 ] Limited combination testing to 10 combinations of 16 possible. -Uplifting [keyboard_matrix_read] best 15192566 combination reg byte x [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#0 ] zp[1]:282 [ keyboard_matrix_read::return#2 ] +Uplifting [keyboard_matrix_read] best 15192554 combination reg byte x [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#0 ] zp[1]:282 [ keyboard_matrix_read::return#2 ] Limited combination testing to 10 combinations of 64 possible. -Uplifting [print_str_at] best 15192566 combination zp[2]:138 [ print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 ] zp[2]:140 [ print_str_at::at#2 print_str_at::at#0 ] -Uplifting [form_field_ptr] best 15189551 combination reg byte y [ form_field_ptr::y#0 ] reg byte x [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] zp[1]:334 [ form_field_ptr::x#0 ] zp[2]:335 [ form_field_ptr::return#0 ] zp[2]:332 [ form_field_ptr::line#0 ] zp[2]:270 [ form_field_ptr::return#3 ] +Uplifting [print_str_at] best 15192554 combination zp[2]:138 [ print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 ] zp[2]:140 [ print_str_at::at#2 print_str_at::at#0 ] +Uplifting [form_field_ptr] best 15189539 combination reg byte y [ form_field_ptr::y#0 ] reg byte x [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] zp[1]:332 [ form_field_ptr::x#0 ] zp[2]:333 [ form_field_ptr::return#0 ] zp[2]:330 [ form_field_ptr::line#0 ] zp[2]:270 [ form_field_ptr::return#3 ] Limited combination testing to 10 combinations of 36 possible. -Uplifting [keyboard_event_pressed] best 15189543 combination reg byte a [ keyboard_event_pressed::$0 ] reg byte a [ keyboard_event_pressed::$1 ] zp[1]:339 [ keyboard_event_pressed::row_bits#0 ] zp[1]:142 [ keyboard_event_pressed::keycode#4 ] zp[1]:341 [ keyboard_event_pressed::return#10 ] zp[1]:284 [ keyboard_event_pressed::return#0 ] zp[1]:286 [ keyboard_event_pressed::return#1 ] zp[1]:288 [ keyboard_event_pressed::return#2 ] zp[1]:290 [ keyboard_event_pressed::return#3 ] +Uplifting [keyboard_event_pressed] best 15189531 combination reg byte a [ keyboard_event_pressed::$0 ] reg byte a [ keyboard_event_pressed::$1 ] zp[1]:337 [ keyboard_event_pressed::row_bits#0 ] zp[1]:142 [ keyboard_event_pressed::keycode#4 ] zp[1]:339 [ keyboard_event_pressed::return#10 ] zp[1]:284 [ keyboard_event_pressed::return#0 ] zp[1]:286 [ keyboard_event_pressed::return#1 ] zp[1]:288 [ keyboard_event_pressed::return#2 ] zp[1]:290 [ keyboard_event_pressed::return#3 ] Limited combination testing to 10 combinations of 147456 possible. -Uplifting [apply_preset] best 15177212 combination reg byte y [ apply_preset::i#2 apply_preset::i#1 ] zp[2]:86 [ apply_preset::preset#15 ] reg byte a [ apply_preset::idx#0 ] +Uplifting [apply_preset] best 15177200 combination reg byte y [ apply_preset::i#2 apply_preset::i#1 ] zp[2]:86 [ apply_preset::preset#15 ] reg byte a [ apply_preset::idx#0 ] Limited combination testing to 10 combinations of 12 possible. -Uplifting [form_render_values] best 15162212 combination reg byte x [ form_render_values::idx#2 form_render_values::idx#1 ] -Uplifting [bitmap_plot] best 15161599 combination reg byte a [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ] zp[2]:348 [ bitmap_plot::$0 ] reg byte x [ bitmap_plot::$1 ] zp[2]:350 [ bitmap_plot::plotter#1 ] zp[2]:150 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] zp[2]:346 [ bitmap_plot::plotter#0 ] +Uplifting [form_render_values] best 15162200 combination reg byte x [ form_render_values::idx#2 form_render_values::idx#1 ] +Uplifting [bitmap_plot] best 15161587 combination reg byte a [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ] zp[2]:346 [ bitmap_plot::$0 ] reg byte x [ bitmap_plot::$1 ] zp[2]:348 [ bitmap_plot::plotter#1 ] zp[2]:150 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] zp[2]:344 [ bitmap_plot::plotter#0 ] Limited combination testing to 10 combinations of 16 possible. -Uplifting [keyboard_event_get] best 15161284 combination reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] reg byte a [ keyboard_event_get::return#4 ] zp[1]:238 [ keyboard_event_get::return#3 ] +Uplifting [keyboard_event_get] best 15161272 combination reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] reg byte a [ keyboard_event_get::return#4 ] zp[1]:238 [ keyboard_event_get::return#3 ] Limited combination testing to 10 combinations of 64 possible. -Uplifting [bitmap_line] best 15161284 combination zp[2]:112 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 ] zp[2]:114 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 ] zp[2]:110 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] zp[2]:116 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] zp[2]:306 [ bitmap_line::dy#0 ] zp[2]:314 [ bitmap_line::sy#0 ] zp[2]:302 [ bitmap_line::dx#0 ] zp[2]:310 [ bitmap_line::sx#0 ] zp[2]:257 [ bitmap_line::y2#0 ] zp[2]:255 [ bitmap_line::x2#0 ] -Uplifting [form_control] best 15161272 combination reg byte a [ form_control::$12 ] reg byte a [ form_control::$14 ] zp[1]:278 [ form_control::$15 ] zp[1]:279 [ form_control::$22 ] zp[1]:280 [ form_control::$13 ] zp[1]:276 [ form_control::key_event#0 ] zp[2]:272 [ form_control::field#0 ] zp[1]:152 [ form_control::return#0 ] zp[1]:85 [ form_control::return#2 ] +Uplifting [bitmap_line] best 15161272 combination zp[2]:112 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 ] zp[2]:114 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 ] zp[2]:110 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] zp[2]:116 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] zp[2]:306 [ bitmap_line::dy#0 ] zp[2]:314 [ bitmap_line::sy#0 ] zp[2]:302 [ bitmap_line::dx#0 ] zp[2]:310 [ bitmap_line::sx#0 ] zp[2]:257 [ bitmap_line::y2#0 ] zp[2]:255 [ bitmap_line::x2#0 ] +Uplifting [form_control] best 15161260 combination reg byte a [ form_control::$12 ] reg byte a [ form_control::$14 ] zp[1]:278 [ form_control::$15 ] zp[1]:279 [ form_control::$22 ] zp[1]:280 [ form_control::$13 ] zp[1]:276 [ form_control::key_event#0 ] zp[2]:272 [ form_control::field#0 ] zp[1]:152 [ form_control::return#0 ] zp[1]:85 [ form_control::return#2 ] Limited combination testing to 10 combinations of 65536 possible. -Uplifting [print_char] best 15158269 combination reg byte a [ print_char::ch#0 ] -Uplifting [memset] best 15158160 combination zp[2]:133 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:329 [ memset::end#0 ] reg byte x [ memset::c#5 ] zp[2]:128 [ memset::num#3 ] zp[2]:130 [ memset::str#4 memset::str#0 ] -Uplifting [print_str_lines] best 15150160 combination zp[2]:74 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] reg byte a [ print_str_lines::ch#0 ] -Uplifting [gfx_init_plane_charset8] best 15137160 combination reg byte a [ gfx_init_plane_charset8::c#2 gfx_init_plane_charset8::c#3 ] reg byte a [ gfx_init_plane_charset8::$2 ] zp[1]:58 [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] zp[1]:54 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] zp[2]:55 [ gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 ] zp[1]:57 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] zp[2]:51 [ gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 ] zp[1]:53 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] zp[1]:50 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] +Uplifting [print_char] best 15158257 combination reg byte a [ print_char::ch#0 ] +Uplifting [memset] best 15158148 combination zp[2]:133 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:327 [ memset::end#0 ] reg byte x [ memset::c#5 ] zp[2]:128 [ memset::num#3 ] zp[2]:130 [ memset::str#4 memset::str#0 ] +Uplifting [print_str_lines] best 15150148 combination zp[2]:74 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] reg byte a [ print_str_lines::ch#0 ] +Uplifting [gfx_init_plane_charset8] best 15137148 combination reg byte a [ gfx_init_plane_charset8::c#2 gfx_init_plane_charset8::c#3 ] reg byte a [ gfx_init_plane_charset8::$2 ] zp[1]:58 [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] zp[1]:54 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] zp[2]:55 [ gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 ] zp[1]:57 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] zp[2]:51 [ gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 ] zp[1]:53 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] zp[1]:50 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] Limited combination testing to 10 combinations of 1152 possible. -Uplifting [abs_u16] best 15137150 combination zp[2]:143 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 ] reg byte a [ abs_u16::$0 ] reg byte a [ abs_u16::$1 ] zp[2]:300 [ abs_u16::return#0 ] zp[2]:304 [ abs_u16::return#1 ] +Uplifting [abs_u16] best 15137138 combination zp[2]:143 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 ] reg byte a [ abs_u16::$0 ] reg byte a [ abs_u16::$1 ] zp[2]:300 [ abs_u16::return#0 ] zp[2]:304 [ abs_u16::return#1 ] Limited combination testing to 10 combinations of 16 possible. -Uplifting [form_set_screen] best 15135050 combination reg byte x [ form_set_screen::y#2 form_set_screen::y#1 ] reg byte a [ form_set_screen::$0 ] zp[1]:269 [ form_set_screen::$1 ] zp[2]:78 [ form_set_screen::line#2 form_set_screen::line#1 ] +Uplifting [form_set_screen] best 15135038 combination reg byte x [ form_set_screen::y#2 form_set_screen::y#1 ] reg byte a [ form_set_screen::$0 ] zp[1]:269 [ form_set_screen::$1 ] zp[2]:78 [ form_set_screen::line#2 form_set_screen::line#1 ] Limited combination testing to 10 combinations of 48 possible. -Uplifting [sgn_u16] best 15135040 combination reg byte a [ sgn_u16::$0 ] reg byte a [ sgn_u16::$1 ] zp[2]:145 [ sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ] zp[2]:308 [ sgn_u16::return#0 ] zp[2]:312 [ sgn_u16::return#1 ] zp[2]:147 [ sgn_u16::return#4 ] +Uplifting [sgn_u16] best 15135028 combination reg byte a [ sgn_u16::$0 ] reg byte a [ sgn_u16::$1 ] zp[2]:145 [ sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ] zp[2]:308 [ sgn_u16::return#0 ] zp[2]:312 [ sgn_u16::return#1 ] zp[2]:147 [ sgn_u16::return#4 ] Limited combination testing to 10 combinations of 16 possible. -Uplifting [gfx_init_plane_fill] best 15134134 combination zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 ] reg byte x [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ] zp[1]:124 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] zp[1]:123 [ gfx_init_plane_fill::fill#6 ] zp[4]:316 [ gfx_init_plane_fill::$0 ] zp[2]:320 [ gfx_init_plane_fill::$1 ] reg byte a [ gfx_init_plane_fill::gfxbCpuBank#0 ] zp[2]:323 [ gfx_init_plane_fill::$4 ] zp[2]:325 [ gfx_init_plane_fill::$5 ] zp[2]:327 [ gfx_init_plane_fill::gfxb#0 ] zp[4]:119 [ gfx_init_plane_fill::plane_addr#3 ] +Uplifting [gfx_init_plane_fill] best 15134122 combination zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#0 ] reg byte x [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ] zp[1]:124 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] zp[1]:123 [ gfx_init_plane_fill::fill#6 ] zp[4]:316 [ gfx_init_plane_fill::$0 ] zp[2]:320 [ gfx_init_plane_fill::$1 ] reg byte a [ gfx_init_plane_fill::gfxbCpuBank#0 ] zp[2]:323 [ gfx_init_plane_fill::$4 ] zp[2]:325 [ gfx_init_plane_fill::$5 ] zp[4]:119 [ gfx_init_plane_fill::plane_addr#3 ] Limited combination testing to 10 combinations of 32 possible. -Uplifting [form_mode] best 15128934 combination reg byte a [ form_mode::$11 ] zp[1]:5 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ] reg byte x [ form_mode::i#2 form_mode::i#1 ] +Uplifting [form_mode] best 15128922 combination reg byte a [ form_mode::$11 ] zp[1]:5 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ] reg byte x [ form_mode::i#2 form_mode::i#1 ] Limited combination testing to 10 combinations of 24 possible. -Uplifting [render_preset_name] best 15128600 combination reg byte a [ render_preset_name::idx#10 render_preset_name::idx#0 render_preset_name::idx#1 ] zp[2]:83 [ render_preset_name::name#13 ] -Uplifting [bitmap_init] best 15128370 combination zp[2]:108 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] zp[1]:107 [ bitmap_init::y#2 bitmap_init::y#1 ] zp[1]:297 [ bitmap_init::$4 ] zp[1]:298 [ bitmap_init::$5 ] zp[1]:299 [ bitmap_init::$6 ] zp[1]:296 [ bitmap_init::$7 ] +Uplifting [render_preset_name] best 15128588 combination reg byte a [ render_preset_name::idx#10 render_preset_name::idx#0 render_preset_name::idx#1 ] zp[2]:83 [ render_preset_name::name#13 ] +Uplifting [bitmap_init] best 15128358 combination zp[2]:108 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] zp[1]:107 [ bitmap_init::y#2 bitmap_init::y#1 ] zp[1]:297 [ bitmap_init::$4 ] zp[1]:298 [ bitmap_init::$5 ] zp[1]:299 [ bitmap_init::$6 ] zp[1]:296 [ bitmap_init::$7 ] Limited combination testing to 10 combinations of 15360 possible. -Uplifting [dtvSetCpuBankSegment1] best 15128031 combination reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#13 dtvSetCpuBankSegment1::cpuBankIdx#1 dtvSetCpuBankSegment1::cpuBankIdx#11 ] -Uplifting [gfx_init_screen2] best 15126831 combination reg byte a [ gfx_init_screen2::$0 ] reg byte a [ gfx_init_screen2::$3 ] zp[1]:250 [ gfx_init_screen2::$4 ] zp[1]:26 [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ] zp[1]:247 [ gfx_init_screen2::col#0 ] zp[2]:27 [ gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 ] zp[1]:248 [ gfx_init_screen2::col2#0 ] zp[1]:25 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ] +Uplifting [dtvSetCpuBankSegment1] best 15128019 combination reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#13 dtvSetCpuBankSegment1::cpuBankIdx#1 dtvSetCpuBankSegment1::cpuBankIdx#11 ] +Uplifting [gfx_init_screen2] best 15126819 combination reg byte a [ gfx_init_screen2::$0 ] reg byte a [ gfx_init_screen2::$3 ] zp[1]:250 [ gfx_init_screen2::$4 ] zp[1]:26 [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ] zp[1]:247 [ gfx_init_screen2::col#0 ] zp[2]:27 [ gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 ] zp[1]:248 [ gfx_init_screen2::col2#0 ] zp[1]:25 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ] Limited combination testing to 10 combinations of 2304 possible. -Uplifting [gfx_init_plane_8bppchunky] best 15125801 combination reg byte x [ gfx_init_plane_8bppchunky::gfxbCpuBank#4 gfx_init_plane_8bppchunky::gfxbCpuBank#7 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::gfxbCpuBank#2 ] zp[2]:48 [ gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::gfxb#1 ] reg byte a [ gfx_init_plane_8bppchunky::c#0 ] zp[2]:45 [ gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 ] zp[2]:259 [ gfx_init_plane_8bppchunky::$5 ] zp[1]:44 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ] +Uplifting [gfx_init_plane_8bppchunky] best 15125789 combination reg byte x [ gfx_init_plane_8bppchunky::gfxbCpuBank#4 gfx_init_plane_8bppchunky::gfxbCpuBank#7 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::gfxbCpuBank#2 ] zp[2]:48 [ gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::gfxb#1 ] reg byte a [ gfx_init_plane_8bppchunky::c#0 ] zp[2]:45 [ gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 ] zp[2]:259 [ gfx_init_plane_8bppchunky::$5 ] zp[1]:44 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ] Limited combination testing to 10 combinations of 16 possible. -Uplifting [gfx_init_screen0] best 15124601 combination reg byte a [ gfx_init_screen0::$0 ] reg byte a [ gfx_init_screen0::$2 ] zp[1]:243 [ gfx_init_screen0::$3 ] zp[1]:18 [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] zp[2]:19 [ gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 ] zp[1]:241 [ gfx_init_screen0::$1 ] zp[1]:17 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] +Uplifting [gfx_init_screen0] best 15124589 combination reg byte a [ gfx_init_screen0::$0 ] reg byte a [ gfx_init_screen0::$2 ] zp[1]:243 [ gfx_init_screen0::$3 ] zp[1]:18 [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] zp[2]:19 [ gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 ] zp[1]:241 [ gfx_init_screen0::$1 ] zp[1]:17 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] Limited combination testing to 10 combinations of 768 possible. -Uplifting [gfx_init_screen3] best 15123401 combination reg byte a [ gfx_init_screen3::$0 ] reg byte a [ gfx_init_screen3::$2 ] zp[1]:254 [ gfx_init_screen3::$3 ] zp[1]:30 [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ] zp[2]:31 [ gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 ] zp[1]:252 [ gfx_init_screen3::$1 ] zp[1]:29 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 ] +Uplifting [gfx_init_screen3] best 15123389 combination reg byte a [ gfx_init_screen3::$0 ] reg byte a [ gfx_init_screen3::$2 ] zp[1]:254 [ gfx_init_screen3::$3 ] zp[1]:30 [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ] zp[2]:31 [ gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 ] zp[1]:252 [ gfx_init_screen3::$1 ] zp[1]:29 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 ] Limited combination testing to 10 combinations of 768 possible. -Uplifting [gfx_init_plane_horisontal] best 15122101 combination zp[2]:61 [ gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 ] reg byte a [ gfx_init_plane_horisontal::$2 ] reg byte x [ gfx_init_plane_horisontal::ax#2 gfx_init_plane_horisontal::ax#1 ] zp[1]:60 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ] +Uplifting [gfx_init_plane_horisontal] best 15122089 combination zp[2]:61 [ gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 ] reg byte a [ gfx_init_plane_horisontal::$2 ] reg byte x [ gfx_init_plane_horisontal::ax#2 gfx_init_plane_horisontal::ax#1 ] zp[1]:60 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ] Limited combination testing to 10 combinations of 16 possible. -Uplifting [gfx_init_screen1] best 15120501 combination reg byte x [ gfx_init_screen1::cx#2 gfx_init_screen1::cx#1 ] reg byte a [ gfx_init_screen1::$0 ] zp[1]:245 [ gfx_init_screen1::$1 ] zp[2]:23 [ gfx_init_screen1::ch#2 gfx_init_screen1::ch#3 gfx_init_screen1::ch#1 ] zp[1]:21 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ] +Uplifting [gfx_init_screen1] best 15120489 combination reg byte x [ gfx_init_screen1::cx#2 gfx_init_screen1::cx#1 ] reg byte a [ gfx_init_screen1::$0 ] zp[1]:245 [ gfx_init_screen1::$1 ] zp[2]:23 [ gfx_init_screen1::ch#2 gfx_init_screen1::ch#3 gfx_init_screen1::ch#1 ] zp[1]:21 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ] Limited combination testing to 10 combinations of 64 possible. -Uplifting [gfx_init_plane_horisontal2] best 15119501 combination reg byte a [ gfx_init_plane_horisontal2::$2 ] reg byte a [ gfx_init_plane_horisontal2::row#0 ] zp[1]:71 [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ] zp[2]:69 [ gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::gfxa#3 gfx_init_plane_horisontal2::gfxa#1 ] zp[1]:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ] +Uplifting [gfx_init_plane_horisontal2] best 15119489 combination reg byte a [ gfx_init_plane_horisontal2::$2 ] reg byte a [ gfx_init_plane_horisontal2::row#0 ] zp[1]:71 [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ] zp[2]:69 [ gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::gfxa#3 gfx_init_plane_horisontal2::gfxa#1 ] zp[1]:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ] Limited combination testing to 10 combinations of 64 possible. -Uplifting [gfx_init_charset] best 15118601 combination zp[2]:40 [ gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 ] reg byte x [ gfx_init_charset::l#2 gfx_init_charset::l#1 ] zp[2]:38 [ gfx_init_charset::chargen#2 gfx_init_charset::chargen#3 gfx_init_charset::chargen#1 ] zp[1]:37 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ] -Uplifting [gfx_init_screen4] best 15117701 combination zp[2]:34 [ gfx_init_screen4::ch#2 gfx_init_screen4::ch#3 gfx_init_screen4::ch#1 ] reg byte x [ gfx_init_screen4::cx#2 gfx_init_screen4::cx#1 ] zp[1]:33 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ] -Uplifting [gfx_init_plane_vertical] best 15116801 combination zp[2]:65 [ gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::gfxb#1 ] reg byte x [ gfx_init_plane_vertical::bx#2 gfx_init_plane_vertical::bx#1 ] zp[1]:64 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ] -Uplifting [gfx_init_VICII_bitmap] best 15116801 combination zp[1]:43 [ gfx_init_VICII_bitmap::l#2 gfx_init_VICII_bitmap::l#1 ] -Uplifting [get_VICII_screen] best 15116782 combination reg byte a [ get_VICII_screen::idx#2 get_VICII_screen::idx#0 get_VICII_screen::idx#1 ] zp[2]:209 [ get_VICII_screen::return#10 ] zp[2]:228 [ get_VICII_screen::return#11 ] zp[2]:95 [ get_VICII_screen::return#5 ] -Uplifting [get_plane] best 15116736 combination reg byte a [ get_plane::idx#10 get_plane::idx#1 get_plane::idx#0 ] zp[4]:157 [ get_plane::return#16 ] zp[4]:184 [ get_plane::return#17 ] zp[4]:90 [ get_plane::return#14 ] -Uplifting [get_VICII_charset] best 15116729 combination reg byte a [ get_VICII_charset::idx#0 ] zp[2]:218 [ get_VICII_charset::return#4 ] zp[2]:97 [ get_VICII_charset::return#2 ] -Uplifting [print_set_screen] best 15116729 combination zp[2]:72 [ print_set_screen::screen#2 ] -Uplifting [MOS6526_CIA] best 15116729 combination -Uplifting [MOS6569_VICII] best 15116729 combination -Uplifting [MOS6581_SID] best 15116729 combination -Uplifting [RADIX] best 15116729 combination -Uplifting [print_ln] best 15116729 combination -Uplifting [print_cls] best 15116729 combination -Uplifting [keyboard_init] best 15116729 combination -Uplifting [bitmap_clear] best 15116729 combination -Uplifting [main] best 15116729 combination -Uplifting [gfx_init] best 15116729 combination -Uplifting [gfx_init_plane_vertical2] best 15116729 combination -Uplifting [gfx_init_plane_blank] best 15116729 combination -Uplifting [gfx_init_plane_full] best 15116729 combination +Uplifting [gfx_init_charset] best 15118589 combination zp[2]:40 [ gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 ] reg byte x [ gfx_init_charset::l#2 gfx_init_charset::l#1 ] zp[2]:38 [ gfx_init_charset::chargen#2 gfx_init_charset::chargen#3 gfx_init_charset::chargen#1 ] zp[1]:37 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ] +Uplifting [gfx_init_screen4] best 15117689 combination zp[2]:34 [ gfx_init_screen4::ch#2 gfx_init_screen4::ch#3 gfx_init_screen4::ch#1 ] reg byte x [ gfx_init_screen4::cx#2 gfx_init_screen4::cx#1 ] zp[1]:33 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ] +Uplifting [gfx_init_plane_vertical] best 15116789 combination zp[2]:65 [ gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::gfxb#1 ] reg byte x [ gfx_init_plane_vertical::bx#2 gfx_init_plane_vertical::bx#1 ] zp[1]:64 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ] +Uplifting [gfx_init_VICII_bitmap] best 15116789 combination zp[1]:43 [ gfx_init_VICII_bitmap::l#2 gfx_init_VICII_bitmap::l#1 ] +Uplifting [get_VICII_screen] best 15116770 combination reg byte a [ get_VICII_screen::idx#2 get_VICII_screen::idx#0 get_VICII_screen::idx#1 ] zp[2]:209 [ get_VICII_screen::return#10 ] zp[2]:228 [ get_VICII_screen::return#11 ] zp[2]:95 [ get_VICII_screen::return#5 ] +Uplifting [get_plane] best 15116724 combination reg byte a [ get_plane::idx#10 get_plane::idx#1 get_plane::idx#0 ] zp[4]:157 [ get_plane::return#16 ] zp[4]:184 [ get_plane::return#17 ] zp[4]:90 [ get_plane::return#14 ] +Uplifting [get_VICII_charset] best 15116717 combination reg byte a [ get_VICII_charset::idx#0 ] zp[2]:218 [ get_VICII_charset::return#4 ] zp[2]:97 [ get_VICII_charset::return#2 ] +Uplifting [print_set_screen] best 15116717 combination zp[2]:72 [ print_set_screen::screen#2 ] +Uplifting [MOS6526_CIA] best 15116717 combination +Uplifting [MOS6569_VICII] best 15116717 combination +Uplifting [MOS6581_SID] best 15116717 combination +Uplifting [RADIX] best 15116717 combination +Uplifting [print_ln] best 15116717 combination +Uplifting [print_cls] best 15116717 combination +Uplifting [keyboard_init] best 15116717 combination +Uplifting [bitmap_clear] best 15116717 combination +Uplifting [main] best 15116717 combination +Uplifting [gfx_init] best 15116717 combination +Uplifting [gfx_init_plane_vertical2] best 15116717 combination +Uplifting [gfx_init_plane_blank] best 15116717 combination +Uplifting [gfx_init_plane_full] best 15116717 combination Attempting to uplift remaining variables inzp[1]:103 [ keyboard_events_size#19 keyboard_events_size#107 keyboard_events_size#98 keyboard_events_size#49 keyboard_events_size#28 keyboard_events_size#25 keyboard_events_size#100 keyboard_events_size#106 keyboard_events_size#0 keyboard_events_size#1 keyboard_events_size#3 ] -Uplifting [] best 15116729 combination zp[1]:103 [ keyboard_events_size#19 keyboard_events_size#107 keyboard_events_size#98 keyboard_events_size#49 keyboard_events_size#28 keyboard_events_size#25 keyboard_events_size#100 keyboard_events_size#106 keyboard_events_size#0 keyboard_events_size#1 keyboard_events_size#3 ] +Uplifting [] best 15116717 combination zp[1]:103 [ keyboard_events_size#19 keyboard_events_size#107 keyboard_events_size#98 keyboard_events_size#49 keyboard_events_size#28 keyboard_events_size#25 keyboard_events_size#100 keyboard_events_size#106 keyboard_events_size#0 keyboard_events_size#1 keyboard_events_size#3 ] Attempting to uplift remaining variables inzp[1]:294 [ keyboard_event_scan::event_type#0 ] -Uplifting [keyboard_event_scan] best 14716729 combination reg byte a [ keyboard_event_scan::event_type#0 ] +Uplifting [keyboard_event_scan] best 14716717 combination reg byte a [ keyboard_event_scan::event_type#0 ] Attempting to uplift remaining variables inzp[1]:295 [ keyboard_event_scan::$23 ] -Uplifting [keyboard_event_scan] best 14116729 combination reg byte a [ keyboard_event_scan::$23 ] +Uplifting [keyboard_event_scan] best 14116717 combination reg byte a [ keyboard_event_scan::$23 ] Attempting to uplift remaining variables inzp[1]:101 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Uplifting [keyboard_event_scan] best 12616729 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Uplifting [keyboard_event_scan] best 12616717 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Attempting to uplift remaining variables inzp[1]:102 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] -Uplifting [keyboard_event_scan] best 12616729 combination zp[1]:102 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] +Uplifting [keyboard_event_scan] best 12616717 combination zp[1]:102 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] Attempting to uplift remaining variables inzp[1]:99 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Uplifting [keyboard_event_scan] best 12616729 combination zp[1]:99 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Uplifting [keyboard_event_scan] best 12616717 combination zp[1]:99 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] Attempting to uplift remaining variables inzp[1]:282 [ keyboard_matrix_read::return#2 ] -Uplifting [keyboard_matrix_read] best 12556729 combination reg byte a [ keyboard_matrix_read::return#2 ] +Uplifting [keyboard_matrix_read] best 12556717 combination reg byte a [ keyboard_matrix_read::return#2 ] Attempting to uplift remaining variables inzp[1]:283 [ keyboard_event_scan::row_scan#0 ] -Uplifting [keyboard_event_scan] best 12556729 combination zp[1]:283 [ keyboard_event_scan::row_scan#0 ] -Attempting to uplift remaining variables inzp[1]:334 [ form_field_ptr::x#0 ] -Uplifting [form_field_ptr] best 12556729 combination zp[1]:334 [ form_field_ptr::x#0 ] -Attempting to uplift remaining variables inzp[1]:339 [ keyboard_event_pressed::row_bits#0 ] -Uplifting [keyboard_event_pressed] best 12556729 combination zp[1]:339 [ keyboard_event_pressed::row_bits#0 ] +Uplifting [keyboard_event_scan] best 12556717 combination zp[1]:283 [ keyboard_event_scan::row_scan#0 ] +Attempting to uplift remaining variables inzp[1]:332 [ form_field_ptr::x#0 ] +Uplifting [form_field_ptr] best 12556717 combination zp[1]:332 [ form_field_ptr::x#0 ] +Attempting to uplift remaining variables inzp[1]:337 [ keyboard_event_pressed::row_bits#0 ] +Uplifting [keyboard_event_pressed] best 12556717 combination zp[1]:337 [ keyboard_event_pressed::row_bits#0 ] Attempting to uplift remaining variables inzp[1]:142 [ keyboard_event_pressed::keycode#4 ] -Uplifting [keyboard_event_pressed] best 12556729 combination zp[1]:142 [ keyboard_event_pressed::keycode#4 ] -Attempting to uplift remaining variables inzp[1]:341 [ keyboard_event_pressed::return#10 ] -Uplifting [keyboard_event_pressed] best 12556714 combination reg byte a [ keyboard_event_pressed::return#10 ] +Uplifting [keyboard_event_pressed] best 12556717 combination zp[1]:142 [ keyboard_event_pressed::keycode#4 ] +Attempting to uplift remaining variables inzp[1]:339 [ keyboard_event_pressed::return#10 ] +Uplifting [keyboard_event_pressed] best 12556702 combination reg byte a [ keyboard_event_pressed::return#10 ] Attempting to uplift remaining variables inzp[1]:284 [ keyboard_event_pressed::return#0 ] -Uplifting [keyboard_event_pressed] best 12556708 combination reg byte a [ keyboard_event_pressed::return#0 ] +Uplifting [keyboard_event_pressed] best 12556696 combination reg byte a [ keyboard_event_pressed::return#0 ] Attempting to uplift remaining variables inzp[1]:285 [ keyboard_event_scan::$0 ] -Uplifting [keyboard_event_scan] best 12556704 combination reg byte a [ keyboard_event_scan::$0 ] +Uplifting [keyboard_event_scan] best 12556692 combination reg byte a [ keyboard_event_scan::$0 ] Attempting to uplift remaining variables inzp[1]:286 [ keyboard_event_pressed::return#1 ] -Uplifting [keyboard_event_pressed] best 12556698 combination reg byte a [ keyboard_event_pressed::return#1 ] +Uplifting [keyboard_event_pressed] best 12556686 combination reg byte a [ keyboard_event_pressed::return#1 ] Attempting to uplift remaining variables inzp[1]:287 [ keyboard_event_scan::$3 ] -Uplifting [keyboard_event_scan] best 12556694 combination reg byte a [ keyboard_event_scan::$3 ] +Uplifting [keyboard_event_scan] best 12556682 combination reg byte a [ keyboard_event_scan::$3 ] Attempting to uplift remaining variables inzp[1]:288 [ keyboard_event_pressed::return#2 ] -Uplifting [keyboard_event_pressed] best 12556688 combination reg byte a [ keyboard_event_pressed::return#2 ] +Uplifting [keyboard_event_pressed] best 12556676 combination reg byte a [ keyboard_event_pressed::return#2 ] Attempting to uplift remaining variables inzp[1]:289 [ keyboard_event_scan::$6 ] -Uplifting [keyboard_event_scan] best 12556684 combination reg byte a [ keyboard_event_scan::$6 ] +Uplifting [keyboard_event_scan] best 12556672 combination reg byte a [ keyboard_event_scan::$6 ] Attempting to uplift remaining variables inzp[1]:290 [ keyboard_event_pressed::return#3 ] -Uplifting [keyboard_event_pressed] best 12556678 combination reg byte a [ keyboard_event_pressed::return#3 ] +Uplifting [keyboard_event_pressed] best 12556666 combination reg byte a [ keyboard_event_pressed::return#3 ] Attempting to uplift remaining variables inzp[1]:291 [ keyboard_event_scan::$9 ] -Uplifting [keyboard_event_scan] best 12556674 combination reg byte a [ keyboard_event_scan::$9 ] +Uplifting [keyboard_event_scan] best 12556662 combination reg byte a [ keyboard_event_scan::$9 ] Attempting to uplift remaining variables inzp[1]:4 [ form_field_idx#30 form_field_idx#1 form_field_idx#19 form_field_idx#33 form_field_idx#5 form_field_idx#4 ] -Uplifting [] best 12556674 combination zp[1]:4 [ form_field_idx#30 form_field_idx#1 form_field_idx#19 form_field_idx#33 form_field_idx#5 form_field_idx#4 ] +Uplifting [] best 12556662 combination zp[1]:4 [ form_field_idx#30 form_field_idx#1 form_field_idx#19 form_field_idx#33 form_field_idx#5 form_field_idx#4 ] Attempting to uplift remaining variables inzp[1]:278 [ form_control::$15 ] -Uplifting [form_control] best 12556672 combination reg byte a [ form_control::$15 ] +Uplifting [form_control] best 12556660 combination reg byte a [ form_control::$15 ] Attempting to uplift remaining variables inzp[1]:279 [ form_control::$22 ] -Uplifting [form_control] best 12556670 combination reg byte a [ form_control::$22 ] +Uplifting [form_control] best 12556658 combination reg byte a [ form_control::$22 ] Attempting to uplift remaining variables inzp[1]:280 [ form_control::$13 ] -Uplifting [form_control] best 12556664 combination reg byte a [ form_control::$13 ] +Uplifting [form_control] best 12556652 combination reg byte a [ form_control::$13 ] Attempting to uplift remaining variables inzp[1]:3 [ form_cursor_count#23 form_cursor_count#1 form_cursor_count#17 form_cursor_count#16 form_cursor_count#4 ] -Uplifting [] best 12556664 combination zp[1]:3 [ form_cursor_count#23 form_cursor_count#1 form_cursor_count#17 form_cursor_count#16 form_cursor_count#4 ] +Uplifting [] best 12556652 combination zp[1]:3 [ form_cursor_count#23 form_cursor_count#1 form_cursor_count#17 form_cursor_count#16 form_cursor_count#4 ] Attempting to uplift remaining variables inzp[1]:276 [ form_control::key_event#0 ] -Uplifting [form_control] best 12556652 combination reg byte a [ form_control::key_event#0 ] +Uplifting [form_control] best 12556640 combination reg byte a [ form_control::key_event#0 ] Attempting to uplift remaining variables inzp[1]:14 [ gfx_mode::cx#2 gfx_mode::cx#1 ] -Uplifting [gfx_mode] best 12547652 combination reg byte x [ gfx_mode::cx#2 gfx_mode::cx#1 ] +Uplifting [gfx_mode] best 12547640 combination reg byte x [ gfx_mode::cx#2 gfx_mode::cx#1 ] Attempting to uplift remaining variables inzp[1]:152 [ form_control::return#0 ] -Uplifting [form_control] best 12541652 combination reg byte a [ form_control::return#0 ] +Uplifting [form_control] best 12541640 combination reg byte a [ form_control::return#0 ] Attempting to uplift remaining variables inzp[1]:269 [ form_set_screen::$1 ] -Uplifting [form_set_screen] best 12541052 combination reg byte a [ form_set_screen::$1 ] +Uplifting [form_set_screen] best 12541040 combination reg byte a [ form_set_screen::$1 ] Attempting to uplift remaining variables inzp[1]:58 [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] -Uplifting [gfx_init_plane_charset8] best 12532052 combination reg byte x [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] +Uplifting [gfx_init_plane_charset8] best 12532040 combination reg byte x [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] Attempting to uplift remaining variables inzp[1]:54 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] -Uplifting [gfx_init_plane_charset8] best 12532052 combination zp[1]:54 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] +Uplifting [gfx_init_plane_charset8] best 12532040 combination zp[1]:54 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] Attempting to uplift remaining variables inzp[1]:57 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] -Uplifting [gfx_init_plane_charset8] best 12532052 combination zp[1]:57 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] +Uplifting [gfx_init_plane_charset8] best 12532040 combination zp[1]:57 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] Attempting to uplift remaining variables inzp[1]:5 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ] -Uplifting [form_mode] best 12532052 combination zp[1]:5 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ] +Uplifting [form_mode] best 12532040 combination zp[1]:5 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ] Attempting to uplift remaining variables inzp[1]:15 [ gfx_mode::j#2 gfx_mode::j#1 ] -Uplifting [gfx_mode] best 12530852 combination reg byte x [ gfx_mode::j#2 gfx_mode::j#1 ] +Uplifting [gfx_mode] best 12530840 combination reg byte x [ gfx_mode::j#2 gfx_mode::j#1 ] Attempting to uplift remaining variables inzp[1]:16 [ gfx_mode::i#2 gfx_mode::i#1 ] -Uplifting [gfx_mode] best 12529652 combination reg byte x [ gfx_mode::i#2 gfx_mode::i#1 ] +Uplifting [gfx_mode] best 12529640 combination reg byte x [ gfx_mode::i#2 gfx_mode::i#1 ] Attempting to uplift remaining variables inzp[1]:85 [ form_control::return#2 ] -Uplifting [form_control] best 12528643 combination reg byte x [ form_control::return#2 ] +Uplifting [form_control] best 12528631 combination reg byte x [ form_control::return#2 ] Attempting to uplift remaining variables inzp[1]:107 [ bitmap_init::y#2 bitmap_init::y#1 ] -Uplifting [bitmap_init] best 12528483 combination reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] +Uplifting [bitmap_init] best 12528471 combination reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] Attempting to uplift remaining variables inzp[1]:238 [ keyboard_event_get::return#3 ] -Uplifting [keyboard_event_get] best 12527883 combination reg byte a [ keyboard_event_get::return#3 ] +Uplifting [keyboard_event_get] best 12527871 combination reg byte a [ keyboard_event_get::return#3 ] Attempting to uplift remaining variables inzp[1]:239 [ gfx_mode::keyboard_event#0 ] -Uplifting [gfx_mode] best 12527283 combination reg byte a [ gfx_mode::keyboard_event#0 ] +Uplifting [gfx_mode] best 12527271 combination reg byte a [ gfx_mode::keyboard_event#0 ] Attempting to uplift remaining variables inzp[1]:243 [ gfx_init_screen0::$3 ] -Uplifting [gfx_init_screen0] best 12526683 combination reg byte a [ gfx_init_screen0::$3 ] +Uplifting [gfx_init_screen0] best 12526671 combination reg byte a [ gfx_init_screen0::$3 ] Attempting to uplift remaining variables inzp[1]:245 [ gfx_init_screen1::$1 ] -Uplifting [gfx_init_screen1] best 12526083 combination reg byte a [ gfx_init_screen1::$1 ] +Uplifting [gfx_init_screen1] best 12526071 combination reg byte a [ gfx_init_screen1::$1 ] Attempting to uplift remaining variables inzp[1]:250 [ gfx_init_screen2::$4 ] -Uplifting [gfx_init_screen2] best 12525483 combination reg byte a [ gfx_init_screen2::$4 ] +Uplifting [gfx_init_screen2] best 12525471 combination reg byte a [ gfx_init_screen2::$4 ] Attempting to uplift remaining variables inzp[1]:254 [ gfx_init_screen3::$3 ] -Uplifting [gfx_init_screen3] best 12524883 combination reg byte a [ gfx_init_screen3::$3 ] +Uplifting [gfx_init_screen3] best 12524871 combination reg byte a [ gfx_init_screen3::$3 ] Attempting to uplift remaining variables inzp[1]:297 [ bitmap_init::$4 ] -Uplifting [bitmap_init] best 12524823 combination reg byte a [ bitmap_init::$4 ] +Uplifting [bitmap_init] best 12524811 combination reg byte a [ bitmap_init::$4 ] Attempting to uplift remaining variables inzp[1]:298 [ bitmap_init::$5 ] -Uplifting [bitmap_init] best 12524763 combination reg byte a [ bitmap_init::$5 ] +Uplifting [bitmap_init] best 12524751 combination reg byte a [ bitmap_init::$5 ] Attempting to uplift remaining variables inzp[1]:299 [ bitmap_init::$6 ] -Uplifting [bitmap_init] best 12524703 combination reg byte a [ bitmap_init::$6 ] +Uplifting [bitmap_init] best 12524691 combination reg byte a [ bitmap_init::$6 ] Attempting to uplift remaining variables inzp[1]:18 [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] -Uplifting [gfx_init_screen0] best 12523703 combination reg byte x [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] +Uplifting [gfx_init_screen0] best 12523691 combination reg byte x [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] Attempting to uplift remaining variables inzp[1]:30 [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ] -Uplifting [gfx_init_screen3] best 12522703 combination reg byte x [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ] +Uplifting [gfx_init_screen3] best 12522691 combination reg byte x [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ] Attempting to uplift remaining variables inzp[1]:71 [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ] -Uplifting [gfx_init_plane_horisontal2] best 12521803 combination reg byte x [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ] +Uplifting [gfx_init_plane_horisontal2] best 12521791 combination reg byte x [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ] Attempting to uplift remaining variables inzp[1]:26 [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ] -Uplifting [gfx_init_screen2] best 12520803 combination reg byte x [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ] +Uplifting [gfx_init_screen2] best 12520791 combination reg byte x [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ] Attempting to uplift remaining variables inzp[1]:124 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] -Uplifting [gfx_init_plane_fill] best 12520803 combination zp[1]:124 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] +Uplifting [gfx_init_plane_fill] best 12520791 combination zp[1]:124 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] Attempting to uplift remaining variables inzp[1]:9 [ gfx_mode::cy#4 gfx_mode::cy#1 ] -Uplifting [gfx_mode] best 12520803 combination zp[1]:9 [ gfx_mode::cy#4 gfx_mode::cy#1 ] +Uplifting [gfx_mode] best 12520791 combination zp[1]:9 [ gfx_mode::cy#4 gfx_mode::cy#1 ] Attempting to uplift remaining variables inzp[1]:53 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] -Uplifting [gfx_init_plane_charset8] best 12520803 combination zp[1]:53 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] +Uplifting [gfx_init_plane_charset8] best 12520791 combination zp[1]:53 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] Attempting to uplift remaining variables inzp[1]:247 [ gfx_init_screen2::col#0 ] -Uplifting [gfx_init_screen2] best 12520703 combination reg byte y [ gfx_init_screen2::col#0 ] +Uplifting [gfx_init_screen2] best 12520691 combination reg byte y [ gfx_init_screen2::col#0 ] Attempting to uplift remaining variables inzp[1]:241 [ gfx_init_screen0::$1 ] -Uplifting [gfx_init_screen0] best 12520703 combination zp[1]:241 [ gfx_init_screen0::$1 ] +Uplifting [gfx_init_screen0] best 12520691 combination zp[1]:241 [ gfx_init_screen0::$1 ] Attempting to uplift remaining variables inzp[1]:248 [ gfx_init_screen2::col2#0 ] -Uplifting [gfx_init_screen2] best 12520703 combination zp[1]:248 [ gfx_init_screen2::col2#0 ] +Uplifting [gfx_init_screen2] best 12520691 combination zp[1]:248 [ gfx_init_screen2::col2#0 ] Attempting to uplift remaining variables inzp[1]:252 [ gfx_init_screen3::$1 ] -Uplifting [gfx_init_screen3] best 12520703 combination zp[1]:252 [ gfx_init_screen3::$1 ] +Uplifting [gfx_init_screen3] best 12520691 combination zp[1]:252 [ gfx_init_screen3::$1 ] Attempting to uplift remaining variables inzp[1]:123 [ gfx_init_plane_fill::fill#6 ] -Uplifting [gfx_init_plane_fill] best 12520703 combination zp[1]:123 [ gfx_init_plane_fill::fill#6 ] +Uplifting [gfx_init_plane_fill] best 12520691 combination zp[1]:123 [ gfx_init_plane_fill::fill#6 ] Attempting to uplift remaining variables inzp[1]:296 [ bitmap_init::$7 ] -Uplifting [bitmap_init] best 12520703 combination zp[1]:296 [ bitmap_init::$7 ] +Uplifting [bitmap_init] best 12520691 combination zp[1]:296 [ bitmap_init::$7 ] Attempting to uplift remaining variables inzp[1]:43 [ gfx_init_VICII_bitmap::l#2 gfx_init_VICII_bitmap::l#1 ] -Uplifting [gfx_init_VICII_bitmap] best 12520703 combination zp[1]:43 [ gfx_init_VICII_bitmap::l#2 gfx_init_VICII_bitmap::l#1 ] +Uplifting [gfx_init_VICII_bitmap] best 12520691 combination zp[1]:43 [ gfx_init_VICII_bitmap::l#2 gfx_init_VICII_bitmap::l#1 ] Attempting to uplift remaining variables inzp[1]:21 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ] -Uplifting [gfx_init_screen1] best 12520703 combination zp[1]:21 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ] +Uplifting [gfx_init_screen1] best 12520691 combination zp[1]:21 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ] Attempting to uplift remaining variables inzp[1]:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ] -Uplifting [gfx_init_plane_horisontal2] best 12520703 combination zp[1]:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ] +Uplifting [gfx_init_plane_horisontal2] best 12520691 combination zp[1]:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ] Attempting to uplift remaining variables inzp[1]:17 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] -Uplifting [gfx_init_screen0] best 12520703 combination zp[1]:17 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] +Uplifting [gfx_init_screen0] best 12520691 combination zp[1]:17 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] Attempting to uplift remaining variables inzp[1]:29 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 ] -Uplifting [gfx_init_screen3] best 12520703 combination zp[1]:29 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 ] +Uplifting [gfx_init_screen3] best 12520691 combination zp[1]:29 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 ] Attempting to uplift remaining variables inzp[1]:25 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ] -Uplifting [gfx_init_screen2] best 12520703 combination zp[1]:25 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ] +Uplifting [gfx_init_screen2] best 12520691 combination zp[1]:25 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ] Attempting to uplift remaining variables inzp[1]:60 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ] -Uplifting [gfx_init_plane_horisontal] best 12520703 combination zp[1]:60 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ] +Uplifting [gfx_init_plane_horisontal] best 12520691 combination zp[1]:60 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ] Attempting to uplift remaining variables inzp[1]:44 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ] -Uplifting [gfx_init_plane_8bppchunky] best 12520703 combination zp[1]:44 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ] +Uplifting [gfx_init_plane_8bppchunky] best 12520691 combination zp[1]:44 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ] Attempting to uplift remaining variables inzp[1]:6 [ gfx_mode::dtv_control#12 gfx_mode::dtv_control#6 gfx_mode::dtv_control#13 gfx_mode::dtv_control#5 gfx_mode::dtv_control#11 gfx_mode::dtv_control#4 gfx_mode::dtv_control#10 gfx_mode::dtv_control#3 gfx_mode::dtv_control#15 gfx_mode::dtv_control#14 gfx_mode::dtv_control#2 ] -Uplifting [gfx_mode] best 12520684 combination reg byte x [ gfx_mode::dtv_control#12 gfx_mode::dtv_control#6 gfx_mode::dtv_control#13 gfx_mode::dtv_control#5 gfx_mode::dtv_control#11 gfx_mode::dtv_control#4 gfx_mode::dtv_control#10 gfx_mode::dtv_control#3 gfx_mode::dtv_control#15 gfx_mode::dtv_control#14 gfx_mode::dtv_control#2 ] +Uplifting [gfx_mode] best 12520672 combination reg byte x [ gfx_mode::dtv_control#12 gfx_mode::dtv_control#6 gfx_mode::dtv_control#13 gfx_mode::dtv_control#5 gfx_mode::dtv_control#11 gfx_mode::dtv_control#4 gfx_mode::dtv_control#10 gfx_mode::dtv_control#3 gfx_mode::dtv_control#15 gfx_mode::dtv_control#14 gfx_mode::dtv_control#2 ] Attempting to uplift remaining variables inzp[1]:33 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ] -Uplifting [gfx_init_screen4] best 12520684 combination zp[1]:33 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ] +Uplifting [gfx_init_screen4] best 12520672 combination zp[1]:33 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ] Attempting to uplift remaining variables inzp[1]:64 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ] -Uplifting [gfx_init_plane_vertical] best 12520684 combination zp[1]:64 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ] +Uplifting [gfx_init_plane_vertical] best 12520672 combination zp[1]:64 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ] Attempting to uplift remaining variables inzp[1]:37 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ] -Uplifting [gfx_init_charset] best 12520684 combination zp[1]:37 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ] +Uplifting [gfx_init_charset] best 12520672 combination zp[1]:37 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ] Attempting to uplift remaining variables inzp[1]:50 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] -Uplifting [gfx_init_plane_charset8] best 12520684 combination zp[1]:50 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] +Uplifting [gfx_init_plane_charset8] best 12520672 combination zp[1]:50 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] Attempting to uplift remaining variables inzp[1]:7 [ gfx_mode::VICII_control#4 gfx_mode::VICII_control#2 gfx_mode::VICII_control#5 ] -Uplifting [gfx_mode] best 12520673 combination reg byte x [ gfx_mode::VICII_control#4 gfx_mode::VICII_control#2 gfx_mode::VICII_control#5 ] +Uplifting [gfx_mode] best 12520661 combination reg byte x [ gfx_mode::VICII_control#4 gfx_mode::VICII_control#2 gfx_mode::VICII_control#5 ] Attempting to uplift remaining variables inzp[1]:155 [ gfx_mode::$18 ] -Uplifting [gfx_mode] best 12520667 combination reg byte a [ gfx_mode::$18 ] +Uplifting [gfx_mode] best 12520655 combination reg byte a [ gfx_mode::$18 ] Attempting to uplift remaining variables inzp[1]:171 [ gfx_mode::$23 ] -Uplifting [gfx_mode] best 12520661 combination reg byte a [ gfx_mode::$23 ] +Uplifting [gfx_mode] best 12520649 combination reg byte a [ gfx_mode::$23 ] Attempting to uplift remaining variables inzp[1]:174 [ gfx_mode::$25 ] -Uplifting [gfx_mode] best 12520655 combination reg byte a [ gfx_mode::$25 ] +Uplifting [gfx_mode] best 12520643 combination reg byte a [ gfx_mode::$25 ] Attempting to uplift remaining variables inzp[1]:177 [ gfx_mode::$27 ] -Uplifting [gfx_mode] best 12520649 combination reg byte a [ gfx_mode::$27 ] +Uplifting [gfx_mode] best 12520637 combination reg byte a [ gfx_mode::$27 ] Attempting to uplift remaining variables inzp[1]:178 [ gfx_mode::$28 ] -Uplifting [gfx_mode] best 12520643 combination reg byte a [ gfx_mode::$28 ] +Uplifting [gfx_mode] best 12520631 combination reg byte a [ gfx_mode::$28 ] Attempting to uplift remaining variables inzp[1]:179 [ gfx_mode::$29 ] -Uplifting [gfx_mode] best 12520637 combination reg byte a [ gfx_mode::$29 ] +Uplifting [gfx_mode] best 12520625 combination reg byte a [ gfx_mode::$29 ] Attempting to uplift remaining variables inzp[1]:180 [ gfx_mode::$30 ] -Uplifting [gfx_mode] best 12520631 combination reg byte a [ gfx_mode::$30 ] +Uplifting [gfx_mode] best 12520619 combination reg byte a [ gfx_mode::$30 ] Attempting to uplift remaining variables inzp[1]:181 [ gfx_mode::$31 ] -Uplifting [gfx_mode] best 12520625 combination reg byte a [ gfx_mode::$31 ] +Uplifting [gfx_mode] best 12520613 combination reg byte a [ gfx_mode::$31 ] Attempting to uplift remaining variables inzp[1]:182 [ gfx_mode::$32 ] -Uplifting [gfx_mode] best 12520619 combination reg byte a [ gfx_mode::$32 ] +Uplifting [gfx_mode] best 12520607 combination reg byte a [ gfx_mode::$32 ] Attempting to uplift remaining variables inzp[1]:198 [ gfx_mode::$37 ] -Uplifting [gfx_mode] best 12520613 combination reg byte a [ gfx_mode::$37 ] +Uplifting [gfx_mode] best 12520601 combination reg byte a [ gfx_mode::$37 ] Attempting to uplift remaining variables inzp[1]:201 [ gfx_mode::$39 ] -Uplifting [gfx_mode] best 12520607 combination reg byte a [ gfx_mode::$39 ] +Uplifting [gfx_mode] best 12520595 combination reg byte a [ gfx_mode::$39 ] Attempting to uplift remaining variables inzp[1]:204 [ gfx_mode::$41 ] -Uplifting [gfx_mode] best 12520601 combination reg byte a [ gfx_mode::$41 ] +Uplifting [gfx_mode] best 12520589 combination reg byte a [ gfx_mode::$41 ] Attempting to uplift remaining variables inzp[1]:205 [ gfx_mode::$42 ] -Uplifting [gfx_mode] best 12520595 combination reg byte a [ gfx_mode::$42 ] +Uplifting [gfx_mode] best 12520583 combination reg byte a [ gfx_mode::$42 ] Attempting to uplift remaining variables inzp[1]:206 [ gfx_mode::$43 ] -Uplifting [gfx_mode] best 12520589 combination reg byte a [ gfx_mode::$43 ] +Uplifting [gfx_mode] best 12520577 combination reg byte a [ gfx_mode::$43 ] Attempting to uplift remaining variables inzp[1]:207 [ gfx_mode::$44 ] -Uplifting [gfx_mode] best 12520583 combination reg byte a [ gfx_mode::$44 ] +Uplifting [gfx_mode] best 12520571 combination reg byte a [ gfx_mode::$44 ] Attempting to uplift remaining variables inzp[1]:208 [ gfx_mode::$45 ] -Uplifting [gfx_mode] best 12520577 combination reg byte a [ gfx_mode::$45 ] +Uplifting [gfx_mode] best 12520565 combination reg byte a [ gfx_mode::$45 ] Attempting to uplift remaining variables inzp[1]:224 [ gfx_mode::$51 ] -Uplifting [gfx_mode] best 12520571 combination reg byte a [ gfx_mode::$51 ] +Uplifting [gfx_mode] best 12520559 combination reg byte a [ gfx_mode::$51 ] Attempting to uplift remaining variables inzp[1]:226 [ gfx_mode::$84 ] -Uplifting [gfx_mode] best 12520565 combination reg byte a [ gfx_mode::$84 ] +Uplifting [gfx_mode] best 12520553 combination reg byte a [ gfx_mode::$84 ] Attempting to uplift remaining variables inzp[1]:227 [ gfx_mode::$53 ] -Uplifting [gfx_mode] best 12520559 combination reg byte a [ gfx_mode::$53 ] +Uplifting [gfx_mode] best 12520547 combination reg byte a [ gfx_mode::$53 ] Attempting to uplift remaining variables inzp[1]:230 [ gfx_mode::$55 ] -Uplifting [gfx_mode] best 12520553 combination reg byte a [ gfx_mode::$55 ] +Uplifting [gfx_mode] best 12520541 combination reg byte a [ gfx_mode::$55 ] Attempting to uplift remaining variables inzp[1]:231 [ gfx_mode::$56 ] -Uplifting [gfx_mode] best 12520547 combination reg byte a [ gfx_mode::$56 ] +Uplifting [gfx_mode] best 12520535 combination reg byte a [ gfx_mode::$56 ] Attempting to uplift remaining variables inzp[1]:232 [ gfx_mode::$57 ] -Uplifting [gfx_mode] best 12520541 combination reg byte a [ gfx_mode::$57 ] +Uplifting [gfx_mode] best 12520529 combination reg byte a [ gfx_mode::$57 ] Attempting to uplift remaining variables inzp[1]:233 [ gfx_mode::$58 ] -Uplifting [gfx_mode] best 12520535 combination reg byte a [ gfx_mode::$58 ] +Uplifting [gfx_mode] best 12520523 combination reg byte a [ gfx_mode::$58 ] Attempting to uplift remaining variables inzp[1]:234 [ gfx_mode::$59 ] -Uplifting [gfx_mode] best 12520529 combination reg byte a [ gfx_mode::$59 ] +Uplifting [gfx_mode] best 12520517 combination reg byte a [ gfx_mode::$59 ] Attempting to uplift remaining variables inzp[1]:235 [ gfx_mode::$60 ] -Uplifting [gfx_mode] best 12520523 combination reg byte a [ gfx_mode::$60 ] +Uplifting [gfx_mode] best 12520511 combination reg byte a [ gfx_mode::$60 ] Attempting to uplift remaining variables inzp[1]:236 [ gfx_mode::$61 ] -Uplifting [gfx_mode] best 12520517 combination reg byte a [ gfx_mode::$61 ] +Uplifting [gfx_mode] best 12520505 combination reg byte a [ gfx_mode::$61 ] Attempting to uplift remaining variables inzp[1]:237 [ gfx_mode::$62 ] -Uplifting [gfx_mode] best 12520511 combination reg byte a [ gfx_mode::$62 ] +Uplifting [gfx_mode] best 12520499 combination reg byte a [ gfx_mode::$62 ] Attempting to uplift remaining variables inzp[1]:8 [ gfx_mode::VICII_control2#2 ] -Uplifting [gfx_mode] best 12520502 combination reg byte a [ gfx_mode::VICII_control2#2 ] +Uplifting [gfx_mode] best 12520490 combination reg byte a [ gfx_mode::VICII_control2#2 ] Attempting to uplift remaining variables inzp[1]:225 [ gfx_mode::$52 ] -Uplifting [gfx_mode] best 12520502 combination zp[1]:225 [ gfx_mode::$52 ] +Uplifting [gfx_mode] best 12520490 combination zp[1]:225 [ gfx_mode::$52 ] Attempting to uplift remaining variables inzp[1]:156 [ gfx_mode::plane_a_offs#0 ] -Uplifting [gfx_mode] best 12520500 combination reg byte x [ gfx_mode::plane_a_offs#0 ] +Uplifting [gfx_mode] best 12520488 combination reg byte x [ gfx_mode::plane_a_offs#0 ] Attempting to uplift remaining variables inzp[1]:183 [ gfx_mode::plane_b_offs#0 ] -Uplifting [gfx_mode] best 12520498 combination reg byte x [ gfx_mode::plane_b_offs#0 ] +Uplifting [gfx_mode] best 12520486 combination reg byte x [ gfx_mode::plane_b_offs#0 ] Coalescing zero page register [ zp[2]:112 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 ] ] with [ zp[2]:150 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] ] - score: 4 Coalescing zero page register [ zp[2]:10 [ gfx_mode::VICII_colors#2 gfx_mode::VICII_colors#3 gfx_mode::VICII_colors#1 gfx_mode::VICII_colors#0 ] ] with [ zp[2]:228 [ get_VICII_screen::return#11 ] ] - score: 1 Coalescing zero page register [ zp[2]:72 [ print_set_screen::screen#2 ] ] with [ zp[2]:135 [ print_line_cursor#22 print_line_cursor#1 print_screen#0 print_line_cursor#2 ] ] - score: 1 @@ -13281,8 +13260,8 @@ Coalescing zero page register [ zp[4]:90 [ get_plane::return#14 ] ] with [ zp[4] Coalescing zero page register [ zp[4]:90 [ get_plane::return#14 get_plane::return#16 ] ] with [ zp[4]:184 [ get_plane::return#17 ] ] - score: 1 Coalescing zero page register [ zp[2]:95 [ get_VICII_screen::return#5 ] ] with [ zp[2]:209 [ get_VICII_screen::return#10 ] ] - score: 1 Coalescing zero page register [ zp[2]:97 [ get_VICII_charset::return#2 ] ] with [ zp[2]:218 [ get_VICII_charset::return#4 ] ] - score: 1 -Coalescing zero page register [ zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 ] ] with [ zp[2]:327 [ gfx_init_plane_fill::gfxb#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:128 [ memset::num#3 ] ] with [ zp[2]:329 [ memset::end#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#0 ] ] with [ zp[2]:325 [ gfx_init_plane_fill::$5 ] ] - score: 1 +Coalescing zero page register [ zp[2]:128 [ memset::num#3 ] ] with [ zp[2]:327 [ memset::end#0 ] ] - score: 1 Coalescing zero page register [ zp[2]:130 [ memset::str#4 memset::str#0 ] ] with [ zp[2]:133 [ memset::dst#2 memset::dst#4 memset::dst#1 ] ] - score: 1 Coalescing zero page register [ zp[2]:143 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 ] ] with [ zp[2]:300 [ abs_u16::return#0 ] ] - score: 1 Coalescing zero page register [ zp[2]:143 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 abs_u16::return#0 ] ] with [ zp[2]:304 [ abs_u16::return#1 ] ] - score: 1 @@ -13293,14 +13272,13 @@ Coalescing zero page register [ zp[4]:188 [ gfx_mode::$34 ] ] with [ zp[4]:192 [ Coalescing zero page register [ zp[2]:211 [ gfx_mode::$82 ] ] with [ zp[2]:213 [ gfx_mode::$47 ] ] - score: 1 Coalescing zero page register [ zp[2]:220 [ gfx_mode::$83 ] ] with [ zp[2]:222 [ gfx_mode::$50 ] ] - score: 1 Coalescing zero page register [ zp[2]:270 [ form_field_ptr::return#3 ] ] with [ zp[2]:272 [ form_control::field#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:270 [ form_field_ptr::return#3 form_control::field#0 ] ] with [ zp[2]:335 [ form_field_ptr::return#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:323 [ gfx_init_plane_fill::$4 ] ] with [ zp[2]:325 [ gfx_init_plane_fill::$5 ] ] - score: 1 -Coalescing zero page register [ zp[2]:346 [ bitmap_plot::plotter#0 ] ] with [ zp[2]:350 [ bitmap_plot::plotter#1 ] ] - score: 1 +Coalescing zero page register [ zp[2]:270 [ form_field_ptr::return#3 form_control::field#0 ] ] with [ zp[2]:333 [ form_field_ptr::return#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:344 [ bitmap_plot::plotter#0 ] ] with [ zp[2]:348 [ bitmap_plot::plotter#1 ] ] - score: 1 Coalescing zero page register [ zp[2]:10 [ gfx_mode::VICII_colors#2 gfx_mode::VICII_colors#3 gfx_mode::VICII_colors#1 gfx_mode::VICII_colors#0 get_VICII_screen::return#11 ] ] with [ zp[2]:95 [ get_VICII_screen::return#5 get_VICII_screen::return#10 ] ] - score: 1 Coalescing zero page register [ zp[4]:90 [ get_plane::return#14 get_plane::return#16 get_plane::return#17 ] ] with [ zp[4]:161 [ gfx_mode::$20 gfx_mode::plane_a#0 ] ] - score: 1 Coalescing zero page register [ zp[4]:90 [ get_plane::return#14 get_plane::return#16 get_plane::return#17 gfx_mode::$20 gfx_mode::plane_a#0 ] ] with [ zp[4]:188 [ gfx_mode::$34 gfx_mode::plane_b#0 ] ] - score: 1 Coalescing zero page register [ zp[2]:97 [ get_VICII_charset::return#2 get_VICII_charset::return#4 ] ] with [ zp[2]:220 [ gfx_mode::$83 gfx_mode::$50 ] ] - score: 1 -Coalescing zero page register [ zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 gfx_init_plane_fill::gfxb#0 ] ] with [ zp[2]:323 [ gfx_init_plane_fill::$4 gfx_init_plane_fill::$5 ] ] - score: 1 +Coalescing zero page register [ zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#0 gfx_init_plane_fill::$5 ] ] with [ zp[2]:323 [ gfx_init_plane_fill::$4 ] ] - score: 1 Coalescing zero page register [ zp[2]:143 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 abs_u16::return#0 abs_u16::return#1 ] ] with [ zp[2]:306 [ bitmap_line::dy#0 ] ] - score: 1 Coalescing zero page register [ zp[2]:147 [ sgn_u16::return#4 sgn_u16::return#0 sgn_u16::return#1 ] ] with [ zp[2]:314 [ bitmap_line::sy#0 ] ] - score: 1 Coalescing zero page register [ zp[2]:211 [ gfx_mode::$82 gfx_mode::$47 ] ] with [ zp[2]:215 [ gfx_mode::$48 ] ] - score: 1 @@ -13330,7 +13308,7 @@ Coalescing zero page register [ zp[2]:108 [ bitmap_init::yoffs#2 bitmap_init::yo Coalescing zero page register [ zp[4]:119 [ gfx_init_plane_fill::plane_addr#3 ] ] with [ zp[4]:90 [ get_plane::return#14 get_plane::return#16 get_plane::return#17 gfx_mode::$20 gfx_mode::plane_a#0 gfx_mode::$34 gfx_mode::plane_b#0 ] ] Coalescing zero page register [ zp[1]:123 [ gfx_init_plane_fill::fill#6 ] ] with [ zp[1]:102 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] ] Coalescing zero page register [ zp[1]:124 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] ] with [ zp[1]:103 [ keyboard_events_size#19 keyboard_events_size#107 keyboard_events_size#98 keyboard_events_size#49 keyboard_events_size#28 keyboard_events_size#25 keyboard_events_size#100 keyboard_events_size#106 keyboard_events_size#0 keyboard_events_size#1 keyboard_events_size#3 ] ] -Coalescing zero page register [ zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 gfx_init_plane_fill::gfxb#0 gfx_init_plane_fill::$4 gfx_init_plane_fill::$5 ] ] with [ zp[2]:110 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] ] +Coalescing zero page register [ zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#0 gfx_init_plane_fill::$5 gfx_init_plane_fill::$4 ] ] with [ zp[2]:110 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] ] Coalescing zero page register [ zp[2]:128 [ memset::num#3 memset::end#0 ] ] with [ zp[2]:112 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] ] Coalescing zero page register [ zp[2]:130 [ memset::str#4 memset::str#0 memset::dst#2 memset::dst#4 memset::dst#1 ] ] with [ zp[2]:114 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 ] ] Coalescing zero page register [ zp[2]:140 [ print_str_at::at#2 print_str_at::at#0 ] ] with [ zp[2]:116 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] ] @@ -13345,8 +13323,8 @@ Coalescing zero page register [ zp[2]:259 [ gfx_init_plane_8bppchunky::$5 ] ] wi Coalescing zero page register [ zp[1]:283 [ keyboard_event_scan::row_scan#0 ] ] with [ zp[1]:252 [ gfx_init_screen3::$1 ] ] Coalescing zero page register [ zp[2]:302 [ bitmap_line::dx#0 ] ] with [ zp[2]:270 [ form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 ] ] Coalescing zero page register [ zp[2]:320 [ gfx_init_plane_fill::$1 ] ] with [ zp[2]:310 [ bitmap_line::sx#0 ] ] -Coalescing zero page register [ zp[1]:334 [ form_field_ptr::x#0 ] ] with [ zp[1]:296 [ bitmap_init::$7 ] ] -Coalescing zero page register [ zp[2]:346 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 ] ] with [ zp[2]:332 [ form_field_ptr::line#0 ] ] +Coalescing zero page register [ zp[1]:332 [ form_field_ptr::x#0 ] ] with [ zp[1]:296 [ bitmap_init::$7 ] ] +Coalescing zero page register [ zp[2]:344 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 ] ] with [ zp[2]:330 [ form_field_ptr::line#0 ] ] Coalescing zero page register [ zp[1]:29 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ] ] with [ zp[1]:9 [ gfx_mode::cy#4 gfx_mode::cy#1 form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ] ] Coalescing zero page register [ zp[2]:31 [ gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 ] ] with [ zp[2]:19 [ gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 gfx_mode::VICII_colors#2 gfx_mode::VICII_colors#3 gfx_mode::VICII_colors#1 gfx_mode::VICII_colors#0 get_VICII_screen::return#11 get_VICII_screen::return#5 get_VICII_screen::return#10 gfx_mode::$82 gfx_mode::$47 gfx_mode::$48 ] ] Coalescing zero page register [ zp[1]:37 [ gfx_init_charset::c#4 gfx_init_charset::c#1 gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ] ] with [ zp[1]:17 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 form_cursor_count#23 form_cursor_count#1 form_cursor_count#17 form_cursor_count#16 form_cursor_count#4 ] ] @@ -13357,17 +13335,17 @@ Coalescing zero page register [ zp[2]:69 [ gfx_init_plane_horisontal2::gfxa#2 gf Coalescing zero page register [ zp[2]:108 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 get_VICII_charset::return#2 get_VICII_charset::return#4 gfx_mode::$83 gfx_mode::$50 ] ] with [ zp[2]:78 [ form_set_screen::line#2 form_set_screen::line#1 print_set_screen::screen#2 print_line_cursor#22 print_line_cursor#1 print_screen#0 print_line_cursor#2 ] ] Coalescing zero page register [ zp[1]:123 [ gfx_init_plane_fill::fill#6 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] ] with [ zp[1]:60 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] ] Coalescing zero page register [ zp[1]:124 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 keyboard_events_size#19 keyboard_events_size#107 keyboard_events_size#98 keyboard_events_size#49 keyboard_events_size#28 keyboard_events_size#25 keyboard_events_size#100 keyboard_events_size#106 keyboard_events_size#0 keyboard_events_size#1 keyboard_events_size#3 ] ] with [ zp[1]:64 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] ] -Coalescing zero page register [ zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 gfx_init_plane_fill::gfxb#0 gfx_init_plane_fill::$4 gfx_init_plane_fill::$5 bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] ] with [ zp[2]:83 [ render_preset_name::name#13 print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] ] +Coalescing zero page register [ zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#0 gfx_init_plane_fill::$5 gfx_init_plane_fill::$4 bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] ] with [ zp[2]:83 [ render_preset_name::name#13 print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] ] Coalescing zero page register [ zp[2]:128 [ memset::num#3 memset::end#0 bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] ] with [ zp[2]:86 [ apply_preset::preset#15 print_char_cursor#43 print_char_cursor#2 print_char_cursor#72 print_char_cursor#73 print_char_cursor#44 print_char_cursor#29 ] ] Coalescing zero page register [ zp[1]:225 [ gfx_mode::$52 keyboard_event_pressed::keycode#4 ] ] with [ zp[1]:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] ] Coalescing zero page register [ zp[1]:248 [ gfx_init_screen2::col2#0 gfx_init_screen0::$1 ] ] with [ zp[1]:99 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] ] Coalescing zero page register [ zp[2]:259 [ gfx_init_plane_8bppchunky::$5 gfx_mode::$40 ] ] with [ zp[2]:130 [ memset::str#4 memset::str#0 memset::dst#2 memset::dst#4 memset::dst#1 bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 ] ] -Coalescing zero page register [ zp[1]:334 [ form_field_ptr::x#0 bitmap_init::$7 ] ] with [ zp[1]:283 [ keyboard_event_scan::row_scan#0 gfx_init_screen3::$1 ] ] -Coalescing zero page register [ zp[2]:346 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 form_field_ptr::line#0 ] ] with [ zp[2]:172 [ gfx_mode::$24 sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ] ] +Coalescing zero page register [ zp[1]:332 [ form_field_ptr::x#0 bitmap_init::$7 ] ] with [ zp[1]:283 [ keyboard_event_scan::row_scan#0 gfx_init_screen3::$1 ] ] +Coalescing zero page register [ zp[2]:344 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 form_field_ptr::line#0 ] ] with [ zp[2]:172 [ gfx_mode::$24 sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ] ] Coalescing zero page register [ zp[2]:61 [ gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 ] ] with [ zp[2]:31 [ gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 gfx_mode::VICII_colors#2 gfx_mode::VICII_colors#3 gfx_mode::VICII_colors#1 gfx_mode::VICII_colors#0 get_VICII_screen::return#11 get_VICII_screen::return#5 get_VICII_screen::return#10 gfx_mode::$82 gfx_mode::$47 gfx_mode::$48 ] ] Coalescing zero page register [ zp[2]:69 [ gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::gfxa#3 gfx_init_plane_horisontal2::gfxa#1 gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::gfxb#1 gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::gfxb#1 ] ] with [ zp[2]:38 [ gfx_init_charset::chargen#2 gfx_init_charset::chargen#3 gfx_init_charset::chargen#1 gfx_init_screen4::ch#2 gfx_init_screen4::ch#3 gfx_init_screen4::ch#1 gfx_init_screen1::ch#2 gfx_init_screen1::ch#3 gfx_init_screen1::ch#1 gfx_mode::col#2 gfx_mode::col#3 gfx_mode::col#1 ] ] Coalescing zero page register [ zp[2]:140 [ print_str_at::at#2 print_str_at::at#0 bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] ] with [ zp[2]:108 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 get_VICII_charset::return#2 get_VICII_charset::return#4 gfx_mode::$83 gfx_mode::$50 form_set_screen::line#2 form_set_screen::line#1 print_set_screen::screen#2 print_line_cursor#22 print_line_cursor#1 print_screen#0 print_line_cursor#2 ] ] -Coalescing zero page register [ zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 gfx_init_plane_fill::gfxb#0 gfx_init_plane_fill::$4 gfx_init_plane_fill::$5 bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 render_preset_name::name#13 print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] ] with [ zp[2]:61 [ gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 gfx_mode::VICII_colors#2 gfx_mode::VICII_colors#3 gfx_mode::VICII_colors#1 gfx_mode::VICII_colors#0 get_VICII_screen::return#11 get_VICII_screen::return#5 get_VICII_screen::return#10 gfx_mode::$82 gfx_mode::$47 gfx_mode::$48 ] ] +Coalescing zero page register [ zp[2]:125 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#0 gfx_init_plane_fill::$5 gfx_init_plane_fill::$4 bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 render_preset_name::name#13 print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] ] with [ zp[2]:61 [ gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 gfx_mode::VICII_colors#2 gfx_mode::VICII_colors#3 gfx_mode::VICII_colors#1 gfx_mode::VICII_colors#0 get_VICII_screen::return#11 get_VICII_screen::return#5 get_VICII_screen::return#10 gfx_mode::$82 gfx_mode::$47 gfx_mode::$48 ] ] Coalescing zero page register [ zp[2]:128 [ memset::num#3 memset::end#0 bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 apply_preset::preset#15 print_char_cursor#43 print_char_cursor#2 print_char_cursor#72 print_char_cursor#73 print_char_cursor#44 print_char_cursor#29 ] ] with [ zp[2]:69 [ gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::gfxa#3 gfx_init_plane_horisontal2::gfxa#1 gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::gfxb#1 gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::gfxb#1 gfx_init_charset::chargen#2 gfx_init_charset::chargen#3 gfx_init_charset::chargen#1 gfx_init_screen4::ch#2 gfx_init_screen4::ch#3 gfx_init_screen4::ch#1 gfx_init_screen1::ch#2 gfx_init_screen1::ch#3 gfx_init_screen1::ch#1 gfx_mode::col#2 gfx_mode::col#3 gfx_mode::col#1 ] ] Allocated (was zp[1]:29) zp[1]:2 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 gfx_mode::cy#4 gfx_mode::cy#1 form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ] Allocated (was zp[1]:37) zp[1]:3 [ gfx_init_charset::c#4 gfx_init_charset::c#1 gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 form_cursor_count#23 form_cursor_count#1 form_cursor_count#17 form_cursor_count#16 form_cursor_count#4 ] @@ -13375,7 +13353,7 @@ Allocated (was zp[1]:44) zp[1]:4 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane Allocated (was zp[4]:119) zp[4]:5 [ gfx_init_plane_fill::plane_addr#3 get_plane::return#14 get_plane::return#16 get_plane::return#17 gfx_mode::$20 gfx_mode::plane_a#0 gfx_mode::$34 gfx_mode::plane_b#0 ] Allocated (was zp[1]:123) zp[1]:9 [ gfx_init_plane_fill::fill#6 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] Allocated (was zp[1]:124) zp[1]:10 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 keyboard_events_size#19 keyboard_events_size#107 keyboard_events_size#98 keyboard_events_size#49 keyboard_events_size#28 keyboard_events_size#25 keyboard_events_size#100 keyboard_events_size#106 keyboard_events_size#0 keyboard_events_size#1 keyboard_events_size#3 gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] -Allocated (was zp[2]:125) zp[2]:11 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 gfx_init_plane_fill::gfxb#0 gfx_init_plane_fill::$4 gfx_init_plane_fill::$5 bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 render_preset_name::name#13 print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 gfx_mode::VICII_colors#2 gfx_mode::VICII_colors#3 gfx_mode::VICII_colors#1 gfx_mode::VICII_colors#0 get_VICII_screen::return#11 get_VICII_screen::return#5 get_VICII_screen::return#10 gfx_mode::$82 gfx_mode::$47 gfx_mode::$48 ] +Allocated (was zp[2]:125) zp[2]:11 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#0 gfx_init_plane_fill::$5 gfx_init_plane_fill::$4 bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 render_preset_name::name#13 print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 gfx_mode::VICII_colors#2 gfx_mode::VICII_colors#3 gfx_mode::VICII_colors#1 gfx_mode::VICII_colors#0 get_VICII_screen::return#11 get_VICII_screen::return#5 get_VICII_screen::return#10 gfx_mode::$82 gfx_mode::$47 gfx_mode::$48 ] Allocated (was zp[2]:128) zp[2]:13 [ memset::num#3 memset::end#0 bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 apply_preset::preset#15 print_char_cursor#43 print_char_cursor#2 print_char_cursor#72 print_char_cursor#73 print_char_cursor#44 print_char_cursor#29 gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::gfxa#3 gfx_init_plane_horisontal2::gfxa#1 gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::gfxb#1 gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::gfxb#1 gfx_init_charset::chargen#2 gfx_init_charset::chargen#3 gfx_init_charset::chargen#1 gfx_init_screen4::ch#2 gfx_init_screen4::ch#3 gfx_init_screen4::ch#1 gfx_init_screen1::ch#2 gfx_init_screen1::ch#3 gfx_init_screen1::ch#1 gfx_mode::col#2 gfx_mode::col#3 gfx_mode::col#1 ] Allocated (was zp[2]:140) zp[2]:15 [ print_str_at::at#2 print_str_at::at#0 bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 get_VICII_charset::return#2 get_VICII_charset::return#4 gfx_mode::$83 gfx_mode::$50 form_set_screen::line#2 form_set_screen::line#1 print_set_screen::screen#2 print_line_cursor#22 print_line_cursor#1 print_screen#0 print_line_cursor#2 ] Allocated (was zp[2]:169) zp[2]:17 [ gfx_mode::$22 abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 abs_u16::return#0 abs_u16::return#1 bitmap_line::dy#0 ] @@ -13388,10 +13366,10 @@ Allocated (was zp[2]:259) zp[2]:27 [ gfx_init_plane_8bppchunky::$5 gfx_mode::$40 Allocated (was zp[2]:302) zp[2]:29 [ bitmap_line::dx#0 form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 ] Allocated (was zp[4]:316) zp[4]:31 [ gfx_init_plane_fill::$0 ] Allocated (was zp[2]:320) zp[2]:35 [ gfx_init_plane_fill::$1 bitmap_line::sx#0 ] -Allocated (was zp[1]:334) zp[1]:37 [ form_field_ptr::x#0 bitmap_init::$7 keyboard_event_scan::row_scan#0 gfx_init_screen3::$1 ] -Allocated (was zp[1]:339) zp[1]:38 [ keyboard_event_pressed::row_bits#0 ] -Allocated (was zp[2]:346) zp[2]:39 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 form_field_ptr::line#0 gfx_mode::$24 sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ] -Allocated (was zp[2]:348) zp[2]:41 [ bitmap_plot::$0 ] +Allocated (was zp[1]:332) zp[1]:37 [ form_field_ptr::x#0 bitmap_init::$7 keyboard_event_scan::row_scan#0 gfx_init_screen3::$1 ] +Allocated (was zp[1]:337) zp[1]:38 [ keyboard_event_pressed::row_bits#0 ] +Allocated (was zp[2]:344) zp[2]:39 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 form_field_ptr::line#0 gfx_mode::$24 sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ] +Allocated (was zp[2]:346) zp[2]:41 [ bitmap_plot::$0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments @@ -15954,12 +15932,12 @@ print_cls: { lda.z print_screen+1 sta.z memset.str+1 // [430] call memset - // [740] phi from print_cls to memset [phi:print_cls->memset] + // [739] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: - // [740] phi memset::c#5 = ' ' [phi:print_cls->memset#0] -- vbuxx=vbuc1 + // [739] phi memset::c#5 = ' ' [phi:print_cls->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [740] phi memset::str#4 = memset::str#0 [phi:print_cls->memset#1] -- register_copy - // [740] phi memset::num#3 = $3e8 [phi:print_cls->memset#2] -- vwuz1=vwuc1 + // [739] phi memset::str#4 = memset::str#0 [phi:print_cls->memset#1] -- register_copy + // [739] phi memset::num#3 = $3e8 [phi:print_cls->memset#2] -- vwuz1=vwuc1 lda #<$3e8 sta.z memset.num lda #>$3e8 @@ -16042,7 +16020,7 @@ print_str_lines: { // print_str_lines::@5 __b5: // [446] call print_ln - // [752] phi from print_str_lines::@5 to print_ln [phi:print_str_lines::@5->print_ln] + // [751] phi from print_str_lines::@5 to print_ln [phi:print_str_lines::@5->print_ln] print_ln_from___b5: jsr print_ln jmp __b6 @@ -16126,9 +16104,9 @@ form_render_values: { __b2: // [462] form_field_ptr::field_idx#0 = form_render_values::idx#2 // [463] call form_field_ptr - // [757] phi from form_render_values::@2 to form_field_ptr [phi:form_render_values::@2->form_field_ptr] + // [756] phi from form_render_values::@2 to form_field_ptr [phi:form_render_values::@2->form_field_ptr] form_field_ptr_from___b2: - // [757] phi form_field_ptr::field_idx#2 = form_field_ptr::field_idx#0 [phi:form_render_values::@2->form_field_ptr#0] -- register_copy + // [756] phi form_field_ptr::field_idx#2 = form_field_ptr::field_idx#0 [phi:form_render_values::@2->form_field_ptr#0] -- register_copy jsr form_field_ptr jmp __b3 // form_render_values::@3 @@ -16313,7 +16291,7 @@ render_preset_name: { // [480] print_str_at::str#1 = render_preset_name::name#13 // [481] call print_str_at // Render it - // [763] phi from render_preset_name::@2 to print_str_at [phi:render_preset_name::@2->print_str_at] + // [762] phi from render_preset_name::@2 to print_str_at [phi:render_preset_name::@2->print_str_at] print_str_at_from___b2: jsr print_str_at jmp __breturn @@ -16354,9 +16332,9 @@ form_control: { // [483] form_field_ptr::field_idx#1 = form_field_idx#30 -- vbuxx=vbuz1 ldx.z form_field_idx // [484] call form_field_ptr - // [757] phi from form_control to form_field_ptr [phi:form_control->form_field_ptr] + // [756] phi from form_control to form_field_ptr [phi:form_control->form_field_ptr] form_field_ptr_from_form_control: - // [757] phi form_field_ptr::field_idx#2 = form_field_ptr::field_idx#1 [phi:form_control->form_field_ptr#0] -- register_copy + // [756] phi form_field_ptr::field_idx#2 = form_field_ptr::field_idx#1 [phi:form_control->form_field_ptr#0] -- register_copy jsr form_field_ptr // [485] form_field_ptr::return#3 = form_field_ptr::return#0 jmp __b18 @@ -17256,9 +17234,9 @@ keyboard_event_scan: { // keyboard_event_scan::@17 __b17: // [590] call keyboard_event_pressed - // [773] phi from keyboard_event_scan::@17 to keyboard_event_pressed [phi:keyboard_event_scan::@17->keyboard_event_pressed] + // [772] phi from keyboard_event_scan::@17 to keyboard_event_pressed [phi:keyboard_event_scan::@17->keyboard_event_pressed] keyboard_event_pressed_from___b17: - // [773] phi keyboard_event_pressed::keycode#4 = KEY_LSHIFT [phi:keyboard_event_scan::@17->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [772] phi keyboard_event_pressed::keycode#4 = KEY_LSHIFT [phi:keyboard_event_scan::@17->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed @@ -17288,9 +17266,9 @@ keyboard_event_scan: { // keyboard_event_scan::@1 __b1: // [596] call keyboard_event_pressed - // [773] phi from keyboard_event_scan::@1 to keyboard_event_pressed [phi:keyboard_event_scan::@1->keyboard_event_pressed] + // [772] phi from keyboard_event_scan::@1 to keyboard_event_pressed [phi:keyboard_event_scan::@1->keyboard_event_pressed] keyboard_event_pressed_from___b1: - // [773] phi keyboard_event_pressed::keycode#4 = KEY_RSHIFT [phi:keyboard_event_scan::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [772] phi keyboard_event_pressed::keycode#4 = KEY_RSHIFT [phi:keyboard_event_scan::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed @@ -17317,9 +17295,9 @@ keyboard_event_scan: { // keyboard_event_scan::@2 __b2: // [602] call keyboard_event_pressed - // [773] phi from keyboard_event_scan::@2 to keyboard_event_pressed [phi:keyboard_event_scan::@2->keyboard_event_pressed] + // [772] phi from keyboard_event_scan::@2 to keyboard_event_pressed [phi:keyboard_event_scan::@2->keyboard_event_pressed] keyboard_event_pressed_from___b2: - // [773] phi keyboard_event_pressed::keycode#4 = KEY_CTRL [phi:keyboard_event_scan::@2->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [772] phi keyboard_event_pressed::keycode#4 = KEY_CTRL [phi:keyboard_event_scan::@2->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed @@ -17346,9 +17324,9 @@ keyboard_event_scan: { // keyboard_event_scan::@3 __b3: // [608] call keyboard_event_pressed - // [773] phi from keyboard_event_scan::@3 to keyboard_event_pressed [phi:keyboard_event_scan::@3->keyboard_event_pressed] + // [772] phi from keyboard_event_scan::@3 to keyboard_event_pressed [phi:keyboard_event_scan::@3->keyboard_event_pressed] keyboard_event_pressed_from___b3: - // [773] phi keyboard_event_pressed::keycode#4 = KEY_COMMODORE [phi:keyboard_event_scan::@3->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [772] phi keyboard_event_pressed::keycode#4 = KEY_COMMODORE [phi:keyboard_event_scan::@3->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed @@ -17614,16 +17592,16 @@ bitmap_init: { bitmap_clear: { .const col = WHITE*$10 // [660] call memset - // [740] phi from bitmap_clear to memset [phi:bitmap_clear->memset] + // [739] phi from bitmap_clear to memset [phi:bitmap_clear->memset] memset_from_bitmap_clear: - // [740] phi memset::c#5 = bitmap_clear::col#0 [phi:bitmap_clear->memset#0] -- vbuxx=vbuc1 + // [739] phi memset::c#5 = bitmap_clear::col#0 [phi:bitmap_clear->memset#0] -- vbuxx=vbuc1 ldx #col - // [740] phi memset::str#4 = (void*)VICII_SCREEN0 [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 + // [739] phi memset::str#4 = (void*)VICII_SCREEN0 [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 lda #VICII_SCREEN0 sta.z memset.str+1 - // [740] phi memset::num#3 = $3e8 [phi:bitmap_clear->memset#2] -- vwuz1=vwuc1 + // [739] phi memset::num#3 = $3e8 [phi:bitmap_clear->memset#2] -- vwuz1=vwuc1 lda #<$3e8 sta.z memset.num lda #>$3e8 @@ -17635,16 +17613,16 @@ bitmap_clear: { // bitmap_clear::@1 __b1: // [662] call memset - // [740] phi from bitmap_clear::@1 to memset [phi:bitmap_clear::@1->memset] + // [739] phi from bitmap_clear::@1 to memset [phi:bitmap_clear::@1->memset] memset_from___b1: - // [740] phi memset::c#5 = 0 [phi:bitmap_clear::@1->memset#0] -- vbuxx=vbuc1 + // [739] phi memset::c#5 = 0 [phi:bitmap_clear::@1->memset#0] -- vbuxx=vbuc1 ldx #0 - // [740] phi memset::str#4 = (void*)VICII_BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 + // [739] phi memset::str#4 = (void*)VICII_BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 lda #VICII_BITMAP sta.z memset.str+1 - // [740] phi memset::num#3 = $1f40 [phi:bitmap_clear::@1->memset#2] -- vwuz1=vwuc1 + // [739] phi memset::num#3 = $1f40 [phi:bitmap_clear::@1->memset#2] -- vwuz1=vwuc1 lda #<$1f40 sta.z memset.num lda #>$1f40 @@ -17681,9 +17659,9 @@ bitmap_line: { sbc.z x1+1 sta.z abs_u16.w+1 // [665] call abs_u16 - // [779] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16] + // [778] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16] abs_u16_from_bitmap_line: - // [779] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy + // [778] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy jsr abs_u16 // [666] abs_u16::return#0 = abs_u16::return#4 jmp __b12 @@ -17703,9 +17681,9 @@ bitmap_line: { sbc.z y1+1 sta.z abs_u16.w+1 // [669] call abs_u16 - // [779] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16] + // [778] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16] abs_u16_from___b12: - // [779] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- register_copy + // [778] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- register_copy jsr abs_u16 // [670] abs_u16::return#1 = abs_u16::return#4 jmp __b13 @@ -17735,9 +17713,9 @@ bitmap_line: { sbc.z x1+1 sta.z sgn_u16.w+1 // [675] call sgn_u16 - // [786] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16] + // [785] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16] sgn_u16_from___b1: - // [786] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy + // [785] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy jsr sgn_u16 // [676] sgn_u16::return#0 = sgn_u16::return#4 jmp __b14 @@ -17757,9 +17735,9 @@ bitmap_line: { sbc.z y1+1 sta.z sgn_u16.w+1 // [679] call sgn_u16 - // [786] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16] + // [785] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16] sgn_u16_from___b14: - // [786] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- register_copy + // [785] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- register_copy jsr sgn_u16 // [680] sgn_u16::return#1 = sgn_u16::return#4 jmp __b15 @@ -17798,10 +17776,10 @@ bitmap_line: { // [686] bitmap_plot::y#1 = (byte)bitmap_line::y#4 -- vbuaa=_byte_vwuz1 lda.z y // [687] call bitmap_plot - // [793] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot] + // [792] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot] bitmap_plot_from___b6: - // [793] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy - // [793] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy + // [792] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy + // [792] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy jsr bitmap_plot jmp __b16 // bitmap_line::@16 @@ -17877,10 +17855,10 @@ bitmap_line: { // [697] bitmap_plot::y#2 = (byte)bitmap_line::y#7 -- vbuaa=_byte_vwuz1 lda.z y // [698] call bitmap_plot - // [793] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot] + // [792] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot] bitmap_plot_from___b3: - // [793] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy - // [793] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy + // [792] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy + // [792] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy jsr bitmap_plot jmp __breturn // bitmap_line::@return @@ -17909,10 +17887,10 @@ bitmap_line: { // [703] bitmap_plot::y#3 = (byte)bitmap_line::y#15 -- vbuaa=_byte_vwuz1 lda.z y // [704] call bitmap_plot - // [793] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot] + // [792] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot] bitmap_plot_from___b9: - // [793] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy - // [793] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy + // [792] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy + // [792] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy jsr bitmap_plot jmp __b17 // bitmap_line::@17 @@ -17983,10 +17961,10 @@ bitmap_line: { // [713] bitmap_plot::y#0 = (byte)bitmap_line::y1#0 -- vbuaa=_byte_vwuz1 lda.z y1 // [714] call bitmap_plot - // [793] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot] + // [792] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot] bitmap_plot_from___b4: - // [793] phi bitmap_plot::x#4 = bitmap_plot::x#0 [phi:bitmap_line::@4->bitmap_plot#0] -- register_copy - // [793] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line::@4->bitmap_plot#1] -- register_copy + // [792] phi bitmap_plot::x#4 = bitmap_plot::x#0 [phi:bitmap_line::@4->bitmap_plot#0] -- register_copy + // [792] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line::@4->bitmap_plot#1] -- register_copy jsr bitmap_plot jmp __breturn } @@ -18067,7 +18045,7 @@ gfx_init_plane_fill: { lda.z __5+1 and #>$3fff sta.z __5+1 - // [727] gfx_init_plane_fill::gfxb#0 = $4000 + gfx_init_plane_fill::$5 -- vwuz1=vwuc1_plus_vwuz1 + // [727] gfx_init_plane_fill::gfxb#0 = (byte*) 16384 + gfx_init_plane_fill::$5 -- pbuz1=pbuc1_plus_vwuz1 clc lda.z gfxb adc #<$4000 @@ -18075,63 +18053,62 @@ gfx_init_plane_fill: { lda.z gfxb+1 adc #>$4000 sta.z gfxb+1 - // [728] gfx_init_plane_fill::gfxb#6 = (byte*)gfx_init_plane_fill::gfxb#0 - // [729] phi from gfx_init_plane_fill::@5 to gfx_init_plane_fill::@1 [phi:gfx_init_plane_fill::@5->gfx_init_plane_fill::@1] + // [728] phi from gfx_init_plane_fill::@5 to gfx_init_plane_fill::@1 [phi:gfx_init_plane_fill::@5->gfx_init_plane_fill::@1] __b1_from___b5: - // [729] phi gfx_init_plane_fill::by#4 = 0 [phi:gfx_init_plane_fill::@5->gfx_init_plane_fill::@1#0] -- vbuz1=vbuc1 + // [728] phi gfx_init_plane_fill::by#4 = 0 [phi:gfx_init_plane_fill::@5->gfx_init_plane_fill::@1#0] -- vbuz1=vbuc1 lda #0 sta.z by - // [729] phi gfx_init_plane_fill::gfxb#3 = gfx_init_plane_fill::gfxb#6 [phi:gfx_init_plane_fill::@5->gfx_init_plane_fill::@1#1] -- register_copy + // [728] phi gfx_init_plane_fill::gfxb#3 = gfx_init_plane_fill::gfxb#0 [phi:gfx_init_plane_fill::@5->gfx_init_plane_fill::@1#1] -- register_copy jmp __b1 - // [729] phi from gfx_init_plane_fill::@3 to gfx_init_plane_fill::@1 [phi:gfx_init_plane_fill::@3->gfx_init_plane_fill::@1] + // [728] phi from gfx_init_plane_fill::@3 to gfx_init_plane_fill::@1 [phi:gfx_init_plane_fill::@3->gfx_init_plane_fill::@1] __b1_from___b3: - // [729] phi gfx_init_plane_fill::by#4 = gfx_init_plane_fill::by#1 [phi:gfx_init_plane_fill::@3->gfx_init_plane_fill::@1#0] -- register_copy - // [729] phi gfx_init_plane_fill::gfxb#3 = gfx_init_plane_fill::gfxb#1 [phi:gfx_init_plane_fill::@3->gfx_init_plane_fill::@1#1] -- register_copy + // [728] phi gfx_init_plane_fill::by#4 = gfx_init_plane_fill::by#1 [phi:gfx_init_plane_fill::@3->gfx_init_plane_fill::@1#0] -- register_copy + // [728] phi gfx_init_plane_fill::gfxb#3 = gfx_init_plane_fill::gfxb#1 [phi:gfx_init_plane_fill::@3->gfx_init_plane_fill::@1#1] -- register_copy jmp __b1 // gfx_init_plane_fill::@1 __b1: - // [730] phi from gfx_init_plane_fill::@1 to gfx_init_plane_fill::@2 [phi:gfx_init_plane_fill::@1->gfx_init_plane_fill::@2] + // [729] phi from gfx_init_plane_fill::@1 to gfx_init_plane_fill::@2 [phi:gfx_init_plane_fill::@1->gfx_init_plane_fill::@2] __b2_from___b1: - // [730] phi gfx_init_plane_fill::bx#2 = 0 [phi:gfx_init_plane_fill::@1->gfx_init_plane_fill::@2#0] -- vbuxx=vbuc1 + // [729] phi gfx_init_plane_fill::bx#2 = 0 [phi:gfx_init_plane_fill::@1->gfx_init_plane_fill::@2#0] -- vbuxx=vbuc1 ldx #0 - // [730] phi gfx_init_plane_fill::gfxb#2 = gfx_init_plane_fill::gfxb#3 [phi:gfx_init_plane_fill::@1->gfx_init_plane_fill::@2#1] -- register_copy + // [729] phi gfx_init_plane_fill::gfxb#2 = gfx_init_plane_fill::gfxb#3 [phi:gfx_init_plane_fill::@1->gfx_init_plane_fill::@2#1] -- register_copy jmp __b2 - // [730] phi from gfx_init_plane_fill::@2 to gfx_init_plane_fill::@2 [phi:gfx_init_plane_fill::@2->gfx_init_plane_fill::@2] + // [729] phi from gfx_init_plane_fill::@2 to gfx_init_plane_fill::@2 [phi:gfx_init_plane_fill::@2->gfx_init_plane_fill::@2] __b2_from___b2: - // [730] phi gfx_init_plane_fill::bx#2 = gfx_init_plane_fill::bx#1 [phi:gfx_init_plane_fill::@2->gfx_init_plane_fill::@2#0] -- register_copy - // [730] phi gfx_init_plane_fill::gfxb#2 = gfx_init_plane_fill::gfxb#1 [phi:gfx_init_plane_fill::@2->gfx_init_plane_fill::@2#1] -- register_copy + // [729] phi gfx_init_plane_fill::bx#2 = gfx_init_plane_fill::bx#1 [phi:gfx_init_plane_fill::@2->gfx_init_plane_fill::@2#0] -- register_copy + // [729] phi gfx_init_plane_fill::gfxb#2 = gfx_init_plane_fill::gfxb#1 [phi:gfx_init_plane_fill::@2->gfx_init_plane_fill::@2#1] -- register_copy jmp __b2 // gfx_init_plane_fill::@2 __b2: - // [731] *gfx_init_plane_fill::gfxb#2 = gfx_init_plane_fill::fill#6 -- _deref_pbuz1=vbuz2 + // [730] *gfx_init_plane_fill::gfxb#2 = gfx_init_plane_fill::fill#6 -- _deref_pbuz1=vbuz2 lda.z fill ldy #0 sta (gfxb),y - // [732] gfx_init_plane_fill::gfxb#1 = ++ gfx_init_plane_fill::gfxb#2 -- pbuz1=_inc_pbuz1 + // [731] gfx_init_plane_fill::gfxb#1 = ++ gfx_init_plane_fill::gfxb#2 -- pbuz1=_inc_pbuz1 inc.z gfxb bne !+ inc.z gfxb+1 !: - // [733] gfx_init_plane_fill::bx#1 = ++ gfx_init_plane_fill::bx#2 -- vbuxx=_inc_vbuxx + // [732] gfx_init_plane_fill::bx#1 = ++ gfx_init_plane_fill::bx#2 -- vbuxx=_inc_vbuxx inx - // [734] if(gfx_init_plane_fill::bx#1!=$28) goto gfx_init_plane_fill::@2 -- vbuxx_neq_vbuc1_then_la1 + // [733] if(gfx_init_plane_fill::bx#1!=$28) goto gfx_init_plane_fill::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne __b2_from___b2 jmp __b3 // gfx_init_plane_fill::@3 __b3: - // [735] gfx_init_plane_fill::by#1 = ++ gfx_init_plane_fill::by#4 -- vbuz1=_inc_vbuz1 + // [734] gfx_init_plane_fill::by#1 = ++ gfx_init_plane_fill::by#4 -- vbuz1=_inc_vbuz1 inc.z by - // [736] if(gfx_init_plane_fill::by#1!=$c8) goto gfx_init_plane_fill::@1 -- vbuz1_neq_vbuc1_then_la1 + // [735] if(gfx_init_plane_fill::by#1!=$c8) goto gfx_init_plane_fill::@1 -- vbuz1_neq_vbuc1_then_la1 lda #$c8 cmp.z by bne __b1_from___b3 - // [737] phi from gfx_init_plane_fill::@3 to gfx_init_plane_fill::@4 [phi:gfx_init_plane_fill::@3->gfx_init_plane_fill::@4] + // [736] phi from gfx_init_plane_fill::@3 to gfx_init_plane_fill::@4 [phi:gfx_init_plane_fill::@3->gfx_init_plane_fill::@4] __b4_from___b3: jmp __b4 // gfx_init_plane_fill::@4 __b4: - // [738] call dtvSetCpuBankSegment1 + // [737] call dtvSetCpuBankSegment1 // Reset CPU BANK segment to $4000 // [715] phi from gfx_init_plane_fill::@4 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_fill::@4->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from___b4: @@ -18141,7 +18118,7 @@ gfx_init_plane_fill: { jmp __breturn // gfx_init_plane_fill::@return __breturn: - // [739] return + // [738] return rts } // memset @@ -18152,7 +18129,7 @@ memset: { .label dst = $1b .label str = $1b .label num = $d - // [741] if(memset::num#3<=0) goto memset::@return -- vwuz1_le_0_then_la1 + // [740] if(memset::num#3<=0) goto memset::@return -- vwuz1_le_0_then_la1 lda.z num bne !+ lda.z num+1 @@ -18161,7 +18138,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [742] memset::end#0 = (byte*)memset::str#4 + memset::num#3 -- pbuz1=pbuz2_plus_vwuz1 + // [741] memset::end#0 = (byte*)memset::str#4 + memset::num#3 -- pbuz1=pbuz2_plus_vwuz1 lda.z end clc adc.z str @@ -18169,15 +18146,15 @@ memset: { lda.z end+1 adc.z str+1 sta.z end+1 - // [743] memset::dst#4 = (byte*)memset::str#4 - // [744] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + // [742] memset::dst#4 = (byte*)memset::str#4 + // [743] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: - // [744] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + // [743] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy jmp __b2 // memset::@2 __b2: - // [745] if(memset::dst#2!=memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 + // [744] if(memset::dst#2!=memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 lda.z dst+1 cmp.z end+1 bne __b3 @@ -18187,15 +18164,15 @@ memset: { jmp __breturn // memset::@return __breturn: - // [746] return + // [745] return rts // memset::@3 __b3: - // [747] *memset::dst#2 = memset::c#5 -- _deref_pbuz1=vbuxx + // [746] *memset::dst#2 = memset::c#5 -- _deref_pbuz1=vbuxx txa ldy #0 sta (dst),y - // [748] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 + // [747] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 @@ -18206,10 +18183,10 @@ memset: { // Print a single char // print_char(byte register(A) ch) print_char: { - // [749] *print_char_cursor#43 = print_char::ch#0 -- _deref_pbuz1=vbuaa + // [748] *print_char_cursor#43 = print_char::ch#0 -- _deref_pbuz1=vbuaa ldy #0 sta (print_char_cursor),y - // [750] print_char_cursor#29 = ++ print_char_cursor#43 -- pbuz1=_inc_pbuz1 + // [749] print_char_cursor#29 = ++ print_char_cursor#43 -- pbuz1=_inc_pbuz1 inc.z print_char_cursor bne !+ inc.z print_char_cursor+1 @@ -18217,20 +18194,20 @@ print_char: { jmp __breturn // print_char::@return __breturn: - // [751] return + // [750] return rts } // print_ln // Print a newline print_ln: { - // [753] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] + // [752] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] __b1_from_print_ln: __b1_from___b1: - // [753] phi print_line_cursor#22 = print_line_cursor#1 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy + // [752] phi print_line_cursor#22 = print_line_cursor#1 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy jmp __b1 // print_ln::@1 __b1: - // [754] print_line_cursor#2 = print_line_cursor#22 + $28 -- pbuz1=pbuz1_plus_vbuc1 + // [753] print_line_cursor#2 = print_line_cursor#22 + $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z print_line_cursor @@ -18238,7 +18215,7 @@ print_ln: { bcc !+ inc.z print_line_cursor+1 !: - // [755] if(print_line_cursor#2print_str_at::@1] + // [763] phi from print_str_at to print_str_at::@1 [phi:print_str_at->print_str_at::@1] __b1_from_print_str_at: - // [764] phi print_str_at::at#2 = FORM_SCREEN+$28*2+$a [phi:print_str_at->print_str_at::@1#0] -- pbuz1=pbuc1 + // [763] phi print_str_at::at#2 = FORM_SCREEN+$28*2+$a [phi:print_str_at->print_str_at::@1#0] -- pbuz1=pbuc1 lda #FORM_SCREEN+$28*2+$a sta.z at+1 - // [764] phi print_str_at::str#2 = print_str_at::str#1 [phi:print_str_at->print_str_at::@1#1] -- register_copy + // [763] phi print_str_at::str#2 = print_str_at::str#1 [phi:print_str_at->print_str_at::@1#1] -- register_copy jmp __b1 // print_str_at::@1 __b1: - // [765] if(0!=*print_str_at::str#2) goto print_str_at::@2 -- 0_neq__deref_pbuz1_then_la1 + // [764] if(0!=*print_str_at::str#2) goto print_str_at::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 @@ -18310,29 +18287,29 @@ print_str_at: { jmp __breturn // print_str_at::@return __breturn: - // [766] return + // [765] return rts // print_str_at::@2 __b2: - // [767] *print_str_at::at#2 = *print_str_at::str#2 -- _deref_pbuz1=_deref_pbuz2 + // [766] *print_str_at::at#2 = *print_str_at::str#2 -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (str),y ldy #0 sta (at),y - // [768] print_str_at::at#0 = ++ print_str_at::at#2 -- pbuz1=_inc_pbuz1 + // [767] print_str_at::at#0 = ++ print_str_at::at#2 -- pbuz1=_inc_pbuz1 inc.z at bne !+ inc.z at+1 !: - // [769] print_str_at::str#0 = ++ print_str_at::str#2 -- pbuz1=_inc_pbuz1 + // [768] print_str_at::str#0 = ++ print_str_at::str#2 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [764] phi from print_str_at::@2 to print_str_at::@1 [phi:print_str_at::@2->print_str_at::@1] + // [763] phi from print_str_at::@2 to print_str_at::@1 [phi:print_str_at::@2->print_str_at::@1] __b1_from___b2: - // [764] phi print_str_at::at#2 = print_str_at::at#0 [phi:print_str_at::@2->print_str_at::@1#0] -- register_copy - // [764] phi print_str_at::str#2 = print_str_at::str#0 [phi:print_str_at::@2->print_str_at::@1#1] -- register_copy + // [763] phi print_str_at::at#2 = print_str_at::at#0 [phi:print_str_at::@2->print_str_at::@1#0] -- register_copy + // [763] phi print_str_at::str#2 = print_str_at::str#0 [phi:print_str_at::@2->print_str_at::@1#1] -- register_copy jmp __b1 } // keyboard_matrix_read @@ -18343,16 +18320,16 @@ print_str_at: { // leading to erroneous readings. You must disable the normal interrupt or sei/cli around calls to the keyboard matrix reader. // keyboard_matrix_read(byte register(X) rowid) keyboard_matrix_read: { - // [770] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] -- _deref_pbuc1=pbuc2_derefidx_vbuxx + // [769] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1 - // [771] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 + // [770] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B eor #$ff jmp __breturn // keyboard_matrix_read::@return __breturn: - // [772] return + // [771] return rts } // keyboard_event_pressed @@ -18362,26 +18339,26 @@ keyboard_matrix_read: { keyboard_event_pressed: { .label row_bits = $26 .label keycode = $15 - // [774] keyboard_event_pressed::$0 = keyboard_event_pressed::keycode#4 >> 3 -- vbuaa=vbuz1_ror_3 + // [773] keyboard_event_pressed::$0 = keyboard_event_pressed::keycode#4 >> 3 -- vbuaa=vbuz1_ror_3 lda.z keycode lsr lsr lsr - // [775] keyboard_event_pressed::row_bits#0 = keyboard_scan_values[keyboard_event_pressed::$0] -- vbuz1=pbuc1_derefidx_vbuaa + // [774] keyboard_event_pressed::row_bits#0 = keyboard_scan_values[keyboard_event_pressed::$0] -- vbuz1=pbuc1_derefidx_vbuaa tay lda keyboard_scan_values,y sta.z row_bits - // [776] keyboard_event_pressed::$1 = keyboard_event_pressed::keycode#4 & 7 -- vbuaa=vbuz1_band_vbuc1 + // [775] keyboard_event_pressed::$1 = keyboard_event_pressed::keycode#4 & 7 -- vbuaa=vbuz1_band_vbuc1 lda #7 and.z keycode - // [777] keyboard_event_pressed::return#10 = keyboard_event_pressed::row_bits#0 & keyboard_matrix_col_bitmask[keyboard_event_pressed::$1] -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa + // [776] keyboard_event_pressed::return#10 = keyboard_event_pressed::row_bits#0 & keyboard_matrix_col_bitmask[keyboard_event_pressed::$1] -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa tay lda keyboard_matrix_col_bitmask,y and.z row_bits jmp __breturn // keyboard_event_pressed::@return __breturn: - // [778] return + // [777] return rts } // abs_u16 @@ -18390,21 +18367,21 @@ keyboard_event_pressed: { abs_u16: { .label w = $11 .label return = $11 - // [780] abs_u16::$0 = > abs_u16::w#2 -- vbuaa=_hi_vwuz1 + // [779] abs_u16::$0 = > abs_u16::w#2 -- vbuaa=_hi_vwuz1 lda.z w+1 - // [781] abs_u16::$1 = abs_u16::$0 & $80 -- vbuaa=vbuaa_band_vbuc1 + // [780] abs_u16::$1 = abs_u16::$0 & $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 - // [782] if(0!=abs_u16::$1) goto abs_u16::@1 -- 0_neq_vbuaa_then_la1 + // [781] if(0!=abs_u16::$1) goto abs_u16::@1 -- 0_neq_vbuaa_then_la1 cmp #0 bne __b1 - // [784] phi from abs_u16 abs_u16::@1 to abs_u16::@return [phi:abs_u16/abs_u16::@1->abs_u16::@return] + // [783] phi from abs_u16 abs_u16::@1 to abs_u16::@return [phi:abs_u16/abs_u16::@1->abs_u16::@return] __breturn_from_abs_u16: __breturn_from___b1: - // [784] phi abs_u16::return#4 = abs_u16::w#2 [phi:abs_u16/abs_u16::@1->abs_u16::@return#0] -- register_copy + // [783] phi abs_u16::return#4 = abs_u16::w#2 [phi:abs_u16/abs_u16::@1->abs_u16::@return#0] -- register_copy jmp __breturn // abs_u16::@1 __b1: - // [783] abs_u16::return#2 = - abs_u16::w#2 -- vwuz1=_neg_vwuz1 + // [782] abs_u16::return#2 = - abs_u16::w#2 -- vwuz1=_neg_vwuz1 sec lda #0 sbc.z return @@ -18415,7 +18392,7 @@ abs_u16: { jmp __breturn_from___b1 // abs_u16::@return __breturn: - // [785] return + // [784] return rts } // sgn_u16 @@ -18425,29 +18402,29 @@ abs_u16: { sgn_u16: { .label w = $27 .label return = $13 - // [787] sgn_u16::$0 = > sgn_u16::w#2 -- vbuaa=_hi_vwuz1 + // [786] sgn_u16::$0 = > sgn_u16::w#2 -- vbuaa=_hi_vwuz1 lda.z w+1 - // [788] sgn_u16::$1 = sgn_u16::$0 & $80 -- vbuaa=vbuaa_band_vbuc1 + // [787] sgn_u16::$1 = sgn_u16::$0 & $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 - // [789] if(0!=sgn_u16::$1) goto sgn_u16::@1 -- 0_neq_vbuaa_then_la1 + // [788] if(0!=sgn_u16::$1) goto sgn_u16::@1 -- 0_neq_vbuaa_then_la1 cmp #0 bne __b1_from_sgn_u16 - // [791] phi from sgn_u16 to sgn_u16::@return [phi:sgn_u16->sgn_u16::@return] + // [790] phi from sgn_u16 to sgn_u16::@return [phi:sgn_u16->sgn_u16::@return] __breturn_from_sgn_u16: - // [791] phi sgn_u16::return#4 = 1 [phi:sgn_u16->sgn_u16::@return#0] -- vwuz1=vbuc1 + // [790] phi sgn_u16::return#4 = 1 [phi:sgn_u16->sgn_u16::@return#0] -- vwuz1=vbuc1 lda #<1 sta.z return lda #>1 sta.z return+1 jmp __breturn - // [790] phi from sgn_u16 to sgn_u16::@1 [phi:sgn_u16->sgn_u16::@1] + // [789] phi from sgn_u16 to sgn_u16::@1 [phi:sgn_u16->sgn_u16::@1] __b1_from_sgn_u16: jmp __b1 // sgn_u16::@1 __b1: - // [791] phi from sgn_u16::@1 to sgn_u16::@return [phi:sgn_u16::@1->sgn_u16::@return] + // [790] phi from sgn_u16::@1 to sgn_u16::@return [phi:sgn_u16::@1->sgn_u16::@return] __breturn_from___b1: - // [791] phi sgn_u16::return#4 = -1 [phi:sgn_u16::@1->sgn_u16::@return#0] -- vwuz1=vbuc1 + // [790] phi sgn_u16::return#4 = -1 [phi:sgn_u16::@1->sgn_u16::@return#0] -- vwuz1=vbuc1 lda #<-1 sta.z return lda #>-1 @@ -18455,7 +18432,7 @@ sgn_u16: { jmp __breturn // sgn_u16::@return __breturn: - // [792] return + // [791] return rts } // bitmap_plot @@ -18465,20 +18442,20 @@ bitmap_plot: { .label __0 = $29 .label plotter = $27 .label x = $d - // [794] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] -- vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa + // [793] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] -- vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa tay lda bitmap_plot_yhi,y sta.z plotter+1 lda bitmap_plot_ylo,y sta.z plotter - // [795] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 -- vwuz1=vwuz2_band_vwuc1 + // [794] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 -- vwuz1=vwuz2_band_vwuc1 lda.z x and #<$fff8 sta.z __0 lda.z x+1 and #>$fff8 sta.z __0+1 - // [796] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 -- pbuz1=pbuz1_plus_vwuz2 + // [795] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 -- pbuz1=pbuz1_plus_vwuz2 lda.z plotter clc adc.z __0 @@ -18486,9 +18463,9 @@ bitmap_plot: { lda.z plotter+1 adc.z __0+1 sta.z plotter+1 - // [797] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_lo_vwuz1 + // [796] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_lo_vwuz1 ldx.z x - // [798] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx + // [797] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx lda bitmap_plot_bit,x ldy #0 ora (plotter),y @@ -18497,7 +18474,7 @@ bitmap_plot: { jmp __breturn // bitmap_plot::@return __breturn: - // [799] return + // [798] return rts } // File Data @@ -20038,13 +20015,12 @@ byte gfx_init_plane_fill::by byte gfx_init_plane_fill::by#1 by zp[1]:10 15001.5 byte gfx_init_plane_fill::by#4 by zp[1]:10 3333.6666666666665 byte gfx_init_plane_fill::fill -byte gfx_init_plane_fill::fill#6 fill zp[1]:9 5555.611111111111 +byte gfx_init_plane_fill::fill#6 fill zp[1]:9 5882.411764705882 byte* gfx_init_plane_fill::gfxb -word gfx_init_plane_fill::gfxb#0 gfxb zp[2]:11 1001.0 +byte* gfx_init_plane_fill::gfxb#0 gfxb zp[2]:11 2002.0 byte* gfx_init_plane_fill::gfxb#1 gfxb zp[2]:11 42000.600000000006 byte* gfx_init_plane_fill::gfxb#2 gfxb zp[2]:11 155002.0 byte* gfx_init_plane_fill::gfxb#3 gfxb zp[2]:11 21003.0 -byte* gfx_init_plane_fill::gfxb#6 gfxb zp[2]:11 2002.0 byte gfx_init_plane_fill::gfxbCpuBank byte gfx_init_plane_fill::gfxbCpuBank#0 reg byte a 2002.0 dword gfx_init_plane_fill::plane_addr @@ -20469,7 +20445,7 @@ reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#13 dtvSetCpuBankSegment1::cpuBank zp[4]:5 [ gfx_init_plane_fill::plane_addr#3 get_plane::return#14 get_plane::return#16 get_plane::return#17 gfx_mode::$20 gfx_mode::plane_a#0 gfx_mode::$34 gfx_mode::plane_b#0 ] zp[1]:9 [ gfx_init_plane_fill::fill#6 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] zp[1]:10 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 keyboard_events_size#19 keyboard_events_size#107 keyboard_events_size#98 keyboard_events_size#49 keyboard_events_size#28 keyboard_events_size#25 keyboard_events_size#100 keyboard_events_size#106 keyboard_events_size#0 keyboard_events_size#1 keyboard_events_size#3 gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] -zp[2]:11 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 gfx_init_plane_fill::gfxb#0 gfx_init_plane_fill::$4 gfx_init_plane_fill::$5 bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 render_preset_name::name#13 print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 gfx_mode::VICII_colors#2 gfx_mode::VICII_colors#3 gfx_mode::VICII_colors#1 gfx_mode::VICII_colors#0 get_VICII_screen::return#11 get_VICII_screen::return#5 get_VICII_screen::return#10 gfx_mode::$82 gfx_mode::$47 gfx_mode::$48 ] +zp[2]:11 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#0 gfx_init_plane_fill::$5 gfx_init_plane_fill::$4 bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 render_preset_name::name#13 print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 gfx_mode::VICII_colors#2 gfx_mode::VICII_colors#3 gfx_mode::VICII_colors#1 gfx_mode::VICII_colors#0 get_VICII_screen::return#11 get_VICII_screen::return#5 get_VICII_screen::return#10 gfx_mode::$82 gfx_mode::$47 gfx_mode::$48 ] reg byte x [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ] zp[2]:13 [ memset::num#3 memset::end#0 bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 apply_preset::preset#15 print_char_cursor#43 print_char_cursor#2 print_char_cursor#72 print_char_cursor#73 print_char_cursor#44 print_char_cursor#29 gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::gfxa#3 gfx_init_plane_horisontal2::gfxa#1 gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::gfxb#1 gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::gfxb#1 gfx_init_charset::chargen#2 gfx_init_charset::chargen#3 gfx_init_charset::chargen#1 gfx_init_screen4::ch#2 gfx_init_screen4::ch#3 gfx_init_screen4::ch#1 gfx_init_screen1::ch#2 gfx_init_screen1::ch#3 gfx_init_screen1::ch#1 gfx_mode::col#2 gfx_mode::col#3 gfx_mode::col#1 ] reg byte x [ memset::c#5 ] @@ -22986,11 +22962,11 @@ print_cls: { lda.z print_screen+1 sta.z memset.str+1 // [430] call memset - // [740] phi from print_cls to memset [phi:print_cls->memset] - // [740] phi memset::c#5 = ' ' [phi:print_cls->memset#0] -- vbuxx=vbuc1 + // [739] phi from print_cls to memset [phi:print_cls->memset] + // [739] phi memset::c#5 = ' ' [phi:print_cls->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [740] phi memset::str#4 = memset::str#0 [phi:print_cls->memset#1] -- register_copy - // [740] phi memset::num#3 = $3e8 [phi:print_cls->memset#2] -- vwuz1=vwuc1 + // [739] phi memset::str#4 = memset::str#0 [phi:print_cls->memset#1] -- register_copy + // [739] phi memset::num#3 = $3e8 [phi:print_cls->memset#2] -- vwuz1=vwuc1 lda #<$3e8 sta.z memset.num lda #>$3e8 @@ -23063,7 +23039,7 @@ print_str_lines: { // print_str_lines::@5 // print_ln() // [446] call print_ln - // [752] phi from print_str_lines::@5 to print_ln [phi:print_str_lines::@5->print_ln] + // [751] phi from print_str_lines::@5 to print_ln [phi:print_str_lines::@5->print_ln] jsr print_ln // print_str_lines::@6 // [447] print_char_cursor#73 = print_line_cursor#2 -- pbuz1=pbuz2 @@ -23144,8 +23120,8 @@ form_render_values: { // form_field_ptr(idx) // [462] form_field_ptr::field_idx#0 = form_render_values::idx#2 // [463] call form_field_ptr - // [757] phi from form_render_values::@2 to form_field_ptr [phi:form_render_values::@2->form_field_ptr] - // [757] phi form_field_ptr::field_idx#2 = form_field_ptr::field_idx#0 [phi:form_render_values::@2->form_field_ptr#0] -- register_copy + // [756] phi from form_render_values::@2 to form_field_ptr [phi:form_render_values::@2->form_field_ptr] + // [756] phi form_field_ptr::field_idx#2 = form_field_ptr::field_idx#0 [phi:form_render_values::@2->form_field_ptr#0] -- register_copy jsr form_field_ptr // form_render_values::@3 // *field = print_hextab[form_fields_val[idx]] @@ -23316,7 +23292,7 @@ render_preset_name: { // [480] print_str_at::str#1 = render_preset_name::name#13 // [481] call print_str_at // Render it - // [763] phi from render_preset_name::@2 to print_str_at [phi:render_preset_name::@2->print_str_at] + // [762] phi from render_preset_name::@2 to print_str_at [phi:render_preset_name::@2->print_str_at] jsr print_str_at // render_preset_name::@return // } @@ -23356,8 +23332,8 @@ form_control: { // [483] form_field_ptr::field_idx#1 = form_field_idx#30 -- vbuxx=vbuz1 ldx.z form_field_idx // [484] call form_field_ptr - // [757] phi from form_control to form_field_ptr [phi:form_control->form_field_ptr] - // [757] phi form_field_ptr::field_idx#2 = form_field_ptr::field_idx#1 [phi:form_control->form_field_ptr#0] -- register_copy + // [756] phi from form_control to form_field_ptr [phi:form_control->form_field_ptr] + // [756] phi form_field_ptr::field_idx#2 = form_field_ptr::field_idx#1 [phi:form_control->form_field_ptr#0] -- register_copy jsr form_field_ptr // form_field_ptr(form_field_idx) // [485] form_field_ptr::return#3 = form_field_ptr::return#0 @@ -24185,8 +24161,8 @@ keyboard_event_scan: { // keyboard_event_scan::@17 // keyboard_event_pressed(KEY_LSHIFT) // [590] call keyboard_event_pressed - // [773] phi from keyboard_event_scan::@17 to keyboard_event_pressed [phi:keyboard_event_scan::@17->keyboard_event_pressed] - // [773] phi keyboard_event_pressed::keycode#4 = KEY_LSHIFT [phi:keyboard_event_scan::@17->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [772] phi from keyboard_event_scan::@17 to keyboard_event_pressed [phi:keyboard_event_scan::@17->keyboard_event_pressed] + // [772] phi keyboard_event_pressed::keycode#4 = KEY_LSHIFT [phi:keyboard_event_scan::@17->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed @@ -24212,8 +24188,8 @@ keyboard_event_scan: { __b1: // keyboard_event_pressed(KEY_RSHIFT) // [596] call keyboard_event_pressed - // [773] phi from keyboard_event_scan::@1 to keyboard_event_pressed [phi:keyboard_event_scan::@1->keyboard_event_pressed] - // [773] phi keyboard_event_pressed::keycode#4 = KEY_RSHIFT [phi:keyboard_event_scan::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [772] phi from keyboard_event_scan::@1 to keyboard_event_pressed [phi:keyboard_event_scan::@1->keyboard_event_pressed] + // [772] phi keyboard_event_pressed::keycode#4 = KEY_RSHIFT [phi:keyboard_event_scan::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed @@ -24237,8 +24213,8 @@ keyboard_event_scan: { __b2: // keyboard_event_pressed(KEY_CTRL) // [602] call keyboard_event_pressed - // [773] phi from keyboard_event_scan::@2 to keyboard_event_pressed [phi:keyboard_event_scan::@2->keyboard_event_pressed] - // [773] phi keyboard_event_pressed::keycode#4 = KEY_CTRL [phi:keyboard_event_scan::@2->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [772] phi from keyboard_event_scan::@2 to keyboard_event_pressed [phi:keyboard_event_scan::@2->keyboard_event_pressed] + // [772] phi keyboard_event_pressed::keycode#4 = KEY_CTRL [phi:keyboard_event_scan::@2->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed @@ -24262,8 +24238,8 @@ keyboard_event_scan: { __b3: // keyboard_event_pressed(KEY_COMMODORE) // [608] call keyboard_event_pressed - // [773] phi from keyboard_event_scan::@3 to keyboard_event_pressed [phi:keyboard_event_scan::@3->keyboard_event_pressed] - // [773] phi keyboard_event_pressed::keycode#4 = KEY_COMMODORE [phi:keyboard_event_scan::@3->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [772] phi from keyboard_event_scan::@3 to keyboard_event_pressed [phi:keyboard_event_scan::@3->keyboard_event_pressed] + // [772] phi keyboard_event_pressed::keycode#4 = KEY_COMMODORE [phi:keyboard_event_scan::@3->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed @@ -24515,15 +24491,15 @@ bitmap_clear: { .const col = WHITE*$10 // memset(bitmap_screen, col, 1000uw) // [660] call memset - // [740] phi from bitmap_clear to memset [phi:bitmap_clear->memset] - // [740] phi memset::c#5 = bitmap_clear::col#0 [phi:bitmap_clear->memset#0] -- vbuxx=vbuc1 + // [739] phi from bitmap_clear to memset [phi:bitmap_clear->memset] + // [739] phi memset::c#5 = bitmap_clear::col#0 [phi:bitmap_clear->memset#0] -- vbuxx=vbuc1 ldx #col - // [740] phi memset::str#4 = (void*)VICII_SCREEN0 [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 + // [739] phi memset::str#4 = (void*)VICII_SCREEN0 [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 lda #VICII_SCREEN0 sta.z memset.str+1 - // [740] phi memset::num#3 = $3e8 [phi:bitmap_clear->memset#2] -- vwuz1=vwuc1 + // [739] phi memset::num#3 = $3e8 [phi:bitmap_clear->memset#2] -- vwuz1=vwuc1 lda #<$3e8 sta.z memset.num lda #>$3e8 @@ -24533,15 +24509,15 @@ bitmap_clear: { // bitmap_clear::@1 // memset(bitmap_gfx, 0, 8000uw) // [662] call memset - // [740] phi from bitmap_clear::@1 to memset [phi:bitmap_clear::@1->memset] - // [740] phi memset::c#5 = 0 [phi:bitmap_clear::@1->memset#0] -- vbuxx=vbuc1 + // [739] phi from bitmap_clear::@1 to memset [phi:bitmap_clear::@1->memset] + // [739] phi memset::c#5 = 0 [phi:bitmap_clear::@1->memset#0] -- vbuxx=vbuc1 ldx #0 - // [740] phi memset::str#4 = (void*)VICII_BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 + // [739] phi memset::str#4 = (void*)VICII_BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 lda #VICII_BITMAP sta.z memset.str+1 - // [740] phi memset::num#3 = $1f40 [phi:bitmap_clear::@1->memset#2] -- vwuz1=vwuc1 + // [739] phi memset::num#3 = $1f40 [phi:bitmap_clear::@1->memset#2] -- vwuz1=vwuc1 lda #<$1f40 sta.z memset.num lda #>$1f40 @@ -24578,8 +24554,8 @@ bitmap_line: { sbc.z x1+1 sta.z abs_u16.w+1 // [665] call abs_u16 - // [779] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16] - // [779] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy + // [778] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16] + // [778] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy jsr abs_u16 // abs_u16(x2-x1) // [666] abs_u16::return#0 = abs_u16::return#4 @@ -24600,8 +24576,8 @@ bitmap_line: { sbc.z y1+1 sta.z abs_u16.w+1 // [669] call abs_u16 - // [779] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16] - // [779] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- register_copy + // [778] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16] + // [778] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- register_copy jsr abs_u16 // abs_u16(y2-y1) // [670] abs_u16::return#1 = abs_u16::return#4 @@ -24632,8 +24608,8 @@ bitmap_line: { sbc.z x1+1 sta.z sgn_u16.w+1 // [675] call sgn_u16 - // [786] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16] - // [786] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy + // [785] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16] + // [785] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy jsr sgn_u16 // sgn_u16(x2-x1) // [676] sgn_u16::return#0 = sgn_u16::return#4 @@ -24654,8 +24630,8 @@ bitmap_line: { sbc.z y1+1 sta.z sgn_u16.w+1 // [679] call sgn_u16 - // [786] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16] - // [786] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- register_copy + // [785] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16] + // [785] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- register_copy jsr sgn_u16 // sgn_u16(y2-y1) // [680] sgn_u16::return#1 = sgn_u16::return#4 @@ -24692,9 +24668,9 @@ bitmap_line: { // [686] bitmap_plot::y#1 = (byte)bitmap_line::y#4 -- vbuaa=_byte_vwuz1 lda.z y // [687] call bitmap_plot - // [793] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot] - // [793] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy - // [793] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy + // [792] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot] + // [792] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy + // [792] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy jsr bitmap_plot // bitmap_line::@16 // y += sy @@ -24766,9 +24742,9 @@ bitmap_line: { // [697] bitmap_plot::y#2 = (byte)bitmap_line::y#7 -- vbuaa=_byte_vwuz1 lda.z y // [698] call bitmap_plot - // [793] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot] - // [793] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy - // [793] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy + // [792] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot] + // [792] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy + // [792] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy jsr bitmap_plot // bitmap_line::@return // } @@ -24795,9 +24771,9 @@ bitmap_line: { // [703] bitmap_plot::y#3 = (byte)bitmap_line::y#15 -- vbuaa=_byte_vwuz1 lda.z y // [704] call bitmap_plot - // [793] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot] - // [793] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy - // [793] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy + // [792] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot] + // [792] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy + // [792] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy jsr bitmap_plot // bitmap_line::@17 // x += sx @@ -24867,9 +24843,9 @@ bitmap_line: { // [713] bitmap_plot::y#0 = (byte)bitmap_line::y1#0 -- vbuaa=_byte_vwuz1 lda.z y1 // [714] call bitmap_plot - // [793] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot] - // [793] phi bitmap_plot::x#4 = bitmap_plot::x#0 [phi:bitmap_line::@4->bitmap_plot#0] -- register_copy - // [793] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line::@4->bitmap_plot#1] -- register_copy + // [792] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot] + // [792] phi bitmap_plot::x#4 = bitmap_plot::x#0 [phi:bitmap_line::@4->bitmap_plot#0] -- register_copy + // [792] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line::@4->bitmap_plot#1] -- register_copy jsr bitmap_plot rts } @@ -24954,8 +24930,8 @@ gfx_init_plane_fill: { lda.z __5+1 and #>$3fff sta.z __5+1 - // $4000 + ($4000 sta.z gfxb+1 - // [728] gfx_init_plane_fill::gfxb#6 = (byte*)gfx_init_plane_fill::gfxb#0 - // [729] phi from gfx_init_plane_fill::@5 to gfx_init_plane_fill::@1 [phi:gfx_init_plane_fill::@5->gfx_init_plane_fill::@1] - // [729] phi gfx_init_plane_fill::by#4 = 0 [phi:gfx_init_plane_fill::@5->gfx_init_plane_fill::@1#0] -- vbuz1=vbuc1 + // [728] phi from gfx_init_plane_fill::@5 to gfx_init_plane_fill::@1 [phi:gfx_init_plane_fill::@5->gfx_init_plane_fill::@1] + // [728] phi gfx_init_plane_fill::by#4 = 0 [phi:gfx_init_plane_fill::@5->gfx_init_plane_fill::@1#0] -- vbuz1=vbuc1 lda #0 sta.z by - // [729] phi gfx_init_plane_fill::gfxb#3 = gfx_init_plane_fill::gfxb#6 [phi:gfx_init_plane_fill::@5->gfx_init_plane_fill::@1#1] -- register_copy - // [729] phi from gfx_init_plane_fill::@3 to gfx_init_plane_fill::@1 [phi:gfx_init_plane_fill::@3->gfx_init_plane_fill::@1] - // [729] phi gfx_init_plane_fill::by#4 = gfx_init_plane_fill::by#1 [phi:gfx_init_plane_fill::@3->gfx_init_plane_fill::@1#0] -- register_copy - // [729] phi gfx_init_plane_fill::gfxb#3 = gfx_init_plane_fill::gfxb#1 [phi:gfx_init_plane_fill::@3->gfx_init_plane_fill::@1#1] -- register_copy + // [728] phi gfx_init_plane_fill::gfxb#3 = gfx_init_plane_fill::gfxb#0 [phi:gfx_init_plane_fill::@5->gfx_init_plane_fill::@1#1] -- register_copy + // [728] phi from gfx_init_plane_fill::@3 to gfx_init_plane_fill::@1 [phi:gfx_init_plane_fill::@3->gfx_init_plane_fill::@1] + // [728] phi gfx_init_plane_fill::by#4 = gfx_init_plane_fill::by#1 [phi:gfx_init_plane_fill::@3->gfx_init_plane_fill::@1#0] -- register_copy + // [728] phi gfx_init_plane_fill::gfxb#3 = gfx_init_plane_fill::gfxb#1 [phi:gfx_init_plane_fill::@3->gfx_init_plane_fill::@1#1] -- register_copy // gfx_init_plane_fill::@1 __b1: - // [730] phi from gfx_init_plane_fill::@1 to gfx_init_plane_fill::@2 [phi:gfx_init_plane_fill::@1->gfx_init_plane_fill::@2] - // [730] phi gfx_init_plane_fill::bx#2 = 0 [phi:gfx_init_plane_fill::@1->gfx_init_plane_fill::@2#0] -- vbuxx=vbuc1 + // [729] phi from gfx_init_plane_fill::@1 to gfx_init_plane_fill::@2 [phi:gfx_init_plane_fill::@1->gfx_init_plane_fill::@2] + // [729] phi gfx_init_plane_fill::bx#2 = 0 [phi:gfx_init_plane_fill::@1->gfx_init_plane_fill::@2#0] -- vbuxx=vbuc1 ldx #0 - // [730] phi gfx_init_plane_fill::gfxb#2 = gfx_init_plane_fill::gfxb#3 [phi:gfx_init_plane_fill::@1->gfx_init_plane_fill::@2#1] -- register_copy - // [730] phi from gfx_init_plane_fill::@2 to gfx_init_plane_fill::@2 [phi:gfx_init_plane_fill::@2->gfx_init_plane_fill::@2] - // [730] phi gfx_init_plane_fill::bx#2 = gfx_init_plane_fill::bx#1 [phi:gfx_init_plane_fill::@2->gfx_init_plane_fill::@2#0] -- register_copy - // [730] phi gfx_init_plane_fill::gfxb#2 = gfx_init_plane_fill::gfxb#1 [phi:gfx_init_plane_fill::@2->gfx_init_plane_fill::@2#1] -- register_copy + // [729] phi gfx_init_plane_fill::gfxb#2 = gfx_init_plane_fill::gfxb#3 [phi:gfx_init_plane_fill::@1->gfx_init_plane_fill::@2#1] -- register_copy + // [729] phi from gfx_init_plane_fill::@2 to gfx_init_plane_fill::@2 [phi:gfx_init_plane_fill::@2->gfx_init_plane_fill::@2] + // [729] phi gfx_init_plane_fill::bx#2 = gfx_init_plane_fill::bx#1 [phi:gfx_init_plane_fill::@2->gfx_init_plane_fill::@2#0] -- register_copy + // [729] phi gfx_init_plane_fill::gfxb#2 = gfx_init_plane_fill::gfxb#1 [phi:gfx_init_plane_fill::@2->gfx_init_plane_fill::@2#1] -- register_copy // gfx_init_plane_fill::@2 __b2: // *gfxb++ = fill - // [731] *gfx_init_plane_fill::gfxb#2 = gfx_init_plane_fill::fill#6 -- _deref_pbuz1=vbuz2 + // [730] *gfx_init_plane_fill::gfxb#2 = gfx_init_plane_fill::fill#6 -- _deref_pbuz1=vbuz2 lda.z fill ldy #0 sta (gfxb),y // *gfxb++ = fill; - // [732] gfx_init_plane_fill::gfxb#1 = ++ gfx_init_plane_fill::gfxb#2 -- pbuz1=_inc_pbuz1 + // [731] gfx_init_plane_fill::gfxb#1 = ++ gfx_init_plane_fill::gfxb#2 -- pbuz1=_inc_pbuz1 inc.z gfxb bne !+ inc.z gfxb+1 !: // for ( byte bx : 0..39) - // [733] gfx_init_plane_fill::bx#1 = ++ gfx_init_plane_fill::bx#2 -- vbuxx=_inc_vbuxx + // [732] gfx_init_plane_fill::bx#1 = ++ gfx_init_plane_fill::bx#2 -- vbuxx=_inc_vbuxx inx - // [734] if(gfx_init_plane_fill::bx#1!=$28) goto gfx_init_plane_fill::@2 -- vbuxx_neq_vbuc1_then_la1 + // [733] if(gfx_init_plane_fill::bx#1!=$28) goto gfx_init_plane_fill::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne __b2 // gfx_init_plane_fill::@3 // for(byte by : 0..199) - // [735] gfx_init_plane_fill::by#1 = ++ gfx_init_plane_fill::by#4 -- vbuz1=_inc_vbuz1 + // [734] gfx_init_plane_fill::by#1 = ++ gfx_init_plane_fill::by#4 -- vbuz1=_inc_vbuz1 inc.z by - // [736] if(gfx_init_plane_fill::by#1!=$c8) goto gfx_init_plane_fill::@1 -- vbuz1_neq_vbuc1_then_la1 + // [735] if(gfx_init_plane_fill::by#1!=$c8) goto gfx_init_plane_fill::@1 -- vbuz1_neq_vbuc1_then_la1 lda #$c8 cmp.z by bne __b1 - // [737] phi from gfx_init_plane_fill::@3 to gfx_init_plane_fill::@4 [phi:gfx_init_plane_fill::@3->gfx_init_plane_fill::@4] + // [736] phi from gfx_init_plane_fill::@3 to gfx_init_plane_fill::@4 [phi:gfx_init_plane_fill::@3->gfx_init_plane_fill::@4] // gfx_init_plane_fill::@4 // dtvSetCpuBankSegment1((byte)($4000/$4000)) - // [738] call dtvSetCpuBankSegment1 + // [737] call dtvSetCpuBankSegment1 // Reset CPU BANK segment to $4000 // [715] phi from gfx_init_plane_fill::@4 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_fill::@4->dtvSetCpuBankSegment1] // [715] phi dtvSetCpuBankSegment1::cpuBankIdx#13 = (byte)$4000/$4000 [phi:gfx_init_plane_fill::@4->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 @@ -25019,7 +24994,7 @@ gfx_init_plane_fill: { jsr dtvSetCpuBankSegment1 // gfx_init_plane_fill::@return // } - // [739] return + // [738] return rts } // memset @@ -25031,7 +25006,7 @@ memset: { .label str = $1b .label num = $d // if(num>0) - // [741] if(memset::num#3<=0) goto memset::@return -- vwuz1_le_0_then_la1 + // [740] if(memset::num#3<=0) goto memset::@return -- vwuz1_le_0_then_la1 lda.z num bne !+ lda.z num+1 @@ -25039,7 +25014,7 @@ memset: { !: // memset::@1 // char* end = (char*)str + num - // [742] memset::end#0 = (byte*)memset::str#4 + memset::num#3 -- pbuz1=pbuz2_plus_vwuz1 + // [741] memset::end#0 = (byte*)memset::str#4 + memset::num#3 -- pbuz1=pbuz2_plus_vwuz1 lda.z end clc adc.z str @@ -25047,13 +25022,13 @@ memset: { lda.z end+1 adc.z str+1 sta.z end+1 - // [743] memset::dst#4 = (byte*)memset::str#4 - // [744] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] - // [744] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + // [742] memset::dst#4 = (byte*)memset::str#4 + // [743] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + // [743] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 __b2: // for(char* dst = str; dst!=end; dst++) - // [745] if(memset::dst#2!=memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 + // [744] if(memset::dst#2!=memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 lda.z dst+1 cmp.z end+1 bne __b3 @@ -25063,17 +25038,17 @@ memset: { // memset::@return __breturn: // } - // [746] return + // [745] return rts // memset::@3 __b3: // *dst = c - // [747] *memset::dst#2 = memset::c#5 -- _deref_pbuz1=vbuxx + // [746] *memset::dst#2 = memset::c#5 -- _deref_pbuz1=vbuxx txa ldy #0 sta (dst),y // for(char* dst = str; dst!=end; dst++) - // [748] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 + // [747] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 @@ -25085,29 +25060,29 @@ memset: { // print_char(byte register(A) ch) print_char: { // *(print_char_cursor++) = ch - // [749] *print_char_cursor#43 = print_char::ch#0 -- _deref_pbuz1=vbuaa + // [748] *print_char_cursor#43 = print_char::ch#0 -- _deref_pbuz1=vbuaa ldy #0 sta (print_char_cursor),y // *(print_char_cursor++) = ch; - // [750] print_char_cursor#29 = ++ print_char_cursor#43 -- pbuz1=_inc_pbuz1 + // [749] print_char_cursor#29 = ++ print_char_cursor#43 -- pbuz1=_inc_pbuz1 inc.z print_char_cursor bne !+ inc.z print_char_cursor+1 !: // print_char::@return // } - // [751] return + // [750] return rts } // print_ln // Print a newline print_ln: { - // [753] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] - // [753] phi print_line_cursor#22 = print_line_cursor#1 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy + // [752] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] + // [752] phi print_line_cursor#22 = print_line_cursor#1 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy // print_ln::@1 __b1: // print_line_cursor + $28 - // [754] print_line_cursor#2 = print_line_cursor#22 + $28 -- pbuz1=pbuz1_plus_vbuc1 + // [753] print_line_cursor#2 = print_line_cursor#22 + $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z print_line_cursor @@ -25116,7 +25091,7 @@ print_ln: { inc.z print_line_cursor+1 !: // while (print_line_cursorprint_str_at::@1] - // [764] phi print_str_at::at#2 = FORM_SCREEN+$28*2+$a [phi:print_str_at->print_str_at::@1#0] -- pbuz1=pbuc1 + // [763] phi from print_str_at to print_str_at::@1 [phi:print_str_at->print_str_at::@1] + // [763] phi print_str_at::at#2 = FORM_SCREEN+$28*2+$a [phi:print_str_at->print_str_at::@1#0] -- pbuz1=pbuc1 lda #FORM_SCREEN+$28*2+$a sta.z at+1 - // [764] phi print_str_at::str#2 = print_str_at::str#1 [phi:print_str_at->print_str_at::@1#1] -- register_copy + // [763] phi print_str_at::str#2 = print_str_at::str#1 [phi:print_str_at->print_str_at::@1#1] -- register_copy // print_str_at::@1 __b1: // while(*str) - // [765] if(0!=*print_str_at::str#2) goto print_str_at::@2 -- 0_neq__deref_pbuz1_then_la1 + // [764] if(0!=*print_str_at::str#2) goto print_str_at::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 bne __b2 // print_str_at::@return // } - // [766] return + // [765] return rts // print_str_at::@2 __b2: // *(at++) = *(str++) - // [767] *print_str_at::at#2 = *print_str_at::str#2 -- _deref_pbuz1=_deref_pbuz2 + // [766] *print_str_at::at#2 = *print_str_at::str#2 -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (str),y sta (at),y // *(at++) = *(str++); - // [768] print_str_at::at#0 = ++ print_str_at::at#2 -- pbuz1=_inc_pbuz1 + // [767] print_str_at::at#0 = ++ print_str_at::at#2 -- pbuz1=_inc_pbuz1 inc.z at bne !+ inc.z at+1 !: - // [769] print_str_at::str#0 = ++ print_str_at::str#2 -- pbuz1=_inc_pbuz1 + // [768] print_str_at::str#0 = ++ print_str_at::str#2 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [764] phi from print_str_at::@2 to print_str_at::@1 [phi:print_str_at::@2->print_str_at::@1] - // [764] phi print_str_at::at#2 = print_str_at::at#0 [phi:print_str_at::@2->print_str_at::@1#0] -- register_copy - // [764] phi print_str_at::str#2 = print_str_at::str#0 [phi:print_str_at::@2->print_str_at::@1#1] -- register_copy + // [763] phi from print_str_at::@2 to print_str_at::@1 [phi:print_str_at::@2->print_str_at::@1] + // [763] phi print_str_at::at#2 = print_str_at::at#0 [phi:print_str_at::@2->print_str_at::@1#0] -- register_copy + // [763] phi print_str_at::str#2 = print_str_at::str#0 [phi:print_str_at::@2->print_str_at::@1#1] -- register_copy jmp __b1 } // keyboard_matrix_read @@ -25221,16 +25196,16 @@ print_str_at: { // keyboard_matrix_read(byte register(X) rowid) keyboard_matrix_read: { // CIA1->PORT_A = keyboard_matrix_row_bitmask[rowid] - // [770] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] -- _deref_pbuc1=pbuc2_derefidx_vbuxx + // [769] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1 // ~CIA1->PORT_B - // [771] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 + // [770] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B eor #$ff // keyboard_matrix_read::@return // } - // [772] return + // [771] return rts } // keyboard_event_pressed @@ -25241,28 +25216,28 @@ keyboard_event_pressed: { .label row_bits = $26 .label keycode = $15 // keycode>>3 - // [774] keyboard_event_pressed::$0 = keyboard_event_pressed::keycode#4 >> 3 -- vbuaa=vbuz1_ror_3 + // [773] keyboard_event_pressed::$0 = keyboard_event_pressed::keycode#4 >> 3 -- vbuaa=vbuz1_ror_3 lda.z keycode lsr lsr lsr // char row_bits = keyboard_scan_values[keycode>>3] - // [775] keyboard_event_pressed::row_bits#0 = keyboard_scan_values[keyboard_event_pressed::$0] -- vbuz1=pbuc1_derefidx_vbuaa + // [774] keyboard_event_pressed::row_bits#0 = keyboard_scan_values[keyboard_event_pressed::$0] -- vbuz1=pbuc1_derefidx_vbuaa tay lda keyboard_scan_values,y sta.z row_bits // keycode&7 - // [776] keyboard_event_pressed::$1 = keyboard_event_pressed::keycode#4 & 7 -- vbuaa=vbuz1_band_vbuc1 + // [775] keyboard_event_pressed::$1 = keyboard_event_pressed::keycode#4 & 7 -- vbuaa=vbuz1_band_vbuc1 lda #7 and.z keycode // row_bits & keyboard_matrix_col_bitmask[keycode&7] - // [777] keyboard_event_pressed::return#10 = keyboard_event_pressed::row_bits#0 & keyboard_matrix_col_bitmask[keyboard_event_pressed::$1] -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa + // [776] keyboard_event_pressed::return#10 = keyboard_event_pressed::row_bits#0 & keyboard_matrix_col_bitmask[keyboard_event_pressed::$1] -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa tay lda keyboard_matrix_col_bitmask,y and.z row_bits // keyboard_event_pressed::@return // } - // [778] return + // [777] return rts } // abs_u16 @@ -25272,22 +25247,22 @@ abs_u16: { .label w = $11 .label return = $11 // >w - // [780] abs_u16::$0 = > abs_u16::w#2 -- vbuaa=_hi_vwuz1 + // [779] abs_u16::$0 = > abs_u16::w#2 -- vbuaa=_hi_vwuz1 lda.z w+1 // >w&0x80 - // [781] abs_u16::$1 = abs_u16::$0 & $80 -- vbuaa=vbuaa_band_vbuc1 + // [780] abs_u16::$1 = abs_u16::$0 & $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 // if(>w&0x80) - // [782] if(0!=abs_u16::$1) goto abs_u16::@1 -- 0_neq_vbuaa_then_la1 + // [781] if(0!=abs_u16::$1) goto abs_u16::@1 -- 0_neq_vbuaa_then_la1 cmp #0 bne __b1 - // [784] phi from abs_u16 abs_u16::@1 to abs_u16::@return [phi:abs_u16/abs_u16::@1->abs_u16::@return] - // [784] phi abs_u16::return#4 = abs_u16::w#2 [phi:abs_u16/abs_u16::@1->abs_u16::@return#0] -- register_copy + // [783] phi from abs_u16 abs_u16::@1 to abs_u16::@return [phi:abs_u16/abs_u16::@1->abs_u16::@return] + // [783] phi abs_u16::return#4 = abs_u16::w#2 [phi:abs_u16/abs_u16::@1->abs_u16::@return#0] -- register_copy rts // abs_u16::@1 __b1: // return -w; - // [783] abs_u16::return#2 = - abs_u16::w#2 -- vwuz1=_neg_vwuz1 + // [782] abs_u16::return#2 = - abs_u16::w#2 -- vwuz1=_neg_vwuz1 sec lda #0 sbc.z return @@ -25297,7 +25272,7 @@ abs_u16: { sta.z return+1 // abs_u16::@return // } - // [785] return + // [784] return rts } // sgn_u16 @@ -25308,33 +25283,33 @@ sgn_u16: { .label w = $27 .label return = $13 // >w - // [787] sgn_u16::$0 = > sgn_u16::w#2 -- vbuaa=_hi_vwuz1 + // [786] sgn_u16::$0 = > sgn_u16::w#2 -- vbuaa=_hi_vwuz1 lda.z w+1 // >w&0x80 - // [788] sgn_u16::$1 = sgn_u16::$0 & $80 -- vbuaa=vbuaa_band_vbuc1 + // [787] sgn_u16::$1 = sgn_u16::$0 & $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 // if(>w&0x80) - // [789] if(0!=sgn_u16::$1) goto sgn_u16::@1 -- 0_neq_vbuaa_then_la1 + // [788] if(0!=sgn_u16::$1) goto sgn_u16::@1 -- 0_neq_vbuaa_then_la1 cmp #0 bne __b1 - // [791] phi from sgn_u16 to sgn_u16::@return [phi:sgn_u16->sgn_u16::@return] - // [791] phi sgn_u16::return#4 = 1 [phi:sgn_u16->sgn_u16::@return#0] -- vwuz1=vbuc1 + // [790] phi from sgn_u16 to sgn_u16::@return [phi:sgn_u16->sgn_u16::@return] + // [790] phi sgn_u16::return#4 = 1 [phi:sgn_u16->sgn_u16::@return#0] -- vwuz1=vbuc1 lda #<1 sta.z return lda #>1 sta.z return+1 rts - // [790] phi from sgn_u16 to sgn_u16::@1 [phi:sgn_u16->sgn_u16::@1] + // [789] phi from sgn_u16 to sgn_u16::@1 [phi:sgn_u16->sgn_u16::@1] // sgn_u16::@1 __b1: - // [791] phi from sgn_u16::@1 to sgn_u16::@return [phi:sgn_u16::@1->sgn_u16::@return] - // [791] phi sgn_u16::return#4 = -1 [phi:sgn_u16::@1->sgn_u16::@return#0] -- vwuz1=vbuc1 + // [790] phi from sgn_u16::@1 to sgn_u16::@return [phi:sgn_u16::@1->sgn_u16::@return] + // [790] phi sgn_u16::return#4 = -1 [phi:sgn_u16::@1->sgn_u16::@return#0] -- vwuz1=vbuc1 lda #<-1 sta.z return sta.z return+1 // sgn_u16::@return // } - // [792] return + // [791] return rts } // bitmap_plot @@ -25345,14 +25320,14 @@ bitmap_plot: { .label plotter = $27 .label x = $d // char* plotter = (char*) { bitmap_plot_yhi[y], bitmap_plot_ylo[y] } - // [794] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] -- vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa + // [793] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] -- vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa tay lda bitmap_plot_yhi,y sta.z plotter+1 lda bitmap_plot_ylo,y sta.z plotter // x & $fff8 - // [795] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 -- vwuz1=vwuz2_band_vwuc1 + // [794] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 -- vwuz1=vwuz2_band_vwuc1 lda.z x and #<$fff8 sta.z __0 @@ -25360,7 +25335,7 @@ bitmap_plot: { and #>$fff8 sta.z __0+1 // plotter += ( x & $fff8 ) - // [796] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 -- pbuz1=pbuz1_plus_vwuz2 + // [795] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 -- pbuz1=pbuz1_plus_vwuz2 lda.z plotter clc adc.z __0 @@ -25369,17 +25344,17 @@ bitmap_plot: { adc.z __0+1 sta.z plotter+1 // 0 Inversing boolean not [32] print_str_lines::$0 = 0 == print_str_lines::ch#0 from [31] print_str_lines::$5 = 0 != print_str_lines::ch#0 Inversing boolean not [123] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [122] bitmap_init::$0 = bitmap_init::bits#1 == 0 Inversing boolean not [143] bitmap_init::$9 = bitmap_init::$7 != 7 from [142] bitmap_init::$8 = bitmap_init::$7 == 7 -Inversing boolean not [239] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [238] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1 -Inversing boolean not [259] bitmap_line::$23 = bitmap_line::dx#5 >= bitmap_line::e1#1 from [258] bitmap_line::$22 = bitmap_line::dx#5 < bitmap_line::e1#1 -Inversing boolean not [365] menu::$7 = menu::$5 == 0 from [364] menu::$6 = menu::$5 != 0 -Inversing boolean not [374] menu::$11 = menu::$9 == 0 from [373] menu::$10 = menu::$9 != 0 -Inversing boolean not [395] menu::$15 = menu::$13 == 0 from [394] menu::$14 = menu::$13 != 0 -Inversing boolean not [408] menu::$19 = menu::$17 == 0 from [407] menu::$18 = menu::$17 != 0 -Inversing boolean not [421] menu::$23 = menu::$21 == 0 from [420] menu::$22 = menu::$21 != 0 -Inversing boolean not [436] menu::$27 = menu::$25 == 0 from [435] menu::$26 = menu::$25 != 0 -Inversing boolean not [449] menu::$31 = menu::$29 == 0 from [448] menu::$30 = menu::$29 != 0 -Inversing boolean not [462] menu::$35 = menu::$33 == 0 from [461] menu::$34 = menu::$33 != 0 -Inversing boolean not [475] menu::$39 = menu::$37 == 0 from [474] menu::$38 = menu::$37 != 0 -Inversing boolean not [488] menu::$43 = menu::$41 == 0 from [487] menu::$42 = menu::$41 != 0 -Inversing boolean not [501] menu::$47 = menu::$45 == 0 from [500] menu::$46 = menu::$45 != 0 -Inversing boolean not [514] menu::$51 = menu::$49 == 0 from [513] menu::$50 = menu::$49 != 0 -Inversing boolean not [537] mode_ctrl::$3 = mode_ctrl::$1 == 0 from [536] mode_ctrl::$2 = mode_ctrl::$1 != 0 -Inversing boolean not [547] mode_ctrl::$6 = mode_ctrl::$4 == 0 from [546] mode_ctrl::$5 = mode_ctrl::$4 != 0 -Inversing boolean not [559] mode_ctrl::$10 = mode_ctrl::$8 == 0 from [558] mode_ctrl::$9 = mode_ctrl::$8 != 0 -Inversing boolean not [571] mode_ctrl::$14 = mode_ctrl::$12 == 0 from [570] mode_ctrl::$13 = mode_ctrl::$12 != 0 -Inversing boolean not [583] mode_ctrl::$18 = mode_ctrl::$16 == 0 from [582] mode_ctrl::$17 = mode_ctrl::$16 != 0 -Inversing boolean not [595] mode_ctrl::$22 = mode_ctrl::$20 == 0 from [594] mode_ctrl::$21 = mode_ctrl::$20 != 0 -Inversing boolean not [607] mode_ctrl::$26 = mode_ctrl::$24 == 0 from [606] mode_ctrl::$25 = mode_ctrl::$24 != 0 -Inversing boolean not [619] mode_ctrl::$30 = mode_ctrl::$28 == 0 from [618] mode_ctrl::$29 = mode_ctrl::$28 != 0 -Inversing boolean not [626] mode_ctrl::$32 = mode_ctrl::ctrl#14 == dtv_control#73 from [625] mode_ctrl::$31 = mode_ctrl::ctrl#14 != dtv_control#73 -Inversing boolean not [1323] mode_8bpppixelcell::$10 = mode_8bpppixelcell::$8 == 0 from [1322] mode_8bpppixelcell::$9 = mode_8bpppixelcell::$8 != 0 -Inversing boolean not [1381] mode_8bppchunkybmm::$5 = mode_8bppchunkybmm::gfxb#3 != $8000 from [1380] mode_8bppchunkybmm::$4 = mode_8bppchunkybmm::gfxb#3 == $8000 +Inversing boolean not [238] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [237] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1 +Inversing boolean not [258] bitmap_line::$23 = bitmap_line::dx#5 >= bitmap_line::e1#1 from [257] bitmap_line::$22 = bitmap_line::dx#5 < bitmap_line::e1#1 +Inversing boolean not [364] menu::$7 = menu::$5 == 0 from [363] menu::$6 = menu::$5 != 0 +Inversing boolean not [373] menu::$11 = menu::$9 == 0 from [372] menu::$10 = menu::$9 != 0 +Inversing boolean not [394] menu::$15 = menu::$13 == 0 from [393] menu::$14 = menu::$13 != 0 +Inversing boolean not [407] menu::$19 = menu::$17 == 0 from [406] menu::$18 = menu::$17 != 0 +Inversing boolean not [420] menu::$23 = menu::$21 == 0 from [419] menu::$22 = menu::$21 != 0 +Inversing boolean not [435] menu::$27 = menu::$25 == 0 from [434] menu::$26 = menu::$25 != 0 +Inversing boolean not [448] menu::$31 = menu::$29 == 0 from [447] menu::$30 = menu::$29 != 0 +Inversing boolean not [461] menu::$35 = menu::$33 == 0 from [460] menu::$34 = menu::$33 != 0 +Inversing boolean not [474] menu::$39 = menu::$37 == 0 from [473] menu::$38 = menu::$37 != 0 +Inversing boolean not [487] menu::$43 = menu::$41 == 0 from [486] menu::$42 = menu::$41 != 0 +Inversing boolean not [500] menu::$47 = menu::$45 == 0 from [499] menu::$46 = menu::$45 != 0 +Inversing boolean not [513] menu::$51 = menu::$49 == 0 from [512] menu::$50 = menu::$49 != 0 +Inversing boolean not [536] mode_ctrl::$3 = mode_ctrl::$1 == 0 from [535] mode_ctrl::$2 = mode_ctrl::$1 != 0 +Inversing boolean not [546] mode_ctrl::$6 = mode_ctrl::$4 == 0 from [545] mode_ctrl::$5 = mode_ctrl::$4 != 0 +Inversing boolean not [558] mode_ctrl::$10 = mode_ctrl::$8 == 0 from [557] mode_ctrl::$9 = mode_ctrl::$8 != 0 +Inversing boolean not [570] mode_ctrl::$14 = mode_ctrl::$12 == 0 from [569] mode_ctrl::$13 = mode_ctrl::$12 != 0 +Inversing boolean not [582] mode_ctrl::$18 = mode_ctrl::$16 == 0 from [581] mode_ctrl::$17 = mode_ctrl::$16 != 0 +Inversing boolean not [594] mode_ctrl::$22 = mode_ctrl::$20 == 0 from [593] mode_ctrl::$21 = mode_ctrl::$20 != 0 +Inversing boolean not [606] mode_ctrl::$26 = mode_ctrl::$24 == 0 from [605] mode_ctrl::$25 = mode_ctrl::$24 != 0 +Inversing boolean not [618] mode_ctrl::$30 = mode_ctrl::$28 == 0 from [617] mode_ctrl::$29 = mode_ctrl::$28 != 0 +Inversing boolean not [625] mode_ctrl::$32 = mode_ctrl::ctrl#14 == dtv_control#73 from [624] mode_ctrl::$31 = mode_ctrl::ctrl#14 != dtv_control#73 +Inversing boolean not [1322] mode_8bpppixelcell::$10 = mode_8bpppixelcell::$8 == 0 from [1321] mode_8bpppixelcell::$9 = mode_8bpppixelcell::$8 != 0 +Inversing boolean not [1380] mode_8bppchunkybmm::$5 = mode_8bppchunkybmm::gfxb#3 != $8000 from [1379] mode_8bppchunkybmm::$4 = mode_8bppchunkybmm::gfxb#3 == $8000 Successful SSA optimization Pass2UnaryNotSimplification Alias memset::return#0 = memset::str#3 memset::return#5 memset::return#1 Alias memset::str#4 = memset::str#5 @@ -6316,7 +6313,6 @@ Alias bitmap_gfx#1 = bitmap_gfx#11 bitmap_gfx#21 Alias bitmap_screen#1 = bitmap_screen#11 bitmap_screen#21 Alias bitmap_clear::col#0 = bitmap_clear::$1 Alias bitmap_gfx#12 = bitmap_gfx#22 -Alias bitmap_plot::plotter#0 = bitmap_plot::$2 Alias bitmap_line::x#0 = bitmap_line::x1#1 bitmap_line::x1#4 bitmap_line::x#16 bitmap_line::x1#3 bitmap_line::x#10 bitmap_line::x1#2 bitmap_line::x#19 bitmap_line::x#18 bitmap_line::x#17 bitmap_line::x#3 bitmap_line::x#14 bitmap_line::x#11 Alias bitmap_line::y#0 = bitmap_line::y1#1 bitmap_line::y1#2 bitmap_line::y#16 bitmap_line::y#10 bitmap_line::y1#5 bitmap_line::y1#4 bitmap_line::y#19 bitmap_line::y1#3 bitmap_line::y#18 bitmap_line::y#17 bitmap_line::y#3 bitmap_line::y#14 bitmap_line::y#11 Alias abs_u16::w#0 = bitmap_line::$0 @@ -7347,8 +7343,6 @@ Adding number conversion cast (unumber) $10 in [766] if(mode_8bppchunkybmm::i#1! Adding number conversion cast (unumber) $140 in [778] if(mode_8bppchunkybmm::x#1!=$140) goto mode_8bppchunkybmm::@4 Adding number conversion cast (unumber) $c8 in [783] if(mode_8bppchunkybmm::y#1!=$c8) goto mode_8bppchunkybmm::@3 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast [77] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 -Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $10 @@ -7478,7 +7472,7 @@ Successful SSA optimization Pass2ConstantIdentification Inlining Noop Cast [6] memset::$4 = (byte*)memset::str#4 keeping memset::str#4 Inlining Noop Cast [8] memset::dst#0 = (byte*)memset::str#4 keeping memset::str#4 Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [73] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 keeping bitmap_plot::plotter#0 +Inlining Noop Cast [73] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$2 keeping bitmap_plot::plotter#0 Successful SSA optimization Pass2NopCastInlining Rewriting division to use shift [101] bitmap_line::e1#0 = bitmap_line::dy#0 / 2 Rewriting division to use shift [102] bitmap_line::e#0 = bitmap_line::dx#0 / 2 diff --git a/src/test/ref/complex/borderline_pacman/pacman.asm b/src/test/ref/complex/borderline_pacman/pacman.asm index 24e8d5e00..da1e5ddc9 100644 --- a/src/test/ref/complex/borderline_pacman/pacman.asm +++ b/src/test/ref/complex/borderline_pacman/pacman.asm @@ -2049,7 +2049,7 @@ splash_run: { // *PROCPORT = PROCPORT_RAM_ALL lda #PROCPORT_RAM_ALL sta PROCPORT - // memset(0x4000, 0, 0xc00) + // memset((char*)0x4000, 0, 0xc00) // Reset memory to avoid crashes lda #<$4000 sta.z memset.str diff --git a/src/test/ref/complex/borderline_pacman/pacman.cfg b/src/test/ref/complex/borderline_pacman/pacman.cfg index b0a00b3d4..2ce54a85b 100644 --- a/src/test/ref/complex/borderline_pacman/pacman.cfg +++ b/src/test/ref/complex/borderline_pacman/pacman.cfg @@ -1449,7 +1449,7 @@ choose_direction::@10: scope:[choose_direction] from choose_direction::@1 void* memset(void* memset::str , byte memset::c , word memset::num) memset: scope:[memset] from splash_run::@16 splash_run::@23 splash_run::@24 splash_run::@28 splash_run::@34 - [776] memset::str#6 = phi( splash_run::@16/(void*) 16384, splash_run::@23/(void*)BANK_1+$2000, splash_run::@24/(void*)BANK_2, splash_run::@28/(void*)BANK_1, splash_run::@34/(void*)INTRO_MUSIC_CRUNCHED_UPPER ) + [776] memset::str#6 = phi( splash_run::@16/(void*)(byte*) 16384, splash_run::@23/(void*)BANK_1+$2000, splash_run::@24/(void*)BANK_2, splash_run::@28/(void*)BANK_1, splash_run::@34/(void*)INTRO_MUSIC_CRUNCHED_UPPER ) [776] memset::num#5 = phi( splash_run::@16/$c00, splash_run::@23/$1fff, splash_run::@24/$3fff, splash_run::@28/$1fff, splash_run::@34/INTRO_MUSIC_CRUNCHED_SIZE ) [777] if(memset::num#5<=0) goto memset::@return to:memset::@1 diff --git a/src/test/ref/complex/borderline_pacman/pacman.log b/src/test/ref/complex/borderline_pacman/pacman.log index 33cdbcacb..a26be365e 100644 --- a/src/test/ref/complex/borderline_pacman/pacman.log +++ b/src/test/ref/complex/borderline_pacman/pacman.log @@ -750,7 +750,7 @@ splash_run::@17: scope:[splash_run] from splash_run::SEI1 *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK *PROCPORT = PROCPORT_RAM_ALL - memset::str#0 = (void*)$4000 + memset::str#0 = (void*)(byte*)$4000 memset::c#0 = 0 memset::num#0 = $c00 call memset @@ -6188,7 +6188,7 @@ Simplifying constant integer cast $19 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 -Simplifying constant pointer cast (void*) 16384 +Simplifying constant pointer cast (byte*) 16384 Simplifying constant integer cast 0 Simplifying constant integer cast $c00 Simplifying constant integer cast $2000 @@ -7012,59 +7012,56 @@ Inferred type updated to byte in choose_direction::$10 = choose_direction::ydiff Inferred type updated to byte in choose_direction::$14 = choose_direction::ydiff#2 + 1 Inferred type updated to byte in choose_direction::$18 = choose_direction::xdiff#3 - 1 Inferred type updated to byte in choose_direction::$22 = choose_direction::xdiff#4 + 1 -Adding pointer type conversion cast (byte*) render::$7 in render::$7 = render::$1 w= (byte)render::$2 -Adding pointer type conversion cast (byte*) render_tiles::$10 in render_tiles::$10 = render_tiles::$4 w= (byte)render_tiles::$5 -Successful SSA optimization PassNAddTypeConversionAssignment Inversing boolean not [20] memset::$1 = memset::num#5 <= 0 from [19] memset::$0 = memset::num#5 > 0 Inversing boolean not [53] merge_code::$2 = merge_code::cycle_budget#0 != merge_code::RASTER_EXIT from [52] merge_code::$1 = merge_code::cycle_budget#0 == merge_code::RASTER_EXIT Inversing boolean not [122] pacman_sound_play::$0 = 0 == pacman_ch1_enabled from [121] pacman_sound_play::$4 = 0 != pacman_ch1_enabled Inversing boolean not [129] pacman_sound_play::$3 = pacman_ch1_idx != pacman_sound_play::$1 from [128] pacman_sound_play::$2 = pacman_ch1_idx == pacman_sound_play::$1 Inversing boolean not [143] init_render_index::$2 = init_render_index::x_col#3 < $18 from [142] init_render_index::$1 = init_render_index::x_col#3 >= $18 Inversing boolean not [170] init_render_index::$8 = init_render_index::ypos_inc_offset#2 < $17 from [169] init_render_index::$7 = init_render_index::ypos_inc_offset#2 >= $17 -Inversing boolean not [329] done_run::$9 = 0 == done_run::$8 from [328] done_run::$13 = 0 != done_run::$8 -Inversing boolean not [332] done_run::$10 = 0 == music_play_next from [331] done_run::$14 = 0 != music_play_next -Inversing boolean not [406] splash_run::$26 = 0 == splash_run::$25 from [405] splash_run::$35 = 0 != splash_run::$25 -Inversing boolean not [495] splash_run::$31 = 0 == splash_run::$30 from [494] splash_run::$36 = 0 != splash_run::$30 -Inversing boolean not [498] splash_run::$32 = 0 == music_play_next from [497] splash_run::$37 = 0 != music_play_next -Inversing boolean not [618] level_show::$3 = TILES_TYPE[level_show::tile_left#0] != PILL from [617] level_show::$2 = TILES_TYPE[level_show::tile_left#0] == PILL -Inversing boolean not [627] level_show::$5 = TILES_TYPE[level_show::tile_right#0] != PILL from [626] level_show::$4 = TILES_TYPE[level_show::tile_right#0] == PILL -Inversing boolean not [694] init_level_tile_directions::$5 = TILES_TYPE[init_level_tile_directions::$3] == WALL from [693] init_level_tile_directions::$4 = TILES_TYPE[init_level_tile_directions::$3] != WALL -Inversing boolean not [708] init_level_tile_directions::$9 = TILES_TYPE[init_level_tile_directions::$7] == WALL from [707] init_level_tile_directions::$8 = TILES_TYPE[init_level_tile_directions::$7] != WALL -Inversing boolean not [721] init_level_tile_directions::$13 = TILES_TYPE[init_level_tile_directions::$11] == WALL from [720] init_level_tile_directions::$12 = TILES_TYPE[init_level_tile_directions::$11] != WALL -Inversing boolean not [734] init_level_tile_directions::$17 = TILES_TYPE[init_level_tile_directions::$15] == WALL from [733] init_level_tile_directions::$16 = TILES_TYPE[init_level_tile_directions::$15] != WALL -Inversing boolean not [838] game_logic::$1 = game_playable != 0 from [837] game_logic::$0 = game_playable == 0 -Inversing boolean not [890] game_logic::$23 = ghosts_mode != FRIGHTENED from [889] game_logic::$22 = ghosts_mode == FRIGHTENED -Inversing boolean not [937] game_logic::$57 = ghosts_mode_count <= $32 from [936] game_logic::$56 = ghosts_mode_count > $32 -Inversing boolean not [944] game_logic::$55 = ghosts_mode_count <= $96 from [943] game_logic::$54 = ghosts_mode_count > $96 -Inversing boolean not [948] game_logic::$51 = ghosts_mode != FRIGHTENED from [947] game_logic::$50 = ghosts_mode == FRIGHTENED -Inversing boolean not [952] game_logic::$53 = ghosts_mode_count <= $32 from [951] game_logic::$52 = ghosts_mode_count > $32 -Inversing boolean not [962] game_logic::$58 = 0 == game_logic::do_reverse#4 from [961] game_logic::$219 = 0 != game_logic::do_reverse#4 -Inversing boolean not [992] game_logic::$74 = pill_count != 0 from [991] game_logic::$73 = pill_count == 0 -Inversing boolean not [996] game_logic::$64 = TILES_TYPE[game_logic::tile_id#1] != POWERUP from [995] game_logic::$63 = TILES_TYPE[game_logic::tile_id#1] == POWERUP -Inversing boolean not [1073] game_logic::$124 = ghost4_respawn != 0 from [1072] game_logic::$123 = ghost4_respawn == 0 -Inversing boolean not [1085] game_logic::$108 = ghost4_direction != UP from [1084] game_logic::$107 = ghost4_direction == UP -Inversing boolean not [1142] game_logic::$122 = ghost4_xfine != $61 from [1141] game_logic::$121 = ghost4_xfine == $61 -Inversing boolean not [1151] game_logic::$145 = ghost3_respawn != 0 from [1150] game_logic::$144 = ghost3_respawn == 0 -Inversing boolean not [1163] game_logic::$129 = ghost3_direction != UP from [1162] game_logic::$128 = ghost3_direction == UP -Inversing boolean not [1220] game_logic::$143 = ghost3_xfine != $61 from [1219] game_logic::$142 = ghost3_xfine == $61 -Inversing boolean not [1229] game_logic::$166 = ghost2_respawn != 0 from [1228] game_logic::$165 = ghost2_respawn == 0 -Inversing boolean not [1241] game_logic::$150 = ghost2_direction != UP from [1240] game_logic::$149 = ghost2_direction == UP -Inversing boolean not [1298] game_logic::$164 = ghost2_xfine != $61 from [1297] game_logic::$163 = ghost2_xfine == $61 -Inversing boolean not [1307] game_logic::$187 = ghost1_respawn != 0 from [1306] game_logic::$186 = ghost1_respawn == 0 -Inversing boolean not [1319] game_logic::$171 = ghost1_direction != UP from [1318] game_logic::$170 = ghost1_direction == UP -Inversing boolean not [1376] game_logic::$185 = ghost1_xfine != $61 from [1375] game_logic::$184 = ghost1_xfine == $61 -Inversing boolean not [1391] game_logic::$192 = pacman_direction != UP from [1390] game_logic::$191 = pacman_direction == UP -Inversing boolean not [1419] game_logic::$203 = game_logic::joy_directions#0 == 0 from [1418] game_logic::$202 = game_logic::joy_directions#0 != 0 -Inversing boolean not [1427] game_logic::$206 = game_logic::new_direction#0 == 0 from [1426] game_logic::$205 = game_logic::new_direction#0 != 0 -Inversing boolean not [1433] game_logic::$209 = pacman_xfine != $61 from [1432] game_logic::$208 = pacman_xfine == $61 -Inversing boolean not [1445] choose_direction::$3 = 0 == choose_direction::$2 from [1444] choose_direction::$26 = 0 != choose_direction::$2 -Inversing boolean not [1450] choose_direction::$5 = 0 == choose_direction::$4 from [1449] choose_direction::$27 = 0 != choose_direction::$4 -Inversing boolean not [1457] choose_direction::$13 = choose_direction::dist_up#0 >= choose_direction::dist_min#5 from [1456] choose_direction::$12 = choose_direction::dist_up#0 < choose_direction::dist_min#5 -Inversing boolean not [1465] choose_direction::$7 = 0 == choose_direction::$6 from [1464] choose_direction::$28 = 0 != choose_direction::$6 -Inversing boolean not [1472] choose_direction::$17 = choose_direction::dist_down#0 >= choose_direction::dist_min#6 from [1471] choose_direction::$16 = choose_direction::dist_down#0 < choose_direction::dist_min#6 -Inversing boolean not [1480] choose_direction::$9 = 0 == choose_direction::$8 from [1479] choose_direction::$29 = 0 != choose_direction::$8 -Inversing boolean not [1487] choose_direction::$21 = choose_direction::dist_left#0 >= choose_direction::dist_min#7 from [1486] choose_direction::$20 = choose_direction::dist_left#0 < choose_direction::dist_min#7 -Inversing boolean not [1499] choose_direction::$25 = choose_direction::dist_right#0 >= choose_direction::dist_min#8 from [1498] choose_direction::$24 = choose_direction::dist_right#0 < choose_direction::dist_min#8 +Inversing boolean not [327] done_run::$9 = 0 == done_run::$8 from [326] done_run::$13 = 0 != done_run::$8 +Inversing boolean not [330] done_run::$10 = 0 == music_play_next from [329] done_run::$14 = 0 != music_play_next +Inversing boolean not [404] splash_run::$26 = 0 == splash_run::$25 from [403] splash_run::$35 = 0 != splash_run::$25 +Inversing boolean not [493] splash_run::$31 = 0 == splash_run::$30 from [492] splash_run::$36 = 0 != splash_run::$30 +Inversing boolean not [496] splash_run::$32 = 0 == music_play_next from [495] splash_run::$37 = 0 != music_play_next +Inversing boolean not [616] level_show::$3 = TILES_TYPE[level_show::tile_left#0] != PILL from [615] level_show::$2 = TILES_TYPE[level_show::tile_left#0] == PILL +Inversing boolean not [625] level_show::$5 = TILES_TYPE[level_show::tile_right#0] != PILL from [624] level_show::$4 = TILES_TYPE[level_show::tile_right#0] == PILL +Inversing boolean not [692] init_level_tile_directions::$5 = TILES_TYPE[init_level_tile_directions::$3] == WALL from [691] init_level_tile_directions::$4 = TILES_TYPE[init_level_tile_directions::$3] != WALL +Inversing boolean not [706] init_level_tile_directions::$9 = TILES_TYPE[init_level_tile_directions::$7] == WALL from [705] init_level_tile_directions::$8 = TILES_TYPE[init_level_tile_directions::$7] != WALL +Inversing boolean not [719] init_level_tile_directions::$13 = TILES_TYPE[init_level_tile_directions::$11] == WALL from [718] init_level_tile_directions::$12 = TILES_TYPE[init_level_tile_directions::$11] != WALL +Inversing boolean not [732] init_level_tile_directions::$17 = TILES_TYPE[init_level_tile_directions::$15] == WALL from [731] init_level_tile_directions::$16 = TILES_TYPE[init_level_tile_directions::$15] != WALL +Inversing boolean not [836] game_logic::$1 = game_playable != 0 from [835] game_logic::$0 = game_playable == 0 +Inversing boolean not [888] game_logic::$23 = ghosts_mode != FRIGHTENED from [887] game_logic::$22 = ghosts_mode == FRIGHTENED +Inversing boolean not [935] game_logic::$57 = ghosts_mode_count <= $32 from [934] game_logic::$56 = ghosts_mode_count > $32 +Inversing boolean not [942] game_logic::$55 = ghosts_mode_count <= $96 from [941] game_logic::$54 = ghosts_mode_count > $96 +Inversing boolean not [946] game_logic::$51 = ghosts_mode != FRIGHTENED from [945] game_logic::$50 = ghosts_mode == FRIGHTENED +Inversing boolean not [950] game_logic::$53 = ghosts_mode_count <= $32 from [949] game_logic::$52 = ghosts_mode_count > $32 +Inversing boolean not [960] game_logic::$58 = 0 == game_logic::do_reverse#4 from [959] game_logic::$219 = 0 != game_logic::do_reverse#4 +Inversing boolean not [990] game_logic::$74 = pill_count != 0 from [989] game_logic::$73 = pill_count == 0 +Inversing boolean not [994] game_logic::$64 = TILES_TYPE[game_logic::tile_id#1] != POWERUP from [993] game_logic::$63 = TILES_TYPE[game_logic::tile_id#1] == POWERUP +Inversing boolean not [1071] game_logic::$124 = ghost4_respawn != 0 from [1070] game_logic::$123 = ghost4_respawn == 0 +Inversing boolean not [1083] game_logic::$108 = ghost4_direction != UP from [1082] game_logic::$107 = ghost4_direction == UP +Inversing boolean not [1140] game_logic::$122 = ghost4_xfine != $61 from [1139] game_logic::$121 = ghost4_xfine == $61 +Inversing boolean not [1149] game_logic::$145 = ghost3_respawn != 0 from [1148] game_logic::$144 = ghost3_respawn == 0 +Inversing boolean not [1161] game_logic::$129 = ghost3_direction != UP from [1160] game_logic::$128 = ghost3_direction == UP +Inversing boolean not [1218] game_logic::$143 = ghost3_xfine != $61 from [1217] game_logic::$142 = ghost3_xfine == $61 +Inversing boolean not [1227] game_logic::$166 = ghost2_respawn != 0 from [1226] game_logic::$165 = ghost2_respawn == 0 +Inversing boolean not [1239] game_logic::$150 = ghost2_direction != UP from [1238] game_logic::$149 = ghost2_direction == UP +Inversing boolean not [1296] game_logic::$164 = ghost2_xfine != $61 from [1295] game_logic::$163 = ghost2_xfine == $61 +Inversing boolean not [1305] game_logic::$187 = ghost1_respawn != 0 from [1304] game_logic::$186 = ghost1_respawn == 0 +Inversing boolean not [1317] game_logic::$171 = ghost1_direction != UP from [1316] game_logic::$170 = ghost1_direction == UP +Inversing boolean not [1374] game_logic::$185 = ghost1_xfine != $61 from [1373] game_logic::$184 = ghost1_xfine == $61 +Inversing boolean not [1389] game_logic::$192 = pacman_direction != UP from [1388] game_logic::$191 = pacman_direction == UP +Inversing boolean not [1417] game_logic::$203 = game_logic::joy_directions#0 == 0 from [1416] game_logic::$202 = game_logic::joy_directions#0 != 0 +Inversing boolean not [1425] game_logic::$206 = game_logic::new_direction#0 == 0 from [1424] game_logic::$205 = game_logic::new_direction#0 != 0 +Inversing boolean not [1431] game_logic::$209 = pacman_xfine != $61 from [1430] game_logic::$208 = pacman_xfine == $61 +Inversing boolean not [1443] choose_direction::$3 = 0 == choose_direction::$2 from [1442] choose_direction::$26 = 0 != choose_direction::$2 +Inversing boolean not [1448] choose_direction::$5 = 0 == choose_direction::$4 from [1447] choose_direction::$27 = 0 != choose_direction::$4 +Inversing boolean not [1455] choose_direction::$13 = choose_direction::dist_up#0 >= choose_direction::dist_min#5 from [1454] choose_direction::$12 = choose_direction::dist_up#0 < choose_direction::dist_min#5 +Inversing boolean not [1463] choose_direction::$7 = 0 == choose_direction::$6 from [1462] choose_direction::$28 = 0 != choose_direction::$6 +Inversing boolean not [1470] choose_direction::$17 = choose_direction::dist_down#0 >= choose_direction::dist_min#6 from [1469] choose_direction::$16 = choose_direction::dist_down#0 < choose_direction::dist_min#6 +Inversing boolean not [1478] choose_direction::$9 = 0 == choose_direction::$8 from [1477] choose_direction::$29 = 0 != choose_direction::$8 +Inversing boolean not [1485] choose_direction::$21 = choose_direction::dist_left#0 >= choose_direction::dist_min#7 from [1484] choose_direction::$20 = choose_direction::dist_left#0 < choose_direction::dist_min#7 +Inversing boolean not [1497] choose_direction::$25 = choose_direction::dist_right#0 >= choose_direction::dist_min#8 from [1496] choose_direction::$24 = choose_direction::dist_right#0 < choose_direction::dist_min#8 Successful SSA optimization Pass2UnaryNotSimplification Alias candidate removed (volatile)pill_count = gameplay_run::$4 Alias candidate removed (volatile)frame = irq_screen_top::$2 @@ -7125,7 +7122,6 @@ Alias init_render_index::x_col#10 = init_render_index::x_col#9 init_render_index Alias init_render_index::canvas#0 = init_render_index::$4 Alias init_render_index::ypos_inc_offset#2 = init_render_index::ypos_inc_offset#5 Alias render::ytile#0 = render::$0 -Alias render::render_index_xcol#0 = render::$7 Alias render::canvas_offset#0 = render::$8 Alias render::canvas1#0 = render::$3 Alias render::canvas2#0 = render::$4 @@ -7138,7 +7134,6 @@ Alias render::ypix#1 = render::ypix#2 Alias render::pixels#2 = render::pixels#5 render::pixels#3 Alias render_tiles::tile_left_pixels#0 = render_tiles::$1 Alias render_tiles::tile_right_pixels#0 = render_tiles::$3 -Alias render_tiles::render_index_xcol#0 = render_tiles::$10 Alias render_tiles::canvas_offset#0 = render_tiles::$11 Alias render_tiles::canvas1#0 = render_tiles::$6 Alias render_tiles::canvas2#0 = render_tiles::$7 @@ -7431,7 +7426,7 @@ Successful SSA optimization Pass2IdenticalPhiElimination Identical Phi Values memset::return#0 memset::str#6 Identical Phi Values merge_code::raster_code#11 merge_code::raster_code#2 Successful SSA optimization Pass2IdenticalPhiElimination -Identified duplicate assignment right side [401] splash_run::$24 = splash_run::i#2 * 2 +Identified duplicate assignment right side [399] splash_run::$24 = splash_run::i#2 * 2 Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition memcpy::$1 [7] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 Simple Condition memset::$1 [14] if(memset::num#5<=0) goto memset::@1 @@ -7625,7 +7620,7 @@ Constant done_run::i1#0 = 0 Constant done_run::gfx#0 = WIN_GFX Constant done_run::xcol#0 = 0 Constant done_run::ypos#0 = 0 -Constant memset::str#0 = (void*) 16384 +Constant memset::str#0 = (void*)(byte*) 16384 Constant memset::c#0 = 0 Constant memset::num#0 = $c00 Constant merge_code::dest_code#7 = RASTER_CODE @@ -7810,9 +7805,6 @@ Adding number conversion cast (unumber) 1 in if(ghosts_mode_count<(unumber)$96+1 Adding number conversion cast (unumber) $32+1 in if(ghosts_mode_count<$32+1) goto game_logic::@47 Adding number conversion cast (unumber) 1 in if(ghosts_mode_count<(unumber)$32+1) goto game_logic::@47 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast render::render_index_xcol#0 = (byte*)render::$9 -Inlining cast render_tiles::render_index_xcol#0 = (byte*)render_tiles::$12 -Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 6 Simplifying constant integer cast $c Simplifying constant integer cast $12 @@ -8137,8 +8129,8 @@ Alias candidate removed (volatile)ghost1_direction = game_logic::$182 Inlining Noop Cast [8] memset::$4 = (byte*)memset::str#6 keeping memset::str#6 Inlining Noop Cast [10] memset::dst#0 = (byte*)memset::str#6 keeping memset::str#6 Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [110] render::render_index_xcol#0 = (byte*)render::$9 keeping render::render_index_xcol#0 -Inlining Noop Cast [132] render_tiles::render_index_xcol#0 = (byte*)render_tiles::$12 keeping render_tiles::render_index_xcol#0 +Inlining Noop Cast [110] render::render_index_xcol#0 = (byte*)render::$7 keeping render::render_index_xcol#0 +Inlining Noop Cast [132] render_tiles::render_index_xcol#0 = (byte*)render_tiles::$10 keeping render_tiles::render_index_xcol#0 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift [83] init_render_index::$9 = init_render_index::x_col#2 * SIZEOF_POINTER Rewriting multiplication to use shift [88] init_render_index::$10 = init_render_index::$11 * SIZEOF_WORD @@ -8350,7 +8342,7 @@ Constant inlined init_bobs_restore::$2 = 0 Constant inlined init_bobs_restore::$3 = >init_bobs_restore::CANVAS_HIDDEN Constant inlined memset::str#2 = (void*)BANK_2 Constant inlined memset::str#1 = (void*)BANK_1+$2000 -Constant inlined memset::str#0 = (void*) 16384 +Constant inlined memset::str#0 = (void*)(byte*) 16384 Constant inlined memset::str#4 = (void*)INTRO_MUSIC_CRUNCHED_UPPER Constant inlined memset::str#3 = (void*)BANK_1 Constant inlined game_logic::target_xtile1#1 = 2 @@ -11281,7 +11273,7 @@ choose_direction::@10: scope:[choose_direction] from choose_direction::@1 void* memset(void* memset::str , byte memset::c , word memset::num) memset: scope:[memset] from splash_run::@16 splash_run::@23 splash_run::@24 splash_run::@28 splash_run::@34 - [776] memset::str#6 = phi( splash_run::@16/(void*) 16384, splash_run::@23/(void*)BANK_1+$2000, splash_run::@24/(void*)BANK_2, splash_run::@28/(void*)BANK_1, splash_run::@34/(void*)INTRO_MUSIC_CRUNCHED_UPPER ) + [776] memset::str#6 = phi( splash_run::@16/(void*)(byte*) 16384, splash_run::@23/(void*)BANK_1+$2000, splash_run::@24/(void*)BANK_2, splash_run::@28/(void*)BANK_1, splash_run::@34/(void*)INTRO_MUSIC_CRUNCHED_UPPER ) [776] memset::num#5 = phi( splash_run::@16/$c00, splash_run::@23/$1fff, splash_run::@24/$3fff, splash_run::@28/$1fff, splash_run::@34/INTRO_MUSIC_CRUNCHED_SIZE ) [777] if(memset::num#5<=0) goto memset::@return to:memset::@1 @@ -18417,7 +18409,7 @@ splash_run: { // Reset memory to avoid crashes // [776] phi from splash_run::@16 to memset [phi:splash_run::@16->memset] memset_from___b16: - // [776] phi memset::str#6 = (void*) 16384 [phi:splash_run::@16->memset#0] -- pvoz1=pvoc1 + // [776] phi memset::str#6 = (void*)(byte*) 16384 [phi:splash_run::@16->memset#0] -- pvoz1=pvoc1 lda #<$4000 sta.z memset.str lda #>$4000 @@ -27788,11 +27780,11 @@ splash_run: { // [513] *PROCPORT = PROCPORT_RAM_ALL -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_ALL sta PROCPORT - // memset(0x4000, 0, 0xc00) + // memset((char*)0x4000, 0, 0xc00) // [514] call memset // Reset memory to avoid crashes // [776] phi from splash_run::@16 to memset [phi:splash_run::@16->memset] - // [776] phi memset::str#6 = (void*) 16384 [phi:splash_run::@16->memset#0] -- pvoz1=pvoc1 + // [776] phi memset::str#6 = (void*)(byte*) 16384 [phi:splash_run::@16->memset#0] -- pvoz1=pvoc1 lda #<$4000 sta.z memset.str lda #>$4000 diff --git a/src/test/ref/const-volatile-problem.log b/src/test/ref/const-volatile-problem.log index 81a8409ce..58c44654d 100644 --- a/src/test/ref/const-volatile-problem.log +++ b/src/test/ref/const-volatile-problem.log @@ -5,7 +5,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - PLEX_SCREEN_PTR1#0 = ((byte*)) $400 + PLEX_SCREEN_PTR1#0 = (byte*)$400 *IRQ = &irq to:main::@return main::@return: scope:[main] from main @@ -65,8 +65,6 @@ volatile byte idx loadstore __interrupt(rom_sys_c64) void irq() void main() -Inlining cast PLEX_SCREEN_PTR1#0 = (byte*)$400 -Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (void()**) 788 Simplifying constant pointer cast (byte*) 1280 Simplifying constant pointer cast (byte*) 1024 diff --git a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log index bd30b0f5c..313b6d397 100644 --- a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log +++ b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log @@ -1147,13 +1147,11 @@ Inferred type updated to byte in abs_u16::$1 = abs_u16::$0 & $80 Inferred type updated to byte in sgn_u16::$1 = sgn_u16::$0 & $80 Inferred type updated to byte in lines::$1 = lines::l#3 + 1 Inferred type updated to byte in lines::$2 = lines::l#3 + 1 -Adding pointer type conversion cast (byte*) bitmap_plot::$2 in bitmap_plot::$2 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] -Successful SSA optimization PassNAddTypeConversionAssignment Inversing boolean not [2] memset::$1 = memset::num#2 <= 0 from [1] memset::$0 = memset::num#2 > 0 Inversing boolean not [29] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [28] bitmap_init::$0 = bitmap_init::bits#1 == 0 Inversing boolean not [49] bitmap_init::$9 = bitmap_init::$7 != 7 from [48] bitmap_init::$8 = bitmap_init::$7 == 7 -Inversing boolean not [145] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [144] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1 -Inversing boolean not [165] bitmap_line::$23 = bitmap_line::dx#5 >= bitmap_line::e1#1 from [164] bitmap_line::$22 = bitmap_line::dx#5 < bitmap_line::e1#1 +Inversing boolean not [144] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [143] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1 +Inversing boolean not [164] bitmap_line::$23 = bitmap_line::dx#5 >= bitmap_line::e1#1 from [163] bitmap_line::$22 = bitmap_line::dx#5 < bitmap_line::e1#1 Successful SSA optimization Pass2UnaryNotSimplification Alias memset::return#0 = memset::str#2 memset::return#4 memset::return#1 Alias memset::str#3 = memset::str#4 @@ -1180,7 +1178,6 @@ Alias bitmap_gfx#1 = bitmap_gfx#7 bitmap_gfx#13 Alias bitmap_screen#1 = bitmap_screen#7 bitmap_screen#13 Alias bitmap_clear::col#0 = bitmap_clear::$1 Alias bitmap_gfx#14 = bitmap_gfx#8 -Alias bitmap_plot::plotter#0 = bitmap_plot::$2 Alias bitmap_line::x#0 = bitmap_line::x1#1 bitmap_line::x1#4 bitmap_line::x#16 bitmap_line::x1#3 bitmap_line::x#10 bitmap_line::x1#2 bitmap_line::x#19 bitmap_line::x#18 bitmap_line::x#17 bitmap_line::x#3 bitmap_line::x#14 bitmap_line::x#11 Alias bitmap_line::y#0 = bitmap_line::y1#1 bitmap_line::y1#2 bitmap_line::y#16 bitmap_line::y#10 bitmap_line::y1#5 bitmap_line::y1#4 bitmap_line::y#19 bitmap_line::y1#3 bitmap_line::y#18 bitmap_line::y#17 bitmap_line::y#3 bitmap_line::y#14 bitmap_line::y#11 Alias abs_u16::w#0 = bitmap_line::$0 @@ -1366,8 +1363,6 @@ Successful SSA optimization PassNEliminateEmptyStart Adding number conversion cast (unumber) 0 in [16] if(bitmap_init::x#1!=0) goto bitmap_init::@1 Adding number conversion cast (unumber) 0 in [28] if(bitmap_init::y#1!=0) goto bitmap_init::@5 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast [39] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 -Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification @@ -1391,7 +1386,7 @@ Successful SSA optimization Pass2ConstantIdentification Inlining Noop Cast [2] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 Inlining Noop Cast [4] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [35] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 keeping bitmap_plot::plotter#0 +Inlining Noop Cast [35] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$2 keeping bitmap_plot::plotter#0 Successful SSA optimization Pass2NopCastInlining Rewriting division to use shift [63] bitmap_line::e1#0 = bitmap_line::dy#0 / 2 Rewriting division to use shift [64] bitmap_line::e#0 = bitmap_line::dx#0 / 2 diff --git a/src/test/ref/examples/c64/sinplotter/sine-plotter.log b/src/test/ref/examples/c64/sinplotter/sine-plotter.log index bc43b4c84..811c92b80 100644 --- a/src/test/ref/examples/c64/sinplotter/sine-plotter.log +++ b/src/test/ref/examples/c64/sinplotter/sine-plotter.log @@ -1886,8 +1886,6 @@ Inferred type updated to byte in main::toD0181_$4 = main::toD0181_$3 / 4 Inferred type updated to byte in main::toD0181_$5 = main::toD0181_$4 & $f Inferred type updated to byte in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 Inferred type updated to signed word in render_sine::$5 = render_sine::sin2_val#0 + $a -Adding pointer type conversion cast (byte*) bitmap_plot::$2 in bitmap_plot::$2 = bitmap_plot_yhi[bitmap_plot::y#2] w= bitmap_plot_ylo[bitmap_plot::y#2] -Successful SSA optimization PassNAddTypeConversionAssignment Inversing boolean not [9] divr16u::$4 = divr16u::$2 == 0 from [8] divr16u::$3 = divr16u::$2 != 0 Inversing boolean not [17] divr16u::$9 = divr16u::rem#6 < divr16u::divisor#2 from [16] divr16u::$8 = divr16u::rem#6 >= divr16u::divisor#2 Inversing boolean not [74] mul16u::$3 = mul16u::$1 == 0 from [73] mul16u::$2 = mul16u::$1 != 0 @@ -1899,7 +1897,7 @@ Inversing boolean not [228] sin16s::$15 = sin16s::isUpper#2 == 0 from [227] sin1 Inversing boolean not [256] memset::$1 = memset::num#2 <= 0 from [255] memset::$0 = memset::num#2 > 0 Inversing boolean not [283] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [282] bitmap_init::$0 = bitmap_init::bits#1 == 0 Inversing boolean not [303] bitmap_init::$9 = bitmap_init::$7 != 7 from [302] bitmap_init::$8 = bitmap_init::$7 == 7 -Inversing boolean not [442] render_sine::$9 = render_sine::xpos#1 != $140 from [441] render_sine::$8 = render_sine::xpos#1 == $140 +Inversing boolean not [441] render_sine::$9 = render_sine::xpos#1 != $140 from [440] render_sine::$8 = render_sine::xpos#1 == $140 Successful SSA optimization Pass2UnaryNotSimplification Alias divr16u::rem#0 = divr16u::$0 divr16u::rem#7 Alias divr16u::dividend#0 = divr16u::$6 divr16u::dividend#8 @@ -2011,7 +2009,6 @@ Alias bitmap_gfx#1 = bitmap_gfx#7 bitmap_gfx#13 Alias bitmap_screen#1 = bitmap_screen#7 bitmap_screen#13 Alias bitmap_clear::col#0 = bitmap_clear::$1 Alias bitmap_gfx#14 = bitmap_gfx#8 -Alias bitmap_plot::plotter#0 = bitmap_plot::$2 Alias main::vicSelectGfxBank1_gfx#0 = main::vicSelectGfxBank1_gfx#1 main::vicSelectGfxBank1_toDd001_gfx#0 main::vicSelectGfxBank1_toDd001_gfx#1 Alias bitmap_gfx#15 = bitmap_gfx#34 bitmap_gfx#35 bitmap_gfx#33 bitmap_gfx#32 bitmap_gfx#31 bitmap_gfx#27 bitmap_gfx#24 bitmap_gfx#20 Alias bitmap_screen#14 = bitmap_screen#33 bitmap_screen#34 bitmap_screen#32 bitmap_screen#31 bitmap_screen#30 bitmap_screen#26 bitmap_screen#23 bitmap_screen#19 @@ -2224,8 +2221,6 @@ Adding number conversion cast (unumber) $10 in [13] if(divr16u::i#1!=$10) goto d Adding number conversion cast (unumber) 0 in [148] if(bitmap_init::x#1!=0) goto bitmap_init::@1 Adding number conversion cast (unumber) 0 in [160] if(bitmap_init::y#1!=0) goto bitmap_init::@5 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast [171] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 -Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $10 Simplifying constant integer cast 0 Simplifying constant integer cast 0 @@ -2312,7 +2307,7 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::toD0181_return#0 = main::toD0181_$2|main::toD0181_$5 Successful SSA optimization Pass2ConstantIdentification Inlining Noop Cast [62] sin16s_gen2::$8 = (signed word)sin16s_gen2::$7 keeping sin16s_gen2::$8 -Inlining Noop Cast [152] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 keeping bitmap_plot::plotter#0 +Inlining Noop Cast [152] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$2 keeping bitmap_plot::plotter#0 Successful SSA optimization Pass2NopCastInlining Inlining Noop Cast [102] sin16s::sinx#0 = (signed word)sin16s::usinx#1 keeping sin16s::usinx#1 Inlining Noop Cast [119] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 diff --git a/src/test/ref/examples/cx16/cx16-bankaddressing.log b/src/test/ref/examples/cx16/cx16-bankaddressing.log index a9ce42042..16d75dbf0 100644 --- a/src/test/ref/examples/cx16/cx16-bankaddressing.log +++ b/src/test/ref/examples/cx16/cx16-bankaddressing.log @@ -1164,7 +1164,7 @@ screenlayer::@4: scope:[screenlayer] from screenlayer::@3 CONIO_SCREEN_BANK#88 = phi( screenlayer::@3/CONIO_SCREEN_BANK#2 ) vera_layer_get_mapbase_offset::return#4 = phi( screenlayer::@3/vera_layer_get_mapbase_offset::return#2 ) screenlayer::$1 = vera_layer_get_mapbase_offset::return#4 - CONIO_SCREEN_TEXT#2 = ((byte*)) screenlayer::$1 + CONIO_SCREEN_TEXT#2 = (byte*)screenlayer::$1 screenlayer::vera_layer_get_width1_layer#0 = conio_screen_layer to:screenlayer::vera_layer_get_width1 screenlayer::vera_layer_get_width1: scope:[screenlayer] from screenlayer::@4 @@ -4837,7 +4837,6 @@ Inlining cast conio_cursor_x[conio_screen_layer] = (unumber)0 Inlining cast memcpy_in_vram::dest_bank#0 = (unumber)0 Inlining cast memcpy_in_vram::src_bank#0 = (unumber)0 Inlining cast gotoxy::x#2 = (unumber)0 -Inlining cast CONIO_SCREEN_TEXT#2 = (byte*)screenlayer::$1 Inlining cast uctoa::max_digits#1 = (unumber)3 Inlining cast uctoa::max_digits#2 = (unumber)2 Inlining cast uctoa::max_digits#3 = (unumber)3 diff --git a/src/test/ref/examples/cx16/cx16-bankload.asm b/src/test/ref/examples/cx16/cx16-bankload.asm index b6f8d932c..2212f1656 100644 --- a/src/test/ref/examples/cx16/cx16-bankload.asm +++ b/src/test/ref/examples/cx16/cx16-bankload.asm @@ -275,7 +275,7 @@ main: { sta SPRITE_ATTR+OFFSET_STRUCT_VERA_SPRITE_Y+1 lda #<$64 sta SPRITE_ATTR+OFFSET_STRUCT_VERA_SPRITE_Y - // memcpy_to_vram((char)>VERA_SPRITE_ATTR, VERA_SPRITE_ATTR, (char*)VERA_SPRITE_ATTR VERA_SPRITE_ATTR (byte*)VERA_SPRITE_ATTR - memcpy_to_vram::vdest#0 = (void*)VERA_SPRITE_ATTR -Constant memcpy_to_vram::vdest#0 = (void*)VERA_SPRITE_ATTR void* memcpy_to_vram::vdest -constant void* memcpy_to_vram::vdest#0 vdest = (void*)VERA_SPRITE_ATTR, VERA_SPRITE_ATTR, (char*)VERA_SPRITE_ATTR void* memcpy_to_vram::vdest -constant void* memcpy_to_vram::vdest#0 vdest = (void*)SPRITE_PIXELS_VRAM, SPRITE_PIXELS_VRAM, (char*)SPRITE_PIXELS_VRAM&$ffff sta.z memcpy_to_vram.vdest+1 jsr memcpy_to_vram - // memcpy_to_vram((char)>VERA_PALETTE, VERA_PALETTE, (char*)VERA_SPRITE_ATTR, main::@5/(byte)>VERA_PALETTE ) - [55] memcpy_to_vram::vdest#4 = phi( irq_vsync::@6/memcpy_to_vram::vdest#3, main/(void*)SPRITE_PIXELS_VRAM - memcpy_to_vram::vdest#0 = (void*)VERA_PALETTE - memcpy_to_vram::vdest#1 = (void*)SPRITE_PIXELS_VRAM -Constant memcpy_to_vram::vdest#0 = (void*)VERA_PALETTE -Constant memcpy_to_vram::vdest#1 = (void*)VERA_SPRITE_ATTR, main::@5/(byte)>VERA_PALETTE ) - [55] memcpy_to_vram::vdest#4 = phi( irq_vsync::@6/memcpy_to_vram::vdest#3, main/(void*)memcpy_to_vram#2] -- vbuxx=vbuc1 ldx #0 - // [55] phi memcpy_to_vram::vdest#4 = (void*)memcpy_to_vram#3] -- pvoz1=pvoc1 + // [55] phi memcpy_to_vram::vdest#4 = (void*)(byte*)memcpy_to_vram#3] -- pvoz1=pvoc1 lda #SPRITE_PIXELS_VRAM&$ffff @@ -1478,7 +1478,7 @@ main: { sta.z memcpy_to_vram.src+1 // [55] phi memcpy_to_vram::vbank#4 = (byte)>VERA_PALETTE [phi:main::@5->memcpy_to_vram#2] -- vbuxx=vbuc1 ldx #VERA_PALETTE>>$10 - // [55] phi memcpy_to_vram::vdest#4 = (void*)memcpy_to_vram#3] -- pvoz1=pvoc1 + // [55] phi memcpy_to_vram::vdest#4 = (void*)(byte*)memcpy_to_vram#3] -- pvoz1=pvoc1 lda #VERA_PALETTE&$ffff @@ -2302,7 +2302,7 @@ main: { // Copy 8* sprite attributes to VRAM .label vram_sprite_attr = $a .label s = 9 - // memcpy_to_vram((char)>SPRITE_PIXELS_VRAM, SPRITE_PIXELS_VRAM, (char*)memcpy_to_vram] @@ -2318,7 +2318,7 @@ main: { sta.z memcpy_to_vram.src+1 // [55] phi memcpy_to_vram::vbank#4 = 0 [phi:main->memcpy_to_vram#2] -- vbuxx=vbuc1 ldx #0 - // [55] phi memcpy_to_vram::vdest#4 = (void*)memcpy_to_vram#3] -- pvoz1=pvoc1 + // [55] phi memcpy_to_vram::vdest#4 = (void*)(byte*)memcpy_to_vram#3] -- pvoz1=pvoc1 lda #SPRITE_PIXELS_VRAM&$ffff @@ -2326,7 +2326,7 @@ main: { jsr memcpy_to_vram // [38] phi from main to main::@5 [phi:main->main::@5] // main::@5 - // memcpy_to_vram((char)>VERA_PALETTE, VERA_PALETTE, (char*)memcpy_to_vram] @@ -2342,7 +2342,7 @@ main: { sta.z memcpy_to_vram.src+1 // [55] phi memcpy_to_vram::vbank#4 = (byte)>VERA_PALETTE [phi:main::@5->memcpy_to_vram#2] -- vbuxx=vbuc1 ldx #VERA_PALETTE>>$10 - // [55] phi memcpy_to_vram::vdest#4 = (void*)memcpy_to_vram#3] -- pvoz1=pvoc1 + // [55] phi memcpy_to_vram::vdest#4 = (void*)(byte*)memcpy_to_vram#3] -- pvoz1=pvoc1 lda #VERA_PALETTE&$ffff diff --git a/src/test/ref/examples/cx16/cx16-tilemap.log b/src/test/ref/examples/cx16/cx16-tilemap.log index 9e1edf369..b277426c4 100644 --- a/src/test/ref/examples/cx16/cx16-tilemap.log +++ b/src/test/ref/examples/cx16/cx16-tilemap.log @@ -1284,7 +1284,7 @@ screenlayer::@4: scope:[screenlayer] from screenlayer::@3 CONIO_SCREEN_BANK#113 = phi( screenlayer::@3/CONIO_SCREEN_BANK#2 ) vera_layer_get_mapbase_offset::return#4 = phi( screenlayer::@3/vera_layer_get_mapbase_offset::return#2 ) screenlayer::$1 = vera_layer_get_mapbase_offset::return#4 - CONIO_SCREEN_TEXT#2 = ((byte*)) screenlayer::$1 + CONIO_SCREEN_TEXT#2 = (byte*)screenlayer::$1 screenlayer::vera_layer_get_width1_layer#0 = conio_screen_layer to:screenlayer::vera_layer_get_width1 screenlayer::vera_layer_get_width1: scope:[screenlayer] from screenlayer::@4 @@ -3918,7 +3918,6 @@ Inlining cast conio_cursor_x[conio_screen_layer] = (unumber)0 Inlining cast memcpy_in_vram::dest_bank#0 = (unumber)0 Inlining cast memcpy_in_vram::src_bank#0 = (unumber)0 Inlining cast gotoxy::x#2 = (unumber)0 -Inlining cast CONIO_SCREEN_TEXT#2 = (byte*)screenlayer::$1 Inlining cast vera_layer_get_tilebase_address::layer#0 = (unumber)1 Inlining cast vera_layer_mode_tile::layer#1 = (unumber)0 Inlining cast vera_layer_mode_tile::mapbase_address#2 = (unumber)$10000 diff --git a/src/test/ref/examples/cx16/cx16-veralayers.log b/src/test/ref/examples/cx16/cx16-veralayers.log index 1943d6caa..aebd09b65 100644 --- a/src/test/ref/examples/cx16/cx16-veralayers.log +++ b/src/test/ref/examples/cx16/cx16-veralayers.log @@ -1408,7 +1408,7 @@ screenlayer::@4: scope:[screenlayer] from screenlayer::@3 CONIO_SCREEN_BANK#189 = phi( screenlayer::@3/CONIO_SCREEN_BANK#2 ) vera_layer_get_mapbase_offset::return#4 = phi( screenlayer::@3/vera_layer_get_mapbase_offset::return#2 ) screenlayer::$1 = vera_layer_get_mapbase_offset::return#4 - CONIO_SCREEN_TEXT#2 = ((byte*)) screenlayer::$1 + CONIO_SCREEN_TEXT#2 = (byte*)screenlayer::$1 screenlayer::vera_layer_get_width1_layer#0 = conio_screen_layer to:screenlayer::vera_layer_get_width1 screenlayer::vera_layer_get_width1: scope:[screenlayer] from screenlayer::@4 @@ -5799,7 +5799,6 @@ Inlining cast conio_cursor_x[conio_screen_layer] = (unumber)0 Inlining cast memcpy_in_vram::dest_bank#0 = (unumber)0 Inlining cast memcpy_in_vram::src_bank#0 = (unumber)0 Inlining cast gotoxy::x#2 = (unumber)0 -Inlining cast CONIO_SCREEN_TEXT#2 = (byte*)screenlayer::$1 Inlining cast uctoa::max_digits#1 = (unumber)3 Inlining cast uctoa::max_digits#2 = (unumber)2 Inlining cast uctoa::max_digits#3 = (unumber)3 diff --git a/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.asm b/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.asm index 04c5bd58f..72e44c180 100644 --- a/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.asm +++ b/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.asm @@ -210,7 +210,7 @@ main: { .label __40 = $13 .label color = 5 .label x = 3 - // memcpy_in_vram(1, 0xF000, VERA_INC_1, 0, 0xF800, VERA_INC_1, 256*8) + // memcpy_in_vram(1, (char*)0xF000, VERA_INC_1, 0, (char*)0xF800, VERA_INC_1, 256*8) // Before we configure the bitmap pane into vera memory we need to re-arrange a few things! // It is better to load all in bank 0, but then there is an issue. // So the default CX16 character set is located in bank 0, at address 0xF800. diff --git a/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.cfg b/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.cfg index a0f70c39d..a69f6c705 100644 --- a/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.cfg +++ b/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.cfg @@ -432,8 +432,8 @@ void memcpy_in_vram(byte memcpy_in_vram::dest_bank , void* memcpy_in_vram::dest memcpy_in_vram: scope:[memcpy_in_vram] from insertup::@2 main [221] memcpy_in_vram::num#3 = phi( insertup::@2/memcpy_in_vram::num#0, main/$100*8 ) [221] memcpy_in_vram::dest_bank#2 = phi( insertup::@2/0, main/1 ) - [221] memcpy_in_vram::dest#2 = phi( insertup::@2/memcpy_in_vram::dest#0, main/(void*) 61440 ) - [221] memcpy_in_vram::src#2 = phi( insertup::@2/memcpy_in_vram::src#3, main/(void*) 63488 ) + [221] memcpy_in_vram::dest#2 = phi( insertup::@2/memcpy_in_vram::dest#0, main/(void*)(byte*) 61440 ) + [221] memcpy_in_vram::src#2 = phi( insertup::@2/memcpy_in_vram::src#3, main/(void*)(byte*) 63488 ) [222] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL [223] memcpy_in_vram::$0 = < memcpy_in_vram::src#2 [224] *VERA_ADDRX_L = memcpy_in_vram::$0 diff --git a/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.log b/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.log index 6cde4160a..2d1a0f87a 100644 --- a/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.log +++ b/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.log @@ -1475,7 +1475,7 @@ screenlayer::@4: scope:[screenlayer] from screenlayer::@3 CONIO_SCREEN_BANK#94 = phi( screenlayer::@3/CONIO_SCREEN_BANK#2 ) vera_layer_get_mapbase_offset::return#4 = phi( screenlayer::@3/vera_layer_get_mapbase_offset::return#2 ) screenlayer::$1 = vera_layer_get_mapbase_offset::return#4 - CONIO_SCREEN_TEXT#2 = ((byte*)) screenlayer::$1 + CONIO_SCREEN_TEXT#2 = (byte*)screenlayer::$1 screenlayer::vera_layer_get_width1_layer#0 = conio_screen_layer to:screenlayer::vera_layer_get_width1 screenlayer::vera_layer_get_width1: scope:[screenlayer] from screenlayer::@4 @@ -1820,7 +1820,7 @@ bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_clear::$4 = < bitmap_clear::$3 bitmap_clear::vbank#0 = bitmap_clear::$4 bitmap_clear::$5 = < __bitmap_address - bitmap_clear::vdest#0 = ((void*)) bitmap_clear::$5 + bitmap_clear::vdest#0 = (void*)bitmap_clear::$5 memset_vram::vbank#0 = bitmap_clear::vbank#0 memset_vram::vdest#0 = bitmap_clear::vdest#0 memset_vram::data#0 = 0 @@ -2501,10 +2501,10 @@ main: scope:[main] from __start::@1 CONIO_SCREEN_TEXT#64 = phi( __start::@1/CONIO_SCREEN_TEXT#36 ) CONIO_SCREEN_BANK#55 = phi( __start::@1/CONIO_SCREEN_BANK#30 ) memcpy_in_vram::dest_bank#1 = 1 - memcpy_in_vram::dest#1 = (void*)$f000 + memcpy_in_vram::dest#1 = (void*)(byte*)$f000 memcpy_in_vram::dest_increment#1 = VERA_INC_1 memcpy_in_vram::src_bank#1 = 0 - memcpy_in_vram::src#1 = (void*)$f800 + memcpy_in_vram::src#1 = (void*)(byte*)$f800 memcpy_in_vram::src_increment#1 = VERA_INC_1 memcpy_in_vram::num#1 = $100*8 call memcpy_in_vram @@ -5723,8 +5723,6 @@ Inlining cast conio_cursor_x[conio_screen_layer] = (unumber)0 Inlining cast memcpy_in_vram::dest_bank#0 = (unumber)0 Inlining cast memcpy_in_vram::src_bank#0 = (unumber)0 Inlining cast gotoxy::x#2 = (unumber)0 -Inlining cast CONIO_SCREEN_TEXT#2 = (byte*)screenlayer::$1 -Inlining cast bitmap_clear::vdest#0 = (void*)bitmap_clear::$5 Inlining cast memset_vram::data#0 = (unumber)0 Inlining cast memcpy_in_vram::dest_bank#1 = (unumber)1 Inlining cast memcpy_in_vram::src_bank#1 = (unumber)0 @@ -5909,9 +5907,9 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 1 -Simplifying constant pointer cast (void*) 61440 +Simplifying constant pointer cast (byte*) 61440 Simplifying constant integer cast 0 -Simplifying constant pointer cast (void*) 63488 +Simplifying constant pointer cast (byte*) 63488 Simplifying constant integer cast 1 Simplifying constant integer cast $14000 Simplifying constant integer cast $1f000 @@ -6781,10 +6779,10 @@ Constant bitmap_line::yd#0 = 0 Constant divr16u::quotient#0 = 0 Constant divr16u::i#0 = 0 Constant memcpy_in_vram::dest_bank#1 = 1 -Constant memcpy_in_vram::dest#1 = (void*) 61440 +Constant memcpy_in_vram::dest#1 = (void*)(byte*) 61440 Constant memcpy_in_vram::dest_increment#1 = VERA_INC_1 Constant memcpy_in_vram::src_bank#1 = 0 -Constant memcpy_in_vram::src#1 = (void*) 63488 +Constant memcpy_in_vram::src#1 = (void*)(byte*) 63488 Constant memcpy_in_vram::src_increment#1 = VERA_INC_1 Constant memcpy_in_vram::num#1 = (unumber)$100*8 Constant vera_layer_mode_tile::layer#1 = 1 @@ -7340,7 +7338,7 @@ Constant inlined main::textcolor3_color#0 = WHITE Constant inlined vera_layer_set_tilebase::layer#1 = vera_layer_mode_bitmap::layer#0 Constant inlined vera_layer_mode_tile::mapheight#0 = vera_layer_mode_text::mapheight#0 Constant inlined vera_layer_mode_tile::mapheight#1 = $40 -Constant inlined memcpy_in_vram::dest#1 = (void*) 61440 +Constant inlined memcpy_in_vram::dest#1 = (void*)(byte*) 61440 Constant inlined memcpy_in_vram::dest_increment#0 = VERA_INC_1 Constant inlined memcpy_in_vram::dest_increment#1 = VERA_INC_1 Constant inlined vera_layer_mode_bitmap::$1 = 0 @@ -7378,7 +7376,7 @@ Constant inlined vera_layer_mode_tile::config#3 = VERA_LAYER_COLOR_DEPTH_4BPP Constant inlined vera_layer_mode_tile::config#4 = VERA_LAYER_COLOR_DEPTH_8BPP Constant inlined main::s6 = main::s4 Constant inlined vera_display_get_hscale::s#0 = 1 -Constant inlined memcpy_in_vram::src#1 = (void*) 63488 +Constant inlined memcpy_in_vram::src#1 = (void*)(byte*) 63488 Constant inlined screenlayer::layer#0 = 1 Constant inlined screenlayer::layer#1 = 1 Constant inlined screenlayer::layer#2 = 1 @@ -8554,8 +8552,8 @@ void memcpy_in_vram(byte memcpy_in_vram::dest_bank , void* memcpy_in_vram::dest memcpy_in_vram: scope:[memcpy_in_vram] from insertup::@2 main [221] memcpy_in_vram::num#3 = phi( insertup::@2/memcpy_in_vram::num#0, main/$100*8 ) [221] memcpy_in_vram::dest_bank#2 = phi( insertup::@2/0, main/1 ) - [221] memcpy_in_vram::dest#2 = phi( insertup::@2/memcpy_in_vram::dest#0, main/(void*) 61440 ) - [221] memcpy_in_vram::src#2 = phi( insertup::@2/memcpy_in_vram::src#3, main/(void*) 63488 ) + [221] memcpy_in_vram::dest#2 = phi( insertup::@2/memcpy_in_vram::dest#0, main/(void*)(byte*) 61440 ) + [221] memcpy_in_vram::src#2 = phi( insertup::@2/memcpy_in_vram::src#3, main/(void*)(byte*) 63488 ) [222] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL [223] memcpy_in_vram::$0 = < memcpy_in_vram::src#2 [224] *VERA_ADDRX_L = memcpy_in_vram::$0 @@ -13479,12 +13477,12 @@ main: { sta.z memcpy_in_vram.num+1 // [221] phi memcpy_in_vram::dest_bank#2 = 1 [phi:main->memcpy_in_vram#1] -- vbuyy=vbuc1 ldy #1 - // [221] phi memcpy_in_vram::dest#2 = (void*) 61440 [phi:main->memcpy_in_vram#2] -- pvoz1=pvoc1 + // [221] phi memcpy_in_vram::dest#2 = (void*)(byte*) 61440 [phi:main->memcpy_in_vram#2] -- pvoz1=pvoc1 lda #<$f000 sta.z memcpy_in_vram.dest lda #>$f000 sta.z memcpy_in_vram.dest+1 - // [221] phi memcpy_in_vram::src#2 = (void*) 63488 [phi:main->memcpy_in_vram#3] -- pvoz1=pvoc1 + // [221] phi memcpy_in_vram::src#2 = (void*)(byte*) 63488 [phi:main->memcpy_in_vram#3] -- pvoz1=pvoc1 lda #<$f800 sta.z memcpy_in_vram.src lda #>$f800 @@ -20326,7 +20324,7 @@ main: { .label __40 = $13 .label color = 5 .label x = 3 - // memcpy_in_vram(1, 0xF000, VERA_INC_1, 0, 0xF800, VERA_INC_1, 256*8) + // memcpy_in_vram(1, (char*)0xF000, VERA_INC_1, 0, (char*)0xF800, VERA_INC_1, 256*8) // [38] call memcpy_in_vram // Before we configure the bitmap pane into vera memory we need to re-arrange a few things! // It is better to load all in bank 0, but then there is an issue. @@ -20344,12 +20342,12 @@ main: { sta.z memcpy_in_vram.num+1 // [221] phi memcpy_in_vram::dest_bank#2 = 1 [phi:main->memcpy_in_vram#1] -- vbuyy=vbuc1 ldy #1 - // [221] phi memcpy_in_vram::dest#2 = (void*) 61440 [phi:main->memcpy_in_vram#2] -- pvoz1=pvoc1 + // [221] phi memcpy_in_vram::dest#2 = (void*)(byte*) 61440 [phi:main->memcpy_in_vram#2] -- pvoz1=pvoc1 lda #<$f000 sta.z memcpy_in_vram.dest lda #>$f000 sta.z memcpy_in_vram.dest+1 - // [221] phi memcpy_in_vram::src#2 = (void*) 63488 [phi:main->memcpy_in_vram#3] -- pvoz1=pvoc1 + // [221] phi memcpy_in_vram::src#2 = (void*)(byte*) 63488 [phi:main->memcpy_in_vram#3] -- pvoz1=pvoc1 lda #<$f800 sta.z memcpy_in_vram.src lda #>$f800 diff --git a/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.asm b/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.asm index 980bbe76c..bf2561760 100644 --- a/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.asm +++ b/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.asm @@ -189,7 +189,7 @@ main: { .label r = 7 .label column1 = $c .label r1 = $b - // memcpy_in_vram(1, 0xF000, VERA_INC_1, 0, 0xF800, VERA_INC_1, 256*8) + // memcpy_in_vram(1, (char*)0xF000, VERA_INC_1, 0, (char*)0xF800, VERA_INC_1, 256*8) // Before we can load the tiles into memory we need to re-arrange a few things! // The amount of tiles is 256, the color depth is 256, so each tile is 256 bytes! // That is 65356 bytes of memory, which is 64K. Yup! One memory bank in VRAM. @@ -300,9 +300,9 @@ main: { jsr memcpy_to_vram lda #1 sta.z t - lda #<$100 + lda #<0+$100 sta.z tilebase - lda #>$100 + lda #>0+$100 sta.z tilebase+1 __b1: ldx #0 @@ -533,7 +533,7 @@ main: { // *VERA_DC_VIDEO &= ~vera_layer_enable[layer] and VERA_DC_VIDEO sta VERA_DC_VIDEO - // memcpy_in_vram(0, 0xF800, VERA_INC_1, 1, 0xF000, VERA_INC_1, 256*8) + // memcpy_in_vram(0, (char*)0xF800, VERA_INC_1, 1, (char*)0xF000, VERA_INC_1, 256*8) lda #<$100*8 sta.z memcpy_in_vram.num lda #>$100*8 diff --git a/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.cfg b/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.cfg index 681cd32bf..217679311 100644 --- a/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.cfg +++ b/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.cfg @@ -100,7 +100,7 @@ main::@22: scope:[main] from main::@21 to:main::@1 main::@1: scope:[main] from main::@22 main::@23 [48] main::t#5 = phi( main::@22/1, main::@23/main::t#1 ) - [48] main::tilebase#7 = phi( main::@22/$100, main::@23/main::tilebase#2 ) + [48] main::tilebase#7 = phi( main::@22/(byte*) 0+$100, main::@23/main::tilebase#2 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [49] main::p#2 = phi( main::@1/0, main::@2/main::p#1 ) @@ -428,9 +428,9 @@ void memcpy_in_vram(byte memcpy_in_vram::dest_bank , void* memcpy_in_vram::dest memcpy_in_vram: scope:[memcpy_in_vram] from insertup::@2 main main::@17 [214] memcpy_in_vram::num#4 = phi( insertup::@2/memcpy_in_vram::num#0, main/$100*8, main::@17/$100*8 ) [214] memcpy_in_vram::dest_bank#3 = phi( insertup::@2/0, main/1, main::@17/0 ) - [214] memcpy_in_vram::dest#3 = phi( insertup::@2/memcpy_in_vram::dest#0, main/(void*) 61440, main::@17/(void*) 63488 ) + [214] memcpy_in_vram::dest#3 = phi( insertup::@2/memcpy_in_vram::dest#0, main/(void*)(byte*) 61440, main::@17/(void*)(byte*) 63488 ) [214] memcpy_in_vram::src_bank#3 = phi( insertup::@2/0, main/0, main::@17/1 ) - [214] memcpy_in_vram::src#3 = phi( insertup::@2/memcpy_in_vram::src#4, main/(void*) 63488, main::@17/(void*) 61440 ) + [214] memcpy_in_vram::src#3 = phi( insertup::@2/memcpy_in_vram::src#4, main/(void*)(byte*) 63488, main::@17/(void*)(byte*) 61440 ) [215] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL [216] memcpy_in_vram::$0 = < memcpy_in_vram::src#3 [217] *VERA_ADDRX_L = memcpy_in_vram::$0 @@ -656,7 +656,7 @@ clrscr::@5: scope:[clrscr] from clrscr::@4 void memcpy_to_vram(byte memcpy_to_vram::vbank , void* memcpy_to_vram::vdest , void* memcpy_to_vram::src , word memcpy_to_vram::num) memcpy_to_vram: scope:[memcpy_to_vram] from main::@22 main::@3 - [338] memcpy_to_vram::vdest#2 = phi( main::@22/(void*)0, main::@3/memcpy_to_vram::vdest#1 ) + [338] memcpy_to_vram::vdest#2 = phi( main::@22/(void*)(byte*) 0, main::@3/memcpy_to_vram::vdest#1 ) [339] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL [340] memcpy_to_vram::$0 = < memcpy_to_vram::vdest#2 [341] *VERA_ADDRX_L = memcpy_to_vram::$0 diff --git a/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.log b/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.log index c111e0fac..a7e41ab89 100644 --- a/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.log +++ b/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.log @@ -1397,7 +1397,7 @@ screenlayer::@4: scope:[screenlayer] from screenlayer::@3 CONIO_SCREEN_BANK#86 = phi( screenlayer::@3/CONIO_SCREEN_BANK#2 ) vera_layer_get_mapbase_offset::return#4 = phi( screenlayer::@3/vera_layer_get_mapbase_offset::return#2 ) screenlayer::$1 = vera_layer_get_mapbase_offset::return#4 - CONIO_SCREEN_TEXT#2 = ((byte*)) screenlayer::$1 + CONIO_SCREEN_TEXT#2 = (byte*)screenlayer::$1 screenlayer::vera_layer_get_width1_layer#0 = conio_screen_layer to:screenlayer::vera_layer_get_width1 screenlayer::vera_layer_get_width1: scope:[screenlayer] from screenlayer::@4 @@ -1482,10 +1482,10 @@ main: scope:[main] from __start::@1 CONIO_SCREEN_TEXT#52 = phi( __start::@1/CONIO_SCREEN_TEXT#35 ) CONIO_SCREEN_BANK#47 = phi( __start::@1/CONIO_SCREEN_BANK#30 ) memcpy_in_vram::dest_bank#1 = 1 - memcpy_in_vram::dest#1 = (void*)$f000 + memcpy_in_vram::dest#1 = (void*)(byte*)$f000 memcpy_in_vram::dest_increment#1 = VERA_INC_1 memcpy_in_vram::src_bank#1 = 0 - memcpy_in_vram::src#1 = (void*)$f800 + memcpy_in_vram::src#1 = (void*)(byte*)$f800 memcpy_in_vram::src_increment#1 = VERA_INC_1 memcpy_in_vram::num#1 = $100*8 call memcpy_in_vram @@ -1568,7 +1568,7 @@ main::@26: scope:[main] from main::@17 main::@27: scope:[main] from main::@26 CONIO_SCREEN_BANK#109 = phi( main::@26/CONIO_SCREEN_BANK#111 ) CONIO_SCREEN_TEXT#115 = phi( main::@26/CONIO_SCREEN_TEXT#117 ) - main::tilebase#0 = 0 + main::tilebase#0 = (byte*)0 memcpy_to_vram::vbank#0 = 0 memcpy_to_vram::vdest#0 = (void*)main::tilebase#0 memcpy_to_vram::src#0 = (void*)main::tiles @@ -1897,10 +1897,10 @@ main::@18: scope:[main] from main::vera_layer_hide1 CONIO_SCREEN_TEXT#62 = phi( main::vera_layer_hide1/CONIO_SCREEN_TEXT#76 ) CONIO_SCREEN_BANK#55 = phi( main::vera_layer_hide1/CONIO_SCREEN_BANK#62 ) memcpy_in_vram::dest_bank#2 = 0 - memcpy_in_vram::dest#2 = (void*)$f800 + memcpy_in_vram::dest#2 = (void*)(byte*)$f800 memcpy_in_vram::dest_increment#2 = VERA_INC_1 memcpy_in_vram::src_bank#2 = 1 - memcpy_in_vram::src#2 = (void*)$f000 + memcpy_in_vram::src#2 = (void*)(byte*)$f000 memcpy_in_vram::src_increment#2 = VERA_INC_1 memcpy_in_vram::num#2 = $100*8 call memcpy_in_vram @@ -2653,15 +2653,15 @@ word main::tile#6 word main::tile#7 word main::tile#8 word main::tile#9 -word main::tilebase -word main::tilebase#0 -word main::tilebase#1 -word main::tilebase#2 -word main::tilebase#3 -word main::tilebase#4 -word main::tilebase#5 -word main::tilebase#6 -word main::tilebase#7 +byte* main::tilebase +byte* main::tilebase#0 +byte* main::tilebase#1 +byte* main::tilebase#2 +byte* main::tilebase#3 +byte* main::tilebase#4 +byte* main::tilebase#5 +byte* main::tilebase#6 +byte* main::tilebase#7 constant byte* main::tiles[$100] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } byte~ main::vera_layer_hide1_$0 byte main::vera_layer_hide1_layer @@ -3711,7 +3711,6 @@ Inlining cast conio_cursor_x[conio_screen_layer] = (unumber)0 Inlining cast memcpy_in_vram::dest_bank#0 = (unumber)0 Inlining cast memcpy_in_vram::src_bank#0 = (unumber)0 Inlining cast gotoxy::x#2 = (unumber)0 -Inlining cast CONIO_SCREEN_TEXT#2 = (byte*)screenlayer::$1 Inlining cast memcpy_in_vram::dest_bank#1 = (unumber)1 Inlining cast memcpy_in_vram::src_bank#1 = (unumber)0 Inlining cast memcpy_in_vram::num#1 = (unumber)$100*8 @@ -3897,9 +3896,9 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 4 Simplifying constant integer cast 6 Simplifying constant integer cast 1 -Simplifying constant pointer cast (void*) 61440 +Simplifying constant pointer cast (byte*) 61440 Simplifying constant integer cast 0 -Simplifying constant pointer cast (void*) 63488 +Simplifying constant pointer cast (byte*) 63488 Simplifying constant integer cast 1 Simplifying constant integer cast $10000 Simplifying constant integer cast $1f000 @@ -3917,6 +3916,7 @@ Simplifying constant integer cast $40 Simplifying constant integer cast $10 Simplifying constant integer cast $10 Simplifying constant integer cast 8 +Simplifying constant pointer cast (byte*) 0 Simplifying constant integer cast 0 Simplifying constant integer cast $100 Simplifying constant integer cast $100 @@ -3978,9 +3978,9 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 -Simplifying constant pointer cast (void*) 63488 +Simplifying constant pointer cast (byte*) 63488 Simplifying constant integer cast 1 -Simplifying constant pointer cast (void*) 61440 +Simplifying constant pointer cast (byte*) 61440 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast $f800 @@ -4573,10 +4573,10 @@ Constant memcpy_in_vram::src_increment#0 = VERA_INC_1 Constant gotoxy::x#2 = 0 Constant cputs::c#0 = 0 Constant memcpy_in_vram::dest_bank#1 = 1 -Constant memcpy_in_vram::dest#1 = (void*) 61440 +Constant memcpy_in_vram::dest#1 = (void*)(byte*) 61440 Constant memcpy_in_vram::dest_increment#1 = VERA_INC_1 Constant memcpy_in_vram::src_bank#1 = 0 -Constant memcpy_in_vram::src#1 = (void*) 63488 +Constant memcpy_in_vram::src#1 = (void*)(byte*) 63488 Constant memcpy_in_vram::src_increment#1 = VERA_INC_1 Constant memcpy_in_vram::num#1 = (unumber)$100*8 Constant vera_layer_mode_tile::layer#1 = 1 @@ -4598,7 +4598,7 @@ Constant vera_layer_mode_tile::mapheight#2 = $40 Constant vera_layer_mode_tile::tilewidth#2 = $10 Constant vera_layer_mode_tile::tileheight#2 = $10 Constant vera_layer_mode_tile::color_depth#2 = 8 -Constant main::tilebase#0 = 0 +Constant main::tilebase#0 = (byte*) 0 Constant memcpy_to_vram::vbank#0 = 0 Constant memcpy_to_vram::src#0 = (void*)main::tiles Constant memcpy_to_vram::num#0 = $100 @@ -4669,10 +4669,10 @@ Constant vera_tile_area::vflip#5 = 0 Constant vera_tile_area::offset#5 = 0 Constant main::vera_layer_hide1_layer#0 = 0 Constant memcpy_in_vram::dest_bank#2 = 0 -Constant memcpy_in_vram::dest#2 = (void*) 63488 +Constant memcpy_in_vram::dest#2 = (void*)(byte*) 63488 Constant memcpy_in_vram::dest_increment#2 = VERA_INC_1 Constant memcpy_in_vram::src_bank#2 = 1 -Constant memcpy_in_vram::src#2 = (void*) 61440 +Constant memcpy_in_vram::src#2 = (void*)(byte*) 61440 Constant memcpy_in_vram::src_increment#2 = VERA_INC_1 Constant memcpy_in_vram::num#2 = (unumber)$100*8 Constant vera_layer_mode_tile::layer#3 = 1 @@ -4735,7 +4735,6 @@ Simplifying expression containing zero vera_layer_mode_tile::config#17 in [111] Simplifying expression containing zero vera_layer_mode_tile::config#21 in [132] vera_layer_mode_tile::config#9 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_32 Simplifying expression containing zero vera_layer_mode_tile::tilebase#1 in [168] vera_layer_mode_tile::tilebase#2 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_8 Simplifying expression containing zero vera_layer_mode_tile::tilebase#12 in [173] vera_layer_mode_tile::tilebase#4 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_8 -Simplifying expression containing zero $100 in [552] main::tilebase#1 = main::tilebase#0 + $100 Simplifying expression containing zero vera_layer_enable in [627] *VERA_DC_VIDEO = *VERA_DC_VIDEO | vera_layer_enable[main::vera_layer_show1_layer#0] Simplifying expression containing zero vera_layer_enable in [688] main::vera_layer_hide1_$0 = ~ vera_layer_enable[main::vera_layer_hide1_layer#0] Successful SSA optimization PassNSimplifyExpressionWithZero @@ -4808,13 +4807,14 @@ Identical Phi Values vera_layer_set_text_color_mode::layer#2 vera_layer_set_text Identical Phi Values vera_layer_set_text_color_mode::color_mode#2 vera_layer_set_text_color_mode::color_mode#0 Successful SSA optimization Pass2IdenticalPhiElimination Constant right-side identified [41] vera_layer_set_text_color_mode::$0 = vera_layer_set_text_color_mode::layer#0 * SIZEOF_POINTER +Constant right-side identified [412] main::tilebase#1 = main::tilebase#0 + $100 Successful SSA optimization Pass2ConstantRValueConsolidation Constant vera_layer_set_text_color_mode::$0 = vera_layer_set_text_color_mode::layer#0*SIZEOF_POINTER Constant vera_layer_mode_tile::config#1 = VERA_LAYER_COLOR_DEPTH_1BPP Constant vera_layer_mode_tile::config#2 = VERA_LAYER_COLOR_DEPTH_2BPP Constant vera_layer_mode_tile::config#3 = VERA_LAYER_COLOR_DEPTH_4BPP Constant vera_layer_mode_tile::config#4 = VERA_LAYER_COLOR_DEPTH_8BPP -Constant main::tilebase#1 = $100 +Constant main::tilebase#1 = main::tilebase#0+$100 Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero *vera_layer_set_text_color_mode::addr#0 in [44] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 | vera_layer_set_text_color_mode::color_mode#0 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -5027,7 +5027,7 @@ Constant inlined vera_layer_set_textcolor::color#0 = WHITE Constant inlined cputs::s#4 = main::s3 Constant inlined cputs::s#1 = main::s Constant inlined cputs::s#2 = main::s1 -Constant inlined memcpy_to_vram::vdest#0 = (void*)0 +Constant inlined memcpy_to_vram::vdest#0 = (void*)(byte*) 0 Constant inlined vera_tile_area::layer#3 = 0 Constant inlined vera_tile_area::layer#4 = 0 Constant inlined clrscr::l#0 = 0 @@ -5042,8 +5042,8 @@ Constant inlined vera_tile_area::y#0 = 0 Constant inlined vera_tile_area::y#2 = 0 Constant inlined memcpy_to_vram::num#0 = $100 Constant inlined vera_tile_area::tileindex#4 = 0 -Constant inlined main::tilebase#1 = $100 -Constant inlined main::tilebase#0 = 0 +Constant inlined main::tilebase#1 = (byte*) 0+$100 +Constant inlined main::tilebase#0 = (byte*) 0 Constant inlined memcpy_in_vram::src_increment#1 = VERA_INC_1 Constant inlined memcpy_in_vram::src_increment#2 = VERA_INC_1 Constant inlined vera_layer_mode_tile::layer#0 = vera_layer_mode_text::layer#0 @@ -5123,8 +5123,8 @@ Constant inlined vera_layer_mode_tile::mapheight#4 = $80 Constant inlined vera_layer_mode_tile::mapheight#0 = vera_layer_mode_text::mapheight#0 Constant inlined vera_layer_mode_tile::mapheight#1 = $40 Constant inlined vera_layer_mode_tile::mapheight#2 = $40 -Constant inlined memcpy_in_vram::dest#1 = (void*) 61440 -Constant inlined memcpy_in_vram::dest#2 = (void*) 63488 +Constant inlined memcpy_in_vram::dest#1 = (void*)(byte*) 61440 +Constant inlined memcpy_in_vram::dest#2 = (void*)(byte*) 63488 Constant inlined vera_tile_area::w#0 = $28 Constant inlined memcpy_in_vram::dest_increment#0 = VERA_INC_1 Constant inlined memcpy_in_vram::dest_increment#1 = VERA_INC_1 @@ -5178,8 +5178,8 @@ Constant inlined vera_tile_area::h#1 = 1 Constant inlined vera_layer_mode_tile::config#4 = VERA_LAYER_COLOR_DEPTH_8BPP Constant inlined vera_tile_area::h#2 = $1e Constant inlined vera_tile_area::h#3 = 2 -Constant inlined memcpy_in_vram::src#2 = (void*) 61440 -Constant inlined memcpy_in_vram::src#1 = (void*) 63488 +Constant inlined memcpy_in_vram::src#2 = (void*)(byte*) 61440 +Constant inlined memcpy_in_vram::src#1 = (void*)(byte*) 63488 Constant inlined screenlayer::layer#0 = 1 Constant inlined screenlayer::layer#1 = 1 Constant inlined screenlayer::layer#2 = 1 @@ -5730,7 +5730,7 @@ main::@22: scope:[main] from main::@21 to:main::@1 main::@1: scope:[main] from main::@22 main::@23 [48] main::t#5 = phi( main::@22/1, main::@23/main::t#1 ) - [48] main::tilebase#7 = phi( main::@22/$100, main::@23/main::tilebase#2 ) + [48] main::tilebase#7 = phi( main::@22/(byte*) 0+$100, main::@23/main::tilebase#2 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [49] main::p#2 = phi( main::@1/0, main::@2/main::p#1 ) @@ -6058,9 +6058,9 @@ void memcpy_in_vram(byte memcpy_in_vram::dest_bank , void* memcpy_in_vram::dest memcpy_in_vram: scope:[memcpy_in_vram] from insertup::@2 main main::@17 [214] memcpy_in_vram::num#4 = phi( insertup::@2/memcpy_in_vram::num#0, main/$100*8, main::@17/$100*8 ) [214] memcpy_in_vram::dest_bank#3 = phi( insertup::@2/0, main/1, main::@17/0 ) - [214] memcpy_in_vram::dest#3 = phi( insertup::@2/memcpy_in_vram::dest#0, main/(void*) 61440, main::@17/(void*) 63488 ) + [214] memcpy_in_vram::dest#3 = phi( insertup::@2/memcpy_in_vram::dest#0, main/(void*)(byte*) 61440, main::@17/(void*)(byte*) 63488 ) [214] memcpy_in_vram::src_bank#3 = phi( insertup::@2/0, main/0, main::@17/1 ) - [214] memcpy_in_vram::src#3 = phi( insertup::@2/memcpy_in_vram::src#4, main/(void*) 63488, main::@17/(void*) 61440 ) + [214] memcpy_in_vram::src#3 = phi( insertup::@2/memcpy_in_vram::src#4, main/(void*)(byte*) 63488, main::@17/(void*)(byte*) 61440 ) [215] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL [216] memcpy_in_vram::$0 = < memcpy_in_vram::src#3 [217] *VERA_ADDRX_L = memcpy_in_vram::$0 @@ -6286,7 +6286,7 @@ clrscr::@5: scope:[clrscr] from clrscr::@4 void memcpy_to_vram(byte memcpy_to_vram::vbank , void* memcpy_to_vram::vdest , void* memcpy_to_vram::src , word memcpy_to_vram::num) memcpy_to_vram: scope:[memcpy_to_vram] from main::@22 main::@3 - [338] memcpy_to_vram::vdest#2 = phi( main::@22/(void*)0, main::@3/memcpy_to_vram::vdest#1 ) + [338] memcpy_to_vram::vdest#2 = phi( main::@22/(void*)(byte*) 0, main::@3/memcpy_to_vram::vdest#1 ) [339] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL [340] memcpy_to_vram::$0 = < memcpy_to_vram::vdest#2 [341] *VERA_ADDRX_L = memcpy_to_vram::$0 @@ -6839,9 +6839,9 @@ word main::tile#13 350.5 word main::tile#4 2002.0 word main::tile#6 517.3333333333334 word main::tile#8 517.3333333333334 -word main::tilebase -word main::tilebase#2 67.33333333333333 -word main::tilebase#7 28.857142857142858 +byte* main::tilebase +byte* main::tilebase#2 67.33333333333333 +byte* main::tilebase#7 28.857142857142858 byte~ main::vera_layer_hide1_$0 22.0 byte main::vera_layer_hide1_layer byte main::vera_layer_show1_layer @@ -9098,14 +9098,14 @@ main: { // [214] phi memcpy_in_vram::dest_bank#3 = 1 [phi:main->memcpy_in_vram#1] -- vbuz1=vbuc1 lda #1 sta.z memcpy_in_vram.dest_bank - // [214] phi memcpy_in_vram::dest#3 = (void*) 61440 [phi:main->memcpy_in_vram#2] -- pvoz1=pvoc1 + // [214] phi memcpy_in_vram::dest#3 = (void*)(byte*) 61440 [phi:main->memcpy_in_vram#2] -- pvoz1=pvoc1 lda #<$f000 sta.z memcpy_in_vram.dest lda #>$f000 sta.z memcpy_in_vram.dest+1 // [214] phi memcpy_in_vram::src_bank#3 = 0 [phi:main->memcpy_in_vram#3] -- vbuyy=vbuc1 ldy #0 - // [214] phi memcpy_in_vram::src#3 = (void*) 63488 [phi:main->memcpy_in_vram#4] -- pvoz1=pvoc1 + // [214] phi memcpy_in_vram::src#3 = (void*)(byte*) 63488 [phi:main->memcpy_in_vram#4] -- pvoz1=pvoc1 lda #<$f800 sta.z memcpy_in_vram.src lda #>$f800 @@ -9253,7 +9253,7 @@ main: { // [47] call memcpy_to_vram // [338] phi from main::@22 to memcpy_to_vram [phi:main::@22->memcpy_to_vram] memcpy_to_vram_from___b22: - // [338] phi memcpy_to_vram::vdest#2 = (void*)0 [phi:main::@22->memcpy_to_vram#0] -- pvoz1=pvoc1 + // [338] phi memcpy_to_vram::vdest#2 = (void*)(byte*) 0 [phi:main::@22->memcpy_to_vram#0] -- pvoz1=pvoc1 lda #<0 sta.z memcpy_to_vram.vdest lda #>0 @@ -9264,10 +9264,10 @@ main: { // [48] phi main::t#5 = 1 [phi:main::@22->main::@1#0] -- vbuz1=vbuc1 lda #1 sta.z t - // [48] phi main::tilebase#7 = $100 [phi:main::@22->main::@1#1] -- vwuz1=vwuc1 - lda #<$100 + // [48] phi main::tilebase#7 = (byte*) 0+$100 [phi:main::@22->main::@1#1] -- pbuz1=pbuc1 + lda #<0+$100 sta.z tilebase - lda #>$100 + lda #>0+$100 sta.z tilebase+1 jmp __b1 // [48] phi from main::@23 to main::@1 [phi:main::@23->main::@1] @@ -9313,7 +9313,7 @@ main: { jmp __b23 // main::@23 __b23: - // [55] main::tilebase#2 = main::tilebase#7 + $100 -- vwuz1=vwuz1_plus_vwuc1 + // [55] main::tilebase#2 = main::tilebase#7 + $100 -- pbuz1=pbuz1_plus_vwuc1 clc lda.z tilebase adc #<$100 @@ -9779,14 +9779,14 @@ main: { // [214] phi memcpy_in_vram::dest_bank#3 = 0 [phi:main::@17->memcpy_in_vram#1] -- vbuz1=vbuc1 lda #0 sta.z memcpy_in_vram.dest_bank - // [214] phi memcpy_in_vram::dest#3 = (void*) 63488 [phi:main::@17->memcpy_in_vram#2] -- pvoz1=pvoc1 + // [214] phi memcpy_in_vram::dest#3 = (void*)(byte*) 63488 [phi:main::@17->memcpy_in_vram#2] -- pvoz1=pvoc1 lda #<$f800 sta.z memcpy_in_vram.dest lda #>$f800 sta.z memcpy_in_vram.dest+1 // [214] phi memcpy_in_vram::src_bank#3 = 1 [phi:main::@17->memcpy_in_vram#3] -- vbuyy=vbuc1 ldy #1 - // [214] phi memcpy_in_vram::src#3 = (void*) 61440 [phi:main::@17->memcpy_in_vram#4] -- pvoz1=pvoc1 + // [214] phi memcpy_in_vram::src#3 = (void*)(byte*) 61440 [phi:main::@17->memcpy_in_vram#4] -- pvoz1=pvoc1 lda #<$f000 sta.z memcpy_in_vram.src lda #>$f000 @@ -12890,9 +12890,9 @@ word main::tile#13 tile zp[2]:8 350.5 word main::tile#4 tile zp[2]:8 2002.0 word main::tile#6 tile zp[2]:8 517.3333333333334 word main::tile#8 tile zp[2]:8 517.3333333333334 -word main::tilebase -word main::tilebase#2 tilebase zp[2]:3 67.33333333333333 -word main::tilebase#7 tilebase zp[2]:3 28.857142857142858 +byte* main::tilebase +byte* main::tilebase#2 tilebase zp[2]:3 67.33333333333333 +byte* main::tilebase#7 tilebase zp[2]:3 28.857142857142858 constant byte* main::tiles[$100] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } byte~ main::vera_layer_hide1_$0 reg byte a 22.0 byte main::vera_layer_hide1_layer @@ -13640,7 +13640,7 @@ main: { .label r = 7 .label column1 = $c .label r1 = $b - // memcpy_in_vram(1, 0xF000, VERA_INC_1, 0, 0xF800, VERA_INC_1, 256*8) + // memcpy_in_vram(1, (char*)0xF000, VERA_INC_1, 0, (char*)0xF800, VERA_INC_1, 256*8) // [33] call memcpy_in_vram // Before we can load the tiles into memory we need to re-arrange a few things! // The amount of tiles is 256, the color depth is 256, so each tile is 256 bytes! @@ -13662,14 +13662,14 @@ main: { // [214] phi memcpy_in_vram::dest_bank#3 = 1 [phi:main->memcpy_in_vram#1] -- vbuz1=vbuc1 lda #1 sta.z memcpy_in_vram.dest_bank - // [214] phi memcpy_in_vram::dest#3 = (void*) 61440 [phi:main->memcpy_in_vram#2] -- pvoz1=pvoc1 + // [214] phi memcpy_in_vram::dest#3 = (void*)(byte*) 61440 [phi:main->memcpy_in_vram#2] -- pvoz1=pvoc1 lda #<$f000 sta.z memcpy_in_vram.dest lda #>$f000 sta.z memcpy_in_vram.dest+1 // [214] phi memcpy_in_vram::src_bank#3 = 0 [phi:main->memcpy_in_vram#3] -- vbuyy=vbuc1 ldy #0 - // [214] phi memcpy_in_vram::src#3 = (void*) 63488 [phi:main->memcpy_in_vram#4] -- pvoz1=pvoc1 + // [214] phi memcpy_in_vram::src#3 = (void*)(byte*) 63488 [phi:main->memcpy_in_vram#4] -- pvoz1=pvoc1 lda #<$f800 sta.z memcpy_in_vram.src lda #>$f800 @@ -13797,7 +13797,7 @@ main: { // memcpy_to_vram(0, tilebase, tiles, 256) // [47] call memcpy_to_vram // [338] phi from main::@22 to memcpy_to_vram [phi:main::@22->memcpy_to_vram] - // [338] phi memcpy_to_vram::vdest#2 = (void*)0 [phi:main::@22->memcpy_to_vram#0] -- pvoz1=pvoc1 + // [338] phi memcpy_to_vram::vdest#2 = (void*)(byte*) 0 [phi:main::@22->memcpy_to_vram#0] -- pvoz1=pvoc1 lda #<0 sta.z memcpy_to_vram.vdest sta.z memcpy_to_vram.vdest+1 @@ -13806,10 +13806,10 @@ main: { // [48] phi main::t#5 = 1 [phi:main::@22->main::@1#0] -- vbuz1=vbuc1 lda #1 sta.z t - // [48] phi main::tilebase#7 = $100 [phi:main::@22->main::@1#1] -- vwuz1=vwuc1 - lda #<$100 + // [48] phi main::tilebase#7 = (byte*) 0+$100 [phi:main::@22->main::@1#1] -- pbuz1=pbuc1 + lda #<0+$100 sta.z tilebase - lda #>$100 + lda #>0+$100 sta.z tilebase+1 // [48] phi from main::@23 to main::@1 [phi:main::@23->main::@1] // [48] phi main::t#5 = main::t#1 [phi:main::@23->main::@1#0] -- register_copy @@ -13847,7 +13847,7 @@ main: { jsr memcpy_to_vram // main::@23 // tilebase+=256 - // [55] main::tilebase#2 = main::tilebase#7 + $100 -- vwuz1=vwuz1_plus_vwuc1 + // [55] main::tilebase#2 = main::tilebase#7 + $100 -- pbuz1=pbuz1_plus_vwuc1 clc lda.z tilebase adc #<$100 @@ -14230,7 +14230,7 @@ main: { sta VERA_DC_VIDEO // [123] phi from main::vera_layer_hide1 to main::@17 [phi:main::vera_layer_hide1->main::@17] // main::@17 - // memcpy_in_vram(0, 0xF800, VERA_INC_1, 1, 0xF000, VERA_INC_1, 256*8) + // memcpy_in_vram(0, (char*)0xF800, VERA_INC_1, 1, (char*)0xF000, VERA_INC_1, 256*8) // [124] call memcpy_in_vram // [214] phi from main::@17 to memcpy_in_vram [phi:main::@17->memcpy_in_vram] // [214] phi memcpy_in_vram::num#4 = $100*8 [phi:main::@17->memcpy_in_vram#0] -- vwuz1=vwuc1 @@ -14241,14 +14241,14 @@ main: { // [214] phi memcpy_in_vram::dest_bank#3 = 0 [phi:main::@17->memcpy_in_vram#1] -- vbuz1=vbuc1 lda #0 sta.z memcpy_in_vram.dest_bank - // [214] phi memcpy_in_vram::dest#3 = (void*) 63488 [phi:main::@17->memcpy_in_vram#2] -- pvoz1=pvoc1 + // [214] phi memcpy_in_vram::dest#3 = (void*)(byte*) 63488 [phi:main::@17->memcpy_in_vram#2] -- pvoz1=pvoc1 lda #<$f800 sta.z memcpy_in_vram.dest lda #>$f800 sta.z memcpy_in_vram.dest+1 // [214] phi memcpy_in_vram::src_bank#3 = 1 [phi:main::@17->memcpy_in_vram#3] -- vbuyy=vbuc1 ldy #1 - // [214] phi memcpy_in_vram::src#3 = (void*) 61440 [phi:main::@17->memcpy_in_vram#4] -- pvoz1=pvoc1 + // [214] phi memcpy_in_vram::src#3 = (void*)(byte*) 61440 [phi:main::@17->memcpy_in_vram#4] -- pvoz1=pvoc1 lda #<$f000 sta.z memcpy_in_vram.src lda #>$f000 diff --git a/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.sym b/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.sym index 4b006cc83..5234832b3 100644 --- a/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.sym +++ b/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.sym @@ -222,9 +222,9 @@ word main::tile#13 tile zp[2]:8 350.5 word main::tile#4 tile zp[2]:8 2002.0 word main::tile#6 tile zp[2]:8 517.3333333333334 word main::tile#8 tile zp[2]:8 517.3333333333334 -word main::tilebase -word main::tilebase#2 tilebase zp[2]:3 67.33333333333333 -word main::tilebase#7 tilebase zp[2]:3 28.857142857142858 +byte* main::tilebase +byte* main::tilebase#2 tilebase zp[2]:3 67.33333333333333 +byte* main::tilebase#7 tilebase zp[2]:3 28.857142857142858 constant byte* main::tiles[$100] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } byte~ main::vera_layer_hide1_$0 reg byte a 22.0 byte main::vera_layer_hide1_layer diff --git a/src/test/ref/examples/mega65/banked-music.asm b/src/test/ref/examples/mega65/banked-music.asm index a2c10507f..45ab5c2e4 100644 --- a/src/test/ref/examples/mega65/banked-music.asm +++ b/src/test/ref/examples/mega65/banked-music.asm @@ -153,7 +153,7 @@ main: { // open sideborder lda #1 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO - // memcpy_dma4(1, 0x0000, 0, upperCodeData, MUSIC_END-MUSIC) + // memcpy_dma4(1, (void*)0x0000, 0, upperCodeData, MUSIC_END-MUSIC) // Transfer banked code/data to upper memory ($10000) jsr memcpy_dma4 // memoryRemapBlock(0x40, 0x100) diff --git a/src/test/ref/examples/mega65/banked-music.log b/src/test/ref/examples/mega65/banked-music.log index 693189c48..05b669daf 100644 --- a/src/test/ref/examples/mega65/banked-music.log +++ b/src/test/ref/examples/mega65/banked-music.log @@ -1984,7 +1984,7 @@ main: { // open sideborder lda #1 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO - // memcpy_dma4(1, 0x0000, 0, upperCodeData, MUSIC_END-MUSIC) + // memcpy_dma4(1, (void*)0x0000, 0, upperCodeData, MUSIC_END-MUSIC) // [18] call memcpy_dma4 // Transfer banked code/data to upper memory ($10000) jsr memcpy_dma4 diff --git a/src/test/ref/examples/mega65/dypp65.asm b/src/test/ref/examples/mega65/dypp65.asm index e4df97fba..a7b36d615 100644 --- a/src/test/ref/examples/mega65/dypp65.asm +++ b/src/test/ref/examples/mega65/dypp65.asm @@ -170,7 +170,7 @@ main: { lda #>$2d*$19*2 sta.z memset_dma.num+1 jsr memset_dma - // memset_dma256(0xff,0x08,0x0000, WHITE, 45*25*2) + // memset_dma256(0xff,0x08,(void*)0x0000, WHITE, 45*25*2) // Fill the colours with WHITE - directly into $ff80000 jsr memset_dma256 // memset_dma(CHARSET, 0x55, 45*32*8) diff --git a/src/test/ref/examples/mega65/dypp65.log b/src/test/ref/examples/mega65/dypp65.log index 7a599eaf1..75f78c741 100644 --- a/src/test/ref/examples/mega65/dypp65.log +++ b/src/test/ref/examples/mega65/dypp65.log @@ -2384,7 +2384,7 @@ main: { jsr memset_dma // [29] phi from main::@12 to main::@13 [phi:main::@12->main::@13] // main::@13 - // memset_dma256(0xff,0x08,0x0000, WHITE, 45*25*2) + // memset_dma256(0xff,0x08,(void*)0x0000, WHITE, 45*25*2) // [30] call memset_dma256 // Fill the colours with WHITE - directly into $ff80000 jsr memset_dma256 diff --git a/src/test/ref/inline-function-level2.asm b/src/test/ref/inline-function-level2.asm index 3093680c2..a81855726 100644 --- a/src/test/ref/inline-function-level2.asm +++ b/src/test/ref/inline-function-level2.asm @@ -27,7 +27,7 @@ main: { lda #>$400 sta.z sc+1 __b1: - // for(byte* sc = $400;sc<$400+1000;sc++) + // for(byte* sc = (byte*)$400;sc<$400+1000;sc++) lda.z sc+1 cmp #>$400+$3e8 bcc __b2 @@ -120,7 +120,7 @@ main: { lda #' ' ldy #0 sta (sc),y - // for(byte* sc = $400;sc<$400+1000;sc++) + // for(byte* sc = (byte*)$400;sc<$400+1000;sc++) inc.z sc bne !+ inc.z sc+1 diff --git a/src/test/ref/inline-function-level2.log b/src/test/ref/inline-function-level2.log index a22efa1a6..94d3d36b9 100644 --- a/src/test/ref/inline-function-level2.log +++ b/src/test/ref/inline-function-level2.log @@ -32,7 +32,7 @@ main::line1: scope:[main] from main::@3 main::line1_ch#4 = phi( main::@3/main::line1_ch#0 ) main::line1_ysize#3 = phi( main::@3/main::line1_ysize#0 ) main::line1_xpos#1 = phi( main::@3/main::line1_xpos#0 ) - cur_line#0 = ((byte*)) $400 + cur_line#0 = (byte*)$400 main::line1_pos#0 = (word){ main::line1_xpos#1, 0 } main::line1_i#0 = 0 to:main::line1_@1 @@ -91,7 +91,7 @@ main::line2: scope:[main] from main::@4 main::line2_ch#4 = phi( main::@4/main::line2_ch#0 ) main::line2_ysize#3 = phi( main::@4/main::line2_ysize#0 ) main::line2_xpos#1 = phi( main::@4/main::line2_xpos#0 ) - cur_line#2 = ((byte*)) $400 + cur_line#2 = (byte*)$400 main::line2_pos#0 = (word){ main::line2_xpos#1, 0 } main::line2_i#0 = 0 to:main::line2_@1 @@ -306,11 +306,9 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::line1_xpos#0 = (unumber)2 Inlining cast main::line1_xadd#0 = (unumber)$40 Inlining cast main::line1_ysize#0 = (unumber)$a -Inlining cast cur_line#0 = (byte*)$400 Inlining cast main::line2_xpos#0 = (unumber)4 Inlining cast main::line2_xadd#0 = (unumber)$80 Inlining cast main::line2_ysize#0 = (unumber)$f -Inlining cast cur_line#2 = (byte*)$400 Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast 2 @@ -962,7 +960,7 @@ main: { sta.z sc+1 // main::@1 __b1: - // for(byte* sc = $400;sc<$400+1000;sc++) + // for(byte* sc = (byte*)$400;sc<$400+1000;sc++) // [2] if(main::sc#2<$400+$3e8) goto main::@2 -- pbuz1_lt_vwuc1_then_la1 lda.z sc+1 cmp #>$400+$3e8 @@ -1100,7 +1098,7 @@ main: { lda #' ' ldy #0 sta (sc),y - // for(byte* sc = $400;sc<$400+1000;sc++) + // for(byte* sc = (byte*)$400;sc<$400+1000;sc++) // [21] main::sc#1 = ++ main::sc#2 -- pbuz1=_inc_pbuz1 inc.z sc bne !+ diff --git a/src/test/ref/inline-pointer-0.log b/src/test/ref/inline-pointer-0.log index a4d228ef4..7ffcdf891 100644 --- a/src/test/ref/inline-pointer-0.log +++ b/src/test/ref/inline-pointer-0.log @@ -31,35 +31,30 @@ Successful SSA optimization Pass2FixInlineConstructors Simplifying constant integer cast 4 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Adding pointer type conversion cast (byte*) main::$0 in main::$0 = 4 w= 0 -Successful SSA optimization PassNAddTypeConversionAssignment -Alias main::screen#0 = main::$0 -Successful SSA optimization Pass2AliasElimination -Constant right-side identified [0] main::$1 = 4 w= 0 +Constant right-side identified [0] main::$0 = 4 w= 0 Successful SSA optimization Pass2ConstantRValueConsolidation -Simplifying expression containing zero 4*$100 in [0] main::$1 = 4*$100+0 +Simplifying expression containing zero 4*$100 in [0] main::$0 = 4*$100+0 Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused procedure __start Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Adding number conversion cast (unumber) 4*$100 in [0] main::$1 = 4*$100 -Adding number conversion cast (unumber) $100 in [0] main::$1 = ((unumber)) 4*$100 +Adding number conversion cast (unumber) 4*$100 in [0] main::$0 = 4*$100 +Adding number conversion cast (unumber) $100 in [0] main::$0 = ((unumber)) 4*$100 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast [0] main::$1 = (unumber)4*(unumber)$100 -Inlining cast [1] main::screen#0 = (byte*)main::$1 +Inlining cast [0] main::$0 = (unumber)4*(unumber)$100 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 4*(unumber)$100 Simplifying constant integer cast $100 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (word) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions -Constant main::$1 = 4*$100 +Constant main::$0 = 4*$100 Successful SSA optimization Pass2ConstantIdentification -Constant main::screen#0 = (byte*)main::$1 +Constant main::screen#0 = (byte*)main::$0 Successful SSA optimization Pass2ConstantIdentification -Constant inlined main::$1 = 4*$100 +Constant inlined main::$0 = 4*$100 Successful SSA optimization Pass2ConstantInlining CALL GRAPH diff --git a/src/test/ref/inline-pointer-1.log b/src/test/ref/inline-pointer-1.log index d3f79673d..dd5aeaca9 100644 --- a/src/test/ref/inline-pointer-1.log +++ b/src/test/ref/inline-pointer-1.log @@ -78,10 +78,6 @@ Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 5 Finalized unsigned number type (byte) $18 Successful SSA optimization PassNFinalizeNumberTypeConversions -Adding pointer type conversion cast (byte*) puta::$0 in puta::$0 = puta::ph#2 w= puta::pl#2 -Successful SSA optimization PassNAddTypeConversionAssignment -Alias puta::screen#0 = puta::$0 -Successful SSA optimization Pass2AliasElimination Constant puta::ph#0 = 4 Constant puta::pl#0 = 0 Constant puta::ph#1 = 5 @@ -92,9 +88,7 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Inlining cast [5] puta::screen#0 = (byte*)puta::$1 -Successful SSA optimization Pass2InlineCast -Inlining Noop Cast [5] puta::screen#0 = (byte*)puta::$1 keeping puta::screen#0 +Inlining Noop Cast [5] puta::screen#0 = (byte*)puta::$0 keeping puta::screen#0 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings puta::ph#0 Inlining constant with var siblings puta::pl#0 diff --git a/src/test/ref/inline-pointer-2.log b/src/test/ref/inline-pointer-2.log index b4559c958..fac84cccc 100644 --- a/src/test/ref/inline-pointer-2.log +++ b/src/test/ref/inline-pointer-2.log @@ -40,18 +40,15 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Adding pointer type conversion cast (byte*) main::$3 in main::$3 = 4 w= 0 -Successful SSA optimization PassNAddTypeConversionAssignment -Alias main::$1 = main::$3 Alias main::$2 = main::$4 Alias main::screen#0 = main::$0 Successful SSA optimization Pass2AliasElimination -Constant right-side identified [0] main::$5 = 4 w= 0 +Constant right-side identified [0] main::$3 = 4 w= 0 Constant right-side identified [2] main::$2 = 0 w= $28 Successful SSA optimization Pass2ConstantRValueConsolidation Simplifying constant evaluating to zero 0*$100 in [2] main::$2 = 0*$100+$28 Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero 4*$100 in [0] main::$5 = 4*$100+0 +Simplifying expression containing zero 4*$100 in [0] main::$3 = 4*$100+0 Simplifying expression containing zero $28 in [2] main::$2 = 0+$28 Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused procedure __start @@ -59,27 +56,26 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Adding number conversion cast (unumber) 4*$100 in [0] main::$5 = 4*$100 -Adding number conversion cast (unumber) $100 in [0] main::$5 = ((unumber)) 4*$100 +Adding number conversion cast (unumber) 4*$100 in [0] main::$3 = 4*$100 +Adding number conversion cast (unumber) $100 in [0] main::$3 = ((unumber)) 4*$100 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast [0] main::$5 = (unumber)4*(unumber)$100 -Inlining cast [1] main::$1 = (byte*)main::$5 +Inlining cast [0] main::$3 = (unumber)4*(unumber)$100 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 4*(unumber)$100 Simplifying constant integer cast $100 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (word) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions -Constant main::$5 = 4*$100 +Constant main::$3 = 4*$100 Constant main::$2 = $28 Successful SSA optimization Pass2ConstantIdentification -Constant main::$1 = (byte*)main::$5 +Constant main::$1 = (byte*)main::$3 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [0] main::screen#0 = main::$1 + main::$2 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::screen#0 = main::$1+main::$2 Successful SSA optimization Pass2ConstantIdentification -Constant inlined main::$5 = 4*$100 +Constant inlined main::$3 = 4*$100 Constant inlined main::$1 = (byte*)4*$100 Constant inlined main::$2 = $28 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/ref/inline-string-3.log b/src/test/ref/inline-string-3.log index 470e078bb..1341537d2 100644 --- a/src/test/ref/inline-string-3.log +++ b/src/test/ref/inline-string-3.log @@ -46,18 +46,12 @@ Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) 1 Finalized unsigned number type (byte) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Adding pointer type conversion cast (byte*) main::$0 in main::$0 = *(main::PTR+1) w= *main::PTR -Successful SSA optimization PassNAddTypeConversionAssignment -Alias main::ptr#0 = main::$0 -Successful SSA optimization Pass2AliasElimination Removing unused procedure __start Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Inlining cast [3] main::ptr#0 = (byte*)main::$1 -Successful SSA optimization Pass2InlineCast -Inlining Noop Cast [3] main::ptr#0 = (byte*)main::$1 keeping main::ptr#0 +Inlining Noop Cast [3] main::ptr#0 = (byte*)main::$0 keeping main::ptr#0 Successful SSA optimization Pass2NopCastInlining CALL GRAPH diff --git a/src/test/ref/library-constructor-3.asm b/src/test/ref/library-constructor-3.asm index 052d83120..b484b43ef 100644 --- a/src/test/ref/library-constructor-3.asm +++ b/src/test/ref/library-constructor-3.asm @@ -26,7 +26,7 @@ __start: { rts } init_2: { - // SCREEN = 0x0400 + // SCREEN = (char*)0x0400 lda #<$400 sta.z SCREEN lda #>$400 diff --git a/src/test/ref/library-constructor-3.log b/src/test/ref/library-constructor-3.log index 160d730fe..8cad07a54 100644 --- a/src/test/ref/library-constructor-3.log +++ b/src/test/ref/library-constructor-3.log @@ -12,7 +12,7 @@ init_1::@return: scope:[init_1] from init_1 void init_2() init_2: scope:[init_2] from __start::@2 - SCREEN = ((byte*)) $400 + SCREEN = (byte*)$400 to:init_2::@return init_2::@return: scope:[init_2] from init_2 return @@ -67,8 +67,6 @@ void main() void print() volatile byte sym loadstore -Inlining cast SCREEN = (byte*)$400 -Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (byte*) 1024 Successful SSA optimization PassNCastSimplification Adding NOP phi() at start of __start @@ -383,7 +381,7 @@ __start: { } // init_2 init_2: { - // SCREEN = 0x0400 + // SCREEN = (char*)0x0400 // [9] SCREEN = (byte*) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z SCREEN diff --git a/src/test/ref/line-anim.log b/src/test/ref/line-anim.log index 73deb9b4c..98a2d0b10 100644 --- a/src/test/ref/line-anim.log +++ b/src/test/ref/line-anim.log @@ -1188,9 +1188,6 @@ Inferred type updated to byte in bitmap_init::$3 = bitmap_init::y#2 & 7 Inferred type updated to byte in bitmap_init::$5 = bitmap_init::$3 | bitmap_init::$4 Inferred type updated to byte in bitmap_init::$7 = bitmap_init::y#2 & 7 Inferred type updated to word in bitmap_plot::$0 = bitmap_plot::x#1 & $fff8 -Adding pointer type conversion cast (byte*) bitmap_clear::$2 in bitmap_clear::$2 = bitmap_plot_yhi[0] w= bitmap_plot_ylo[0] -Adding pointer type conversion cast (byte*) bitmap_plot::$2 in bitmap_plot::$2 = bitmap_plot_yhi[bitmap_plot::y#1] w= bitmap_plot_ylo[bitmap_plot::y#1] -Successful SSA optimization PassNAddTypeConversionAssignment Inversing boolean not [9] divr16u::$4 = divr16u::$2 == 0 from [8] divr16u::$3 = divr16u::$2 != 0 Inversing boolean not [17] divr16u::$9 = divr16u::rem#5 < divr16u::divisor#1 from [16] divr16u::$8 = divr16u::rem#5 >= divr16u::divisor#1 Inversing boolean not [231] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [230] bitmap_init::$0 = bitmap_init::bits#1 == 0 @@ -1252,10 +1249,8 @@ Alias bitmap_init::bitmap#1 = bitmap_init::bitmap#2 bitmap_init::yoffs#0 Alias bitmap_init::yoffs#2 = bitmap_init::yoffs#3 Alias bitmap_init::y#2 = bitmap_init::y#4 Alias bitmap_init::yoffs#1 = bitmap_init::$10 -Alias bitmap_clear::bitmap#0 = bitmap_clear::$2 Alias bitmap_clear::y#2 = bitmap_clear::y#3 Alias bitmap_clear::bitmap#1 = bitmap_clear::bitmap#4 -Alias bitmap_plot::plotter#0 = bitmap_plot::$2 Successful SSA optimization Pass2AliasElimination Alias divr16u::dividend#2 = divr16u::dividend#3 Alias divr16u::quotient#3 = divr16u::quotient#6 @@ -1371,8 +1366,8 @@ Resolved ranged comparison value [203] if(bitmap_clear::y#1!=rangelast(0,$27)) g Simplifying constant evaluating to zero (word)divr16s::dividend#0 in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero (byte*)CIA2 in [67] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::vicSelectGfxBank1_toDd001_return#0 -Simplifying expression containing zero bitmap_plot_yhi in [190] bitmap_clear::$3 = bitmap_plot_yhi[0] w= bitmap_plot_ylo[0] -Simplifying expression containing zero bitmap_plot_ylo in [190] bitmap_clear::$3 = *bitmap_plot_yhi w= bitmap_plot_ylo[0] +Simplifying expression containing zero bitmap_plot_yhi in [190] bitmap_clear::$2 = bitmap_plot_yhi[0] w= bitmap_plot_ylo[0] +Simplifying expression containing zero bitmap_plot_ylo in [190] bitmap_clear::$2 = *bitmap_plot_yhi w= bitmap_plot_ylo[0] Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -1398,9 +1393,6 @@ Adding number conversion cast (unumber) 0 in [139] if(bitmap_init::y#1!=0) goto Adding number conversion cast (unumber) $c8 in [149] if(bitmap_clear::x#1!=$c8) goto bitmap_clear::@2 Adding number conversion cast (unumber) $28 in [151] if(bitmap_clear::y#1!=$28) goto bitmap_clear::@1 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast [143] bitmap_clear::bitmap#0 = (byte*)bitmap_clear::$3 -Inlining cast [154] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 -Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $10 Simplifying constant integer cast SIZE-1+(unumber)1 Simplifying constant integer cast 1 @@ -1470,8 +1462,8 @@ Inlining Noop Cast [17] divr16s::remu#1 = (word)divr16s::$7 keeping divr16s::rem Inlining Noop Cast [22] divr16s::divisoru#1 = (word)divr16s::$8 keeping divr16s::divisoru#1 Inlining Noop Cast [67] point_init::abs16s1_return#0 = (word)point_init::abs16s1_$1 keeping point_init::abs16s1_return#0 Inlining Noop Cast [72] point_init::abs16s2_return#0 = (word)point_init::abs16s2_$1 keeping point_init::abs16s2_return#0 -Inlining Noop Cast [125] bitmap_clear::bitmap#0 = (byte*)bitmap_clear::$3 keeping bitmap_clear::bitmap#0 -Inlining Noop Cast [136] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$3 keeping bitmap_plot::plotter#0 +Inlining Noop Cast [125] bitmap_clear::bitmap#0 = (byte*)bitmap_clear::$2 keeping bitmap_clear::bitmap#0 +Inlining Noop Cast [136] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$2 keeping bitmap_plot::plotter#0 Successful SSA optimization Pass2NopCastInlining Inlining Noop Cast [18] divr16s::remu#2 = (word)divr16s::rem#0 keeping divr16s::rem#0 Inlining Noop Cast [24] divr16s::divisoru#2 = (word)divr16s::divisor#0 keeping divr16s::divisor#0 diff --git a/src/test/ref/millfork-benchmarks/linkedlist-kc.cfg b/src/test/ref/millfork-benchmarks/linkedlist-kc.cfg index 71991f143..e74818659 100644 --- a/src/test/ref/millfork-benchmarks/linkedlist-kc.cfg +++ b/src/test/ref/millfork-benchmarks/linkedlist-kc.cfg @@ -24,7 +24,7 @@ main::@1: scope:[main] from main main::@7 [7] print_char_cursor#48 = phi( main/print_screen#0, main::@7/print_char_cursor#28 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@5 - [8] root#22 = phi( main::@1/(struct node*) 0, main::@5/root#12 ) + [8] root#22 = phi( main::@1/(struct node*)(void*) 0, main::@5/root#12 ) [8] free_#24 = phi( main::@1/0, main::@5/free_#14 ) [8] main::i#2 = phi( main::@1/0, main::@5/main::i#1 ) [9] prepend::x#0 = main::i#2 diff --git a/src/test/ref/millfork-benchmarks/linkedlist-kc.log b/src/test/ref/millfork-benchmarks/linkedlist-kc.log index 5d9ba010f..0121492fd 100644 --- a/src/test/ref/millfork-benchmarks/linkedlist-kc.log +++ b/src/test/ref/millfork-benchmarks/linkedlist-kc.log @@ -146,7 +146,7 @@ end::@return: scope:[end] from end::@3 void init() init: scope:[init] from main::@1 free_#0 = 0 - root#0 = ((struct node*)) 0 + root#0 = ((struct node*)) (void*)0 to:init::@return init::@return: scope:[init] from init root#10 = phi( init/root#0 ) @@ -723,14 +723,14 @@ Adding number conversion cast (unumber) 0 in free_#0 = 0 Adding number conversion cast (unumber) 0 in sum::s#1 = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast free_#0 = (unumber)0 -Inlining cast root#0 = (struct node*)0 +Inlining cast root#0 = (struct node*)(void*)0 Inlining cast sum::s#1 = (unumber)0 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $28 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast 0 -Simplifying constant pointer cast (struct node*) 0 +Simplifying constant pointer cast (void*) 0 Simplifying constant integer cast 0 Simplifying constant pointer cast (byte*) 1024 Successful SSA optimization PassNCastSimplification @@ -855,8 +855,10 @@ Simple Condition sum::$4 [71] if((struct node*)0!=sum::current#3) goto sum::@2 Simple Condition main::$4 [92] if(main::i#1!=rangelast(0,$bb7)) goto main::@2 Simple Condition main::$7 [101] if(main::c#1!=rangelast(0,4)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification +Constant right-side identified [42] root#0 = (struct node*)(void*) 0 +Successful SSA optimization Pass2ConstantRValueConsolidation Constant free_#0 = 0 -Constant root#0 = (struct node*) 0 +Constant root#0 = (struct node*)(void*) 0 Constant alloc::result#0 = (struct node*) 0 Constant prepend::new#0 = (struct node*) 0 Constant sum::current#0 = (struct node*) 0 @@ -929,7 +931,7 @@ Constant inlined main::i#0 = 0 Constant inlined main::c#0 = 0 Constant inlined free_#0 = 0 Constant inlined sum::s#1 = 0 -Constant inlined root#0 = (struct node*) 0 +Constant inlined root#0 = (struct node*)(void*) 0 Successful SSA optimization Pass2ConstantInlining Eliminating unused constant SIZEOF_STRUCT_NODE Successful SSA optimization PassNEliminateUnusedVars @@ -1039,7 +1041,7 @@ main::@1: scope:[main] from main main::@7 [7] print_char_cursor#48 = phi( main/print_screen#0, main::@7/print_char_cursor#28 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@5 - [8] root#22 = phi( main::@1/(struct node*) 0, main::@5/root#12 ) + [8] root#22 = phi( main::@1/(struct node*)(void*) 0, main::@5/root#12 ) [8] free_#24 = phi( main::@1/0, main::@5/free_#14 ) [8] main::i#2 = phi( main::@1/0, main::@5/main::i#1 ) [9] prepend::x#0 = main::i#2 @@ -1547,7 +1549,7 @@ main: { __b1: // [8] phi from main::@1 to main::@2 [phi:main::@1->main::@2] __b2_from___b1: - // [8] phi root#22 = (struct node*) 0 [phi:main::@1->main::@2#0] -- pssz1=pssc1 + // [8] phi root#22 = (struct node*)(void*) 0 [phi:main::@1->main::@2#0] -- pssz1=pssc1 lda #<0 sta.z root lda #>0 @@ -2192,7 +2194,7 @@ main: { // main::@1 __b1: // [8] phi from main::@1 to main::@2 [phi:main::@1->main::@2] - // [8] phi root#22 = (struct node*) 0 [phi:main::@1->main::@2#0] -- pssz1=pssc1 + // [8] phi root#22 = (struct node*)(void*) 0 [phi:main::@1->main::@2#0] -- pssz1=pssc1 lda #<0 sta.z root sta.z root+1 diff --git a/src/test/ref/problem-ma-var-overwrite.asm b/src/test/ref/problem-ma-var-overwrite.asm index 6f0d7a739..a1e59fa0e 100644 --- a/src/test/ref/problem-ma-var-overwrite.asm +++ b/src/test/ref/problem-ma-var-overwrite.asm @@ -18,7 +18,7 @@ __start: { rts } main: { - // test(h1, 0xD800, 0xC000) + // test(h1, (char*)0xD800, (char*)0xC000) lda.z h1 sta.z test.videoMem lda.z h1+1 diff --git a/src/test/ref/problem-ma-var-overwrite.cfg b/src/test/ref/problem-ma-var-overwrite.cfg index 03623617a..857a09a00 100644 --- a/src/test/ref/problem-ma-var-overwrite.cfg +++ b/src/test/ref/problem-ma-var-overwrite.cfg @@ -27,7 +27,7 @@ void test(byte* test::videoMem , byte* test::colorMem , byte* test::other) test: scope:[test] from main [8] test::dst = (byte*) 0 [9] test::diff#1 = test::colorMem#0 - test::videoMem#0 - [10] test::$1 = test::other#0 + (word)(byte*)test::diff#1 + [10] test::$1 = test::other#0 + test::diff#1 [11] test::dst = test::$1 [12] *test::dst = 1 asm { ldy#0 lda#1 sta(dst),y } diff --git a/src/test/ref/problem-ma-var-overwrite.log b/src/test/ref/problem-ma-var-overwrite.log index 0dd79bb67..2526a0b4b 100644 --- a/src/test/ref/problem-ma-var-overwrite.log +++ b/src/test/ref/problem-ma-var-overwrite.log @@ -8,10 +8,10 @@ test: scope:[test] from main test::other#1 = phi( main/test::other#0 ) test::videoMem#1 = phi( main/test::videoMem#0 ) test::colorMem#1 = phi( main/test::colorMem#0 ) - test::diff#0 = (byte*) 0 + test::diff#0 = 0 test::dst = (byte*) 0 test::$0 = test::colorMem#1 - test::videoMem#1 - test::diff#1 = ((byte*)) test::$0 + test::diff#1 = test::$0 test::$2 = (word)test::diff#1 test::$1 = test::other#1 + test::$2 test::dst = test::$1 @@ -61,9 +61,9 @@ word~ test::$2 byte* test::colorMem byte* test::colorMem#0 byte* test::colorMem#1 -byte* test::diff -byte* test::diff#0 -byte* test::diff#1 +word test::diff +word test::diff#0 +word test::diff#1 byte* volatile test::dst loadstore byte* test::other byte* test::other#0 @@ -75,9 +75,9 @@ byte* test::videoMem#1 Adding number conversion cast (unumber) 1 in test::dst[0] = 1 Adding number conversion cast (unumber) 0 in test::dst[0] = ((unumber)) 1 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast test::diff#1 = (byte*)test::$0 Inlining cast test::dst[(unumber)0] = (unumber)1 Successful SSA optimization Pass2InlineCast +Simplifying constant integer cast test::diff#1 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant pointer cast (byte*) 55296 @@ -87,24 +87,22 @@ Finalized unsigned number type (byte) 1 Finalized unsigned number type (byte) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)test::dst = test::$1 +Alias test::diff#1 = test::$0 test::$2 +Successful SSA optimization Pass2AliasElimination +Alias candidate removed (volatile)test::dst = test::$1 Identical Phi Values test::colorMem#1 test::colorMem#0 Identical Phi Values test::videoMem#1 test::videoMem#0 Identical Phi Values test::other#1 test::other#0 Successful SSA optimization Pass2IdenticalPhiElimination -Constant test::diff#0 = (byte*) 0 +Constant test::diff#0 = 0 Constant test::colorMem#0 = (byte*) 55296 Constant test::other#0 = (byte*) 49152 Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero test::dst in [8] test::dst[0] = 1 +Simplifying expression containing zero test::dst in [6] test::dst[0] = 1 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant test::diff#0 Successful SSA optimization PassNEliminateUnusedVars Alias candidate removed (volatile)test::dst = test::$1 -Inlining Noop Cast [2] test::diff#1 = (byte*)test::$0 keeping test::diff#1 -Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [3] test::$2 = (word)(byte*)test::diff#1 keeping (byte*)test::diff#1 -Successful SSA optimization Pass2NopCastInlining -Alias candidate removed (volatile)test::dst = test::$1 Alias candidate removed (volatile)test::dst = test::$1 Alias candidate removed (volatile)test::dst = test::$1 Adding NOP phi() at start of __start @@ -152,7 +150,7 @@ void test(byte* test::videoMem , byte* test::colorMem , byte* test::other) test: scope:[test] from main [8] test::dst = (byte*) 0 [9] test::diff#1 = test::colorMem#0 - test::videoMem#0 - [10] test::$1 = test::other#0 + (word)(byte*)test::diff#1 + [10] test::$1 = test::other#0 + test::diff#1 [11] test::dst = test::$1 [12] *test::dst = 1 asm { ldy#0 lda#1 sta(dst),y } @@ -169,8 +167,8 @@ void main() void test(byte* test::videoMem , byte* test::colorMem , byte* test::other) byte*~ test::$1 202.0 byte* test::colorMem -byte* test::diff -word test::diff#1 101.0 +word test::diff +word test::diff#1 202.0 byte* volatile test::dst loadstore 151.5 byte* test::other byte* test::videoMem @@ -198,7 +196,7 @@ Statement [1] h1 = (byte*) 0 [ h1 ] ( [ h1 ] { } ) always clobbers reg byte a Statement [5] test::videoMem#0 = h1 [ test::videoMem#0 ] ( main:3 [ test::videoMem#0 ] { { test::videoMem#0 = h1 } } ) always clobbers reg byte a Statement [8] test::dst = (byte*) 0 [ test::videoMem#0 ] ( main:3::test:6 [ test::videoMem#0 ] { { test::videoMem#0 = h1 } } ) always clobbers reg byte a Statement [9] test::diff#1 = test::colorMem#0 - test::videoMem#0 [ test::diff#1 ] ( main:3::test:6 [ test::diff#1 ] { { test::videoMem#0 = h1 } } ) always clobbers reg byte a -Statement [10] test::$1 = test::other#0 + (word)(byte*)test::diff#1 [ test::$1 ] ( main:3::test:6 [ test::$1 ] { { test::videoMem#0 = h1 } } ) always clobbers reg byte a +Statement [10] test::$1 = test::other#0 + test::diff#1 [ test::$1 ] ( main:3::test:6 [ test::$1 ] { { test::videoMem#0 = h1 } } ) always clobbers reg byte a Statement [11] test::dst = test::$1 [ test::dst ] ( main:3::test:6 [ test::dst ] { { test::videoMem#0 = h1 } } ) always clobbers reg byte a Statement [12] *test::dst = 1 [ test::dst ] ( main:3::test:6 [ test::dst ] { { test::videoMem#0 = h1 } } ) always clobbers reg byte a reg byte y Statement asm { ldy#0 lda#1 sta(dst),y } always clobbers reg byte a reg byte y @@ -209,12 +207,12 @@ Potential registers zp[2]:8 [ test::diff#1 ] : zp[2]:8 , Potential registers zp[2]:10 [ test::$1 ] : zp[2]:10 , REGISTER UPLIFT SCOPES -Uplift Scope [test] 202: zp[2]:10 [ test::$1 ] 151.5: zp[2]:6 [ test::dst ] 101: zp[2]:8 [ test::diff#1 ] 56: zp[2]:4 [ test::videoMem#0 ] +Uplift Scope [test] 202: zp[2]:8 [ test::diff#1 ] 202: zp[2]:10 [ test::$1 ] 151.5: zp[2]:6 [ test::dst ] 56: zp[2]:4 [ test::videoMem#0 ] Uplift Scope [] 6.5: zp[2]:2 [ h1 ] Uplift Scope [main] Uplift Scope [__start] -Uplifting [test] best 172 combination zp[2]:10 [ test::$1 ] zp[2]:6 [ test::dst ] zp[2]:8 [ test::diff#1 ] zp[2]:4 [ test::videoMem#0 ] +Uplifting [test] best 172 combination zp[2]:8 [ test::diff#1 ] zp[2]:10 [ test::$1 ] zp[2]:6 [ test::dst ] zp[2]:4 [ test::videoMem#0 ] Uplifting [] best 172 combination zp[2]:2 [ h1 ] Uplifting [main] best 172 combination Uplifting [__start] best 172 combination @@ -297,7 +295,7 @@ test: { lda #>colorMem sbc.z diff+1 sta.z diff+1 - // [10] test::$1 = test::other#0 + (word)(byte*)test::diff#1 -- pbuz1=pbuc1_plus_vwuz1 + // [10] test::$1 = test::other#0 + test::diff#1 -- pbuz1=pbuc1_plus_vwuz1 clc lda.z __1 adc #$1111 adc #0 sta.z __1+1 - // *entryBufDisk(entry) = 0x1111+n + // *entryBufDisk(entry) = (byte*)0x1111+n ldy #0 lda.z __1 sta (entry),y iny lda.z __1+1 sta (entry),y - // 0x2222+n + // (byte*)0x2222+n txa clc adc #<$2222 @@ -309,7 +309,7 @@ initEntry: { lda #>$2222 adc #0 sta.z __3+1 - // *entryBufEdit(entry) = 0x2222+n + // *entryBufEdit(entry) = (byte*)0x2222+n ldy #2 lda.z __3 sta (entry),y @@ -331,15 +331,16 @@ initEntry: { iny lda.z __5+1 sta (entry),y - // 0x4444+n + // (word*)0x4444+n txa + asl clc adc #<$4444 sta.z __7 lda #>$4444 adc #0 sta.z __7+1 - // *entryTsOrder(entry) = 0x4444+n + // *entryTsOrder(entry) = (word*)0x4444+n ldy #6 lda.z __7 sta (entry),y diff --git a/src/test/ref/semi-struct-2.cfg b/src/test/ref/semi-struct-2.cfg index c405ace5a..63fafb7de 100644 --- a/src/test/ref/semi-struct-2.cfg +++ b/src/test/ref/semi-struct-2.cfg @@ -160,15 +160,15 @@ initEntry::entryBufDisk1: scope:[initEntry] from initEntry [75] phi() to:initEntry::@1 initEntry::@1: scope:[initEntry] from initEntry::entryBufDisk1 - [76] initEntry::$1 = $1111 + initEntry::n#10 - [77] *((byte**)initEntry::entry#10) = (byte*)initEntry::$1 + [76] initEntry::$1 = (byte*) 4369 + initEntry::n#10 + [77] *((byte**)initEntry::entry#10) = initEntry::$1 to:initEntry::entryBufEdit1 initEntry::entryBufEdit1: scope:[initEntry] from initEntry::@1 [78] phi() to:initEntry::@2 initEntry::@2: scope:[initEntry] from initEntry::entryBufEdit1 - [79] initEntry::$3 = $2222 + initEntry::n#10 - [80] ((byte**)initEntry::entry#10)[2] = (byte*)initEntry::$3 + [79] initEntry::$3 = (byte*) 8738 + initEntry::n#10 + [80] ((byte**)initEntry::entry#10)[2] = initEntry::$3 to:initEntry::entryTsLen1 initEntry::entryTsLen1: scope:[initEntry] from initEntry::@2 [81] phi() @@ -181,401 +181,402 @@ initEntry::entryTsOrder1: scope:[initEntry] from initEntry::@3 [84] phi() to:initEntry::@4 initEntry::@4: scope:[initEntry] from initEntry::entryTsOrder1 - [85] initEntry::$7 = $4444 + initEntry::n#10 - [86] ((word**)initEntry::entry#10)[6] = (word*)initEntry::$7 + [85] initEntry::$26 = initEntry::n#10 << 1 + [86] initEntry::$7 = (word*) 17476 + initEntry::$26 + [87] ((word**)initEntry::entry#10)[6] = initEntry::$7 to:initEntry::entryTLastLink1 initEntry::entryTLastLink1: scope:[initEntry] from initEntry::@4 - [87] phi() + [88] phi() to:initEntry::@5 initEntry::@5: scope:[initEntry] from initEntry::entryTLastLink1 - [88] initEntry::$9 = $55 + initEntry::n#10 - [89] initEntry::entry#10[8] = initEntry::$9 + [89] initEntry::$9 = $55 + initEntry::n#10 + [90] initEntry::entry#10[8] = initEntry::$9 to:initEntry::entrySLastLink1 initEntry::entrySLastLink1: scope:[initEntry] from initEntry::@5 - [90] phi() + [91] phi() to:initEntry::@6 initEntry::@6: scope:[initEntry] from initEntry::entrySLastLink1 - [91] initEntry::$11 = $66 + initEntry::n#10 - [92] initEntry::entry#10[9] = initEntry::$11 + [92] initEntry::$11 = $66 + initEntry::n#10 + [93] initEntry::entry#10[9] = initEntry::$11 to:initEntry::entryBFlag1 initEntry::entryBFlag1: scope:[initEntry] from initEntry::@6 - [93] phi() + [94] phi() to:initEntry::@7 initEntry::@7: scope:[initEntry] from initEntry::entryBFlag1 - [94] initEntry::$13 = $77 + initEntry::n#10 - [95] initEntry::entry#10[$a] = initEntry::$13 + [95] initEntry::$13 = $77 + initEntry::n#10 + [96] initEntry::entry#10[$a] = initEntry::$13 to:initEntry::entryBError1 initEntry::entryBError1: scope:[initEntry] from initEntry::@7 - [96] phi() + [97] phi() to:initEntry::@8 initEntry::@8: scope:[initEntry] from initEntry::entryBError1 - [97] initEntry::$15 = $88 + initEntry::n#10 - [98] initEntry::entry#10[$b] = initEntry::$15 + [98] initEntry::$15 = $88 + initEntry::n#10 + [99] initEntry::entry#10[$b] = initEntry::$15 to:initEntry::entryUCross1 initEntry::entryUCross1: scope:[initEntry] from initEntry::@8 - [99] phi() + [100] phi() to:initEntry::@9 initEntry::@9: scope:[initEntry] from initEntry::entryUCross1 - [100] initEntry::$17 = $9999 + initEntry::n#10 - [101] ((word*)initEntry::entry#10)[$c] = initEntry::$17 + [101] initEntry::$17 = $9999 + initEntry::n#10 + [102] ((word*)initEntry::entry#10)[$c] = initEntry::$17 to:initEntry::entryBAddrLo1 initEntry::entryBAddrLo1: scope:[initEntry] from initEntry::@9 - [102] phi() + [103] phi() to:initEntry::@10 initEntry::@10: scope:[initEntry] from initEntry::entryBAddrLo1 - [103] initEntry::$19 = $aa + initEntry::n#10 - [104] initEntry::entry#10[$e] = initEntry::$19 + [104] initEntry::$19 = $aa + initEntry::n#10 + [105] initEntry::entry#10[$e] = initEntry::$19 to:initEntry::entryBAddrHi1 initEntry::entryBAddrHi1: scope:[initEntry] from initEntry::@10 - [105] phi() + [106] phi() to:initEntry::@11 initEntry::@11: scope:[initEntry] from initEntry::entryBAddrHi1 - [106] initEntry::$21 = $bb + initEntry::n#10 - [107] initEntry::entry#10[$f] = initEntry::$21 + [107] initEntry::$21 = $bb + initEntry::n#10 + [108] initEntry::entry#10[$f] = initEntry::$21 to:initEntry::entryTHi1 initEntry::entryTHi1: scope:[initEntry] from initEntry::@11 - [108] phi() + [109] phi() to:initEntry::@12 initEntry::@12: scope:[initEntry] from initEntry::entryTHi1 - [109] initEntry::$23 = $cc + initEntry::n#10 - [110] initEntry::entry#10[$10] = initEntry::$23 + [110] initEntry::$23 = $cc + initEntry::n#10 + [111] initEntry::entry#10[$10] = initEntry::$23 to:initEntry::entryTLo1 initEntry::entryTLo1: scope:[initEntry] from initEntry::@12 - [111] phi() + [112] phi() to:initEntry::@13 initEntry::@13: scope:[initEntry] from initEntry::entryTLo1 - [112] initEntry::$25 = $dd + initEntry::n#10 - [113] initEntry::entry#10[$11] = initEntry::$25 + [113] initEntry::$25 = $dd + initEntry::n#10 + [114] initEntry::entry#10[$11] = initEntry::$25 to:initEntry::@return initEntry::@return: scope:[initEntry] from initEntry::@13 - [114] return + [115] return to:@return void print_cls() print_cls: scope:[print_cls] from main::@2 main::@4 main::@9 - [115] phi() - [116] call memset + [116] phi() + [117] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls - [117] return + [118] return to:@return void print_str(byte* print_str::str) print_str: scope:[print_str] from main::@10 main::@15 main::@17 main::@22 printEntry printEntry::@15 printEntry::@17 printEntry::@19 printEntry::@21 printEntry::@23 printEntry::@25 printEntry::@27 printEntry::@29 printEntry::@31 printEntry::@33 printEntry::@35 printEntry::@37 - [118] print_char_cursor#167 = phi( main::@10/print_screen#0, main::@15/print_char_cursor#209, main::@17/print_screen#0, main::@22/print_char_cursor#210, printEntry/print_char_cursor#211, printEntry::@15/print_char_cursor#212, printEntry::@17/print_char_cursor#213, printEntry::@19/print_char_cursor#214, printEntry::@21/print_char_cursor#215, printEntry::@23/print_char_cursor#216, printEntry::@25/print_char_cursor#217, printEntry::@27/print_char_cursor#218, printEntry::@29/print_char_cursor#219, printEntry::@31/print_char_cursor#220, printEntry::@33/print_char_cursor#221, printEntry::@35/print_char_cursor#222, printEntry::@37/print_char_cursor#223 ) - [118] print_str::str#21 = phi( main::@10/main::str, main::@15/main::str1, main::@17/main::str2, main::@22/main::str1, printEntry/printEntry::str, printEntry::@15/printEntry::str1, printEntry::@17/printEntry::str2, printEntry::@19/printEntry::str3, printEntry::@21/printEntry::str4, printEntry::@23/printEntry::str5, printEntry::@25/printEntry::str6, printEntry::@27/printEntry::str7, printEntry::@29/printEntry::str8, printEntry::@31/printEntry::str9, printEntry::@33/printEntry::str10, printEntry::@35/printEntry::str11, printEntry::@37/printEntry::str12 ) + [119] print_char_cursor#167 = phi( main::@10/print_screen#0, main::@15/print_char_cursor#209, main::@17/print_screen#0, main::@22/print_char_cursor#210, printEntry/print_char_cursor#211, printEntry::@15/print_char_cursor#212, printEntry::@17/print_char_cursor#213, printEntry::@19/print_char_cursor#214, printEntry::@21/print_char_cursor#215, printEntry::@23/print_char_cursor#216, printEntry::@25/print_char_cursor#217, printEntry::@27/print_char_cursor#218, printEntry::@29/print_char_cursor#219, printEntry::@31/print_char_cursor#220, printEntry::@33/print_char_cursor#221, printEntry::@35/print_char_cursor#222, printEntry::@37/print_char_cursor#223 ) + [119] print_str::str#21 = phi( main::@10/main::str, main::@15/main::str1, main::@17/main::str2, main::@22/main::str1, printEntry/printEntry::str, printEntry::@15/printEntry::str1, printEntry::@17/printEntry::str2, printEntry::@19/printEntry::str3, printEntry::@21/printEntry::str4, printEntry::@23/printEntry::str5, printEntry::@25/printEntry::str6, printEntry::@27/printEntry::str7, printEntry::@29/printEntry::str8, printEntry::@31/printEntry::str9, printEntry::@33/printEntry::str10, printEntry::@35/printEntry::str11, printEntry::@37/printEntry::str12 ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@3 - [119] print_char_cursor#1 = phi( print_str/print_char_cursor#167, print_str::@3/print_char_cursor#10 ) - [119] print_str::str#18 = phi( print_str/print_str::str#21, print_str::@3/print_str::str#0 ) - [120] if(0!=*print_str::str#18) goto print_str::@2 + [120] print_char_cursor#1 = phi( print_str/print_char_cursor#167, print_str::@3/print_char_cursor#10 ) + [120] print_str::str#18 = phi( print_str/print_str::str#21, print_str::@3/print_str::str#0 ) + [121] if(0!=*print_str::str#18) goto print_str::@2 to:print_str::@return print_str::@return: scope:[print_str] from print_str::@1 - [121] return + [122] return to:@return print_str::@2: scope:[print_str] from print_str::@1 - [122] print_char::ch#0 = *print_str::str#18 - [123] call print_char + [123] print_char::ch#0 = *print_str::str#18 + [124] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 - [124] print_str::str#0 = ++ print_str::str#18 + [125] print_str::str#0 = ++ print_str::str#18 to:print_str::@1 void print_ln() print_ln: scope:[print_ln] from main::@11 main::@12 main::@14 main::@18 main::@19 main::@21 printEntry::@14 printEntry::@16 printEntry::@18 printEntry::@20 printEntry::@22 printEntry::@24 printEntry::@26 printEntry::@28 printEntry::@30 printEntry::@32 printEntry::@34 printEntry::@36 printEntry::@38 - [125] print_char_cursor#146 = phi( main::@11/print_char_cursor#1, main::@12/print_char_cursor#227, main::@14/print_char_cursor#228, main::@18/print_char_cursor#1, main::@19/print_char_cursor#230, main::@21/print_char_cursor#231, printEntry::@14/print_char_cursor#10, printEntry::@16/print_char_cursor#10, printEntry::@18/print_char_cursor#10, printEntry::@20/print_char_cursor#10, printEntry::@22/print_char_cursor#10, printEntry::@24/print_char_cursor#10, printEntry::@26/print_char_cursor#10, printEntry::@28/print_char_cursor#10, printEntry::@30/print_char_cursor#10, printEntry::@32/print_char_cursor#10, printEntry::@34/print_char_cursor#10, printEntry::@36/print_char_cursor#10, printEntry::@38/print_char_cursor#10 ) - [125] print_line_cursor#65 = phi( main::@11/print_screen#0, main::@12/print_line_cursor#155, main::@14/print_line_cursor#156, main::@18/print_screen#0, main::@19/print_line_cursor#157, main::@21/print_line_cursor#158, printEntry::@14/print_line_cursor#159, printEntry::@16/print_line_cursor#160, printEntry::@18/print_line_cursor#161, printEntry::@20/print_line_cursor#162, printEntry::@22/print_line_cursor#163, printEntry::@24/print_line_cursor#164, printEntry::@26/print_line_cursor#165, printEntry::@28/print_line_cursor#166, printEntry::@30/print_line_cursor#167, printEntry::@32/print_line_cursor#168, printEntry::@34/print_line_cursor#169, printEntry::@36/print_line_cursor#170, printEntry::@38/print_line_cursor#171 ) + [126] print_char_cursor#146 = phi( main::@11/print_char_cursor#1, main::@12/print_char_cursor#227, main::@14/print_char_cursor#228, main::@18/print_char_cursor#1, main::@19/print_char_cursor#230, main::@21/print_char_cursor#231, printEntry::@14/print_char_cursor#10, printEntry::@16/print_char_cursor#10, printEntry::@18/print_char_cursor#10, printEntry::@20/print_char_cursor#10, printEntry::@22/print_char_cursor#10, printEntry::@24/print_char_cursor#10, printEntry::@26/print_char_cursor#10, printEntry::@28/print_char_cursor#10, printEntry::@30/print_char_cursor#10, printEntry::@32/print_char_cursor#10, printEntry::@34/print_char_cursor#10, printEntry::@36/print_char_cursor#10, printEntry::@38/print_char_cursor#10 ) + [126] print_line_cursor#65 = phi( main::@11/print_screen#0, main::@12/print_line_cursor#155, main::@14/print_line_cursor#156, main::@18/print_screen#0, main::@19/print_line_cursor#157, main::@21/print_line_cursor#158, printEntry::@14/print_line_cursor#159, printEntry::@16/print_line_cursor#160, printEntry::@18/print_line_cursor#161, printEntry::@20/print_line_cursor#162, printEntry::@22/print_line_cursor#163, printEntry::@24/print_line_cursor#164, printEntry::@26/print_line_cursor#165, printEntry::@28/print_line_cursor#166, printEntry::@30/print_line_cursor#167, printEntry::@32/print_line_cursor#168, printEntry::@34/print_line_cursor#169, printEntry::@36/print_line_cursor#170, printEntry::@38/print_line_cursor#171 ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@2 - [126] print_line_cursor#33 = phi( print_ln/print_line_cursor#65, print_ln::@2/print_line_cursor#173 ) - [127] print_line_cursor#0 = print_line_cursor#33 + $28 - [128] if(print_line_cursor#0 print_uint::w#5 - [242] call print_uchar + [241] print_uint::w#5 = phi( printEntry::@1/print_uint::w#7, printEntry::@2/print_uint::w#8, printEntry::@3/print_uint::w#2, printEntry::@4/print_uint::w#10, printEntry::@9/print_uint::w#4 ) + [242] print_uchar::b#0 = > print_uint::w#5 + [243] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint - [243] print_uchar::b#1 = < print_uint::w#5 - [244] call print_uchar + [244] print_uchar::b#1 = < print_uint::w#5 + [245] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 - [245] return + [246] return to:@return void print_uchar(byte print_uchar::b) print_uchar: scope:[print_uchar] from printEntry::@10 printEntry::@11 printEntry::@12 printEntry::@13 printEntry::@5 printEntry::@6 printEntry::@7 printEntry::@8 print_uint print_uint::@1 - [246] print_char_cursor#148 = phi( printEntry::@10/print_char_cursor#1, printEntry::@11/print_char_cursor#1, printEntry::@12/print_char_cursor#1, printEntry::@13/print_char_cursor#1, printEntry::@5/print_char_cursor#1, printEntry::@6/print_char_cursor#1, printEntry::@7/print_char_cursor#1, printEntry::@8/print_char_cursor#1, print_uint/print_char_cursor#1, print_uint::@1/print_char_cursor#10 ) - [246] print_uchar::b#10 = phi( printEntry::@10/print_uchar::b#6, printEntry::@11/print_uchar::b#7, printEntry::@12/print_uchar::b#8, printEntry::@13/print_uchar::b#9, printEntry::@5/print_uchar::b#2, printEntry::@6/print_uchar::b#3, printEntry::@7/print_uchar::b#4, printEntry::@8/print_uchar::b#5, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) - [247] print_uchar::$0 = print_uchar::b#10 >> 4 - [248] print_char::ch#1 = print_hextab[print_uchar::$0] - [249] call print_char + [247] print_char_cursor#148 = phi( printEntry::@10/print_char_cursor#1, printEntry::@11/print_char_cursor#1, printEntry::@12/print_char_cursor#1, printEntry::@13/print_char_cursor#1, printEntry::@5/print_char_cursor#1, printEntry::@6/print_char_cursor#1, printEntry::@7/print_char_cursor#1, printEntry::@8/print_char_cursor#1, print_uint/print_char_cursor#1, print_uint::@1/print_char_cursor#10 ) + [247] print_uchar::b#10 = phi( printEntry::@10/print_uchar::b#6, printEntry::@11/print_uchar::b#7, printEntry::@12/print_uchar::b#8, printEntry::@13/print_uchar::b#9, printEntry::@5/print_uchar::b#2, printEntry::@6/print_uchar::b#3, printEntry::@7/print_uchar::b#4, printEntry::@8/print_uchar::b#5, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) + [248] print_uchar::$0 = print_uchar::b#10 >> 4 + [249] print_char::ch#1 = print_hextab[print_uchar::$0] + [250] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar - [250] print_uchar::$2 = print_uchar::b#10 & $f - [251] print_char::ch#2 = print_hextab[print_uchar::$2] - [252] call print_char + [251] print_uchar::$2 = print_uchar::b#10 & $f + [252] print_char::ch#2 = print_hextab[print_uchar::$2] + [253] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 - [253] return + [254] return to:@return byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed - [254] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) - [255] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) + [255] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) + [256] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read - [256] return + [257] return to:@return diff --git a/src/test/ref/semi-struct-2.log b/src/test/ref/semi-struct-2.log index edc06b72e..8fbc3cdf1 100644 --- a/src/test/ref/semi-struct-2.log +++ b/src/test/ref/semi-struct-2.log @@ -633,8 +633,8 @@ initEntry::@1: scope:[initEntry] from initEntry::entryBufDisk1_@return initEntry::n#2 = phi( initEntry::entryBufDisk1_@return/initEntry::n#15 ) initEntry::entryBufDisk1_return#3 = phi( initEntry::entryBufDisk1_@return/initEntry::entryBufDisk1_return#1 ) initEntry::$0 = initEntry::entryBufDisk1_return#3 - initEntry::$1 = $1111 + initEntry::n#2 - *initEntry::$0 = ((byte*)) initEntry::$1 + initEntry::$1 = (byte*)$1111 + initEntry::n#2 + *initEntry::$0 = initEntry::$1 initEntry::entryBufEdit1_entry#0 = initEntry::entry#3 to:initEntry::entryBufEdit1 initEntry::entryBufEdit1: scope:[initEntry] from initEntry::@1 @@ -655,8 +655,8 @@ initEntry::@2: scope:[initEntry] from initEntry::entryBufEdit1_@return initEntry::n#3 = phi( initEntry::entryBufEdit1_@return/initEntry::n#16 ) initEntry::entryBufEdit1_return#3 = phi( initEntry::entryBufEdit1_@return/initEntry::entryBufEdit1_return#1 ) initEntry::$2 = initEntry::entryBufEdit1_return#3 - initEntry::$3 = $2222 + initEntry::n#3 - *initEntry::$2 = ((byte*)) initEntry::$3 + initEntry::$3 = (byte*)$2222 + initEntry::n#3 + *initEntry::$2 = initEntry::$3 initEntry::entryTsLen1_entry#0 = initEntry::entry#4 to:initEntry::entryTsLen1 initEntry::entryTsLen1: scope:[initEntry] from initEntry::@2 @@ -699,8 +699,9 @@ initEntry::@4: scope:[initEntry] from initEntry::entryTsOrder1_@return initEntry::n#5 = phi( initEntry::entryTsOrder1_@return/initEntry::n#18 ) initEntry::entryTsOrder1_return#3 = phi( initEntry::entryTsOrder1_@return/initEntry::entryTsOrder1_return#1 ) initEntry::$6 = initEntry::entryTsOrder1_return#3 - initEntry::$7 = $4444 + initEntry::n#5 - *initEntry::$6 = ((word*)) initEntry::$7 + initEntry::$26 = initEntry::n#5 * SIZEOF_WORD + initEntry::$7 = (word*)$4444 + initEntry::$26 + *initEntry::$6 = initEntry::$7 initEntry::entryTLastLink1_entry#0 = initEntry::entry#6 to:initEntry::entryTLastLink1 initEntry::entryTLastLink1: scope:[initEntry] from initEntry::@4 @@ -1565,11 +1566,12 @@ constant byte RADIX::DECIMAL = $a constant byte RADIX::HEXADECIMAL = $10 constant byte RADIX::OCTAL = 8 constant const byte SIZEOF_ENTRY = $12 +constant byte SIZEOF_WORD = 2 void __start() constant byte* files[(word)MAX_FILES*SIZEOF_ENTRY] = { fill( (word)MAX_FILES*SIZEOF_ENTRY, 0) } void initEntry(byte* initEntry::entry , byte initEntry::n) byte**~ initEntry::$0 -number~ initEntry::$1 +byte*~ initEntry::$1 byte*~ initEntry::$10 number~ initEntry::$11 byte*~ initEntry::$12 @@ -1587,11 +1589,12 @@ byte*~ initEntry::$22 number~ initEntry::$23 byte*~ initEntry::$24 number~ initEntry::$25 -number~ initEntry::$3 +byte~ initEntry::$26 +byte*~ initEntry::$3 word*~ initEntry::$4 number~ initEntry::$5 word**~ initEntry::$6 -number~ initEntry::$7 +word*~ initEntry::$7 byte*~ initEntry::$8 number~ initEntry::$9 byte* initEntry::entry @@ -2690,17 +2693,11 @@ Adding number conversion cast (unumber) $11 in initEntry::n#1 = $11 Adding number conversion cast (unumber) 0 in main::$21 = main::$20 == 0 Adding number conversion cast (unumber) 0 in main::$23 = main::$22 == 0 Adding number conversion cast (unumber) 0 in initEntry::entryBufDisk1_$0 = initEntry::entryBufDisk1_entry#1 + 0 -Adding number conversion cast (unumber) $1111 in initEntry::$1 = $1111 + initEntry::n#2 -Adding number conversion cast (unumber) initEntry::$1 in initEntry::$1 = (unumber)$1111 + initEntry::n#2 Adding number conversion cast (unumber) 2 in initEntry::entryBufEdit1_$0 = initEntry::entryBufEdit1_entry#1 + 2 -Adding number conversion cast (unumber) $2222 in initEntry::$3 = $2222 + initEntry::n#3 -Adding number conversion cast (unumber) initEntry::$3 in initEntry::$3 = (unumber)$2222 + initEntry::n#3 Adding number conversion cast (unumber) 4 in initEntry::entryTsLen1_$0 = initEntry::entryTsLen1_entry#1 + 4 Adding number conversion cast (unumber) $3333 in initEntry::$5 = $3333 + initEntry::n#4 Adding number conversion cast (unumber) initEntry::$5 in initEntry::$5 = (unumber)$3333 + initEntry::n#4 Adding number conversion cast (unumber) 6 in initEntry::entryTsOrder1_$0 = initEntry::entryTsOrder1_entry#1 + 6 -Adding number conversion cast (unumber) $4444 in initEntry::$7 = $4444 + initEntry::n#5 -Adding number conversion cast (unumber) initEntry::$7 in initEntry::$7 = (unumber)$4444 + initEntry::n#5 Adding number conversion cast (unumber) 8 in initEntry::entryTLastLink1_$0 = initEntry::entryTLastLink1_entry#1 + 8 Adding number conversion cast (unumber) $55 in initEntry::$9 = $55 + initEntry::n#6 Adding number conversion cast (unumber) initEntry::$9 in initEntry::$9 = (unumber)$55 + initEntry::n#6 @@ -2750,9 +2747,6 @@ Inlining cast main::fileEntry1_idx#0 = (unumber)1 Inlining cast main::fileEntry2_idx#0 = (unumber)2 Inlining cast initEntry::n#0 = (unumber)0 Inlining cast initEntry::n#1 = (unumber)$11 -Inlining cast *initEntry::$0 = (byte*)initEntry::$1 -Inlining cast *initEntry::$2 = (byte*)initEntry::$3 -Inlining cast *initEntry::$6 = (word*)initEntry::$7 Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (struct MOS6526_CIA*) 56320 Simplifying constant integer cast 0 @@ -2777,13 +2771,13 @@ Simplifying constant integer cast $11 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 -Simplifying constant integer cast $1111 +Simplifying constant pointer cast (byte*) 4369 Simplifying constant integer cast 2 -Simplifying constant integer cast $2222 +Simplifying constant pointer cast (byte*) 8738 Simplifying constant integer cast 4 Simplifying constant integer cast $3333 Simplifying constant integer cast 6 -Simplifying constant integer cast $4444 +Simplifying constant pointer cast (word*) 17476 Simplifying constant integer cast 8 Simplifying constant integer cast initEntry::entryTLastLink1_$0 Simplifying constant integer cast $55 @@ -2853,13 +2847,10 @@ Finalized unsigned number type (byte) $11 Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $1111 Finalized unsigned number type (byte) 2 -Finalized unsigned number type (word) $2222 Finalized unsigned number type (byte) 4 Finalized unsigned number type (word) $3333 Finalized unsigned number type (byte) 6 -Finalized unsigned number type (word) $4444 Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) $55 Finalized unsigned number type (byte) 9 @@ -2895,10 +2886,7 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions Inferred type updated to byte in mul8u::$1 = mul8u::a#4 & 1 Inferred type updated to byte in print_uchar::$2 = print_uchar::b#11 & $f Inferred type updated to byte in keyboard_key_pressed::$0 = keyboard_key_pressed::key#2 & 7 -Inferred type updated to word in initEntry::$1 = $1111 + initEntry::n#2 -Inferred type updated to word in initEntry::$3 = $2222 + initEntry::n#3 Inferred type updated to word in initEntry::$5 = $3333 + initEntry::n#4 -Inferred type updated to word in initEntry::$7 = $4444 + initEntry::n#5 Inferred type updated to byte in initEntry::$9 = $55 + initEntry::n#6 Inferred type updated to byte in initEntry::$11 = $66 + initEntry::n#7 Inferred type updated to byte in initEntry::$13 = $77 + initEntry::n#8 @@ -3239,65 +3227,65 @@ if() condition always false - eliminating [16] if(memset::num#0<=0) goto memset: Successful SSA optimization Pass2ConstantIfs Consolidated constant strings into main::str1 Successful SSA optimization Pass2ConstantStringConsolidation -Converting *(pointer+n) to pointer[n] [164] *initEntry::entryBufDisk1_return#0 = (byte*)initEntry::$1 -- ((byte**)initEntry::entry#10)[0] -Converting *(pointer+n) to pointer[n] [168] *initEntry::entryBufEdit1_return#0 = (byte*)initEntry::$3 -- ((byte**)initEntry::entry#10)[2] +Converting *(pointer+n) to pointer[n] [164] *initEntry::entryBufDisk1_return#0 = initEntry::$1 -- ((byte**)initEntry::entry#10)[0] +Converting *(pointer+n) to pointer[n] [168] *initEntry::entryBufEdit1_return#0 = initEntry::$3 -- ((byte**)initEntry::entry#10)[2] Converting *(pointer+n) to pointer[n] [172] *initEntry::entryTsLen1_return#0 = initEntry::$5 -- ((word*)initEntry::entry#10)[4] -Converting *(pointer+n) to pointer[n] [176] *initEntry::entryTsOrder1_return#0 = (word*)initEntry::$7 -- ((word**)initEntry::entry#10)[6] -Converting *(pointer+n) to pointer[n] [179] *initEntry::entryTLastLink1_return#0 = initEntry::$9 -- initEntry::entry#10[8] -Converting *(pointer+n) to pointer[n] [182] *initEntry::entrySLastLink1_return#0 = initEntry::$11 -- initEntry::entry#10[9] -Converting *(pointer+n) to pointer[n] [185] *initEntry::entryBFlag1_return#0 = initEntry::$13 -- initEntry::entry#10[$a] -Converting *(pointer+n) to pointer[n] [188] *initEntry::entryBError1_return#0 = initEntry::$15 -- initEntry::entry#10[$b] -Converting *(pointer+n) to pointer[n] [192] *initEntry::entryUCross1_return#0 = initEntry::$17 -- ((word*)initEntry::entry#10)[$c] -Converting *(pointer+n) to pointer[n] [195] *initEntry::entryBAddrLo1_return#0 = initEntry::$19 -- initEntry::entry#10[$e] -Converting *(pointer+n) to pointer[n] [198] *initEntry::entryBAddrHi1_return#0 = initEntry::$21 -- initEntry::entry#10[$f] -Converting *(pointer+n) to pointer[n] [201] *initEntry::entryTHi1_return#0 = initEntry::$23 -- initEntry::entry#10[$10] -Converting *(pointer+n) to pointer[n] [204] *initEntry::entryTLo1_return#0 = initEntry::$25 -- initEntry::entry#10[$11] -Converting *(pointer+n) to pointer[n] [212] print_uint::w#0 = (word)*printEntry::entryBufDisk1_return#0 -- ((byte**)printEntry::entry#10)[0] -Converting *(pointer+n) to pointer[n] [222] print_uint::w#1 = (word)*printEntry::entryBufEdit1_return#0 -- ((byte**)printEntry::entry#10)[2] -Converting *(pointer+n) to pointer[n] [232] print_uint::w#2 = *printEntry::entryTsLen1_return#0 -- ((word*)printEntry::entry#10)[4] -Converting *(pointer+n) to pointer[n] [242] print_uint::w#3 = (word)*printEntry::entryTsOrder1_return#0 -- ((word**)printEntry::entry#10)[6] -Converting *(pointer+n) to pointer[n] [251] print_uchar::b#2 = *printEntry::entryTLastLink1_return#0 -- printEntry::entry#10[8] -Converting *(pointer+n) to pointer[n] [260] print_uchar::b#3 = *printEntry::entrySLastLink1_return#0 -- printEntry::entry#10[9] -Converting *(pointer+n) to pointer[n] [269] print_uchar::b#4 = *printEntry::entryBFlag1_return#0 -- printEntry::entry#10[$a] -Converting *(pointer+n) to pointer[n] [278] print_uchar::b#5 = *printEntry::entryBError1_return#0 -- printEntry::entry#10[$b] -Converting *(pointer+n) to pointer[n] [288] print_uint::w#4 = *printEntry::entryUCross1_return#0 -- ((word*)printEntry::entry#10)[$c] -Converting *(pointer+n) to pointer[n] [297] print_uchar::b#6 = *printEntry::entryBAddrLo1_return#0 -- printEntry::entry#10[$e] -Converting *(pointer+n) to pointer[n] [306] print_uchar::b#7 = *printEntry::entryBAddrHi1_return#0 -- printEntry::entry#10[$f] -Converting *(pointer+n) to pointer[n] [315] print_uchar::b#8 = *printEntry::entryTHi1_return#0 -- printEntry::entry#10[$10] -Converting *(pointer+n) to pointer[n] [324] print_uchar::b#9 = *printEntry::entryTLo1_return#0 -- printEntry::entry#10[$11] +Converting *(pointer+n) to pointer[n] [177] *initEntry::entryTsOrder1_return#0 = initEntry::$7 -- ((word**)initEntry::entry#10)[6] +Converting *(pointer+n) to pointer[n] [180] *initEntry::entryTLastLink1_return#0 = initEntry::$9 -- initEntry::entry#10[8] +Converting *(pointer+n) to pointer[n] [183] *initEntry::entrySLastLink1_return#0 = initEntry::$11 -- initEntry::entry#10[9] +Converting *(pointer+n) to pointer[n] [186] *initEntry::entryBFlag1_return#0 = initEntry::$13 -- initEntry::entry#10[$a] +Converting *(pointer+n) to pointer[n] [189] *initEntry::entryBError1_return#0 = initEntry::$15 -- initEntry::entry#10[$b] +Converting *(pointer+n) to pointer[n] [193] *initEntry::entryUCross1_return#0 = initEntry::$17 -- ((word*)initEntry::entry#10)[$c] +Converting *(pointer+n) to pointer[n] [196] *initEntry::entryBAddrLo1_return#0 = initEntry::$19 -- initEntry::entry#10[$e] +Converting *(pointer+n) to pointer[n] [199] *initEntry::entryBAddrHi1_return#0 = initEntry::$21 -- initEntry::entry#10[$f] +Converting *(pointer+n) to pointer[n] [202] *initEntry::entryTHi1_return#0 = initEntry::$23 -- initEntry::entry#10[$10] +Converting *(pointer+n) to pointer[n] [205] *initEntry::entryTLo1_return#0 = initEntry::$25 -- initEntry::entry#10[$11] +Converting *(pointer+n) to pointer[n] [213] print_uint::w#0 = (word)*printEntry::entryBufDisk1_return#0 -- ((byte**)printEntry::entry#10)[0] +Converting *(pointer+n) to pointer[n] [223] print_uint::w#1 = (word)*printEntry::entryBufEdit1_return#0 -- ((byte**)printEntry::entry#10)[2] +Converting *(pointer+n) to pointer[n] [233] print_uint::w#2 = *printEntry::entryTsLen1_return#0 -- ((word*)printEntry::entry#10)[4] +Converting *(pointer+n) to pointer[n] [243] print_uint::w#3 = (word)*printEntry::entryTsOrder1_return#0 -- ((word**)printEntry::entry#10)[6] +Converting *(pointer+n) to pointer[n] [252] print_uchar::b#2 = *printEntry::entryTLastLink1_return#0 -- printEntry::entry#10[8] +Converting *(pointer+n) to pointer[n] [261] print_uchar::b#3 = *printEntry::entrySLastLink1_return#0 -- printEntry::entry#10[9] +Converting *(pointer+n) to pointer[n] [270] print_uchar::b#4 = *printEntry::entryBFlag1_return#0 -- printEntry::entry#10[$a] +Converting *(pointer+n) to pointer[n] [279] print_uchar::b#5 = *printEntry::entryBError1_return#0 -- printEntry::entry#10[$b] +Converting *(pointer+n) to pointer[n] [289] print_uint::w#4 = *printEntry::entryUCross1_return#0 -- ((word*)printEntry::entry#10)[$c] +Converting *(pointer+n) to pointer[n] [298] print_uchar::b#6 = *printEntry::entryBAddrLo1_return#0 -- printEntry::entry#10[$e] +Converting *(pointer+n) to pointer[n] [307] print_uchar::b#7 = *printEntry::entryBAddrHi1_return#0 -- printEntry::entry#10[$f] +Converting *(pointer+n) to pointer[n] [316] print_uchar::b#8 = *printEntry::entryTHi1_return#0 -- printEntry::entry#10[$10] +Converting *(pointer+n) to pointer[n] [325] print_uchar::b#9 = *printEntry::entryTLo1_return#0 -- printEntry::entry#10[$11] Successful SSA optimization Pass2InlineDerefIdx Simplifying expression containing zero (byte*)CIA1 in [75] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] Simplifying expression containing zero initEntry::entry#10 in [161] initEntry::entryBufDisk1_$0 = initEntry::entry#10 + 0 -Simplifying expression containing zero (byte**)initEntry::entry#10 in [164] ((byte**)initEntry::entry#10)[0] = (byte*)initEntry::$1 -Simplifying expression containing zero printEntry::entry#10 in [210] printEntry::entryBufDisk1_$0 = printEntry::entry#10 + 0 -Simplifying expression containing zero (byte**)printEntry::entry#10 in [212] print_uint::w#0 = (word)((byte**)printEntry::entry#10)[0] +Simplifying expression containing zero (byte**)initEntry::entry#10 in [164] ((byte**)initEntry::entry#10)[0] = initEntry::$1 +Simplifying expression containing zero printEntry::entry#10 in [211] printEntry::entryBufDisk1_$0 = printEntry::entry#10 + 0 +Simplifying expression containing zero (byte**)printEntry::entry#10 in [213] print_uint::w#0 = (word)((byte**)printEntry::entry#10)[0] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused variable initEntry::entryBufDisk1_return#0 and assignment [105] initEntry::entryBufDisk1_return#0 = (byte**)initEntry::entryBufDisk1_$0 Eliminating unused variable initEntry::entryBufEdit1_return#0 and assignment [109] initEntry::entryBufEdit1_return#0 = (byte**)initEntry::entryBufEdit1_$0 Eliminating unused variable initEntry::entryTsLen1_return#0 and assignment [113] initEntry::entryTsLen1_return#0 = (word*)initEntry::entryTsLen1_$0 Eliminating unused variable initEntry::entryTsOrder1_return#0 and assignment [117] initEntry::entryTsOrder1_return#0 = (word**)initEntry::entryTsOrder1_$0 -Eliminating unused variable initEntry::entryTLastLink1_return#0 and assignment [120] initEntry::entryTLastLink1_return#0 = initEntry::entry#10 + 8 -Eliminating unused variable initEntry::entrySLastLink1_return#0 and assignment [123] initEntry::entrySLastLink1_return#0 = initEntry::entry#10 + 9 -Eliminating unused variable initEntry::entryBFlag1_return#0 and assignment [126] initEntry::entryBFlag1_return#0 = initEntry::entry#10 + $a -Eliminating unused variable initEntry::entryBError1_return#0 and assignment [129] initEntry::entryBError1_return#0 = initEntry::entry#10 + $b -Eliminating unused variable initEntry::entryUCross1_return#0 and assignment [133] initEntry::entryUCross1_return#0 = (word*)initEntry::entryUCross1_$0 -Eliminating unused variable initEntry::entryBAddrLo1_return#0 and assignment [136] initEntry::entryBAddrLo1_return#0 = initEntry::entry#10 + $e -Eliminating unused variable initEntry::entryBAddrHi1_return#0 and assignment [139] initEntry::entryBAddrHi1_return#0 = initEntry::entry#10 + $f -Eliminating unused variable initEntry::entryTHi1_return#0 and assignment [142] initEntry::entryTHi1_return#0 = initEntry::entry#10 + $10 -Eliminating unused variable initEntry::entryTLo1_return#0 and assignment [145] initEntry::entryTLo1_return#0 = initEntry::entry#10 + $11 -Eliminating unused variable printEntry::entryBufDisk1_return#0 and assignment [152] printEntry::entryBufDisk1_return#0 = (byte**)printEntry::entryBufDisk1_$0 -Eliminating unused variable printEntry::entryBufEdit1_return#0 and assignment [158] printEntry::entryBufEdit1_return#0 = (byte**)printEntry::entryBufEdit1_$0 -Eliminating unused variable printEntry::entryTsLen1_return#0 and assignment [164] printEntry::entryTsLen1_return#0 = (word*)printEntry::entryTsLen1_$0 -Eliminating unused variable printEntry::entryTsOrder1_return#0 and assignment [170] printEntry::entryTsOrder1_return#0 = (word**)printEntry::entryTsOrder1_$0 -Eliminating unused variable printEntry::entryTLastLink1_return#0 and assignment [175] printEntry::entryTLastLink1_return#0 = printEntry::entry#10 + 8 -Eliminating unused variable printEntry::entrySLastLink1_return#0 and assignment [180] printEntry::entrySLastLink1_return#0 = printEntry::entry#10 + 9 -Eliminating unused variable printEntry::entryBFlag1_return#0 and assignment [185] printEntry::entryBFlag1_return#0 = printEntry::entry#10 + $a -Eliminating unused variable printEntry::entryBError1_return#0 and assignment [190] printEntry::entryBError1_return#0 = printEntry::entry#10 + $b -Eliminating unused variable printEntry::entryUCross1_return#0 and assignment [196] printEntry::entryUCross1_return#0 = (word*)printEntry::entryUCross1_$0 -Eliminating unused variable printEntry::entryBAddrLo1_return#0 and assignment [201] printEntry::entryBAddrLo1_return#0 = printEntry::entry#10 + $e -Eliminating unused variable printEntry::entryBAddrHi1_return#0 and assignment [206] printEntry::entryBAddrHi1_return#0 = printEntry::entry#10 + $f -Eliminating unused variable printEntry::entryTHi1_return#0 and assignment [211] printEntry::entryTHi1_return#0 = printEntry::entry#10 + $10 -Eliminating unused variable printEntry::entryTLo1_return#0 and assignment [216] printEntry::entryTLo1_return#0 = printEntry::entry#10 + $11 +Eliminating unused variable initEntry::entryTLastLink1_return#0 and assignment [121] initEntry::entryTLastLink1_return#0 = initEntry::entry#10 + 8 +Eliminating unused variable initEntry::entrySLastLink1_return#0 and assignment [124] initEntry::entrySLastLink1_return#0 = initEntry::entry#10 + 9 +Eliminating unused variable initEntry::entryBFlag1_return#0 and assignment [127] initEntry::entryBFlag1_return#0 = initEntry::entry#10 + $a +Eliminating unused variable initEntry::entryBError1_return#0 and assignment [130] initEntry::entryBError1_return#0 = initEntry::entry#10 + $b +Eliminating unused variable initEntry::entryUCross1_return#0 and assignment [134] initEntry::entryUCross1_return#0 = (word*)initEntry::entryUCross1_$0 +Eliminating unused variable initEntry::entryBAddrLo1_return#0 and assignment [137] initEntry::entryBAddrLo1_return#0 = initEntry::entry#10 + $e +Eliminating unused variable initEntry::entryBAddrHi1_return#0 and assignment [140] initEntry::entryBAddrHi1_return#0 = initEntry::entry#10 + $f +Eliminating unused variable initEntry::entryTHi1_return#0 and assignment [143] initEntry::entryTHi1_return#0 = initEntry::entry#10 + $10 +Eliminating unused variable initEntry::entryTLo1_return#0 and assignment [146] initEntry::entryTLo1_return#0 = initEntry::entry#10 + $11 +Eliminating unused variable printEntry::entryBufDisk1_return#0 and assignment [153] printEntry::entryBufDisk1_return#0 = (byte**)printEntry::entryBufDisk1_$0 +Eliminating unused variable printEntry::entryBufEdit1_return#0 and assignment [159] printEntry::entryBufEdit1_return#0 = (byte**)printEntry::entryBufEdit1_$0 +Eliminating unused variable printEntry::entryTsLen1_return#0 and assignment [165] printEntry::entryTsLen1_return#0 = (word*)printEntry::entryTsLen1_$0 +Eliminating unused variable printEntry::entryTsOrder1_return#0 and assignment [171] printEntry::entryTsOrder1_return#0 = (word**)printEntry::entryTsOrder1_$0 +Eliminating unused variable printEntry::entryTLastLink1_return#0 and assignment [176] printEntry::entryTLastLink1_return#0 = printEntry::entry#10 + 8 +Eliminating unused variable printEntry::entrySLastLink1_return#0 and assignment [181] printEntry::entrySLastLink1_return#0 = printEntry::entry#10 + 9 +Eliminating unused variable printEntry::entryBFlag1_return#0 and assignment [186] printEntry::entryBFlag1_return#0 = printEntry::entry#10 + $a +Eliminating unused variable printEntry::entryBError1_return#0 and assignment [191] printEntry::entryBError1_return#0 = printEntry::entry#10 + $b +Eliminating unused variable printEntry::entryUCross1_return#0 and assignment [197] printEntry::entryUCross1_return#0 = (word*)printEntry::entryUCross1_$0 +Eliminating unused variable printEntry::entryBAddrLo1_return#0 and assignment [202] printEntry::entryBAddrLo1_return#0 = printEntry::entry#10 + $e +Eliminating unused variable printEntry::entryBAddrHi1_return#0 and assignment [207] printEntry::entryBAddrHi1_return#0 = printEntry::entry#10 + $f +Eliminating unused variable printEntry::entryTHi1_return#0 and assignment [212] printEntry::entryTHi1_return#0 = printEntry::entry#10 + $10 +Eliminating unused variable printEntry::entryTLo1_return#0 and assignment [217] printEntry::entryTLo1_return#0 = printEntry::entry#10 + $11 Eliminating unused constant memset::return#2 Eliminating unused constant OFFSET_STRUCT_MOS6526_CIA_PORT_A Successful SSA optimization PassNEliminateUnusedVars @@ -3305,12 +3293,12 @@ Eliminating unused variable initEntry::entryBufDisk1_$0 and assignment [104] ini Eliminating unused variable initEntry::entryBufEdit1_$0 and assignment [107] initEntry::entryBufEdit1_$0 = initEntry::entry#10 + 2 Eliminating unused variable initEntry::entryTsLen1_$0 and assignment [110] initEntry::entryTsLen1_$0 = initEntry::entry#10 + 4 Eliminating unused variable initEntry::entryTsOrder1_$0 and assignment [113] initEntry::entryTsOrder1_$0 = initEntry::entry#10 + 6 -Eliminating unused variable initEntry::entryUCross1_$0 and assignment [124] initEntry::entryUCross1_$0 = initEntry::entry#10 + $c -Eliminating unused variable printEntry::entryBufDisk1_$0 and assignment [138] printEntry::entryBufDisk1_$0 = printEntry::entry#10 -Eliminating unused variable printEntry::entryBufEdit1_$0 and assignment [143] printEntry::entryBufEdit1_$0 = printEntry::entry#10 + 2 -Eliminating unused variable printEntry::entryTsLen1_$0 and assignment [148] printEntry::entryTsLen1_$0 = printEntry::entry#10 + 4 -Eliminating unused variable printEntry::entryTsOrder1_$0 and assignment [153] printEntry::entryTsOrder1_$0 = printEntry::entry#10 + 6 -Eliminating unused variable printEntry::entryUCross1_$0 and assignment [174] printEntry::entryUCross1_$0 = printEntry::entry#10 + $c +Eliminating unused variable initEntry::entryUCross1_$0 and assignment [125] initEntry::entryUCross1_$0 = initEntry::entry#10 + $c +Eliminating unused variable printEntry::entryBufDisk1_$0 and assignment [139] printEntry::entryBufDisk1_$0 = printEntry::entry#10 +Eliminating unused variable printEntry::entryBufEdit1_$0 and assignment [144] printEntry::entryBufEdit1_$0 = printEntry::entry#10 + 2 +Eliminating unused variable printEntry::entryTsLen1_$0 and assignment [149] printEntry::entryTsLen1_$0 = printEntry::entry#10 + 4 +Eliminating unused variable printEntry::entryTsOrder1_$0 and assignment [154] printEntry::entryTsOrder1_$0 = printEntry::entry#10 + 6 +Eliminating unused variable printEntry::entryUCross1_$0 and assignment [175] printEntry::entryUCross1_$0 = printEntry::entry#10 + $c Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start @@ -3323,10 +3311,12 @@ Constant right-side identified [11] memset::end#0 = memset::$4 + memset::num#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant memset::end#0 = memset::$4+memset::num#0 Successful SSA optimization Pass2ConstantIdentification -Inlining Noop Cast [132] print_uint::w#0 = (word)*((byte**)printEntry::entry#10) keeping *((byte**)printEntry::entry#10) -Inlining Noop Cast [136] print_uint::w#1 = (word)((byte**)printEntry::entry#10)[2] keeping ((byte**)printEntry::entry#10)[2] -Inlining Noop Cast [144] print_uint::w#3 = (word)((word**)printEntry::entry#10)[6] keeping ((word**)printEntry::entry#10)[6] +Inlining Noop Cast [133] print_uint::w#0 = (word)*((byte**)printEntry::entry#10) keeping *((byte**)printEntry::entry#10) +Inlining Noop Cast [137] print_uint::w#1 = (word)((byte**)printEntry::entry#10)[2] keeping ((byte**)printEntry::entry#10)[2] +Inlining Noop Cast [145] print_uint::w#3 = (word)((word**)printEntry::entry#10)[6] keeping ((word**)printEntry::entry#10)[6] Successful SSA optimization Pass2NopCastInlining +Rewriting multiplication to use shift [109] initEntry::$26 = initEntry::n#10 * SIZEOF_WORD +Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings mul8u::res#0 Inlining constant with var siblings mul8u::b#0 Inlining constant with var siblings mul8u::b#1 @@ -3397,6 +3387,8 @@ Constant keyboard_key_pressed::rowidx#0 = KEY_SPACE>>3 Successful SSA optimization Pass2ConstantIdentification Constant keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 Successful SSA optimization Pass2ConstantIdentification +Eliminating unused constant SIZEOF_WORD +Successful SSA optimization PassNEliminateUnusedVars Inlining constant with var siblings mul8u::mb#0 Constant inlined mul8u::mb#0 = (word)SIZEOF_ENTRY Constant inlined keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 @@ -3508,12 +3500,12 @@ Adding NOP phi() at start of print_uint::@2 Adding NOP phi() at start of print_uchar::@2 CALL GRAPH Calls in [main] to keyboard_init:1 mul8u:4 mul8u:11 initEntry:18 initEntry:21 print_cls:23 print_str:25 print_ln:27 print_ln:30 printEntry:33 print_ln:36 print_str:38 keyboard_key_pressed:41 print_cls:46 print_str:48 print_ln:50 print_ln:53 printEntry:56 print_ln:59 print_str:61 keyboard_key_pressed:64 print_cls:69 -Calls in [print_cls] to memset:147 -Calls in [print_str] to print_char:159 -Calls in [printEntry] to print_str:173 print_uint:178 print_ln:181 print_str:183 print_uint:188 print_ln:191 print_str:193 print_uint:199 print_ln:202 print_str:204 print_uint:209 print_ln:212 print_str:214 print_uchar:221 print_ln:224 print_str:226 print_uchar:233 print_ln:236 print_str:238 print_uchar:245 print_ln:248 print_str:250 print_uchar:257 print_ln:260 print_str:262 print_uint:268 print_ln:271 print_str:273 print_uchar:280 print_ln:283 print_str:285 print_uchar:292 print_ln:295 print_str:297 print_uchar:304 print_ln:307 print_str:309 print_uchar:316 print_ln:319 -Calls in [keyboard_key_pressed] to keyboard_matrix_read:323 -Calls in [print_uint] to print_uchar:345 print_uchar:349 -Calls in [print_uchar] to print_char:357 print_char:362 +Calls in [print_cls] to memset:148 +Calls in [print_str] to print_char:160 +Calls in [printEntry] to print_str:174 print_uint:179 print_ln:182 print_str:184 print_uint:189 print_ln:192 print_str:194 print_uint:200 print_ln:203 print_str:205 print_uint:210 print_ln:213 print_str:215 print_uchar:222 print_ln:225 print_str:227 print_uchar:234 print_ln:237 print_str:239 print_uchar:246 print_ln:249 print_str:251 print_uchar:258 print_ln:261 print_str:263 print_uint:269 print_ln:272 print_str:274 print_uchar:281 print_ln:284 print_str:286 print_uchar:293 print_ln:296 print_str:298 print_uchar:305 print_ln:308 print_str:310 print_uchar:317 print_ln:320 +Calls in [keyboard_key_pressed] to keyboard_matrix_read:324 +Calls in [print_uint] to print_uchar:346 print_uchar:350 +Calls in [print_uchar] to print_char:358 print_char:363 Created 21 initial phi equivalence classes Coalesced [17] initEntry::entry#40 = initEntry::entry#0 @@ -3538,80 +3530,80 @@ Coalesced [88] mul8u::a#9 = mul8u::a#0 Coalesced [89] mul8u::res#7 = mul8u::res#6 Coalesced [90] mul8u::mb#6 = mul8u::mb#1 Coalesced (already) [91] mul8u::res#8 = mul8u::res#2 -Coalesced [151] print_str::str#22 = print_str::str#21 -Coalesced [152] print_char_cursor#224 = print_char_cursor#167 -Coalesced [157] print_char::ch#4 = print_char::ch#0 -Coalesced [158] print_char_cursor#255 = print_char_cursor#1 -Coalesced [161] print_str::str#23 = print_str::str#0 -Coalesced [162] print_char_cursor#225 = print_char_cursor#10 -Coalesced [164] print_line_cursor#172 = print_line_cursor#65 -Not coalescing [170] print_line_cursor#173 = print_line_cursor#0 -Not coalescing [172] print_char_cursor#211 = print_line_cursor#0 -Not coalescing [179] print_line_cursor#159 = print_line_cursor#0 -Coalesced (already) [180] print_char_cursor#232 = print_char_cursor#10 -Not coalescing [182] print_char_cursor#212 = print_line_cursor#0 -Not coalescing [189] print_line_cursor#160 = print_line_cursor#0 -Coalesced (already) [190] print_char_cursor#233 = print_char_cursor#10 -Not coalescing [192] print_char_cursor#213 = print_line_cursor#0 -Coalesced [198] print_uint::w#9 = print_uint::w#2 -Not coalescing [200] print_line_cursor#161 = print_line_cursor#0 -Coalesced (already) [201] print_char_cursor#234 = print_char_cursor#10 -Not coalescing [203] print_char_cursor#214 = print_line_cursor#0 -Not coalescing [210] print_line_cursor#162 = print_line_cursor#0 -Coalesced (already) [211] print_char_cursor#235 = print_char_cursor#10 -Not coalescing [213] print_char_cursor#215 = print_line_cursor#0 -Coalesced [219] print_uchar::b#16 = print_uchar::b#2 -Coalesced [220] print_char_cursor#249 = print_char_cursor#1 -Not coalescing [222] print_line_cursor#163 = print_line_cursor#0 -Coalesced (already) [223] print_char_cursor#236 = print_char_cursor#10 -Not coalescing [225] print_char_cursor#216 = print_line_cursor#0 -Coalesced [231] print_uchar::b#17 = print_uchar::b#3 -Coalesced (already) [232] print_char_cursor#250 = print_char_cursor#1 -Not coalescing [234] print_line_cursor#164 = print_line_cursor#0 -Coalesced (already) [235] print_char_cursor#237 = print_char_cursor#10 -Not coalescing [237] print_char_cursor#217 = print_line_cursor#0 -Coalesced [243] print_uchar::b#18 = print_uchar::b#4 -Coalesced (already) [244] print_char_cursor#251 = print_char_cursor#1 -Not coalescing [246] print_line_cursor#165 = print_line_cursor#0 -Coalesced (already) [247] print_char_cursor#238 = print_char_cursor#10 -Not coalescing [249] print_char_cursor#218 = print_line_cursor#0 -Coalesced [255] print_uchar::b#19 = print_uchar::b#5 -Coalesced (already) [256] print_char_cursor#252 = print_char_cursor#1 -Not coalescing [258] print_line_cursor#166 = print_line_cursor#0 -Coalesced (already) [259] print_char_cursor#239 = print_char_cursor#10 -Not coalescing [261] print_char_cursor#219 = print_line_cursor#0 -Coalesced [267] print_uint::w#11 = print_uint::w#4 -Not coalescing [269] print_line_cursor#167 = print_line_cursor#0 -Coalesced (already) [270] print_char_cursor#240 = print_char_cursor#10 -Not coalescing [272] print_char_cursor#220 = print_line_cursor#0 -Coalesced [278] print_uchar::b#12 = print_uchar::b#6 -Coalesced (already) [279] print_char_cursor#245 = print_char_cursor#1 -Not coalescing [281] print_line_cursor#168 = print_line_cursor#0 -Coalesced (already) [282] print_char_cursor#241 = print_char_cursor#10 -Not coalescing [284] print_char_cursor#221 = print_line_cursor#0 -Coalesced [290] print_uchar::b#13 = print_uchar::b#7 -Coalesced (already) [291] print_char_cursor#246 = print_char_cursor#1 -Not coalescing [293] print_line_cursor#169 = print_line_cursor#0 -Coalesced (already) [294] print_char_cursor#242 = print_char_cursor#10 -Not coalescing [296] print_char_cursor#222 = print_line_cursor#0 -Coalesced [302] print_uchar::b#14 = print_uchar::b#8 -Coalesced (already) [303] print_char_cursor#247 = print_char_cursor#1 -Not coalescing [305] print_line_cursor#170 = print_line_cursor#0 -Coalesced (already) [306] print_char_cursor#243 = print_char_cursor#10 -Not coalescing [308] print_char_cursor#223 = print_line_cursor#0 -Coalesced [314] print_uchar::b#15 = print_uchar::b#9 -Coalesced (already) [315] print_char_cursor#248 = print_char_cursor#1 -Not coalescing [317] print_line_cursor#171 = print_line_cursor#0 -Coalesced (already) [318] print_char_cursor#244 = print_char_cursor#10 -Coalesced [336] memset::dst#4 = memset::dst#1 -Coalesced [343] print_uchar::b#20 = print_uchar::b#0 -Coalesced (already) [344] print_char_cursor#253 = print_char_cursor#1 -Coalesced [347] print_uchar::b#21 = print_uchar::b#1 -Coalesced (already) [348] print_char_cursor#254 = print_char_cursor#10 -Coalesced [355] print_char::ch#5 = print_char::ch#1 -Coalesced (already) [356] print_char_cursor#256 = print_char_cursor#148 -Coalesced [360] print_char::ch#6 = print_char::ch#2 -Coalesced (already) [361] print_char_cursor#257 = print_char_cursor#10 +Coalesced [152] print_str::str#22 = print_str::str#21 +Coalesced [153] print_char_cursor#224 = print_char_cursor#167 +Coalesced [158] print_char::ch#4 = print_char::ch#0 +Coalesced [159] print_char_cursor#255 = print_char_cursor#1 +Coalesced [162] print_str::str#23 = print_str::str#0 +Coalesced [163] print_char_cursor#225 = print_char_cursor#10 +Coalesced [165] print_line_cursor#172 = print_line_cursor#65 +Not coalescing [171] print_line_cursor#173 = print_line_cursor#0 +Not coalescing [173] print_char_cursor#211 = print_line_cursor#0 +Not coalescing [180] print_line_cursor#159 = print_line_cursor#0 +Coalesced (already) [181] print_char_cursor#232 = print_char_cursor#10 +Not coalescing [183] print_char_cursor#212 = print_line_cursor#0 +Not coalescing [190] print_line_cursor#160 = print_line_cursor#0 +Coalesced (already) [191] print_char_cursor#233 = print_char_cursor#10 +Not coalescing [193] print_char_cursor#213 = print_line_cursor#0 +Coalesced [199] print_uint::w#9 = print_uint::w#2 +Not coalescing [201] print_line_cursor#161 = print_line_cursor#0 +Coalesced (already) [202] print_char_cursor#234 = print_char_cursor#10 +Not coalescing [204] print_char_cursor#214 = print_line_cursor#0 +Not coalescing [211] print_line_cursor#162 = print_line_cursor#0 +Coalesced (already) [212] print_char_cursor#235 = print_char_cursor#10 +Not coalescing [214] print_char_cursor#215 = print_line_cursor#0 +Coalesced [220] print_uchar::b#16 = print_uchar::b#2 +Coalesced [221] print_char_cursor#249 = print_char_cursor#1 +Not coalescing [223] print_line_cursor#163 = print_line_cursor#0 +Coalesced (already) [224] print_char_cursor#236 = print_char_cursor#10 +Not coalescing [226] print_char_cursor#216 = print_line_cursor#0 +Coalesced [232] print_uchar::b#17 = print_uchar::b#3 +Coalesced (already) [233] print_char_cursor#250 = print_char_cursor#1 +Not coalescing [235] print_line_cursor#164 = print_line_cursor#0 +Coalesced (already) [236] print_char_cursor#237 = print_char_cursor#10 +Not coalescing [238] print_char_cursor#217 = print_line_cursor#0 +Coalesced [244] print_uchar::b#18 = print_uchar::b#4 +Coalesced (already) [245] print_char_cursor#251 = print_char_cursor#1 +Not coalescing [247] print_line_cursor#165 = print_line_cursor#0 +Coalesced (already) [248] print_char_cursor#238 = print_char_cursor#10 +Not coalescing [250] print_char_cursor#218 = print_line_cursor#0 +Coalesced [256] print_uchar::b#19 = print_uchar::b#5 +Coalesced (already) [257] print_char_cursor#252 = print_char_cursor#1 +Not coalescing [259] print_line_cursor#166 = print_line_cursor#0 +Coalesced (already) [260] print_char_cursor#239 = print_char_cursor#10 +Not coalescing [262] print_char_cursor#219 = print_line_cursor#0 +Coalesced [268] print_uint::w#11 = print_uint::w#4 +Not coalescing [270] print_line_cursor#167 = print_line_cursor#0 +Coalesced (already) [271] print_char_cursor#240 = print_char_cursor#10 +Not coalescing [273] print_char_cursor#220 = print_line_cursor#0 +Coalesced [279] print_uchar::b#12 = print_uchar::b#6 +Coalesced (already) [280] print_char_cursor#245 = print_char_cursor#1 +Not coalescing [282] print_line_cursor#168 = print_line_cursor#0 +Coalesced (already) [283] print_char_cursor#241 = print_char_cursor#10 +Not coalescing [285] print_char_cursor#221 = print_line_cursor#0 +Coalesced [291] print_uchar::b#13 = print_uchar::b#7 +Coalesced (already) [292] print_char_cursor#246 = print_char_cursor#1 +Not coalescing [294] print_line_cursor#169 = print_line_cursor#0 +Coalesced (already) [295] print_char_cursor#242 = print_char_cursor#10 +Not coalescing [297] print_char_cursor#222 = print_line_cursor#0 +Coalesced [303] print_uchar::b#14 = print_uchar::b#8 +Coalesced (already) [304] print_char_cursor#247 = print_char_cursor#1 +Not coalescing [306] print_line_cursor#170 = print_line_cursor#0 +Coalesced (already) [307] print_char_cursor#243 = print_char_cursor#10 +Not coalescing [309] print_char_cursor#223 = print_line_cursor#0 +Coalesced [315] print_uchar::b#15 = print_uchar::b#9 +Coalesced (already) [316] print_char_cursor#248 = print_char_cursor#1 +Not coalescing [318] print_line_cursor#171 = print_line_cursor#0 +Coalesced (already) [319] print_char_cursor#244 = print_char_cursor#10 +Coalesced [337] memset::dst#4 = memset::dst#1 +Coalesced [344] print_uchar::b#20 = print_uchar::b#0 +Coalesced (already) [345] print_char_cursor#253 = print_char_cursor#1 +Coalesced [348] print_uchar::b#21 = print_uchar::b#1 +Coalesced (already) [349] print_char_cursor#254 = print_char_cursor#10 +Coalesced [356] print_char::ch#5 = print_char::ch#1 +Coalesced (already) [357] print_char_cursor#256 = print_char_cursor#148 +Coalesced [361] print_char::ch#6 = print_char::ch#2 +Coalesced (already) [362] print_char_cursor#257 = print_char_cursor#10 Coalesced down to 14 phi equivalence classes Culled Empty Block label main::@7 Culled Empty Block label main::fileEntry1_@return @@ -3922,15 +3914,15 @@ initEntry::entryBufDisk1: scope:[initEntry] from initEntry [75] phi() to:initEntry::@1 initEntry::@1: scope:[initEntry] from initEntry::entryBufDisk1 - [76] initEntry::$1 = $1111 + initEntry::n#10 - [77] *((byte**)initEntry::entry#10) = (byte*)initEntry::$1 + [76] initEntry::$1 = (byte*) 4369 + initEntry::n#10 + [77] *((byte**)initEntry::entry#10) = initEntry::$1 to:initEntry::entryBufEdit1 initEntry::entryBufEdit1: scope:[initEntry] from initEntry::@1 [78] phi() to:initEntry::@2 initEntry::@2: scope:[initEntry] from initEntry::entryBufEdit1 - [79] initEntry::$3 = $2222 + initEntry::n#10 - [80] ((byte**)initEntry::entry#10)[2] = (byte*)initEntry::$3 + [79] initEntry::$3 = (byte*) 8738 + initEntry::n#10 + [80] ((byte**)initEntry::entry#10)[2] = initEntry::$3 to:initEntry::entryTsLen1 initEntry::entryTsLen1: scope:[initEntry] from initEntry::@2 [81] phi() @@ -3943,409 +3935,410 @@ initEntry::entryTsOrder1: scope:[initEntry] from initEntry::@3 [84] phi() to:initEntry::@4 initEntry::@4: scope:[initEntry] from initEntry::entryTsOrder1 - [85] initEntry::$7 = $4444 + initEntry::n#10 - [86] ((word**)initEntry::entry#10)[6] = (word*)initEntry::$7 + [85] initEntry::$26 = initEntry::n#10 << 1 + [86] initEntry::$7 = (word*) 17476 + initEntry::$26 + [87] ((word**)initEntry::entry#10)[6] = initEntry::$7 to:initEntry::entryTLastLink1 initEntry::entryTLastLink1: scope:[initEntry] from initEntry::@4 - [87] phi() + [88] phi() to:initEntry::@5 initEntry::@5: scope:[initEntry] from initEntry::entryTLastLink1 - [88] initEntry::$9 = $55 + initEntry::n#10 - [89] initEntry::entry#10[8] = initEntry::$9 + [89] initEntry::$9 = $55 + initEntry::n#10 + [90] initEntry::entry#10[8] = initEntry::$9 to:initEntry::entrySLastLink1 initEntry::entrySLastLink1: scope:[initEntry] from initEntry::@5 - [90] phi() + [91] phi() to:initEntry::@6 initEntry::@6: scope:[initEntry] from initEntry::entrySLastLink1 - [91] initEntry::$11 = $66 + initEntry::n#10 - [92] initEntry::entry#10[9] = initEntry::$11 + [92] initEntry::$11 = $66 + initEntry::n#10 + [93] initEntry::entry#10[9] = initEntry::$11 to:initEntry::entryBFlag1 initEntry::entryBFlag1: scope:[initEntry] from initEntry::@6 - [93] phi() + [94] phi() to:initEntry::@7 initEntry::@7: scope:[initEntry] from initEntry::entryBFlag1 - [94] initEntry::$13 = $77 + initEntry::n#10 - [95] initEntry::entry#10[$a] = initEntry::$13 + [95] initEntry::$13 = $77 + initEntry::n#10 + [96] initEntry::entry#10[$a] = initEntry::$13 to:initEntry::entryBError1 initEntry::entryBError1: scope:[initEntry] from initEntry::@7 - [96] phi() + [97] phi() to:initEntry::@8 initEntry::@8: scope:[initEntry] from initEntry::entryBError1 - [97] initEntry::$15 = $88 + initEntry::n#10 - [98] initEntry::entry#10[$b] = initEntry::$15 + [98] initEntry::$15 = $88 + initEntry::n#10 + [99] initEntry::entry#10[$b] = initEntry::$15 to:initEntry::entryUCross1 initEntry::entryUCross1: scope:[initEntry] from initEntry::@8 - [99] phi() + [100] phi() to:initEntry::@9 initEntry::@9: scope:[initEntry] from initEntry::entryUCross1 - [100] initEntry::$17 = $9999 + initEntry::n#10 - [101] ((word*)initEntry::entry#10)[$c] = initEntry::$17 + [101] initEntry::$17 = $9999 + initEntry::n#10 + [102] ((word*)initEntry::entry#10)[$c] = initEntry::$17 to:initEntry::entryBAddrLo1 initEntry::entryBAddrLo1: scope:[initEntry] from initEntry::@9 - [102] phi() + [103] phi() to:initEntry::@10 initEntry::@10: scope:[initEntry] from initEntry::entryBAddrLo1 - [103] initEntry::$19 = $aa + initEntry::n#10 - [104] initEntry::entry#10[$e] = initEntry::$19 + [104] initEntry::$19 = $aa + initEntry::n#10 + [105] initEntry::entry#10[$e] = initEntry::$19 to:initEntry::entryBAddrHi1 initEntry::entryBAddrHi1: scope:[initEntry] from initEntry::@10 - [105] phi() + [106] phi() to:initEntry::@11 initEntry::@11: scope:[initEntry] from initEntry::entryBAddrHi1 - [106] initEntry::$21 = $bb + initEntry::n#10 - [107] initEntry::entry#10[$f] = initEntry::$21 + [107] initEntry::$21 = $bb + initEntry::n#10 + [108] initEntry::entry#10[$f] = initEntry::$21 to:initEntry::entryTHi1 initEntry::entryTHi1: scope:[initEntry] from initEntry::@11 - [108] phi() + [109] phi() to:initEntry::@12 initEntry::@12: scope:[initEntry] from initEntry::entryTHi1 - [109] initEntry::$23 = $cc + initEntry::n#10 - [110] initEntry::entry#10[$10] = initEntry::$23 + [110] initEntry::$23 = $cc + initEntry::n#10 + [111] initEntry::entry#10[$10] = initEntry::$23 to:initEntry::entryTLo1 initEntry::entryTLo1: scope:[initEntry] from initEntry::@12 - [111] phi() + [112] phi() to:initEntry::@13 initEntry::@13: scope:[initEntry] from initEntry::entryTLo1 - [112] initEntry::$25 = $dd + initEntry::n#10 - [113] initEntry::entry#10[$11] = initEntry::$25 + [113] initEntry::$25 = $dd + initEntry::n#10 + [114] initEntry::entry#10[$11] = initEntry::$25 to:initEntry::@return initEntry::@return: scope:[initEntry] from initEntry::@13 - [114] return + [115] return to:@return void print_cls() print_cls: scope:[print_cls] from main::@2 main::@4 main::@9 - [115] phi() - [116] call memset + [116] phi() + [117] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls - [117] return + [118] return to:@return void print_str(byte* print_str::str) print_str: scope:[print_str] from main::@10 main::@15 main::@17 main::@22 printEntry printEntry::@15 printEntry::@17 printEntry::@19 printEntry::@21 printEntry::@23 printEntry::@25 printEntry::@27 printEntry::@29 printEntry::@31 printEntry::@33 printEntry::@35 printEntry::@37 - [118] print_char_cursor#167 = phi( main::@10/print_screen#0, main::@15/print_char_cursor#209, main::@17/print_screen#0, main::@22/print_char_cursor#210, printEntry/print_char_cursor#211, printEntry::@15/print_char_cursor#212, printEntry::@17/print_char_cursor#213, printEntry::@19/print_char_cursor#214, printEntry::@21/print_char_cursor#215, printEntry::@23/print_char_cursor#216, printEntry::@25/print_char_cursor#217, printEntry::@27/print_char_cursor#218, printEntry::@29/print_char_cursor#219, printEntry::@31/print_char_cursor#220, printEntry::@33/print_char_cursor#221, printEntry::@35/print_char_cursor#222, printEntry::@37/print_char_cursor#223 ) - [118] print_str::str#21 = phi( main::@10/main::str, main::@15/main::str1, main::@17/main::str2, main::@22/main::str1, printEntry/printEntry::str, printEntry::@15/printEntry::str1, printEntry::@17/printEntry::str2, printEntry::@19/printEntry::str3, printEntry::@21/printEntry::str4, printEntry::@23/printEntry::str5, printEntry::@25/printEntry::str6, printEntry::@27/printEntry::str7, printEntry::@29/printEntry::str8, printEntry::@31/printEntry::str9, printEntry::@33/printEntry::str10, printEntry::@35/printEntry::str11, printEntry::@37/printEntry::str12 ) + [119] print_char_cursor#167 = phi( main::@10/print_screen#0, main::@15/print_char_cursor#209, main::@17/print_screen#0, main::@22/print_char_cursor#210, printEntry/print_char_cursor#211, printEntry::@15/print_char_cursor#212, printEntry::@17/print_char_cursor#213, printEntry::@19/print_char_cursor#214, printEntry::@21/print_char_cursor#215, printEntry::@23/print_char_cursor#216, printEntry::@25/print_char_cursor#217, printEntry::@27/print_char_cursor#218, printEntry::@29/print_char_cursor#219, printEntry::@31/print_char_cursor#220, printEntry::@33/print_char_cursor#221, printEntry::@35/print_char_cursor#222, printEntry::@37/print_char_cursor#223 ) + [119] print_str::str#21 = phi( main::@10/main::str, main::@15/main::str1, main::@17/main::str2, main::@22/main::str1, printEntry/printEntry::str, printEntry::@15/printEntry::str1, printEntry::@17/printEntry::str2, printEntry::@19/printEntry::str3, printEntry::@21/printEntry::str4, printEntry::@23/printEntry::str5, printEntry::@25/printEntry::str6, printEntry::@27/printEntry::str7, printEntry::@29/printEntry::str8, printEntry::@31/printEntry::str9, printEntry::@33/printEntry::str10, printEntry::@35/printEntry::str11, printEntry::@37/printEntry::str12 ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@3 - [119] print_char_cursor#1 = phi( print_str/print_char_cursor#167, print_str::@3/print_char_cursor#10 ) - [119] print_str::str#18 = phi( print_str/print_str::str#21, print_str::@3/print_str::str#0 ) - [120] if(0!=*print_str::str#18) goto print_str::@2 + [120] print_char_cursor#1 = phi( print_str/print_char_cursor#167, print_str::@3/print_char_cursor#10 ) + [120] print_str::str#18 = phi( print_str/print_str::str#21, print_str::@3/print_str::str#0 ) + [121] if(0!=*print_str::str#18) goto print_str::@2 to:print_str::@return print_str::@return: scope:[print_str] from print_str::@1 - [121] return + [122] return to:@return print_str::@2: scope:[print_str] from print_str::@1 - [122] print_char::ch#0 = *print_str::str#18 - [123] call print_char + [123] print_char::ch#0 = *print_str::str#18 + [124] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 - [124] print_str::str#0 = ++ print_str::str#18 + [125] print_str::str#0 = ++ print_str::str#18 to:print_str::@1 void print_ln() print_ln: scope:[print_ln] from main::@11 main::@12 main::@14 main::@18 main::@19 main::@21 printEntry::@14 printEntry::@16 printEntry::@18 printEntry::@20 printEntry::@22 printEntry::@24 printEntry::@26 printEntry::@28 printEntry::@30 printEntry::@32 printEntry::@34 printEntry::@36 printEntry::@38 - [125] print_char_cursor#146 = phi( main::@11/print_char_cursor#1, main::@12/print_char_cursor#227, main::@14/print_char_cursor#228, main::@18/print_char_cursor#1, main::@19/print_char_cursor#230, main::@21/print_char_cursor#231, printEntry::@14/print_char_cursor#10, printEntry::@16/print_char_cursor#10, printEntry::@18/print_char_cursor#10, printEntry::@20/print_char_cursor#10, printEntry::@22/print_char_cursor#10, printEntry::@24/print_char_cursor#10, printEntry::@26/print_char_cursor#10, printEntry::@28/print_char_cursor#10, printEntry::@30/print_char_cursor#10, printEntry::@32/print_char_cursor#10, printEntry::@34/print_char_cursor#10, printEntry::@36/print_char_cursor#10, printEntry::@38/print_char_cursor#10 ) - [125] print_line_cursor#65 = phi( main::@11/print_screen#0, main::@12/print_line_cursor#155, main::@14/print_line_cursor#156, main::@18/print_screen#0, main::@19/print_line_cursor#157, main::@21/print_line_cursor#158, printEntry::@14/print_line_cursor#159, printEntry::@16/print_line_cursor#160, printEntry::@18/print_line_cursor#161, printEntry::@20/print_line_cursor#162, printEntry::@22/print_line_cursor#163, printEntry::@24/print_line_cursor#164, printEntry::@26/print_line_cursor#165, printEntry::@28/print_line_cursor#166, printEntry::@30/print_line_cursor#167, printEntry::@32/print_line_cursor#168, printEntry::@34/print_line_cursor#169, printEntry::@36/print_line_cursor#170, printEntry::@38/print_line_cursor#171 ) + [126] print_char_cursor#146 = phi( main::@11/print_char_cursor#1, main::@12/print_char_cursor#227, main::@14/print_char_cursor#228, main::@18/print_char_cursor#1, main::@19/print_char_cursor#230, main::@21/print_char_cursor#231, printEntry::@14/print_char_cursor#10, printEntry::@16/print_char_cursor#10, printEntry::@18/print_char_cursor#10, printEntry::@20/print_char_cursor#10, printEntry::@22/print_char_cursor#10, printEntry::@24/print_char_cursor#10, printEntry::@26/print_char_cursor#10, printEntry::@28/print_char_cursor#10, printEntry::@30/print_char_cursor#10, printEntry::@32/print_char_cursor#10, printEntry::@34/print_char_cursor#10, printEntry::@36/print_char_cursor#10, printEntry::@38/print_char_cursor#10 ) + [126] print_line_cursor#65 = phi( main::@11/print_screen#0, main::@12/print_line_cursor#155, main::@14/print_line_cursor#156, main::@18/print_screen#0, main::@19/print_line_cursor#157, main::@21/print_line_cursor#158, printEntry::@14/print_line_cursor#159, printEntry::@16/print_line_cursor#160, printEntry::@18/print_line_cursor#161, printEntry::@20/print_line_cursor#162, printEntry::@22/print_line_cursor#163, printEntry::@24/print_line_cursor#164, printEntry::@26/print_line_cursor#165, printEntry::@28/print_line_cursor#166, printEntry::@30/print_line_cursor#167, printEntry::@32/print_line_cursor#168, printEntry::@34/print_line_cursor#169, printEntry::@36/print_line_cursor#170, printEntry::@38/print_line_cursor#171 ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@2 - [126] print_line_cursor#33 = phi( print_ln/print_line_cursor#65, print_ln::@2/print_line_cursor#173 ) - [127] print_line_cursor#0 = print_line_cursor#33 + $28 - [128] if(print_line_cursor#0 print_uint::w#5 - [242] call print_uchar + [241] print_uint::w#5 = phi( printEntry::@1/print_uint::w#7, printEntry::@2/print_uint::w#8, printEntry::@3/print_uint::w#2, printEntry::@4/print_uint::w#10, printEntry::@9/print_uint::w#4 ) + [242] print_uchar::b#0 = > print_uint::w#5 + [243] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint - [243] print_uchar::b#1 = < print_uint::w#5 - [244] call print_uchar + [244] print_uchar::b#1 = < print_uint::w#5 + [245] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 - [245] return + [246] return to:@return void print_uchar(byte print_uchar::b) print_uchar: scope:[print_uchar] from printEntry::@10 printEntry::@11 printEntry::@12 printEntry::@13 printEntry::@5 printEntry::@6 printEntry::@7 printEntry::@8 print_uint print_uint::@1 - [246] print_char_cursor#148 = phi( printEntry::@10/print_char_cursor#1, printEntry::@11/print_char_cursor#1, printEntry::@12/print_char_cursor#1, printEntry::@13/print_char_cursor#1, printEntry::@5/print_char_cursor#1, printEntry::@6/print_char_cursor#1, printEntry::@7/print_char_cursor#1, printEntry::@8/print_char_cursor#1, print_uint/print_char_cursor#1, print_uint::@1/print_char_cursor#10 ) - [246] print_uchar::b#10 = phi( printEntry::@10/print_uchar::b#6, printEntry::@11/print_uchar::b#7, printEntry::@12/print_uchar::b#8, printEntry::@13/print_uchar::b#9, printEntry::@5/print_uchar::b#2, printEntry::@6/print_uchar::b#3, printEntry::@7/print_uchar::b#4, printEntry::@8/print_uchar::b#5, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) - [247] print_uchar::$0 = print_uchar::b#10 >> 4 - [248] print_char::ch#1 = print_hextab[print_uchar::$0] - [249] call print_char + [247] print_char_cursor#148 = phi( printEntry::@10/print_char_cursor#1, printEntry::@11/print_char_cursor#1, printEntry::@12/print_char_cursor#1, printEntry::@13/print_char_cursor#1, printEntry::@5/print_char_cursor#1, printEntry::@6/print_char_cursor#1, printEntry::@7/print_char_cursor#1, printEntry::@8/print_char_cursor#1, print_uint/print_char_cursor#1, print_uint::@1/print_char_cursor#10 ) + [247] print_uchar::b#10 = phi( printEntry::@10/print_uchar::b#6, printEntry::@11/print_uchar::b#7, printEntry::@12/print_uchar::b#8, printEntry::@13/print_uchar::b#9, printEntry::@5/print_uchar::b#2, printEntry::@6/print_uchar::b#3, printEntry::@7/print_uchar::b#4, printEntry::@8/print_uchar::b#5, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) + [248] print_uchar::$0 = print_uchar::b#10 >> 4 + [249] print_char::ch#1 = print_hextab[print_uchar::$0] + [250] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar - [250] print_uchar::$2 = print_uchar::b#10 & $f - [251] print_char::ch#2 = print_hextab[print_uchar::$2] - [252] call print_char + [251] print_uchar::$2 = print_uchar::b#10 & $f + [252] print_char::ch#2 = print_hextab[print_uchar::$2] + [253] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 - [253] return + [254] return to:@return byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed - [254] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) - [255] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) + [255] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) + [256] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read - [256] return + [257] return to:@return VARIABLE REGISTER WEIGHTS void initEntry(byte* initEntry::entry , byte initEntry::n) -word~ initEntry::$1 11.0 +byte*~ initEntry::$1 22.0 byte~ initEntry::$11 22.0 byte~ initEntry::$13 22.0 byte~ initEntry::$15 22.0 @@ -4354,14 +4347,15 @@ byte~ initEntry::$19 22.0 byte~ initEntry::$21 22.0 byte~ initEntry::$23 22.0 byte~ initEntry::$25 22.0 -word~ initEntry::$3 11.0 +byte~ initEntry::$26 22.0 +byte*~ initEntry::$3 22.0 word~ initEntry::$5 22.0 -word~ initEntry::$7 11.0 +word*~ initEntry::$7 22.0 byte~ initEntry::$9 22.0 byte* initEntry::entry byte* initEntry::entry#0 4.0 byte* initEntry::entry#1 4.0 -byte* initEntry::entry#10 2.3589743589743586 +byte* initEntry::entry#10 2.3 byte* initEntry::entryBAddrHi1_entry byte* initEntry::entryBAddrHi1_return byte* initEntry::entryBAddrLo1_entry @@ -4389,7 +4383,7 @@ word** initEntry::entryTsOrder1_return byte* initEntry::entryUCross1_entry word* initEntry::entryUCross1_return byte initEntry::n -byte initEntry::n#10 3.7631578947368434 +byte initEntry::n#10 3.6666666666666656 void keyboard_init() byte keyboard_key_pressed(byte keyboard_key_pressed::key) byte~ keyboard_key_pressed::$2 202.0 @@ -4590,6 +4584,7 @@ Added variable mul8u::$1 to live range equivalence class [ mul8u::$1 ] Added variable initEntry::$1 to live range equivalence class [ initEntry::$1 ] Added variable initEntry::$3 to live range equivalence class [ initEntry::$3 ] Added variable initEntry::$5 to live range equivalence class [ initEntry::$5 ] +Added variable initEntry::$26 to live range equivalence class [ initEntry::$26 ] Added variable initEntry::$7 to live range equivalence class [ initEntry::$7 ] Added variable initEntry::$9 to live range equivalence class [ initEntry::$9 ] Added variable initEntry::$11 to live range equivalence class [ initEntry::$11 ] @@ -4635,6 +4630,7 @@ Complete equivalence classes [ initEntry::$1 ] [ initEntry::$3 ] [ initEntry::$5 ] +[ initEntry::$26 ] [ initEntry::$7 ] [ initEntry::$9 ] [ initEntry::$11 ] @@ -4679,23 +4675,24 @@ Allocated zp[1]:40 [ mul8u::$1 ] Allocated zp[2]:41 [ initEntry::$1 ] Allocated zp[2]:43 [ initEntry::$3 ] Allocated zp[2]:45 [ initEntry::$5 ] -Allocated zp[2]:47 [ initEntry::$7 ] -Allocated zp[1]:49 [ initEntry::$9 ] -Allocated zp[1]:50 [ initEntry::$11 ] -Allocated zp[1]:51 [ initEntry::$13 ] -Allocated zp[1]:52 [ initEntry::$15 ] -Allocated zp[2]:53 [ initEntry::$17 ] -Allocated zp[1]:55 [ initEntry::$19 ] -Allocated zp[1]:56 [ initEntry::$21 ] -Allocated zp[1]:57 [ initEntry::$23 ] -Allocated zp[1]:58 [ initEntry::$25 ] -Allocated zp[2]:59 [ print_line_cursor#0 ] -Allocated zp[1]:61 [ keyboard_matrix_read::return#2 ] -Allocated zp[1]:62 [ keyboard_key_pressed::$2 ] -Allocated zp[1]:63 [ keyboard_key_pressed::return#0 ] -Allocated zp[1]:64 [ print_uchar::$0 ] -Allocated zp[1]:65 [ print_uchar::$2 ] -Allocated zp[1]:66 [ keyboard_matrix_read::return#0 ] +Allocated zp[1]:47 [ initEntry::$26 ] +Allocated zp[2]:48 [ initEntry::$7 ] +Allocated zp[1]:50 [ initEntry::$9 ] +Allocated zp[1]:51 [ initEntry::$11 ] +Allocated zp[1]:52 [ initEntry::$13 ] +Allocated zp[1]:53 [ initEntry::$15 ] +Allocated zp[2]:54 [ initEntry::$17 ] +Allocated zp[1]:56 [ initEntry::$19 ] +Allocated zp[1]:57 [ initEntry::$21 ] +Allocated zp[1]:58 [ initEntry::$23 ] +Allocated zp[1]:59 [ initEntry::$25 ] +Allocated zp[2]:60 [ print_line_cursor#0 ] +Allocated zp[1]:62 [ keyboard_matrix_read::return#2 ] +Allocated zp[1]:63 [ keyboard_key_pressed::$2 ] +Allocated zp[1]:64 [ keyboard_key_pressed::return#0 ] +Allocated zp[1]:65 [ print_uchar::$0 ] +Allocated zp[1]:66 [ print_uchar::$2 ] +Allocated zp[1]:67 [ keyboard_matrix_read::return#0 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [4] mul8u::return#2 = mul8u::res#2 [ mul8u::return#2 ] ( [ mul8u::return#2 ] { { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a Statement [5] main::fileEntry1_$0 = mul8u::return#2 [ main::fileEntry1_$0 ] ( [ main::fileEntry1_$0 ] { } ) always clobbers reg byte a @@ -4721,87 +4718,88 @@ Statement [61] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff [ ] ( k Statement [62] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 [ ] ( keyboard_init:1 [ ] { } ) always clobbers reg byte a Statement [70] mul8u::res#1 = mul8u::res#2 + mul8u::mb#2 [ mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] ( mul8u:3 [ mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] { { mul8u::return#2 = mul8u::res#2 } } mul8u:8 [ main::entry1#0 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] { { mul8u::return#3 = mul8u::res#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ mul8u::a#3 mul8u::a#6 mul8u::a#0 ] -Statement [76] initEntry::$1 = $1111 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$1 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$1 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$1 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [76] initEntry::$1 = (byte*) 4369 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$1 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$1 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$1 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:9 [ initEntry::n#10 ] -Statement [77] *((byte**)initEntry::entry#10) = (byte*)initEntry::$1 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y +Statement [77] *((byte**)initEntry::entry#10) = initEntry::$1 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:9 [ initEntry::n#10 ] -Statement [79] initEntry::$3 = $2222 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$3 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$3 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$3 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [80] ((byte**)initEntry::entry#10)[2] = (byte*)initEntry::$3 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y +Statement [79] initEntry::$3 = (byte*) 8738 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$3 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$3 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$3 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [80] ((byte**)initEntry::entry#10)[2] = initEntry::$3 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y Statement [82] initEntry::$5 = $3333 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$5 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$5 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$5 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a Statement [83] ((word*)initEntry::entry#10)[4] = initEntry::$5 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y -Statement [85] initEntry::$7 = $4444 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$7 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$7 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$7 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [86] ((word**)initEntry::entry#10)[6] = (word*)initEntry::$7 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y -Statement [88] initEntry::$9 = $55 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$9 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$9 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$9 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [89] initEntry::entry#10[8] = initEntry::$9 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [91] initEntry::$11 = $66 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$11 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$11 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$11 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [92] initEntry::entry#10[9] = initEntry::$11 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [94] initEntry::$13 = $77 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$13 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$13 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$13 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [95] initEntry::entry#10[$a] = initEntry::$13 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [97] initEntry::$15 = $88 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$15 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$15 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$15 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [98] initEntry::entry#10[$b] = initEntry::$15 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [100] initEntry::$17 = $9999 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$17 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$17 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$17 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [101] ((word*)initEntry::entry#10)[$c] = initEntry::$17 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y -Statement [103] initEntry::$19 = $aa + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$19 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$19 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$19 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [104] initEntry::entry#10[$e] = initEntry::$19 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [106] initEntry::$21 = $bb + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$21 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$21 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$21 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [107] initEntry::entry#10[$f] = initEntry::$21 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [109] initEntry::$23 = $cc + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$23 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$23 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$23 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [110] initEntry::entry#10[$10] = initEntry::$23 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [112] initEntry::$25 = $dd + initEntry::n#10 [ initEntry::entry#10 initEntry::$25 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::$25 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::$25 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [113] initEntry::entry#10[$11] = initEntry::$25 [ ] ( initEntry:13 [ main::entry1#0 main::entry2#0 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [120] if(0!=*print_str::str#18) goto print_str::@2 [ print_str::str#18 print_char_cursor#1 ] ( print_str:19 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#1 ] { } print_str:31 [ main::entry2#0 print_str::str#18 print_char_cursor#1 ] { { print_char_cursor#167 = print_char_cursor#209 } } print_str:40 [ main::entry2#0 print_str::str#18 print_char_cursor#1 ] { } print_str:52 [ print_str::str#18 print_char_cursor#1 ] { { print_char_cursor#167 = print_char_cursor#210 } } printEntry:26::print_str:133 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:47::print_str:133 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:26::print_str:140 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:47::print_str:140 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:26::print_str:147 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:47::print_str:147 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:26::print_str:154 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:47::print_str:154 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:26::print_str:161 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:47::print_str:161 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:26::print_str:168 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:47::print_str:168 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:26::print_str:175 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:47::print_str:175 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:26::print_str:182 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:47::print_str:182 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:26::print_str:189 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:47::print_str:189 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:26::print_str:196 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:47::print_str:196 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:26::print_str:203 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:47::print_str:203 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:26::print_str:210 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:47::print_str:210 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:26::print_str:217 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } } printEntry:47::print_str:217 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } } ) always clobbers reg byte a reg byte y -Statement [122] print_char::ch#0 = *print_str::str#18 [ print_str::str#18 print_char_cursor#1 print_char::ch#0 ] ( print_str:19 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:31 [ main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#167 = print_char_cursor#209 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:40 [ main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:52 [ print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#167 = print_char_cursor#210 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:133 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:133 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:140 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:140 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:147 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:147 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:154 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:154 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:161 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:161 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:168 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:168 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:175 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:175 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:182 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:182 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:189 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:189 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:196 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:196 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:203 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:203 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:210 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:210 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:217 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:217 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } ) always clobbers reg byte a reg byte y -Statement [127] print_line_cursor#0 = print_line_cursor#33 + $28 [ print_line_cursor#0 print_char_cursor#146 ] ( print_ln:21 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:24 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#155 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#227 } } print_ln:29 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#156 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#228 } } print_ln:42 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:45 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#157 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#230 } } print_ln:50 [ print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#158 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#231 } } printEntry:26::print_ln:138 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:138 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:145 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:145 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:152 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:152 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:159 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:159 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:166 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:166 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:173 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:173 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:180 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:180 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:187 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:187 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:194 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:194 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:201 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:201 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:208 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:208 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:215 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:215 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:222 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:222 [ print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [128] if(print_line_cursor#0> 4 [ print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] ( printEntry:26::print_uchar:164 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:164 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:171 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:171 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:178 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:178 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:185 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:185 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:199 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:199 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:206 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:206 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:213 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:213 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:220 [ main::entry2#0 print_line_cursor#0 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:220 [ print_line_cursor#0 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:136::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:136::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } ) always clobbers reg byte a +Statement [248] print_uchar::$0 = print_uchar::b#10 >> 4 [ print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] ( printEntry:26::print_uchar:165 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:165 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:172 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:172 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:179 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:179 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:186 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:186 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:200 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:200 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:207 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:207 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:214 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:214 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:221 [ main::entry2#0 print_line_cursor#0 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:221 [ print_line_cursor#0 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:137::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:137::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:23 [ print_uchar::b#10 print_uchar::b#6 print_uchar::b#7 print_uchar::b#8 print_uchar::b#9 print_uchar::b#2 print_uchar::b#3 print_uchar::b#4 print_uchar::b#5 print_uchar::b#0 print_uchar::b#1 ] -Statement [250] print_uchar::$2 = print_uchar::b#10 & $f [ print_char_cursor#10 print_uchar::$2 ] ( printEntry:26::print_uchar:164 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:164 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:171 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:171 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:178 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:178 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:185 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:185 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:199 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:199 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:206 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:206 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:213 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:213 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:220 [ main::entry2#0 print_line_cursor#0 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:220 [ print_line_cursor#0 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:136::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:136::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:143::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:143::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:150::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:150::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:157::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:157::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:192::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:192::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:136::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } ) always clobbers reg byte a -Statement [254] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) [ ] ( keyboard_key_pressed:33::keyboard_matrix_read:225 [ main::entry2#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } keyboard_key_pressed:54::keyboard_matrix_read:225 [ ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a -Statement [255] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( keyboard_key_pressed:33::keyboard_matrix_read:225 [ main::entry2#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } keyboard_key_pressed:54::keyboard_matrix_read:225 [ keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [251] print_uchar::$2 = print_uchar::b#10 & $f [ print_char_cursor#10 print_uchar::$2 ] ( printEntry:26::print_uchar:165 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:165 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:172 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:172 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:179 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:179 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:186 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:186 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:200 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:200 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:207 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:207 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:214 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:214 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:221 [ main::entry2#0 print_line_cursor#0 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:221 [ print_line_cursor#0 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:137::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:137::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:144::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:144::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:151::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:151::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:158::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:158::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:193::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:193::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:137::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } ) always clobbers reg byte a +Statement [255] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) [ ] ( keyboard_key_pressed:33::keyboard_matrix_read:226 [ main::entry2#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } keyboard_key_pressed:54::keyboard_matrix_read:226 [ ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [256] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( keyboard_key_pressed:33::keyboard_matrix_read:226 [ main::entry2#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } keyboard_key_pressed:54::keyboard_matrix_read:226 [ keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a Statement [4] mul8u::return#2 = mul8u::res#2 [ mul8u::return#2 ] ( [ mul8u::return#2 ] { { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a Statement [5] main::fileEntry1_$0 = mul8u::return#2 [ main::fileEntry1_$0 ] ( [ main::fileEntry1_$0 ] { } ) always clobbers reg byte a Statement [6] main::entry1#0 = files + main::fileEntry1_$0 [ main::entry1#0 ] ( [ main::entry1#0 ] { } ) always clobbers reg byte a @@ -4826,83 +4824,84 @@ Statement [61] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff [ ] ( k Statement [62] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 [ ] ( keyboard_init:1 [ ] { } ) always clobbers reg byte a Statement [68] mul8u::$1 = mul8u::a#3 & 1 [ mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] ( mul8u:3 [ mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] { { mul8u::return#2 = mul8u::res#2 } } mul8u:8 [ main::entry1#0 mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] { { mul8u::return#3 = mul8u::res#2 } } ) always clobbers reg byte a Statement [70] mul8u::res#1 = mul8u::res#2 + mul8u::mb#2 [ mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] ( mul8u:3 [ mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] { { mul8u::return#2 = mul8u::res#2 } } mul8u:8 [ main::entry1#0 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] { { mul8u::return#3 = mul8u::res#2 } } ) always clobbers reg byte a -Statement [76] initEntry::$1 = $1111 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$1 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$1 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$1 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [77] *((byte**)initEntry::entry#10) = (byte*)initEntry::$1 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y -Statement [79] initEntry::$3 = $2222 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$3 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$3 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$3 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [80] ((byte**)initEntry::entry#10)[2] = (byte*)initEntry::$3 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y +Statement [76] initEntry::$1 = (byte*) 4369 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$1 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$1 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$1 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [77] *((byte**)initEntry::entry#10) = initEntry::$1 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y +Statement [79] initEntry::$3 = (byte*) 8738 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$3 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$3 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$3 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [80] ((byte**)initEntry::entry#10)[2] = initEntry::$3 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y Statement [82] initEntry::$5 = $3333 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$5 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$5 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$5 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a Statement [83] ((word*)initEntry::entry#10)[4] = initEntry::$5 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y -Statement [85] initEntry::$7 = $4444 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$7 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$7 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$7 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [86] ((word**)initEntry::entry#10)[6] = (word*)initEntry::$7 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y -Statement [88] initEntry::$9 = $55 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$9 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$9 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$9 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [89] initEntry::entry#10[8] = initEntry::$9 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [91] initEntry::$11 = $66 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$11 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$11 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$11 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [92] initEntry::entry#10[9] = initEntry::$11 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [94] initEntry::$13 = $77 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$13 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$13 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$13 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [95] initEntry::entry#10[$a] = initEntry::$13 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [97] initEntry::$15 = $88 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$15 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$15 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$15 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [98] initEntry::entry#10[$b] = initEntry::$15 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [100] initEntry::$17 = $9999 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$17 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$17 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$17 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [101] ((word*)initEntry::entry#10)[$c] = initEntry::$17 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y -Statement [103] initEntry::$19 = $aa + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$19 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$19 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$19 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [104] initEntry::entry#10[$e] = initEntry::$19 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [106] initEntry::$21 = $bb + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$21 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$21 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$21 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [107] initEntry::entry#10[$f] = initEntry::$21 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [109] initEntry::$23 = $cc + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$23 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$23 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$23 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [110] initEntry::entry#10[$10] = initEntry::$23 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [112] initEntry::$25 = $dd + initEntry::n#10 [ initEntry::entry#10 initEntry::$25 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::$25 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::$25 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [113] initEntry::entry#10[$11] = initEntry::$25 [ ] ( initEntry:13 [ main::entry1#0 main::entry2#0 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [120] if(0!=*print_str::str#18) goto print_str::@2 [ print_str::str#18 print_char_cursor#1 ] ( print_str:19 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#1 ] { } print_str:31 [ main::entry2#0 print_str::str#18 print_char_cursor#1 ] { { print_char_cursor#167 = print_char_cursor#209 } } print_str:40 [ main::entry2#0 print_str::str#18 print_char_cursor#1 ] { } print_str:52 [ print_str::str#18 print_char_cursor#1 ] { { print_char_cursor#167 = print_char_cursor#210 } } printEntry:26::print_str:133 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:47::print_str:133 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:26::print_str:140 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:47::print_str:140 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:26::print_str:147 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:47::print_str:147 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:26::print_str:154 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:47::print_str:154 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:26::print_str:161 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:47::print_str:161 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:26::print_str:168 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:47::print_str:168 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:26::print_str:175 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:47::print_str:175 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:26::print_str:182 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:47::print_str:182 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:26::print_str:189 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:47::print_str:189 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:26::print_str:196 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:47::print_str:196 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:26::print_str:203 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:47::print_str:203 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:26::print_str:210 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:47::print_str:210 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:26::print_str:217 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } } printEntry:47::print_str:217 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } } ) always clobbers reg byte a reg byte y -Statement [122] print_char::ch#0 = *print_str::str#18 [ print_str::str#18 print_char_cursor#1 print_char::ch#0 ] ( print_str:19 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:31 [ main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#167 = print_char_cursor#209 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:40 [ main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:52 [ print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#167 = print_char_cursor#210 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:133 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:133 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:140 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:140 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:147 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:147 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:154 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:154 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:161 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:161 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:168 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:168 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:175 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:175 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:182 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:182 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:189 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:189 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:196 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:196 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:203 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:203 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:210 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:210 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:217 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:217 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } ) always clobbers reg byte a reg byte y -Statement [127] print_line_cursor#0 = print_line_cursor#33 + $28 [ print_line_cursor#0 print_char_cursor#146 ] ( print_ln:21 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:24 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#155 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#227 } } print_ln:29 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#156 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#228 } } print_ln:42 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:45 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#157 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#230 } } print_ln:50 [ print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#158 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#231 } } printEntry:26::print_ln:138 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:138 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:145 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:145 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:152 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:152 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:159 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:159 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:166 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:166 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:173 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:173 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:180 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:180 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:187 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:187 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:194 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:194 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:201 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:201 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:208 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:208 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:215 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:215 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:222 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:222 [ print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [128] if(print_line_cursor#0> 4 [ print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] ( printEntry:26::print_uchar:164 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:164 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:171 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:171 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:178 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:178 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:185 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:185 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:199 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:199 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:206 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:206 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:213 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:213 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:220 [ main::entry2#0 print_line_cursor#0 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:220 [ print_line_cursor#0 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:136::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:136::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } ) always clobbers reg byte a -Statement [250] print_uchar::$2 = print_uchar::b#10 & $f [ print_char_cursor#10 print_uchar::$2 ] ( printEntry:26::print_uchar:164 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:164 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:171 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:171 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:178 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:178 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:185 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:185 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:199 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:199 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:206 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:206 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:213 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:213 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:220 [ main::entry2#0 print_line_cursor#0 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:220 [ print_line_cursor#0 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:136::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:136::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:143::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:143::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:150::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:150::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:157::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:157::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:192::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:192::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:136::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } ) always clobbers reg byte a -Statement [254] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) [ ] ( keyboard_key_pressed:33::keyboard_matrix_read:225 [ main::entry2#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } keyboard_key_pressed:54::keyboard_matrix_read:225 [ ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a -Statement [255] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( keyboard_key_pressed:33::keyboard_matrix_read:225 [ main::entry2#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } keyboard_key_pressed:54::keyboard_matrix_read:225 [ keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [85] initEntry::$26 = initEntry::n#10 << 1 [ initEntry::entry#10 initEntry::n#10 initEntry::$26 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$26 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$26 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [86] initEntry::$7 = (word*) 17476 + initEntry::$26 [ initEntry::entry#10 initEntry::n#10 initEntry::$7 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$7 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$7 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [87] ((word**)initEntry::entry#10)[6] = initEntry::$7 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y +Statement [89] initEntry::$9 = $55 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$9 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$9 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$9 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [90] initEntry::entry#10[8] = initEntry::$9 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [92] initEntry::$11 = $66 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$11 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$11 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$11 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [93] initEntry::entry#10[9] = initEntry::$11 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [95] initEntry::$13 = $77 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$13 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$13 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$13 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [96] initEntry::entry#10[$a] = initEntry::$13 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [98] initEntry::$15 = $88 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$15 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$15 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$15 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [99] initEntry::entry#10[$b] = initEntry::$15 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [101] initEntry::$17 = $9999 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$17 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$17 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$17 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [102] ((word*)initEntry::entry#10)[$c] = initEntry::$17 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y +Statement [104] initEntry::$19 = $aa + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$19 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$19 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$19 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [105] initEntry::entry#10[$e] = initEntry::$19 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [107] initEntry::$21 = $bb + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$21 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$21 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$21 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [108] initEntry::entry#10[$f] = initEntry::$21 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [110] initEntry::$23 = $cc + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$23 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$23 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$23 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [111] initEntry::entry#10[$10] = initEntry::$23 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [113] initEntry::$25 = $dd + initEntry::n#10 [ initEntry::entry#10 initEntry::$25 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::$25 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::$25 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [114] initEntry::entry#10[$11] = initEntry::$25 [ ] ( initEntry:13 [ main::entry1#0 main::entry2#0 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [121] if(0!=*print_str::str#18) goto print_str::@2 [ print_str::str#18 print_char_cursor#1 ] ( print_str:19 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#1 ] { } print_str:31 [ main::entry2#0 print_str::str#18 print_char_cursor#1 ] { { print_char_cursor#167 = print_char_cursor#209 } } print_str:40 [ main::entry2#0 print_str::str#18 print_char_cursor#1 ] { } print_str:52 [ print_str::str#18 print_char_cursor#1 ] { { print_char_cursor#167 = print_char_cursor#210 } } printEntry:26::print_str:134 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:47::print_str:134 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:26::print_str:141 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:47::print_str:141 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:26::print_str:148 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:47::print_str:148 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:26::print_str:155 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:47::print_str:155 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:26::print_str:162 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:47::print_str:162 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:26::print_str:169 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:47::print_str:169 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:26::print_str:176 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:47::print_str:176 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:26::print_str:183 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:47::print_str:183 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:26::print_str:190 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:47::print_str:190 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:26::print_str:197 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:47::print_str:197 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:26::print_str:204 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:47::print_str:204 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:26::print_str:211 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:47::print_str:211 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:26::print_str:218 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } } printEntry:47::print_str:218 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } } ) always clobbers reg byte a reg byte y +Statement [123] print_char::ch#0 = *print_str::str#18 [ print_str::str#18 print_char_cursor#1 print_char::ch#0 ] ( print_str:19 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:31 [ main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#167 = print_char_cursor#209 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:40 [ main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:52 [ print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#167 = print_char_cursor#210 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:134 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:134 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:141 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:141 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:148 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:148 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:155 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:155 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:162 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:162 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:169 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:169 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:176 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:176 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:183 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:183 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:190 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:190 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:197 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:197 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:204 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:204 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:211 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:211 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:218 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:218 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } ) always clobbers reg byte a reg byte y +Statement [128] print_line_cursor#0 = print_line_cursor#33 + $28 [ print_line_cursor#0 print_char_cursor#146 ] ( print_ln:21 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:24 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#155 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#227 } } print_ln:29 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#156 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#228 } } print_ln:42 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:45 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#157 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#230 } } print_ln:50 [ print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#158 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#231 } } printEntry:26::print_ln:139 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:139 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:146 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:146 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:153 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:153 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:160 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:160 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:167 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:167 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:174 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:174 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:181 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:181 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:188 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:188 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:195 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:195 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:202 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:202 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:209 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:209 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:216 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:216 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:223 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:223 [ print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [129] if(print_line_cursor#0> 4 [ print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] ( printEntry:26::print_uchar:165 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:165 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:172 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:172 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:179 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:179 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:186 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:186 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:200 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:200 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:207 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:207 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:214 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:214 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:221 [ main::entry2#0 print_line_cursor#0 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:221 [ print_line_cursor#0 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:137::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:137::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } ) always clobbers reg byte a +Statement [251] print_uchar::$2 = print_uchar::b#10 & $f [ print_char_cursor#10 print_uchar::$2 ] ( printEntry:26::print_uchar:165 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:165 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:172 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:172 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:179 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:179 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:186 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:186 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:200 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:200 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:207 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:207 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:214 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:214 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:221 [ main::entry2#0 print_line_cursor#0 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:221 [ print_line_cursor#0 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:137::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:137::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:144::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:144::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:151::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:151::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:158::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:158::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:193::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:193::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:137::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } ) always clobbers reg byte a +Statement [255] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) [ ] ( keyboard_key_pressed:33::keyboard_matrix_read:226 [ main::entry2#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } keyboard_key_pressed:54::keyboard_matrix_read:226 [ ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [256] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( keyboard_key_pressed:33::keyboard_matrix_read:226 [ main::entry2#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } keyboard_key_pressed:54::keyboard_matrix_read:226 [ keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a Potential registers zp[1]:2 [ mul8u::a#3 mul8u::a#6 mul8u::a#0 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[2]:3 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] : zp[2]:3 , Potential registers zp[2]:5 [ mul8u::mb#2 mul8u::mb#1 ] : zp[2]:5 , @@ -4930,34 +4929,35 @@ Potential registers zp[1]:40 [ mul8u::$1 ] : zp[1]:40 , reg byte a , reg byte x Potential registers zp[2]:41 [ initEntry::$1 ] : zp[2]:41 , Potential registers zp[2]:43 [ initEntry::$3 ] : zp[2]:43 , Potential registers zp[2]:45 [ initEntry::$5 ] : zp[2]:45 , -Potential registers zp[2]:47 [ initEntry::$7 ] : zp[2]:47 , -Potential registers zp[1]:49 [ initEntry::$9 ] : zp[1]:49 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:50 [ initEntry::$11 ] : zp[1]:50 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:51 [ initEntry::$13 ] : zp[1]:51 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:52 [ initEntry::$15 ] : zp[1]:52 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:53 [ initEntry::$17 ] : zp[2]:53 , -Potential registers zp[1]:55 [ initEntry::$19 ] : zp[1]:55 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:56 [ initEntry::$21 ] : zp[1]:56 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:57 [ initEntry::$23 ] : zp[1]:57 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:58 [ initEntry::$25 ] : zp[1]:58 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:59 [ print_line_cursor#0 ] : zp[2]:59 , -Potential registers zp[1]:61 [ keyboard_matrix_read::return#2 ] : zp[1]:61 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:62 [ keyboard_key_pressed::$2 ] : zp[1]:62 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:63 [ keyboard_key_pressed::return#0 ] : zp[1]:63 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:64 [ print_uchar::$0 ] : zp[1]:64 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:65 [ print_uchar::$2 ] : zp[1]:65 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:66 [ keyboard_matrix_read::return#0 ] : zp[1]:66 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:47 [ initEntry::$26 ] : zp[1]:47 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:48 [ initEntry::$7 ] : zp[2]:48 , +Potential registers zp[1]:50 [ initEntry::$9 ] : zp[1]:50 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:51 [ initEntry::$11 ] : zp[1]:51 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:52 [ initEntry::$13 ] : zp[1]:52 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:53 [ initEntry::$15 ] : zp[1]:53 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:54 [ initEntry::$17 ] : zp[2]:54 , +Potential registers zp[1]:56 [ initEntry::$19 ] : zp[1]:56 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:57 [ initEntry::$21 ] : zp[1]:57 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:58 [ initEntry::$23 ] : zp[1]:58 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:59 [ initEntry::$25 ] : zp[1]:59 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:60 [ print_line_cursor#0 ] : zp[2]:60 , +Potential registers zp[1]:62 [ keyboard_matrix_read::return#2 ] : zp[1]:62 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:63 [ keyboard_key_pressed::$2 ] : zp[1]:63 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:64 [ keyboard_key_pressed::return#0 ] : zp[1]:64 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:65 [ print_uchar::$0 ] : zp[1]:65 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:66 [ print_uchar::$2 ] : zp[1]:66 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:67 [ keyboard_matrix_read::return#0 ] : zp[1]:67 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES Uplift Scope [print_char] 19,010: zp[1]:18 [ print_char::ch#3 print_char::ch#0 print_char::ch#1 print_char::ch#2 ] -Uplift Scope [] 13,082.92: zp[2]:19 [ print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 ] 4,651: zp[2]:12 [ print_line_cursor#33 print_line_cursor#65 print_line_cursor#155 print_line_cursor#156 print_line_cursor#157 print_line_cursor#158 print_line_cursor#159 print_line_cursor#160 print_line_cursor#161 print_line_cursor#162 print_line_cursor#163 print_line_cursor#164 print_line_cursor#165 print_line_cursor#166 print_line_cursor#167 print_line_cursor#168 print_line_cursor#169 print_line_cursor#170 print_line_cursor#171 print_line_cursor#173 ] 34.11: zp[2]:59 [ print_line_cursor#0 ] -Uplift Scope [print_uchar] 2,002: zp[1]:64 [ print_uchar::$0 ] 2,002: zp[1]:65 [ print_uchar::$2 ] 1,153: zp[1]:23 [ print_uchar::b#10 print_uchar::b#6 print_uchar::b#7 print_uchar::b#8 print_uchar::b#9 print_uchar::b#2 print_uchar::b#3 print_uchar::b#4 print_uchar::b#5 print_uchar::b#0 print_uchar::b#1 ] +Uplift Scope [] 13,082.92: zp[2]:19 [ print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 ] 4,651: zp[2]:12 [ print_line_cursor#33 print_line_cursor#65 print_line_cursor#155 print_line_cursor#156 print_line_cursor#157 print_line_cursor#158 print_line_cursor#159 print_line_cursor#160 print_line_cursor#161 print_line_cursor#162 print_line_cursor#163 print_line_cursor#164 print_line_cursor#165 print_line_cursor#166 print_line_cursor#167 print_line_cursor#168 print_line_cursor#169 print_line_cursor#170 print_line_cursor#171 print_line_cursor#173 ] 34.11: zp[2]:60 [ print_line_cursor#0 ] +Uplift Scope [print_uchar] 2,002: zp[1]:65 [ print_uchar::$0 ] 2,002: zp[1]:66 [ print_uchar::$2 ] 1,153: zp[1]:23 [ print_uchar::b#10 print_uchar::b#6 print_uchar::b#7 print_uchar::b#8 print_uchar::b#9 print_uchar::b#2 print_uchar::b#3 print_uchar::b#4 print_uchar::b#5 print_uchar::b#0 print_uchar::b#1 ] Uplift Scope [memset] 3,336.67: zp[2]:16 [ memset::dst#2 memset::dst#1 ] Uplift Scope [print_str] 3,129.25: zp[2]:10 [ print_str::str#18 print_str::str#21 print_str::str#0 ] Uplift Scope [mul8u] 346.86: zp[2]:3 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] 245.29: zp[2]:5 [ mul8u::mb#2 mul8u::mb#1 ] 202: zp[1]:40 [ mul8u::$1 ] 181.17: zp[1]:2 [ mul8u::a#3 mul8u::a#6 mul8u::a#0 ] 4: zp[2]:24 [ mul8u::return#2 ] 4: zp[2]:30 [ mul8u::return#3 ] -Uplift Scope [keyboard_matrix_read] 367.33: zp[1]:66 [ keyboard_matrix_read::return#0 ] 202: zp[1]:61 [ keyboard_matrix_read::return#2 ] -Uplift Scope [keyboard_key_pressed] 202: zp[1]:62 [ keyboard_key_pressed::$2 ] 30.75: zp[1]:63 [ keyboard_key_pressed::return#0 ] 22: zp[1]:36 [ keyboard_key_pressed::return#2 ] 22: zp[1]:38 [ keyboard_key_pressed::return#3 ] -Uplift Scope [initEntry] 22: zp[2]:45 [ initEntry::$5 ] 22: zp[1]:49 [ initEntry::$9 ] 22: zp[1]:50 [ initEntry::$11 ] 22: zp[1]:51 [ initEntry::$13 ] 22: zp[1]:52 [ initEntry::$15 ] 22: zp[2]:53 [ initEntry::$17 ] 22: zp[1]:55 [ initEntry::$19 ] 22: zp[1]:56 [ initEntry::$21 ] 22: zp[1]:57 [ initEntry::$23 ] 22: zp[1]:58 [ initEntry::$25 ] 11: zp[2]:41 [ initEntry::$1 ] 11: zp[2]:43 [ initEntry::$3 ] 11: zp[2]:47 [ initEntry::$7 ] 10.36: zp[2]:7 [ initEntry::entry#10 initEntry::entry#1 initEntry::entry#0 ] 3.76: zp[1]:9 [ initEntry::n#10 ] +Uplift Scope [keyboard_matrix_read] 367.33: zp[1]:67 [ keyboard_matrix_read::return#0 ] 202: zp[1]:62 [ keyboard_matrix_read::return#2 ] +Uplift Scope [initEntry] 22: zp[2]:41 [ initEntry::$1 ] 22: zp[2]:43 [ initEntry::$3 ] 22: zp[2]:45 [ initEntry::$5 ] 22: zp[1]:47 [ initEntry::$26 ] 22: zp[2]:48 [ initEntry::$7 ] 22: zp[1]:50 [ initEntry::$9 ] 22: zp[1]:51 [ initEntry::$11 ] 22: zp[1]:52 [ initEntry::$13 ] 22: zp[1]:53 [ initEntry::$15 ] 22: zp[2]:54 [ initEntry::$17 ] 22: zp[1]:56 [ initEntry::$19 ] 22: zp[1]:57 [ initEntry::$21 ] 22: zp[1]:58 [ initEntry::$23 ] 22: zp[1]:59 [ initEntry::$25 ] 10.3: zp[2]:7 [ initEntry::entry#10 initEntry::entry#1 initEntry::entry#0 ] 3.67: zp[1]:9 [ initEntry::n#10 ] +Uplift Scope [keyboard_key_pressed] 202: zp[1]:63 [ keyboard_key_pressed::$2 ] 30.75: zp[1]:64 [ keyboard_key_pressed::return#0 ] 22: zp[1]:36 [ keyboard_key_pressed::return#2 ] 22: zp[1]:38 [ keyboard_key_pressed::return#3 ] Uplift Scope [print_uint] 195.67: zp[2]:21 [ print_uint::w#5 print_uint::w#7 print_uint::w#8 print_uint::w#2 print_uint::w#10 print_uint::w#4 ] Uplift Scope [main] 22: zp[1]:37 [ main::$20 ] 22: zp[1]:39 [ main::$22 ] 4: zp[2]:26 [ main::fileEntry1_$0 ] 4: zp[2]:32 [ main::fileEntry2_$0 ] 0.32: zp[2]:28 [ main::entry1#0 ] 0.17: zp[2]:34 [ main::entry2#0 ] Uplift Scope [printEntry] 9.05: zp[2]:14 [ printEntry::entry#10 printEntry::entry#0 printEntry::entry#1 ] @@ -4969,37 +4969,39 @@ Uplift Scope [MOS6569_VICII] Uplift Scope [MOS6581_SID] Uplift Scope [keyboard_init] -Uplifting [print_char] best 5895 combination reg byte a [ print_char::ch#3 print_char::ch#0 print_char::ch#1 print_char::ch#2 ] -Uplifting [] best 5895 combination zp[2]:19 [ print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 ] zp[2]:12 [ print_line_cursor#33 print_line_cursor#65 print_line_cursor#155 print_line_cursor#156 print_line_cursor#157 print_line_cursor#158 print_line_cursor#159 print_line_cursor#160 print_line_cursor#161 print_line_cursor#162 print_line_cursor#163 print_line_cursor#164 print_line_cursor#165 print_line_cursor#166 print_line_cursor#167 print_line_cursor#168 print_line_cursor#169 print_line_cursor#170 print_line_cursor#171 print_line_cursor#173 ] zp[2]:59 [ print_line_cursor#0 ] -Uplifting [print_uchar] best 5869 combination reg byte a [ print_uchar::$0 ] reg byte x [ print_uchar::$2 ] reg byte x [ print_uchar::b#10 print_uchar::b#6 print_uchar::b#7 print_uchar::b#8 print_uchar::b#9 print_uchar::b#2 print_uchar::b#3 print_uchar::b#4 print_uchar::b#5 print_uchar::b#0 print_uchar::b#1 ] -Uplifting [memset] best 5869 combination zp[2]:16 [ memset::dst#2 memset::dst#1 ] -Uplifting [print_str] best 5869 combination zp[2]:10 [ print_str::str#18 print_str::str#21 print_str::str#0 ] -Uplifting [mul8u] best 5813 combination zp[2]:3 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp[2]:5 [ mul8u::mb#2 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#0 ] zp[2]:24 [ mul8u::return#2 ] zp[2]:30 [ mul8u::return#3 ] -Uplifting [keyboard_matrix_read] best 5801 combination reg byte a [ keyboard_matrix_read::return#0 ] reg byte a [ keyboard_matrix_read::return#2 ] -Uplifting [keyboard_key_pressed] best 5612 combination reg byte a [ keyboard_key_pressed::$2 ] reg byte a [ keyboard_key_pressed::return#0 ] reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#3 ] +Uplifting [print_char] best 5903 combination reg byte a [ print_char::ch#3 print_char::ch#0 print_char::ch#1 print_char::ch#2 ] +Uplifting [] best 5903 combination zp[2]:19 [ print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 ] zp[2]:12 [ print_line_cursor#33 print_line_cursor#65 print_line_cursor#155 print_line_cursor#156 print_line_cursor#157 print_line_cursor#158 print_line_cursor#159 print_line_cursor#160 print_line_cursor#161 print_line_cursor#162 print_line_cursor#163 print_line_cursor#164 print_line_cursor#165 print_line_cursor#166 print_line_cursor#167 print_line_cursor#168 print_line_cursor#169 print_line_cursor#170 print_line_cursor#171 print_line_cursor#173 ] zp[2]:60 [ print_line_cursor#0 ] +Uplifting [print_uchar] best 5877 combination reg byte a [ print_uchar::$0 ] reg byte x [ print_uchar::$2 ] reg byte x [ print_uchar::b#10 print_uchar::b#6 print_uchar::b#7 print_uchar::b#8 print_uchar::b#9 print_uchar::b#2 print_uchar::b#3 print_uchar::b#4 print_uchar::b#5 print_uchar::b#0 print_uchar::b#1 ] +Uplifting [memset] best 5877 combination zp[2]:16 [ memset::dst#2 memset::dst#1 ] +Uplifting [print_str] best 5877 combination zp[2]:10 [ print_str::str#18 print_str::str#21 print_str::str#0 ] +Uplifting [mul8u] best 5821 combination zp[2]:3 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp[2]:5 [ mul8u::mb#2 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#0 ] zp[2]:24 [ mul8u::return#2 ] zp[2]:30 [ mul8u::return#3 ] +Uplifting [keyboard_matrix_read] best 5809 combination reg byte a [ keyboard_matrix_read::return#0 ] reg byte a [ keyboard_matrix_read::return#2 ] +Uplifting [initEntry] best 5791 combination zp[2]:41 [ initEntry::$1 ] zp[2]:43 [ initEntry::$3 ] zp[2]:45 [ initEntry::$5 ] reg byte a [ initEntry::$26 ] zp[2]:48 [ initEntry::$7 ] reg byte a [ initEntry::$9 ] reg byte a [ initEntry::$11 ] reg byte a [ initEntry::$13 ] zp[1]:53 [ initEntry::$15 ] zp[2]:54 [ initEntry::$17 ] zp[1]:56 [ initEntry::$19 ] zp[1]:57 [ initEntry::$21 ] zp[1]:58 [ initEntry::$23 ] zp[1]:59 [ initEntry::$25 ] zp[2]:7 [ initEntry::entry#10 initEntry::entry#1 initEntry::entry#0 ] zp[1]:9 [ initEntry::n#10 ] +Limited combination testing to 100 combinations of 524288 possible. +Uplifting [keyboard_key_pressed] best 5602 combination reg byte a [ keyboard_key_pressed::$2 ] reg byte a [ keyboard_key_pressed::return#0 ] reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#3 ] Limited combination testing to 100 combinations of 256 possible. -Uplifting [initEntry] best 5596 combination zp[2]:45 [ initEntry::$5 ] reg byte a [ initEntry::$9 ] reg byte a [ initEntry::$11 ] reg byte a [ initEntry::$13 ] reg byte a [ initEntry::$15 ] zp[2]:53 [ initEntry::$17 ] zp[1]:55 [ initEntry::$19 ] zp[1]:56 [ initEntry::$21 ] zp[1]:57 [ initEntry::$23 ] zp[1]:58 [ initEntry::$25 ] zp[2]:41 [ initEntry::$1 ] zp[2]:43 [ initEntry::$3 ] zp[2]:47 [ initEntry::$7 ] zp[2]:7 [ initEntry::entry#10 initEntry::entry#1 initEntry::entry#0 ] zp[1]:9 [ initEntry::n#10 ] -Limited combination testing to 100 combinations of 131072 possible. -Uplifting [print_uint] best 5596 combination zp[2]:21 [ print_uint::w#5 print_uint::w#7 print_uint::w#8 print_uint::w#2 print_uint::w#10 print_uint::w#4 ] -Uplifting [main] best 5516 combination reg byte a [ main::$20 ] reg byte a [ main::$22 ] zp[2]:26 [ main::fileEntry1_$0 ] zp[2]:32 [ main::fileEntry2_$0 ] zp[2]:28 [ main::entry1#0 ] zp[2]:34 [ main::entry2#0 ] -Uplifting [printEntry] best 5516 combination zp[2]:14 [ printEntry::entry#10 printEntry::entry#0 printEntry::entry#1 ] -Uplifting [RADIX] best 5516 combination -Uplifting [print_ln] best 5516 combination -Uplifting [print_cls] best 5516 combination -Uplifting [MOS6526_CIA] best 5516 combination -Uplifting [MOS6569_VICII] best 5516 combination -Uplifting [MOS6581_SID] best 5516 combination -Uplifting [keyboard_init] best 5516 combination -Attempting to uplift remaining variables inzp[1]:55 [ initEntry::$19 ] -Uplifting [initEntry] best 5512 combination reg byte a [ initEntry::$19 ] -Attempting to uplift remaining variables inzp[1]:56 [ initEntry::$21 ] -Uplifting [initEntry] best 5508 combination reg byte a [ initEntry::$21 ] -Attempting to uplift remaining variables inzp[1]:57 [ initEntry::$23 ] -Uplifting [initEntry] best 5504 combination reg byte a [ initEntry::$23 ] -Attempting to uplift remaining variables inzp[1]:58 [ initEntry::$25 ] -Uplifting [initEntry] best 5500 combination reg byte a [ initEntry::$25 ] +Uplifting [print_uint] best 5602 combination zp[2]:21 [ print_uint::w#5 print_uint::w#7 print_uint::w#8 print_uint::w#2 print_uint::w#10 print_uint::w#4 ] +Uplifting [main] best 5522 combination reg byte a [ main::$20 ] reg byte a [ main::$22 ] zp[2]:26 [ main::fileEntry1_$0 ] zp[2]:32 [ main::fileEntry2_$0 ] zp[2]:28 [ main::entry1#0 ] zp[2]:34 [ main::entry2#0 ] +Uplifting [printEntry] best 5522 combination zp[2]:14 [ printEntry::entry#10 printEntry::entry#0 printEntry::entry#1 ] +Uplifting [RADIX] best 5522 combination +Uplifting [print_ln] best 5522 combination +Uplifting [print_cls] best 5522 combination +Uplifting [MOS6526_CIA] best 5522 combination +Uplifting [MOS6569_VICII] best 5522 combination +Uplifting [MOS6581_SID] best 5522 combination +Uplifting [keyboard_init] best 5522 combination +Attempting to uplift remaining variables inzp[1]:53 [ initEntry::$15 ] +Uplifting [initEntry] best 5518 combination reg byte a [ initEntry::$15 ] +Attempting to uplift remaining variables inzp[1]:56 [ initEntry::$19 ] +Uplifting [initEntry] best 5514 combination reg byte a [ initEntry::$19 ] +Attempting to uplift remaining variables inzp[1]:57 [ initEntry::$21 ] +Uplifting [initEntry] best 5510 combination reg byte a [ initEntry::$21 ] +Attempting to uplift remaining variables inzp[1]:58 [ initEntry::$23 ] +Uplifting [initEntry] best 5506 combination reg byte a [ initEntry::$23 ] +Attempting to uplift remaining variables inzp[1]:59 [ initEntry::$25 ] +Uplifting [initEntry] best 5502 combination reg byte a [ initEntry::$25 ] Attempting to uplift remaining variables inzp[1]:9 [ initEntry::n#10 ] -Uplifting [initEntry] best 5481 combination reg byte x [ initEntry::n#10 ] +Uplifting [initEntry] best 5483 combination reg byte x [ initEntry::n#10 ] Coalescing zero page register [ zp[2]:3 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] ] with [ zp[2]:24 [ mul8u::return#2 ] ] - score: 1 Coalescing zero page register [ zp[2]:3 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 ] ] with [ zp[2]:30 [ mul8u::return#3 ] ] - score: 1 Coalescing zero page register [ zp[2]:14 [ printEntry::entry#10 printEntry::entry#0 printEntry::entry#1 ] ] with [ zp[2]:28 [ main::entry1#0 ] ] - score: 1 @@ -5010,7 +5012,7 @@ Coalescing zero page register [ zp[2]:7 [ initEntry::entry#10 initEntry::entry#1 Coalescing zero page register [ zp[2]:12 [ print_line_cursor#33 print_line_cursor#65 print_line_cursor#155 print_line_cursor#156 print_line_cursor#157 print_line_cursor#158 print_line_cursor#159 print_line_cursor#160 print_line_cursor#161 print_line_cursor#162 print_line_cursor#163 print_line_cursor#164 print_line_cursor#165 print_line_cursor#166 print_line_cursor#167 print_line_cursor#168 print_line_cursor#169 print_line_cursor#170 print_line_cursor#171 print_line_cursor#173 ] ] with [ zp[2]:10 [ print_str::str#18 print_str::str#21 print_str::str#0 ] ] Coalescing zero page register [ zp[2]:19 [ print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 ] ] with [ zp[2]:16 [ memset::dst#2 memset::dst#1 ] ] Coalescing zero page register [ zp[2]:41 [ initEntry::$1 ] ] with [ zp[2]:21 [ print_uint::w#5 print_uint::w#7 print_uint::w#8 print_uint::w#2 print_uint::w#10 print_uint::w#4 ] ] -Coalescing zero page register [ zp[2]:59 [ print_line_cursor#0 ] ] with [ zp[2]:43 [ initEntry::$3 ] ] +Coalescing zero page register [ zp[2]:60 [ print_line_cursor#0 ] ] with [ zp[2]:43 [ initEntry::$3 ] ] Coalescing zero page register [ zp[2]:12 [ print_line_cursor#33 print_line_cursor#65 print_line_cursor#155 print_line_cursor#156 print_line_cursor#157 print_line_cursor#158 print_line_cursor#159 print_line_cursor#160 print_line_cursor#161 print_line_cursor#162 print_line_cursor#163 print_line_cursor#164 print_line_cursor#165 print_line_cursor#166 print_line_cursor#167 print_line_cursor#168 print_line_cursor#169 print_line_cursor#170 print_line_cursor#171 print_line_cursor#173 print_str::str#18 print_str::str#21 print_str::str#0 ] ] with [ zp[2]:7 [ initEntry::entry#10 initEntry::entry#1 initEntry::entry#0 mul8u::mb#2 mul8u::mb#1 ] ] Coalescing zero page register [ zp[2]:45 [ initEntry::$5 ] ] with [ zp[2]:19 [ print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 memset::dst#2 memset::dst#1 ] ] Allocated (was zp[2]:3) zp[2]:2 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 mul8u::return#3 main::fileEntry1_$0 main::fileEntry2_$0 main::entry2#0 ] @@ -5018,9 +5020,9 @@ Allocated (was zp[2]:12) zp[2]:4 [ print_line_cursor#33 print_line_cursor#65 pri Allocated (was zp[2]:14) zp[2]:6 [ printEntry::entry#10 printEntry::entry#0 printEntry::entry#1 main::entry1#0 ] Allocated (was zp[2]:41) zp[2]:8 [ initEntry::$1 print_uint::w#5 print_uint::w#7 print_uint::w#8 print_uint::w#2 print_uint::w#10 print_uint::w#4 ] Allocated (was zp[2]:45) zp[2]:10 [ initEntry::$5 print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 memset::dst#2 memset::dst#1 ] -Allocated (was zp[2]:47) zp[2]:12 [ initEntry::$7 ] -Allocated (was zp[2]:53) zp[2]:14 [ initEntry::$17 ] -Allocated (was zp[2]:59) zp[2]:16 [ print_line_cursor#0 initEntry::$3 ] +Allocated (was zp[2]:48) zp[2]:12 [ initEntry::$7 ] +Allocated (was zp[2]:54) zp[2]:14 [ initEntry::$17 ] +Allocated (was zp[2]:60) zp[2]:16 [ print_line_cursor#0 initEntry::$3 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments @@ -5163,7 +5165,7 @@ main: { // main::@9 __b9: // [17] call print_cls - // [115] phi from main::@9 to print_cls [phi:main::@9->print_cls] + // [116] phi from main::@9 to print_cls [phi:main::@9->print_cls] print_cls_from___b9: jsr print_cls // [18] phi from main::@9 to main::@10 [phi:main::@9->main::@10] @@ -5172,14 +5174,14 @@ main: { // main::@10 __b10: // [19] call print_str - // [118] phi from main::@10 to print_str [phi:main::@10->print_str] + // [119] phi from main::@10 to print_str [phi:main::@10->print_str] print_str_from___b10: - // [118] phi print_char_cursor#167 = print_screen#0 [phi:main::@10->print_str#0] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_screen#0 [phi:main::@10->print_str#0] -- pbuz1=pbuc1 lda #print_screen sta.z print_char_cursor+1 - // [118] phi print_str::str#21 = main::str [phi:main::@10->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_str::str#21 = main::str [phi:main::@10->print_str#1] -- pbuz1=pbuc1 lda #str @@ -5191,10 +5193,10 @@ main: { // main::@11 __b11: // [21] call print_ln - // [125] phi from main::@11 to print_ln [phi:main::@11->print_ln] + // [126] phi from main::@11 to print_ln [phi:main::@11->print_ln] print_ln_from___b11: - // [125] phi print_char_cursor#146 = print_char_cursor#1 [phi:main::@11->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_screen#0 [phi:main::@11->print_ln#1] -- pbuz1=pbuc1 + // [126] phi print_char_cursor#146 = print_char_cursor#1 [phi:main::@11->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_screen#0 [phi:main::@11->print_ln#1] -- pbuz1=pbuc1 lda #print_screen @@ -5214,19 +5216,19 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [24] call print_ln - // [125] phi from main::@12 to print_ln [phi:main::@12->print_ln] + // [126] phi from main::@12 to print_ln [phi:main::@12->print_ln] print_ln_from___b12: - // [125] phi print_char_cursor#146 = print_char_cursor#227 [phi:main::@12->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#155 [phi:main::@12->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#227 [phi:main::@12->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#155 [phi:main::@12->print_ln#1] -- register_copy jsr print_ln jmp __b13 // main::@13 __b13: // [25] printEntry::entry#0 = main::entry1#0 // [26] call printEntry - // [131] phi from main::@13 to printEntry [phi:main::@13->printEntry] + // [132] phi from main::@13 to printEntry [phi:main::@13->printEntry] printEntry_from___b13: - // [131] phi printEntry::entry#10 = printEntry::entry#0 [phi:main::@13->printEntry#0] -- register_copy + // [132] phi printEntry::entry#10 = printEntry::entry#0 [phi:main::@13->printEntry#0] -- register_copy jsr printEntry jmp __b14 // main::@14 @@ -5242,10 +5244,10 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [29] call print_ln - // [125] phi from main::@14 to print_ln [phi:main::@14->print_ln] + // [126] phi from main::@14 to print_ln [phi:main::@14->print_ln] print_ln_from___b14: - // [125] phi print_char_cursor#146 = print_char_cursor#228 [phi:main::@14->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#156 [phi:main::@14->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#228 [phi:main::@14->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#156 [phi:main::@14->print_ln#1] -- register_copy jsr print_ln jmp __b15 // main::@15 @@ -5256,10 +5258,10 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [31] call print_str - // [118] phi from main::@15 to print_str [phi:main::@15->print_str] + // [119] phi from main::@15 to print_str [phi:main::@15->print_str] print_str_from___b15: - // [118] phi print_char_cursor#167 = print_char_cursor#209 [phi:main::@15->print_str#0] -- register_copy - // [118] phi print_str::str#21 = main::str1 [phi:main::@15->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_char_cursor#209 [phi:main::@15->print_str#0] -- register_copy + // [119] phi print_str::str#21 = main::str1 [phi:main::@15->print_str#1] -- pbuz1=pbuc1 lda #str1 @@ -5272,7 +5274,7 @@ main: { // main::@1 __b1: // [33] call keyboard_key_pressed - // [224] phi from main::@1 to keyboard_key_pressed [phi:main::@1->keyboard_key_pressed] + // [225] phi from main::@1 to keyboard_key_pressed [phi:main::@1->keyboard_key_pressed] keyboard_key_pressed_from___b1: jsr keyboard_key_pressed // [34] keyboard_key_pressed::return#2 = keyboard_key_pressed::return#0 @@ -5289,7 +5291,7 @@ main: { // main::@2 __b2: // [38] call print_cls - // [115] phi from main::@2 to print_cls [phi:main::@2->print_cls] + // [116] phi from main::@2 to print_cls [phi:main::@2->print_cls] print_cls_from___b2: jsr print_cls // [39] phi from main::@2 to main::@17 [phi:main::@2->main::@17] @@ -5298,14 +5300,14 @@ main: { // main::@17 __b17: // [40] call print_str - // [118] phi from main::@17 to print_str [phi:main::@17->print_str] + // [119] phi from main::@17 to print_str [phi:main::@17->print_str] print_str_from___b17: - // [118] phi print_char_cursor#167 = print_screen#0 [phi:main::@17->print_str#0] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_screen#0 [phi:main::@17->print_str#0] -- pbuz1=pbuc1 lda #print_screen sta.z print_char_cursor+1 - // [118] phi print_str::str#21 = main::str2 [phi:main::@17->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_str::str#21 = main::str2 [phi:main::@17->print_str#1] -- pbuz1=pbuc1 lda #str2 @@ -5317,10 +5319,10 @@ main: { // main::@18 __b18: // [42] call print_ln - // [125] phi from main::@18 to print_ln [phi:main::@18->print_ln] + // [126] phi from main::@18 to print_ln [phi:main::@18->print_ln] print_ln_from___b18: - // [125] phi print_char_cursor#146 = print_char_cursor#1 [phi:main::@18->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_screen#0 [phi:main::@18->print_ln#1] -- pbuz1=pbuc1 + // [126] phi print_char_cursor#146 = print_char_cursor#1 [phi:main::@18->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_screen#0 [phi:main::@18->print_ln#1] -- pbuz1=pbuc1 lda #print_screen @@ -5340,10 +5342,10 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [45] call print_ln - // [125] phi from main::@19 to print_ln [phi:main::@19->print_ln] + // [126] phi from main::@19 to print_ln [phi:main::@19->print_ln] print_ln_from___b19: - // [125] phi print_char_cursor#146 = print_char_cursor#230 [phi:main::@19->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#157 [phi:main::@19->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#230 [phi:main::@19->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#157 [phi:main::@19->print_ln#1] -- register_copy jsr print_ln jmp __b20 // main::@20 @@ -5354,9 +5356,9 @@ main: { lda.z entry2+1 sta.z printEntry.entry+1 // [47] call printEntry - // [131] phi from main::@20 to printEntry [phi:main::@20->printEntry] + // [132] phi from main::@20 to printEntry [phi:main::@20->printEntry] printEntry_from___b20: - // [131] phi printEntry::entry#10 = printEntry::entry#1 [phi:main::@20->printEntry#0] -- register_copy + // [132] phi printEntry::entry#10 = printEntry::entry#1 [phi:main::@20->printEntry#0] -- register_copy jsr printEntry jmp __b21 // main::@21 @@ -5372,10 +5374,10 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [50] call print_ln - // [125] phi from main::@21 to print_ln [phi:main::@21->print_ln] + // [126] phi from main::@21 to print_ln [phi:main::@21->print_ln] print_ln_from___b21: - // [125] phi print_char_cursor#146 = print_char_cursor#231 [phi:main::@21->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#158 [phi:main::@21->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#231 [phi:main::@21->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#158 [phi:main::@21->print_ln#1] -- register_copy jsr print_ln jmp __b22 // main::@22 @@ -5386,10 +5388,10 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [52] call print_str - // [118] phi from main::@22 to print_str [phi:main::@22->print_str] + // [119] phi from main::@22 to print_str [phi:main::@22->print_str] print_str_from___b22: - // [118] phi print_char_cursor#167 = print_char_cursor#210 [phi:main::@22->print_str#0] -- register_copy - // [118] phi print_str::str#21 = main::str1 [phi:main::@22->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_char_cursor#210 [phi:main::@22->print_str#0] -- register_copy + // [119] phi print_str::str#21 = main::str1 [phi:main::@22->print_str#1] -- pbuz1=pbuc1 lda #str1 @@ -5402,7 +5404,7 @@ main: { // main::@3 __b3: // [54] call keyboard_key_pressed - // [224] phi from main::@3 to keyboard_key_pressed [phi:main::@3->keyboard_key_pressed] + // [225] phi from main::@3 to keyboard_key_pressed [phi:main::@3->keyboard_key_pressed] keyboard_key_pressed_from___b3: jsr keyboard_key_pressed // [55] keyboard_key_pressed::return#3 = keyboard_key_pressed::return#0 @@ -5419,7 +5421,7 @@ main: { // main::@4 __b4: // [59] call print_cls - // [115] phi from main::@4 to print_cls [phi:main::@4->print_cls] + // [116] phi from main::@4 to print_cls [phi:main::@4->print_cls] print_cls_from___b4: jsr print_cls jmp __breturn @@ -5543,7 +5545,7 @@ initEntry: { jmp __b1 // initEntry::@1 __b1: - // [76] initEntry::$1 = $1111 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx + // [76] initEntry::$1 = (byte*) 4369 + initEntry::n#10 -- pbuz1=pbuc1_plus_vbuxx txa clc adc #<$1111 @@ -5551,7 +5553,7 @@ initEntry: { lda #>$1111 adc #0 sta.z __1+1 - // [77] *((byte**)initEntry::entry#10) = (byte*)initEntry::$1 -- _deref_qbuz1=pbuz2 + // [77] *((byte**)initEntry::entry#10) = initEntry::$1 -- _deref_qbuz1=pbuz2 ldy #0 lda.z __1 sta (entry),y @@ -5566,7 +5568,7 @@ initEntry: { jmp __b2 // initEntry::@2 __b2: - // [79] initEntry::$3 = $2222 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx + // [79] initEntry::$3 = (byte*) 8738 + initEntry::n#10 -- pbuz1=pbuc1_plus_vbuxx txa clc adc #<$2222 @@ -5574,7 +5576,7 @@ initEntry: { lda #>$2222 adc #0 sta.z __3+1 - // [80] ((byte**)initEntry::entry#10)[2] = (byte*)initEntry::$3 -- qbuz1_derefidx_vbuc1=pbuz2 + // [80] ((byte**)initEntry::entry#10)[2] = initEntry::$3 -- qbuz1_derefidx_vbuc1=pbuz2 ldy #2 lda.z __3 sta (entry),y @@ -5612,22 +5614,24 @@ initEntry: { jmp __b4 // initEntry::@4 __b4: - // [85] initEntry::$7 = $4444 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx + // [85] initEntry::$26 = initEntry::n#10 << 1 -- vbuaa=vbuxx_rol_1 txa + asl + // [86] initEntry::$7 = (word*) 17476 + initEntry::$26 -- pwuz1=pwuc1_plus_vbuaa clc adc #<$4444 sta.z __7 lda #>$4444 adc #0 sta.z __7+1 - // [86] ((word**)initEntry::entry#10)[6] = (word*)initEntry::$7 -- qwuz1_derefidx_vbuc1=pwuz2 + // [87] ((word**)initEntry::entry#10)[6] = initEntry::$7 -- qwuz1_derefidx_vbuc1=pwuz2 ldy #6 lda.z __7 sta (entry),y iny lda.z __7+1 sta (entry),y - // [87] phi from initEntry::@4 to initEntry::entryTLastLink1 [phi:initEntry::@4->initEntry::entryTLastLink1] + // [88] phi from initEntry::@4 to initEntry::entryTLastLink1 [phi:initEntry::@4->initEntry::entryTLastLink1] entryTLastLink1_from___b4: jmp entryTLastLink1 // initEntry::entryTLastLink1 @@ -5635,14 +5639,14 @@ initEntry: { jmp __b5 // initEntry::@5 __b5: - // [88] initEntry::$9 = $55 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [89] initEntry::$9 = $55 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$55 - // [89] initEntry::entry#10[8] = initEntry::$9 -- pbuz1_derefidx_vbuc1=vbuaa + // [90] initEntry::entry#10[8] = initEntry::$9 -- pbuz1_derefidx_vbuc1=vbuaa ldy #8 sta (entry),y - // [90] phi from initEntry::@5 to initEntry::entrySLastLink1 [phi:initEntry::@5->initEntry::entrySLastLink1] + // [91] phi from initEntry::@5 to initEntry::entrySLastLink1 [phi:initEntry::@5->initEntry::entrySLastLink1] entrySLastLink1_from___b5: jmp entrySLastLink1 // initEntry::entrySLastLink1 @@ -5650,14 +5654,14 @@ initEntry: { jmp __b6 // initEntry::@6 __b6: - // [91] initEntry::$11 = $66 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [92] initEntry::$11 = $66 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$66 - // [92] initEntry::entry#10[9] = initEntry::$11 -- pbuz1_derefidx_vbuc1=vbuaa + // [93] initEntry::entry#10[9] = initEntry::$11 -- pbuz1_derefidx_vbuc1=vbuaa ldy #9 sta (entry),y - // [93] phi from initEntry::@6 to initEntry::entryBFlag1 [phi:initEntry::@6->initEntry::entryBFlag1] + // [94] phi from initEntry::@6 to initEntry::entryBFlag1 [phi:initEntry::@6->initEntry::entryBFlag1] entryBFlag1_from___b6: jmp entryBFlag1 // initEntry::entryBFlag1 @@ -5665,14 +5669,14 @@ initEntry: { jmp __b7 // initEntry::@7 __b7: - // [94] initEntry::$13 = $77 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [95] initEntry::$13 = $77 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$77 - // [95] initEntry::entry#10[$a] = initEntry::$13 -- pbuz1_derefidx_vbuc1=vbuaa + // [96] initEntry::entry#10[$a] = initEntry::$13 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$a sta (entry),y - // [96] phi from initEntry::@7 to initEntry::entryBError1 [phi:initEntry::@7->initEntry::entryBError1] + // [97] phi from initEntry::@7 to initEntry::entryBError1 [phi:initEntry::@7->initEntry::entryBError1] entryBError1_from___b7: jmp entryBError1 // initEntry::entryBError1 @@ -5680,14 +5684,14 @@ initEntry: { jmp __b8 // initEntry::@8 __b8: - // [97] initEntry::$15 = $88 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [98] initEntry::$15 = $88 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$88 - // [98] initEntry::entry#10[$b] = initEntry::$15 -- pbuz1_derefidx_vbuc1=vbuaa + // [99] initEntry::entry#10[$b] = initEntry::$15 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$b sta (entry),y - // [99] phi from initEntry::@8 to initEntry::entryUCross1 [phi:initEntry::@8->initEntry::entryUCross1] + // [100] phi from initEntry::@8 to initEntry::entryUCross1 [phi:initEntry::@8->initEntry::entryUCross1] entryUCross1_from___b8: jmp entryUCross1 // initEntry::entryUCross1 @@ -5695,7 +5699,7 @@ initEntry: { jmp __b9 // initEntry::@9 __b9: - // [100] initEntry::$17 = $9999 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx + // [101] initEntry::$17 = $9999 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx txa clc adc #<$9999 @@ -5703,14 +5707,14 @@ initEntry: { lda #>$9999 adc #0 sta.z __17+1 - // [101] ((word*)initEntry::entry#10)[$c] = initEntry::$17 -- pwuz1_derefidx_vbuc1=vwuz2 + // [102] ((word*)initEntry::entry#10)[$c] = initEntry::$17 -- pwuz1_derefidx_vbuc1=vwuz2 ldy #$c lda.z __17 sta (entry),y iny lda.z __17+1 sta (entry),y - // [102] phi from initEntry::@9 to initEntry::entryBAddrLo1 [phi:initEntry::@9->initEntry::entryBAddrLo1] + // [103] phi from initEntry::@9 to initEntry::entryBAddrLo1 [phi:initEntry::@9->initEntry::entryBAddrLo1] entryBAddrLo1_from___b9: jmp entryBAddrLo1 // initEntry::entryBAddrLo1 @@ -5718,14 +5722,14 @@ initEntry: { jmp __b10 // initEntry::@10 __b10: - // [103] initEntry::$19 = $aa + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [104] initEntry::$19 = $aa + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$aa - // [104] initEntry::entry#10[$e] = initEntry::$19 -- pbuz1_derefidx_vbuc1=vbuaa + // [105] initEntry::entry#10[$e] = initEntry::$19 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$e sta (entry),y - // [105] phi from initEntry::@10 to initEntry::entryBAddrHi1 [phi:initEntry::@10->initEntry::entryBAddrHi1] + // [106] phi from initEntry::@10 to initEntry::entryBAddrHi1 [phi:initEntry::@10->initEntry::entryBAddrHi1] entryBAddrHi1_from___b10: jmp entryBAddrHi1 // initEntry::entryBAddrHi1 @@ -5733,14 +5737,14 @@ initEntry: { jmp __b11 // initEntry::@11 __b11: - // [106] initEntry::$21 = $bb + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [107] initEntry::$21 = $bb + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$bb - // [107] initEntry::entry#10[$f] = initEntry::$21 -- pbuz1_derefidx_vbuc1=vbuaa + // [108] initEntry::entry#10[$f] = initEntry::$21 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$f sta (entry),y - // [108] phi from initEntry::@11 to initEntry::entryTHi1 [phi:initEntry::@11->initEntry::entryTHi1] + // [109] phi from initEntry::@11 to initEntry::entryTHi1 [phi:initEntry::@11->initEntry::entryTHi1] entryTHi1_from___b11: jmp entryTHi1 // initEntry::entryTHi1 @@ -5748,14 +5752,14 @@ initEntry: { jmp __b12 // initEntry::@12 __b12: - // [109] initEntry::$23 = $cc + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [110] initEntry::$23 = $cc + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$cc - // [110] initEntry::entry#10[$10] = initEntry::$23 -- pbuz1_derefidx_vbuc1=vbuaa + // [111] initEntry::entry#10[$10] = initEntry::$23 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$10 sta (entry),y - // [111] phi from initEntry::@12 to initEntry::entryTLo1 [phi:initEntry::@12->initEntry::entryTLo1] + // [112] phi from initEntry::@12 to initEntry::entryTLo1 [phi:initEntry::@12->initEntry::entryTLo1] entryTLo1_from___b12: jmp entryTLo1 // initEntry::entryTLo1 @@ -5763,30 +5767,30 @@ initEntry: { jmp __b13 // initEntry::@13 __b13: - // [112] initEntry::$25 = $dd + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [113] initEntry::$25 = $dd + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$dd - // [113] initEntry::entry#10[$11] = initEntry::$25 -- pbuz1_derefidx_vbuc1=vbuaa + // [114] initEntry::entry#10[$11] = initEntry::$25 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$11 sta (entry),y jmp __breturn // initEntry::@return __breturn: - // [114] return + // [115] return rts } // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [116] call memset - // [230] phi from print_cls to memset [phi:print_cls->memset] + // [117] call memset + // [231] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset jmp __breturn // print_cls::@return __breturn: - // [117] return + // [118] return rts } // print_str @@ -5794,15 +5798,15 @@ print_cls: { // print_str(byte* zp(4) str) print_str: { .label str = 4 - // [119] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] + // [120] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] __b1_from_print_str: __b1_from___b3: - // [119] phi print_char_cursor#1 = print_char_cursor#167 [phi:print_str/print_str::@3->print_str::@1#0] -- register_copy - // [119] phi print_str::str#18 = print_str::str#21 [phi:print_str/print_str::@3->print_str::@1#1] -- register_copy + // [120] phi print_char_cursor#1 = print_char_cursor#167 [phi:print_str/print_str::@3->print_str::@1#0] -- register_copy + // [120] phi print_str::str#18 = print_str::str#21 [phi:print_str/print_str::@3->print_str::@1#1] -- register_copy jmp __b1 // print_str::@1 __b1: - // [120] if(0!=*print_str::str#18) goto print_str::@2 -- 0_neq__deref_pbuz1_then_la1 + // [121] if(0!=*print_str::str#18) goto print_str::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 @@ -5810,23 +5814,23 @@ print_str: { jmp __breturn // print_str::@return __breturn: - // [121] return + // [122] return rts // print_str::@2 __b2: - // [122] print_char::ch#0 = *print_str::str#18 -- vbuaa=_deref_pbuz1 + // [123] print_char::ch#0 = *print_str::str#18 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [123] call print_char - // [236] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] + // [124] call print_char + // [237] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] print_char_from___b2: - // [236] phi print_char_cursor#83 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy - // [236] phi print_char::ch#3 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy + // [237] phi print_char_cursor#83 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy + // [237] phi print_char::ch#3 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy jsr print_char jmp __b3 // print_str::@3 __b3: - // [124] print_str::str#0 = ++ print_str::str#18 -- pbuz1=_inc_pbuz1 + // [125] print_str::str#0 = ++ print_str::str#18 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 @@ -5836,14 +5840,14 @@ print_str: { // print_ln // Print a newline print_ln: { - // [126] phi from print_ln print_ln::@2 to print_ln::@1 [phi:print_ln/print_ln::@2->print_ln::@1] + // [127] phi from print_ln print_ln::@2 to print_ln::@1 [phi:print_ln/print_ln::@2->print_ln::@1] __b1_from_print_ln: __b1_from___b2: - // [126] phi print_line_cursor#33 = print_line_cursor#65 [phi:print_ln/print_ln::@2->print_ln::@1#0] -- register_copy + // [127] phi print_line_cursor#33 = print_line_cursor#65 [phi:print_ln/print_ln::@2->print_ln::@1#0] -- register_copy jmp __b1 // print_ln::@1 __b1: - // [127] print_line_cursor#0 = print_line_cursor#33 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [128] print_line_cursor#0 = print_line_cursor#33 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z print_line_cursor_1 @@ -5851,7 +5855,7 @@ print_ln: { lda #0 adc.z print_line_cursor_1+1 sta.z print_line_cursor+1 - // [128] if(print_line_cursor#0print_str] + // [134] call print_str + // [119] phi from printEntry to print_str [phi:printEntry->print_str] print_str_from_printEntry: - // [118] phi print_char_cursor#167 = print_char_cursor#211 [phi:printEntry->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str [phi:printEntry->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_char_cursor#211 [phi:printEntry->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str [phi:printEntry->print_str#1] -- pbuz1=pbuc1 lda #str sta.z print_str.str+1 jsr print_str - // [134] phi from printEntry to printEntry::entryBufDisk1 [phi:printEntry->printEntry::entryBufDisk1] + // [135] phi from printEntry to printEntry::entryBufDisk1 [phi:printEntry->printEntry::entryBufDisk1] entryBufDisk1_from_printEntry: jmp entryBufDisk1 // printEntry::entryBufDisk1 @@ -5902,51 +5906,51 @@ printEntry: { jmp __b1 // printEntry::@1 __b1: - // [135] print_uint::w#7 = (word)*((byte**)printEntry::entry#10) -- vwuz1=_deref_pwuz2 + // [136] print_uint::w#7 = (word)*((byte**)printEntry::entry#10) -- vwuz1=_deref_pwuz2 ldy #0 lda (entry),y sta.z print_uint.w iny lda (entry),y sta.z print_uint.w+1 - // [136] call print_uint - // [240] phi from printEntry::@1 to print_uint [phi:printEntry::@1->print_uint] + // [137] call print_uint + // [241] phi from printEntry::@1 to print_uint [phi:printEntry::@1->print_uint] print_uint_from___b1: - // [240] phi print_uint::w#5 = print_uint::w#7 [phi:printEntry::@1->print_uint#0] -- register_copy + // [241] phi print_uint::w#5 = print_uint::w#7 [phi:printEntry::@1->print_uint#0] -- register_copy jsr print_uint jmp __b14 // printEntry::@14 __b14: - // [137] print_line_cursor#159 = print_line_cursor#0 -- pbuz1=pbuz2 + // [138] print_line_cursor#159 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [138] call print_ln - // [125] phi from printEntry::@14 to print_ln [phi:printEntry::@14->print_ln] + // [139] call print_ln + // [126] phi from printEntry::@14 to print_ln [phi:printEntry::@14->print_ln] print_ln_from___b14: - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@14->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#159 [phi:printEntry::@14->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@14->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#159 [phi:printEntry::@14->print_ln#1] -- register_copy jsr print_ln jmp __b15 // printEntry::@15 __b15: - // [139] print_char_cursor#212 = print_line_cursor#0 -- pbuz1=pbuz2 + // [140] print_char_cursor#212 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [140] call print_str - // [118] phi from printEntry::@15 to print_str [phi:printEntry::@15->print_str] + // [141] call print_str + // [119] phi from printEntry::@15 to print_str [phi:printEntry::@15->print_str] print_str_from___b15: - // [118] phi print_char_cursor#167 = print_char_cursor#212 [phi:printEntry::@15->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str1 [phi:printEntry::@15->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_char_cursor#212 [phi:printEntry::@15->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str1 [phi:printEntry::@15->print_str#1] -- pbuz1=pbuc1 lda #str1 sta.z print_str.str+1 jsr print_str - // [141] phi from printEntry::@15 to printEntry::entryBufEdit1 [phi:printEntry::@15->printEntry::entryBufEdit1] + // [142] phi from printEntry::@15 to printEntry::entryBufEdit1 [phi:printEntry::@15->printEntry::entryBufEdit1] entryBufEdit1_from___b15: jmp entryBufEdit1 // printEntry::entryBufEdit1 @@ -5954,51 +5958,51 @@ printEntry: { jmp __b2 // printEntry::@2 __b2: - // [142] print_uint::w#8 = (word)((byte**)printEntry::entry#10)[2] -- vwuz1=pwuz2_derefidx_vbuc1 + // [143] print_uint::w#8 = (word)((byte**)printEntry::entry#10)[2] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #2 lda (entry),y sta.z print_uint.w iny lda (entry),y sta.z print_uint.w+1 - // [143] call print_uint - // [240] phi from printEntry::@2 to print_uint [phi:printEntry::@2->print_uint] + // [144] call print_uint + // [241] phi from printEntry::@2 to print_uint [phi:printEntry::@2->print_uint] print_uint_from___b2: - // [240] phi print_uint::w#5 = print_uint::w#8 [phi:printEntry::@2->print_uint#0] -- register_copy + // [241] phi print_uint::w#5 = print_uint::w#8 [phi:printEntry::@2->print_uint#0] -- register_copy jsr print_uint jmp __b16 // printEntry::@16 __b16: - // [144] print_line_cursor#160 = print_line_cursor#0 -- pbuz1=pbuz2 + // [145] print_line_cursor#160 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [145] call print_ln - // [125] phi from printEntry::@16 to print_ln [phi:printEntry::@16->print_ln] + // [146] call print_ln + // [126] phi from printEntry::@16 to print_ln [phi:printEntry::@16->print_ln] print_ln_from___b16: - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@16->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#160 [phi:printEntry::@16->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@16->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#160 [phi:printEntry::@16->print_ln#1] -- register_copy jsr print_ln jmp __b17 // printEntry::@17 __b17: - // [146] print_char_cursor#213 = print_line_cursor#0 -- pbuz1=pbuz2 + // [147] print_char_cursor#213 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [147] call print_str - // [118] phi from printEntry::@17 to print_str [phi:printEntry::@17->print_str] + // [148] call print_str + // [119] phi from printEntry::@17 to print_str [phi:printEntry::@17->print_str] print_str_from___b17: - // [118] phi print_char_cursor#167 = print_char_cursor#213 [phi:printEntry::@17->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str2 [phi:printEntry::@17->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_char_cursor#213 [phi:printEntry::@17->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str2 [phi:printEntry::@17->print_str#1] -- pbuz1=pbuc1 lda #str2 sta.z print_str.str+1 jsr print_str - // [148] phi from printEntry::@17 to printEntry::entryTsLen1 [phi:printEntry::@17->printEntry::entryTsLen1] + // [149] phi from printEntry::@17 to printEntry::entryTsLen1 [phi:printEntry::@17->printEntry::entryTsLen1] entryTsLen1_from___b17: jmp entryTsLen1 // printEntry::entryTsLen1 @@ -6006,51 +6010,51 @@ printEntry: { jmp __b3 // printEntry::@3 __b3: - // [149] print_uint::w#2 = ((word*)printEntry::entry#10)[4] -- vwuz1=pwuz2_derefidx_vbuc1 + // [150] print_uint::w#2 = ((word*)printEntry::entry#10)[4] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #4 lda (entry),y sta.z print_uint.w iny lda (entry),y sta.z print_uint.w+1 - // [150] call print_uint - // [240] phi from printEntry::@3 to print_uint [phi:printEntry::@3->print_uint] + // [151] call print_uint + // [241] phi from printEntry::@3 to print_uint [phi:printEntry::@3->print_uint] print_uint_from___b3: - // [240] phi print_uint::w#5 = print_uint::w#2 [phi:printEntry::@3->print_uint#0] -- register_copy + // [241] phi print_uint::w#5 = print_uint::w#2 [phi:printEntry::@3->print_uint#0] -- register_copy jsr print_uint jmp __b18 // printEntry::@18 __b18: - // [151] print_line_cursor#161 = print_line_cursor#0 -- pbuz1=pbuz2 + // [152] print_line_cursor#161 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [152] call print_ln - // [125] phi from printEntry::@18 to print_ln [phi:printEntry::@18->print_ln] + // [153] call print_ln + // [126] phi from printEntry::@18 to print_ln [phi:printEntry::@18->print_ln] print_ln_from___b18: - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@18->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#161 [phi:printEntry::@18->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@18->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#161 [phi:printEntry::@18->print_ln#1] -- register_copy jsr print_ln jmp __b19 // printEntry::@19 __b19: - // [153] print_char_cursor#214 = print_line_cursor#0 -- pbuz1=pbuz2 + // [154] print_char_cursor#214 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [154] call print_str - // [118] phi from printEntry::@19 to print_str [phi:printEntry::@19->print_str] + // [155] call print_str + // [119] phi from printEntry::@19 to print_str [phi:printEntry::@19->print_str] print_str_from___b19: - // [118] phi print_char_cursor#167 = print_char_cursor#214 [phi:printEntry::@19->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str3 [phi:printEntry::@19->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_char_cursor#214 [phi:printEntry::@19->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str3 [phi:printEntry::@19->print_str#1] -- pbuz1=pbuc1 lda #str3 sta.z print_str.str+1 jsr print_str - // [155] phi from printEntry::@19 to printEntry::entryTsOrder1 [phi:printEntry::@19->printEntry::entryTsOrder1] + // [156] phi from printEntry::@19 to printEntry::entryTsOrder1 [phi:printEntry::@19->printEntry::entryTsOrder1] entryTsOrder1_from___b19: jmp entryTsOrder1 // printEntry::entryTsOrder1 @@ -6058,51 +6062,51 @@ printEntry: { jmp __b4 // printEntry::@4 __b4: - // [156] print_uint::w#10 = (word)((word**)printEntry::entry#10)[6] -- vwuz1=pwuz2_derefidx_vbuc1 + // [157] print_uint::w#10 = (word)((word**)printEntry::entry#10)[6] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #6 lda (entry),y sta.z print_uint.w iny lda (entry),y sta.z print_uint.w+1 - // [157] call print_uint - // [240] phi from printEntry::@4 to print_uint [phi:printEntry::@4->print_uint] + // [158] call print_uint + // [241] phi from printEntry::@4 to print_uint [phi:printEntry::@4->print_uint] print_uint_from___b4: - // [240] phi print_uint::w#5 = print_uint::w#10 [phi:printEntry::@4->print_uint#0] -- register_copy + // [241] phi print_uint::w#5 = print_uint::w#10 [phi:printEntry::@4->print_uint#0] -- register_copy jsr print_uint jmp __b20 // printEntry::@20 __b20: - // [158] print_line_cursor#162 = print_line_cursor#0 -- pbuz1=pbuz2 + // [159] print_line_cursor#162 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [159] call print_ln - // [125] phi from printEntry::@20 to print_ln [phi:printEntry::@20->print_ln] + // [160] call print_ln + // [126] phi from printEntry::@20 to print_ln [phi:printEntry::@20->print_ln] print_ln_from___b20: - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@20->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#162 [phi:printEntry::@20->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@20->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#162 [phi:printEntry::@20->print_ln#1] -- register_copy jsr print_ln jmp __b21 // printEntry::@21 __b21: - // [160] print_char_cursor#215 = print_line_cursor#0 -- pbuz1=pbuz2 + // [161] print_char_cursor#215 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [161] call print_str - // [118] phi from printEntry::@21 to print_str [phi:printEntry::@21->print_str] + // [162] call print_str + // [119] phi from printEntry::@21 to print_str [phi:printEntry::@21->print_str] print_str_from___b21: - // [118] phi print_char_cursor#167 = print_char_cursor#215 [phi:printEntry::@21->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str4 [phi:printEntry::@21->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_char_cursor#215 [phi:printEntry::@21->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str4 [phi:printEntry::@21->print_str#1] -- pbuz1=pbuc1 lda #str4 sta.z print_str.str+1 jsr print_str - // [162] phi from printEntry::@21 to printEntry::entryTLastLink1 [phi:printEntry::@21->printEntry::entryTLastLink1] + // [163] phi from printEntry::@21 to printEntry::entryTLastLink1 [phi:printEntry::@21->printEntry::entryTLastLink1] entryTLastLink1_from___b21: jmp entryTLastLink1 // printEntry::entryTLastLink1 @@ -6110,49 +6114,49 @@ printEntry: { jmp __b5 // printEntry::@5 __b5: - // [163] print_uchar::b#2 = printEntry::entry#10[8] -- vbuxx=pbuz1_derefidx_vbuc1 + // [164] print_uchar::b#2 = printEntry::entry#10[8] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #8 lda (entry),y tax - // [164] call print_uchar - // [246] phi from printEntry::@5 to print_uchar [phi:printEntry::@5->print_uchar] + // [165] call print_uchar + // [247] phi from printEntry::@5 to print_uchar [phi:printEntry::@5->print_uchar] print_uchar_from___b5: - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@5->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#2 [phi:printEntry::@5->print_uchar#1] -- register_copy + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@5->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#2 [phi:printEntry::@5->print_uchar#1] -- register_copy jsr print_uchar jmp __b22 // printEntry::@22 __b22: - // [165] print_line_cursor#163 = print_line_cursor#0 -- pbuz1=pbuz2 + // [166] print_line_cursor#163 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [166] call print_ln - // [125] phi from printEntry::@22 to print_ln [phi:printEntry::@22->print_ln] + // [167] call print_ln + // [126] phi from printEntry::@22 to print_ln [phi:printEntry::@22->print_ln] print_ln_from___b22: - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@22->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#163 [phi:printEntry::@22->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@22->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#163 [phi:printEntry::@22->print_ln#1] -- register_copy jsr print_ln jmp __b23 // printEntry::@23 __b23: - // [167] print_char_cursor#216 = print_line_cursor#0 -- pbuz1=pbuz2 + // [168] print_char_cursor#216 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [168] call print_str - // [118] phi from printEntry::@23 to print_str [phi:printEntry::@23->print_str] + // [169] call print_str + // [119] phi from printEntry::@23 to print_str [phi:printEntry::@23->print_str] print_str_from___b23: - // [118] phi print_char_cursor#167 = print_char_cursor#216 [phi:printEntry::@23->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str5 [phi:printEntry::@23->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_char_cursor#216 [phi:printEntry::@23->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str5 [phi:printEntry::@23->print_str#1] -- pbuz1=pbuc1 lda #str5 sta.z print_str.str+1 jsr print_str - // [169] phi from printEntry::@23 to printEntry::entrySLastLink1 [phi:printEntry::@23->printEntry::entrySLastLink1] + // [170] phi from printEntry::@23 to printEntry::entrySLastLink1 [phi:printEntry::@23->printEntry::entrySLastLink1] entrySLastLink1_from___b23: jmp entrySLastLink1 // printEntry::entrySLastLink1 @@ -6160,49 +6164,49 @@ printEntry: { jmp __b6 // printEntry::@6 __b6: - // [170] print_uchar::b#3 = printEntry::entry#10[9] -- vbuxx=pbuz1_derefidx_vbuc1 + // [171] print_uchar::b#3 = printEntry::entry#10[9] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #9 lda (entry),y tax - // [171] call print_uchar - // [246] phi from printEntry::@6 to print_uchar [phi:printEntry::@6->print_uchar] + // [172] call print_uchar + // [247] phi from printEntry::@6 to print_uchar [phi:printEntry::@6->print_uchar] print_uchar_from___b6: - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@6->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#3 [phi:printEntry::@6->print_uchar#1] -- register_copy + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@6->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#3 [phi:printEntry::@6->print_uchar#1] -- register_copy jsr print_uchar jmp __b24 // printEntry::@24 __b24: - // [172] print_line_cursor#164 = print_line_cursor#0 -- pbuz1=pbuz2 + // [173] print_line_cursor#164 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [173] call print_ln - // [125] phi from printEntry::@24 to print_ln [phi:printEntry::@24->print_ln] + // [174] call print_ln + // [126] phi from printEntry::@24 to print_ln [phi:printEntry::@24->print_ln] print_ln_from___b24: - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@24->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#164 [phi:printEntry::@24->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@24->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#164 [phi:printEntry::@24->print_ln#1] -- register_copy jsr print_ln jmp __b25 // printEntry::@25 __b25: - // [174] print_char_cursor#217 = print_line_cursor#0 -- pbuz1=pbuz2 + // [175] print_char_cursor#217 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [175] call print_str - // [118] phi from printEntry::@25 to print_str [phi:printEntry::@25->print_str] + // [176] call print_str + // [119] phi from printEntry::@25 to print_str [phi:printEntry::@25->print_str] print_str_from___b25: - // [118] phi print_char_cursor#167 = print_char_cursor#217 [phi:printEntry::@25->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str6 [phi:printEntry::@25->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_char_cursor#217 [phi:printEntry::@25->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str6 [phi:printEntry::@25->print_str#1] -- pbuz1=pbuc1 lda #str6 sta.z print_str.str+1 jsr print_str - // [176] phi from printEntry::@25 to printEntry::entryBFlag1 [phi:printEntry::@25->printEntry::entryBFlag1] + // [177] phi from printEntry::@25 to printEntry::entryBFlag1 [phi:printEntry::@25->printEntry::entryBFlag1] entryBFlag1_from___b25: jmp entryBFlag1 // printEntry::entryBFlag1 @@ -6210,49 +6214,49 @@ printEntry: { jmp __b7 // printEntry::@7 __b7: - // [177] print_uchar::b#4 = printEntry::entry#10[$a] -- vbuxx=pbuz1_derefidx_vbuc1 + // [178] print_uchar::b#4 = printEntry::entry#10[$a] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$a lda (entry),y tax - // [178] call print_uchar - // [246] phi from printEntry::@7 to print_uchar [phi:printEntry::@7->print_uchar] + // [179] call print_uchar + // [247] phi from printEntry::@7 to print_uchar [phi:printEntry::@7->print_uchar] print_uchar_from___b7: - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@7->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#4 [phi:printEntry::@7->print_uchar#1] -- register_copy + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@7->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#4 [phi:printEntry::@7->print_uchar#1] -- register_copy jsr print_uchar jmp __b26 // printEntry::@26 __b26: - // [179] print_line_cursor#165 = print_line_cursor#0 -- pbuz1=pbuz2 + // [180] print_line_cursor#165 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [180] call print_ln - // [125] phi from printEntry::@26 to print_ln [phi:printEntry::@26->print_ln] + // [181] call print_ln + // [126] phi from printEntry::@26 to print_ln [phi:printEntry::@26->print_ln] print_ln_from___b26: - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@26->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#165 [phi:printEntry::@26->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@26->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#165 [phi:printEntry::@26->print_ln#1] -- register_copy jsr print_ln jmp __b27 // printEntry::@27 __b27: - // [181] print_char_cursor#218 = print_line_cursor#0 -- pbuz1=pbuz2 + // [182] print_char_cursor#218 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [182] call print_str - // [118] phi from printEntry::@27 to print_str [phi:printEntry::@27->print_str] + // [183] call print_str + // [119] phi from printEntry::@27 to print_str [phi:printEntry::@27->print_str] print_str_from___b27: - // [118] phi print_char_cursor#167 = print_char_cursor#218 [phi:printEntry::@27->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str7 [phi:printEntry::@27->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_char_cursor#218 [phi:printEntry::@27->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str7 [phi:printEntry::@27->print_str#1] -- pbuz1=pbuc1 lda #str7 sta.z print_str.str+1 jsr print_str - // [183] phi from printEntry::@27 to printEntry::entryBError1 [phi:printEntry::@27->printEntry::entryBError1] + // [184] phi from printEntry::@27 to printEntry::entryBError1 [phi:printEntry::@27->printEntry::entryBError1] entryBError1_from___b27: jmp entryBError1 // printEntry::entryBError1 @@ -6260,49 +6264,49 @@ printEntry: { jmp __b8 // printEntry::@8 __b8: - // [184] print_uchar::b#5 = printEntry::entry#10[$b] -- vbuxx=pbuz1_derefidx_vbuc1 + // [185] print_uchar::b#5 = printEntry::entry#10[$b] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$b lda (entry),y tax - // [185] call print_uchar - // [246] phi from printEntry::@8 to print_uchar [phi:printEntry::@8->print_uchar] + // [186] call print_uchar + // [247] phi from printEntry::@8 to print_uchar [phi:printEntry::@8->print_uchar] print_uchar_from___b8: - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@8->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#5 [phi:printEntry::@8->print_uchar#1] -- register_copy + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@8->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#5 [phi:printEntry::@8->print_uchar#1] -- register_copy jsr print_uchar jmp __b28 // printEntry::@28 __b28: - // [186] print_line_cursor#166 = print_line_cursor#0 -- pbuz1=pbuz2 + // [187] print_line_cursor#166 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [187] call print_ln - // [125] phi from printEntry::@28 to print_ln [phi:printEntry::@28->print_ln] + // [188] call print_ln + // [126] phi from printEntry::@28 to print_ln [phi:printEntry::@28->print_ln] print_ln_from___b28: - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@28->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#166 [phi:printEntry::@28->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@28->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#166 [phi:printEntry::@28->print_ln#1] -- register_copy jsr print_ln jmp __b29 // printEntry::@29 __b29: - // [188] print_char_cursor#219 = print_line_cursor#0 -- pbuz1=pbuz2 + // [189] print_char_cursor#219 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [189] call print_str - // [118] phi from printEntry::@29 to print_str [phi:printEntry::@29->print_str] + // [190] call print_str + // [119] phi from printEntry::@29 to print_str [phi:printEntry::@29->print_str] print_str_from___b29: - // [118] phi print_char_cursor#167 = print_char_cursor#219 [phi:printEntry::@29->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str8 [phi:printEntry::@29->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_char_cursor#219 [phi:printEntry::@29->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str8 [phi:printEntry::@29->print_str#1] -- pbuz1=pbuc1 lda #str8 sta.z print_str.str+1 jsr print_str - // [190] phi from printEntry::@29 to printEntry::entryUCross1 [phi:printEntry::@29->printEntry::entryUCross1] + // [191] phi from printEntry::@29 to printEntry::entryUCross1 [phi:printEntry::@29->printEntry::entryUCross1] entryUCross1_from___b29: jmp entryUCross1 // printEntry::entryUCross1 @@ -6310,51 +6314,51 @@ printEntry: { jmp __b9 // printEntry::@9 __b9: - // [191] print_uint::w#4 = ((word*)printEntry::entry#10)[$c] -- vwuz1=pwuz2_derefidx_vbuc1 + // [192] print_uint::w#4 = ((word*)printEntry::entry#10)[$c] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #$c lda (entry),y sta.z print_uint.w iny lda (entry),y sta.z print_uint.w+1 - // [192] call print_uint - // [240] phi from printEntry::@9 to print_uint [phi:printEntry::@9->print_uint] + // [193] call print_uint + // [241] phi from printEntry::@9 to print_uint [phi:printEntry::@9->print_uint] print_uint_from___b9: - // [240] phi print_uint::w#5 = print_uint::w#4 [phi:printEntry::@9->print_uint#0] -- register_copy + // [241] phi print_uint::w#5 = print_uint::w#4 [phi:printEntry::@9->print_uint#0] -- register_copy jsr print_uint jmp __b30 // printEntry::@30 __b30: - // [193] print_line_cursor#167 = print_line_cursor#0 -- pbuz1=pbuz2 + // [194] print_line_cursor#167 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [194] call print_ln - // [125] phi from printEntry::@30 to print_ln [phi:printEntry::@30->print_ln] + // [195] call print_ln + // [126] phi from printEntry::@30 to print_ln [phi:printEntry::@30->print_ln] print_ln_from___b30: - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@30->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#167 [phi:printEntry::@30->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@30->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#167 [phi:printEntry::@30->print_ln#1] -- register_copy jsr print_ln jmp __b31 // printEntry::@31 __b31: - // [195] print_char_cursor#220 = print_line_cursor#0 -- pbuz1=pbuz2 + // [196] print_char_cursor#220 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [196] call print_str - // [118] phi from printEntry::@31 to print_str [phi:printEntry::@31->print_str] + // [197] call print_str + // [119] phi from printEntry::@31 to print_str [phi:printEntry::@31->print_str] print_str_from___b31: - // [118] phi print_char_cursor#167 = print_char_cursor#220 [phi:printEntry::@31->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str9 [phi:printEntry::@31->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_char_cursor#220 [phi:printEntry::@31->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str9 [phi:printEntry::@31->print_str#1] -- pbuz1=pbuc1 lda #str9 sta.z print_str.str+1 jsr print_str - // [197] phi from printEntry::@31 to printEntry::entryBAddrLo1 [phi:printEntry::@31->printEntry::entryBAddrLo1] + // [198] phi from printEntry::@31 to printEntry::entryBAddrLo1 [phi:printEntry::@31->printEntry::entryBAddrLo1] entryBAddrLo1_from___b31: jmp entryBAddrLo1 // printEntry::entryBAddrLo1 @@ -6362,49 +6366,49 @@ printEntry: { jmp __b10 // printEntry::@10 __b10: - // [198] print_uchar::b#6 = printEntry::entry#10[$e] -- vbuxx=pbuz1_derefidx_vbuc1 + // [199] print_uchar::b#6 = printEntry::entry#10[$e] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$e lda (entry),y tax - // [199] call print_uchar - // [246] phi from printEntry::@10 to print_uchar [phi:printEntry::@10->print_uchar] + // [200] call print_uchar + // [247] phi from printEntry::@10 to print_uchar [phi:printEntry::@10->print_uchar] print_uchar_from___b10: - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@10->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#6 [phi:printEntry::@10->print_uchar#1] -- register_copy + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@10->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#6 [phi:printEntry::@10->print_uchar#1] -- register_copy jsr print_uchar jmp __b32 // printEntry::@32 __b32: - // [200] print_line_cursor#168 = print_line_cursor#0 -- pbuz1=pbuz2 + // [201] print_line_cursor#168 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [201] call print_ln - // [125] phi from printEntry::@32 to print_ln [phi:printEntry::@32->print_ln] + // [202] call print_ln + // [126] phi from printEntry::@32 to print_ln [phi:printEntry::@32->print_ln] print_ln_from___b32: - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@32->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#168 [phi:printEntry::@32->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@32->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#168 [phi:printEntry::@32->print_ln#1] -- register_copy jsr print_ln jmp __b33 // printEntry::@33 __b33: - // [202] print_char_cursor#221 = print_line_cursor#0 -- pbuz1=pbuz2 + // [203] print_char_cursor#221 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [203] call print_str - // [118] phi from printEntry::@33 to print_str [phi:printEntry::@33->print_str] + // [204] call print_str + // [119] phi from printEntry::@33 to print_str [phi:printEntry::@33->print_str] print_str_from___b33: - // [118] phi print_char_cursor#167 = print_char_cursor#221 [phi:printEntry::@33->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str10 [phi:printEntry::@33->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_char_cursor#221 [phi:printEntry::@33->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str10 [phi:printEntry::@33->print_str#1] -- pbuz1=pbuc1 lda #str10 sta.z print_str.str+1 jsr print_str - // [204] phi from printEntry::@33 to printEntry::entryBAddrHi1 [phi:printEntry::@33->printEntry::entryBAddrHi1] + // [205] phi from printEntry::@33 to printEntry::entryBAddrHi1 [phi:printEntry::@33->printEntry::entryBAddrHi1] entryBAddrHi1_from___b33: jmp entryBAddrHi1 // printEntry::entryBAddrHi1 @@ -6412,49 +6416,49 @@ printEntry: { jmp __b11 // printEntry::@11 __b11: - // [205] print_uchar::b#7 = printEntry::entry#10[$f] -- vbuxx=pbuz1_derefidx_vbuc1 + // [206] print_uchar::b#7 = printEntry::entry#10[$f] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$f lda (entry),y tax - // [206] call print_uchar - // [246] phi from printEntry::@11 to print_uchar [phi:printEntry::@11->print_uchar] + // [207] call print_uchar + // [247] phi from printEntry::@11 to print_uchar [phi:printEntry::@11->print_uchar] print_uchar_from___b11: - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@11->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#7 [phi:printEntry::@11->print_uchar#1] -- register_copy + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@11->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#7 [phi:printEntry::@11->print_uchar#1] -- register_copy jsr print_uchar jmp __b34 // printEntry::@34 __b34: - // [207] print_line_cursor#169 = print_line_cursor#0 -- pbuz1=pbuz2 + // [208] print_line_cursor#169 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [208] call print_ln - // [125] phi from printEntry::@34 to print_ln [phi:printEntry::@34->print_ln] + // [209] call print_ln + // [126] phi from printEntry::@34 to print_ln [phi:printEntry::@34->print_ln] print_ln_from___b34: - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@34->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#169 [phi:printEntry::@34->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@34->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#169 [phi:printEntry::@34->print_ln#1] -- register_copy jsr print_ln jmp __b35 // printEntry::@35 __b35: - // [209] print_char_cursor#222 = print_line_cursor#0 -- pbuz1=pbuz2 + // [210] print_char_cursor#222 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [210] call print_str - // [118] phi from printEntry::@35 to print_str [phi:printEntry::@35->print_str] + // [211] call print_str + // [119] phi from printEntry::@35 to print_str [phi:printEntry::@35->print_str] print_str_from___b35: - // [118] phi print_char_cursor#167 = print_char_cursor#222 [phi:printEntry::@35->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str11 [phi:printEntry::@35->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_char_cursor#222 [phi:printEntry::@35->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str11 [phi:printEntry::@35->print_str#1] -- pbuz1=pbuc1 lda #str11 sta.z print_str.str+1 jsr print_str - // [211] phi from printEntry::@35 to printEntry::entryTHi1 [phi:printEntry::@35->printEntry::entryTHi1] + // [212] phi from printEntry::@35 to printEntry::entryTHi1 [phi:printEntry::@35->printEntry::entryTHi1] entryTHi1_from___b35: jmp entryTHi1 // printEntry::entryTHi1 @@ -6462,49 +6466,49 @@ printEntry: { jmp __b12 // printEntry::@12 __b12: - // [212] print_uchar::b#8 = printEntry::entry#10[$10] -- vbuxx=pbuz1_derefidx_vbuc1 + // [213] print_uchar::b#8 = printEntry::entry#10[$10] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$10 lda (entry),y tax - // [213] call print_uchar - // [246] phi from printEntry::@12 to print_uchar [phi:printEntry::@12->print_uchar] + // [214] call print_uchar + // [247] phi from printEntry::@12 to print_uchar [phi:printEntry::@12->print_uchar] print_uchar_from___b12: - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@12->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#8 [phi:printEntry::@12->print_uchar#1] -- register_copy + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@12->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#8 [phi:printEntry::@12->print_uchar#1] -- register_copy jsr print_uchar jmp __b36 // printEntry::@36 __b36: - // [214] print_line_cursor#170 = print_line_cursor#0 -- pbuz1=pbuz2 + // [215] print_line_cursor#170 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [215] call print_ln - // [125] phi from printEntry::@36 to print_ln [phi:printEntry::@36->print_ln] + // [216] call print_ln + // [126] phi from printEntry::@36 to print_ln [phi:printEntry::@36->print_ln] print_ln_from___b36: - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@36->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#170 [phi:printEntry::@36->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@36->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#170 [phi:printEntry::@36->print_ln#1] -- register_copy jsr print_ln jmp __b37 // printEntry::@37 __b37: - // [216] print_char_cursor#223 = print_line_cursor#0 -- pbuz1=pbuz2 + // [217] print_char_cursor#223 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [217] call print_str - // [118] phi from printEntry::@37 to print_str [phi:printEntry::@37->print_str] + // [218] call print_str + // [119] phi from printEntry::@37 to print_str [phi:printEntry::@37->print_str] print_str_from___b37: - // [118] phi print_char_cursor#167 = print_char_cursor#223 [phi:printEntry::@37->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str12 [phi:printEntry::@37->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_char_cursor#167 = print_char_cursor#223 [phi:printEntry::@37->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str12 [phi:printEntry::@37->print_str#1] -- pbuz1=pbuc1 lda #str12 sta.z print_str.str+1 jsr print_str - // [218] phi from printEntry::@37 to printEntry::entryTLo1 [phi:printEntry::@37->printEntry::entryTLo1] + // [219] phi from printEntry::@37 to printEntry::entryTLo1 [phi:printEntry::@37->printEntry::entryTLo1] entryTLo1_from___b37: jmp entryTLo1 // printEntry::entryTLo1 @@ -6512,34 +6516,34 @@ printEntry: { jmp __b13 // printEntry::@13 __b13: - // [219] print_uchar::b#9 = printEntry::entry#10[$11] -- vbuxx=pbuz1_derefidx_vbuc1 + // [220] print_uchar::b#9 = printEntry::entry#10[$11] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$11 lda (entry),y tax - // [220] call print_uchar - // [246] phi from printEntry::@13 to print_uchar [phi:printEntry::@13->print_uchar] + // [221] call print_uchar + // [247] phi from printEntry::@13 to print_uchar [phi:printEntry::@13->print_uchar] print_uchar_from___b13: - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@13->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#9 [phi:printEntry::@13->print_uchar#1] -- register_copy + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@13->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#9 [phi:printEntry::@13->print_uchar#1] -- register_copy jsr print_uchar jmp __b38 // printEntry::@38 __b38: - // [221] print_line_cursor#171 = print_line_cursor#0 -- pbuz1=pbuz2 + // [222] print_line_cursor#171 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [222] call print_ln - // [125] phi from printEntry::@38 to print_ln [phi:printEntry::@38->print_ln] + // [223] call print_ln + // [126] phi from printEntry::@38 to print_ln [phi:printEntry::@38->print_ln] print_ln_from___b38: - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@38->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#171 [phi:printEntry::@38->print_ln#1] -- register_copy + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@38->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#171 [phi:printEntry::@38->print_ln#1] -- register_copy jsr print_ln jmp __breturn // printEntry::@return __breturn: - // [223] return + // [224] return rts .segment Data str: .text "bufdisk " @@ -6578,19 +6582,19 @@ printEntry: { keyboard_key_pressed: { .const colidx = KEY_SPACE&7 .label rowidx = KEY_SPACE>>3 - // [225] call keyboard_matrix_read + // [226] call keyboard_matrix_read jsr keyboard_matrix_read - // [226] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 + // [227] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 jmp __b1 // keyboard_key_pressed::@1 __b1: - // [227] keyboard_key_pressed::$2 = keyboard_matrix_read::return#2 - // [228] keyboard_key_pressed::return#0 = keyboard_key_pressed::$2 & *(keyboard_matrix_col_bitmask+keyboard_key_pressed::colidx#0) -- vbuaa=vbuaa_band__deref_pbuc1 + // [228] keyboard_key_pressed::$2 = keyboard_matrix_read::return#2 + // [229] keyboard_key_pressed::return#0 = keyboard_key_pressed::$2 & *(keyboard_matrix_col_bitmask+keyboard_key_pressed::colidx#0) -- vbuaa=vbuaa_band__deref_pbuc1 and keyboard_matrix_col_bitmask+colidx jmp __breturn // keyboard_key_pressed::@return __breturn: - // [229] return + // [230] return rts } // memset @@ -6601,9 +6605,9 @@ memset: { .label str = print_screen .label end = str+num .label dst = $a - // [231] phi from memset to memset::@1 [phi:memset->memset::@1] + // [232] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [231] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [232] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -6611,7 +6615,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [232] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 + // [233] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z dst+1 cmp #>end bne __b2 @@ -6621,32 +6625,32 @@ memset: { jmp __breturn // memset::@return __breturn: - // [233] return + // [234] return rts // memset::@2 __b2: - // [234] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 + // [235] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 lda #c ldy #0 sta (dst),y - // [235] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 + // [236] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: - // [231] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1] + // [232] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1] __b1_from___b2: - // [231] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy + // [232] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy jmp __b1 } // print_char // Print a single char // print_char(byte register(A) ch) print_char: { - // [237] *print_char_cursor#83 = print_char::ch#3 -- _deref_pbuz1=vbuaa + // [238] *print_char_cursor#83 = print_char::ch#3 -- _deref_pbuz1=vbuaa ldy #0 sta (print_char_cursor),y - // [238] print_char_cursor#10 = ++ print_char_cursor#83 -- pbuz1=_inc_pbuz1 + // [239] print_char_cursor#10 = ++ print_char_cursor#83 -- pbuz1=_inc_pbuz1 inc.z print_char_cursor bne !+ inc.z print_char_cursor+1 @@ -6654,7 +6658,7 @@ print_char: { jmp __breturn // print_char::@return __breturn: - // [239] return + // [240] return rts } // print_uint @@ -6662,69 +6666,69 @@ print_char: { // print_uint(word zp(8) w) print_uint: { .label w = 8 - // [241] print_uchar::b#0 = > print_uint::w#5 -- vbuxx=_hi_vwuz1 + // [242] print_uchar::b#0 = > print_uint::w#5 -- vbuxx=_hi_vwuz1 ldx.z w+1 - // [242] call print_uchar - // [246] phi from print_uint to print_uchar [phi:print_uint->print_uchar] + // [243] call print_uchar + // [247] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:print_uint->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:print_uint->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy jsr print_uchar jmp __b1 // print_uint::@1 __b1: - // [243] print_uchar::b#1 = < print_uint::w#5 -- vbuxx=_lo_vwuz1 + // [244] print_uchar::b#1 = < print_uint::w#5 -- vbuxx=_lo_vwuz1 ldx.z w - // [244] call print_uchar - // [246] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] + // [245] call print_uchar + // [247] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: - // [246] phi print_char_cursor#148 = print_char_cursor#10 [phi:print_uint::@1->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy + // [247] phi print_char_cursor#148 = print_char_cursor#10 [phi:print_uint::@1->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy jsr print_uchar jmp __breturn // print_uint::@return __breturn: - // [245] return + // [246] return rts } // print_uchar // Print a char as HEX // print_uchar(byte register(X) b) print_uchar: { - // [247] print_uchar::$0 = print_uchar::b#10 >> 4 -- vbuaa=vbuxx_ror_4 + // [248] print_uchar::$0 = print_uchar::b#10 >> 4 -- vbuaa=vbuxx_ror_4 txa lsr lsr lsr lsr - // [248] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa + // [249] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [249] call print_char + // [250] call print_char // Table of hexadecimal digits - // [236] phi from print_uchar to print_char [phi:print_uchar->print_char] + // [237] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: - // [236] phi print_char_cursor#83 = print_char_cursor#148 [phi:print_uchar->print_char#0] -- register_copy - // [236] phi print_char::ch#3 = print_char::ch#1 [phi:print_uchar->print_char#1] -- register_copy + // [237] phi print_char_cursor#83 = print_char_cursor#148 [phi:print_uchar->print_char#0] -- register_copy + // [237] phi print_char::ch#3 = print_char::ch#1 [phi:print_uchar->print_char#1] -- register_copy jsr print_char jmp __b1 // print_uchar::@1 __b1: - // [250] print_uchar::$2 = print_uchar::b#10 & $f -- vbuxx=vbuxx_band_vbuc1 + // [251] print_uchar::$2 = print_uchar::b#10 & $f -- vbuxx=vbuxx_band_vbuc1 lda #$f axs #0 - // [251] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx + // [252] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [252] call print_char - // [236] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] + // [253] call print_char + // [237] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: - // [236] phi print_char_cursor#83 = print_char_cursor#10 [phi:print_uchar::@1->print_char#0] -- register_copy - // [236] phi print_char::ch#3 = print_char::ch#2 [phi:print_uchar::@1->print_char#1] -- register_copy + // [237] phi print_char_cursor#83 = print_char_cursor#10 [phi:print_uchar::@1->print_char#0] -- register_copy + // [237] phi print_char::ch#3 = print_char::ch#2 [phi:print_uchar::@1->print_char#1] -- register_copy jsr print_char jmp __breturn // print_uchar::@return __breturn: - // [253] return + // [254] return rts } // keyboard_matrix_read @@ -6734,16 +6738,16 @@ print_uchar: { // Notice: If the C64 normal interrupt is still running it will occasionally interrupt right between the read & write // leading to erroneous readings. You must disable the normal interrupt or sei/cli around calls to the keyboard matrix reader. keyboard_matrix_read: { - // [254] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) -- _deref_pbuc1=_deref_pbuc2 + // [255] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) -- _deref_pbuc1=_deref_pbuc2 lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx sta CIA1 - // [255] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 + // [256] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B eor #$ff jmp __breturn // keyboard_matrix_read::@return __breturn: - // [256] return + // [257] return rts } // File Data @@ -7143,7 +7147,7 @@ constant byte RADIX::OCTAL = 8 constant const byte SIZEOF_ENTRY = $12 constant byte* files[(word)MAX_FILES*SIZEOF_ENTRY] = { fill( (word)MAX_FILES*SIZEOF_ENTRY, 0) } void initEntry(byte* initEntry::entry , byte initEntry::n) -word~ initEntry::$1 zp[2]:8 11.0 +byte*~ initEntry::$1 zp[2]:8 22.0 byte~ initEntry::$11 reg byte a 22.0 byte~ initEntry::$13 reg byte a 22.0 byte~ initEntry::$15 reg byte a 22.0 @@ -7152,14 +7156,15 @@ byte~ initEntry::$19 reg byte a 22.0 byte~ initEntry::$21 reg byte a 22.0 byte~ initEntry::$23 reg byte a 22.0 byte~ initEntry::$25 reg byte a 22.0 -word~ initEntry::$3 zp[2]:16 11.0 +byte~ initEntry::$26 reg byte a 22.0 +byte*~ initEntry::$3 zp[2]:16 22.0 word~ initEntry::$5 zp[2]:10 22.0 -word~ initEntry::$7 zp[2]:12 11.0 +word*~ initEntry::$7 zp[2]:12 22.0 byte~ initEntry::$9 reg byte a 22.0 byte* initEntry::entry byte* initEntry::entry#0 entry zp[2]:4 4.0 byte* initEntry::entry#1 entry zp[2]:4 4.0 -byte* initEntry::entry#10 entry zp[2]:4 2.3589743589743586 +byte* initEntry::entry#10 entry zp[2]:4 2.3 byte* initEntry::entryBAddrHi1_entry byte* initEntry::entryBAddrHi1_return byte* initEntry::entryBAddrLo1_entry @@ -7187,7 +7192,7 @@ word** initEntry::entryTsOrder1_return byte* initEntry::entryUCross1_entry word* initEntry::entryUCross1_return byte initEntry::n -byte initEntry::n#10 reg byte x 3.7631578947368434 +byte initEntry::n#10 reg byte x 3.6666666666666656 void keyboard_init() byte keyboard_key_pressed(byte keyboard_key_pressed::key) byte~ keyboard_key_pressed::$2 reg byte a 202.0 @@ -7402,6 +7407,7 @@ reg byte a [ main::$22 ] reg byte a [ mul8u::$1 ] zp[2]:8 [ initEntry::$1 print_uint::w#5 print_uint::w#7 print_uint::w#8 print_uint::w#2 print_uint::w#10 print_uint::w#4 ] zp[2]:10 [ initEntry::$5 print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 memset::dst#2 memset::dst#1 ] +reg byte a [ initEntry::$26 ] zp[2]:12 [ initEntry::$7 ] reg byte a [ initEntry::$9 ] reg byte a [ initEntry::$11 ] @@ -7422,7 +7428,7 @@ reg byte a [ keyboard_matrix_read::return#0 ] FINAL ASSEMBLER -Score: 3913 +Score: 3915 // File Comments // Implementing a semi-struct without the struct keyword by using pointer math and inline functions @@ -7553,19 +7559,19 @@ main: { // main::@9 // print_cls() // [17] call print_cls - // [115] phi from main::@9 to print_cls [phi:main::@9->print_cls] + // [116] phi from main::@9 to print_cls [phi:main::@9->print_cls] jsr print_cls // [18] phi from main::@9 to main::@10 [phi:main::@9->main::@10] // main::@10 // print_str("** entry 1 **") // [19] call print_str - // [118] phi from main::@10 to print_str [phi:main::@10->print_str] - // [118] phi print_char_cursor#167 = print_screen#0 [phi:main::@10->print_str#0] -- pbuz1=pbuc1 + // [119] phi from main::@10 to print_str [phi:main::@10->print_str] + // [119] phi print_char_cursor#167 = print_screen#0 [phi:main::@10->print_str#0] -- pbuz1=pbuc1 lda #print_screen sta.z print_char_cursor+1 - // [118] phi print_str::str#21 = main::str [phi:main::@10->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_str::str#21 = main::str [phi:main::@10->print_str#1] -- pbuz1=pbuc1 lda #str @@ -7575,9 +7581,9 @@ main: { // main::@11 // print_ln() // [21] call print_ln - // [125] phi from main::@11 to print_ln [phi:main::@11->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#1 [phi:main::@11->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_screen#0 [phi:main::@11->print_ln#1] -- pbuz1=pbuc1 + // [126] phi from main::@11 to print_ln [phi:main::@11->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#1 [phi:main::@11->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_screen#0 [phi:main::@11->print_ln#1] -- pbuz1=pbuc1 lda #print_screen @@ -7596,16 +7602,16 @@ main: { sta.z print_char_cursor+1 // print_ln() // [24] call print_ln - // [125] phi from main::@12 to print_ln [phi:main::@12->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#227 [phi:main::@12->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#155 [phi:main::@12->print_ln#1] -- register_copy + // [126] phi from main::@12 to print_ln [phi:main::@12->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#227 [phi:main::@12->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#155 [phi:main::@12->print_ln#1] -- register_copy jsr print_ln // main::@13 // printEntry(entry1) // [25] printEntry::entry#0 = main::entry1#0 // [26] call printEntry - // [131] phi from main::@13 to printEntry [phi:main::@13->printEntry] - // [131] phi printEntry::entry#10 = printEntry::entry#0 [phi:main::@13->printEntry#0] -- register_copy + // [132] phi from main::@13 to printEntry [phi:main::@13->printEntry] + // [132] phi printEntry::entry#10 = printEntry::entry#0 [phi:main::@13->printEntry#0] -- register_copy jsr printEntry // main::@14 // [27] print_line_cursor#156 = print_line_cursor#0 -- pbuz1=pbuz2 @@ -7620,9 +7626,9 @@ main: { sta.z print_char_cursor+1 // print_ln() // [29] call print_ln - // [125] phi from main::@14 to print_ln [phi:main::@14->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#228 [phi:main::@14->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#156 [phi:main::@14->print_ln#1] -- register_copy + // [126] phi from main::@14 to print_ln [phi:main::@14->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#228 [phi:main::@14->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#156 [phi:main::@14->print_ln#1] -- register_copy jsr print_ln // main::@15 // [30] print_char_cursor#209 = print_line_cursor#0 -- pbuz1=pbuz2 @@ -7632,9 +7638,9 @@ main: { sta.z print_char_cursor+1 // print_str("- press space -") // [31] call print_str - // [118] phi from main::@15 to print_str [phi:main::@15->print_str] - // [118] phi print_char_cursor#167 = print_char_cursor#209 [phi:main::@15->print_str#0] -- register_copy - // [118] phi print_str::str#21 = main::str1 [phi:main::@15->print_str#1] -- pbuz1=pbuc1 + // [119] phi from main::@15 to print_str [phi:main::@15->print_str] + // [119] phi print_char_cursor#167 = print_char_cursor#209 [phi:main::@15->print_str#0] -- register_copy + // [119] phi print_str::str#21 = main::str1 [phi:main::@15->print_str#1] -- pbuz1=pbuc1 lda #str1 @@ -7645,7 +7651,7 @@ main: { __b1: // keyboard_key_pressed(KEY_SPACE) // [33] call keyboard_key_pressed - // [224] phi from main::@1 to keyboard_key_pressed [phi:main::@1->keyboard_key_pressed] + // [225] phi from main::@1 to keyboard_key_pressed [phi:main::@1->keyboard_key_pressed] jsr keyboard_key_pressed // keyboard_key_pressed(KEY_SPACE) // [34] keyboard_key_pressed::return#2 = keyboard_key_pressed::return#0 @@ -7659,19 +7665,19 @@ main: { // main::@2 // print_cls() // [38] call print_cls - // [115] phi from main::@2 to print_cls [phi:main::@2->print_cls] + // [116] phi from main::@2 to print_cls [phi:main::@2->print_cls] jsr print_cls // [39] phi from main::@2 to main::@17 [phi:main::@2->main::@17] // main::@17 // print_str("** entry 2 **") // [40] call print_str - // [118] phi from main::@17 to print_str [phi:main::@17->print_str] - // [118] phi print_char_cursor#167 = print_screen#0 [phi:main::@17->print_str#0] -- pbuz1=pbuc1 + // [119] phi from main::@17 to print_str [phi:main::@17->print_str] + // [119] phi print_char_cursor#167 = print_screen#0 [phi:main::@17->print_str#0] -- pbuz1=pbuc1 lda #print_screen sta.z print_char_cursor+1 - // [118] phi print_str::str#21 = main::str2 [phi:main::@17->print_str#1] -- pbuz1=pbuc1 + // [119] phi print_str::str#21 = main::str2 [phi:main::@17->print_str#1] -- pbuz1=pbuc1 lda #str2 @@ -7681,9 +7687,9 @@ main: { // main::@18 // print_ln() // [42] call print_ln - // [125] phi from main::@18 to print_ln [phi:main::@18->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#1 [phi:main::@18->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_screen#0 [phi:main::@18->print_ln#1] -- pbuz1=pbuc1 + // [126] phi from main::@18 to print_ln [phi:main::@18->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#1 [phi:main::@18->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_screen#0 [phi:main::@18->print_ln#1] -- pbuz1=pbuc1 lda #print_screen @@ -7702,9 +7708,9 @@ main: { sta.z print_char_cursor+1 // print_ln() // [45] call print_ln - // [125] phi from main::@19 to print_ln [phi:main::@19->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#230 [phi:main::@19->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#157 [phi:main::@19->print_ln#1] -- register_copy + // [126] phi from main::@19 to print_ln [phi:main::@19->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#230 [phi:main::@19->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#157 [phi:main::@19->print_ln#1] -- register_copy jsr print_ln // main::@20 // printEntry(entry2) @@ -7714,8 +7720,8 @@ main: { lda.z entry2+1 sta.z printEntry.entry+1 // [47] call printEntry - // [131] phi from main::@20 to printEntry [phi:main::@20->printEntry] - // [131] phi printEntry::entry#10 = printEntry::entry#1 [phi:main::@20->printEntry#0] -- register_copy + // [132] phi from main::@20 to printEntry [phi:main::@20->printEntry] + // [132] phi printEntry::entry#10 = printEntry::entry#1 [phi:main::@20->printEntry#0] -- register_copy jsr printEntry // main::@21 // [48] print_line_cursor#158 = print_line_cursor#0 -- pbuz1=pbuz2 @@ -7730,9 +7736,9 @@ main: { sta.z print_char_cursor+1 // print_ln() // [50] call print_ln - // [125] phi from main::@21 to print_ln [phi:main::@21->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#231 [phi:main::@21->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#158 [phi:main::@21->print_ln#1] -- register_copy + // [126] phi from main::@21 to print_ln [phi:main::@21->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#231 [phi:main::@21->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#158 [phi:main::@21->print_ln#1] -- register_copy jsr print_ln // main::@22 // [51] print_char_cursor#210 = print_line_cursor#0 -- pbuz1=pbuz2 @@ -7742,9 +7748,9 @@ main: { sta.z print_char_cursor+1 // print_str("- press space -") // [52] call print_str - // [118] phi from main::@22 to print_str [phi:main::@22->print_str] - // [118] phi print_char_cursor#167 = print_char_cursor#210 [phi:main::@22->print_str#0] -- register_copy - // [118] phi print_str::str#21 = main::str1 [phi:main::@22->print_str#1] -- pbuz1=pbuc1 + // [119] phi from main::@22 to print_str [phi:main::@22->print_str] + // [119] phi print_char_cursor#167 = print_char_cursor#210 [phi:main::@22->print_str#0] -- register_copy + // [119] phi print_str::str#21 = main::str1 [phi:main::@22->print_str#1] -- pbuz1=pbuc1 lda #str1 @@ -7755,7 +7761,7 @@ main: { __b3: // keyboard_key_pressed(KEY_SPACE) // [54] call keyboard_key_pressed - // [224] phi from main::@3 to keyboard_key_pressed [phi:main::@3->keyboard_key_pressed] + // [225] phi from main::@3 to keyboard_key_pressed [phi:main::@3->keyboard_key_pressed] jsr keyboard_key_pressed // keyboard_key_pressed(KEY_SPACE) // [55] keyboard_key_pressed::return#3 = keyboard_key_pressed::return#0 @@ -7769,7 +7775,7 @@ main: { // main::@4 // print_cls() // [59] call print_cls - // [115] phi from main::@4 to print_cls [phi:main::@4->print_cls] + // [116] phi from main::@4 to print_cls [phi:main::@4->print_cls] jsr print_cls // main::@return // } @@ -7883,8 +7889,8 @@ initEntry: { // [75] phi from initEntry to initEntry::entryBufDisk1 [phi:initEntry->initEntry::entryBufDisk1] // initEntry::entryBufDisk1 // initEntry::@1 - // 0x1111+n - // [76] initEntry::$1 = $1111 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx + // (byte*)0x1111+n + // [76] initEntry::$1 = (byte*) 4369 + initEntry::n#10 -- pbuz1=pbuc1_plus_vbuxx txa clc adc #<$1111 @@ -7892,8 +7898,8 @@ initEntry: { lda #>$1111 adc #0 sta.z __1+1 - // *entryBufDisk(entry) = 0x1111+n - // [77] *((byte**)initEntry::entry#10) = (byte*)initEntry::$1 -- _deref_qbuz1=pbuz2 + // *entryBufDisk(entry) = (byte*)0x1111+n + // [77] *((byte**)initEntry::entry#10) = initEntry::$1 -- _deref_qbuz1=pbuz2 ldy #0 lda.z __1 sta (entry),y @@ -7903,8 +7909,8 @@ initEntry: { // [78] phi from initEntry::@1 to initEntry::entryBufEdit1 [phi:initEntry::@1->initEntry::entryBufEdit1] // initEntry::entryBufEdit1 // initEntry::@2 - // 0x2222+n - // [79] initEntry::$3 = $2222 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx + // (byte*)0x2222+n + // [79] initEntry::$3 = (byte*) 8738 + initEntry::n#10 -- pbuz1=pbuc1_plus_vbuxx txa clc adc #<$2222 @@ -7912,8 +7918,8 @@ initEntry: { lda #>$2222 adc #0 sta.z __3+1 - // *entryBufEdit(entry) = 0x2222+n - // [80] ((byte**)initEntry::entry#10)[2] = (byte*)initEntry::$3 -- qbuz1_derefidx_vbuc1=pbuz2 + // *entryBufEdit(entry) = (byte*)0x2222+n + // [80] ((byte**)initEntry::entry#10)[2] = initEntry::$3 -- qbuz1_derefidx_vbuc1=pbuz2 ldy #2 lda.z __3 sta (entry),y @@ -7943,76 +7949,78 @@ initEntry: { // [84] phi from initEntry::@3 to initEntry::entryTsOrder1 [phi:initEntry::@3->initEntry::entryTsOrder1] // initEntry::entryTsOrder1 // initEntry::@4 - // 0x4444+n - // [85] initEntry::$7 = $4444 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx + // (word*)0x4444+n + // [85] initEntry::$26 = initEntry::n#10 << 1 -- vbuaa=vbuxx_rol_1 txa + asl + // [86] initEntry::$7 = (word*) 17476 + initEntry::$26 -- pwuz1=pwuc1_plus_vbuaa clc adc #<$4444 sta.z __7 lda #>$4444 adc #0 sta.z __7+1 - // *entryTsOrder(entry) = 0x4444+n - // [86] ((word**)initEntry::entry#10)[6] = (word*)initEntry::$7 -- qwuz1_derefidx_vbuc1=pwuz2 + // *entryTsOrder(entry) = (word*)0x4444+n + // [87] ((word**)initEntry::entry#10)[6] = initEntry::$7 -- qwuz1_derefidx_vbuc1=pwuz2 ldy #6 lda.z __7 sta (entry),y iny lda.z __7+1 sta (entry),y - // [87] phi from initEntry::@4 to initEntry::entryTLastLink1 [phi:initEntry::@4->initEntry::entryTLastLink1] + // [88] phi from initEntry::@4 to initEntry::entryTLastLink1 [phi:initEntry::@4->initEntry::entryTLastLink1] // initEntry::entryTLastLink1 // initEntry::@5 // 0x55+n - // [88] initEntry::$9 = $55 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [89] initEntry::$9 = $55 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$55 // *entryTLastLink(entry) = 0x55+n - // [89] initEntry::entry#10[8] = initEntry::$9 -- pbuz1_derefidx_vbuc1=vbuaa + // [90] initEntry::entry#10[8] = initEntry::$9 -- pbuz1_derefidx_vbuc1=vbuaa ldy #8 sta (entry),y - // [90] phi from initEntry::@5 to initEntry::entrySLastLink1 [phi:initEntry::@5->initEntry::entrySLastLink1] + // [91] phi from initEntry::@5 to initEntry::entrySLastLink1 [phi:initEntry::@5->initEntry::entrySLastLink1] // initEntry::entrySLastLink1 // initEntry::@6 // 0x66+n - // [91] initEntry::$11 = $66 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [92] initEntry::$11 = $66 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$66 // *entrySLastLink(entry) = 0x66+n - // [92] initEntry::entry#10[9] = initEntry::$11 -- pbuz1_derefidx_vbuc1=vbuaa + // [93] initEntry::entry#10[9] = initEntry::$11 -- pbuz1_derefidx_vbuc1=vbuaa ldy #9 sta (entry),y - // [93] phi from initEntry::@6 to initEntry::entryBFlag1 [phi:initEntry::@6->initEntry::entryBFlag1] + // [94] phi from initEntry::@6 to initEntry::entryBFlag1 [phi:initEntry::@6->initEntry::entryBFlag1] // initEntry::entryBFlag1 // initEntry::@7 // 0x77+n - // [94] initEntry::$13 = $77 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [95] initEntry::$13 = $77 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$77 // *entryBFlag(entry) = 0x77+n - // [95] initEntry::entry#10[$a] = initEntry::$13 -- pbuz1_derefidx_vbuc1=vbuaa + // [96] initEntry::entry#10[$a] = initEntry::$13 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$a sta (entry),y - // [96] phi from initEntry::@7 to initEntry::entryBError1 [phi:initEntry::@7->initEntry::entryBError1] + // [97] phi from initEntry::@7 to initEntry::entryBError1 [phi:initEntry::@7->initEntry::entryBError1] // initEntry::entryBError1 // initEntry::@8 // 0x88+n - // [97] initEntry::$15 = $88 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [98] initEntry::$15 = $88 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$88 // *entryBError(entry) = 0x88+n - // [98] initEntry::entry#10[$b] = initEntry::$15 -- pbuz1_derefidx_vbuc1=vbuaa + // [99] initEntry::entry#10[$b] = initEntry::$15 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$b sta (entry),y - // [99] phi from initEntry::@8 to initEntry::entryUCross1 [phi:initEntry::@8->initEntry::entryUCross1] + // [100] phi from initEntry::@8 to initEntry::entryUCross1 [phi:initEntry::@8->initEntry::entryUCross1] // initEntry::entryUCross1 // initEntry::@9 // 0x9999+n - // [100] initEntry::$17 = $9999 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx + // [101] initEntry::$17 = $9999 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx txa clc adc #<$9999 @@ -8021,76 +8029,76 @@ initEntry: { adc #0 sta.z __17+1 // *entryUCross(entry) = 0x9999+n - // [101] ((word*)initEntry::entry#10)[$c] = initEntry::$17 -- pwuz1_derefidx_vbuc1=vwuz2 + // [102] ((word*)initEntry::entry#10)[$c] = initEntry::$17 -- pwuz1_derefidx_vbuc1=vwuz2 ldy #$c lda.z __17 sta (entry),y iny lda.z __17+1 sta (entry),y - // [102] phi from initEntry::@9 to initEntry::entryBAddrLo1 [phi:initEntry::@9->initEntry::entryBAddrLo1] + // [103] phi from initEntry::@9 to initEntry::entryBAddrLo1 [phi:initEntry::@9->initEntry::entryBAddrLo1] // initEntry::entryBAddrLo1 // initEntry::@10 // 0xaa+n - // [103] initEntry::$19 = $aa + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [104] initEntry::$19 = $aa + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$aa // *entryBAddrLo(entry) = 0xaa+n - // [104] initEntry::entry#10[$e] = initEntry::$19 -- pbuz1_derefidx_vbuc1=vbuaa + // [105] initEntry::entry#10[$e] = initEntry::$19 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$e sta (entry),y - // [105] phi from initEntry::@10 to initEntry::entryBAddrHi1 [phi:initEntry::@10->initEntry::entryBAddrHi1] + // [106] phi from initEntry::@10 to initEntry::entryBAddrHi1 [phi:initEntry::@10->initEntry::entryBAddrHi1] // initEntry::entryBAddrHi1 // initEntry::@11 // 0xbb+n - // [106] initEntry::$21 = $bb + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [107] initEntry::$21 = $bb + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$bb // *entryBAddrHi(entry) = 0xbb+n - // [107] initEntry::entry#10[$f] = initEntry::$21 -- pbuz1_derefidx_vbuc1=vbuaa + // [108] initEntry::entry#10[$f] = initEntry::$21 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$f sta (entry),y - // [108] phi from initEntry::@11 to initEntry::entryTHi1 [phi:initEntry::@11->initEntry::entryTHi1] + // [109] phi from initEntry::@11 to initEntry::entryTHi1 [phi:initEntry::@11->initEntry::entryTHi1] // initEntry::entryTHi1 // initEntry::@12 // 0xcc+n - // [109] initEntry::$23 = $cc + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [110] initEntry::$23 = $cc + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$cc // *entryTHi(entry) = 0xcc+n - // [110] initEntry::entry#10[$10] = initEntry::$23 -- pbuz1_derefidx_vbuc1=vbuaa + // [111] initEntry::entry#10[$10] = initEntry::$23 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$10 sta (entry),y - // [111] phi from initEntry::@12 to initEntry::entryTLo1 [phi:initEntry::@12->initEntry::entryTLo1] + // [112] phi from initEntry::@12 to initEntry::entryTLo1 [phi:initEntry::@12->initEntry::entryTLo1] // initEntry::entryTLo1 // initEntry::@13 // 0xdd+n - // [112] initEntry::$25 = $dd + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [113] initEntry::$25 = $dd + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$dd // *entryTLo(entry) = 0xdd+n - // [113] initEntry::entry#10[$11] = initEntry::$25 -- pbuz1_derefidx_vbuc1=vbuaa + // [114] initEntry::entry#10[$11] = initEntry::$25 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$11 sta (entry),y // initEntry::@return // } - // [114] return + // [115] return rts } // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [116] call memset - // [230] phi from print_cls to memset [phi:print_cls->memset] + // [117] call memset + // [231] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return // } - // [117] return + // [118] return rts } // print_str @@ -8098,35 +8106,35 @@ print_cls: { // print_str(byte* zp(4) str) print_str: { .label str = 4 - // [119] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] - // [119] phi print_char_cursor#1 = print_char_cursor#167 [phi:print_str/print_str::@3->print_str::@1#0] -- register_copy - // [119] phi print_str::str#18 = print_str::str#21 [phi:print_str/print_str::@3->print_str::@1#1] -- register_copy + // [120] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] + // [120] phi print_char_cursor#1 = print_char_cursor#167 [phi:print_str/print_str::@3->print_str::@1#0] -- register_copy + // [120] phi print_str::str#18 = print_str::str#21 [phi:print_str/print_str::@3->print_str::@1#1] -- register_copy // print_str::@1 __b1: // while(*str) - // [120] if(0!=*print_str::str#18) goto print_str::@2 -- 0_neq__deref_pbuz1_then_la1 + // [121] if(0!=*print_str::str#18) goto print_str::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 bne __b2 // print_str::@return // } - // [121] return + // [122] return rts // print_str::@2 __b2: // print_char(*(str++)) - // [122] print_char::ch#0 = *print_str::str#18 -- vbuaa=_deref_pbuz1 + // [123] print_char::ch#0 = *print_str::str#18 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [123] call print_char - // [236] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] - // [236] phi print_char_cursor#83 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy - // [236] phi print_char::ch#3 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy + // [124] call print_char + // [237] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] + // [237] phi print_char_cursor#83 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy + // [237] phi print_char::ch#3 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy jsr print_char // print_str::@3 // print_char(*(str++)); - // [124] print_str::str#0 = ++ print_str::str#18 -- pbuz1=_inc_pbuz1 + // [125] print_str::str#0 = ++ print_str::str#18 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 @@ -8136,12 +8144,12 @@ print_str: { // print_ln // Print a newline print_ln: { - // [126] phi from print_ln print_ln::@2 to print_ln::@1 [phi:print_ln/print_ln::@2->print_ln::@1] - // [126] phi print_line_cursor#33 = print_line_cursor#65 [phi:print_ln/print_ln::@2->print_ln::@1#0] -- register_copy + // [127] phi from print_ln print_ln::@2 to print_ln::@1 [phi:print_ln/print_ln::@2->print_ln::@1] + // [127] phi print_line_cursor#33 = print_line_cursor#65 [phi:print_ln/print_ln::@2->print_ln::@1#0] -- register_copy // print_ln::@1 __b1: // print_line_cursor + $28 - // [127] print_line_cursor#0 = print_line_cursor#33 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [128] print_line_cursor#0 = print_line_cursor#33 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z print_line_cursor_1 @@ -8150,7 +8158,7 @@ print_ln: { adc.z print_line_cursor_1+1 sta.z print_line_cursor+1 // while (print_line_cursorprint_str] - // [118] phi print_char_cursor#167 = print_char_cursor#211 [phi:printEntry->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str [phi:printEntry->print_str#1] -- pbuz1=pbuc1 + // [134] call print_str + // [119] phi from printEntry to print_str [phi:printEntry->print_str] + // [119] phi print_char_cursor#167 = print_char_cursor#211 [phi:printEntry->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str [phi:printEntry->print_str#1] -- pbuz1=pbuc1 lda #str sta.z print_str.str+1 jsr print_str - // [134] phi from printEntry to printEntry::entryBufDisk1 [phi:printEntry->printEntry::entryBufDisk1] + // [135] phi from printEntry to printEntry::entryBufDisk1 [phi:printEntry->printEntry::entryBufDisk1] // printEntry::entryBufDisk1 // printEntry::@1 - // [135] print_uint::w#7 = (word)*((byte**)printEntry::entry#10) -- vwuz1=_deref_pwuz2 + // [136] print_uint::w#7 = (word)*((byte**)printEntry::entry#10) -- vwuz1=_deref_pwuz2 ldy #0 lda (entry),y sta.z print_uint.w @@ -8202,42 +8210,42 @@ printEntry: { lda (entry),y sta.z print_uint.w+1 // print_uint((word)*entryBufDisk(entry)) - // [136] call print_uint - // [240] phi from printEntry::@1 to print_uint [phi:printEntry::@1->print_uint] - // [240] phi print_uint::w#5 = print_uint::w#7 [phi:printEntry::@1->print_uint#0] -- register_copy + // [137] call print_uint + // [241] phi from printEntry::@1 to print_uint [phi:printEntry::@1->print_uint] + // [241] phi print_uint::w#5 = print_uint::w#7 [phi:printEntry::@1->print_uint#0] -- register_copy jsr print_uint // printEntry::@14 - // [137] print_line_cursor#159 = print_line_cursor#0 -- pbuz1=pbuz2 + // [138] print_line_cursor#159 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [138] call print_ln - // [125] phi from printEntry::@14 to print_ln [phi:printEntry::@14->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@14->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#159 [phi:printEntry::@14->print_ln#1] -- register_copy + // [139] call print_ln + // [126] phi from printEntry::@14 to print_ln [phi:printEntry::@14->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@14->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#159 [phi:printEntry::@14->print_ln#1] -- register_copy jsr print_ln // printEntry::@15 - // [139] print_char_cursor#212 = print_line_cursor#0 -- pbuz1=pbuz2 + // [140] print_char_cursor#212 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("bufedit ") - // [140] call print_str - // [118] phi from printEntry::@15 to print_str [phi:printEntry::@15->print_str] - // [118] phi print_char_cursor#167 = print_char_cursor#212 [phi:printEntry::@15->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str1 [phi:printEntry::@15->print_str#1] -- pbuz1=pbuc1 + // [141] call print_str + // [119] phi from printEntry::@15 to print_str [phi:printEntry::@15->print_str] + // [119] phi print_char_cursor#167 = print_char_cursor#212 [phi:printEntry::@15->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str1 [phi:printEntry::@15->print_str#1] -- pbuz1=pbuc1 lda #str1 sta.z print_str.str+1 jsr print_str - // [141] phi from printEntry::@15 to printEntry::entryBufEdit1 [phi:printEntry::@15->printEntry::entryBufEdit1] + // [142] phi from printEntry::@15 to printEntry::entryBufEdit1 [phi:printEntry::@15->printEntry::entryBufEdit1] // printEntry::entryBufEdit1 // printEntry::@2 - // [142] print_uint::w#8 = (word)((byte**)printEntry::entry#10)[2] -- vwuz1=pwuz2_derefidx_vbuc1 + // [143] print_uint::w#8 = (word)((byte**)printEntry::entry#10)[2] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #2 lda (entry),y sta.z print_uint.w @@ -8245,85 +8253,85 @@ printEntry: { lda (entry),y sta.z print_uint.w+1 // print_uint((word)*entryBufEdit(entry)) - // [143] call print_uint - // [240] phi from printEntry::@2 to print_uint [phi:printEntry::@2->print_uint] - // [240] phi print_uint::w#5 = print_uint::w#8 [phi:printEntry::@2->print_uint#0] -- register_copy + // [144] call print_uint + // [241] phi from printEntry::@2 to print_uint [phi:printEntry::@2->print_uint] + // [241] phi print_uint::w#5 = print_uint::w#8 [phi:printEntry::@2->print_uint#0] -- register_copy jsr print_uint // printEntry::@16 - // [144] print_line_cursor#160 = print_line_cursor#0 -- pbuz1=pbuz2 + // [145] print_line_cursor#160 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [145] call print_ln - // [125] phi from printEntry::@16 to print_ln [phi:printEntry::@16->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@16->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#160 [phi:printEntry::@16->print_ln#1] -- register_copy + // [146] call print_ln + // [126] phi from printEntry::@16 to print_ln [phi:printEntry::@16->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@16->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#160 [phi:printEntry::@16->print_ln#1] -- register_copy jsr print_ln // printEntry::@17 - // [146] print_char_cursor#213 = print_line_cursor#0 -- pbuz1=pbuz2 + // [147] print_char_cursor#213 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("tslen ") - // [147] call print_str - // [118] phi from printEntry::@17 to print_str [phi:printEntry::@17->print_str] - // [118] phi print_char_cursor#167 = print_char_cursor#213 [phi:printEntry::@17->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str2 [phi:printEntry::@17->print_str#1] -- pbuz1=pbuc1 + // [148] call print_str + // [119] phi from printEntry::@17 to print_str [phi:printEntry::@17->print_str] + // [119] phi print_char_cursor#167 = print_char_cursor#213 [phi:printEntry::@17->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str2 [phi:printEntry::@17->print_str#1] -- pbuz1=pbuc1 lda #str2 sta.z print_str.str+1 jsr print_str - // [148] phi from printEntry::@17 to printEntry::entryTsLen1 [phi:printEntry::@17->printEntry::entryTsLen1] + // [149] phi from printEntry::@17 to printEntry::entryTsLen1 [phi:printEntry::@17->printEntry::entryTsLen1] // printEntry::entryTsLen1 // printEntry::@3 // print_uint(*entryTsLen(entry)) - // [149] print_uint::w#2 = ((word*)printEntry::entry#10)[4] -- vwuz1=pwuz2_derefidx_vbuc1 + // [150] print_uint::w#2 = ((word*)printEntry::entry#10)[4] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #4 lda (entry),y sta.z print_uint.w iny lda (entry),y sta.z print_uint.w+1 - // [150] call print_uint - // [240] phi from printEntry::@3 to print_uint [phi:printEntry::@3->print_uint] - // [240] phi print_uint::w#5 = print_uint::w#2 [phi:printEntry::@3->print_uint#0] -- register_copy + // [151] call print_uint + // [241] phi from printEntry::@3 to print_uint [phi:printEntry::@3->print_uint] + // [241] phi print_uint::w#5 = print_uint::w#2 [phi:printEntry::@3->print_uint#0] -- register_copy jsr print_uint // printEntry::@18 - // [151] print_line_cursor#161 = print_line_cursor#0 -- pbuz1=pbuz2 + // [152] print_line_cursor#161 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [152] call print_ln - // [125] phi from printEntry::@18 to print_ln [phi:printEntry::@18->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@18->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#161 [phi:printEntry::@18->print_ln#1] -- register_copy + // [153] call print_ln + // [126] phi from printEntry::@18 to print_ln [phi:printEntry::@18->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@18->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#161 [phi:printEntry::@18->print_ln#1] -- register_copy jsr print_ln // printEntry::@19 - // [153] print_char_cursor#214 = print_line_cursor#0 -- pbuz1=pbuz2 + // [154] print_char_cursor#214 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("tsorder ") - // [154] call print_str - // [118] phi from printEntry::@19 to print_str [phi:printEntry::@19->print_str] - // [118] phi print_char_cursor#167 = print_char_cursor#214 [phi:printEntry::@19->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str3 [phi:printEntry::@19->print_str#1] -- pbuz1=pbuc1 + // [155] call print_str + // [119] phi from printEntry::@19 to print_str [phi:printEntry::@19->print_str] + // [119] phi print_char_cursor#167 = print_char_cursor#214 [phi:printEntry::@19->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str3 [phi:printEntry::@19->print_str#1] -- pbuz1=pbuc1 lda #str3 sta.z print_str.str+1 jsr print_str - // [155] phi from printEntry::@19 to printEntry::entryTsOrder1 [phi:printEntry::@19->printEntry::entryTsOrder1] + // [156] phi from printEntry::@19 to printEntry::entryTsOrder1 [phi:printEntry::@19->printEntry::entryTsOrder1] // printEntry::entryTsOrder1 // printEntry::@4 - // [156] print_uint::w#10 = (word)((word**)printEntry::entry#10)[6] -- vwuz1=pwuz2_derefidx_vbuc1 + // [157] print_uint::w#10 = (word)((word**)printEntry::entry#10)[6] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #6 lda (entry),y sta.z print_uint.w @@ -8331,396 +8339,396 @@ printEntry: { lda (entry),y sta.z print_uint.w+1 // print_uint((word)*entryTsOrder(entry)) - // [157] call print_uint - // [240] phi from printEntry::@4 to print_uint [phi:printEntry::@4->print_uint] - // [240] phi print_uint::w#5 = print_uint::w#10 [phi:printEntry::@4->print_uint#0] -- register_copy + // [158] call print_uint + // [241] phi from printEntry::@4 to print_uint [phi:printEntry::@4->print_uint] + // [241] phi print_uint::w#5 = print_uint::w#10 [phi:printEntry::@4->print_uint#0] -- register_copy jsr print_uint // printEntry::@20 - // [158] print_line_cursor#162 = print_line_cursor#0 -- pbuz1=pbuz2 + // [159] print_line_cursor#162 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [159] call print_ln - // [125] phi from printEntry::@20 to print_ln [phi:printEntry::@20->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@20->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#162 [phi:printEntry::@20->print_ln#1] -- register_copy + // [160] call print_ln + // [126] phi from printEntry::@20 to print_ln [phi:printEntry::@20->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@20->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#162 [phi:printEntry::@20->print_ln#1] -- register_copy jsr print_ln // printEntry::@21 - // [160] print_char_cursor#215 = print_line_cursor#0 -- pbuz1=pbuz2 + // [161] print_char_cursor#215 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("tlastlink ") - // [161] call print_str - // [118] phi from printEntry::@21 to print_str [phi:printEntry::@21->print_str] - // [118] phi print_char_cursor#167 = print_char_cursor#215 [phi:printEntry::@21->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str4 [phi:printEntry::@21->print_str#1] -- pbuz1=pbuc1 + // [162] call print_str + // [119] phi from printEntry::@21 to print_str [phi:printEntry::@21->print_str] + // [119] phi print_char_cursor#167 = print_char_cursor#215 [phi:printEntry::@21->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str4 [phi:printEntry::@21->print_str#1] -- pbuz1=pbuc1 lda #str4 sta.z print_str.str+1 jsr print_str - // [162] phi from printEntry::@21 to printEntry::entryTLastLink1 [phi:printEntry::@21->printEntry::entryTLastLink1] + // [163] phi from printEntry::@21 to printEntry::entryTLastLink1 [phi:printEntry::@21->printEntry::entryTLastLink1] // printEntry::entryTLastLink1 // printEntry::@5 // print_uchar(*entryTLastLink(entry)) - // [163] print_uchar::b#2 = printEntry::entry#10[8] -- vbuxx=pbuz1_derefidx_vbuc1 + // [164] print_uchar::b#2 = printEntry::entry#10[8] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #8 lda (entry),y tax - // [164] call print_uchar - // [246] phi from printEntry::@5 to print_uchar [phi:printEntry::@5->print_uchar] - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@5->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#2 [phi:printEntry::@5->print_uchar#1] -- register_copy + // [165] call print_uchar + // [247] phi from printEntry::@5 to print_uchar [phi:printEntry::@5->print_uchar] + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@5->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#2 [phi:printEntry::@5->print_uchar#1] -- register_copy jsr print_uchar // printEntry::@22 - // [165] print_line_cursor#163 = print_line_cursor#0 -- pbuz1=pbuz2 + // [166] print_line_cursor#163 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [166] call print_ln - // [125] phi from printEntry::@22 to print_ln [phi:printEntry::@22->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@22->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#163 [phi:printEntry::@22->print_ln#1] -- register_copy + // [167] call print_ln + // [126] phi from printEntry::@22 to print_ln [phi:printEntry::@22->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@22->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#163 [phi:printEntry::@22->print_ln#1] -- register_copy jsr print_ln // printEntry::@23 - // [167] print_char_cursor#216 = print_line_cursor#0 -- pbuz1=pbuz2 + // [168] print_char_cursor#216 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("slastlink ") - // [168] call print_str - // [118] phi from printEntry::@23 to print_str [phi:printEntry::@23->print_str] - // [118] phi print_char_cursor#167 = print_char_cursor#216 [phi:printEntry::@23->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str5 [phi:printEntry::@23->print_str#1] -- pbuz1=pbuc1 + // [169] call print_str + // [119] phi from printEntry::@23 to print_str [phi:printEntry::@23->print_str] + // [119] phi print_char_cursor#167 = print_char_cursor#216 [phi:printEntry::@23->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str5 [phi:printEntry::@23->print_str#1] -- pbuz1=pbuc1 lda #str5 sta.z print_str.str+1 jsr print_str - // [169] phi from printEntry::@23 to printEntry::entrySLastLink1 [phi:printEntry::@23->printEntry::entrySLastLink1] + // [170] phi from printEntry::@23 to printEntry::entrySLastLink1 [phi:printEntry::@23->printEntry::entrySLastLink1] // printEntry::entrySLastLink1 // printEntry::@6 // print_uchar(*entrySLastLink(entry)) - // [170] print_uchar::b#3 = printEntry::entry#10[9] -- vbuxx=pbuz1_derefidx_vbuc1 + // [171] print_uchar::b#3 = printEntry::entry#10[9] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #9 lda (entry),y tax - // [171] call print_uchar - // [246] phi from printEntry::@6 to print_uchar [phi:printEntry::@6->print_uchar] - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@6->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#3 [phi:printEntry::@6->print_uchar#1] -- register_copy + // [172] call print_uchar + // [247] phi from printEntry::@6 to print_uchar [phi:printEntry::@6->print_uchar] + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@6->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#3 [phi:printEntry::@6->print_uchar#1] -- register_copy jsr print_uchar // printEntry::@24 - // [172] print_line_cursor#164 = print_line_cursor#0 -- pbuz1=pbuz2 + // [173] print_line_cursor#164 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [173] call print_ln - // [125] phi from printEntry::@24 to print_ln [phi:printEntry::@24->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@24->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#164 [phi:printEntry::@24->print_ln#1] -- register_copy + // [174] call print_ln + // [126] phi from printEntry::@24 to print_ln [phi:printEntry::@24->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@24->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#164 [phi:printEntry::@24->print_ln#1] -- register_copy jsr print_ln // printEntry::@25 - // [174] print_char_cursor#217 = print_line_cursor#0 -- pbuz1=pbuz2 + // [175] print_char_cursor#217 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("bflag ") - // [175] call print_str - // [118] phi from printEntry::@25 to print_str [phi:printEntry::@25->print_str] - // [118] phi print_char_cursor#167 = print_char_cursor#217 [phi:printEntry::@25->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str6 [phi:printEntry::@25->print_str#1] -- pbuz1=pbuc1 + // [176] call print_str + // [119] phi from printEntry::@25 to print_str [phi:printEntry::@25->print_str] + // [119] phi print_char_cursor#167 = print_char_cursor#217 [phi:printEntry::@25->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str6 [phi:printEntry::@25->print_str#1] -- pbuz1=pbuc1 lda #str6 sta.z print_str.str+1 jsr print_str - // [176] phi from printEntry::@25 to printEntry::entryBFlag1 [phi:printEntry::@25->printEntry::entryBFlag1] + // [177] phi from printEntry::@25 to printEntry::entryBFlag1 [phi:printEntry::@25->printEntry::entryBFlag1] // printEntry::entryBFlag1 // printEntry::@7 // print_uchar(*entryBFlag(entry)) - // [177] print_uchar::b#4 = printEntry::entry#10[$a] -- vbuxx=pbuz1_derefidx_vbuc1 + // [178] print_uchar::b#4 = printEntry::entry#10[$a] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$a lda (entry),y tax - // [178] call print_uchar - // [246] phi from printEntry::@7 to print_uchar [phi:printEntry::@7->print_uchar] - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@7->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#4 [phi:printEntry::@7->print_uchar#1] -- register_copy + // [179] call print_uchar + // [247] phi from printEntry::@7 to print_uchar [phi:printEntry::@7->print_uchar] + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@7->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#4 [phi:printEntry::@7->print_uchar#1] -- register_copy jsr print_uchar // printEntry::@26 - // [179] print_line_cursor#165 = print_line_cursor#0 -- pbuz1=pbuz2 + // [180] print_line_cursor#165 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [180] call print_ln - // [125] phi from printEntry::@26 to print_ln [phi:printEntry::@26->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@26->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#165 [phi:printEntry::@26->print_ln#1] -- register_copy + // [181] call print_ln + // [126] phi from printEntry::@26 to print_ln [phi:printEntry::@26->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@26->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#165 [phi:printEntry::@26->print_ln#1] -- register_copy jsr print_ln // printEntry::@27 - // [181] print_char_cursor#218 = print_line_cursor#0 -- pbuz1=pbuz2 + // [182] print_char_cursor#218 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("berror ") - // [182] call print_str - // [118] phi from printEntry::@27 to print_str [phi:printEntry::@27->print_str] - // [118] phi print_char_cursor#167 = print_char_cursor#218 [phi:printEntry::@27->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str7 [phi:printEntry::@27->print_str#1] -- pbuz1=pbuc1 + // [183] call print_str + // [119] phi from printEntry::@27 to print_str [phi:printEntry::@27->print_str] + // [119] phi print_char_cursor#167 = print_char_cursor#218 [phi:printEntry::@27->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str7 [phi:printEntry::@27->print_str#1] -- pbuz1=pbuc1 lda #str7 sta.z print_str.str+1 jsr print_str - // [183] phi from printEntry::@27 to printEntry::entryBError1 [phi:printEntry::@27->printEntry::entryBError1] + // [184] phi from printEntry::@27 to printEntry::entryBError1 [phi:printEntry::@27->printEntry::entryBError1] // printEntry::entryBError1 // printEntry::@8 // print_uchar(*entryBError(entry)) - // [184] print_uchar::b#5 = printEntry::entry#10[$b] -- vbuxx=pbuz1_derefidx_vbuc1 + // [185] print_uchar::b#5 = printEntry::entry#10[$b] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$b lda (entry),y tax - // [185] call print_uchar - // [246] phi from printEntry::@8 to print_uchar [phi:printEntry::@8->print_uchar] - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@8->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#5 [phi:printEntry::@8->print_uchar#1] -- register_copy + // [186] call print_uchar + // [247] phi from printEntry::@8 to print_uchar [phi:printEntry::@8->print_uchar] + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@8->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#5 [phi:printEntry::@8->print_uchar#1] -- register_copy jsr print_uchar // printEntry::@28 - // [186] print_line_cursor#166 = print_line_cursor#0 -- pbuz1=pbuz2 + // [187] print_line_cursor#166 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [187] call print_ln - // [125] phi from printEntry::@28 to print_ln [phi:printEntry::@28->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@28->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#166 [phi:printEntry::@28->print_ln#1] -- register_copy + // [188] call print_ln + // [126] phi from printEntry::@28 to print_ln [phi:printEntry::@28->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@28->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#166 [phi:printEntry::@28->print_ln#1] -- register_copy jsr print_ln // printEntry::@29 - // [188] print_char_cursor#219 = print_line_cursor#0 -- pbuz1=pbuz2 + // [189] print_char_cursor#219 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("ucross ") - // [189] call print_str - // [118] phi from printEntry::@29 to print_str [phi:printEntry::@29->print_str] - // [118] phi print_char_cursor#167 = print_char_cursor#219 [phi:printEntry::@29->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str8 [phi:printEntry::@29->print_str#1] -- pbuz1=pbuc1 + // [190] call print_str + // [119] phi from printEntry::@29 to print_str [phi:printEntry::@29->print_str] + // [119] phi print_char_cursor#167 = print_char_cursor#219 [phi:printEntry::@29->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str8 [phi:printEntry::@29->print_str#1] -- pbuz1=pbuc1 lda #str8 sta.z print_str.str+1 jsr print_str - // [190] phi from printEntry::@29 to printEntry::entryUCross1 [phi:printEntry::@29->printEntry::entryUCross1] + // [191] phi from printEntry::@29 to printEntry::entryUCross1 [phi:printEntry::@29->printEntry::entryUCross1] // printEntry::entryUCross1 // printEntry::@9 // print_uint(*entryUCross(entry)) - // [191] print_uint::w#4 = ((word*)printEntry::entry#10)[$c] -- vwuz1=pwuz2_derefidx_vbuc1 + // [192] print_uint::w#4 = ((word*)printEntry::entry#10)[$c] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #$c lda (entry),y sta.z print_uint.w iny lda (entry),y sta.z print_uint.w+1 - // [192] call print_uint - // [240] phi from printEntry::@9 to print_uint [phi:printEntry::@9->print_uint] - // [240] phi print_uint::w#5 = print_uint::w#4 [phi:printEntry::@9->print_uint#0] -- register_copy + // [193] call print_uint + // [241] phi from printEntry::@9 to print_uint [phi:printEntry::@9->print_uint] + // [241] phi print_uint::w#5 = print_uint::w#4 [phi:printEntry::@9->print_uint#0] -- register_copy jsr print_uint // printEntry::@30 - // [193] print_line_cursor#167 = print_line_cursor#0 -- pbuz1=pbuz2 + // [194] print_line_cursor#167 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [194] call print_ln - // [125] phi from printEntry::@30 to print_ln [phi:printEntry::@30->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@30->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#167 [phi:printEntry::@30->print_ln#1] -- register_copy + // [195] call print_ln + // [126] phi from printEntry::@30 to print_ln [phi:printEntry::@30->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@30->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#167 [phi:printEntry::@30->print_ln#1] -- register_copy jsr print_ln // printEntry::@31 - // [195] print_char_cursor#220 = print_line_cursor#0 -- pbuz1=pbuz2 + // [196] print_char_cursor#220 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("baddrlo ") - // [196] call print_str - // [118] phi from printEntry::@31 to print_str [phi:printEntry::@31->print_str] - // [118] phi print_char_cursor#167 = print_char_cursor#220 [phi:printEntry::@31->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str9 [phi:printEntry::@31->print_str#1] -- pbuz1=pbuc1 + // [197] call print_str + // [119] phi from printEntry::@31 to print_str [phi:printEntry::@31->print_str] + // [119] phi print_char_cursor#167 = print_char_cursor#220 [phi:printEntry::@31->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str9 [phi:printEntry::@31->print_str#1] -- pbuz1=pbuc1 lda #str9 sta.z print_str.str+1 jsr print_str - // [197] phi from printEntry::@31 to printEntry::entryBAddrLo1 [phi:printEntry::@31->printEntry::entryBAddrLo1] + // [198] phi from printEntry::@31 to printEntry::entryBAddrLo1 [phi:printEntry::@31->printEntry::entryBAddrLo1] // printEntry::entryBAddrLo1 // printEntry::@10 // print_uchar(*entryBAddrLo(entry)) - // [198] print_uchar::b#6 = printEntry::entry#10[$e] -- vbuxx=pbuz1_derefidx_vbuc1 + // [199] print_uchar::b#6 = printEntry::entry#10[$e] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$e lda (entry),y tax - // [199] call print_uchar - // [246] phi from printEntry::@10 to print_uchar [phi:printEntry::@10->print_uchar] - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@10->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#6 [phi:printEntry::@10->print_uchar#1] -- register_copy + // [200] call print_uchar + // [247] phi from printEntry::@10 to print_uchar [phi:printEntry::@10->print_uchar] + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@10->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#6 [phi:printEntry::@10->print_uchar#1] -- register_copy jsr print_uchar // printEntry::@32 - // [200] print_line_cursor#168 = print_line_cursor#0 -- pbuz1=pbuz2 + // [201] print_line_cursor#168 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [201] call print_ln - // [125] phi from printEntry::@32 to print_ln [phi:printEntry::@32->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@32->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#168 [phi:printEntry::@32->print_ln#1] -- register_copy + // [202] call print_ln + // [126] phi from printEntry::@32 to print_ln [phi:printEntry::@32->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@32->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#168 [phi:printEntry::@32->print_ln#1] -- register_copy jsr print_ln // printEntry::@33 - // [202] print_char_cursor#221 = print_line_cursor#0 -- pbuz1=pbuz2 + // [203] print_char_cursor#221 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("baddrhi ") - // [203] call print_str - // [118] phi from printEntry::@33 to print_str [phi:printEntry::@33->print_str] - // [118] phi print_char_cursor#167 = print_char_cursor#221 [phi:printEntry::@33->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str10 [phi:printEntry::@33->print_str#1] -- pbuz1=pbuc1 + // [204] call print_str + // [119] phi from printEntry::@33 to print_str [phi:printEntry::@33->print_str] + // [119] phi print_char_cursor#167 = print_char_cursor#221 [phi:printEntry::@33->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str10 [phi:printEntry::@33->print_str#1] -- pbuz1=pbuc1 lda #str10 sta.z print_str.str+1 jsr print_str - // [204] phi from printEntry::@33 to printEntry::entryBAddrHi1 [phi:printEntry::@33->printEntry::entryBAddrHi1] + // [205] phi from printEntry::@33 to printEntry::entryBAddrHi1 [phi:printEntry::@33->printEntry::entryBAddrHi1] // printEntry::entryBAddrHi1 // printEntry::@11 // print_uchar(*entryBAddrHi(entry)) - // [205] print_uchar::b#7 = printEntry::entry#10[$f] -- vbuxx=pbuz1_derefidx_vbuc1 + // [206] print_uchar::b#7 = printEntry::entry#10[$f] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$f lda (entry),y tax - // [206] call print_uchar - // [246] phi from printEntry::@11 to print_uchar [phi:printEntry::@11->print_uchar] - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@11->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#7 [phi:printEntry::@11->print_uchar#1] -- register_copy + // [207] call print_uchar + // [247] phi from printEntry::@11 to print_uchar [phi:printEntry::@11->print_uchar] + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@11->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#7 [phi:printEntry::@11->print_uchar#1] -- register_copy jsr print_uchar // printEntry::@34 - // [207] print_line_cursor#169 = print_line_cursor#0 -- pbuz1=pbuz2 + // [208] print_line_cursor#169 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [208] call print_ln - // [125] phi from printEntry::@34 to print_ln [phi:printEntry::@34->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@34->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#169 [phi:printEntry::@34->print_ln#1] -- register_copy + // [209] call print_ln + // [126] phi from printEntry::@34 to print_ln [phi:printEntry::@34->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@34->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#169 [phi:printEntry::@34->print_ln#1] -- register_copy jsr print_ln // printEntry::@35 - // [209] print_char_cursor#222 = print_line_cursor#0 -- pbuz1=pbuz2 + // [210] print_char_cursor#222 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("thi ") - // [210] call print_str - // [118] phi from printEntry::@35 to print_str [phi:printEntry::@35->print_str] - // [118] phi print_char_cursor#167 = print_char_cursor#222 [phi:printEntry::@35->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str11 [phi:printEntry::@35->print_str#1] -- pbuz1=pbuc1 + // [211] call print_str + // [119] phi from printEntry::@35 to print_str [phi:printEntry::@35->print_str] + // [119] phi print_char_cursor#167 = print_char_cursor#222 [phi:printEntry::@35->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str11 [phi:printEntry::@35->print_str#1] -- pbuz1=pbuc1 lda #str11 sta.z print_str.str+1 jsr print_str - // [211] phi from printEntry::@35 to printEntry::entryTHi1 [phi:printEntry::@35->printEntry::entryTHi1] + // [212] phi from printEntry::@35 to printEntry::entryTHi1 [phi:printEntry::@35->printEntry::entryTHi1] // printEntry::entryTHi1 // printEntry::@12 // print_uchar(*entryTHi(entry)) - // [212] print_uchar::b#8 = printEntry::entry#10[$10] -- vbuxx=pbuz1_derefidx_vbuc1 + // [213] print_uchar::b#8 = printEntry::entry#10[$10] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$10 lda (entry),y tax - // [213] call print_uchar - // [246] phi from printEntry::@12 to print_uchar [phi:printEntry::@12->print_uchar] - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@12->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#8 [phi:printEntry::@12->print_uchar#1] -- register_copy + // [214] call print_uchar + // [247] phi from printEntry::@12 to print_uchar [phi:printEntry::@12->print_uchar] + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@12->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#8 [phi:printEntry::@12->print_uchar#1] -- register_copy jsr print_uchar // printEntry::@36 - // [214] print_line_cursor#170 = print_line_cursor#0 -- pbuz1=pbuz2 + // [215] print_line_cursor#170 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [215] call print_ln - // [125] phi from printEntry::@36 to print_ln [phi:printEntry::@36->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@36->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#170 [phi:printEntry::@36->print_ln#1] -- register_copy + // [216] call print_ln + // [126] phi from printEntry::@36 to print_ln [phi:printEntry::@36->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@36->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#170 [phi:printEntry::@36->print_ln#1] -- register_copy jsr print_ln // printEntry::@37 - // [216] print_char_cursor#223 = print_line_cursor#0 -- pbuz1=pbuz2 + // [217] print_char_cursor#223 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("tlo ") - // [217] call print_str - // [118] phi from printEntry::@37 to print_str [phi:printEntry::@37->print_str] - // [118] phi print_char_cursor#167 = print_char_cursor#223 [phi:printEntry::@37->print_str#0] -- register_copy - // [118] phi print_str::str#21 = printEntry::str12 [phi:printEntry::@37->print_str#1] -- pbuz1=pbuc1 + // [218] call print_str + // [119] phi from printEntry::@37 to print_str [phi:printEntry::@37->print_str] + // [119] phi print_char_cursor#167 = print_char_cursor#223 [phi:printEntry::@37->print_str#0] -- register_copy + // [119] phi print_str::str#21 = printEntry::str12 [phi:printEntry::@37->print_str#1] -- pbuz1=pbuc1 lda #str12 sta.z print_str.str+1 jsr print_str - // [218] phi from printEntry::@37 to printEntry::entryTLo1 [phi:printEntry::@37->printEntry::entryTLo1] + // [219] phi from printEntry::@37 to printEntry::entryTLo1 [phi:printEntry::@37->printEntry::entryTLo1] // printEntry::entryTLo1 // printEntry::@13 // print_uchar(*entryTLo(entry)) - // [219] print_uchar::b#9 = printEntry::entry#10[$11] -- vbuxx=pbuz1_derefidx_vbuc1 + // [220] print_uchar::b#9 = printEntry::entry#10[$11] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$11 lda (entry),y tax - // [220] call print_uchar - // [246] phi from printEntry::@13 to print_uchar [phi:printEntry::@13->print_uchar] - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@13->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#9 [phi:printEntry::@13->print_uchar#1] -- register_copy + // [221] call print_uchar + // [247] phi from printEntry::@13 to print_uchar [phi:printEntry::@13->print_uchar] + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@13->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#9 [phi:printEntry::@13->print_uchar#1] -- register_copy jsr print_uchar // printEntry::@38 - // [221] print_line_cursor#171 = print_line_cursor#0 -- pbuz1=pbuz2 + // [222] print_line_cursor#171 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [222] call print_ln - // [125] phi from printEntry::@38 to print_ln [phi:printEntry::@38->print_ln] - // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@38->print_ln#0] -- register_copy - // [125] phi print_line_cursor#65 = print_line_cursor#171 [phi:printEntry::@38->print_ln#1] -- register_copy + // [223] call print_ln + // [126] phi from printEntry::@38 to print_ln [phi:printEntry::@38->print_ln] + // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@38->print_ln#0] -- register_copy + // [126] phi print_line_cursor#65 = print_line_cursor#171 [phi:printEntry::@38->print_ln#1] -- register_copy jsr print_ln // printEntry::@return // } - // [223] return + // [224] return rts .segment Data str: .text "bufdisk " @@ -8760,17 +8768,17 @@ keyboard_key_pressed: { .const colidx = KEY_SPACE&7 .label rowidx = KEY_SPACE>>3 // keyboard_matrix_read(rowidx) - // [225] call keyboard_matrix_read + // [226] call keyboard_matrix_read jsr keyboard_matrix_read - // [226] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 + // [227] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 // keyboard_key_pressed::@1 - // [227] keyboard_key_pressed::$2 = keyboard_matrix_read::return#2 + // [228] keyboard_key_pressed::$2 = keyboard_matrix_read::return#2 // keyboard_matrix_read(rowidx) & keyboard_matrix_col_bitmask[colidx] - // [228] keyboard_key_pressed::return#0 = keyboard_key_pressed::$2 & *(keyboard_matrix_col_bitmask+keyboard_key_pressed::colidx#0) -- vbuaa=vbuaa_band__deref_pbuc1 + // [229] keyboard_key_pressed::return#0 = keyboard_key_pressed::$2 & *(keyboard_matrix_col_bitmask+keyboard_key_pressed::colidx#0) -- vbuaa=vbuaa_band__deref_pbuc1 and keyboard_matrix_col_bitmask+colidx // keyboard_key_pressed::@return // } - // [229] return + // [230] return rts } // memset @@ -8781,8 +8789,8 @@ memset: { .label str = print_screen .label end = str+num .label dst = $a - // [231] phi from memset to memset::@1 [phi:memset->memset::@1] - // [231] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [232] phi from memset to memset::@1 [phi:memset->memset::@1] + // [232] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -8790,7 +8798,7 @@ memset: { // memset::@1 __b1: // for(char* dst = str; dst!=end; dst++) - // [232] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 + // [233] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z dst+1 cmp #>end bne __b2 @@ -8799,23 +8807,23 @@ memset: { bne __b2 // memset::@return // } - // [233] return + // [234] return rts // memset::@2 __b2: // *dst = c - // [234] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 + // [235] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 lda #c ldy #0 sta (dst),y // for(char* dst = str; dst!=end; dst++) - // [235] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 + // [236] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: - // [231] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1] - // [231] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy + // [232] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1] + // [232] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy jmp __b1 } // print_char @@ -8823,18 +8831,18 @@ memset: { // print_char(byte register(A) ch) print_char: { // *(print_char_cursor++) = ch - // [237] *print_char_cursor#83 = print_char::ch#3 -- _deref_pbuz1=vbuaa + // [238] *print_char_cursor#83 = print_char::ch#3 -- _deref_pbuz1=vbuaa ldy #0 sta (print_char_cursor),y // *(print_char_cursor++) = ch; - // [238] print_char_cursor#10 = ++ print_char_cursor#83 -- pbuz1=_inc_pbuz1 + // [239] print_char_cursor#10 = ++ print_char_cursor#83 -- pbuz1=_inc_pbuz1 inc.z print_char_cursor bne !+ inc.z print_char_cursor+1 !: // print_char::@return // } - // [239] return + // [240] return rts } // print_uint @@ -8843,25 +8851,25 @@ print_char: { print_uint: { .label w = 8 // print_uchar(>w) - // [241] print_uchar::b#0 = > print_uint::w#5 -- vbuxx=_hi_vwuz1 + // [242] print_uchar::b#0 = > print_uint::w#5 -- vbuxx=_hi_vwuz1 ldx.z w+1 - // [242] call print_uchar - // [246] phi from print_uint to print_uchar [phi:print_uint->print_uchar] - // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:print_uint->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy + // [243] call print_uchar + // [247] phi from print_uint to print_uchar [phi:print_uint->print_uchar] + // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:print_uint->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy jsr print_uchar // print_uint::@1 // print_uchar(print_uchar] - // [246] phi print_char_cursor#148 = print_char_cursor#10 [phi:print_uint::@1->print_uchar#0] -- register_copy - // [246] phi print_uchar::b#10 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy + // [245] call print_uchar + // [247] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] + // [247] phi print_char_cursor#148 = print_char_cursor#10 [phi:print_uint::@1->print_uchar#0] -- register_copy + // [247] phi print_uchar::b#10 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy jsr print_uchar // print_uint::@return // } - // [245] return + // [246] return rts } // print_uchar @@ -8869,38 +8877,38 @@ print_uint: { // print_uchar(byte register(X) b) print_uchar: { // b>>4 - // [247] print_uchar::$0 = print_uchar::b#10 >> 4 -- vbuaa=vbuxx_ror_4 + // [248] print_uchar::$0 = print_uchar::b#10 >> 4 -- vbuaa=vbuxx_ror_4 txa lsr lsr lsr lsr // print_char(print_hextab[b>>4]) - // [248] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa + // [249] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [249] call print_char + // [250] call print_char // Table of hexadecimal digits - // [236] phi from print_uchar to print_char [phi:print_uchar->print_char] - // [236] phi print_char_cursor#83 = print_char_cursor#148 [phi:print_uchar->print_char#0] -- register_copy - // [236] phi print_char::ch#3 = print_char::ch#1 [phi:print_uchar->print_char#1] -- register_copy + // [237] phi from print_uchar to print_char [phi:print_uchar->print_char] + // [237] phi print_char_cursor#83 = print_char_cursor#148 [phi:print_uchar->print_char#0] -- register_copy + // [237] phi print_char::ch#3 = print_char::ch#1 [phi:print_uchar->print_char#1] -- register_copy jsr print_char // print_uchar::@1 // b&$f - // [250] print_uchar::$2 = print_uchar::b#10 & $f -- vbuxx=vbuxx_band_vbuc1 + // [251] print_uchar::$2 = print_uchar::b#10 & $f -- vbuxx=vbuxx_band_vbuc1 lda #$f axs #0 // print_char(print_hextab[b&$f]) - // [251] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx + // [252] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [252] call print_char - // [236] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] - // [236] phi print_char_cursor#83 = print_char_cursor#10 [phi:print_uchar::@1->print_char#0] -- register_copy - // [236] phi print_char::ch#3 = print_char::ch#2 [phi:print_uchar::@1->print_char#1] -- register_copy + // [253] call print_char + // [237] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] + // [237] phi print_char_cursor#83 = print_char_cursor#10 [phi:print_uchar::@1->print_char#0] -- register_copy + // [237] phi print_char::ch#3 = print_char::ch#2 [phi:print_uchar::@1->print_char#1] -- register_copy jsr print_char // print_uchar::@return // } - // [253] return + // [254] return rts } // keyboard_matrix_read @@ -8911,16 +8919,16 @@ print_uchar: { // leading to erroneous readings. You must disable the normal interrupt or sei/cli around calls to the keyboard matrix reader. keyboard_matrix_read: { // CIA1->PORT_A = keyboard_matrix_row_bitmask[rowid] - // [254] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) -- _deref_pbuc1=_deref_pbuc2 + // [255] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) -- _deref_pbuc1=_deref_pbuc2 lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx sta CIA1 // ~CIA1->PORT_B - // [255] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 + // [256] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B eor #$ff // keyboard_matrix_read::@return // } - // [256] return + // [257] return rts } // File Data diff --git a/src/test/ref/semi-struct-2.sym b/src/test/ref/semi-struct-2.sym index bc9a56edf..4336b6d14 100644 --- a/src/test/ref/semi-struct-2.sym +++ b/src/test/ref/semi-struct-2.sym @@ -11,7 +11,7 @@ constant byte RADIX::OCTAL = 8 constant const byte SIZEOF_ENTRY = $12 constant byte* files[(word)MAX_FILES*SIZEOF_ENTRY] = { fill( (word)MAX_FILES*SIZEOF_ENTRY, 0) } void initEntry(byte* initEntry::entry , byte initEntry::n) -word~ initEntry::$1 zp[2]:8 11.0 +byte*~ initEntry::$1 zp[2]:8 22.0 byte~ initEntry::$11 reg byte a 22.0 byte~ initEntry::$13 reg byte a 22.0 byte~ initEntry::$15 reg byte a 22.0 @@ -20,14 +20,15 @@ byte~ initEntry::$19 reg byte a 22.0 byte~ initEntry::$21 reg byte a 22.0 byte~ initEntry::$23 reg byte a 22.0 byte~ initEntry::$25 reg byte a 22.0 -word~ initEntry::$3 zp[2]:16 11.0 +byte~ initEntry::$26 reg byte a 22.0 +byte*~ initEntry::$3 zp[2]:16 22.0 word~ initEntry::$5 zp[2]:10 22.0 -word~ initEntry::$7 zp[2]:12 11.0 +word*~ initEntry::$7 zp[2]:12 22.0 byte~ initEntry::$9 reg byte a 22.0 byte* initEntry::entry byte* initEntry::entry#0 entry zp[2]:4 4.0 byte* initEntry::entry#1 entry zp[2]:4 4.0 -byte* initEntry::entry#10 entry zp[2]:4 2.3589743589743586 +byte* initEntry::entry#10 entry zp[2]:4 2.3 byte* initEntry::entryBAddrHi1_entry byte* initEntry::entryBAddrHi1_return byte* initEntry::entryBAddrLo1_entry @@ -55,7 +56,7 @@ word** initEntry::entryTsOrder1_return byte* initEntry::entryUCross1_entry word* initEntry::entryUCross1_return byte initEntry::n -byte initEntry::n#10 reg byte x 3.7631578947368434 +byte initEntry::n#10 reg byte x 3.6666666666666656 void keyboard_init() byte keyboard_key_pressed(byte keyboard_key_pressed::key) byte~ keyboard_key_pressed::$2 reg byte a 202.0 @@ -270,6 +271,7 @@ reg byte a [ main::$22 ] reg byte a [ mul8u::$1 ] zp[2]:8 [ initEntry::$1 print_uint::w#5 print_uint::w#7 print_uint::w#8 print_uint::w#2 print_uint::w#10 print_uint::w#4 ] zp[2]:10 [ initEntry::$5 print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 memset::dst#2 memset::dst#1 ] +reg byte a [ initEntry::$26 ] zp[2]:12 [ initEntry::$7 ] reg byte a [ initEntry::$9 ] reg byte a [ initEntry::$11 ] diff --git a/src/test/ref/sieve.asm b/src/test/ref/sieve.asm index 862e5c8f5..9b9df1cb4 100644 --- a/src/test/ref/sieve.asm +++ b/src/test/ref/sieve.asm @@ -54,7 +54,7 @@ main: { .label s = 8 .label i_1 = 4 .label __33 = $1b - // *D018 = toD018(SCREEN, 0x1800) + // *D018 = toD018(SCREEN, (char*)0x1800) //Show lower case font lda #toD0181_return sta D018 diff --git a/src/test/ref/sieve.log b/src/test/ref/sieve.log index f8f93ae98..52b6ff192 100644 --- a/src/test/ref/sieve.log +++ b/src/test/ref/sieve.log @@ -5971,7 +5971,7 @@ main: { // [1] phi from main to main::toD0181 [phi:main->main::toD0181] // main::toD0181 // main::@14 - // *D018 = toD018(SCREEN, 0x1800) + // *D018 = toD018(SCREEN, (char*)0x1800) // [2] *D018 = main::toD0181_return#0 -- _deref_pbuc1=vbuc2 //Show lower case font lda #toD0181_return diff --git a/src/test/ref/stdlib-string-memchr-1.log b/src/test/ref/stdlib-string-memchr-1.log index d405a154d..6bd7ee1a3 100644 --- a/src/test/ref/stdlib-string-memchr-1.log +++ b/src/test/ref/stdlib-string-memchr-1.log @@ -217,7 +217,7 @@ memchr::@2: scope:[memchr] from memchr::@1 if(memchr::$2) goto memchr::@4 to:memchr::@5 memchr::@3: scope:[memchr] from memchr::@1 - memchr::return#0 = ((void*)) 0 + memchr::return#0 = (void*)0 to:memchr::@return memchr::@4: scope:[memchr] from memchr::@2 memchr::c#5 = phi( memchr::@2/memchr::c#2 ) @@ -2314,7 +2314,6 @@ Inlining cast memcpy::src#0 = (byte*)memcpy::source#2 Inlining cast memcpy::dst#0 = (byte*)memcpy::destination#2 Inlining cast memset::dst#0 = (byte*)memset::str#3 Inlining cast memchr::ptr#0 = (byte*)memchr::str#2 -Inlining cast memchr::return#0 = (void*)0 Inlining cast memchr::return#1 = (void*)memchr::ptr#4 Inlining cast utoa::max_digits#1 = (unumber)5 Inlining cast utoa::max_digits#2 = (unumber)4 diff --git a/src/test/ref/struct-ptr-22.asm b/src/test/ref/struct-ptr-22.asm index f978aaedc..ff9a35457 100644 --- a/src/test/ref/struct-ptr-22.asm +++ b/src/test/ref/struct-ptr-22.asm @@ -14,7 +14,7 @@ .segment Code main: { .label __13 = 6 - // file->bufEdit = 0x4000 + // file->bufEdit = (char*)0x4000 lda #<$4000 sta files lda #>$4000 diff --git a/src/test/ref/struct-ptr-22.log b/src/test/ref/struct-ptr-22.log index e53dafbcc..bd78329f0 100644 --- a/src/test/ref/struct-ptr-22.log +++ b/src/test/ref/struct-ptr-22.log @@ -169,7 +169,7 @@ main: scope:[main] from __start::@1 file#0 = files main::$10 = (byte**)file#0 main::$7 = main::$10 + OFFSET_STRUCT_FILEENTRY_BUFEDIT - *main::$7 = ((byte*)) $4000 + *main::$7 = (byte*)$4000 main::$11 = (byte**)file#0 main::$8 = main::$11 + OFFSET_STRUCT_FILEENTRY_BUFEDIT (*main::$8)[3] = $aa @@ -495,7 +495,6 @@ Adding number conversion cast (snumber) 0 in main::return#0 = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::dst#0 = (byte*)memset::str#2 Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast *main::$7 = (byte*)$4000 Inlining cast (*main::$8)[(unumber)3] = (unumber)$aa Inlining cast main::$13[(unumber)4] = (unumber)$cc Inlining cast main::return#0 = (snumber)0 @@ -1490,7 +1489,7 @@ Score: 1497 // main main: { .label __13 = 6 - // file->bufEdit = 0x4000 + // file->bufEdit = (char*)0x4000 // [0] *((byte**)files) = (byte*) 16384 -- _deref_qbuc1=pbuc2 lda #<$4000 sta files diff --git a/src/test/ref/struct-ptr-26.asm b/src/test/ref/struct-ptr-26.asm index ebad8a1b3..6bd8b9bf3 100644 --- a/src/test/ref/struct-ptr-26.asm +++ b/src/test/ref/struct-ptr-26.asm @@ -14,7 +14,7 @@ main: { .label file = $4000 .label uSize = 4 - // file->bufEdit = 4 + // file->bufEdit = (BYTE*)4 lda #<4 sta file lda #>4 diff --git a/src/test/ref/struct-ptr-26.log b/src/test/ref/struct-ptr-26.log index f13cda68d..d9591b748 100644 --- a/src/test/ref/struct-ptr-26.log +++ b/src/test/ref/struct-ptr-26.log @@ -72,10 +72,10 @@ main: scope:[main] from __start::@1 print_char_cursor#27 = phi( __start::@1/print_char_cursor#28 ) main::file#0 = (struct fileentry*) 0 main::uSize#0 = 0 - main::file#1 = ((struct fileentry*)) $4000 + main::file#1 = (struct fileentry*)$4000 main::$4 = (byte**)main::file#1 main::$2 = main::$4 + OFFSET_STRUCT_FILEENTRY_BUFEDIT - *main::$2 = ((byte*)) 4 + *main::$2 = (byte*)4 main::$5 = (byte**)main::file#1 main::$3 = main::$5 + OFFSET_STRUCT_FILEENTRY_BUFEDIT main::$0 = *main::$3 + $1e @@ -214,9 +214,6 @@ Adding number conversion cast (unumber) $f in print_uchar::$2 = print_uchar::b#3 Adding number conversion cast (unumber) print_uchar::$2 in print_uchar::$2 = print_uchar::b#3 & (unumber)$f Adding number conversion cast (unumber) $1e in main::$0 = *main::$3 + $1e Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast main::file#1 = (struct fileentry*)$4000 -Inlining cast *main::$2 = (byte*)4 -Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant pointer cast (struct fileentry*) 16384 @@ -692,7 +689,7 @@ Score: 161 main: { .label file = $4000 .label uSize = 4 - // file->bufEdit = 4 + // file->bufEdit = (BYTE*)4 // [0] *((byte**)main::file#1) = (byte*) 4 -- _deref_qbuc1=pbuc2 lda #<4 sta file diff --git a/src/test/ref/struct-ptr-5.asm b/src/test/ref/struct-ptr-5.asm index 1c4879d7c..c9a868a1e 100644 --- a/src/test/ref/struct-ptr-5.asm +++ b/src/test/ref/struct-ptr-5.asm @@ -33,7 +33,7 @@ main: { // entry2->value = 2 lda #2 sta entry2 - // entry1->next = 0 + // entry1->next = (struct Entry*)0 lda #<0 sta entry1+OFFSET_STRUCT_ENTRY_NEXT sta entry1+OFFSET_STRUCT_ENTRY_NEXT+1 diff --git a/src/test/ref/struct-ptr-5.log b/src/test/ref/struct-ptr-5.log index d52329e6b..0dc406de8 100644 --- a/src/test/ref/struct-ptr-5.log +++ b/src/test/ref/struct-ptr-5.log @@ -26,7 +26,7 @@ main: scope:[main] from __start::@1 *main::$10 = 2 main::$21 = (struct Entry**)main::entry1#0 main::$11 = main::$21 + OFFSET_STRUCT_ENTRY_NEXT - *main::$11 = ((struct Entry*)) 0 + *main::$11 = (struct Entry*)0 main::$22 = (byte*)main::entry1#0 main::$12 = main::$22 + OFFSET_STRUCT_ENTRY_VALUE *main::$12 = 3 @@ -147,7 +147,6 @@ Adding number conversion cast (unumber) 3 in *main::$12 = 3 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *main::$8 = (unumber)1 Inlining cast *main::$10 = (unumber)2 -Inlining cast *main::$11 = (struct Entry*)0 Inlining cast *main::$12 = (unumber)3 Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (byte*) 1024 @@ -612,7 +611,7 @@ main: { // [3] *((byte*)main::entry2#0) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta entry2 - // entry1->next = 0 + // entry1->next = (struct Entry*)0 // [4] *((struct Entry**)main::entry1#0+OFFSET_STRUCT_ENTRY_NEXT) = (struct Entry*) 0 -- _deref_qssc1=pssc2 lda #<0 sta entry1+OFFSET_STRUCT_ENTRY_NEXT diff --git a/src/test/ref/true-inline-words.asm b/src/test/ref/true-inline-words.asm index f0f7b2b86..9fafe7f3f 100644 --- a/src/test/ref/true-inline-words.asm +++ b/src/test/ref/true-inline-words.asm @@ -18,7 +18,7 @@ main: { // constant inline words inside expression .label sc = w2 // *sc = bs[1] - // implicit cast to (byte*) + // cast to (byte*) lda bs+1 sta sc // if(*pos=='m') diff --git a/src/test/ref/true-inline-words.log b/src/test/ref/true-inline-words.log index 52bac323b..d55411ace 100644 --- a/src/test/ref/true-inline-words.log +++ b/src/test/ref/true-inline-words.log @@ -9,7 +9,7 @@ main: scope:[main] from __start main::$4 = (word){ 0, 0 } main::$1 = main::$0 + main::$4 main::w2#0 = main::$1 - main::sc#0 = ((byte*)) main::w2#0 + main::sc#0 = (byte*)main::w2#0 *main::sc#0 = main::bs[1] main::$2 = *main::pos == 'm' if(main::$2) goto main::@1 @@ -61,7 +61,6 @@ Adding number conversion cast (unumber) 1 in *main::sc#0 = main::bs[1] Adding number conversion cast (unumber) 5 in *main::BG_COLOR = 5 Adding number conversion cast (unumber) 2 in *main::BG_COLOR = 2 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast main::sc#0 = (byte*)main::w2#0 Inlining cast *main::BG_COLOR = (unumber)5 Inlining cast *main::BG_COLOR = (unumber)2 Successful SSA optimization Pass2InlineCast @@ -212,7 +211,7 @@ main: { // constant inline words inside expression .label sc = w2 // [0] *main::sc#0 = *(main::bs+1) -- _deref_pbuc1=_deref_pbuc2 - // implicit cast to (byte*) + // cast to (byte*) lda bs+1 sta sc // [1] if(*main::pos=='m') goto main::@1 -- _deref_pbuc1_eq_vbuc2_then_la1 @@ -295,7 +294,7 @@ main: { .label sc = w2 // *sc = bs[1] // [0] *main::sc#0 = *(main::bs+1) -- _deref_pbuc1=_deref_pbuc2 - // implicit cast to (byte*) + // cast to (byte*) lda bs+1 sta sc // if(*pos=='m') diff --git a/src/test/ref/var-forward-problem2.log b/src/test/ref/var-forward-problem2.log index 7d8e25200..58171a8a8 100644 --- a/src/test/ref/var-forward-problem2.log +++ b/src/test/ref/var-forward-problem2.log @@ -8,7 +8,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - screen#0 = ((byte*)) $400 + screen#0 = (byte*)$400 b#0 = 'a' *screen#0 = b#0 to:main::@return @@ -70,8 +70,6 @@ byte* screen#6 byte* screen#7 byte* screen#8 -Inlining cast screen#0 = (byte*)$400 -Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (byte*) 1024 Successful SSA optimization PassNCastSimplification Alias screen#0 = screen#5 screen#1 diff --git a/src/test/ref/var-init-problem.log b/src/test/ref/var-init-problem.log index f2dce7015..f96fd0357 100644 --- a/src/test/ref/var-init-problem.log +++ b/src/test/ref/var-init-problem.log @@ -4,7 +4,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - screen#0 = ((byte*)) $400 + screen#0 = (byte*)$400 *screen#0 = 'a' to:main::@return main::@return: scope:[main] from main @@ -47,8 +47,6 @@ byte* screen#6 byte* screen#7 byte* screen#8 -Inlining cast screen#0 = (byte*)$400 -Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (byte*) 1024 Successful SSA optimization PassNCastSimplification Alias screen#0 = screen#5 screen#1