From 46079f3ec2deb2b5911dd211a7a7738ad5975c14 Mon Sep 17 00:00:00 2001 From: Sven Van de Velde Date: Mon, 24 Apr 2023 05:27:26 +0000 Subject: [PATCH] #819 C-code baseline with CX16 developments --- .gitignore | 18 +- .../cache/fragment-cache-wdc65c02.asm | 4580 ++ .../_stackidxbool_vbuc1=vboaa.asm | 2 + .../_stackidxbool_vbuc1=vboyy.asm | 3 + ...pushdword_=_dword_pwuc1_derefidx_vbum1.asm | 9 + .../mos6502-common/_stackpushdword_=vwum1.asm | 8 + .../mos6502-common/isr_rom_sys_cx16_exit.asm | 2 +- .../pbuc1_eq__deref_qbuc2_then_la1.asm | 7 + .../pbuc1_eq_pbuc2_then_la1.asm | 7 + ...pbuc1_eq_qbuz1_derefidx_vbuyy_then_la1.asm | 8 + .../pbuc1_neq__deref_qbuc2_then_la1.asm | 6 + ...idx_vbuyy=pbuz1_derefidx_vbuyy_minus_1.asm | 4 + .../pbuz1_neq__deref_qbuc1_then_la1.asm | 6 + .../pduc1_derefidx_vbum1=vbuc2.asm | 7 + .../pduc1_derefidx_vbum1=vwuc2.asm | 8 + .../pduc1_derefidx_vbuyy=vduc2.asm | 8 + .../pssc1_derefidx_vbuxx=_deref_qssz1.asm | 6 + .../mos6502-common/pssm1=_deref_qssm1.asm | 10 + .../pssz1=qssz2_derefidx_vbuc1_plus_vbuc2.asm | 11 + ...refidx_vbuyy=_deref_pvoc1_memcpy_vbuc2.asm | 8 + ...x_vbuyy=_deref_pvoz2_memcpy_vbuc2 temp.asm | 8 + ...refidx_vbuxx_plus_pbsc2_derefidx_vbuyy.asm | 13 + ..._vbuxx=pwsc1_derefidx_vbuxx_plus_vbsm1.asm | 7 + ...c1_derefidx_vbuxx=pwsz1_derefidx_vbuc2.asm | 6 + ...refidx_vbuyy_plus_pbsc2_derefidx_vbuxx.asm | 13 + ...y=pwsc1_derefidx_vbuyy_plus_vbsm1_temp.asm | 7 + .../pwsz1_derefidx_vbuyy=_deref_pwsc2.asm | 5 + .../pwsz1_derefidx_vbuyy=_sword_vbum2.asm | 8 + ...z1_derefidx_vbuyy=pwsz2_derefidx_vbuyy.asm | 5 + .../pwsz1_derefidx_vbuyy_gt_0_then_la1.asm | 10 + ...pwsz1_derefidx_vbuyy_le_vwsc1_then_la1.asm | 10 + ...vbum1=pwuc1_derefidx_vbum1_minus_vwum2.asm | 8 + ..._vbum1=pwuc1_derefidx_vbum1_plus_vwum2.asm | 8 + ..._vbuxx=pwuc1_derefidx_vbuxx_band_vwuc2.asm | 6 + ...x_vbuxx=pwuc1_derefidx_vbuxx_bor_vwuc2.asm | 6 + ..._vbuxx=pwuc1_derefidx_vbuxx_bxor_vwuc2.asm | 6 + ...vbuxx=pwuc1_derefidx_vbuxx_minus_vwum1.asm | 7 + ...vbuxx=pwuc1_derefidx_vbuxx_minus_vwuz1.asm | 7 + ..._vbuxx=pwuc1_derefidx_vbuxx_plus_vwum1.asm | 7 + ..._vbuxx=pwuc1_derefidx_vbuxx_plus_vwuz1.asm | 7 + ..._vbuyy=pwuc1_derefidx_vbuyy_band_vwuc2.asm | 6 + ...x_vbuyy=pwuc1_derefidx_vbuyy_bor_vwuc2.asm | 6 + ...vbuyy=pwuc1_derefidx_vbuyy_minus_vwum1.asm | 7 + ..._vbuyy=pwuc1_derefidx_vbuyy_plus_vwum1.asm | 7 + ...wuc1_derefidx_vbuyy_neq_vbum1_then_la1.asm | 6 + ...vbuz1=pwuc1_derefidx_vbuz1_minus_vwuz2.asm | 8 + ..._vbuz1=pwuc1_derefidx_vbuz1_plus_vwuz2.asm | 8 + .../pwum1_derefidx_vbuyy=vwum2_temp.asm | 9 + ...vbuc1=pwuz1_derefidx_vbuc1_minus_vwum2.asm | 10 + ..._vbuc1=pwuz1_derefidx_vbuc1_plus_vwum2.asm | 10 + ...refidx_vbuc1=pwuz1_derefidx_vbuc1_temp.asm | 8 + ...z1_derefidx_vbuc1=pwuz1_derefidx_vbuc2.asm | 8 + .../pwuz1_derefidx_vbuyy=_deref_pwuc2.asm | 5 + ..._vbuz2=pwuz3_derefidx_vbuz2_band_vwuc1.asm | 8 + ...x_vbuz2=pwuz3_derefidx_vbuz2_bor_vwuc1.asm | 8 + .../mos6502-common/qbuz1=qbuz1_plus_1.asm | 6 + .../mos6502-common/qbuz1=qbuz2_plus_1.asm | 6 + .../qssc1_derefidx_vbuxx=_deref_qssz1.asm | 6 + ...c1_derefidx_vbuxx=qssz1_derefidx_vbuc2.asm | 6 + ...qssc1_derefidx_vbuxx_eq_pssz1_then_la1.asm | 7 + ...qssc1_derefidx_vbuyy_eq_pssz1_then_la1.asm | 7 + .../mos6502-common/qssz1=qssz1_plus_1.asm | 8 + .../mos6502-common/qssz1=qssz2_plus_1.asm | 7 + .../qssz1_derefidx_vbuc1_eq_0_then_la1.asm | 7 + .../qssz1_derefidx_vbuc1_neq_0_then_la1.asm | 7 + .../mos6502-common/vboaa=_stackpullbool_.asm | 1 + .../mos6502-common/vboaa=vbuaa_ge_vbuc1.asm | 7 + .../mos6502-common/vboaa=vbuaa_gt_vbuc1.asm | 3 + ...1=pbum2_derefidx_vbuyy_band_vbuc1_temp.asm | 7 + .../vbum1=pbum2_derefidx_vbuyy_temp.asm | 2 + .../vdum1=_dword_pwuc1_derefidx_vbuxx.asm | 8 + .../vdum1=_dword_pwuc1_derefidx_vbuyy.asm | 8 + .../vdum1=_dword_pwuz2_derefidx_vbuc1.asm | 9 + ...elong4_(vbuc1)_(vbuaa)_(vbuxx)_(vbuaa).asm | 5 + ...elong4_(vbuc1)_(vbuaa)_(vbuxx)_(vbuxx).asm | 5 + ...elong4_(vbuc1)_(vbuaa)_(vbuxx)_(vbuyy).asm | 5 + .../mos6502-common/vdum1=_neg_vdum1.asm | 13 + .../mos6502-common/vdum1=_neg_vdum2.asm | 13 + .../mos6502-common/vdum1=vdum1_ror_3.asm | 12 + .../mos6502-common/vdum1=vdum2_minus_1.asm | 13 + .../vdum1=vdum2_minus_vdum1.asm | 13 + .../mos6502-common/vdum1=vwum2_rol_3.asm | 2 +- .../mos6502-common/vdum1=vwum2_rol_5.asm | 20 + .../vdum1_gt_vduc1_then_la1.asm | 16 + .../vdum1_le_vduc1_then_la1.asm | 17 + .../vdum1_neq_vdum2_then_la1.asm | 12 + .../vduz1=_dword_pwuc1_derefidx_vbuxx.asm | 8 + .../vduz1=_dword_pwuc1_derefidx_vbuyy.asm | 8 + .../vduz1=_dword_pwuz2_derefidx_vbuc1.asm | 9 + .../vwsm1=pwsz2_derefidx_vbuyy_plus_vbsc2.asm | 8 + .../vwsm1=vwsm1_plus_pbsz2_derefidx_vbuyy.asm | 11 + .../mos6502-common/vwsm1=vwsm1_rol_vbum2.asm | 8 + .../mos6502-common/vwsm1=vwsm1_rol_vbuxx.asm | 7 + .../mos6502-common/vwsm1=vwsm1_rol_vbuyy.asm | 7 + .../vwsm1=vwsm2_plus_pbsz3_derefidx_vbuyy.asm | 7 + .../mos6502-common/vwsm1=vwsm2_rol_vbuxx.asm | 12 + .../mos6502-common/vwsm1=vwsm2_rol_vbuyy.asm | 12 + .../mos6502-common/vwum1=_byte0_vwum1.asm | 2 + .../mos6502-common/vwum1=_byte0_vwum2.asm | 2 + .../mos6502-common/vwum1=_byte1_vwum2.asm | 2 + .../mos6502-common/vwum1=_dec_vwum2.asm | 7 + .../vwum1=_deref_pwuc1_minus__deref_pwuc2.asm | 7 + .../vwum1=_deref_pwum2_band_vwuc1_temp.asm | 12 + .../vwum1=_deref_pwuz2_band_vwuc1.asm | 9 + .../vwum1=_deref_pwuz2_bor_vwuc1.asm | 9 + .../vwum1=_deref_pwuz2_plus_vwuc1.asm | 9 + .../vwum1=_deref_pwuz2_plus_vwum1.asm | 9 + .../vwum1=_word1_pduc1_derefidx_vbuyy.asm | 4 + ...efidx_vbuxx_minus_pwuc2_derefidx_vbuxx.asm | 7 + ...efidx_vbuyy_minus_pwuc2_derefidx_vbuyy.asm | 7 + ...vwum1=pwuz2_derefidx_vbuyy_minus_vwum1.asm | 8 + .../mos6502-common/vwum1=vbuaa_minus_2.asm | 5 + .../mos6502-common/vwum1=vwum1_rol_9.asm | 5 + .../mos6502-common/vwum1=vwum1_ror_7.asm | 14 + .../mos6502-common/vwum1=vwum1_ror_vbum2.asm | 8 + .../mos6502-common/vwum1=vwum1_ror_vbuxx.asm | 6 + .../mos6502-common/vwum1=vwum1_ror_vbuyy.asm | 6 + ...vwum1=vwum2_minus_pwuc1_derefidx_vbuxx.asm | 7 + ...vwum1=vwum2_minus_pwuc1_derefidx_vbuyy.asm | 7 + .../mos6502-common/vwum1=vwum2_rol_9.asm | 5 + .../vwum1_lt_vbuyy_then_la1.asm | 7 - .../vwum1_neq__deref_pwuc1_then_la1.asm | 8 + .../vwum1_neq_vbum2_then_la1.asm | 5 + .../vwuz1=_deref_pwuz1_band_vwuc1.asm | 10 + .../vwuz1=_deref_pwuz1_bor_vwuc1.asm | 11 + .../vwuz1=_deref_pwuz1_bxor_vwuc1.asm | 10 + ...efidx_vbuz2_minus_pwuc2_derefidx_vbuz2.asm | 8 + .../vwuz1=pwuz1_derefidx_vbuyy_band_vwuc1.asm | 9 + .../vwuz1=pwuz1_derefidx_vbuyy_bor_vwuc1.asm | 9 + .../vwuz1=pwuz1_derefidx_vbuyy_bxor_vwuc1.asm | 9 + ...=pwuz1_derefidx_vbuyy_minus_vwum2 copy.asm | 10 + .../vwuz1=pwuz2_derefidx_vbuyy_band_vwuc1.asm | 7 + .../vwuz1=pwuz2_derefidx_vbuyy_band_vwuc2.asm | 7 + ...vwuz1=pwuz2_derefidx_vbuyy_minus_vwuz3.asm | 12 + .../mos6502-common/vwuz1=vwuz1_ror_vbuxx.asm | 6 + .../mos6502-common/vwuz1=vwuz1_ror_vbuyy.asm | 6 + src/main/kc/include/c128.h | 74 + src/main/kc/include/conio.h | 2 +- src/main/kc/include/cx16-bitmap.h | 2 +- src/main/kc/include/cx16-conio.h | 6 + src/main/kc/include/cx16-kernal.h | 33 +- src/main/kc/include/cx16-mouse.h | 18 + src/main/kc/include/cx16-typedefs.h | 26 + src/main/kc/include/cx16-vera.h | 291 +- src/main/kc/include/cx16-veramem.h | 50 + src/main/kc/include/cx16.h | 174 +- src/main/kc/include/errno.h | 17 + src/main/kc/include/kernal.h | 47 + src/main/kc/include/pet-kernal.h | 10 + src/main/kc/include/pet.h | 32 + src/main/kc/include/stdio.h | 34 +- src/main/kc/include/string.h | 22 +- src/main/kc/lib/conio-c128.c | 63 + src/main/kc/lib/conio-cbm-shared.c | 28 + src/main/kc/lib/conio-cx16.c | 378 - src/main/kc/lib/conio.c | 6 +- src/main/kc/lib/cx16-bitmap.c | 181 +- src/main/kc/lib/cx16-conio.c | 390 + src/main/kc/lib/cx16-kernal.c | 115 +- src/main/kc/lib/cx16-mouse.c | 94 + src/main/kc/lib/cx16.c | 721 +- src/main/kc/lib/errno.c | 14 + src/main/kc/lib/kernal.c | 220 + src/main/kc/lib/pet-conio.c | 59 + src/main/kc/lib/sprintf.c | 4 +- src/main/kc/lib/stdio.c | 340 + src/main/kc/lib/stdlib.c | 6 +- src/main/kc/lib/string.c | 76 +- .../kc/target/c128.ld} | 8 +- src/main/kc/target/c128.tgt | 13 + src/main/kc/target/cx16.ld | 2 +- src/main/kc/target/pet8032.ld | 8 + src/main/kc/target/pet8032.tgt | 13 + .../kickc/test/TestProgramsFast.java | 5 + src/test/kc/examples/c128/sprites.c | 404 + .../kc/examples/cx16/cx16-bankaddressing.c | 36 - src/test/kc/examples/cx16/cx16-bankload.c | 99 - src/test/kc/examples/cx16/cx16-input.c | 6 +- src/test/kc/examples/cx16/cx16-sprites.c | 9 +- src/test/kc/examples/cx16/cx16-text.c | 4 +- src/test/kc/examples/cx16/cx16-tilemap.c | 145 - src/test/kc/examples/cx16/cx16-veralayers.c | 135 - src/test/kc/examples/cx16/cx16-veramodes.c | 1230 - src/test/kc/examples/cx16/ship.png | Bin 1142 -> 0 bytes .../cx16/spacedemo/Metal_1/frame_1.png | Bin 556 -> 0 bytes .../cx16/spacedemo/Metal_1/frame_2.png | Bin 609 -> 0 bytes .../cx16/spacedemo/Metal_1/frame_3.png | Bin 574 -> 0 bytes .../cx16/spacedemo/Metal_1/frame_4.png | Bin 590 -> 0 bytes .../cx16/spacedemo/Metal_1/metal_1.png | Bin 1494 -> 0 bytes .../cx16/spacedemo/Metal_1/metal_2.png | Bin 1418 -> 0 bytes .../cx16/spacedemo/Metal_1/metal_3.png | Bin 1420 -> 0 bytes .../cx16/spacedemo/Metal_1/metal_4.png | Bin 1418 -> 0 bytes .../cx16/spacedemo/Ship_1/ship_1_360_1.png | Bin 1142 -> 0 bytes .../cx16/spacedemo/Ship_1/ship_1_360_10.png | Bin 502 -> 0 bytes .../cx16/spacedemo/Ship_1/ship_1_360_11.png | Bin 831 -> 0 bytes .../cx16/spacedemo/Ship_1/ship_1_360_12.png | Bin 1091 -> 0 bytes .../cx16/spacedemo/Ship_1/ship_1_360_2.png | Bin 1097 -> 0 bytes .../cx16/spacedemo/Ship_1/ship_1_360_3.png | Bin 844 -> 0 bytes .../cx16/spacedemo/Ship_1/ship_1_360_4.png | Bin 517 -> 0 bytes .../cx16/spacedemo/Ship_1/ship_1_360_5.png | Bin 730 -> 0 bytes .../cx16/spacedemo/Ship_1/ship_1_360_6.png | Bin 1144 -> 0 bytes .../cx16/spacedemo/Ship_1/ship_1_360_7.png | Bin 1158 -> 0 bytes .../cx16/spacedemo/Ship_1/ship_1_360_8.png | Bin 1066 -> 0 bytes .../cx16/spacedemo/Ship_1/ship_1_360_9.png | Bin 748 -> 0 bytes .../kc/examples/cx16/spacedemo/spacedemo.c | 383 - .../kc/examples/cx16/spacedemo/spacedemo.ld | 16 - .../cx16/veralib/bitmap_1bpp_320_x_240.c | 79 - .../cx16/veralib/bitmap_1bpp_640_x_480.c | 79 - .../cx16/veralib/bitmap_2bpp_320_x_240.c | 79 - .../cx16/veralib/bitmap_2bpp_640_x_480.c | 79 - .../cx16/veralib/bitmap_4bpp_320_x_240.c | 80 - .../cx16/veralib/bitmap_8bpp_320_x_240.c | 83 - .../veralib/tilemap_1bpp_8_x_8_16_color.c | 43 - .../veralib/tilemap_1bpp_8_x_8_256_color.c | 43 - .../cx16/veralib/tilemap_2bpp_16_x_16.c | 88 - .../cx16/veralib/tilemap_2bpp_8_x_8.c | 70 - .../cx16/veralib/tilemap_4bpp_16_x_16.c | 218 - .../cx16/veralib/tilemap_4bpp_8_x_8.c | 120 - .../cx16/veralib/tilemap_8bpp_16_x_16.c | 133 - .../cx16/veralib/tilemap_8bpp_8_x_8.c | 87 - src/test/kc/examples/memfast/memfast.c | 39 + src/test/ref/casting-negative.log | 2 + src/test/ref/cbm-keyboard.log | 2 + src/test/ref/complex/xmega65/xmega65.log | 15 +- src/test/ref/ducks-array.log | 2 + src/test/ref/ducks-total.log | 2 + .../ref/examples/c64/font-2x2/font-2x2.log | 15 +- .../examples/c64/kernalload/kernalload.log | 15 +- .../ref/examples/cx16/cx16-rasterbars.asm | 34 +- .../ref/examples/cx16/cx16-rasterbars.cfg | 124 +- .../ref/examples/cx16/cx16-rasterbars.log | 1001 +- .../ref/examples/cx16/cx16-rasterbars.sym | 50 +- .../cx16/veralib/bitmap_8bpp_320_x_240.asm | 3510 - .../cx16/veralib/bitmap_8bpp_320_x_240.cfg | 1605 - .../cx16/veralib/bitmap_8bpp_320_x_240.log | 55445 ---------------- .../cx16/veralib/bitmap_8bpp_320_x_240.sym | 1121 - .../cx16/veralib/tilemap_8bpp_16_x_16.asm | 2339 - .../cx16/veralib/tilemap_8bpp_16_x_16.cfg | 1045 - .../cx16/veralib/tilemap_8bpp_16_x_16.log | 16699 ----- .../cx16/veralib/tilemap_8bpp_16_x_16.sym | 718 - .../cx16/veralib/tilemap_8bpp_8_x_8.asm | 2150 - .../cx16/veralib/tilemap_8bpp_8_x_8.cfg | 979 - .../cx16/veralib/tilemap_8bpp_8_x_8.log | 15083 ----- .../cx16/veralib/tilemap_8bpp_8_x_8.sym | 698 - .../ref/examples/helloworld/helloworld.log | 2 + src/test/ref/examples/mega65/dypp65.log | 15 +- .../ref/examples/mega65/helloworld-mega65.log | 2 + src/test/ref/examples/memfast/memfast.asm | 170 + src/test/ref/examples/memfast/memfast.cfg | 115 + src/test/ref/examples/memfast/memfast.log | 1506 + src/test/ref/examples/memfast/memfast.sym | 54 + .../ref/examples/plus4/plus4-randomwalk.asm | 31 +- .../ref/examples/plus4/plus4-randomwalk.cfg | 160 +- .../ref/examples/plus4/plus4-randomwalk.log | 1226 +- .../ref/examples/plus4/plus4-randomwalk.sym | 79 +- .../ref/function-pointer-noarg-call-14.log | 2 + src/test/ref/memcpy-0.log | 15 +- src/test/ref/memcpy-1.log | 15 +- .../ref/millfork-benchmarks/plasma-kc.asm | 69 +- .../ref/millfork-benchmarks/plasma-kc.cfg | 248 +- .../ref/millfork-benchmarks/plasma-kc.log | 1943 +- .../ref/millfork-benchmarks/plasma-kc.sym | 119 +- src/test/ref/plus4-keyboard-test.log | 15 +- src/test/ref/printf-17.asm | 50 +- src/test/ref/printf-17.cfg | 450 +- src/test/ref/printf-17.log | 2608 +- src/test/ref/printf-17.sym | 12 +- src/test/ref/printf-18.asm | 56 +- src/test/ref/printf-18.cfg | 264 +- src/test/ref/printf-18.log | 1472 +- src/test/ref/printf-18.sym | 24 +- src/test/ref/printf-19.asm | 50 +- src/test/ref/printf-19.cfg | 518 +- src/test/ref/printf-19.log | 2966 +- src/test/ref/printf-19.sym | 12 +- src/test/ref/stars-2.log | 2 + src/test/ref/strcmp-0.log | 2 + src/test/ref/tod-1.asm | 2 +- src/test/ref/tod-1.log | 4 +- src/test/ref/weeip-bbslist.log | 2 + 280 files changed, 17430 insertions(+), 112505 deletions(-) create mode 100644 src/main/fragment/cache/fragment-cache-wdc65c02.asm create mode 100644 src/main/fragment/mos6502-common/_stackidxbool_vbuc1=vboaa.asm create mode 100644 src/main/fragment/mos6502-common/_stackidxbool_vbuc1=vboyy.asm create mode 100644 src/main/fragment/mos6502-common/_stackpushdword_=_dword_pwuc1_derefidx_vbum1.asm create mode 100644 src/main/fragment/mos6502-common/_stackpushdword_=vwum1.asm create mode 100644 src/main/fragment/mos6502-common/pbuc1_eq__deref_qbuc2_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/pbuc1_eq_pbuc2_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/pbuc1_eq_qbuz1_derefidx_vbuyy_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/pbuc1_neq__deref_qbuc2_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/pbuz1_derefidx_vbuyy=pbuz1_derefidx_vbuyy_minus_1.asm create mode 100644 src/main/fragment/mos6502-common/pbuz1_neq__deref_qbuc1_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/pduc1_derefidx_vbum1=vbuc2.asm create mode 100644 src/main/fragment/mos6502-common/pduc1_derefidx_vbum1=vwuc2.asm create mode 100644 src/main/fragment/mos6502-common/pduc1_derefidx_vbuyy=vduc2.asm create mode 100644 src/main/fragment/mos6502-common/pssc1_derefidx_vbuxx=_deref_qssz1.asm create mode 100644 src/main/fragment/mos6502-common/pssm1=_deref_qssm1.asm create mode 100644 src/main/fragment/mos6502-common/pssz1=qssz2_derefidx_vbuc1_plus_vbuc2.asm create mode 100644 src/main/fragment/mos6502-common/pvoz1_derefidx_vbuyy=_deref_pvoc1_memcpy_vbuc2.asm create mode 100644 src/main/fragment/mos6502-common/pvoz1_derefidx_vbuyy=_deref_pvoz2_memcpy_vbuc2 temp.asm create mode 100644 src/main/fragment/mos6502-common/pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuyy.asm create mode 100644 src/main/fragment/mos6502-common/pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_plus_vbsm1.asm create mode 100644 src/main/fragment/mos6502-common/pwsc1_derefidx_vbuxx=pwsz1_derefidx_vbuc2.asm create mode 100644 src/main/fragment/mos6502-common/pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_plus_pbsc2_derefidx_vbuxx.asm create mode 100644 src/main/fragment/mos6502-common/pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_plus_vbsm1_temp.asm create mode 100644 src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy=_deref_pwsc2.asm create mode 100644 src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy=_sword_vbum2.asm create mode 100644 src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy=pwsz2_derefidx_vbuyy.asm create mode 100644 src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy_gt_0_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy_le_vwsc1_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbum1=pwuc1_derefidx_vbum1_minus_vwum2.asm create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbum1=pwuc1_derefidx_vbum1_plus_vwum2.asm create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_band_vwuc2.asm create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_bor_vwuc2.asm create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_bxor_vwuc2.asm create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_minus_vwum1.asm create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_minus_vwuz1.asm create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_plus_vwum1.asm create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_plus_vwuz1.asm create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_band_vwuc2.asm create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_bor_vwuc2.asm create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_minus_vwum1.asm create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_plus_vwum1.asm create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy_neq_vbum1_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_minus_vwuz2.asm create mode 100644 src/main/fragment/mos6502-common/pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_plus_vwuz2.asm create mode 100644 src/main/fragment/mos6502-common/pwum1_derefidx_vbuyy=vwum2_temp.asm create mode 100644 src/main/fragment/mos6502-common/pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_minus_vwum2.asm create mode 100644 src/main/fragment/mos6502-common/pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vwum2.asm create mode 100644 src/main/fragment/mos6502-common/pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_temp.asm create mode 100644 src/main/fragment/mos6502-common/pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc2.asm create mode 100644 src/main/fragment/mos6502-common/pwuz1_derefidx_vbuyy=_deref_pwuc2.asm create mode 100644 src/main/fragment/mos6502-common/pwuz1_derefidx_vbuz2=pwuz3_derefidx_vbuz2_band_vwuc1.asm create mode 100644 src/main/fragment/mos6502-common/pwuz1_derefidx_vbuz2=pwuz3_derefidx_vbuz2_bor_vwuc1.asm create mode 100644 src/main/fragment/mos6502-common/qbuz1=qbuz1_plus_1.asm create mode 100644 src/main/fragment/mos6502-common/qbuz1=qbuz2_plus_1.asm create mode 100644 src/main/fragment/mos6502-common/qssc1_derefidx_vbuxx=_deref_qssz1.asm create mode 100644 src/main/fragment/mos6502-common/qssc1_derefidx_vbuxx=qssz1_derefidx_vbuc2.asm create mode 100644 src/main/fragment/mos6502-common/qssc1_derefidx_vbuxx_eq_pssz1_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/qssc1_derefidx_vbuyy_eq_pssz1_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/qssz1=qssz1_plus_1.asm create mode 100644 src/main/fragment/mos6502-common/qssz1=qssz2_plus_1.asm create mode 100644 src/main/fragment/mos6502-common/qssz1_derefidx_vbuc1_eq_0_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/qssz1_derefidx_vbuc1_neq_0_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/vboaa=_stackpullbool_.asm create mode 100644 src/main/fragment/mos6502-common/vboaa=vbuaa_ge_vbuc1.asm create mode 100644 src/main/fragment/mos6502-common/vboaa=vbuaa_gt_vbuc1.asm create mode 100644 src/main/fragment/mos6502-common/vbum1=pbum2_derefidx_vbuyy_band_vbuc1_temp.asm create mode 100644 src/main/fragment/mos6502-common/vbum1=pbum2_derefidx_vbuyy_temp.asm create mode 100644 src/main/fragment/mos6502-common/vdum1=_dword_pwuc1_derefidx_vbuxx.asm create mode 100644 src/main/fragment/mos6502-common/vdum1=_dword_pwuc1_derefidx_vbuyy.asm create mode 100644 src/main/fragment/mos6502-common/vdum1=_dword_pwuz2_derefidx_vbuc1.asm create mode 100644 src/main/fragment/mos6502-common/vdum1=_makelong4_(vbuc1)_(vbuaa)_(vbuxx)_(vbuaa).asm create mode 100644 src/main/fragment/mos6502-common/vdum1=_makelong4_(vbuc1)_(vbuaa)_(vbuxx)_(vbuxx).asm create mode 100644 src/main/fragment/mos6502-common/vdum1=_makelong4_(vbuc1)_(vbuaa)_(vbuxx)_(vbuyy).asm create mode 100644 src/main/fragment/mos6502-common/vdum1=_neg_vdum1.asm create mode 100644 src/main/fragment/mos6502-common/vdum1=_neg_vdum2.asm create mode 100644 src/main/fragment/mos6502-common/vdum1=vdum1_ror_3.asm create mode 100644 src/main/fragment/mos6502-common/vdum1=vdum2_minus_1.asm create mode 100644 src/main/fragment/mos6502-common/vdum1=vdum2_minus_vdum1.asm create mode 100644 src/main/fragment/mos6502-common/vdum1=vwum2_rol_5.asm create mode 100644 src/main/fragment/mos6502-common/vdum1_gt_vduc1_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/vdum1_le_vduc1_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/vdum1_neq_vdum2_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/vduz1=_dword_pwuc1_derefidx_vbuxx.asm create mode 100644 src/main/fragment/mos6502-common/vduz1=_dword_pwuc1_derefidx_vbuyy.asm create mode 100644 src/main/fragment/mos6502-common/vduz1=_dword_pwuz2_derefidx_vbuc1.asm create mode 100644 src/main/fragment/mos6502-common/vwsm1=pwsz2_derefidx_vbuyy_plus_vbsc2.asm create mode 100644 src/main/fragment/mos6502-common/vwsm1=vwsm1_plus_pbsz2_derefidx_vbuyy.asm create mode 100644 src/main/fragment/mos6502-common/vwsm1=vwsm1_rol_vbum2.asm create mode 100644 src/main/fragment/mos6502-common/vwsm1=vwsm1_rol_vbuxx.asm create mode 100644 src/main/fragment/mos6502-common/vwsm1=vwsm1_rol_vbuyy.asm create mode 100644 src/main/fragment/mos6502-common/vwsm1=vwsm2_plus_pbsz3_derefidx_vbuyy.asm create mode 100644 src/main/fragment/mos6502-common/vwsm1=vwsm2_rol_vbuxx.asm create mode 100644 src/main/fragment/mos6502-common/vwsm1=vwsm2_rol_vbuyy.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=_byte0_vwum1.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=_byte0_vwum2.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=_byte1_vwum2.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=_dec_vwum2.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=_deref_pwuc1_minus__deref_pwuc2.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=_deref_pwum2_band_vwuc1_temp.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=_deref_pwuz2_band_vwuc1.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=_deref_pwuz2_bor_vwuc1.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=_deref_pwuz2_plus_vwuc1.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=_deref_pwuz2_plus_vwum1.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=_word1_pduc1_derefidx_vbuyy.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=pwuc1_derefidx_vbuxx_minus_pwuc2_derefidx_vbuxx.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=pwuc1_derefidx_vbuyy_minus_pwuc2_derefidx_vbuyy.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=pwuz2_derefidx_vbuyy_minus_vwum1.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=vbuaa_minus_2.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=vwum1_rol_9.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=vwum1_ror_7.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=vwum1_ror_vbum2.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=vwum1_ror_vbuxx.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=vwum1_ror_vbuyy.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=vwum2_minus_pwuc1_derefidx_vbuxx.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=vwum2_minus_pwuc1_derefidx_vbuyy.asm create mode 100644 src/main/fragment/mos6502-common/vwum1=vwum2_rol_9.asm delete mode 100644 src/main/fragment/mos6502-common/vwum1_lt_vbuyy_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/vwum1_neq__deref_pwuc1_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/vwum1_neq_vbum2_then_la1.asm create mode 100644 src/main/fragment/mos6502-common/vwuz1=_deref_pwuz1_band_vwuc1.asm create mode 100644 src/main/fragment/mos6502-common/vwuz1=_deref_pwuz1_bor_vwuc1.asm create mode 100644 src/main/fragment/mos6502-common/vwuz1=_deref_pwuz1_bxor_vwuc1.asm create mode 100644 src/main/fragment/mos6502-common/vwuz1=pwuc1_derefidx_vbuz2_minus_pwuc2_derefidx_vbuz2.asm create mode 100644 src/main/fragment/mos6502-common/vwuz1=pwuz1_derefidx_vbuyy_band_vwuc1.asm create mode 100644 src/main/fragment/mos6502-common/vwuz1=pwuz1_derefidx_vbuyy_bor_vwuc1.asm create mode 100644 src/main/fragment/mos6502-common/vwuz1=pwuz1_derefidx_vbuyy_bxor_vwuc1.asm create mode 100644 src/main/fragment/mos6502-common/vwuz1=pwuz1_derefidx_vbuyy_minus_vwum2 copy.asm create mode 100644 src/main/fragment/mos6502-common/vwuz1=pwuz2_derefidx_vbuyy_band_vwuc1.asm create mode 100644 src/main/fragment/mos6502-common/vwuz1=pwuz2_derefidx_vbuyy_band_vwuc2.asm create mode 100644 src/main/fragment/mos6502-common/vwuz1=pwuz2_derefidx_vbuyy_minus_vwuz3.asm create mode 100644 src/main/fragment/mos6502-common/vwuz1=vwuz1_ror_vbuxx.asm create mode 100644 src/main/fragment/mos6502-common/vwuz1=vwuz1_ror_vbuyy.asm create mode 100644 src/main/kc/include/cx16-conio.h create mode 100644 src/main/kc/include/cx16-mouse.h create mode 100644 src/main/kc/include/cx16-typedefs.h create mode 100644 src/main/kc/include/cx16-veramem.h create mode 100644 src/main/kc/include/errno.h create mode 100644 src/main/kc/include/kernal.h create mode 100644 src/main/kc/include/pet-kernal.h create mode 100644 src/main/kc/include/pet.h create mode 100644 src/main/kc/lib/conio-c128.c delete mode 100644 src/main/kc/lib/conio-cx16.c create mode 100644 src/main/kc/lib/cx16-conio.c create mode 100644 src/main/kc/lib/cx16-mouse.c create mode 100644 src/main/kc/lib/errno.c create mode 100644 src/main/kc/lib/kernal.c create mode 100644 src/main/kc/lib/pet-conio.c create mode 100644 src/main/kc/lib/stdio.c rename src/{test/kc/examples/cx16/cx16-bankload.ld => main/kc/target/c128.ld} (54%) create mode 100644 src/main/kc/target/c128.tgt create mode 100644 src/main/kc/target/pet8032.ld create mode 100644 src/main/kc/target/pet8032.tgt create mode 100644 src/test/kc/examples/c128/sprites.c delete mode 100644 src/test/kc/examples/cx16/cx16-bankaddressing.c delete mode 100644 src/test/kc/examples/cx16/cx16-bankload.c delete mode 100644 src/test/kc/examples/cx16/cx16-tilemap.c delete mode 100644 src/test/kc/examples/cx16/cx16-veralayers.c delete mode 100644 src/test/kc/examples/cx16/cx16-veramodes.c delete mode 100644 src/test/kc/examples/cx16/ship.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Metal_1/frame_1.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Metal_1/frame_2.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Metal_1/frame_3.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Metal_1/frame_4.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Metal_1/metal_1.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Metal_1/metal_2.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Metal_1/metal_3.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Metal_1/metal_4.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_1.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_10.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_11.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_12.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_2.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_3.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_4.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_5.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_6.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_7.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_8.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_9.png delete mode 100644 src/test/kc/examples/cx16/spacedemo/spacedemo.c delete mode 100644 src/test/kc/examples/cx16/spacedemo/spacedemo.ld delete mode 100644 src/test/kc/examples/cx16/veralib/bitmap_1bpp_320_x_240.c delete mode 100644 src/test/kc/examples/cx16/veralib/bitmap_1bpp_640_x_480.c delete mode 100644 src/test/kc/examples/cx16/veralib/bitmap_2bpp_320_x_240.c delete mode 100644 src/test/kc/examples/cx16/veralib/bitmap_2bpp_640_x_480.c delete mode 100644 src/test/kc/examples/cx16/veralib/bitmap_4bpp_320_x_240.c delete mode 100644 src/test/kc/examples/cx16/veralib/bitmap_8bpp_320_x_240.c delete mode 100644 src/test/kc/examples/cx16/veralib/tilemap_1bpp_8_x_8_16_color.c delete mode 100644 src/test/kc/examples/cx16/veralib/tilemap_1bpp_8_x_8_256_color.c delete mode 100644 src/test/kc/examples/cx16/veralib/tilemap_2bpp_16_x_16.c delete mode 100644 src/test/kc/examples/cx16/veralib/tilemap_2bpp_8_x_8.c delete mode 100644 src/test/kc/examples/cx16/veralib/tilemap_4bpp_16_x_16.c delete mode 100644 src/test/kc/examples/cx16/veralib/tilemap_4bpp_8_x_8.c delete mode 100644 src/test/kc/examples/cx16/veralib/tilemap_8bpp_16_x_16.c delete mode 100644 src/test/kc/examples/cx16/veralib/tilemap_8bpp_8_x_8.c create mode 100644 src/test/kc/examples/memfast/memfast.c delete mode 100644 src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.asm delete mode 100644 src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.cfg delete mode 100644 src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.log delete mode 100644 src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.sym delete mode 100644 src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.asm delete mode 100644 src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.cfg delete mode 100644 src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.log delete mode 100644 src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.sym delete mode 100644 src/test/ref/examples/cx16/veralib/tilemap_8bpp_8_x_8.asm delete mode 100644 src/test/ref/examples/cx16/veralib/tilemap_8bpp_8_x_8.cfg delete mode 100644 src/test/ref/examples/cx16/veralib/tilemap_8bpp_8_x_8.log delete mode 100644 src/test/ref/examples/cx16/veralib/tilemap_8bpp_8_x_8.sym create mode 100644 src/test/ref/examples/memfast/memfast.asm create mode 100644 src/test/ref/examples/memfast/memfast.cfg create mode 100644 src/test/ref/examples/memfast/memfast.log create mode 100644 src/test/ref/examples/memfast/memfast.sym diff --git a/.gitignore b/.gitignore index 0ae827ae2..90d59c325 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ +.project +.tmpdirs /gen -**/.vscode/* */*.mon */*.vs */*.brk @@ -7,12 +8,13 @@ */*.sym */.tmpdirs */bin/ +**/.DS_Store +kickc.iml +/.idea/* +/.vscode/* +**/.vscode/* +**/.vscode/*.log **/target/* */workspace.xml -**/.DS_Store -.project -.tmpdirs -**/.vscode/*.log -/.idea/* -kickc.iml -/src/main/fragment/cache +/gen/* +/src/main/fragment/cache \ No newline at end of file diff --git a/src/main/fragment/cache/fragment-cache-wdc65c02.asm b/src/main/fragment/cache/fragment-cache-wdc65c02.asm new file mode 100644 index 000000000..55d574597 --- /dev/null +++ b/src/main/fragment/cache/fragment-cache-wdc65c02.asm @@ -0,0 +1,4580 @@ +//KICKC FRAGMENT CACHE 14b9f12c75 14b9f1558b +//FRAGMENT vbuz1=vbuc1 +lda #{c1} +sta {z1} +//FRAGMENT vwuz1=vwuz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vbuz1=_byte1_vwuz2 +lda {z2}+1 +sta {z1} +//FRAGMENT _deref_pbuc1=vbuz1 +lda {z1} +sta {c1} +//FRAGMENT vbuz1=_byte0_vwuz2 +lda {z2} +sta {z1} +//FRAGMENT vbuz1=_deref_pbuc1 +lda {c1} +sta {z1} +//FRAGMENT _deref_pbuc1=vbuc2 +lda #{c2} +sta {c1} +//FRAGMENT vbuz1=_stackidxbyte_vbuc1 +tsx +lda STACK_BASE+{c1},x +sta {z1} +//FRAGMENT vbuz1_eq_vbuc1_then_la1 +lda #{c1} +cmp {z1} +beq {la1} +//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuc2 +lda #{c2} +and {c1} +sta {c1} +//FRAGMENT vbuz1=_byte0__deref_pwuc1 +lda {c1} +sta {z1} +//FRAGMENT vbuz1=_byte1__deref_pwuc1 +lda {c1}+1 +sta {z1} +//FRAGMENT vbuz1=_deref_pbuc1_bor_vbuc2 +lda #{c2} +ora {c1} +sta {z1} +//FRAGMENT _deref_pbuc1=_deref_pbuc2 +lda {c2} +sta {c1} +//FRAGMENT 0_eq_pbuc1_derefidx_(_deref_pbuc2)_then_la1 +ldy {c2} +lda {c1},y +cmp #0 +beq {la1} +//FRAGMENT _deref_pbuc1_ge__deref_pbuc2_then_la1 +lda {c1} +cmp {c2} +bcs {la1} +//FRAGMENT _deref_pbuc1=_inc__deref_pbuc1 +inc {c1} +//FRAGMENT _deref_pwuc1=_inc__deref_pwuc1 +inc {c1} +bne !+ +inc {c1}+1 +!: +//FRAGMENT pbuz1=pbuc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT vwsz1=vwsc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT pssz1=pssz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT pssc1_eq_pssz1_then_la1 +lda {z1} +cmp #<{c1} +bne !+ +lda {z1}+1 +cmp #>{c1} +beq {la1} +!: +//FRAGMENT vwuz1=vbuc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT 0_neq_vwuz1_then_la1 +lda {z1} +ora {z1}+1 +bne {la1} +//FRAGMENT vwsz1=vwsz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT 0_eq_vwsz1_then_la1 +lda {z1} +ora {z1}+1 +beq {la1} +//FRAGMENT pprz1=pprc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT vbuz1=vbuz2 +lda {z2} +sta {z1} +//FRAGMENT 0_eq_vbuz1_then_la1 +lda {z1} +beq {la1} +//FRAGMENT 0_eq_vwuz1_then_la1 +lda {z1} +ora {z1}+1 +beq {la1} +//FRAGMENT vbuz1=_deref_pbuc1_band_vbuc2 +lda #{c2} +and {c1} +sta {z1} +//FRAGMENT vbuz1=vbuz2_bor_vbuc1 +lda #{c1} +ora {z2} +sta {z1} +//FRAGMENT vbum1=vbuc1 +lda #{c1} +sta {m1} +//FRAGMENT vwuz1=vbum2_word_vbum3 +lda {m2} +sta {z1}+1 +lda {m3} +sta {z1} +//FRAGMENT vbuz1_ge__deref_pbuc1_then_la1 +lda {z1} +cmp {c1} +bcs {la1} +//FRAGMENT vbuz1=_deref_pbuc1_rol_1 +lda {c1} +asl +sta {z1} +//FRAGMENT vbuz1=vbuz2_rol_1 +lda {z2} +asl +sta {z1} +//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2_plus_vbuz3 +lda {z3} +ldy {z2} +clc +adc {c1},y +sta {z1} +lda {c1}+1,y +adc #0 +sta {z1}+1 +//FRAGMENT _deref_pwuc1=vwuz1 +lda {z1} +sta {c1} +lda {z1}+1 +sta {c1}+1 +//FRAGMENT _deref_pwuc1=pwuc2_derefidx_vbuz1 +ldy {z1} +lda {c2},y +sta {c1} +lda {c2}+1,y +sta {c1}+1 +//FRAGMENT vwuz1=_deref_pwuc1 +lda {c1} +sta {z1} +lda {c1}+1 +sta {z1}+1 +//FRAGMENT vbuz1=_dec_vbuz1 +dec {z1} +//FRAGMENT 0_neq_vbuz1_then_la1 +lda {z1} +bne {la1} +//FRAGMENT vwuz1=vwuz1_plus__deref_pwuc1 +clc +lda {z1} +adc {c1} +sta {z1} +lda {z1}+1 +adc {c1}+1 +sta {z1}+1 +//FRAGMENT _deref_pwuc1=_deref_pwuc2 +lda {c2} +sta {c1} +lda {c2}+1 +sta {c1}+1 +//FRAGMENT vwuz1=_word_vbuz2 +lda {z2} +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_bor_vwuc1 +lda {z2} +ora #<{c1} +sta {z1} +lda {z2}+1 +ora #>{c1} +sta {z1}+1 +//FRAGMENT vbuz1=vbuz2_rol_2 +lda {z2} +asl +asl +sta {z1} +//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2 +lda #{c2} +ldy {z1} +sta {c1},y +//FRAGMENT pbuz1=pbuz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT _deref_pbuz1_eq_vbuc1_then_la1 +lda #{c1} +ldy #0 +cmp ({z1}),y +beq {la1} +//FRAGMENT vbuz1_neq_0_then_la1 +lda {z1} +bne {la1} +//FRAGMENT pbuc1_derefidx_vbuz1=_deref_pbuz2 +ldy #0 +lda ({z2}),y +ldy {z1} +sta {c1},y +//FRAGMENT vbuz1=_inc_vbuz1 +inc {z1} +//FRAGMENT pbuz1=_inc_pbuz1 +inc {z1} +bne !+ +inc {z1}+1 +!: +//FRAGMENT pbuz1=pbuz2_minus_1 +lda {z2} +sec +sbc #1 +sta {z1} +lda {z2}+1 +sbc #0 +sta {z1}+1 +//FRAGMENT 0_neq__deref_pbuz1_then_la1 +ldy #0 +lda ({z1}),y +cmp #0 +bne {la1} +//FRAGMENT 0_neq_pbuc1_derefidx_vbuz1_then_la1 +ldy {z1} +lda {c1},y +cmp #0 +bne {la1} +//FRAGMENT vbuz1=vbuz2_plus_1 +lda {z2} +inc +sta {z1} +//FRAGMENT pbuc1_derefidx_vbuz1=vbuz2 +lda {z2} +ldy {z1} +sta {c1},y +//FRAGMENT vbuz1=vbuz2_plus_2 +lda {z2} +clc +adc #2 +sta {z1} +//FRAGMENT pbuz1=pbuc1_plus_vbuz2 +lda {z2} +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} +//FRAGMENT vbuz1=_byte_vwuz2 +lda {z2} +sta {z1} +//FRAGMENT pssz1=vbuc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT vbuz1_gt_0_then_la1 +lda {z1} +bne {la1} +//FRAGMENT pbuz1=pbuz2_plus_1 +clc +lda {z2} +adc #1 +sta {z1} +lda {z2}+1 +adc #0 +sta {z1}+1 +//FRAGMENT vbuz1=_deref_pbuz2 +ldy #0 +lda ({z2}),y +sta {z1} +//FRAGMENT vbuz1_neq_vbuc1_then_la1 +lda #{c1} +cmp {z1} +bne {la1} +//FRAGMENT vbuz1=_byte_vwsz2 +lda {z2} +sta {z1} +//FRAGMENT vbuz1=_byte_pssz2 +lda {z2} +sta {z1} +//FRAGMENT vwuz1=vwuc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT 0_eq_pbuc1_derefidx_vbuz1_then_la1 +ldy {z1} +lda {c1},y +cmp #0 +beq {la1} +//FRAGMENT vwuz1_ge_vbuc1_then_la1 +lda {z1}+1 +bne {la1} +lda {z1} +cmp #{c1} +bcs {la1} +!: +//FRAGMENT vbuz1=vwuz2 +lda {z2} +sta {z1} +//FRAGMENT pvoz1=pvoz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2_band_vbuc2 +lda #{c2} +ldy {z2} +and {c1},y +sta {z1} +//FRAGMENT vwuz1_neq_vwuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bne {la1} +lda {z1} +cmp #<{c1} +bne {la1} +//FRAGMENT vwuz1=vwuz1_plus_vwuz2 +clc +lda {z1} +adc {z2} +sta {z1} +lda {z1}+1 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT pbuz1=pbuz1_plus_vwuz2 +clc +lda {z1} +adc {z2} +sta {z1} +lda {z1}+1 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT vbuz1=_byte1_pbuz2 +lda {z2}+1 +sta {z1} +//FRAGMENT pbuz1=pbuz1_minus_vwuc1 +lda {z1} +sec +sbc #<{c1} +sta {z1} +lda {z1}+1 +sbc #>{c1} +sta {z1}+1 +//FRAGMENT vwuz1=vwuz1_minus_vwuz2 +lda {z1} +sec +sbc {z2} +sta {z1} +lda {z1}+1 +sbc {z2}+1 +sta {z1}+1 +//FRAGMENT pbuc1_derefidx_vbuz1_eq_0_then_la1 +ldy {z1} +lda {c1},y +cmp #0 +beq {la1} +//FRAGMENT vwuz1=vbuz2_plus_1 +lda {z2} +clc +adc #1 +sta {z1} +lda #0 +adc #0 +sta {z1}+1 +//FRAGMENT pbuc1_eq_pbuz1_then_la1 +lda {z1} +cmp #<{c1} +bne !+ +lda {z1}+1 +cmp #>{c1} +beq {la1} +!: +//FRAGMENT _stackpushbyte_=vbuc1 +lda #{c1} +pha +//FRAGMENT call_vprc1 +jsr {c1} +//FRAGMENT _stackpullpadding_1 +pla +//FRAGMENT _stackpushbyte_=vbuz1 +lda {z1} +pha +//FRAGMENT call__deref_pprz1 +jsr {la1} +{la1}: @outside_flow +jmp ({z1}) @outside_flow +//FRAGMENT vwsz1=vbsc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT vwsz1_lt_0_then_la1 +lda {z1}+1 +bmi {la1} +//FRAGMENT vwsz1=_neg_vwsz1 +lda #0 +sec +sbc {z1} +sta {z1} +lda #0 +sbc {z1}+1 +sta {z1}+1 +//FRAGMENT vbum1=_deref_pbuc1 +lda {c1} +sta {m1} +//FRAGMENT vbuz1=vbuz2_ror_7 +lda {z2} +rol +rol +and #$01 +sta {z1} +//FRAGMENT vwuz1=vbuz2_word_vbuc1 +lda #{c1} +ldy {z2} +sty {z1}+1 +sta {z1} +//FRAGMENT vbuz1=vbuz2_band_vbuc1 +lda #{c1} +and {z2} +sta {z1} +//FRAGMENT vbuz1=vbuz2_ror_4 +lda {z2} +lsr +lsr +lsr +lsr +sta {z1} +//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbuz1 +ldy {z1} +lda {c2},y +sta {c1} +//FRAGMENT vbuz1=vbuz2_ror_6 +lda {z2} +rol +rol +rol +and #$03 +sta {z1} +//FRAGMENT vboz1=vbum2_eq_vbuc1 +lda {m2} +eor #{c1} +beq !+ +lda #1 +!: +eor #1 +sta {z1} +//FRAGMENT vbuz1=vbuc1_rol_vbuz2 +lda #{c1} +ldy {z2} +cpy #0 +beq !e+ +!: +asl +dey +bne !- +!e: +sta {z1} +//FRAGMENT vbuz1=vbuz2_minus_1 +ldx {z2} +dex +stx {z1} +//FRAGMENT vbuz1_le__deref_pbuc1_then_la1 +lda {c1} +cmp {z1} +bcs {la1} +//FRAGMENT pwuc1_derefidx_vbuz1=vwuz2 +ldy {z1} +lda {z2} +sta {c1},y +lda {z2}+1 +sta {c1}+1,y +//FRAGMENT _deref_pbuc1_le__deref_pbuc2_then_la1 +lda {c2} +cmp {c1} +bcs {la1} +//FRAGMENT 0_neq_pbuc1_derefidx_(_deref_pbuc2)_then_la1 +ldy {c2} +lda {c1},y +cmp #0 +bne {la1} +//FRAGMENT vwuz1=_inc_vwuz1 +inc {z1} +bne !+ +inc {z1}+1 +!: +//FRAGMENT _deref_pbuz1_neq_vbuc1_then_la1 +ldy #0 +lda ({z1}),y +cmp #{c1} +bne {la1} +//FRAGMENT pbuz1_derefidx_vbuz2_lt_vbuc1_then_la1 +ldy {z2} +lda ({z1}),y + +cmp #{c1} +bcc {la1} +//FRAGMENT pbuz1_derefidx_vbuz2_le_vbuc1_then_la1 +ldy {z2} +lda ({z1}),y + +cmp #{c1} +bcc {la1} +beq {la1} +//FRAGMENT vwsz1=vwsz2_rol_2 +lda {z2} +asl +sta {z1} +lda {z2}+1 +rol +sta {z1}+1 +asl {z1} +rol {z1}+1 +//FRAGMENT vwsz1=vwsz2_plus_vwsz3 +lda {z2} +clc +adc {z3} +sta {z1} +lda {z2}+1 +adc {z3}+1 +sta {z1}+1 +//FRAGMENT vwsz1=vwsz2_rol_1 +lda {z2} +asl +sta {z1} +lda {z2}+1 +rol +sta {z1}+1 +//FRAGMENT vwsz1=vwsz2_plus_pbuz3_derefidx_vbuz4 +ldy {z4} +lda {z2} +clc +adc ({z3}),y +sta {z1} +bcc !+ +inc {z2}+1 +!: +//FRAGMENT vwsz1=vwsz2_minus_vbuc1 +lda {z2} +sec +sbc #{c1} +sta {z1} +lda {z2}+1 +sbc #0 +sta {z1}+1 +//FRAGMENT vwuz1_lt_vwuz2_then_la1 +lda {z1}+1 +cmp {z2}+1 +bcc {la1} +bne !+ +lda {z1} +cmp {z2} +bcc {la1} +!: +//FRAGMENT _deref_pbuz1=vbuz2 +lda {z2} +ldy #0 +sta ({z1}),y +//FRAGMENT pwuz1=pwuc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT vbuz1_lt_vbuz2_then_la1 +lda {z1} +cmp {z2} +bcc {la1} +//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +ldy #0 +sta ({z1}),y +//FRAGMENT pbuz1=_inc_pbuz2 +clc +lda {z2} +adc #1 +sta {z1} +lda {z2}+1 +adc #0 +sta {z1}+1 +//FRAGMENT _deref_pbuz1=vbuc1 +lda #{c1} +ldy #0 +sta ({z1}),y +//FRAGMENT vwuz1=pwuz2_derefidx_vbuz3 +ldy {z3} +lda ({z2}),y +sta {z1} +iny +lda ({z2}),y +sta {z1}+1 +//FRAGMENT vwuz1_ge_vwuz2_then_la1 +lda {z2}+1 +cmp {z1}+1 +bne !+ +lda {z2} +cmp {z1} +beq {la1} +!: +bcc {la1} +//FRAGMENT vbsz1=_sbyte_vwuz2 +lda {z2} +sta {z1} +//FRAGMENT vbsz1=_inc_vbsz1 +inc {z1} +//FRAGMENT vbsz1=vbsz2_minus_vbsz3 +lda {z2} +sec +sbc {z3} +sta {z1} +//FRAGMENT vbsz1_ge_0_then_la1 +lda {z1} +cmp #0 +bpl {la1} +//FRAGMENT vbsz1=vbsc1 +lda #{c1} +sta {z1} +//FRAGMENT 0_neq_vbsz1_then_la1 +lda {z1} +cmp #0 +bne {la1} +//FRAGMENT pprz1=pprz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vbuz1=_deref_pbuc1_plus_1 +lda {c1} +inc +sta {z1} +//FRAGMENT vbuz1_lt__deref_pbuc1_then_la1 +lda {z1} +cmp {c1} +bcc {la1} +//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +//FRAGMENT vbuz1=pbuz2_derefidx_vbuz3 +ldy {z3} +lda ({z2}),y +sta {z1} +//FRAGMENT vbuz1_ge_vbuz2_then_la1 +lda {z1} +cmp {z2} +bcs {la1} +//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2 +lda #{c2} +ora {c1} +sta {c1} +//FRAGMENT vbuz1=_dec_vbuz2 +ldy {z2} +dey +sty {z1} +//FRAGMENT vbuz1=vbuz1_minus_vbuz2 +lda {z1} +sec +sbc {z2} +sta {z1} +//FRAGMENT vbuz1_lt_vbuc1_then_la1 +lda {z1} +cmp #{c1} +bcc {la1} +//FRAGMENT vbuz1_le_vbuc1_then_la1 +lda #{c1} +cmp {z1} +bcs {la1} +//FRAGMENT vbuz1=vbuz1_plus_vbuc1 +lda #{c1} +clc +adc {z1} +sta {z1} +//FRAGMENT vbuz1=vbuz1_rol_1 +asl {z1} +//FRAGMENT pbuz1=pbuz1_plus_1 +inc {z1} +bne !+ +inc {z1}+1 +!: +//FRAGMENT vwsz1=vwsz2_plus_vwsz1 +clc +lda {z1} +adc {z2} +sta {z1} +lda {z1}+1 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT vwsz1=vwsz1_minus_vbuc1 +lda {z1} +sec +sbc #{c1} +sta {z1} +bcs !+ +dec {z1}+1 +!: +//FRAGMENT vbsz1=vbsz1_minus_vbsz2 +lda {z1} +sec +sbc {z2} +sta {z1} +//FRAGMENT vbuz1=vbuz1_band_vbuc1 +lda #{c1} +and {z1} +sta {z1} +//FRAGMENT vbuz1=vbuz1_bor_vbuc1 +lda #{c1} +ora {z1} +sta {z1} +//FRAGMENT vbuz1=vbuz1_rol_2 +lda {z1} +asl +asl +sta {z1} +//FRAGMENT vbuz1=vbuz1_ror_4 +lda {z1} +lsr +lsr +lsr +lsr +sta {z1} +//FRAGMENT vbuz1=vbuz1_minus_1 +dec {z1} +//FRAGMENT vwsz1=vwsz1_rol_1 +asl {z1} +rol {z1}+1 +//FRAGMENT vwsz1=vwsz1_plus_pbuz2_derefidx_vbuz3 +ldy {z3} +lda {z1} +clc +adc ({z2}),y +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT vwuz1=vwuz1_bor_vwuc1 +lda {z1} +ora #<{c1} +sta {z1} +lda {z1}+1 +ora #>{c1} +sta {z1}+1 +//FRAGMENT vbuz1=vbuz1_ror_6 +lda {z1} +rol +rol +rol +and #$03 +sta {z1} +//FRAGMENT vbuz1=vbuc1_rol_vbuz1 +lda #{c1} +ldy {z1} +cpy #0 +beq !e+ +!: +asl +dey +bne !- +!e: +sta {z1} +//FRAGMENT vwum1=vwum2 +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +//FRAGMENT vbum1=_byte1_vwum2 +lda {m2}+1 +sta {m1} +//FRAGMENT _deref_pbuc1=vbum1 +lda {m1} +sta {c1} +//FRAGMENT vbum1=_byte0_vwum2 +lda {m2} +sta {m1} +//FRAGMENT vbum1=_stackidxbyte_vbuc1 +tsx +lda STACK_BASE+{c1},x +sta {m1} +//FRAGMENT vbum1_eq_vbuc1_then_la1 +lda #{c1} +cmp {m1} +beq {la1} +//FRAGMENT vbum1=_byte0__deref_pwuc1 +lda {c1} +sta {m1} +//FRAGMENT vbum1=_byte1__deref_pwuc1 +lda {c1}+1 +sta {m1} +//FRAGMENT vbum1=_deref_pbuc1_bor_vbuc2 +lda #{c2} +ora {c1} +sta {m1} +//FRAGMENT vdum1=vduc1 +lda #<{c1} +sta {m1} +lda #>{c1} +sta {m1}+1 +lda #<{c1}>>$10 +sta {m1}+2 +lda #>{c1}>>$10 +sta {m1}+3 +//FRAGMENT vdum1_lt_vduc1_then_la1 +lda {m1}+3 +cmp #>{c1}>>$10 +bcc {la1} +bne !+ +lda {m1}+2 +cmp #<{c1}>>$10 +bcc {la1} +bne !+ +lda {m1}+1 +cmp #>{c1} +bcc {la1} +bne !+ +lda {m1} +cmp #<{c1} +bcc {la1} +!: +//FRAGMENT vwsm1=vwsc1 +lda #<{c1} +sta {m1} +lda #>{c1} +sta {m1}+1 +//FRAGMENT vbum1_neq_vbuc1_then_la1 +lda #{c1} +cmp {m1} +bne {la1} +//FRAGMENT vwsm1_ge_0_then_la1 +lda {m1}+1 +bpl {la1} +//FRAGMENT vwum1=vwuc1 +lda #<{c1} +sta {m1} +lda #>{c1} +sta {m1}+1 +//FRAGMENT vwum1_lt_vwuc1_then_la1 +lda {m1}+1 +cmp #>{c1} +bcc {la1} +bne !+ +lda {m1} +cmp #<{c1} +bcc {la1} +!: +//FRAGMENT vwsm1=vwsm2 +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +//FRAGMENT vwsm1=_dec_vwsm1 +lda {m1} +bne !+ +dec {m1}+1 +!: +dec {m1} +//FRAGMENT vwum1=_inc_vwum1 +inc {m1} +bne !+ +inc {m1}+1 +!: +//FRAGMENT pbuc1_derefidx_vbum1_eq_vbuc2_then_la1 +ldy {m1} +lda {c1},y +cmp #{c2} +beq {la1} +//FRAGMENT vbum1_eq_0_then_la1 +lda {m1} +beq {la1} +//FRAGMENT vbum1=vbuc1_plus_vbum2 +lda #{c1} +clc +adc {m2} +sta {m1} +//FRAGMENT pbuz1=pbuc1_plus_vwum2 +lda {m2} +clc +adc #<{c1} +sta {z1} +lda {m2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT _deref_pbuz1=vbum2 +lda {m2} +ldy #0 +sta ({z1}),y +//FRAGMENT vbum1=vbum2_rol_5 +lda {m2} +asl +asl +asl +asl +asl +sta {m1} +//FRAGMENT pssc1_neq_pssz1_then_la1 +lda {z1}+1 +cmp #>{c1} +bne {la1} +lda {z1} +cmp #<{c1} +bne {la1} +//FRAGMENT vbum1=vbum2 +lda {m2} +sta {m1} +//FRAGMENT vbum1=vbum2_rol_2 +lda {m2} +asl +asl +sta {m1} +//FRAGMENT vbum1=vbum2_plus_vbum3 +lda {m2} +clc +adc {m3} +sta {m1} +//FRAGMENT vbum1=vbum2_rol_1 +lda {m2} +asl +sta {m1} +//FRAGMENT vbum1=_dec_vbum1 +dec {m1} +//FRAGMENT vdum1=vdum2 +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +lda {m2}+2 +sta {m1}+2 +lda {m2}+3 +sta {m1}+3 +//FRAGMENT vdum1_eq_vduc1_then_la1 +lda {m1}+3 +cmp #>{c1}>>$10 +bne !+ +lda {m1}+2 +cmp #<{c1}>>$10 +bne !+ +lda {m1}+1 +cmp #>{c1} +bne !+ +lda {m1} +cmp #<{c1} +beq {la1} +!: +//FRAGMENT vdum1=vdum2_plus_vdum3 +lda {m2} +clc +adc {m3} +sta {m1} +lda {m2}+1 +adc {m3}+1 +sta {m1}+1 +lda {m2}+2 +adc {m3}+2 +sta {m1}+2 +lda {m2}+3 +adc {m3}+3 +sta {m1}+3 +//FRAGMENT vdum1=pduc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {m1} +lda {c1}+1,y +sta {m1}+1 +lda {c1}+2,y +sta {m1}+2 +lda {c1}+3,y +sta {m1}+3 +//FRAGMENT vdum1=vdum2_minus_vwuc1 +NO_SYNTHESIS +//FRAGMENT vdum1=vdum2_minus_vwsc1 +NO_SYNTHESIS +//FRAGMENT vdum1=vdum2_minus_vduc1 +lda {m2} +sec +sbc #<{c1} +sta {m1} +lda {m2}+1 +sbc #>{c1} +sta {m1}+1 +lda {m2}+2 +sbc #<{c1}>>$10 +sta {m1}+2 +lda {m2}+3 +sbc #>{c1}>>$10 +sta {m1}+3 +//FRAGMENT vbum1=vbum2_plus_1 +lda {m2} +inc +sta {m1} +//FRAGMENT vdum1_lt_vdum2_then_la1 +lda {m1}+3 +cmp {m2}+3 +bcc {la1} +bne !+ +lda {m1}+2 +cmp {m2}+2 +bcc {la1} +bne !+ +lda {m1}+1 +cmp {m2}+1 +bcc {la1} +bne !+ +lda {m1} +cmp {m2} +bcc {la1} +!: +//FRAGMENT vwum1_neq_vwuc1_then_la1 +lda {m1}+1 +cmp #>{c1} +bne {la1} +lda {m1} +cmp #<{c1} +bne {la1} +//FRAGMENT pbuz1=pbuz1_plus_vwuc1 +lda {z1} +clc +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vdum1=vdum1_plus_vwuc1 +clc +lda {m1} +adc #<{c1} +sta {m1} +lda {m1}+1 +adc #>{c1} +sta {m1}+1 +lda {m1}+2 +adc #0 +sta {m1}+2 +lda {m1}+3 +adc #0 +sta {m1}+3 +//FRAGMENT pbuz1_neq_vwuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bne {la1} +lda {z1} +cmp #<{c1} +bne {la1} +//FRAGMENT vbum1=_inc_vbum1 +inc {m1} +//FRAGMENT vbum1=vbum1_plus_vbuc1 +lda #{c1} +clc +adc {m1} +sta {m1} +//FRAGMENT vdum1=vdum2_band_vwuc1 +NO_SYNTHESIS +//FRAGMENT vdum1=vdum2_band_vwsc1 +NO_SYNTHESIS +//FRAGMENT vdum1=vdum2_band_vduc1 +lda {m2} +and #<{c1} +sta {m1} +lda {m2}+1 +and #>{c1} +sta {m1}+1 +lda {m2}+2 +and #<{c1}>>$10 +sta {m1}+2 +lda {m2}+3 +and #>{c1}>>$10 +sta {m1}+3 +//FRAGMENT 0_neq_vdum1_then_la1 +lda {m1} +ora {m1}+1 +ora {m1}+2 +ora {m1}+3 +bne {la1} +//FRAGMENT vdum1=vdum2_plus_vwuc1 +clc +lda {m2} +adc #<{c1} +sta {m1} +lda {m2}+1 +adc #>{c1} +sta {m1}+1 +lda {m2}+2 +adc #0 +sta {m1}+2 +lda {m2}+3 +adc #0 +sta {m1}+3 +//FRAGMENT pbuc1_derefidx_vbum1=vbuc2 +lda #{c2} +ldy {m1} +sta {c1},y +//FRAGMENT vdum1_neq_0_then_la1 +lda {m1} +ora {m1}+1 +ora {m1}+2 +ora {m1}+3 +bne {la1} +//FRAGMENT vdum1_neq_vduc1_then_la1 +lda {m1}+3 +cmp #>{c1}>>$10 +bne {la1} +lda {m1}+2 +cmp #<{c1}>>$10 +bne {la1} +lda {m1}+1 +cmp #>{c1} +bne {la1} +lda {m1} +cmp #<{c1} +bne {la1} +//FRAGMENT vbum1=pbuc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {m1} +//FRAGMENT vdum1=vdum1_plus_vduc1 +clc +lda {m1} +adc #<{c1} +sta {m1} +lda {m1}+1 +adc #>{c1} +sta {m1}+1 +lda {m1}+2 +adc #<{c1}>>$10 +sta {m1}+2 +lda {m1}+3 +adc #>{c1}>>$10 +sta {m1}+3 +//FRAGMENT pduc1_derefidx_vbum1=vduc2 +ldy {m1} +lda #<{c2} +sta {c1},y +lda #>{c2} +sta {c1}+1,y +lda #<{c2}>>$10 +sta {c1}+2,y +lda #>{c2}>>$10 +sta {c1}+3,y +//FRAGMENT vbum1=_deref_pbuc1_band_vbuc2 +lda #{c2} +and {c1} +sta {m1} +//FRAGMENT vbum1=vbum2_bor_vbum3 +lda {m2} +ora {m3} +sta {m1} +//FRAGMENT vbum1=vbum2_rol_4 +lda {m2} +asl +asl +asl +asl +sta {m1} +//FRAGMENT vwum1=vbum2_word_vbum3 +lda {m2} +sta {m1}+1 +lda {m3} +sta {m1} +//FRAGMENT vbum1_ge__deref_pbuc1_then_la1 +lda {m1} +cmp {c1} +bcs {la1} +//FRAGMENT vbum1=_deref_pbuc1_rol_1 +lda {c1} +asl +sta {m1} +//FRAGMENT vwum1=pwuc1_derefidx_vbum2_plus_vbum3 +lda {m3} +ldy {m2} +clc +adc {c1},y +sta {m1} +lda {c1}+1,y +adc #0 +sta {m1}+1 +//FRAGMENT _deref_pwuc1=vwum1 +lda {m1} +sta {c1} +lda {m1}+1 +sta {c1}+1 +//FRAGMENT _deref_pwuc1=pwuc2_derefidx_vbum1 +ldy {m1} +lda {c2},y +sta {c1} +lda {c2}+1,y +sta {c1}+1 +//FRAGMENT pbuc1_derefidx_(_deref_pbuc2)=vbuc3 +lda #{c3} +ldy {c2} +sta {c1},y +//FRAGMENT vwum1=_deref_pwuc1 +lda {c1} +sta {m1} +lda {c1}+1 +sta {m1}+1 +//FRAGMENT 0_neq_vbum1_then_la1 +lda {m1} +bne {la1} +//FRAGMENT vwum1=vwum1_plus__deref_pwuc1 +clc +lda {m1} +adc {c1} +sta {m1} +lda {m1}+1 +adc {c1}+1 +sta {m1}+1 +//FRAGMENT vbum1_lt_vbuc1_then_la1 +lda {m1} +cmp #{c1} +bcc {la1} +//FRAGMENT vbum1=_inc_vbum2 +lda {m2} +inc +sta {m1} +//FRAGMENT vbum1=_deref_pbuz2 +ldy #0 +lda ({z2}),y +sta {m1} +//FRAGMENT _stackpushbyte_=vbum1 +lda {m1} +pha +//FRAGMENT 0_eq_vbum1_then_la1 +lda {m1} +beq {la1} +//FRAGMENT vbsm1=_sbyte_vwum2 +lda {m2} +sta {m1} +//FRAGMENT vbsm1=vbsm2_minus_vbsm3 +lda {m2} +sec +sbc {m3} +sta {m1} +//FRAGMENT vbsm1_ge_0_then_la1 +lda {m1} +cmp #0 +bpl {la1} +//FRAGMENT vbsm1=vbsc1 +lda #{c1} +sta {m1} +//FRAGMENT 0_neq_vbsm1_then_la1 +lda {m1} +cmp #0 +bne {la1} +//FRAGMENT vwum1=vbum2 +lda {m2} +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT 0_eq_vwum1_then_la1 +lda {m1} +ora {m1}+1 +beq {la1} +//FRAGMENT vbuz1=vbum2 +lda {m2} +sta {z1} +//FRAGMENT vwsm1_lt_0_then_la1 +lda {m1}+1 +bmi {la1} +//FRAGMENT vwsm1=_neg_vwsm1 +lda #0 +sec +sbc {m1} +sta {m1} +lda #0 +sbc {m1}+1 +sta {m1}+1 +//FRAGMENT _deref_pbuz1=_deref_pbuz2 +ldy #0 +lda ({z2}),y +ldy #0 +sta ({z1}),y +//FRAGMENT vwum1=_word_vbum2 +lda {m2} +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT vwuz1=vwum2_bor_vwuc1 +lda {m2} +ora #<{c1} +sta {z1} +lda {m2}+1 +ora #>{c1} +sta {z1}+1 +//FRAGMENT vbum1_neq_0_then_la1 +lda {m1} +bne {la1} +//FRAGMENT pbuc1_derefidx_vbum1=_deref_pbuz2 +ldy #0 +lda ({z2}),y +ldy {m1} +sta {c1},y +//FRAGMENT 0_neq_pbuc1_derefidx_vbum1_then_la1 +ldy {m1} +lda {c1},y +cmp #0 +bne {la1} +//FRAGMENT pbuc1_derefidx_vbum1=vbum2 +lda {m2} +ldy {m1} +sta {c1},y +//FRAGMENT vbum1=vbum2_plus_2 +lda {m2} +clc +adc #2 +sta {m1} +//FRAGMENT pbuz1=pbuc1_plus_vbum2 +lda {m2} +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 +//FRAGMENT vbum1=_byte_vwum2 +lda {m2} +sta {m1} +//FRAGMENT 0_eq_vwsm1_then_la1 +lda {m1} +ora {m1}+1 +beq {la1} +//FRAGMENT vbum1_gt_0_then_la1 +lda {m1} +bne {la1} +//FRAGMENT vbum1=_byte_vwsm2 +lda {m2} +sta {m1} +//FRAGMENT vdum1=_dword_vbum2 +lda {m2} +sta {m1} +lda #0 +sta {m1}+1 +sta {m1}+2 +sta {m1}+3 +//FRAGMENT vdum1=vdum2_rol_vbuc1 +ldy #{c1} +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +lda {m2}+2 +sta {m1}+2 +lda {m2}+3 +sta {m1}+3 +cpy #0 +beq !e+ +!: +asl {m1} +rol {m1}+1 +rol {m1}+2 +rol {m1}+3 +dey +bne !- +!e: +//FRAGMENT vbum1=vbum2_band_vbuc1 +lda #{c1} +and {m2} +sta {m1} +//FRAGMENT 0_neq_vwum1_then_la1 +lda {m1} +ora {m1}+1 +bne {la1} +//FRAGMENT pbuz1=pbuz1_plus_vwum2 +clc +lda {z1} +adc {m2} +sta {z1} +lda {z1}+1 +adc {m2}+1 +sta {z1}+1 +//FRAGMENT vdum1=vdum1_plus_vwum2 +lda {m1} +clc +adc {m2} +sta {m1} +lda {m1}+1 +adc {m2}+1 +sta {m1}+1 +lda {m1}+2 +adc #0 +sta {m1}+2 +lda {m1}+3 +adc #0 +sta {m1}+3 +//FRAGMENT pbuz1_lt_vwuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bcc {la1} +bne !+ +lda {z1} +cmp #<{c1} +bcc {la1} +!: +//FRAGMENT vbum1=_byte_pssz2 +lda {z2} +sta {m1} +//FRAGMENT 0_eq_pbuc1_derefidx_vbum1_then_la1 +ldy {m1} +lda {c1},y +cmp #0 +beq {la1} +//FRAGMENT vbum1=_byte2_vdum2 +lda {m2}+2 +sta {m1} +//FRAGMENT vbum1=_byte1_vdum2 +lda {m2}+1 +sta {m1} +//FRAGMENT vwum1=vwum2_rol_2 +lda {m2} +asl +sta {m1} +lda {m2}+1 +rol +sta {m1}+1 +asl {m1} +rol {m1}+1 +//FRAGMENT vwum1=_word_vdum2 +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +//FRAGMENT vwum1=vwum2_band_vwuc1 +lda {m2} +and #<{c1} +sta {m1} +lda {m2}+1 +and #>{c1} +sta {m1}+1 +//FRAGMENT vwuz1=vwum2_plus_vwuc1 +lda {m2} +clc +adc #<{c1} +sta {z1} +lda {m2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwum1_lt_vwum2_then_la1 +lda {m1}+1 +cmp {m2}+1 +bcc {la1} +bne !+ +lda {m1} +cmp {m2} +bcc {la1} +!: +//FRAGMENT vwum1=vwuz2 +lda {z2} +sta {m1} +lda {z2}+1 +sta {m1}+1 +//FRAGMENT vdum1_lt_vwuc1_then_la1 +NO_SYNTHESIS +//FRAGMENT vdum1_lt_vwsc1_then_la1 +NO_SYNTHESIS +//FRAGMENT vdum1=_inc_vdum1 +inc {m1} +bne !+ +inc {m1}+1 +bne !+ +inc {m1}+2 +bne !+ +inc {m1}+3 +!: +//FRAGMENT vbum1=pbuz2_derefidx_vbuc1 +ldy #{c1} +lda ({z2}),y +sta {m1} +//FRAGMENT vbum1=vbum2_ror_7 +lda {m2} +rol +rol +and #$01 +sta {m1} +//FRAGMENT vwum1=vbum2_word_vbuc1 +lda #{c1} +ldy {m2} +sty {m1}+1 +sta {m1} +//FRAGMENT vbum1=vbum2_ror_4 +lda {m2} +lsr +lsr +lsr +lsr +sta {m1} +//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbum1 +ldy {m1} +lda {c2},y +sta {c1} +//FRAGMENT vbum1=vbum2_ror_6 +lda {m2} +rol +rol +rol +and #$03 +sta {m1} +//FRAGMENT vbom1=vbum2_eq_vbuc1 +lda {m2} +eor #{c1} +beq !+ +lda #1 +!: +eor #1 +sta {m1} +//FRAGMENT vbum1=vbuc1_rol_vbum2 +lda #{c1} +ldy {m2} +cpy #0 +beq !e+ +!: +asl +dey +bne !- +!e: +sta {m1} +//FRAGMENT vbum1=vbum2_minus_1 +ldx {m2} +dex +stx {m1} +//FRAGMENT vbum1=vbuz2_rol_1 +lda {z2} +asl +sta {m1} +//FRAGMENT pwuc1_derefidx_vbum1=vwum2 +ldy {m1} +lda {m2} +sta {c1},y +lda {m2}+1 +sta {c1}+1,y +//FRAGMENT vbum1_lt_vbum2_then_la1 +lda {m1} +cmp {m2} +bcc {la1} +//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +ldy #0 +sta ({z1}),y +//FRAGMENT vwum1=pwuz2_derefidx_vbum3 +ldy {m3} +lda ({z2}),y +sta {m1} +iny +lda ({z2}),y +sta {m1}+1 +//FRAGMENT vwum1_ge_vwum2_then_la1 +lda {m2}+1 +cmp {m1}+1 +bne !+ +lda {m2} +cmp {m1} +beq {la1} +!: +bcc {la1} +//FRAGMENT vbsm1=_inc_vbsm1 +inc {m1} +//FRAGMENT vwum1=vbuz2_plus_1 +lda {z2} +clc +adc #1 +sta {m1} +lda #0 +adc #0 +sta {m1}+1 +//FRAGMENT pbuc1_derefidx_vbuz1=vbum2 +lda {m2} +ldy {z1} +sta {c1},y +//FRAGMENT pbuz1_derefidx_vbum2_lt_vbuc1_then_la1 +ldy {m2} +lda ({z1}),y + +cmp #{c1} +bcc {la1} +//FRAGMENT pbuz1_derefidx_vbum2_le_vbuc1_then_la1 +ldy {m2} +lda ({z1}),y + +cmp #{c1} +bcc {la1} +beq {la1} +//FRAGMENT vwsm1=vwsm2_rol_2 +lda {m2} +asl +sta {m1} +lda {m2}+1 +rol +sta {m1}+1 +asl {m1} +rol {m1}+1 +//FRAGMENT vwsm1=vwsm2_plus_vwsm3 +lda {m2} +clc +adc {m3} +sta {m1} +lda {m2}+1 +adc {m3}+1 +sta {m1}+1 +//FRAGMENT vwsm1=vwsm2_rol_1 +lda {m2} +asl +sta {m1} +lda {m2}+1 +rol +sta {m1}+1 +//FRAGMENT vwsm1=vwsm2_plus_pbuz3_derefidx_vbum4 +ldy {m4} +lda {m2} +clc +adc ({z3}),y +sta {m1} +bcc !+ +inc {m2}+1 +!: +//FRAGMENT vwsm1=vwsm2_minus_vbuc1 +lda {m2} +sec +sbc #{c1} +sta {m1} +lda {m2}+1 +sbc #0 +sta {m1}+1 +//FRAGMENT vbum1=pbuz2_derefidx_vbum3 +ldy {m3} +lda ({z2}),y +sta {m1} +//FRAGMENT vbum1_ge_vbum2_then_la1 +lda {m1} +cmp {m2} +bcs {la1} +//FRAGMENT vwum1=vbuc1 +lda #<{c1} +sta {m1} +lda #>{c1} +sta {m1}+1 +//FRAGMENT vwum1_ge_vbuc1_then_la1 +lda {m1}+1 +bne {la1} +lda {m1} +cmp #{c1} +bcs {la1} +!: +//FRAGMENT vbum1=vwum2 +lda {m2} +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbum2_band_vbuc2 +lda #{c2} +ldy {m2} +and {c1},y +sta {m1} +//FRAGMENT vwum1=vwum1_plus_vwum2 +clc +lda {m1} +adc {m2} +sta {m1} +lda {m1}+1 +adc {m2}+1 +sta {m1}+1 +//FRAGMENT vbum1=_byte1_pbuz2 +lda {z2}+1 +sta {m1} +//FRAGMENT vwum1=vwum1_minus_vwum2 +lda {m1} +sec +sbc {m2} +sta {m1} +lda {m1}+1 +sbc {m2}+1 +sta {m1}+1 +//FRAGMENT pbuc1_derefidx_vbum1_eq_0_then_la1 +ldy {m1} +lda {c1},y +cmp #0 +beq {la1} +//FRAGMENT _deref_pbuz1_eq_vbum2_then_la1 +lda {m2} +ldy #0 +cmp ({z1}),y +beq {la1} +//FRAGMENT vbum1_neq_vbum2_then_la1 +lda {m1} +cmp {m2} +bne {la1} +//FRAGMENT vbum1=_deref_pbuc1_plus_1 +lda {c1} +inc +sta {m1} +//FRAGMENT vbum1_lt__deref_pbuc1_then_la1 +lda {m1} +cmp {c1} +bcc {la1} +//FRAGMENT vwum1=pwuc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {m1} +lda {c1}+1,y +sta {m1}+1 +//FRAGMENT vbum1=vbum1_minus_vbum2 +lda {m1} +sec +sbc {m2} +sta {m1} +//FRAGMENT vbum1=_byte_vdum2 +lda {m2} +sta {m1} +//FRAGMENT vdum1_ge_vdum2_then_la1 +lda {m1}+3 +cmp {m2}+3 +bcc !+ +bne {la1} +lda {m1}+2 +cmp {m2}+2 +bcc !+ +bne {la1} +lda {m1}+1 +cmp {m2}+1 +bcc !+ +bne {la1} +lda {m1} +cmp {m2} +bcs {la1} +!: +//FRAGMENT vbum1=vbum2_bor_vbuc1 +lda #{c1} +ora {m2} +sta {m1} +//FRAGMENT vbum1=_dec_vbum2 +ldy {m2} +dey +sty {m1} +//FRAGMENT vbum1_le_vbuc1_then_la1 +lda #{c1} +cmp {m1} +bcs {la1} +//FRAGMENT vdum1=vdum1_minus_vdum2 +lda {m1} +sec +sbc {m2} +sta {m1} +lda {m1}+1 +sbc {m2}+1 +sta {m1}+1 +lda {m1}+2 +sbc {m2}+2 +sta {m1}+2 +lda {m1}+3 +sbc {m2}+3 +sta {m1}+3 +//FRAGMENT vbum1=vbum2_bor_vbum1 +lda {m1} +ora {m2} +sta {m1} +//FRAGMENT vbum1=vbum1_rol_4 +lda {m1} +asl +asl +asl +asl +sta {m1} +//FRAGMENT vbum1=vbum1_rol_1 +asl {m1} +//FRAGMENT vbsm1=vbsm1_minus_vbsm2 +lda {m1} +sec +sbc {m2} +sta {m1} +//FRAGMENT vbum1=vbum2_plus_vbum1 +lda {m1} +clc +adc {m2} +sta {m1} +//FRAGMENT vbsm1=vbsm2_minus_vbsm1 +lda {m2} +sec +sbc {m1} +sta {m1} +//FRAGMENT vwsm1=vwsm2_plus_vwsm1 +clc +lda {m1} +adc {m2} +sta {m1} +lda {m1}+1 +adc {m2}+1 +sta {m1}+1 +//FRAGMENT vwsm1=vwsm1_minus_vbuc1 +lda {m1} +sec +sbc #{c1} +sta {m1} +bcs !+ +dec {m1}+1 +!: +//FRAGMENT vbum1=vbum1_plus_vbum2 +lda {m1} +clc +adc {m2} +sta {m1} +//FRAGMENT vdum1=vdum2_plus_vdum1 +clc +lda {m1} +adc {m2} +sta {m1} +lda {m1}+1 +adc {m2}+1 +sta {m1}+1 +lda {m1}+2 +adc {m2}+2 +sta {m1}+2 +lda {m1}+3 +adc {m2}+3 +sta {m1}+3 +//FRAGMENT vbum1=vbum1_band_vbuc1 +lda #{c1} +and {m1} +sta {m1} +//FRAGMENT vbum1=vbum1_bor_vbum2 +lda {m1} +ora {m2} +sta {m1} +//FRAGMENT vbum1=vbuc1_plus_vbum1 +lda #{c1} +clc +adc {m1} +sta {m1} +//FRAGMENT vwum1=vwum1_rol_2 +asl {m1} +rol {m1}+1 +asl {m1} +rol {m1}+1 +//FRAGMENT vwum1=vwum1_band_vwuc1 +lda {m1} +and #<{c1} +sta {m1} +lda {m1}+1 +and #>{c1} +sta {m1}+1 +//FRAGMENT vbom1=vbum1_eq_vbuc1 +lda {m1} +eor #{c1} +beq !+ +lda #1 +!: +eor #1 +sta {m1} +//FRAGMENT vbum1=vbum1_ror_4 +lda {m1} +lsr +lsr +lsr +lsr +sta {m1} +//FRAGMENT vbum1=vbuc1_rol_vbum1 +lda #{c1} +ldy {m1} +cpy #0 +beq !e+ +!: +asl +dey +bne !- +!e: +sta {m1} +//FRAGMENT vbum1=vbum1_bor_vbuc1 +lda #{c1} +ora {m1} +sta {m1} +//FRAGMENT vwsm1=vwsm1_rol_1 +asl {m1} +rol {m1}+1 +//FRAGMENT vwsm1=vwsm1_plus_pbuz2_derefidx_vbum3 +ldy {m3} +lda {m1} +clc +adc ({z2}),y +sta {m1} +bcc !+ +inc {m1}+1 +!: +//FRAGMENT vdum1=vdum1_minus_vwuc1 +NO_SYNTHESIS +//FRAGMENT vdum1=vdum1_minus_vwsc1 +NO_SYNTHESIS +//FRAGMENT vdum1=vdum1_minus_vduc1 +lda {m1} +sec +sbc #<{c1} +sta {m1} +lda {m1}+1 +sbc #>{c1} +sta {m1}+1 +lda {m1}+2 +sbc #<{c1}>>$10 +sta {m1}+2 +lda {m1}+3 +sbc #>{c1}>>$10 +sta {m1}+3 +//FRAGMENT vbum1=vbum1_ror_6 +lda {m1} +rol +rol +rol +and #$03 +sta {m1} +//FRAGMENT vdum1=vdum1_rol_vbuc1 +ldx #{c1} +cpx #0 +beq !e+ +!: +asl {m1} +rol {m1}+1 +rol {m1}+2 +rol {m1}+3 +dex +bne !- +!e: +//FRAGMENT vbum1=vbum1_minus_1 +dec {m1} +//FRAGMENT vbuz1=vbuz2_plus_vbuc1 +lda #{c1} +clc +adc {z2} +sta {z1} +//FRAGMENT vbuz1=vbuz2_bor_vbuz3 +lda {z2} +ora {z3} +sta {z1} +//FRAGMENT vbuz1=vbuz2_rol_4 +lda {z2} +asl +asl +asl +asl +sta {z1} +//FRAGMENT vbuz1=_deref_pbuc1_minus_1 +ldx {c1} +dex +stx {z1} +//FRAGMENT _deref_pbuc1_le_vbuz1_then_la1 +lda {z1} +cmp {c1} +bcs {la1} +//FRAGMENT vbuz1=_deref_pbuc1_minus__deref_pbuc2 +lda {c1} +sec +sbc {c2} +sta {z1} +//FRAGMENT vbuz1_gt__deref_pbuc1_then_la1 +lda {c1} +cmp {z1} +bcc {la1} +//FRAGMENT vbuz1=vbuz2_bor_vbuz1 +lda {z1} +ora {z2} +sta {z1} +//FRAGMENT vbuz1=vbuz1_rol_4 +lda {z1} +asl +asl +asl +asl +sta {z1} +//FRAGMENT vbuz1=vbuz1_plus_1 +inc {z1} +//FRAGMENT vbuz1=vbuz1_bor_vbuz2 +lda {z1} +ora {z2} +sta {z1} +//FRAGMENT pbuz1_neq_pbuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bne {la1} +lda {z1} +cmp #<{c1} +bne {la1} +//FRAGMENT pwuc1_derefidx_vbuz1_eq_vwuc2_then_la1 +ldy {z1} +lda {c1},y +cmp #<{c2} +bne !+ +lda {c1}+1,y +cmp #>{c2} +beq {la1} +!: +//FRAGMENT vbuz1_eq_vbuz2_then_la1 +lda {z1} +cmp {z2} +beq {la1} +//FRAGMENT _deref_pbuc1_neq_vbuc2_then_la1 +lda #{c2} +cmp {c1} +bne {la1} +//FRAGMENT pbuc1_derefidx_vbuz1=_deref_pbuc2 +lda {c2} +ldy {z1} +sta {c1},y +//FRAGMENT pbuc1_derefidx_(_deref_pbuc2)=vbuz1 +lda {z1} +ldy {c2} +sta {c1},y +//FRAGMENT _deref_pbuc1_neq_vbuz1_then_la1 +lda {c1} +cmp {z1} +bne {la1} +//FRAGMENT pwuc1_derefidx_vbuz1=vwuc2 +ldy {z1} +lda #<{c2} +sta {c1},y +lda #>{c2} +sta {c1}+1,y +//FRAGMENT vbuz1=vbuz2_ror_3 +lda {z2} +lsr +lsr +lsr +sta {z1} +//FRAGMENT pwuc1_derefidx_vbuz1_neq_vwuc2_then_la1 +ldy {z1} +lda {c1}+1,y +cmp #>{c2} +bne {la1} +lda {c1},y +cmp #<{c2} +bne {la1} +//FRAGMENT pwuc1_derefidx_vbuz1_neq_vwuz2_then_la1 +ldy {z1} +lda {z2}+1 +cmp {c1}+1,y +bne {la1} +lda {z2} +cmp {c1},y +bne {la1} +//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuz1_then_la1 +ldy {z1} +lda {c1},y +cmp {z1} +beq {la1} +//FRAGMENT vbuz1_neq__deref_pbuc1_then_la1 +lda {c1} +cmp {z1} +bne {la1} +//FRAGMENT _deref_pbuc1=_dec__deref_pbuc1 +dec {c1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz1 +ldy {z1} +lda {c1},y +sta {z1} +//FRAGMENT vwuz1=vwuz2_band_vbuc1 +lda #{c1} +and {z2} +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vbuz1_neq_vbuz2_then_la1 +lda {z1} +cmp {z2} +bne {la1} +//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 +ldy {z1} +lda {c1},y +cmp {z2} +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1 +lda #{c2} +ldy {z1} +cmp {c1},y +bne {la1} +//FRAGMENT vbuz1=_inc_vbuz2 +lda {z2} +inc +sta {z1} +//FRAGMENT vwuz1=vbuz2_plus_vbuc1 +lda #{c1} +clc +adc {z2} +sta {z1} +lda #0 +adc #0 +sta {z1}+1 +//FRAGMENT vbsz1=vbsz2_minus_vbsz1 +lda {z2} +sec +sbc {z1} +sta {z1} +//FRAGMENT vwuz1=vwuz1_band_vbuc1 +lda #{c1} +and {z1} +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vbuz1_eq_0_then_la1 +lda {z1} +beq {la1} +//FRAGMENT isr_rom_sys_cx16_entry + +//FRAGMENT vwuz1_neq_vbuc1_then_la1 +lda {z1}+1 +bne {la1} +lda {z1} +cmp #{c1} +bne {la1} +//FRAGMENT vwuz1=_dec_vwuz1 +lda {z1} +bne !+ +dec {z1}+1 +!: +dec {z1} +//FRAGMENT isr_rom_sys_cx16_exit +jmp (isr_vsync) +//FRAGMENT vwuz1=vwuz2_rol_1 +lda {z2} +asl +sta {z1} +lda {z2}+1 +rol +sta {z1}+1 +//FRAGMENT pwuz1=pwuc1_plus_vwuz2 +lda {z2} +clc +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT _deref_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_qprc1=pprc2 +lda #<{c2} +sta {c1} +lda #>{c2} +sta {c1}+1 +//FRAGMENT _deref_pwuc1=_deref_pwuc1_plus_vbuc2 +lda #{c2} +clc +adc {c1} +sta {c1} +bcc !+ +inc {c1}+1 +!: +//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 _deref_pbuc1=_deref_pbuz1 +ldy #0 +lda ({z1}),y +sta {c1} +//FRAGMENT pbuz1=pbuz2_plus_vwuz1 +clc +lda {z1} +adc {z2} +sta {z1} +lda {z1}+1 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT pwuz1=pwuc1_plus_vwuz1 +lda {z1} +clc +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwuz1=_inc_vwuz2 +clc +lda {z2} +adc #1 +sta {z1} +lda {z2}+1 +adc #0 +sta {z1}+1 +//FRAGMENT vdum1=vwuc1 +NO_SYNTHESIS +//FRAGMENT vdum1=vwsc1 +NO_SYNTHESIS +//FRAGMENT pssz1=pssc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT vbum1=vbuz2 +lda {z2} +sta {m1} +//FRAGMENT vbum1=vwuc1 +lda #<{c1} +sta {m1} +//FRAGMENT _deref_pwsc1=_deref_pwsc2 +lda {c2} +sta {c1} +lda {c2}+1 +sta {c1}+1 +//FRAGMENT _deref_pwsc1=vwsz1 +lda {z1} +sta {c1} +lda {z1}+1 +sta {c1}+1 +//FRAGMENT _deref_pwuc1_ge__deref_pbuc2_then_la1 +lda {c1}+1 +bne {la1} +lda {c1} +cmp {c2} +bcs {la1} +!: +//FRAGMENT _deref_pwuc1_lt__deref_pwuc2_then_la1 +lda {c1}+1 +cmp {c2}+1 +bcc {la1} +bne !+ +lda {c1} +cmp {c2} +bcc {la1} +!: +//FRAGMENT pssz1=_deref_qssc1 +lda {c1} +sta {z1} +lda {c1}+1 +sta {z1}+1 +//FRAGMENT vwum1=_deref_pwuc1_rol_2 +lda {c1} +asl +sta {m1} +lda {c1}+1 +rol +sta {m1}+1 +asl {m1} +rol {m1}+1 +//FRAGMENT vwum1=vwum2_plus__deref_pwuc1 +lda {m2} +clc +adc {c1} +sta {m1} +lda {m2}+1 +adc {c1}+1 +sta {m1}+1 +//FRAGMENT vwum1=vwum2_rol_1 +lda {m2} +asl +sta {m1} +lda {m2}+1 +rol +sta {m1}+1 +//FRAGMENT pssz1=pssz2_plus_vwum3 +lda {m3} +clc +adc {z2} +sta {z1} +lda {m3}+1 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT _deref_pssc1=_deref_pssz1_memcpy_vbuc2 +ldx #{c2} +ldy #0 +!: +lda ({z1}),y +sta {c1},y +iny +dex +bne !- +//FRAGMENT _deref_pwuc1=_deref_pbuc2 +lda {c2} +sta {c1} +lda #0 +sta {c1}+1 +//FRAGMENT _deref_pwuc1=vbuc2 +lda #<{c2} +sta {c1} +lda #>{c2} +sta {c1}+1 +//FRAGMENT 0_eq__deref_pbuc1_then_la1 +lda {c1} +beq {la1} +//FRAGMENT 0_neq__deref_pbuc1_then_la1 +lda {c1} +bne {la1} +//FRAGMENT pssz1=qssz2_derefidx_vbuc1 +ldy #{c1} +lda ({z2}),y +sta {z1} +iny +lda ({z2}),y +sta {z1}+1 +//FRAGMENT vwum1_lt__deref_pwuc1_then_la1 +lda {m1}+1 +cmp {c1}+1 +bcc {la1} +bne !+ +lda {m1} +cmp {c1} +bcc {la1} +!: +//FRAGMENT qssz1=qssz2_plus_1 +clc +lda {z2} +adc #1 +sta {z1} +lda {z2}+1 +adc #0 +sta {z1}+1 +//FRAGMENT qssz1=qssz2_plus_vwum3 +lda {z2} +clc +adc {m3} +sta {z1} +lda {z2}+1 +adc {m3}+1 +sta {z1}+1 +//FRAGMENT pssz1=_deref_qssz2 +ldy #0 +lda ({z2}),y +sta {z1} +iny +lda ({z2}),y +sta {z1}+1 +//FRAGMENT vwum1=vwum2_plus_vwum3 +lda {m2} +clc +adc {m3} +sta {m1} +lda {m2}+1 +adc {m3}+1 +sta {m1}+1 +//FRAGMENT pbuz1=pbuz2_plus_vbuc1 +lda #{c1} +clc +adc {z2} +sta {z1} +lda #0 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT pbuz1=pbuz2_plus_vwum3 +lda {z2} +clc +adc {m3} +sta {z1} +lda {z2}+1 +adc {m3}+1 +sta {z1}+1 +//FRAGMENT vwum1=_word__deref_pbuz2 +ldy #0 +lda ({z2}),y +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT vwum1_neq_vwum2_then_la1 +lda {m1}+1 +cmp {m2}+1 +bne {la1} +lda {m1} +cmp {m2} +bne {la1} +//FRAGMENT vwum1=_deref_pwuc1_plus_1 +clc +lda {c1} +adc #1 +sta {m1} +lda {c1}+1 +adc #0 +sta {m1}+1 +//FRAGMENT vbum1=vwum2_band_vbuc1 +lda #{c1} +and {m2} +sta {m1} +//FRAGMENT _deref_pwuc1=vbum1 +lda {m1} +sta {c1} +lda #0 +sta {c1}+1 +//FRAGMENT vbum1=_deref_pwuc1 +lda {c1} +sta {m1} +//FRAGMENT pbuc1_derefidx_vbum1=_dec_pbuc1_derefidx_vbum1 +ldx {m1} +dec {c1},x +//FRAGMENT pbuc1_derefidx_vbum1_le_0_then_la1 +ldy {m1} +lda {c1},y +cmp #0 +beq {la1} +//FRAGMENT pbuc1_derefidx_vbum1=pbuc2_derefidx_vbum1 +ldy {m1} +lda {c2},y +sta {c1},y +//FRAGMENT _deref_pwsc1_ge__deref_pwsc2_then_la1 +lda {c1} +cmp {c2} +lda {c1}+1 +sbc {c2}+1 +bvc !+ +eor #$80 +!: +bpl {la1} +//FRAGMENT pbuc1_derefidx_vbum1=pbuc1_derefidx_vbum1_minus_1 +ldy {m1} +lda {c1},y +sec +sbc #1 +sta {c1},y +//FRAGMENT _deref_pwsc1_le__deref_pwsc2_then_la1 +lda {c2} +cmp {c1} +lda {c2}+1 +sbc {c1}+1 +bvc !+ +eor #$80 +!: +bpl {la1} +//FRAGMENT pbuc1_derefidx_vbum1_ge_vbuc2_then_la1 +ldy {m1} +lda {c1},y +cmp #{c2} +bcs {la1} +//FRAGMENT pbuc1_derefidx_vbum1=pbuc1_derefidx_vbum1_plus_1 +ldy {m1} +lda {c1},y +inc +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbum1_neq_vbuc2_then_la1 +lda #{c2} +ldy {m1} +cmp {c1},y +bne {la1} +//FRAGMENT pbuc1_derefidx_vbum1_lt_vbuc2_then_la1 +ldy {m1} +lda {c1},y +cmp #{c2} +bcc {la1} +//FRAGMENT pbuc1_derefidx_vbum1=_inc_pbuc1_derefidx_vbum1 +ldx {m1} +inc {c1},x +//FRAGMENT pbuc1_derefidx_vbum1=pbuc1_derefidx_vbum1_band_vbuc2 +lda #{c2} +ldy {m1} +and {c1},y +sta {c1},y +//FRAGMENT vdum1=_deref_pwuc1_dword_vbuc2 +lda {c1} +sta {m1}+2 +lda {c1}+1 +sta {m1}+3 +lda #{c2} +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT pduc1_derefidx_vbum1=vdum2 +ldy {m1} +lda {m2} +sta {c1},y +lda {m2}+1 +sta {c1}+1,y +lda {m2}+2 +sta {c1}+2,y +lda {m2}+3 +sta {c1}+3,y +//FRAGMENT vwum1=_word1_pduc1_derefidx_vbum2 +ldy {m2} +lda {c1}+2,y +sta {m1} +lda {c1}+3,y +sta {m1}+1 +//FRAGMENT vwsm1_le_vwsc1_then_la1 +lda #<{c1} +cmp {m1} +lda #>{c1} +sbc {m1}+1 +bvc !+ +eor #$80 +!: +bpl {la1} +//FRAGMENT vwsm1=vbsc1 +lda #<{c1} +sta {m1} +lda #>{c1} +sta {m1}+1 +//FRAGMENT vwum1=vwum2_plus_vbuc1 +lda #{c1} +clc +adc {m2} +sta {m1} +lda #0 +adc {m2}+1 +sta {m1}+1 +//FRAGMENT vbum1=_byte0_vwsm2 +lda {m2} +sta {m1} +//FRAGMENT vbum1=_byte1_vwsm2 +lda {m2}+1 +sta {m1} +//FRAGMENT vwsm1=vwsm2_plus_vbsc1 +lda {m2} +clc +adc #<{c1} +sta {m1} +lda {m2}+1 +adc #>{c1} +sta {m1}+1 +//FRAGMENT pduc1_derefidx_vbum1=pduc1_derefidx_vbum1_plus_pduc2_derefidx_vbum1 +ldy {m1} +lda {c1},y +clc +adc {c2},y +sta {c1},y +lda {c1}+1,y +adc {c2}+1,y +sta {c1}+1,y +lda {c1}+2,y +adc {c2}+2,y +sta {c1}+2,y +lda {c1}+3,y +adc {c2}+3,y +sta {c1}+3,y +//FRAGMENT vwsm1_le_vbsc1_then_la1 +NO_SYNTHESIS +//FRAGMENT vwsm1_gt_vbsc1_then_la1 +NO_SYNTHESIS +//FRAGMENT vwsm1_gt_vwsc1_then_la1 +lda #<{c1} +cmp {m1} +lda #>{c1} +sbc {m1}+1 +bvc !+ +eor #$80 +!: +bmi {la1} +//FRAGMENT vwsm1_ge_vwsc1_then_la1 +lda {m1} +cmp #<{c1} +lda {m1}+1 +sbc #>{c1} +bvc !+ +eor #$80 +!: +bpl {la1} +//FRAGMENT vwsm1_lt_vwsc1_then_la1 +lda {m1} +cmp #<{c1} +lda {m1}+1 +sbc #>{c1} +bvc !+ +eor #$80 +!: +bmi {la1} +//FRAGMENT vbum1=pbuc1_derefidx_(pbuc2_derefidx_vbum2) +ldx {m2} +ldy {c2},x +ldx {c1},y +stx {m1} +//FRAGMENT vwsm1=vwsm2_ror_2 +lda {m2}+1 +cmp #$80 +ror +sta {m1}+1 +lda {m2} +ror +sta {m1} +lda {m1}+1 +cmp #$80 +ror {m1}+1 +ror {m1} +//FRAGMENT vbum1=vbuc1_bor_vbum2 +lda #{c1} +ora {m2} +sta {m1} +//FRAGMENT 0_eq_pwuc1_derefidx_vbum1_then_la1 +ldy {m1} +lda {c1},y +ora {c1}+1,y +beq {la1} +//FRAGMENT pwuc1_derefidx_vbum1=_dec_pwuc1_derefidx_vbum1 +ldx {m1} +lda {c1},x +bne !+ +dec {c1}+1,x +!: +dec {c1},x +//FRAGMENT vwsm1=pwsc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {m1} +lda {c1}+1,y +sta {m1}+1 +//FRAGMENT vwsm1=vwsm1_rol_vbum2 +ldy {m2} +beq !e+ +!: +asl {m1} +rol {m1}+1 +dey +bne !- +!e: +//FRAGMENT vdum1=_dword_vwsm2 +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +ora #$7f +bmi !+ +lda #0 +!: +sta {m1}+2 +sta {m1}+3 +//FRAGMENT vdum1=vdum2_rol_8 +lda #0 +sta {m1} +lda {m2} +sta {m1}+1 +lda {m2}+1 +sta {m1}+2 +lda {m2}+2 +sta {m1}+3 +//FRAGMENT pbuc1_derefidx_vbum1=pbuc1_derefidx_vbum1_plus_pbuc2_derefidx_vbum1 +ldy {m1} +lda {c1},y +clc +adc {c2},y +sta {c1},y +//FRAGMENT vwsm1_lt_vbsc1_then_la1 +NO_SYNTHESIS +//FRAGMENT pssz1=qssc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +//FRAGMENT pvoz1=qvoz2_derefidx_vbum3 +ldy {m3} +lda ({z2}),y +sta {z1} +iny +lda ({z2}),y +sta {z1}+1 +//FRAGMENT vbsm1=_deref_pbsz2 +ldy #0 +lda ({z2}),y +sta {m1} +//FRAGMENT vwum1=_deref_pwuz2 +ldy #0 +lda ({z2}),y +sta {m1} +iny +lda ({z2}),y +sta {m1}+1 +//FRAGMENT vbsm1=pbsz2_derefidx_vbuc1 +ldy #{c1} +lda ({z2}),y +sta {m1} +//FRAGMENT pbsc1_derefidx_vbum1_le_0_then_la1 +ldy {m1} +lda {c1},y +cmp #1 +bmi {la1} +//FRAGMENT pbuc1_derefidx_vbum1_lt_pbuc2_derefidx_vbum1_then_la1 +ldy {m1} +lda {c1},y +cmp {c2},y +bcc {la1} +//FRAGMENT pbsc1_derefidx_vbum1_ge_0_then_la1 +ldy {m1} +lda {c1},y +cmp #0 +bpl {la1} +//FRAGMENT pbuc1_derefidx_vbum1_gt_pbuc2_derefidx_vbum1_then_la1 +ldy {m1} +lda {c2},y +cmp {c1},y +bcc {la1} +//FRAGMENT pbsc1_derefidx_vbum1=vbsc2 +lda #{c2} +ldy {m1} +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbum1=pbuc1_derefidx_vbum1_plus_pbsc2_derefidx_vbum1 +ldx {m1} +lda {c1},x +ldy {c2},x +sty $ff +clc +adc $ff +sta {c1},x +//FRAGMENT vbum1=vbuz2_rol_4 +lda {z2} +asl +asl +asl +asl +sta {m1} +//FRAGMENT _deref_pwuc1=vwuc2 +lda #<{c2} +sta {c1} +lda #>{c2} +sta {c1}+1 +//FRAGMENT 0_eq__deref_pwuc1_then_la1 +lda {c1} +ora {c1}+1 +beq {la1} +//FRAGMENT pwuz1_derefidx_vbuc1=vwum2 +ldy #{c1} +lda {m2} +sta ({z1}),y +iny +lda {m2}+1 +sta ({z1}),y +//FRAGMENT pduz1_derefidx_vbuc1=vdum2 +ldy #{c1} +lda {m2} +sta ({z1}),y +iny +lda {m2}+1 +sta ({z1}),y +iny +lda {m2}+2 +sta ({z1}),y +iny +lda {m2}+3 +sta ({z1}),y +//FRAGMENT pwuz1_derefidx_vbuc1=vbuc2 +lda #{c2} +ldy #{c1} +sta ({z1}),y +lda #0 +iny +sta ({z1}),y +//FRAGMENT vwum1=pwuz2_derefidx_vbuc1 +ldy #{c1} +lda ({z2}),y +sta {m1} +iny +lda ({z2}),y +sta {m1}+1 +//FRAGMENT qssc1_derefidx_vbum1=pssz2 +ldy {m1} +lda {z2} +sta {c1},y +lda {z2}+1 +sta {c1}+1,y +//FRAGMENT pwuc1_derefidx_vbum1=vbuc2 +lda #{c2} +ldy {m1} +sta {c1},y +lda #0 +sta {c1}+1,y +//FRAGMENT vwum1=vwum2_minus_pwuc1_derefidx_vbum3 +ldy {m3} +lda {m2} +sec +sbc {c1},y +sta {m1} +lda {m2}+1 +sbc {c1}+1,y +sta {m1}+1 +//FRAGMENT vwum1=pwuc1_derefidx_vbum2_minus_pwuc2_derefidx_vbum2 +ldy {m2} +lda {c1},y +sec +sbc {c2},y +sta {m1} +lda {c1}+1,y +sbc {c2}+1,y +sta {m1}+1 +//FRAGMENT pbuc1_derefidx_vbum1=vbum1 +ldy {m1} +tya +sta {c1},y +//FRAGMENT pwuc1_derefidx_vbum1=_inc_pwuc1_derefidx_vbum1 +ldx {m1} +inc {c1},x +bne !+ +inc {c1}+1,x +!: +//FRAGMENT pvoz1=pvoc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT _deref_qssc1=pssc2 +lda #<{c2} +sta {c1} +lda #>{c2} +sta {c1}+1 +//FRAGMENT pssz1=pssc1_plus_vwum2 +lda {m2} +clc +adc #<{c1} +sta {z1} +lda {m2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT pduc1_derefidx_vbum1=vbuc2 +ldy {m1} +lda #{c2} +sta {c1},y +lda #0 +sta {c1}+1,y +sta {c1}+2,y +sta {c1}+3,y +//FRAGMENT pbsz1=pbsz2_plus_vbuc1 +lda #{c1} +clc +adc {z2} +sta {z1} +lda #0 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT pbsz1=pbsz2_plus_vwum3 +lda {z2} +clc +adc {m3} +sta {z1} +lda {z2}+1 +adc {m3}+1 +sta {z1}+1 +//FRAGMENT pbsc1_derefidx_vbum1=_deref_pbsz2 +ldy #0 +lda ({z2}),y +ldy {m1} +sta {c1},y +//FRAGMENT qssz1=qssz2_plus_vbuc1 +lda #{c1} +clc +adc {z2} +sta {z1} +lda #0 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT qssc1_derefidx_vbum1=_deref_qssz2 +ldx {m1} +ldy #$00 +lda ({z2}),y +sta {c1},x +iny +lda ({z2}),y +sta {c1}+1,x +//FRAGMENT pbuc1_derefidx_vbum1=pbuz2_derefidx_vbuc2 +ldx {m1} +ldy #{c2} +lda ({z2}),y +sta {c1},x +//FRAGMENT pwsz1=pwsz2_plus_vbuc1 +lda #{c1} +clc +adc {z2} +sta {z1} +lda #0 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT pwsz1=pwsz2_plus_vwum3 +lda {z2} +clc +adc {m3} +sta {z1} +lda {z2}+1 +adc {m3}+1 +sta {z1}+1 +//FRAGMENT pwsc1_derefidx_vbum1=_deref_pwsz2 +ldx {m1} +ldy #0 +lda ({z2}),y +sta {c1},x +iny +lda ({z2}),y +sta {c1}+1,x +//FRAGMENT pwsc1_derefidx_vbum1=pwsc1_derefidx_vbum1_plus_pbsc2_derefidx_vbum2 +ldx {m1} +ldy {m2} +lda {c2},y +sta $ff +clc +adc {c1},x +sta {c1},x +iny +lda $ff +ora #$7f +bmi !+ +lda #0 +!: +adc {c1}+1,x +sta {c1}+1,x +//FRAGMENT pbuc1_derefidx_vbum1=pbuc1_derefidx_vbum1_minus_vbuc2 +ldy {m1} +lda {c1},y +sec +sbc #{c2} +sta {c1},y +//FRAGMENT _deref_pbuc1_ge_vbuc2_then_la1 +lda {c1} +cmp #{c2} +bcs {la1} +//FRAGMENT vwum1=_deref_pwuc1_plus_vbsc2 +lda #{c2} +sta $ff +clc +adc {c1} +sta {m1} +lda $ff +ora #$7f +bmi !+ +lda #0 +!: +adc {c1}+1 +sta {m1}+1 +//FRAGMENT vbum1=pbuc1_derefidx_vbum2_bxor_vbuc2 +lda #{c2} +ldy {m2} +eor {c1},y +sta {m1} +//FRAGMENT vdum1=vwum2_dword_vbuc1 +lda {m2} +sta {m1}+2 +lda {m2}+1 +sta {m1}+3 +lda #{c1} +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT pwuz1=pwuc1_plus_vwum2 +lda {m2} +clc +adc #<{c1} +sta {z1} +lda {m2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwuz1=vwum2 +lda {m2} +sta {z1} +lda {m2}+1 +sta {z1}+1 +//FRAGMENT vdum1=vwum2 +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +lda #0 +sta {m1}+2 +sta {m1}+3 +//FRAGMENT vbom1=vbum2_neq_vbuc1 +lda {m2} +eor #{c1} +beq !+ +lda #1 +!: +sta {m1} +//FRAGMENT vboz1=_deref_pbuc1_ge_vbuc2 +lda {c1} +cmp #{c2} +bcs !+ +lda #0 +jmp !e+ +!: +lda #1 +!e: +sta {z1} +//FRAGMENT vbom1=vboz2 +lda {z2} +sta {m1} +//FRAGMENT vbom1_then_la1 +lda {m1} +cmp #0 +bne {la1} +//FRAGMENT vdum1=_dword_pwuc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {m1} +iny +lda {c1},y +sta {m1}+1 +lda #0 +sta {m1}+2 +sta {m1}+3 +//FRAGMENT vbum1=_deref_pbuz2_ror_5 +ldy #0 +lda ({z2}),y +lsr +lsr +lsr +lsr +lsr +sta {m1} +//FRAGMENT vwum1=vwum2_rol_3 +lda {m2} +asl +sta {m1} +lda {m2}+1 +rol +sta {m1}+1 +asl {m1} +rol {m1}+1 +asl {m1} +rol {m1}+1 +//FRAGMENT vbum1=vbum2_ror_2 +lda {m2} +lsr +lsr +sta {m1} +//FRAGMENT vwuz1=pwuc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +//FRAGMENT vwum1=vwum2_ror_5 +lda {m2}+1 +lsr +sta {m1}+1 +lda {m2} +ror +sta {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +//FRAGMENT vwum1=vwum2_rol_vbuc1 +ldy #{c1} +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +cpy #0 +beq !e+ +!: +asl {m1} +rol {m1}+1 +dey +bne !- +!e: +//FRAGMENT vwum1=vwum2_bor_vwum3 +lda {m2} +ora {m3} +sta {m1} +lda {m2}+1 +ora {m3}+1 +sta {m1}+1 +//FRAGMENT vwum1=pbuc1_derefidx_(pbuc2_derefidx_vbum2) +ldx {m2} +ldy {c2},x +lda {c1},y +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT 0_eq_pbsc1_derefidx_vbum1_then_la1 +ldy {m1} +lda {c1},y +cmp #0 +beq {la1} +//FRAGMENT vbum1=vbum2_plus_vbuc1 +lda #{c1} +clc +adc {m2} +sta {m1} +//FRAGMENT vbum1_le_vbum2_then_la1 +lda {m2} +cmp {m1} +bcs {la1} +//FRAGMENT vbum1=vbum1_plus_1 +inc {m1} +//FRAGMENT vwum1=vwum2_rol_7 +lda {m2}+1 +lsr +lda {m2} +ror +sta {m1}+1 +lda #0 +ror +sta {m1} +//FRAGMENT vwum1=vwum1_bxor_vwum2 +lda {m1} +eor {m2} +sta {m1} +lda {m1}+1 +eor {m2}+1 +sta {m1}+1 +//FRAGMENT vwum1=vwum2_ror_9 +lda {m2}+1 +lsr +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT vwum1=vwum2_rol_8 +lda {m2} +sta {m1}+1 +lda #0 +sta {m1} +//FRAGMENT vwum1=vwum2_ror_2 +lda {m2}+1 +lsr +sta {m1}+1 +lda {m2} +ror +sta {m1} +lsr {m1}+1 +ror {m1} +//FRAGMENT vwum1=_deref_pwuc1_ror_2 +lda {c1}+1 +lsr +sta {m1}+1 +lda {c1} +ror +sta {m1} +lsr {m1}+1 +ror {m1} +//FRAGMENT vbum1=vbum2_minus_vbuc1 +lda {m2} +sec +sbc #{c1} +sta {m1} +//FRAGMENT vwsm1=vwsm2_rol_vbuc1 +ldy #{c1} +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +cpy #0 +beq !e+ +!: +asl {m1} +rol {m1}+1 +dey +bne !- +!e: +//FRAGMENT pbuc1_derefidx_vbum1=pbuc1_derefidx_vbum1_plus_vbuc2 +lda #{c2} +ldy {m1} +clc +adc {c1},y +sta {c1},y +//FRAGMENT vwum1=vwum1_ror_vbum2 +ldy {m2} +!: +lsr {m1}+1 +ror {m1} +dey +bne !- +!e: +//FRAGMENT vbum1=pbuc1_derefidx_vbum2_plus_vbum3 +lda {m3} +ldy {m2} +clc +adc {c1},y +sta {m1} +//FRAGMENT vbum1=vbuz2_ror_7 +lda {z2} +rol +rol +and #$01 +sta {m1} +//FRAGMENT vbum1=vbuz2_band_vbuc1 +lda #{c1} +and {z2} +sta {m1} +//FRAGMENT pwuc1_derefidx_vbum1=vwuz2 +ldy {m1} +lda {z2} +sta {c1},y +lda {z2}+1 +sta {c1}+1,y +//FRAGMENT _deref_pbuc1=_deref_pbuc1 +lda {c1} +sta {c1} +//FRAGMENT vbum1=_byte0_vwuz2 +lda {z2} +sta {m1} +//FRAGMENT vbum1=_byte1_vwuz2 +lda {z2}+1 +sta {m1} +//FRAGMENT vwuz1_le_0_then_la1 +lda {z1} +bne !+ +lda {z1}+1 +beq {la1} +!: +//FRAGMENT vdum1=vdum2_ror_3 +lda {m2}+3 +lsr +sta {m1}+3 +lda {m2}+2 +ror +sta {m1}+2 +lda {m2}+1 +ror +sta {m1}+1 +lda {m2} +ror +sta {m1} +lsr {m1}+3 +ror {m1}+2 +ror {m1}+1 +ror {m1} +lsr {m1}+3 +ror {m1}+2 +ror {m1}+1 +ror {m1} +//FRAGMENT vwum1=vwum2_ror_3 +lda {m2}+1 +lsr +sta {m1}+1 +lda {m2} +ror +sta {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +//FRAGMENT _deref_pbuc1=_deref_pbuc1_plus_1 +inc {c1} +//FRAGMENT pbuc1_derefidx_vbum1=pbuc1_derefidx_vbum1_band_vbum2 +lda {m2} +ldy {m1} +and {c1},y +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbum1=pbuc1_derefidx_vbum1_bor_vbuc2 +lda #{c2} +ldy {m1} +ora {c1},y +sta {c1},y +//FRAGMENT vwum1_lt_vbuc1_then_la1 +lda {m1}+1 +bne !+ +lda {m1} +cmp #{c1} +bcc {la1} +!: +//FRAGMENT vwum1=vwum2_rol_5 +lda {m2} +asl +sta {m1} +lda {m2}+1 +rol +sta {m1}+1 +asl {m1} +rol {m1}+1 +asl {m1} +rol {m1}+1 +asl {m1} +rol {m1}+1 +asl {m1} +rol {m1}+1 +//FRAGMENT _deref_pwuz1=vwuz2 +ldy #0 +lda {z2} +sta ({z1}),y +iny +lda {z2}+1 +sta ({z1}),y +//FRAGMENT pbuz1=qbuc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +//FRAGMENT vbum1=vbum2_ror_5 +lda {m2} +lsr +lsr +lsr +lsr +lsr +sta {m1} +//FRAGMENT vwum1=vwum2_plus_vbum3 +lda {m3} +clc +adc {m2} +sta {m1} +lda #0 +adc {m2}+1 +sta {m1}+1 +//FRAGMENT pbuz1=pbuz2_plus_vwuc1 +lda {z2} +clc +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vbum1_eq_vbum2_then_la1 +lda {m1} +cmp {m2} +beq {la1} +//FRAGMENT pbuc1_derefidx_vbum1=pbuc2_derefidx_vbum2 +ldy {m2} +lda {c2},y +ldy {m1} +sta {c1},y +//FRAGMENT pwuc1_derefidx_vbum1=pwuc2_derefidx_vbum2 +ldx {m1} +ldy {m2} +lda {c2},y +sta {c1},x +lda {c2}+1,y +sta {c1}+1,x +//FRAGMENT 0_neq_pwuc1_derefidx_vbum1_then_la1 +ldy {m1} +lda {c1}+1,y +ora {c1},y +bne {la1} +//FRAGMENT vwum1=vwuc1_plus_vwum2 +lda {m2} +clc +adc #<{c1} +sta {m1} +lda {m2}+1 +adc #>{c1} +sta {m1}+1 +//FRAGMENT vwum1=vwum2_plus_1 +clc +lda {m2} +adc #1 +sta {m1} +lda {m2}+1 +adc #0 +sta {m1}+1 +//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbum1 +lda {c1} +ora {m1} +sta {c1} +//FRAGMENT vwum1=pbuc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT vbum1=pbuc1_derefidx_vbum2_minus_1 +ldy {m2} +ldx {c1},y +dex +stx {m1} +//FRAGMENT pwuc1_derefidx_vbum1_neq_vwuz2_then_la1 +ldy {m1} +lda {z2}+1 +cmp {c1}+1,y +bne {la1} +lda {z2} +cmp {c1},y +bne {la1} +//FRAGMENT vdum1=vdum2_minus_1 +sec +lda {m2} +sbc #1 +sta {m1} +lda {m2}+1 +sbc #0 +sta {m1}+1 +lda {m2}+2 +sbc #0 +sta {m1}+2 +lda {m2}+3 +sbc #0 +sta {m1}+3 +//FRAGMENT vbum1=pbuc1_derefidx_vbum1 +ldy {m1} +lda {c1},y +sta {m1} +//FRAGMENT vwum1_gt_vwum2_then_la1 +lda {m2}+1 +cmp {m1}+1 +bcc {la1} +bne !+ +lda {m2} +cmp {m1} +bcc {la1} +!: +//FRAGMENT pwuc1_derefidx_vbum1_neq_vwuc2_then_la1 +ldy {m1} +lda {c1}+1,y +cmp #>{c2} +bne {la1} +lda {c1},y +cmp #<{c2} +bne {la1} +//FRAGMENT pwuc1_derefidx_vbum1=vwuc2 +ldy {m1} +lda #<{c2} +sta {c1},y +lda #>{c2} +sta {c1}+1,y +//FRAGMENT _deref_pwuc1=_deref_pwuc1_plus_vwum1 +clc +lda {c1} +adc {m1} +sta {c1} +lda {c1}+1 +adc {m1}+1 +sta {c1}+1 +//FRAGMENT _deref_pwuc1=_deref_pwuc1_minus_vwum1 +lda {c1} +sec +sbc {m1} +sta {c1} +lda {c1}+1 +sbc {m1}+1 +sta {c1}+1 +//FRAGMENT vwum1=pbuc1_derefidx_vbum2_word_pbuc2_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {m1}+1 +lda {c2},y +sta {m1} +//FRAGMENT vbum1=vbuz2_bor_vbuc1 +lda #{c1} +ora {z2} +sta {m1} +//FRAGMENT vwum1=vwuz2_band_vwuc1 +lda {z2} +and #<{c1} +sta {m1} +lda {z2}+1 +and #>{c1} +sta {m1}+1 +//FRAGMENT pbuz1=pbum2 +lda {m2} +sta {z1} +lda {m2}+1 +sta {z1}+1 +//FRAGMENT vbuz1=_byte0_pbuz2 +lda {z2} +sta {z1} +//FRAGMENT vbum1=_byte0_pbuz2 +lda {z2} +sta {m1} +//FRAGMENT vbuz1=_neg_vbum2 +lda {m2} +eor #$ff +clc +adc #$01 +sta {z1} +//FRAGMENT vwum1=_word_vbuz2 +lda {z2} +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT vwuz1_gt_vwum2_then_la1 +lda {m2}+1 +cmp {z1}+1 +bcc {la1} +bne !+ +lda {m2} +cmp {z1} +bcc {la1} +!: +//FRAGMENT vwuz1=vwuz1_minus_vbuz2 +sec +lda {z1} +sbc {z2} +sta {z1} +bcs !+ +dec {z1}+1 +!: +//FRAGMENT vwuz1=vwuz1_minus_vwuc1 +lda {z1} +sec +sbc #<{c1} +sta {z1} +lda {z1}+1 +sbc #>{c1} +sta {z1}+1 +//FRAGMENT pwuc1_derefidx_vbum1_eq_vwuc2_then_la1 +ldy {m1} +lda {c1},y +cmp #<{c2} +bne !+ +lda {c1}+1,y +cmp #>{c2} +beq {la1} +!: +//FRAGMENT vwum1=vwum2_minus_vwuc1 +sec +lda {m2} +sbc #<{c1} +sta {m1} +lda {m2}+1 +sbc #>{c1} +sta {m1}+1 +//FRAGMENT pbuc1_derefidx_vbum1=vbuz2 +lda {z2} +ldy {m1} +sta {c1},y +//FRAGMENT vbum1=_neg_vbum1 +lda {m1} +eor #$ff +clc +adc #$01 +sta {m1} +//FRAGMENT vbuz1=vbuz1_ror_1 +lsr {z1} +//FRAGMENT vwuz1=vwuz1_rol_1 +asl {z1} +rol {z1}+1 +//FRAGMENT vbum1=vbuz2_plus_1 +lda {z2} +inc +sta {m1} +//FRAGMENT vbum1=vbuz2_plus_2 +lda {z2} +clc +adc #2 +sta {m1} +//FRAGMENT vbuz1=_byte_vwum2 +lda {m2} +sta {z1} +//FRAGMENT vwsm1=vwsz2 +lda {z2} +sta {m1} +lda {z2}+1 +sta {m1}+1 +//FRAGMENT vbuz1=_byte_vwsm2 +lda {m2} +sta {z1} +//FRAGMENT vbum1=pbuc1_derefidx_vbuz2_band_vbuc2 +lda #{c2} +ldy {z2} +and {c1},y +sta {m1} +//FRAGMENT vbum1=vbuz2_rol_2 +lda {z2} +asl +asl +sta {m1} +//FRAGMENT pbuc1_derefidx_(pbuc2_derefidx_vbum1)=vbuc3 +lda #{c3} +ldy {m1} +ldx {c2},y +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbum1=vwum2 +ldy {m1} +lda {m2} +sta {c1},y +//FRAGMENT _deref_pbuz1=_inc__deref_pbuz2 +ldy #0 +lda ({z2}),y +inc +ldy #0 +sta ({z1}),y +//FRAGMENT vwum1=vwuz2_band_vbuc1 +lda #{c1} +and {z2} +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT vwum1=_word0_vdum2 +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +//FRAGMENT vwum1=vbum2_word_pbuc1_derefidx_vbum3 +lda {m2} +ldy {m3} +sta {m1}+1 +lda {c1},y +sta {m1} +//FRAGMENT _deref_pwuc1=_dec__deref_pwuc1 +lda {c1} +bne !+ +dec {c1}+1 +!: +dec {c1} +//FRAGMENT vbom1=vbom2 +lda {m2} +sta {m1} +//FRAGMENT vwum1_eq_vwum2_then_la1 +lda {m1} +cmp {m2} +bne !+ +lda {m1}+1 +cmp {m2}+1 +beq {la1} +!: +//FRAGMENT vwsm1=vwsz2_rol_2 +lda {z2} +asl +sta {m1} +lda {z2}+1 +rol +sta {m1}+1 +asl {m1} +rol {m1}+1 +//FRAGMENT vwsm1=vwsm2_plus_vwsz3 +lda {m2} +clc +adc {z3} +sta {m1} +lda {m2}+1 +adc {z3}+1 +sta {m1}+1 +//FRAGMENT vwsm1=vwsm2_plus_pbuz3_derefidx_vbuz4 +ldy {z4} +lda {m2} +clc +adc ({z3}),y +sta {m1} +bcc !+ +inc {m2}+1 +!: +//FRAGMENT vwsz1=vwsm2_minus_vbuc1 +lda {m2} +sec +sbc #{c1} +sta {z1} +lda {m2}+1 +sbc #0 +sta {z1}+1 +//FRAGMENT _deref_pssc1=_memset_vbuc2 +ldy #{c2} +lda #0 +!: +dey +sta {c1},y +bne !- +//FRAGMENT vbum1=pbuc1_derefidx_vbum2_plus__deref_pbuc2 +lda {c2} +ldy {m2} +clc +adc {c1},y +sta {m1} +//FRAGMENT vbum1_lt_pbuc1_derefidx_vbum2_then_la1 +lda {m1} +ldy {m2} +cmp {c1},y +bcc {la1} +//FRAGMENT 0_neq_vwsm1_then_la1 +lda {m1}+1 +ora {m1} +bne {la1} +//FRAGMENT _deref_pwuz1=vwum2 +ldy #0 +lda {m2} +sta ({z1}),y +iny +lda {m2}+1 +sta ({z1}),y +//FRAGMENT _deref_pbuc1_lt_vbuc2_then_la1 +lda {c1} +cmp #{c2} +bcc {la1} +//FRAGMENT vwum1=vwum2_minus_vwum3 +lda {m2} +sec +sbc {m3} +sta {m1} +lda {m2}+1 +sbc {m3}+1 +sta {m1}+1 +//FRAGMENT pbuc1_derefidx_vbum1=_deref_pbuc2 +lda {c2} +ldy {m1} +sta {c1},y +//FRAGMENT pwuc1_derefidx_vbum1=_deref_pwuc2 +ldy {m1} +lda {c2} +sta {c1},y +lda {c2}+1 +sta {c1}+1,y +//FRAGMENT vbum1=_deref_pbuc1_minus__deref_pbuc2 +lda {c1} +sec +sbc {c2} +sta {m1} +//FRAGMENT pwuz1_derefidx_vbuc1_lt_vwum2_then_la1 +ldy #{c1} +iny +lda ({z1}),y +cmp {m2}+1 +bcc {la1} +bne !+ +dey +lda ({z1}),y +cmp {m2} +bcc {la1} +!: +//FRAGMENT pwuz1_derefidx_vbuc1=_inc_pwuz1_derefidx_vbuc1 +ldy #{c1} +lda ({z1}),y +clc +adc #1 +sta ({z1}),y +bne !+ +iny +lda ({z1}),y +adc #0 +sta ({z1}),y +!: +//FRAGMENT vwum1_le_vwum2_then_la1 +lda {m1}+1 +cmp {m2}+1 +bne !+ +lda {m1} +cmp {m2} +beq {la1} +!: +bcc {la1} +//FRAGMENT pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc2 +ldy #{c2} +lda ({z1}),y +ldy #{c1} +sta ({z1}),y +ldy #{c2}+1 +lda ({z1}),y +ldy #{c1}+1 +sta ({z1}),y +//FRAGMENT vdum1=_dword_pwuz2_derefidx_vbuc1 +ldy #{c1} +lda ({z2}),y +sta {m1} +iny +lda ({z2}),y +sta {m1}+1 +lda #0 +sta {m1}+2 +sta {m1}+3 +//FRAGMENT vbom1=vbum1_neq_vbuc1 +lda {m1} +eor #{c1} +beq !+ +lda #1 +!: +sta {m1} +//FRAGMENT vwum1=vwum1_bor_vwum2 +lda {m1} +ora {m2} +sta {m1} +lda {m1}+1 +ora {m2}+1 +sta {m1}+1 +//FRAGMENT vdum1=vdum1_ror_3 +lsr {m1}+3 +ror {m1}+2 +ror {m1}+1 +ror {m1} +lsr {m1}+3 +ror {m1}+2 +ror {m1}+1 +ror {m1} +lsr {m1}+3 +ror {m1}+2 +ror {m1}+1 +ror {m1} +//FRAGMENT vbum1=vbum1_rol_5 +lda {m1} +asl +asl +asl +asl +asl +sta {m1} +//FRAGMENT vwum1=vwum1_plus_vbuc1 +lda #{c1} +clc +adc {m1} +sta {m1} +bcc !+ +inc {m1}+1 +!: +//FRAGMENT vdum1=vdum1_minus_1 +sec +lda {m1} +sbc #1 +sta {m1} +lda {m1}+1 +sbc #0 +sta {m1}+1 +lda {m1}+2 +sbc #0 +sta {m1}+2 +lda {m1}+3 +sbc #0 +sta {m1}+3 +//FRAGMENT vbum1=vbum1_ror_2 +lda {m1} +lsr +lsr +sta {m1} +//FRAGMENT vwum1=vwum1_minus_vwuc1 +lda {m1} +sec +sbc #<{c1} +sta {m1} +lda {m1}+1 +sbc #>{c1} +sta {m1}+1 +//FRAGMENT vbum1=pbuc1_derefidx_vbum1_band_vbuc2 +lda #{c2} +ldy {m1} +and {c1},y +sta {m1} +//FRAGMENT pssz1=pssz1_plus_vwum2 +clc +lda {z1} +adc {m2} +sta {z1} +lda {z1}+1 +adc {m2}+1 +sta {z1}+1 +//FRAGMENT qssz1=qssz1_plus_1 +clc +lda {z1} +adc #1 +sta {z1} +lda {z1}+1 +adc #0 +sta {z1}+1 +//FRAGMENT pssz1=_deref_qssz1 +ldy #0 +lda ({z1}),y +pha +iny +lda ({z1}),y +sta {z1}+1 +pla +sta {z1} +//FRAGMENT vdum1=vdum1_rol_8 +lda {m1}+2 +sta {m1}+3 +lda {m1}+1 +sta {m1}+2 +lda {m1} +sta {m1}+1 +lda #0 +sta {m1} +//FRAGMENT vwsm1=vwsm1_ror_2 +lda {m1}+1 +cmp #$80 +ror {m1}+1 +ror {m1} +lda {m1}+1 +cmp #$80 +ror {m1}+1 +ror {m1} +//FRAGMENT vbum1=vbum1_rol_2 +lda {m1} +asl +asl +sta {m1} +//FRAGMENT vwum1=vwum1_minus_pwuc1_derefidx_vbum2 +ldy {m2} +lda {m1} +sec +sbc {c1},y +sta {m1} +lda {m1}+1 +sbc {c1}+1,y +sta {m1}+1 +//FRAGMENT pwsz1=pwsz1_plus_vbuc1 +lda #{c1} +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT pbsz1=pbsz1_plus_vwum2 +clc +lda {z1} +adc {m2} +sta {z1} +lda {z1}+1 +adc {m2}+1 +sta {z1}+1 +//FRAGMENT qssz1=qssz1_plus_vwum2 +lda {z1} +clc +adc {m2} +sta {z1} +lda {z1}+1 +adc {m2}+1 +sta {z1}+1 +//FRAGMENT pwsz1=pwsz1_plus_vwum2 +clc +lda {z1} +adc {m2} +sta {z1} +lda {z1}+1 +adc {m2}+1 +sta {z1}+1 +//FRAGMENT vwum1=vwum1_rol_vbuc1 +ldy #{c1} +cpy #0 +beq !e+ +!: +asl {m1} +rol {m1}+1 +dey +bne !- +!e: +//FRAGMENT vwum1=vwum1_ror_2 +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +//FRAGMENT vwsm1=vwsm1_rol_vbuc1 +ldy #{c1} +beq !e+ +!: +asl {m1} +rol {m1}+1 +dey +bne !- +!e: +//FRAGMENT vwum1=vwum1_ror_5 +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +//FRAGMENT vbum1=vbum1_ror_5 +lda {m1} +lsr +lsr +lsr +lsr +lsr +sta {m1} +//FRAGMENT vwum1=vwum1_rol_5 +asl {m1} +rol {m1}+1 +asl {m1} +rol {m1}+1 +asl {m1} +rol {m1}+1 +asl {m1} +rol {m1}+1 +asl {m1} +rol {m1}+1 +//FRAGMENT pssz1=qssz1_derefidx_vbuc1 +ldy #{c1} +lda ({z1}),y +pha +iny +lda ({z1}),y +sta {z1}+1 +pla +sta {z1} +//FRAGMENT vwum1=vwum1_rol_3 +asl {m1} +rol {m1}+1 +asl {m1} +rol {m1}+1 +asl {m1} +rol {m1}+1 +//FRAGMENT vwum1=vwum1_ror_3 +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +//FRAGMENT vwsm1=vwsm1_plus_vwsz2 +clc +lda {m1} +adc {z2} +sta {m1} +lda {m1}+1 +adc {z2}+1 +sta {m1}+1 +//FRAGMENT vwsm1=vwsm1_plus_pbuz2_derefidx_vbuz3 +ldy {z3} +lda {m1} +clc +adc ({z2}),y +sta {m1} +bcc !+ +inc {m1}+1 +!: +//FRAGMENT vwum1=vwum1_rol_1 +asl {m1} +rol {m1}+1 +//FRAGMENT vbum1=pbuz2_derefidx_vbum1 +ldy {m1} +lda ({z2}),y +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbum2_plus_vbum1 +lda {m1} +ldy {m2} +clc +adc {c1},y +sta {m1} +//FRAGMENT vwum1=vwuc1_plus_vwum1 +lda {m1} +clc +adc #<{c1} +sta {m1} +lda {m1}+1 +adc #>{c1} +sta {m1}+1 +//FRAGMENT vbum1=vbum1_minus_vbuc1 +lda {m1} +sec +sbc #{c1} +sta {m1} +//FRAGMENT vwum1=vwum1_plus_vbum2 +lda {m2} +clc +adc {m1} +sta {m1} +bcc !+ +inc {m1}+1 +!: +//FRAGMENT vwum1=vwum1_plus_1 +inc {m1} +bne !+ +inc {m1}+1 +!: +//FRAGMENT vwum1=_deref_pwuc1_minus_vbuc2 +sec +lda {c1} +sbc #{c2} +sta {m1} +lda {c1}+1 +sbc #0 +sta {m1}+1 +//FRAGMENT vwum1=vwum2_ror_4 +lda {m2}+1 +lsr +sta {m1}+1 +lda {m2} +ror +sta {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +//FRAGMENT vwum1=vwum2_band_vbuc1 +lda #{c1} +and {m2} +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT _deref_pbuc1=vwum1 +lda {m1} +sta {c1} +//FRAGMENT vwsm1_le_0_then_la1 +lda {m1}+1 +bmi {la1} +bne !+ +lda {m1} +beq {la1} +!: +//FRAGMENT vbum1=vwuz2 +lda {z2} +sta {m1} +//FRAGMENT vbum1_ge_vbuc1_then_la1 +lda {m1} +cmp #{c1} +bcs {la1} +//FRAGMENT pbuc1_derefidx_vbum1_le_pbuc2_derefidx_vbum1_then_la1 +ldy {m1} +lda {c2},y +cmp {c1},y +bcs {la1} +//FRAGMENT pbuc1_derefidx_vbum1_ge_pbuc2_derefidx_vbum1_then_la1 +ldy {m1} +lda {c1},y +cmp {c2},y +bcs {la1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {z1} +//FRAGMENT vwum1=vwum2_plus_pbuc1_derefidx_vbum3 +ldy {m3} +lda {c1},y +clc +adc {m2} +sta {m1} +lda #0 +adc {m2}+1 +sta {m1}+1 +//FRAGMENT vbum1=vbum2_rol_7 +lda {m2} +asl +asl +asl +asl +asl +asl +asl +sta {m1} +//FRAGMENT vbum1=vbum2_ror_1 +lda {m2} +lsr +sta {m1} +//FRAGMENT vbum1=vbum2_ror_3 +lda {m2} +lsr +lsr +lsr +sta {m1} +//FRAGMENT vwsm1=_sword_vbum2 +lda {m2} +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT vwsm1=vwsm2_rol_6 +lda {m2} +asl +sta {m1} +lda {m2}+1 +rol +sta {m1}+1 +asl {m1} +rol {m1}+1 +asl {m1} +rol {m1}+1 +asl {m1} +rol {m1}+1 +asl {m1} +rol {m1}+1 +asl {m1} +rol {m1}+1 +//FRAGMENT vwsm1=vwsm2_plus_vbsm3 +lda {m3} +sta $ff +clc +adc {m2} +sta {m1} +lda $ff +ora #$7f +bmi !+ +lda #0 +!: +adc {m2}+1 +sta {m1}+1 +//FRAGMENT vwsm1=_sword_vbsm2 +lda {m2} +sta {m1} +// sign-extend the byte +ora #$7f +bmi !+ +lda #0 +!: +sta {m1}+1 +//FRAGMENT vwsm1=vwsm2_minus_vwsc1 +lda {m2} +sec +sbc #<{c1} +sta {m1} +lda {m2}+1 +sbc #>{c1} +sta {m1}+1 +//FRAGMENT vwum1=_deref_pwuc1_band_vbuc2 +lda #{c2} +and {c1} +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT vwsm1=vwsm2_minus_vwsm3 +lda {m2} +sec +sbc {m3} +sta {m1} +lda {m2}+1 +sbc {m3}+1 +sta {m1}+1 +//FRAGMENT vbsm1=vbsm2 +lda {m2} +sta {m1} +//FRAGMENT vwum1=vwum2_rol_vbum3 +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +ldy {m3} +beq !e+ +!: +asl {m1} +rol {m1}+1 +dey +bne !- +!e: +//FRAGMENT vbum1=vbum2_rol_3 +lda {m2} +asl +asl +asl +sta {m1} +//FRAGMENT vwum1=_word_pbuc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT pwuz1=pwuz2_plus_vbuc1 +lda #{c1} +clc +adc {z2} +sta {z1} +lda #0 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT vwsm1=_inc_vwsm1 +inc {m1} +bne !+ +inc {m1}+1 +!: +//FRAGMENT pwsc1_derefidx_vbum1=vwsm2 +ldy {m1} +lda {m2} +sta {c1},y +lda {m2}+1 +sta {c1}+1,y +//FRAGMENT vwum1=_word_pbsc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {m1} +// sign-extend the byte +ora #$7f +bmi !+ +lda #0 +!: +sta {m1}+1 +//FRAGMENT vwum1=pwuc1_derefidx_vbum2_plus_vwum3 +ldy {m2} +clc +lda {m3} +adc {c1},y +sta {m1} +lda {m3}+1 +adc {c1}+1,y +sta {m1}+1 +//FRAGMENT pbuc1_derefidx_vbum1=pbuc1_derefidx_vbum1_plus_vbum2 +lda {m2} +ldy {m1} +clc +adc {c1},y +sta {c1},y +//FRAGMENT pbsc1_derefidx_vbum1=pbsc1_derefidx_vbum1_plus_pbsc2_derefidx_vbum2 +ldy {m2} +lda {c2},y +ldy {m1} +clc +adc {c1},y +sta {c1},y +//FRAGMENT pbsc1_derefidx_vbum1_gt_0_then_la1 +ldy {m1} +lda {c1},y +cmp #0 +beq !+ +bpl {la1} +!: +//FRAGMENT pbsc1_derefidx_vbum1=vbsm2 +lda {m2} +ldy {m1} +sta {c1},y +//FRAGMENT pwuc1_derefidx_vbum1=pwuc1_derefidx_vbum1_minus_vwum2 +ldy {m1} +lda {c1},y +sec +sbc {m2} +sta {c1},y +lda {c1}+1,y +sbc {m2}+1 +sta {c1}+1,y +//FRAGMENT pwuc1_derefidx_vbum1=pwuc1_derefidx_vbum1_plus_vwum2 +ldy {m1} +lda {c1},y +clc +adc {m2} +sta {c1},y +lda {c1}+1,y +adc {m2}+1 +sta {c1}+1,y +//FRAGMENT vbum1_lt__deref_pbuz2_then_la1 +ldy #0 +lda ({z2}),y +cmp {m1} +beq !+ +bcs {la1} +!: +//FRAGMENT vbum1_le__deref_pbuz2_then_la1 +ldy #0 +lda ({z2}),y +cmp {m1} +bcs {la1} +//FRAGMENT _deref_qssc1=pssz1 +lda {z1} +sta {c1} +lda {z1}+1 +sta {c1}+1 +//FRAGMENT pssz1=qssz2_derefidx_vbum3 +ldy {m3} +lda ({z2}),y +sta {z1} +iny +lda ({z2}),y +sta {z1}+1 +//FRAGMENT vbum1=pbuc1_derefidx_vbum2_ror_5 +ldy {m2} +lda {c1},y +lsr +lsr +lsr +lsr +lsr +sta {m1} +//FRAGMENT pwuz1=pwuz2_plus_vwuc1 +lda {z2} +clc +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT pwuz1_derefidx_vbuc1=_deref_pbuc2 +lda {c2} +ldy #{c1} +sta ({z1}),y +lda #0 +iny +sta ({z1}),y +//FRAGMENT vbum1_lt_pbuz2_derefidx_vbuc1_then_la1 +ldy #{c1} +lda ({z2}),y + +cmp {m1} +beq !+ +bcs {la1} +!: +//FRAGMENT pwuz1_derefidx_vbum2=vwum3 +ldy {m2} +lda {m3} +sta ({z1}),y +iny +lda {m3}+1 +sta ({z1}),y +//FRAGMENT qssz1_derefidx_vbum2=pssz3 +ldy {m2} +lda {z3} +sta ({z1}),y +iny +lda {z3}+1 +sta ({z1}),y +//FRAGMENT vwum1=_deref_pbuc1 +lda {c1} +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT pbuz1_derefidx_vbum2=vwum3 +lda {m3} +ldy {m2} +sta ({z1}),y +//FRAGMENT vdum1=vbuc1 +lda #{c1} +sta {m1} +lda #0 +sta {m1}+1 +sta {m1}+2 +sta {m1}+3 +//FRAGMENT pbuz1_derefidx_vbum2=vbum3 +lda {m3} +ldy {m2} +sta ({z1}),y +//FRAGMENT vwum1=vwum1_ror_7 +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +//FRAGMENT vwuz1_lt_vwuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bcc {la1} +bne !+ +lda {z1} +cmp #<{c1} +bcc {la1} +!: +//FRAGMENT vwum1=vwum1_plus_pbuc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +clc +adc {m1} +sta {m1} +bcc !+ +inc {m1}+1 +!: +//FRAGMENT vbum1=vbum1_rol_7 +lda {m1} +asl +asl +asl +asl +asl +asl +asl +sta {m1} +//FRAGMENT pwuz1=pwuz1_plus_vbuc1 +lda #{c1} +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT vwum1=vwum1_ror_4 +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +//FRAGMENT vwum1=vwum1_band_vbuc1 +lda #{c1} +and {m1} +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT vbum1=vbum1_ror_1 +lsr {m1} +//FRAGMENT vwsm1=vwsm1_rol_6 +lda {m1}+1 +sta $ff +lda {m1} +sta {m1}+1 +lda #0 +sta {m1} +lsr $ff +ror {m1}+1 +ror {m1} +lsr $ff +ror {m1}+1 +ror {m1} +//FRAGMENT vwsm1=vwsm1_minus_vwsc1 +lda {m1} +sec +sbc #<{c1} +sta {m1} +lda {m1}+1 +sbc #>{c1} +sta {m1}+1 +//FRAGMENT vwsm1=vwsm2_minus_vwsm1 +lda {m2} +sec +sbc {m1} +sta {m1} +lda {m2}+1 +sbc {m1}+1 +sta {m1}+1 +//FRAGMENT vwum1=vwum1_rol_vbum2 +ldy {m2} +beq !e+ +!: +asl {m1} +rol {m1}+1 +dey +bne !- +!e: +//FRAGMENT vwum1=pwuc1_derefidx_vbum2_plus_vwum1 +ldy {m2} +clc +lda {m1} +adc {c1},y +sta {m1} +lda {m1}+1 +adc {c1}+1,y +sta {m1}+1 +//FRAGMENT vbum1=pbuc1_derefidx_vbum1_ror_5 +ldy {m1} +lda {c1},y +lsr +lsr +lsr +lsr +lsr +sta {m1} +//FRAGMENT pwuz1=pwuz1_plus_vwuc1 +lda {z1} +clc +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwsm1=vwsm1_plus_vbsm2 +lda {m2} +sta $ff +clc +adc {m1} +sta {m1} +lda $ff +ora #$7f +bmi !+ +lda #0 +!: +adc {m1}+1 +sta {m1}+1 diff --git a/src/main/fragment/mos6502-common/_stackidxbool_vbuc1=vboaa.asm b/src/main/fragment/mos6502-common/_stackidxbool_vbuc1=vboaa.asm new file mode 100644 index 000000000..a950d1216 --- /dev/null +++ b/src/main/fragment/mos6502-common/_stackidxbool_vbuc1=vboaa.asm @@ -0,0 +1,2 @@ +tsx +sta STACK_BASE+{c1},x \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/_stackidxbool_vbuc1=vboyy.asm b/src/main/fragment/mos6502-common/_stackidxbool_vbuc1=vboyy.asm new file mode 100644 index 000000000..f04b756b0 --- /dev/null +++ b/src/main/fragment/mos6502-common/_stackidxbool_vbuc1=vboyy.asm @@ -0,0 +1,3 @@ +tya +tsx +sta STACK_BASE+{c1},x \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/_stackpushdword_=_dword_pwuc1_derefidx_vbum1.asm b/src/main/fragment/mos6502-common/_stackpushdword_=_dword_pwuc1_derefidx_vbum1.asm new file mode 100644 index 000000000..e2911a52c --- /dev/null +++ b/src/main/fragment/mos6502-common/_stackpushdword_=_dword_pwuc1_derefidx_vbum1.asm @@ -0,0 +1,9 @@ +ldy {m1} +lda {c1}+3,y +pha +lda {c1}+2,y +pha +lda {c1}+1,y +pha +lda {c1},y +pha diff --git a/src/main/fragment/mos6502-common/_stackpushdword_=vwum1.asm b/src/main/fragment/mos6502-common/_stackpushdword_=vwum1.asm new file mode 100644 index 000000000..4cbb8912f --- /dev/null +++ b/src/main/fragment/mos6502-common/_stackpushdword_=vwum1.asm @@ -0,0 +1,8 @@ +lda #0 +pha +lda #0 +pha +lda {m1}+1 +pha +lda {m1} +pha diff --git a/src/main/fragment/mos6502-common/isr_rom_sys_cx16_exit.asm b/src/main/fragment/mos6502-common/isr_rom_sys_cx16_exit.asm index 687d22213..6a1d4b077 100644 --- a/src/main/fragment/mos6502-common/isr_rom_sys_cx16_exit.asm +++ b/src/main/fragment/mos6502-common/isr_rom_sys_cx16_exit.asm @@ -1 +1 @@ -jmp $e034 \ No newline at end of file +jmp (isr_vsync) diff --git a/src/main/fragment/mos6502-common/pbuc1_eq__deref_qbuc2_then_la1.asm b/src/main/fragment/mos6502-common/pbuc1_eq__deref_qbuc2_then_la1.asm new file mode 100644 index 000000000..70fbc2407 --- /dev/null +++ b/src/main/fragment/mos6502-common/pbuc1_eq__deref_qbuc2_then_la1.asm @@ -0,0 +1,7 @@ +lda #<{c1} +cmp {c2} +bne !+ +lda #>{c1} +cmp {c2}+1 +beq {la1} +!: \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/pbuc1_eq_pbuc2_then_la1.asm b/src/main/fragment/mos6502-common/pbuc1_eq_pbuc2_then_la1.asm new file mode 100644 index 000000000..6007893cf --- /dev/null +++ b/src/main/fragment/mos6502-common/pbuc1_eq_pbuc2_then_la1.asm @@ -0,0 +1,7 @@ +lda #<{c1} +cmp #<{c2} +bne !+ +lda #>{c1} +cmp #>{c2} +beq {la1} +!: \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/pbuc1_eq_qbuz1_derefidx_vbuyy_then_la1.asm b/src/main/fragment/mos6502-common/pbuc1_eq_qbuz1_derefidx_vbuyy_then_la1.asm new file mode 100644 index 000000000..8d88c09d9 --- /dev/null +++ b/src/main/fragment/mos6502-common/pbuc1_eq_qbuz1_derefidx_vbuyy_then_la1.asm @@ -0,0 +1,8 @@ +lda ({z1}),y +cmp #<{c1} +bne !+ +iny +lda ({z1}),y +cmp #>{c1} +beq {la1} +!: diff --git a/src/main/fragment/mos6502-common/pbuc1_neq__deref_qbuc2_then_la1.asm b/src/main/fragment/mos6502-common/pbuc1_neq__deref_qbuc2_then_la1.asm new file mode 100644 index 000000000..6365dc981 --- /dev/null +++ b/src/main/fragment/mos6502-common/pbuc1_neq__deref_qbuc2_then_la1.asm @@ -0,0 +1,6 @@ +lda #<{c1} +cmp {c2} +bne {la1} +lda #>{c1} +cmp {c2}+1 +bne {la1} diff --git a/src/main/fragment/mos6502-common/pbuz1_derefidx_vbuyy=pbuz1_derefidx_vbuyy_minus_1.asm b/src/main/fragment/mos6502-common/pbuz1_derefidx_vbuyy=pbuz1_derefidx_vbuyy_minus_1.asm new file mode 100644 index 000000000..9d0fd27b6 --- /dev/null +++ b/src/main/fragment/mos6502-common/pbuz1_derefidx_vbuyy=pbuz1_derefidx_vbuyy_minus_1.asm @@ -0,0 +1,4 @@ +lda ({z1}),y +sec +sbc #1 +sta ({z1}),y diff --git a/src/main/fragment/mos6502-common/pbuz1_neq__deref_qbuc1_then_la1.asm b/src/main/fragment/mos6502-common/pbuz1_neq__deref_qbuc1_then_la1.asm new file mode 100644 index 000000000..8814b3be9 --- /dev/null +++ b/src/main/fragment/mos6502-common/pbuz1_neq__deref_qbuc1_then_la1.asm @@ -0,0 +1,6 @@ +lda {z1} +cmp {c1} +bne {la1} +lda {z1}+1 +cmp {c1}+1 +bne {la1} diff --git a/src/main/fragment/mos6502-common/pduc1_derefidx_vbum1=vbuc2.asm b/src/main/fragment/mos6502-common/pduc1_derefidx_vbum1=vbuc2.asm new file mode 100644 index 000000000..cda983591 --- /dev/null +++ b/src/main/fragment/mos6502-common/pduc1_derefidx_vbum1=vbuc2.asm @@ -0,0 +1,7 @@ +ldy {m1} +lda #{c2} +sta {c1},y +lda #0 +sta {c1}+1,y +sta {c1}+2,y +sta {c1}+3,y diff --git a/src/main/fragment/mos6502-common/pduc1_derefidx_vbum1=vwuc2.asm b/src/main/fragment/mos6502-common/pduc1_derefidx_vbum1=vwuc2.asm new file mode 100644 index 000000000..cef1aca99 --- /dev/null +++ b/src/main/fragment/mos6502-common/pduc1_derefidx_vbum1=vwuc2.asm @@ -0,0 +1,8 @@ +ldy {m1} +lda #<{c2} +sta {c1},y +lda #>{c2} +sta {c1}+1,y +lda #0 +sta {c1}+2,y +sta {c1}+3,y diff --git a/src/main/fragment/mos6502-common/pduc1_derefidx_vbuyy=vduc2.asm b/src/main/fragment/mos6502-common/pduc1_derefidx_vbuyy=vduc2.asm new file mode 100644 index 000000000..f0d4437e3 --- /dev/null +++ b/src/main/fragment/mos6502-common/pduc1_derefidx_vbuyy=vduc2.asm @@ -0,0 +1,8 @@ +lda #<{c2} +sta {c1},y +lda #>{c2} +sta {c1}+1,y +lda #<{c2}>>$10 +sta {c1}+2,y +lda #>{c2}>>$10 +sta {c1}+3,y diff --git a/src/main/fragment/mos6502-common/pssc1_derefidx_vbuxx=_deref_qssz1.asm b/src/main/fragment/mos6502-common/pssc1_derefidx_vbuxx=_deref_qssz1.asm new file mode 100644 index 000000000..23177a44b --- /dev/null +++ b/src/main/fragment/mos6502-common/pssc1_derefidx_vbuxx=_deref_qssz1.asm @@ -0,0 +1,6 @@ +ldy #$00 +lda ({z1}),y +sta {c1},x +iny +lda ({z1}),y +sta {c1}+1,x \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/pssm1=_deref_qssm1.asm b/src/main/fragment/mos6502-common/pssm1=_deref_qssm1.asm new file mode 100644 index 000000000..aa0eebacf --- /dev/null +++ b/src/main/fragment/mos6502-common/pssm1=_deref_qssm1.asm @@ -0,0 +1,10 @@ +ldy #0 +lda {m1} +sta $fe +lda {m1}+1 +sta $ff +lda ($fe),y +sta {m1} +iny +lda ($fe),y +sta {m1}+1 \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/pssz1=qssz2_derefidx_vbuc1_plus_vbuc2.asm b/src/main/fragment/mos6502-common/pssz1=qssz2_derefidx_vbuc1_plus_vbuc2.asm new file mode 100644 index 000000000..029ec6b6f --- /dev/null +++ b/src/main/fragment/mos6502-common/pssz1=qssz2_derefidx_vbuc1_plus_vbuc2.asm @@ -0,0 +1,11 @@ +lda #{c1} +tay +clc +lda ({z2}),y +adc #<{c2} +sta {z1} +iny +lda ({z2}),y +adc #>{c2} +sta {z1}+1 + diff --git a/src/main/fragment/mos6502-common/pvoz1_derefidx_vbuyy=_deref_pvoc1_memcpy_vbuc2.asm b/src/main/fragment/mos6502-common/pvoz1_derefidx_vbuyy=_deref_pvoc1_memcpy_vbuc2.asm new file mode 100644 index 000000000..6c9eb7457 --- /dev/null +++ b/src/main/fragment/mos6502-common/pvoz1_derefidx_vbuyy=_deref_pvoc1_memcpy_vbuc2.asm @@ -0,0 +1,8 @@ +ldx #0 +!: +lda {c1},x +sta ({z1}),y +iny +inx +cpx #{c2} +bne !- diff --git a/src/main/fragment/mos6502-common/pvoz1_derefidx_vbuyy=_deref_pvoz2_memcpy_vbuc2 temp.asm b/src/main/fragment/mos6502-common/pvoz1_derefidx_vbuyy=_deref_pvoz2_memcpy_vbuc2 temp.asm new file mode 100644 index 000000000..6c9eb7457 --- /dev/null +++ b/src/main/fragment/mos6502-common/pvoz1_derefidx_vbuyy=_deref_pvoz2_memcpy_vbuc2 temp.asm @@ -0,0 +1,8 @@ +ldx #0 +!: +lda {c1},x +sta ({z1}),y +iny +inx +cpx #{c2} +bne !- diff --git a/src/main/fragment/mos6502-common/pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuyy.asm b/src/main/fragment/mos6502-common/pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuyy.asm new file mode 100644 index 000000000..062933ddd --- /dev/null +++ b/src/main/fragment/mos6502-common/pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuyy.asm @@ -0,0 +1,13 @@ +lda {c2},y +sta $ff +clc +adc {c1},x +sta {c1},x +iny +lda $ff +ora #$7f +bmi !+ +lda #0 +!: +adc {c1}+1,x +sta {c1}+1,x \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_plus_vbsm1.asm b/src/main/fragment/mos6502-common/pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_plus_vbsm1.asm new file mode 100644 index 000000000..94b959ef5 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwsc1_derefidx_vbuxx=pwsc1_derefidx_vbuxx_plus_vbsm1.asm @@ -0,0 +1,7 @@ +lda {c1},x +clc +adc {m1} +sta {c1},x +bcc !+ +inc {c1}+1,x +!: \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/pwsc1_derefidx_vbuxx=pwsz1_derefidx_vbuc2.asm b/src/main/fragment/mos6502-common/pwsc1_derefidx_vbuxx=pwsz1_derefidx_vbuc2.asm new file mode 100644 index 000000000..f6825c847 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwsc1_derefidx_vbuxx=pwsz1_derefidx_vbuc2.asm @@ -0,0 +1,6 @@ +ldy {c2} +lda ({z1}),y +sta {c1},x +iny +lda ({z1}),y +sta {c1}+1,x diff --git a/src/main/fragment/mos6502-common/pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_plus_pbsc2_derefidx_vbuxx.asm b/src/main/fragment/mos6502-common/pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_plus_pbsc2_derefidx_vbuxx.asm new file mode 100644 index 000000000..d60124417 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_plus_pbsc2_derefidx_vbuxx.asm @@ -0,0 +1,13 @@ +lda {c2},x +sta $ff +clc +adc {c1},y +sta {c1},y +iny +lda $ff +ora #$7f +bmi !+ +lda #0 +!: +adc {c1}+1,y +sta {c1}+1,y \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_plus_vbsm1_temp.asm b/src/main/fragment/mos6502-common/pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_plus_vbsm1_temp.asm new file mode 100644 index 000000000..372f9001a --- /dev/null +++ b/src/main/fragment/mos6502-common/pwsc1_derefidx_vbuyy=pwsc1_derefidx_vbuyy_plus_vbsm1_temp.asm @@ -0,0 +1,7 @@ +lda {c1},y +clc +adc {m1} +sta {c1},y +bcc !+ +inc {c1}+1,y +!: \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy=_deref_pwsc2.asm b/src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy=_deref_pwsc2.asm new file mode 100644 index 000000000..46ac5872f --- /dev/null +++ b/src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy=_deref_pwsc2.asm @@ -0,0 +1,5 @@ +lda {c2} +sta ({z1}),y +iny +lda {c2}+1 +sta ({z1}),y diff --git a/src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy=_sword_vbum2.asm b/src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy=_sword_vbum2.asm new file mode 100644 index 000000000..f8bae1751 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy=_sword_vbum2.asm @@ -0,0 +1,8 @@ +lda {m2} +sta ({z1}),y +ora #$7F +bmi !+ +lda #$00 +!: +iny +sta ({z1}),y \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy=pwsz2_derefidx_vbuyy.asm b/src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy=pwsz2_derefidx_vbuyy.asm new file mode 100644 index 000000000..28e46930d --- /dev/null +++ b/src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy=pwsz2_derefidx_vbuyy.asm @@ -0,0 +1,5 @@ +sta ({z2}),y +sta ({z1}),y +iny +sta ({z2}),y +sta ({z1}),y diff --git a/src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy_gt_0_then_la1.asm b/src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy_gt_0_then_la1.asm new file mode 100644 index 000000000..e3e989ba7 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy_gt_0_then_la1.asm @@ -0,0 +1,10 @@ +iny +lda ({z1}),y +bne !+ +dey +lda ({z1}),y +beq !e+ +lsr +!: +bpl {la1} +!e: diff --git a/src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy_le_vwsc1_then_la1.asm b/src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy_le_vwsc1_then_la1.asm new file mode 100644 index 000000000..d913af1c9 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwsz1_derefidx_vbuyy_le_vwsc1_then_la1.asm @@ -0,0 +1,10 @@ +iny +lda ({z1}),y +cmp #>{c1} +bne !+ +dey +lda ({z1}),y +cmp #<{c1} +beq {la1} +!: +bcc {la1} \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbum1=pwuc1_derefidx_vbum1_minus_vwum2.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbum1=pwuc1_derefidx_vbum1_minus_vwum2.asm new file mode 100644 index 000000000..d7d89bb97 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbum1=pwuc1_derefidx_vbum1_minus_vwum2.asm @@ -0,0 +1,8 @@ +ldy {m1} +lda {c1},y +sec +sbc {m2} +sta {c1},y +lda {c1}+1,y +sbc {m2}+1 +sta {c1}+1,y diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbum1=pwuc1_derefidx_vbum1_plus_vwum2.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbum1=pwuc1_derefidx_vbum1_plus_vwum2.asm new file mode 100644 index 000000000..495ea5a19 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbum1=pwuc1_derefidx_vbum1_plus_vwum2.asm @@ -0,0 +1,8 @@ +ldy {m1} +lda {c1},y +clc +adc {m2} +sta {c1},y +lda {c1}+1,y +adc {m2}+1 +sta {c1}+1,y diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_band_vwuc2.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_band_vwuc2.asm new file mode 100644 index 000000000..557be9c13 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_band_vwuc2.asm @@ -0,0 +1,6 @@ +lda {c1},x +and #<{c2} +sta {c1},x +lda {c1}+1,x +and #>{c2} +sta {c1}+1,x diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_bor_vwuc2.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_bor_vwuc2.asm new file mode 100644 index 000000000..d56b2f090 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_bor_vwuc2.asm @@ -0,0 +1,6 @@ +lda {c1},x +ora #<{c2} +sta {c1},x +lda {c1}+1,x +ora #>{c2} +sta {c1}+1,x diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_bxor_vwuc2.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_bxor_vwuc2.asm new file mode 100644 index 000000000..953cdef2b --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_bxor_vwuc2.asm @@ -0,0 +1,6 @@ +lda {c1},x +eor #<{c2} +sta {c1},x +lda {c1}+1,x +eor #>{c2} +sta {c1}+1,x diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_minus_vwum1.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_minus_vwum1.asm new file mode 100644 index 000000000..7723b62d0 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_minus_vwum1.asm @@ -0,0 +1,7 @@ +lda {c1},x +sec +sbc {m1} +sta {c1},x +lda {c1}+1,x +sbc {m1}+1 +sta {c1}+1,x diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_minus_vwuz1.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_minus_vwuz1.asm new file mode 100644 index 000000000..574b6dc27 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_minus_vwuz1.asm @@ -0,0 +1,7 @@ +lda {c1},x +sec +sbc {z1} +sta {c1},x +lda {c1}+1,x +sbc {z1}+1 +sta {c1}+1,x \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_plus_vwum1.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_plus_vwum1.asm new file mode 100644 index 000000000..ce3ec16c0 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_plus_vwum1.asm @@ -0,0 +1,7 @@ +lda {c1},x +clc +adc {m1} +sta {c1},x +lda {c1}+1,x +adc {m1}+1 +sta {c1}+1,x diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_plus_vwuz1.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_plus_vwuz1.asm new file mode 100644 index 000000000..1c83252f7 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuxx=pwuc1_derefidx_vbuxx_plus_vwuz1.asm @@ -0,0 +1,7 @@ +clc +lda {c1},x +adc {z1} +sta {c1},x +lda {c1}+1,x +adc {z1}+1 +sta {c1}+1,x \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_band_vwuc2.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_band_vwuc2.asm new file mode 100644 index 000000000..8bc08136e --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_band_vwuc2.asm @@ -0,0 +1,6 @@ +lda {c1},y +and #<{c2} +sta {c1},y +lda {c1}+1,y +and #>{c2} +sta {c1}+1,y diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_bor_vwuc2.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_bor_vwuc2.asm new file mode 100644 index 000000000..cf2407409 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_bor_vwuc2.asm @@ -0,0 +1,6 @@ +lda {c1},y +ora #<{c2} +sta {c1},y +lda {c1}+1,y +ora #>{c2} +sta {c1}+1,y diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_minus_vwum1.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_minus_vwum1.asm new file mode 100644 index 000000000..a19f62e76 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_minus_vwum1.asm @@ -0,0 +1,7 @@ +lda {c1},y +sec +sbc {m1} +sta {c1},y +lda {c1}+1,y +sbc {m1}+1 +sta {c1}+1,y diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_plus_vwum1.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_plus_vwum1.asm new file mode 100644 index 000000000..a41509efd --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy=pwuc1_derefidx_vbuyy_plus_vwum1.asm @@ -0,0 +1,7 @@ +lda {c1},y +clc +adc {m1} +sta {c1},y +lda {c1}+1,y +adc {m1}+1 +sta {c1}+1,y diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy_neq_vbum1_then_la1.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy_neq_vbum1_then_la1.asm new file mode 100644 index 000000000..3f9fcd10c --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuyy_neq_vbum1_then_la1.asm @@ -0,0 +1,6 @@ +lda {c1}+1,y +cmp {m1}+1 +bne {la1} +lda {c1},y +cmp {m1} +bne {la1} diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_minus_vwuz2.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_minus_vwuz2.asm new file mode 100644 index 000000000..f344c899a --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_minus_vwuz2.asm @@ -0,0 +1,8 @@ +ldy {z1} +lda {c1},y +sec +sbc {z2} +sta {c1},y +lda {c1}+1,y +sbc {z2}+1 +sta {c1}+1,y \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_plus_vwuz2.asm b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_plus_vwuz2.asm new file mode 100644 index 000000000..f1784c77a --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuc1_derefidx_vbuz1=pwuc1_derefidx_vbuz1_plus_vwuz2.asm @@ -0,0 +1,8 @@ +ldy {z1} +lda {c1},y +clc +adc {z2} +sta {c1},y +lda {c1}+1,y +adc {z2}+1 +sta {c1}+1,y \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/pwum1_derefidx_vbuyy=vwum2_temp.asm b/src/main/fragment/mos6502-common/pwum1_derefidx_vbuyy=vwum2_temp.asm new file mode 100644 index 000000000..63d342a6b --- /dev/null +++ b/src/main/fragment/mos6502-common/pwum1_derefidx_vbuyy=vwum2_temp.asm @@ -0,0 +1,9 @@ +lda {m1} +sta $fe +lda {m1}+1 +sta $ff +lda {m2} +sta ($fe),y +iny +lda {m2}+1 +sta ($fe),y diff --git a/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_minus_vwum2.asm b/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_minus_vwum2.asm new file mode 100644 index 000000000..86a733a65 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_minus_vwum2.asm @@ -0,0 +1,10 @@ + +sec +ldy #{c1} +lda ({z1}),y +sbc {m2} +sta ({z1}),y +ldy #{c1}+1 +lda ({z1}),y +sbc {m2}+1 +sta ({z1}),y diff --git a/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vwum2.asm b/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vwum2.asm new file mode 100644 index 000000000..674693fc6 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vwum2.asm @@ -0,0 +1,10 @@ + +clc +ldy #{c1} +lda ({z1}),y +adc {m2} +sta ({z1}),y +ldy #{c1}+1 +lda ({z1}),y +adc {m2}+1 +sta ({z1}),y diff --git a/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_temp.asm b/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_temp.asm new file mode 100644 index 000000000..e4cadd9c9 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_temp.asm @@ -0,0 +1,8 @@ +ldy #{c1} +lda ({z1}),y +ldy #{c1} +sta ({z1}),y +ldy #{c1}+1 +lda ({z1}),y +ldy #{c1}+1 +sta ({z1}),y diff --git a/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc2.asm b/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc2.asm new file mode 100644 index 000000000..cb675001a --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc2.asm @@ -0,0 +1,8 @@ +ldy #{c2} +lda ({z1}),y +ldy #{c1} +sta ({z1}),y +ldy #{c2}+1 +lda ({z1}),y +ldy #{c1}+1 +sta ({z1}),y diff --git a/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuyy=_deref_pwuc2.asm b/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuyy=_deref_pwuc2.asm new file mode 100644 index 000000000..46ac5872f --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuyy=_deref_pwuc2.asm @@ -0,0 +1,5 @@ +lda {c2} +sta ({z1}),y +iny +lda {c2}+1 +sta ({z1}),y diff --git a/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuz2=pwuz3_derefidx_vbuz2_band_vwuc1.asm b/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuz2=pwuz3_derefidx_vbuz2_band_vwuc1.asm new file mode 100644 index 000000000..3fd5e13b6 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuz2=pwuz3_derefidx_vbuz2_band_vwuc1.asm @@ -0,0 +1,8 @@ +ldy {z2} +lda ({z3}),y +and #<{c1} +sta ({z1}),y +iny +lda ({z3}),y +and #>{c1} +sta ({z1}),y diff --git a/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuz2=pwuz3_derefidx_vbuz2_bor_vwuc1.asm b/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuz2=pwuz3_derefidx_vbuz2_bor_vwuc1.asm new file mode 100644 index 000000000..02d2cc2b9 --- /dev/null +++ b/src/main/fragment/mos6502-common/pwuz1_derefidx_vbuz2=pwuz3_derefidx_vbuz2_bor_vwuc1.asm @@ -0,0 +1,8 @@ +ldy {z2} +lda ({z3}),y +ora #<{c1} +sta ({z1}),y +iny +lda ({z3}),y +ora #>{c1} +sta ({z1}),y diff --git a/src/main/fragment/mos6502-common/qbuz1=qbuz1_plus_1.asm b/src/main/fragment/mos6502-common/qbuz1=qbuz1_plus_1.asm new file mode 100644 index 000000000..ff3be2717 --- /dev/null +++ b/src/main/fragment/mos6502-common/qbuz1=qbuz1_plus_1.asm @@ -0,0 +1,6 @@ +lda {z1} +adc #1 +sta {z1} +lda {z1}+1 +adc #0 +sta {z1}+1 diff --git a/src/main/fragment/mos6502-common/qbuz1=qbuz2_plus_1.asm b/src/main/fragment/mos6502-common/qbuz1=qbuz2_plus_1.asm new file mode 100644 index 000000000..6a886e1b6 --- /dev/null +++ b/src/main/fragment/mos6502-common/qbuz1=qbuz2_plus_1.asm @@ -0,0 +1,6 @@ +lda {z2} +adc #1 +sta {z1} +lda {z2}+1 +adc #0 +sta {z1}+1 diff --git a/src/main/fragment/mos6502-common/qssc1_derefidx_vbuxx=_deref_qssz1.asm b/src/main/fragment/mos6502-common/qssc1_derefidx_vbuxx=_deref_qssz1.asm new file mode 100644 index 000000000..23177a44b --- /dev/null +++ b/src/main/fragment/mos6502-common/qssc1_derefidx_vbuxx=_deref_qssz1.asm @@ -0,0 +1,6 @@ +ldy #$00 +lda ({z1}),y +sta {c1},x +iny +lda ({z1}),y +sta {c1}+1,x \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/qssc1_derefidx_vbuxx=qssz1_derefidx_vbuc2.asm b/src/main/fragment/mos6502-common/qssc1_derefidx_vbuxx=qssz1_derefidx_vbuc2.asm new file mode 100644 index 000000000..f6825c847 --- /dev/null +++ b/src/main/fragment/mos6502-common/qssc1_derefidx_vbuxx=qssz1_derefidx_vbuc2.asm @@ -0,0 +1,6 @@ +ldy {c2} +lda ({z1}),y +sta {c1},x +iny +lda ({z1}),y +sta {c1}+1,x diff --git a/src/main/fragment/mos6502-common/qssc1_derefidx_vbuxx_eq_pssz1_then_la1.asm b/src/main/fragment/mos6502-common/qssc1_derefidx_vbuxx_eq_pssz1_then_la1.asm new file mode 100644 index 000000000..e3b264250 --- /dev/null +++ b/src/main/fragment/mos6502-common/qssc1_derefidx_vbuxx_eq_pssz1_then_la1.asm @@ -0,0 +1,7 @@ +lda {z1} +cmp {c1},x +bne !+ +lda {z1}+1 +cmp {c1}+1,x +beq {la1} +!: diff --git a/src/main/fragment/mos6502-common/qssc1_derefidx_vbuyy_eq_pssz1_then_la1.asm b/src/main/fragment/mos6502-common/qssc1_derefidx_vbuyy_eq_pssz1_then_la1.asm new file mode 100644 index 000000000..c8f6f6232 --- /dev/null +++ b/src/main/fragment/mos6502-common/qssc1_derefidx_vbuyy_eq_pssz1_then_la1.asm @@ -0,0 +1,7 @@ +lda {z1} +cmp {c1},y +bne !+ +lda {z1}+1 +cmp {c1}+1,y +beq {la1} +!: diff --git a/src/main/fragment/mos6502-common/qssz1=qssz1_plus_1.asm b/src/main/fragment/mos6502-common/qssz1=qssz1_plus_1.asm new file mode 100644 index 000000000..025f1f2a5 --- /dev/null +++ b/src/main/fragment/mos6502-common/qssz1=qssz1_plus_1.asm @@ -0,0 +1,8 @@ +clc +lda {z1} +adc #1 +sta {z1} +lda {z1}+1 +adc #0 +sta {z1}+1 + diff --git a/src/main/fragment/mos6502-common/qssz1=qssz2_plus_1.asm b/src/main/fragment/mos6502-common/qssz1=qssz2_plus_1.asm new file mode 100644 index 000000000..10bc833ff --- /dev/null +++ b/src/main/fragment/mos6502-common/qssz1=qssz2_plus_1.asm @@ -0,0 +1,7 @@ +clc +lda {z2} +adc #1 +sta {z1} +lda {z2}+1 +adc #0 +sta {z1}+1 diff --git a/src/main/fragment/mos6502-common/qssz1_derefidx_vbuc1_eq_0_then_la1.asm b/src/main/fragment/mos6502-common/qssz1_derefidx_vbuc1_eq_0_then_la1.asm new file mode 100644 index 000000000..2f75b39b4 --- /dev/null +++ b/src/main/fragment/mos6502-common/qssz1_derefidx_vbuc1_eq_0_then_la1.asm @@ -0,0 +1,7 @@ +ldy #<{c1} +lda ({z1}),y +bne !+ +iny +lda ({z1}),y +beq {la1} +!: diff --git a/src/main/fragment/mos6502-common/qssz1_derefidx_vbuc1_neq_0_then_la1.asm b/src/main/fragment/mos6502-common/qssz1_derefidx_vbuc1_neq_0_then_la1.asm new file mode 100644 index 000000000..9a01f20d6 --- /dev/null +++ b/src/main/fragment/mos6502-common/qssz1_derefidx_vbuc1_neq_0_then_la1.asm @@ -0,0 +1,7 @@ +ldy #<{c1} +lda ({z1}),y +bne {la1} +iny +lda ({z1}),y +bne {la1} +!: diff --git a/src/main/fragment/mos6502-common/vboaa=_stackpullbool_.asm b/src/main/fragment/mos6502-common/vboaa=_stackpullbool_.asm new file mode 100644 index 000000000..7a15a8b2d --- /dev/null +++ b/src/main/fragment/mos6502-common/vboaa=_stackpullbool_.asm @@ -0,0 +1 @@ +pla \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vboaa=vbuaa_ge_vbuc1.asm b/src/main/fragment/mos6502-common/vboaa=vbuaa_ge_vbuc1.asm new file mode 100644 index 000000000..ea9754f59 --- /dev/null +++ b/src/main/fragment/mos6502-common/vboaa=vbuaa_ge_vbuc1.asm @@ -0,0 +1,7 @@ +cmp #{c1} +bcs !+ +lda #0 +jmp !e+ +!: +lda #1 +!e: \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vboaa=vbuaa_gt_vbuc1.asm b/src/main/fragment/mos6502-common/vboaa=vbuaa_gt_vbuc1.asm new file mode 100644 index 000000000..6a7dea2c4 --- /dev/null +++ b/src/main/fragment/mos6502-common/vboaa=vbuaa_gt_vbuc1.asm @@ -0,0 +1,3 @@ +cmp #{c1} +lda #0 +rol diff --git a/src/main/fragment/mos6502-common/vbum1=pbum2_derefidx_vbuyy_band_vbuc1_temp.asm b/src/main/fragment/mos6502-common/vbum1=pbum2_derefidx_vbuyy_band_vbuc1_temp.asm new file mode 100644 index 000000000..2a268fa98 --- /dev/null +++ b/src/main/fragment/mos6502-common/vbum1=pbum2_derefidx_vbuyy_band_vbuc1_temp.asm @@ -0,0 +1,7 @@ +lda {m2} +sta $fe +lda {m2}+1 +sta $ff +lda ($fe),y +and #{c1} +sta {m1} \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vbum1=pbum2_derefidx_vbuyy_temp.asm b/src/main/fragment/mos6502-common/vbum1=pbum2_derefidx_vbuyy_temp.asm new file mode 100644 index 000000000..cdb3976e0 --- /dev/null +++ b/src/main/fragment/mos6502-common/vbum1=pbum2_derefidx_vbuyy_temp.asm @@ -0,0 +1,2 @@ +lda ({m2}),y +sta {m1} \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vdum1=_dword_pwuc1_derefidx_vbuxx.asm b/src/main/fragment/mos6502-common/vdum1=_dword_pwuc1_derefidx_vbuxx.asm new file mode 100644 index 000000000..192fe2a45 --- /dev/null +++ b/src/main/fragment/mos6502-common/vdum1=_dword_pwuc1_derefidx_vbuxx.asm @@ -0,0 +1,8 @@ +lda {c1},x +sta {m1} +inx +lda {c1},x +sta {m1}+1 +lda #0 +sta {m1}+2 +sta {m1}+3 diff --git a/src/main/fragment/mos6502-common/vdum1=_dword_pwuc1_derefidx_vbuyy.asm b/src/main/fragment/mos6502-common/vdum1=_dword_pwuc1_derefidx_vbuyy.asm new file mode 100644 index 000000000..462fcfc49 --- /dev/null +++ b/src/main/fragment/mos6502-common/vdum1=_dword_pwuc1_derefidx_vbuyy.asm @@ -0,0 +1,8 @@ +lda {c1},y +sta {m1} +iny +lda {c1},y +sta {m1}+1 +lda #0 +sta {m1}+2 +sta {m1}+3 diff --git a/src/main/fragment/mos6502-common/vdum1=_dword_pwuz2_derefidx_vbuc1.asm b/src/main/fragment/mos6502-common/vdum1=_dword_pwuz2_derefidx_vbuc1.asm new file mode 100644 index 000000000..7eabe72ba --- /dev/null +++ b/src/main/fragment/mos6502-common/vdum1=_dword_pwuz2_derefidx_vbuc1.asm @@ -0,0 +1,9 @@ +ldy #{c1} +lda ({z2}),y +sta {m1} +iny +lda ({z2}),y +sta {m1}+1 +lda #0 +sta {m1}+2 +sta {m1}+3 diff --git a/src/main/fragment/mos6502-common/vdum1=_makelong4_(vbuc1)_(vbuaa)_(vbuxx)_(vbuaa).asm b/src/main/fragment/mos6502-common/vdum1=_makelong4_(vbuc1)_(vbuaa)_(vbuxx)_(vbuaa).asm new file mode 100644 index 000000000..1f85e81a4 --- /dev/null +++ b/src/main/fragment/mos6502-common/vdum1=_makelong4_(vbuc1)_(vbuaa)_(vbuxx)_(vbuaa).asm @@ -0,0 +1,5 @@ +sta {m1}+1 +sta {m1}+3 +lda #{c1} +sta {m1} +stx {m1}+2 diff --git a/src/main/fragment/mos6502-common/vdum1=_makelong4_(vbuc1)_(vbuaa)_(vbuxx)_(vbuxx).asm b/src/main/fragment/mos6502-common/vdum1=_makelong4_(vbuc1)_(vbuaa)_(vbuxx)_(vbuxx).asm new file mode 100644 index 000000000..c8f89b99b --- /dev/null +++ b/src/main/fragment/mos6502-common/vdum1=_makelong4_(vbuc1)_(vbuaa)_(vbuxx)_(vbuxx).asm @@ -0,0 +1,5 @@ +sta {m1}+1 +lda #{c1} +sta {m1} +stx {m1}+2 +stx {m1}+3 diff --git a/src/main/fragment/mos6502-common/vdum1=_makelong4_(vbuc1)_(vbuaa)_(vbuxx)_(vbuyy).asm b/src/main/fragment/mos6502-common/vdum1=_makelong4_(vbuc1)_(vbuaa)_(vbuxx)_(vbuyy).asm new file mode 100644 index 000000000..c70476a36 --- /dev/null +++ b/src/main/fragment/mos6502-common/vdum1=_makelong4_(vbuc1)_(vbuaa)_(vbuxx)_(vbuyy).asm @@ -0,0 +1,5 @@ +sta {m1}+1 +lda #{c1} +sta {m1} +stx {m1}+2 +sty {m1}+3 diff --git a/src/main/fragment/mos6502-common/vdum1=_neg_vdum1.asm b/src/main/fragment/mos6502-common/vdum1=_neg_vdum1.asm new file mode 100644 index 000000000..e1bc0148f --- /dev/null +++ b/src/main/fragment/mos6502-common/vdum1=_neg_vdum1.asm @@ -0,0 +1,13 @@ +sec +lda #0 +sbc {m1} +sta {m1} +lda #0 +sbc {m1}+1 +sta {m1}+1 +lda #0 +sbc {m1}+2 +sta {m1}+2 +lda #0 +sbc {m1}+3 +sta {m1}+3 diff --git a/src/main/fragment/mos6502-common/vdum1=_neg_vdum2.asm b/src/main/fragment/mos6502-common/vdum1=_neg_vdum2.asm new file mode 100644 index 000000000..9070f3b57 --- /dev/null +++ b/src/main/fragment/mos6502-common/vdum1=_neg_vdum2.asm @@ -0,0 +1,13 @@ +sec +lda #0 +sbc {m2} +sta {m1} +lda #0 +sbc {m2}+1 +sta {m1}+1 +lda #0 +sbc {m2}+2 +sta {m1}+2 +lda #0 +sbc {m2}+3 +sta {m1}+3 diff --git a/src/main/fragment/mos6502-common/vdum1=vdum1_ror_3.asm b/src/main/fragment/mos6502-common/vdum1=vdum1_ror_3.asm new file mode 100644 index 000000000..490f38510 --- /dev/null +++ b/src/main/fragment/mos6502-common/vdum1=vdum1_ror_3.asm @@ -0,0 +1,12 @@ +lsr {m1}+3 +ror {m1}+2 +ror {m1}+1 +ror {m1} +lsr {m1}+3 +ror {m1}+2 +ror {m1}+1 +ror {m1} +lsr {m1}+3 +ror {m1}+2 +ror {m1}+1 +ror {m1} diff --git a/src/main/fragment/mos6502-common/vdum1=vdum2_minus_1.asm b/src/main/fragment/mos6502-common/vdum1=vdum2_minus_1.asm new file mode 100644 index 000000000..8873fc018 --- /dev/null +++ b/src/main/fragment/mos6502-common/vdum1=vdum2_minus_1.asm @@ -0,0 +1,13 @@ +sec +lda {m2} +sbc #1 +sta {m1} +lda {m2}+1 +sbc #0 +sta {m1}+1 +lda {m2}+2 +sbc #0 +sta {m1}+2 +lda {m2}+3 +sbc #0 +sta {m1}+3 diff --git a/src/main/fragment/mos6502-common/vdum1=vdum2_minus_vdum1.asm b/src/main/fragment/mos6502-common/vdum1=vdum2_minus_vdum1.asm new file mode 100644 index 000000000..6387156b2 --- /dev/null +++ b/src/main/fragment/mos6502-common/vdum1=vdum2_minus_vdum1.asm @@ -0,0 +1,13 @@ +sec +lda {m2} +sbc {m1} +sta {m1} +lda {m2}+1 +sbc {m1}+1 +sta {m1}+1 +lda {m2}+2 +sbc {m1}+2 +sta {m1}+2 +lda {m2}+3 +sbc {m1}+3 +sta {m1}+3 diff --git a/src/main/fragment/mos6502-common/vdum1=vwum2_rol_3.asm b/src/main/fragment/mos6502-common/vdum1=vwum2_rol_3.asm index 86bcdea76..c817c66f0 100644 --- a/src/main/fragment/mos6502-common/vdum1=vwum2_rol_3.asm +++ b/src/main/fragment/mos6502-common/vdum1=vwum2_rol_3.asm @@ -15,4 +15,4 @@ rol {m1}+3 asl {m1} rol {m1}+1 rol {m1}+2 -rol {m1}+3 \ No newline at end of file +rol {m1}+3 diff --git a/src/main/fragment/mos6502-common/vdum1=vwum2_rol_5.asm b/src/main/fragment/mos6502-common/vdum1=vwum2_rol_5.asm new file mode 100644 index 000000000..22cb9b1ba --- /dev/null +++ b/src/main/fragment/mos6502-common/vdum1=vwum2_rol_5.asm @@ -0,0 +1,20 @@ +lda {m2} +asl +sta {m1} +lda {m2}+1 +rol +sta {m1}+1 +lda {m2}+2 +rol +sta {m1}+2 +lda {m2}+3 +rol +sta {m1}+3 +asl {m1} +rol {m1}+1 +rol {m1}+2 +rol {m1}+3 +asl {m1} +rol {m1}+1 +rol {m1}+2 +rol {m1}+3 diff --git a/src/main/fragment/mos6502-common/vdum1_gt_vduc1_then_la1.asm b/src/main/fragment/mos6502-common/vdum1_gt_vduc1_then_la1.asm new file mode 100644 index 000000000..c8b42ec0f --- /dev/null +++ b/src/main/fragment/mos6502-common/vdum1_gt_vduc1_then_la1.asm @@ -0,0 +1,16 @@ +lda #>{c1}>>$10 +cmp {m1}+3 +bcc {la1} +bne !+ +lda #<{c1}>>$10 +cmp {m1}+2 +bcc {la1} +bne !+ +lda #>{c1} +cmp {m1}+1 +bcc {la1} +bne !+ +lda #<{c1} +cmp {m1} +bcc {la1} +!: diff --git a/src/main/fragment/mos6502-common/vdum1_le_vduc1_then_la1.asm b/src/main/fragment/mos6502-common/vdum1_le_vduc1_then_la1.asm new file mode 100644 index 000000000..0f513cd45 --- /dev/null +++ b/src/main/fragment/mos6502-common/vdum1_le_vduc1_then_la1.asm @@ -0,0 +1,17 @@ +lda {m1}+3 +cmp #>{c1}>>$10 +bcc {la1} +bne {la1} +lda {m1}+2 +cmp #<{c1}>>$10 +bcc {la1} +bne {la1} +lda {m1}+1 +cmp #>{c1} +bcc {la1} +bne {la1} +lda {m1} +cmp #<{c1} +bcc {la1} +bne {la1} +!: \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vdum1_neq_vdum2_then_la1.asm b/src/main/fragment/mos6502-common/vdum1_neq_vdum2_then_la1.asm new file mode 100644 index 000000000..b0c5f06da --- /dev/null +++ b/src/main/fragment/mos6502-common/vdum1_neq_vdum2_then_la1.asm @@ -0,0 +1,12 @@ +lda {m1}+3 +cmp {m2}+3 +bne {la1} +lda {m1}+2 +cmp {m2}+2 +bne {la1} +lda {m1}+1 +cmp {m2}+1 +bne {la1} +lda {m1} +cmp {m2} +bne {la1} \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vduz1=_dword_pwuc1_derefidx_vbuxx.asm b/src/main/fragment/mos6502-common/vduz1=_dword_pwuc1_derefidx_vbuxx.asm new file mode 100644 index 000000000..bf235fdd4 --- /dev/null +++ b/src/main/fragment/mos6502-common/vduz1=_dword_pwuc1_derefidx_vbuxx.asm @@ -0,0 +1,8 @@ +lda {c1},x +sta {z1} +inx +lda {c1},x +sta {z1}+1 +lda #0 +sta {z1}+2 +sta {z1}+3 diff --git a/src/main/fragment/mos6502-common/vduz1=_dword_pwuc1_derefidx_vbuyy.asm b/src/main/fragment/mos6502-common/vduz1=_dword_pwuc1_derefidx_vbuyy.asm new file mode 100644 index 000000000..b82c7225f --- /dev/null +++ b/src/main/fragment/mos6502-common/vduz1=_dword_pwuc1_derefidx_vbuyy.asm @@ -0,0 +1,8 @@ +lda {c1},y +sta {z1} +iny +lda {c1},y +sta {z1}+1 +lda #0 +sta {z1}+2 +sta {z1}+3 diff --git a/src/main/fragment/mos6502-common/vduz1=_dword_pwuz2_derefidx_vbuc1.asm b/src/main/fragment/mos6502-common/vduz1=_dword_pwuz2_derefidx_vbuc1.asm new file mode 100644 index 000000000..089c3ad0e --- /dev/null +++ b/src/main/fragment/mos6502-common/vduz1=_dword_pwuz2_derefidx_vbuc1.asm @@ -0,0 +1,9 @@ +ldy #{c1} +lda ({z2}),y +sta {z1} +iny +lda ({z2}),y +sta {z1}+1 +lda #0 +sta {z1}+2 +sta {z1}+3 diff --git a/src/main/fragment/mos6502-common/vwsm1=pwsz2_derefidx_vbuyy_plus_vbsc2.asm b/src/main/fragment/mos6502-common/vwsm1=pwsz2_derefidx_vbuyy_plus_vbsc2.asm new file mode 100644 index 000000000..c38d7856f --- /dev/null +++ b/src/main/fragment/mos6502-common/vwsm1=pwsz2_derefidx_vbuyy_plus_vbsc2.asm @@ -0,0 +1,8 @@ +lda ({z2}),y +clc +adc {c2} +sta {m1} +iny +lda ({z2}),y +adc #0 +sta {m1}+1 \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwsm1=vwsm1_plus_pbsz2_derefidx_vbuyy.asm b/src/main/fragment/mos6502-common/vwsm1=vwsm1_plus_pbsz2_derefidx_vbuyy.asm new file mode 100644 index 000000000..a3f2ffe0b --- /dev/null +++ b/src/main/fragment/mos6502-common/vwsm1=vwsm1_plus_pbsz2_derefidx_vbuyy.asm @@ -0,0 +1,11 @@ +clc +lda ({z2}),y +adc {m1} +sta {m1} +lda ({z2}),y +ora #$7f +bmi !+ +lda #0 +!: +adc {m1}+1 +sta {m1}+1 diff --git a/src/main/fragment/mos6502-common/vwsm1=vwsm1_rol_vbum2.asm b/src/main/fragment/mos6502-common/vwsm1=vwsm1_rol_vbum2.asm new file mode 100644 index 000000000..713e4808e --- /dev/null +++ b/src/main/fragment/mos6502-common/vwsm1=vwsm1_rol_vbum2.asm @@ -0,0 +1,8 @@ +ldy {m2} +beq !e+ +!: +asl {m1} +rol {m1}+1 +dey +bne !- +!e: diff --git a/src/main/fragment/mos6502-common/vwsm1=vwsm1_rol_vbuxx.asm b/src/main/fragment/mos6502-common/vwsm1=vwsm1_rol_vbuxx.asm new file mode 100644 index 000000000..e355b076b --- /dev/null +++ b/src/main/fragment/mos6502-common/vwsm1=vwsm1_rol_vbuxx.asm @@ -0,0 +1,7 @@ +beq !e+ +!: +asl {m1} +rol {m1}+1 +dex +bne !- +!e: diff --git a/src/main/fragment/mos6502-common/vwsm1=vwsm1_rol_vbuyy.asm b/src/main/fragment/mos6502-common/vwsm1=vwsm1_rol_vbuyy.asm new file mode 100644 index 000000000..f731ac23f --- /dev/null +++ b/src/main/fragment/mos6502-common/vwsm1=vwsm1_rol_vbuyy.asm @@ -0,0 +1,7 @@ +beq !e+ +!: +asl {m1} +rol {m1}+1 +dey +bne !- +!e: diff --git a/src/main/fragment/mos6502-common/vwsm1=vwsm2_plus_pbsz3_derefidx_vbuyy.asm b/src/main/fragment/mos6502-common/vwsm1=vwsm2_plus_pbsz3_derefidx_vbuyy.asm new file mode 100644 index 000000000..48f73ee68 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwsm1=vwsm2_plus_pbsz3_derefidx_vbuyy.asm @@ -0,0 +1,7 @@ +clc +lda {m2} +adc ({z3}),y +sta {m1} +bcc !+ +inc {m1}+1 +!: \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwsm1=vwsm2_rol_vbuxx.asm b/src/main/fragment/mos6502-common/vwsm1=vwsm2_rol_vbuxx.asm new file mode 100644 index 000000000..414f29b8c --- /dev/null +++ b/src/main/fragment/mos6502-common/vwsm1=vwsm2_rol_vbuxx.asm @@ -0,0 +1,12 @@ +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +cpx #0 +beq !e+ +!: +asl {m1} +rol {m1}+1 +dex +bne !- +!e: diff --git a/src/main/fragment/mos6502-common/vwsm1=vwsm2_rol_vbuyy.asm b/src/main/fragment/mos6502-common/vwsm1=vwsm2_rol_vbuyy.asm new file mode 100644 index 000000000..56f15a738 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwsm1=vwsm2_rol_vbuyy.asm @@ -0,0 +1,12 @@ +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +cpy #0 +beq !e+ +!: +asl {m1} +rol {m1}+1 +dey +bne !- +!e: diff --git a/src/main/fragment/mos6502-common/vwum1=_byte0_vwum1.asm b/src/main/fragment/mos6502-common/vwum1=_byte0_vwum1.asm new file mode 100644 index 000000000..02e3e716b --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=_byte0_vwum1.asm @@ -0,0 +1,2 @@ +lda #0 +sta {m1}+1 \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwum1=_byte0_vwum2.asm b/src/main/fragment/mos6502-common/vwum1=_byte0_vwum2.asm new file mode 100644 index 000000000..44bcd5606 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=_byte0_vwum2.asm @@ -0,0 +1,2 @@ +lda {m2} +sta {m1} \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwum1=_byte1_vwum2.asm b/src/main/fragment/mos6502-common/vwum1=_byte1_vwum2.asm new file mode 100644 index 000000000..313b715ef --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=_byte1_vwum2.asm @@ -0,0 +1,2 @@ +lda {m2}+1 +sta {m1} \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwum1=_dec_vwum2.asm b/src/main/fragment/mos6502-common/vwum1=_dec_vwum2.asm new file mode 100644 index 000000000..cbe3d0a97 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=_dec_vwum2.asm @@ -0,0 +1,7 @@ +lda {m2} +sec +sbc #1 +sta {m1} +lda {m2}+1 +sbc #0 +sta {m1}+1 \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwum1=_deref_pwuc1_minus__deref_pwuc2.asm b/src/main/fragment/mos6502-common/vwum1=_deref_pwuc1_minus__deref_pwuc2.asm new file mode 100644 index 000000000..4e9393919 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=_deref_pwuc1_minus__deref_pwuc2.asm @@ -0,0 +1,7 @@ +sec +lda {c1} +sbc {c2} +sta {m1} +lda {c1}+1 +sbc {c2}+1 +sta {m1}+1 diff --git a/src/main/fragment/mos6502-common/vwum1=_deref_pwum2_band_vwuc1_temp.asm b/src/main/fragment/mos6502-common/vwum1=_deref_pwum2_band_vwuc1_temp.asm new file mode 100644 index 000000000..3fcccff1d --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=_deref_pwum2_band_vwuc1_temp.asm @@ -0,0 +1,12 @@ +ldy #0 +lda {m2} +sta $fe +lda {m2}+1 +sta $ff +lda ($fe),y +and #<{c1} +sta {m1} +iny +lda ($fe),y +and #>{c1} +sta {m1} diff --git a/src/main/fragment/mos6502-common/vwum1=_deref_pwuz2_band_vwuc1.asm b/src/main/fragment/mos6502-common/vwum1=_deref_pwuz2_band_vwuc1.asm new file mode 100644 index 000000000..42df72f08 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=_deref_pwuz2_band_vwuc1.asm @@ -0,0 +1,9 @@ +ldy #0 +clc +lda ({z2}),y +and #<{c1} +sta {m1} +iny +lda ({z2}),y +and #>{c1} +sta {m1}+1 \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwum1=_deref_pwuz2_bor_vwuc1.asm b/src/main/fragment/mos6502-common/vwum1=_deref_pwuz2_bor_vwuc1.asm new file mode 100644 index 000000000..2d8bf0f1e --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=_deref_pwuz2_bor_vwuc1.asm @@ -0,0 +1,9 @@ +ldy #0 +clc +lda ({z2}),y +ora #<{c1} +sta {m1} +iny +lda ({z2}),y +ora #>{c1} +sta {m1}+1 \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwum1=_deref_pwuz2_plus_vwuc1.asm b/src/main/fragment/mos6502-common/vwum1=_deref_pwuz2_plus_vwuc1.asm new file mode 100644 index 000000000..211cc9041 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=_deref_pwuz2_plus_vwuc1.asm @@ -0,0 +1,9 @@ +ldy #0 +clc +lda ({z2}),y +adc #<{c1} +sta {m1} +iny +lda ({z2}),y +adc #>{c1} +sta {m1}+1 \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwum1=_deref_pwuz2_plus_vwum1.asm b/src/main/fragment/mos6502-common/vwum1=_deref_pwuz2_plus_vwum1.asm new file mode 100644 index 000000000..7a742e5ec --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=_deref_pwuz2_plus_vwum1.asm @@ -0,0 +1,9 @@ +ldy #0 +clc +lda ({z2}),y +adc {m1} +sta {m1} +iny +lda ({z2}),y +adc {m1}+1 +sta {m1}+1 \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwum1=_word1_pduc1_derefidx_vbuyy.asm b/src/main/fragment/mos6502-common/vwum1=_word1_pduc1_derefidx_vbuyy.asm new file mode 100644 index 000000000..d2300c98e --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=_word1_pduc1_derefidx_vbuyy.asm @@ -0,0 +1,4 @@ +lda {c1}+2,y +sta {m1} +lda {c1}+3,y +sta {m1}+1 \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwum1=pwuc1_derefidx_vbuxx_minus_pwuc2_derefidx_vbuxx.asm b/src/main/fragment/mos6502-common/vwum1=pwuc1_derefidx_vbuxx_minus_pwuc2_derefidx_vbuxx.asm new file mode 100644 index 000000000..760bde396 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=pwuc1_derefidx_vbuxx_minus_pwuc2_derefidx_vbuxx.asm @@ -0,0 +1,7 @@ +lda {c1},x +sec +sbc {c2},x +sta {m1} +lda {c1}+1,x +sbc {c2}+1,x +sta {m1}+1 diff --git a/src/main/fragment/mos6502-common/vwum1=pwuc1_derefidx_vbuyy_minus_pwuc2_derefidx_vbuyy.asm b/src/main/fragment/mos6502-common/vwum1=pwuc1_derefidx_vbuyy_minus_pwuc2_derefidx_vbuyy.asm new file mode 100644 index 000000000..c6d8e2b40 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=pwuc1_derefidx_vbuyy_minus_pwuc2_derefidx_vbuyy.asm @@ -0,0 +1,7 @@ +lda {c1},y +sec +sbc {c2},y +sta {m1} +lda {c1}+1,y +sbc {c2}+1,y +sta {m1}+1 diff --git a/src/main/fragment/mos6502-common/vwum1=pwuz2_derefidx_vbuyy_minus_vwum1.asm b/src/main/fragment/mos6502-common/vwum1=pwuz2_derefidx_vbuyy_minus_vwum1.asm new file mode 100644 index 000000000..1f2075bdd --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=pwuz2_derefidx_vbuyy_minus_vwum1.asm @@ -0,0 +1,8 @@ +sec +lda ({z2}),y +sbc {m1} +sta {m1} +iny +lda ({z2}),y +sbc {m1}+1 +sta {m1}+1 \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwum1=vbuaa_minus_2.asm b/src/main/fragment/mos6502-common/vwum1=vbuaa_minus_2.asm new file mode 100644 index 000000000..b3e4729d7 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=vbuaa_minus_2.asm @@ -0,0 +1,5 @@ +sec +sbc #2 +sta {m1} +lda #0 +sta {m1}+1 \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwum1=vwum1_rol_9.asm b/src/main/fragment/mos6502-common/vwum1=vwum1_rol_9.asm new file mode 100644 index 000000000..2cc172aac --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=vwum1_rol_9.asm @@ -0,0 +1,5 @@ +lda {m1} +asl +sta {m1}+1 +lda #0 +sta {m1} diff --git a/src/main/fragment/mos6502-common/vwum1=vwum1_ror_7.asm b/src/main/fragment/mos6502-common/vwum1=vwum1_ror_7.asm new file mode 100644 index 000000000..d7806e844 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=vwum1_ror_7.asm @@ -0,0 +1,14 @@ +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} diff --git a/src/main/fragment/mos6502-common/vwum1=vwum1_ror_vbum2.asm b/src/main/fragment/mos6502-common/vwum1=vwum1_ror_vbum2.asm new file mode 100644 index 000000000..1c5a291c5 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=vwum1_ror_vbum2.asm @@ -0,0 +1,8 @@ +ldy {m2} +beq !e+ +!: +lsr {m1} +ror {m1}+1 +dey +bne !- +!e: diff --git a/src/main/fragment/mos6502-common/vwum1=vwum1_ror_vbuxx.asm b/src/main/fragment/mos6502-common/vwum1=vwum1_ror_vbuxx.asm new file mode 100644 index 000000000..53a92e033 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=vwum1_ror_vbuxx.asm @@ -0,0 +1,6 @@ +!: +lsr {m1}+1 +ror {m1} +dex +bne !- +!e: diff --git a/src/main/fragment/mos6502-common/vwum1=vwum1_ror_vbuyy.asm b/src/main/fragment/mos6502-common/vwum1=vwum1_ror_vbuyy.asm new file mode 100644 index 000000000..cf73a41ad --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=vwum1_ror_vbuyy.asm @@ -0,0 +1,6 @@ +!: +lsr {m1}+1 +ror {m1} +dey +bne !- +!e: diff --git a/src/main/fragment/mos6502-common/vwum1=vwum2_minus_pwuc1_derefidx_vbuxx.asm b/src/main/fragment/mos6502-common/vwum1=vwum2_minus_pwuc1_derefidx_vbuxx.asm new file mode 100644 index 000000000..21225e9f5 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=vwum2_minus_pwuc1_derefidx_vbuxx.asm @@ -0,0 +1,7 @@ +lda {m2} +sec +sbc {c1},x +sta {m1} +lda {m2}+1 +sbc {c1}+1,x +sta {m1}+1 diff --git a/src/main/fragment/mos6502-common/vwum1=vwum2_minus_pwuc1_derefidx_vbuyy.asm b/src/main/fragment/mos6502-common/vwum1=vwum2_minus_pwuc1_derefidx_vbuyy.asm new file mode 100644 index 000000000..b777d0ab4 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=vwum2_minus_pwuc1_derefidx_vbuyy.asm @@ -0,0 +1,7 @@ +lda {m2} +sec +sbc {c1},y +sta {m1} +lda {m2}+1 +sbc {c1}+1,y +sta {m1}+1 diff --git a/src/main/fragment/mos6502-common/vwum1=vwum2_rol_9.asm b/src/main/fragment/mos6502-common/vwum1=vwum2_rol_9.asm new file mode 100644 index 000000000..e3a0ed3bb --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1=vwum2_rol_9.asm @@ -0,0 +1,5 @@ +lda {m2} +asl +sta {m1}+1 +lda #0 +sta {m1} \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwum1_lt_vbuyy_then_la1.asm b/src/main/fragment/mos6502-common/vwum1_lt_vbuyy_then_la1.asm deleted file mode 100644 index 8c1950567..000000000 --- a/src/main/fragment/mos6502-common/vwum1_lt_vbuyy_then_la1.asm +++ /dev/null @@ -1,7 +0,0 @@ -lda {m1}+1 -bne !+ -sty $ff -lda {m1} -cmp $ff -bcc {la1} -!: diff --git a/src/main/fragment/mos6502-common/vwum1_neq__deref_pwuc1_then_la1.asm b/src/main/fragment/mos6502-common/vwum1_neq__deref_pwuc1_then_la1.asm new file mode 100644 index 000000000..c2f2f4882 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1_neq__deref_pwuc1_then_la1.asm @@ -0,0 +1,8 @@ +ldy #1 +lda {m1}+1 +cmp {c1}+1 +bne {la1} +dey +lda {m1} +cmp {c1} +bne {la1} \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwum1_neq_vbum2_then_la1.asm b/src/main/fragment/mos6502-common/vwum1_neq_vbum2_then_la1.asm new file mode 100644 index 000000000..eebef9d10 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwum1_neq_vbum2_then_la1.asm @@ -0,0 +1,5 @@ +lda {m1}+1 +bne {la1} +lda {m1} +cmp {m2} +bne {la1} \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwuz1=_deref_pwuz1_band_vwuc1.asm b/src/main/fragment/mos6502-common/vwuz1=_deref_pwuz1_band_vwuc1.asm new file mode 100644 index 000000000..84605c40d --- /dev/null +++ b/src/main/fragment/mos6502-common/vwuz1=_deref_pwuz1_band_vwuc1.asm @@ -0,0 +1,10 @@ +ldy #0 +lda ({z1}),y +and #<{c1} +pha +iny +lda ({z1}),y +and #>{c1} +sta {z1}+1 +pla +sta {z1} diff --git a/src/main/fragment/mos6502-common/vwuz1=_deref_pwuz1_bor_vwuc1.asm b/src/main/fragment/mos6502-common/vwuz1=_deref_pwuz1_bor_vwuc1.asm new file mode 100644 index 000000000..db0801adb --- /dev/null +++ b/src/main/fragment/mos6502-common/vwuz1=_deref_pwuz1_bor_vwuc1.asm @@ -0,0 +1,11 @@ +ldy #0 +clc +lda ({z1}),y +ora #<{c1} +pha +iny +lda ({z1}),y +ora #>{c1} +sta {z1}+1 +pla +sta {z1} diff --git a/src/main/fragment/mos6502-common/vwuz1=_deref_pwuz1_bxor_vwuc1.asm b/src/main/fragment/mos6502-common/vwuz1=_deref_pwuz1_bxor_vwuc1.asm new file mode 100644 index 000000000..2bb4f3622 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwuz1=_deref_pwuz1_bxor_vwuc1.asm @@ -0,0 +1,10 @@ +ldy #0 +lda ({z1}),y +eor #<{c1} +pha +iny +lda ({z1}),y +eor #>{c1} +sta {z1}+1 +pla +sta {z1} diff --git a/src/main/fragment/mos6502-common/vwuz1=pwuc1_derefidx_vbuz2_minus_pwuc2_derefidx_vbuz2.asm b/src/main/fragment/mos6502-common/vwuz1=pwuc1_derefidx_vbuz2_minus_pwuc2_derefidx_vbuz2.asm new file mode 100644 index 000000000..9fb5901f0 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwuz1=pwuc1_derefidx_vbuz2_minus_pwuc2_derefidx_vbuz2.asm @@ -0,0 +1,8 @@ +ldy {z2} +lda {c1},y +sec +sbc {c2},y +sta {z1} +lda {c1}+1,y +sbc {c2}+1,y +sta {z1}+1 \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwuz1=pwuz1_derefidx_vbuyy_band_vwuc1.asm b/src/main/fragment/mos6502-common/vwuz1=pwuz1_derefidx_vbuyy_band_vwuc1.asm new file mode 100644 index 000000000..ca8a78656 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwuz1=pwuz1_derefidx_vbuyy_band_vwuc1.asm @@ -0,0 +1,9 @@ +lda ({z1}),y +and #<{c1} +pha +iny +lda ({z1}),y +and #>{c1} +sta {z1}+1 +pla +sta {z1} diff --git a/src/main/fragment/mos6502-common/vwuz1=pwuz1_derefidx_vbuyy_bor_vwuc1.asm b/src/main/fragment/mos6502-common/vwuz1=pwuz1_derefidx_vbuyy_bor_vwuc1.asm new file mode 100644 index 000000000..6f9b0d480 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwuz1=pwuz1_derefidx_vbuyy_bor_vwuc1.asm @@ -0,0 +1,9 @@ +lda ({z1}),y +ora #<{c1} +pha +iny +lda ({z1}),y +ora #>{c1} +sta {z1}+1 +pla +sta {z1} diff --git a/src/main/fragment/mos6502-common/vwuz1=pwuz1_derefidx_vbuyy_bxor_vwuc1.asm b/src/main/fragment/mos6502-common/vwuz1=pwuz1_derefidx_vbuyy_bxor_vwuc1.asm new file mode 100644 index 000000000..17d4231f3 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwuz1=pwuz1_derefidx_vbuyy_bxor_vwuc1.asm @@ -0,0 +1,9 @@ +lda ({z1}),y +eor #<{c1} +pha +iny +lda ({z1}),y +eor #>{c1} +sta {z1}+1 +pla +sta {z1} diff --git a/src/main/fragment/mos6502-common/vwuz1=pwuz1_derefidx_vbuyy_minus_vwum2 copy.asm b/src/main/fragment/mos6502-common/vwuz1=pwuz1_derefidx_vbuyy_minus_vwum2 copy.asm new file mode 100644 index 000000000..562c568b6 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwuz1=pwuz1_derefidx_vbuyy_minus_vwum2 copy.asm @@ -0,0 +1,10 @@ +sec +lda ({z1}),y +sbc {m2} +pha +iny +lda ({z1}),y +sbc {m2}+1 +sta {z1}+1 +pla +sta {z1} \ No newline at end of file diff --git a/src/main/fragment/mos6502-common/vwuz1=pwuz2_derefidx_vbuyy_band_vwuc1.asm b/src/main/fragment/mos6502-common/vwuz1=pwuz2_derefidx_vbuyy_band_vwuc1.asm new file mode 100644 index 000000000..9f535d729 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwuz1=pwuz2_derefidx_vbuyy_band_vwuc1.asm @@ -0,0 +1,7 @@ +lda ({z2}),y +and #<{c1} +sta {z1} +iny +lda ({z2}),y +and #>{c1} +sta {z1}+1 diff --git a/src/main/fragment/mos6502-common/vwuz1=pwuz2_derefidx_vbuyy_band_vwuc2.asm b/src/main/fragment/mos6502-common/vwuz1=pwuz2_derefidx_vbuyy_band_vwuc2.asm new file mode 100644 index 000000000..769af06e9 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwuz1=pwuz2_derefidx_vbuyy_band_vwuc2.asm @@ -0,0 +1,7 @@ +lda ({z2}),y +and #<{c2} +sta {z1} +iny +lda ({z2}),y +and #>{c2} +sta {z1}+1 diff --git a/src/main/fragment/mos6502-common/vwuz1=pwuz2_derefidx_vbuyy_minus_vwuz3.asm b/src/main/fragment/mos6502-common/vwuz1=pwuz2_derefidx_vbuyy_minus_vwuz3.asm new file mode 100644 index 000000000..2e4b298a7 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwuz1=pwuz2_derefidx_vbuyy_minus_vwuz3.asm @@ -0,0 +1,12 @@ +sec +lda ({z2}),y +sty $ff +ldy #0 +sbc ({z3}),y +sta {z1} +ldy $ff +iny +lda ({z2}),y +ldy #1 +sbc ({z3}),y +sta {z1}+1 diff --git a/src/main/fragment/mos6502-common/vwuz1=vwuz1_ror_vbuxx.asm b/src/main/fragment/mos6502-common/vwuz1=vwuz1_ror_vbuxx.asm new file mode 100644 index 000000000..1617b24d7 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwuz1=vwuz1_ror_vbuxx.asm @@ -0,0 +1,6 @@ +!: +lsr {z1}+1 +ror {z1} +dex +bne !- +!e: diff --git a/src/main/fragment/mos6502-common/vwuz1=vwuz1_ror_vbuyy.asm b/src/main/fragment/mos6502-common/vwuz1=vwuz1_ror_vbuyy.asm new file mode 100644 index 000000000..412a06b23 --- /dev/null +++ b/src/main/fragment/mos6502-common/vwuz1=vwuz1_ror_vbuyy.asm @@ -0,0 +1,6 @@ +!: +lsr {z1}+1 +ror {z1} +dey +bne !- +!e: diff --git a/src/main/kc/include/c128.h b/src/main/kc/include/c128.h index f23967634..c1dce5163 100644 --- a/src/main/kc/include/c128.h +++ b/src/main/kc/include/c128.h @@ -8,3 +8,77 @@ #include #include #include + +/// Processor port data direction register +char* const PROCPORT_DDR = (char*)0x00; +/// Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written +const char PROCPORT_DDR_MEMORY_MASK = 0b00000111; +/// Processor Port Register controlling RAM/ROM configuration and the datasette +char* const PROCPORT = (char*)0x01; +/// RAM in all three areas 0xA000, 0xD000, 0xE000 +const char PROCPORT_RAM_ALL = 0b00000000; +/// RAM in 0xA000, 0xE000 I/O in 0xD000 +const char PROCPORT_RAM_IO = 0b00000101; +/// RAM in 0xA000, 0xE000 CHAR ROM in 0xD000 +const char PROCPORT_RAM_CHARROM = 0b00000001; +/// RAM in 0xA000, I/O in 0xD000, KERNEL in 0xE000 +const char PROCPORT_KERNEL_IO = 0b00000110; +/// BASIC in 0xA000, I/O in 0xD000, KERNEL in 0xE000 +const char PROCPORT_BASIC_KERNEL_IO = 0b00000111; + +/// The address of the CHARGEN character set +char* const CHARGEN = (char*)0xd000; +/// The SID MOS 6581/8580 +struct MOS6581_SID * const SID = (struct MOS6581_SID *)0xd400; +/// The VIC-II MOS 6567/6569 +struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)0xd000; +/// Color Ram +char * const COLORRAM = (char*)0xd800; +/// Color Ram +char * const COLS = (char*)0xd800; + +/// Default address of screen character matrix +char * const DEFAULT_SCREEN = (char*)0x0400; +/// Default address of the chargen font (upper case) +char * const DEFAULT_FONT_UPPER = (char*)0x1000; +/// Default address of the chargen font (mixed case) +char * const DEFAULT_FONT_MIXED = (char*)0x1800; + +/// The CIA#1: keyboard matrix, joystick #1/#2 +struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)0xdc00; +/// The CIA#2: Serial bus, RS-232, VIC memory bank +struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *)0xdd00; +/// CIA#1 Interrupt for reading in ASM +char * const CIA1_INTERRUPT = (char*)0xdc0d; +/// CIA#2 timer A&B as one single 32-bit value +unsigned long* const CIA2_TIMER_AB = (unsigned long*)0xdd04; +/// CIA#2 Interrupt for reading in ASM +char * const CIA2_INTERRUPT = (char*)0xdd0d; + +/// Pointer to interrupt function +typedef void (*IRQ_TYPE)(void); + +/// The vector used when the KERNAL serves IRQ interrupts +IRQ_TYPE * const KERNEL_IRQ = (IRQ_TYPE*)0x0314; +/// The vector used when the KERNAL serves NMI interrupts +IRQ_TYPE * const KERNEL_NMI = (IRQ_TYPE*)0x0318; +/// The vector used when the HARDWARE serves IRQ interrupts +IRQ_TYPE * const HARDWARE_IRQ = (IRQ_TYPE*)0xfffe; + +/// The colors of the C64 +const char BLACK = 0x0; +const char WHITE = 0x1; +const char RED = 0x2; +const char CYAN = 0x3; +const char PURPLE = 0x4; +const char GREEN = 0x5; +const char BLUE = 0x6; +const char YELLOW = 0x7; +const char ORANGE = 0x8; +const char BROWN = 0x9; +const char PINK = 0xa; +const char DARK_GREY= 0xb; +const char GREY = 0xc; +const char LIGHT_GREEN = 0xd; +const char LIGHT_BLUE = 0xe; +const char LIGHT_GREY = 0xf; diff --git a/src/main/kc/include/conio.h b/src/main/kc/include/conio.h index 269817f16..cb79ae3eb 100644 --- a/src/main/kc/include/conio.h +++ b/src/main/kc/include/conio.h @@ -4,7 +4,7 @@ /// Implements similar functions as conio.h from CC65 for compatibility /// See https://github.com/cc65/cc65/blob/master/include/conio.h // -/// Currently C64/PLUS4/VIC20 platforms are supported +/// Currently CX16/C64/PLUS4/VIC20 platforms are supported /// clears the screen and moves the cursor to the upper left-hand corner of the screen. void clrscr(void); diff --git a/src/main/kc/include/cx16-bitmap.h b/src/main/kc/include/cx16-bitmap.h index 0584218fe..d0c3482ac 100644 --- a/src/main/kc/include/cx16-bitmap.h +++ b/src/main/kc/include/cx16-bitmap.h @@ -4,7 +4,7 @@ /// Currently it can only plot on the first 256 x-positions. /// Initialize the bitmap plotter tables for a specific bitmap -void bitmap_init(byte layer, dword address); +void bitmap_init(unsigned char layer, unsigned char bank, unsigned int offset); /// Clear all graphics on the bitmap void bitmap_clear(); diff --git a/src/main/kc/include/cx16-conio.h b/src/main/kc/include/cx16-conio.h new file mode 100644 index 000000000..ebd65e8a3 --- /dev/null +++ b/src/main/kc/include/cx16-conio.h @@ -0,0 +1,6 @@ +#include + +// structure to hold operational variables to operate conio for the X16, and make it code efficient. + +void screenlayer0(); +void screenlayer1(); \ No newline at end of file diff --git a/src/main/kc/include/cx16-kernal.h b/src/main/kc/include/cx16-kernal.h index b815572ba..778aaa422 100644 --- a/src/main/kc/include/cx16-kernal.h +++ b/src/main/kc/include/cx16-kernal.h @@ -1,18 +1,21 @@ -/// @file +/** + * @file cx16-kernal.h + * @author Sven Van de Velde (sven.van.de.velde@telenet.be) + * @brief CBM kernal API dialect and additions to the Commander X16 platform. + * Please refer to https://github.com/commanderx16/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20KERNAL.md for the detailed list + * of APIs backward compatible with the C64. + * + * @version 1.0 + * @date 2023-03-22 + * + * @copyright Copyright (c) 2023 + * + */ + +const unsigned int CX16_SCREEN_SET_CHARSET = 0xFF62; ///< CX16 Set character set. +const unsigned int CX16_MACPTR = 0xFF44; ///< CX16 Faster loading from SDCARD. -/// Kernal SETNAM function -/// SETNAM. Set file name parameters. -void setnam(char* filename); +unsigned int cx16_k_macptr(unsigned char bytes, void* buffer); +void cx16_k_screen_set_charset(char charset, char *offset); -/// SETLFS. Set file parameters. -void setlfs(char device); - -/// LOAD. Load or verify file. (Must call SETLFS and SETNAM beforehands.) -/// - verify: 0 = Load, 1-255 = Verify -/// Returns a status, 0xff: Success other: Kernal Error Code -char load(char* address, char verify); - -/// GETIN. Read a byte from the input channel -/// return: next byte in buffer or 0 if buffer is empty. -char getin(); diff --git a/src/main/kc/include/cx16-mouse.h b/src/main/kc/include/cx16-mouse.h new file mode 100644 index 000000000..f8f901a3a --- /dev/null +++ b/src/main/kc/include/cx16-mouse.h @@ -0,0 +1,18 @@ +// CX16 CBM Mouse Routines +const word CX16_MOUSE_CONFIG = 0xFF68; // Mouse pointer configuration. +const word CX16_MOUSE_SCAN = 0xFF71; // ISR routine to scan the mouse state. +const word CX16_MOUSE_GET = 0xFF6B; // Get the mouse state; + +typedef struct { + int x; + int y; + int px; + int py; + unsigned char status; +} cx16_mouse_t; + +extern __mem cx16_mouse_t cx16_mouse; + +void cx16_mouse_config(char visible, char scalex, char scaley); +void cx16_mouse_scan(); +char cx16_mouse_get(); diff --git a/src/main/kc/include/cx16-typedefs.h b/src/main/kc/include/cx16-typedefs.h new file mode 100644 index 000000000..d13d5397b --- /dev/null +++ b/src/main/kc/include/cx16-typedefs.h @@ -0,0 +1,26 @@ +/** + * @file cx16.h + * @author Sven Van de Velde + * @brief Type definitions for the CX16 platform. + * @version 0.2 + * @date 2022-10-13 + * + * @copyright Copyright (c) 2022 + * + */ + +#ifndef __CX16__ +#error "Target platform must be cx16" +#endif + + +typedef void (*IRQ_TYPE)(void); ///< Pointer to interrupt function. + +typedef unsigned char bram_bank_t; ///< Represents a bank in banked ram. +typedef unsigned char brom_bank_t; ///< Represents a bank in banked rom. +typedef unsigned char vram_bank_t; ///< Represents a bank in vera ram. +typedef unsigned char* ram_ptr_t; ///< Expresses a pointer to a location in main ram of the CX16.. +typedef unsigned char* bram_ptr_t; ///< Expresses a pointer location in banked ram of the CX16, excluding any bank information! +typedef unsigned char* brom_ptr_t; ///< Expresses a pointer location in banked rom of the CX16, excluding any bank information! +typedef unsigned int vram_offset_t; ///< Expresses an offset location in vera ram, excluding any bank information! + diff --git a/src/main/kc/include/cx16-vera.h b/src/main/kc/include/cx16-vera.h index 76115069d..53b2de742 100644 --- a/src/main/kc/include/cx16-vera.h +++ b/src/main/kc/include/cx16-vera.h @@ -3,23 +3,9 @@ /// /// https://github.com/commanderx16/x16-docs/blob/master/VERA%20Programmer's%20Reference.md -/// The colors of the CX16 -const char BLACK = 0x0; -const char WHITE = 0x1; -const char RED = 0x2; -const char CYAN = 0x3; -const char PURPLE = 0x4; -const char GREEN = 0x5; -const char BLUE = 0x6; -const char YELLOW = 0x7; -const char ORANGE = 0x8; -const char BROWN = 0x9; -const char PINK = 0xa; -const char DARK_GREY = 0xb; -const char GREY = 0xc; -const char LIGHT_GREEN = 0xd; -const char LIGHT_BLUE = 0xe; -const char LIGHT_GREY = 0xf; +// Location of default PETSCII character tiles in the VERA +unsigned int const VERA_PETSCII_TILE = 0xF800; +unsigned int const VERA_PETSCII_TILE_SIZE = 0x0800; /// To access the VRAM (which is 128kB in size) an indirection mechanism is used. /// First the address to be accessed needs to be set (ADDRx_L/ADDRx_M/ADDRx_H) and @@ -31,69 +17,69 @@ const char LIGHT_GREY = 0xf; /// See https://github.com/commanderx16/x16-emulator/wiki/(VERA-0.8)-Registers-$9F23-and-$9F24-(and-$9F25) /// $9F20 VRAM Address (7:0) -char * const VERA_ADDRX_L = (char*)0x9f20; +char* const VERA_ADDRX_L = (char*)0x9f20; /// $9F21 VRAM Address (15:8) -char * const VERA_ADDRX_M = (char*)0x9f21; +char* const VERA_ADDRX_M = (char*)0x9f21; /// $9F22 VRAM Address (7:0) /// Bit 4-7: Address Increment The following is the amount incremented per value value:increment /// 0:0, 1:1, 2:2, 3:4, 4:8, 5:16, 6:32, 7:64, 8:128, 9:256, 10:512, 11:40, 12:80, 13:160, 14:320, 15:640 /// Bit 3: DECR Setting the DECR bit, will decrement instead of increment by the value set by the 'Address Increment' field. /// Bit 0: VRAM Address (16) -char * const VERA_ADDRX_H = (char*)0x9f22; -const char VERA_INC_0 = 0x00; -const char VERA_INC_1 = 0x10; -const char VERA_INC_2 = 0x20; -const char VERA_INC_4 = 0x30; -const char VERA_INC_8 = 0x40; -const char VERA_INC_16 = 0x50; -const char VERA_INC_32 = 0x60; -const char VERA_INC_64 = 0x70; -const char VERA_INC_128 = 0x80; -const char VERA_INC_256 = 0x90; -const char VERA_INC_512 = 0xa0; -const char VERA_INC_40 = 0xb0; -const char VERA_INC_80 = 0xc0; -const char VERA_INC_160 = 0xd0; -const char VERA_INC_320 = 0xe0; -const char VERA_INC_640 = 0xf0; -const char VERA_DECR_0 = 0x08; -const char VERA_DECR_1 = 0x18; -const char VERA_DECR_2 = 0x28; -const char VERA_DECR_4 = 0x38; -const char VERA_DECR_8 = 0x48; -const char VERA_DECR_16 = 0x58; -const char VERA_DECR_32 = 0x68; -const char VERA_DECR_64 = 0x78; -const char VERA_DECR_128 = 0x88; -const char VERA_DECR_256 = 0x98; -const char VERA_DECR_512 = 0xa8; -const char VERA_DECR_40 = 0xb8; -const char VERA_DECR_80 = 0xc8; -const char VERA_DECR_160 = 0xd8; -const char VERA_DECR_320 = 0xe8; -const char VERA_DECR_640 = 0xf8; +char* const VERA_ADDRX_H = (char*)0x9f22; +char const VERA_INC_0 = 0x00; +char const VERA_INC_1 = 0x10; +char const VERA_INC_2 = 0x20; +char const VERA_INC_4 = 0x30; +char const VERA_INC_8 = 0x40; +char const VERA_INC_16 = 0x50; +char const VERA_INC_32 = 0x60; +char const VERA_INC_64 = 0x70; +char const VERA_INC_128 = 0x80; +char const VERA_INC_256 = 0x90; +char const VERA_INC_512 = 0xa0; +char const VERA_INC_40 = 0xb0; +char const VERA_INC_80 = 0xc0; +char const VERA_INC_160 = 0xd0; +char const VERA_INC_320 = 0xe0; +char const VERA_INC_640 = 0xf0; +char const VERA_DECR_0 = 0x08; +char const VERA_DECR_1 = 0x18; +char const VERA_DECR_2 = 0x28; +char const VERA_DECR_4 = 0x38; +char const VERA_DECR_8 = 0x48; +char const VERA_DECR_16 = 0x58; +char const VERA_DECR_32 = 0x68; +char const VERA_DECR_64 = 0x78; +char const VERA_DECR_128 = 0x88; +char const VERA_DECR_256 = 0x98; +char const VERA_DECR_512 = 0xa8; +char const VERA_DECR_40 = 0xb8; +char const VERA_DECR_80 = 0xc8; +char const VERA_DECR_160 = 0xd8; +char const VERA_DECR_320 = 0xe8; +char const VERA_DECR_640 = 0xf8; /// $9F23 DATA0 VRAM Data port 0 -char * const VERA_DATA0 = (char*)0x9f23; +char* const VERA_DATA0 = (char*)0x9f23; /// $9F24 DATA1 VRAM Data port 1 -char * const VERA_DATA1 = (char*)0x9f24; +char* const VERA_DATA1 = (char*)0x9f24; /// $9F25 CTRL Control /// Bit 7: Reset /// Bit 1: DCSEL /// Bit 2: ADDRSEL -char * const VERA_CTRL = (char*)0x9f25; -const char VERA_DCSEL = 2; -const char VERA_ADDRSEL = 1; +char* const VERA_CTRL = (char*)0x9f25; +char const VERA_DCSEL = 2; +char const VERA_ADDRSEL = 1; /// $9F26 IEN Interrupt Enable /// Bit 7: IRQ line (8) /// Bit 3: AFLOW /// Bit 2: SPRCOL /// Bit 1: LINE /// Bit 0: VSYNC -char * const VERA_IEN = (char*)0x9f26; -const char VERA_AFLOW = 8; -const char VERA_SPRCOL = 4; -const char VERA_LINE = 2; -const char VERA_VSYNC = 1; +char* const VERA_IEN = (char*)0x9f26; +char const VERA_AFLOW = 8; +char const VERA_SPRCOL = 4; +char const VERA_LINE = 2; +char const VERA_VSYNC = 1; /// $9F27 ISR Interrupt Status /// Interrupts will be generated for the interrupt sources set in the lower 4 bits of IEN. ISR will indicate the interrupts that have occurred. /// Writing a 1 to one of the lower 3 bits in ISR will clear that interrupt status. AFLOW can only be cleared by filling the audio FIFO for at least 1/4. @@ -102,12 +88,12 @@ const char VERA_VSYNC = 1; /// Bit 2: SPRCOL /// Bit 1: LINE /// Bit 0: VSYNC -char * const VERA_ISR = (char*)0x9f27; +char* const VERA_ISR = (char*)0x9f27; /// $9F28 IRQLINE_L IRQ line (7:0) /// IRQ_LINE specifies at which line the LINE interrupt will be generated. /// Note that bit 8 of this value is present in the IEN register. /// For interlaced modes the interrupt will be generated each field and the bit 0 of IRQ_LINE is ignored. -char * const VERA_IRQLINE_L = (char*)0x9f28; +char* const VERA_IRQLINE_L = (char*)0x9f28; /// $9F29 DC_VIDEO (DCSEL=0) /// Bit 7: Current Field Read-only bit which reflects the active interlaced field in composite and RGB modes. (0: even, 1: odd) @@ -116,58 +102,61 @@ char * const VERA_IRQLINE_L = (char*)0x9f28; /// Bit 4: Layer0 Enable Enable output from the Layer0 renderer /// Bit 2: Chroma Disable Setting 'Chroma Disable' disables output of chroma in NTSC composite mode and will give a better picture on a monochrome display. (Setting this bit will also disable the chroma output on the S-video output.) /// Bit 0-1: Output Mode 0: Video disabled, 1: VGA output, 2: NTSC composite, 3: RGB interlaced, composite sync (via VGA connector) -char * const VERA_DC_VIDEO = (char*)0x9f29; -const char VERA_SPRITES_ENABLE = 0x40; -const char VERA_LAYER1_ENABLE = 0x20; -const char VERA_LAYER0_ENABLE = 0x10; -const char VERA_CROMA_DISABLE = 0x04; -const char VERA_OUTPUT_DISABLE = 0x00; -const char VERA_OUTPUT_VGA = 0x01; -const char VERA_OUTPUT_NTSC = 0x02; -const char VERA_OUTPUT_RGB = 0x03; +char* const VERA_DC_VIDEO = (char*)0x9f29; +char const VERA_SPRITES_ENABLE = 0x40; +char const VERA_SPRITES_COLLISIONS = 0x04; +char const VERA_LAYER1_ENABLE = 0x20; +char const VERA_LAYER0_ENABLE = 0x10; +char const VERA_CROMA_DISABLE = 0x04; +char const VERA_OUTPUT_DISABLE = 0x00; +char const VERA_OUTPUT_VGA = 0x01; +char const VERA_OUTPUT_NTSC = 0x02; +char const VERA_OUTPUT_RGB = 0x03; /// $9F2A DC_HSCALE (DCSEL=0) Active Display H-Scale -char * const VERA_DC_HSCALE = (char*)0x9f2a; +char* const VERA_DC_HSCALE = (char*)0x9f2a; /// $9F2B DC_VSCALE (DCSEL=0) Active Display V-Scale -char * const VERA_DC_VSCALE = (char*)0x9f2b; +char* const VERA_DC_VSCALE = (char*)0x9f2b; /// $9F2C DC_BORDER (DCSEL=0) Border Color -char * const VERA_DC_BORDER = (char*)0x9f2c; +char* const VERA_DC_BORDER = (char*)0x9f2c; /// $9F29 DC_HSTART (DCSEL=1) Active Display H-Start (9:2) -char * const VERA_DC_HSTART = (char*)0x9f29; +char* const VERA_DC_HSTART = (char*)0x9f29; /// $9F2A DC_HSTOP (DCSEL=1) Active Display H-Stop (9:2) -char * const VERA_DC_HSTOP = (char*)0x9f2a; +char* const VERA_DC_HSTOP = (char*)0x9f2a; /// $9F2B DC_VSTART (DCSEL=1) Active Display V-Start (8:1) -char * const VERA_DC_VSTART = (char*)0x9f2b; +char* const VERA_DC_VSTART = (char*)0x9f2b; /// $9F2C DC_VSTOP (DCSEL=1) Active Display V-Stop (8:1) -char * const VERA_DC_VSTOP = (char*)0x9f2c; +char* const VERA_DC_VSTOP = (char*)0x9f2c; /// Configuration work tables /// Bit 4-5. Map Width (0:32 tiles, 1:64 tiles, 2:128 tiles, 3:256 tiles) -byte const VERA_LAYER_WIDTH_32 = 0x00; -byte const VERA_LAYER_WIDTH_64 = 0x10; -byte const VERA_LAYER_WIDTH_128 = 0x20; -byte const VERA_LAYER_WIDTH_256 = 0x30; -byte const VERA_LAYER_WIDTH_MASK = 0x30; -word const VERA_LAYER_WIDTH[4] = {32, 64, 128, 256}; +char const VERA_LAYER_WIDTH_32 = 0x00; +char const VERA_LAYER_WIDTH_64 = 0x10; +char const VERA_LAYER_WIDTH_128 = 0x20; +char const VERA_LAYER_WIDTH_256 = 0x30; +char const VERA_LAYER_WIDTH_MASK = 0x30; +unsigned int const VERA_LAYER_WIDTH[4] = {32, 64, 128, 256}; /// Bit 6-7: Map Height (0:32 tiles, 1:64 tiles, 2:128 tiles, 3:256 tiles) -byte const VERA_LAYER_HEIGHT_32 = 0x00; -byte const VERA_LAYER_HEIGHT_64 = 0x40; -byte const VERA_LAYER_HEIGHT_128 = 0x80; -byte const VERA_LAYER_HEIGHT_256 = 0xC0; -byte const VERA_LAYER_HEIGHT_MASK = 0xC0; -word const VERA_LAYER_HEIGHT[4] = {32, 64, 128, 256}; +char const VERA_LAYER_HEIGHT_32 = 0x00; +char const VERA_LAYER_HEIGHT_64 = 0x40; +char const VERA_LAYER_HEIGHT_128 = 0x80; +char const VERA_LAYER_HEIGHT_256 = 0xC0; +char const VERA_LAYER_HEIGHT_MASK = 0xC0; +unsigned int const VERA_LAYER_HEIGHT[4] = {32, 64, 128, 256}; + +const unsigned int VERA_LAYER_SKIP[4] = {64, 128, 256, 512}; /// Bit 0-1: Color Depth (0: 1 bpp, 1: 2 bpp, 2: 4 bpp, 3: 8 bpp) -byte const VERA_LAYER_COLOR_DEPTH_1BPP = 0x00; -byte const VERA_LAYER_COLOR_DEPTH_2BPP = 0x01; -byte const VERA_LAYER_COLOR_DEPTH_4BPP = 0x02; -byte const VERA_LAYER_COLOR_DEPTH_8BPP = 0x03; -byte const VERA_LAYER_COLOR_DEPTH_MASK = 0x03; -byte const VERA_LAYER_COLOR_DEPTH[4] = {1, 2, 4, 8}; +char const VERA_LAYER_COLOR_DEPTH_1BPP = 0x00; +char const VERA_LAYER_COLOR_DEPTH_2BPP = 0x01; +char const VERA_LAYER_COLOR_DEPTH_4BPP = 0x02; +char const VERA_LAYER_COLOR_DEPTH_8BPP = 0x03; +char const VERA_LAYER_COLOR_DEPTH_MASK = 0x03; +char const VERA_LAYER_COLOR_DEPTH[4] = {1, 2, 4, 8}; /// $9F2D L0_CONFIG Layer 0 Configuration -char * const VERA_L0_CONFIG = (char*)0x9f2d; +char* const VERA_L0_CONFIG = (char*)0x9f2d; /// Bit 2: Bitmap Mode (0:tile mode, 1: bitmap mode) char const VERA_LAYER_CONFIG_MODE_TILE = 0x00; char const VERA_LAYER_CONFIG_MODE_BITMAP = 0x04; @@ -175,71 +164,73 @@ char const VERA_LAYER_CONFIG_MODE_BITMAP = 0x04; char const VERA_LAYER_CONFIG_16C = 0x00; char const VERA_LAYER_CONFIG_256C = 0x08; /// $9F2E L0_MAPBASE Layer 0 Map Base Address (16:9) -char * const VERA_L0_MAPBASE = (char*)0x9f2e; +char* const VERA_L0_MAPBASE = (char*)0x9f2e; /// $9F2F L0_TILEBASE Layer 0 Tile Base /// Bit 2-7: Tile Base Address (16:11) /// Bit 1: Tile Height (0:8 pixels, 1:16 pixels) -byte const VERA_TILEBASE_WIDTH_8 = 0x00; -byte const VERA_TILEBASE_WIDTH_16 = 0x01; -byte const VERA_TILEBASE_WIDTH_MASK = 0x01; -byte const VERA_TILEBASE_HEIGHT_8 = 0x00; -byte const VERA_TILEBASE_HEIGHT_16 = 0x02; -byte const VERA_TILEBASE_HEIGHT_MASK = 0x02; -byte const VERA_LAYER_TILEBASE_MASK = 0xfC; +char const VERA_TILEBASE_WIDTH_8 = 0x00; +char const VERA_TILEBASE_WIDTH_16 = 0x01; +char const VERA_TILEBASE_WIDTH_MASK = 0x01; +char const VERA_TILEBASE_HEIGHT_8 = 0x00; +char const VERA_TILEBASE_HEIGHT_16 = 0x02; +char const VERA_TILEBASE_HEIGHT_MASK = 0x02; +char const VERA_LAYER_TILEBASE_MASK = 0xfC; /// Bit 0: Tile Width (0:8 pixels, 1:16 pixels) -char * const VERA_L0_TILEBASE = (char*)0x9f2f; +char* const VERA_L0_TILEBASE = (char*)0x9f2f; /// $9F30 L0_HSCROLL_L Layer 0 H-Scroll (7:0) -char * const VERA_L0_HSCROLL_L = (char*)0x9f30; +char* const VERA_L0_HSCROLL_L = (char*)0x9f30; /// $9F31 L0_HSCROLL_H Layer 0 H-Scroll (11:8) -char * const VERA_L0_HSCROLL_H = (char*)0x9f31; +char* const VERA_L0_HSCROLL_H = (char*)0x9f31; /// $9F32 L0_VSCROLL_L Layer 0 V-Scroll (7:0) -char * const VERA_L0_VSCROLL_L = (char*)0x9f32; +char* const VERA_L0_VSCROLL_L = (char*)0x9f32; /// $9F33 L0_VSCROLL_H Layer 0 V-Scroll (11:8) -char * const VERA_L0_VSCROLL_H = (char*)0x9f33; +char* const VERA_L0_VSCROLL_H = (char*)0x9f33; /// $9F34 L1_CONFIG Layer 1 Configuration -char * const VERA_L1_CONFIG = (char*)0x9f34; +char* const VERA_L1_CONFIG = (char*)0x9f34; /// $9F35 L1_MAPBASE Layer 1 Map Base Address (16:9) -char * const VERA_L1_MAPBASE = (char*)0x9f35; +char* const VERA_L1_MAPBASE = (char*)0x9f35; /// $9F36 L1_TILEBASE Layer 1 Tile Base /// Bit 2-7: Tile Base Address (16:11) /// Bit 1: Tile Height (0:8 pixels, 1:16 pixels) /// Bit 0: Tile Width (0:8 pixels, 1:16 pixels) -char * const VERA_L1_TILEBASE = (char*)0x9f36; +char* const VERA_L1_TILEBASE = (char*)0x9f36; /// $9F37 L1_HSCROLL_L Layer 1 H-Scroll (7:0) -char * const VERA_L1_HSCROLL_L = (char*)0x9f37; +char* const VERA_L1_HSCROLL_L = (char*)0x9f37; /// $9F38 L1_HSCROLL_H Layer 1 H-Scroll (11:8) -char * const VERA_L1_HSCROLL_H = (char*)0x9f38; +char* const VERA_L1_HSCROLL_H = (char*)0x9f38; /// $9F39 L1_VSCROLL_L Layer 1 V-Scroll (7:0) -char * const VERA_L1_VSCROLL_L = (char*)0x9f39; +char* const VERA_L1_VSCROLL_L = (char*)0x9f39; /// $9F3A L1_VSCROLL_H Layer 1 V-Scroll (11:8) -char * const VERA_L1_VSCROLL_H = (char*)0x9f3a; +char* const VERA_L1_VSCROLL_H = (char*)0x9f3a; /// $9F3B AUDIO_CTRL /// Bit 7: FIFO Full / FIFO Reset /// Bit 5: 16-Bit /// Bit 4: Stereo /// Bit 0-3: PCM Volume -char * const VERA_AUDIO_CTRL = (char*)0x9f3b; +char* const VERA_AUDIO_CTRL = (char*)0x9f3b; /// $9F3C AUDIO_RATE PCM Sample Rate -char * const VERA_AUDIO_RATE = (char*)0x9f3c; +char* const VERA_AUDIO_RATE = (char*)0x9f3c; /// $9F3D AUDIO_DATA Audio FIFO data (write-only) -char * const VERA_AUDIO_DATA = (char*)0x9f3d; +char* const VERA_AUDIO_DATA = (char*)0x9f3d; /// $9F3E SPI_DATA SPI Data -char * const VERA_SPI_DATA = (char*)0x9f3e; +char* const VERA_SPI_DATA = (char*)0x9f3e; /// $9F3F SPI_CTRL SPI Control /// Bit 7: Busy /// Bit 1: Slow clock /// Bit 0: Select -char * const VERA_SPI_CTRL = (char*)0x9f3f; +char* const VERA_SPI_CTRL = (char*)0x9f3f; -/// VERA Palette address in VRAM $1FA00 - $1FBFF -/// 256 entries of 2 bytes -/// byte 0 bits 4-7: Green -/// byte 0 bits 0-3: Blue -/// byte 1 bits 0-3: Red -const unsigned long VERA_PALETTE = 0x1fa00; +// VERA Palette address in VRAM $1FA00 - $1FBFF +// 256 entries of 2 bytes +// byte 0 bits 4-7: Green +// byte 0 bits 0-3: Blue +// byte 1 bits 0-3: Red +char const VERA_PALETTE_BANK = 0x1; +char* const VERA_PALETTE_PTR = (char*)0xFA00; +const unsigned long VERA_PALETTE = 0x1FA00; /// Sprite Attributes address in VERA VRAM $1FC00 - $1FFFF -const unsigned long VERA_SPRITE_ATTR = 0x1fc00; +const unsigned long VERA_SPRITE_ATTR = 0x1FC00; /// The VERA structure of a sprite (8 bytes) /// 128*8 bytes located at $1FC00-$1FFFF @@ -265,7 +256,37 @@ struct VERA_SPRITE { char CTRL2; }; -/// 4BPP sprite mode (add to VERA_SPRITE.ADDR to enable) -const unsigned int VERA_SPRITE_4BPP = 0x0000; -/// 8BPP sprite mode (add to VERA_SPRITE.ADDR to enable) -const unsigned int VERA_SPRITE_8BPP = 0x8000; +// xBPP sprite modes +#define VERA_SPRITE_4BPP 0x00 +#define VERA_SPRITE_8BPP 0x80 +#define VERA_SPRITE_MASKBPP 0x80 + +// Sprite flip +#define VERA_SPRITE_HFLIP 0x01 // Horizontal flip of sprite +#define VERA_SPRITE_VFLIP 0x02 // Vertical flip of sprite +#define VERA_SPRITE_NFLIP 0x00 // No flip of sprite + +// Sprite ZDepth +#define VERA_SPRITE_ZDEPTH_DISABLED 0x00 +#define VERA_SPRITE_ZDEPTH_BETWEEN_BACKGROUND_AND_LAYER0 0x04 +#define VERA_SPRITE_ZDEPTH_BETWEEN_LAYER0_AND_LAYER1 0x08 +#define VERA_SPRITE_ZDEPTH_IN_FRONT 0x0C +#define VERA_SPRITE_ZDEPTH_MASK 0x0C + +// Sprite width +#define VERA_SPRITE_WIDTH_8 0x00 +#define VERA_SPRITE_WIDTH_16 0x10 +#define VERA_SPRITE_WIDTH_32 0x20 +#define VERA_SPRITE_WIDTH_64 0x30 +#define VERA_SPRITE_WIDTH_MASK 0x30 + +// Sprite height +#define VERA_SPRITE_HEIGHT_8 0x00 +#define VERA_SPRITE_HEIGHT_16 0x40 +#define VERA_SPRITE_HEIGHT_32 0x80 +#define VERA_SPRITE_HEIGHT_64 0xC0 +#define VERA_SPRITE_HEIGHT_MASK 0xC0 + +char const VERA_SPRITE_PALETTE_OFFSET_MASK = 0x0F; + +char const VERA_SPRITE_COLLISION_MASK = 0xF0; diff --git a/src/main/kc/include/cx16-veramem.h b/src/main/kc/include/cx16-veramem.h new file mode 100644 index 000000000..438112433 --- /dev/null +++ b/src/main/kc/include/cx16-veramem.h @@ -0,0 +1,50 @@ +// Implements functions for static and dynamic memory management for VERA VRAM memory. + +const byte VERA_HEAP_STATIC = 0; +const byte VERA_HEAP_DYNAMIC = 1; + +struct vera_heap { + word address; + word size; + struct vera_heap *next; + struct vera_heap *prev; +}; + +struct vera_heap_segment { + dword size; + dword ceil_address; + dword next_address; + dword base_address; + struct vera_heap *head_block; + struct vera_heap *tail_block; + struct vera_heap *ceil_block; +}; + +word const VERA_HEAP_EMPTY = 0x0001; +word const VERA_HEAP_ADDRESS_16 = 0x0002; +word const VERA_HEAP_SIZE_16 = 0x0004; + +word const VERA_HEAP_SIZE_MASK = 0xFFE0; + +// byte vera_block_malloc(dword address, dword size); +// byte vera_block_free(byte block); + +dword vera_heap_segment_init( byte segmentid, dword base, dword size ); +dword vera_heap_segment_ceiling(byte segmentid); + +void vera_heap_base_address_set(struct vera_heap_segment *segment, dword base_address); +void vera_heap_ceil_address_set(struct vera_heap_segment *segment, dword ceil_address); +dword vera_heap_address(struct vera_heap_segment *segment, dword size); +dword vera_heap_block_address_get(struct vera_heap *block); +dword vera_heap_block_size_get(struct vera_heap *block); +word vera_heap_block_is_empty(struct vera_heap *block); +void vera_heap_block_address_set(struct vera_heap *block, dword *address); +void vera_heap_block_size_set(struct vera_heap *block, dword *size); +void vera_heap_block_empty_set(struct vera_heap *block, byte empty); +void vera_heap_ram_bank_set(byte ram_bank); + +struct vera_heap *vera_heap_block_find(struct vera_heap_segment *segment, struct vera_heap *block); +struct vera_heap *vera_heap_block_free_find(struct vera_heap_segment *segment, dword size); + +dword vera_heap_malloc(byte segmentid, word size); +dword vera_heap_free(byte segmentid, struct vera_heap *block); \ No newline at end of file diff --git a/src/main/kc/include/cx16.h b/src/main/kc/include/cx16.h index e5ff96098..e8ab9fc8c 100644 --- a/src/main/kc/include/cx16.h +++ b/src/main/kc/include/cx16.h @@ -1,39 +1,58 @@ -/// @file -/// Commander X16 -/// -/// https://www.commanderx16.com/forum/index.php?/about-faq/ -/// https://github.com/commanderx16/x16-docs/blob/master/Commander%20X16%20Programmer's%20Reference%20Guide.md +/** + * @file cx16.h + * @author Jesper Gravgaard / Sven Van de Velde + * @brief Contains functions to control the features of the Commander X16. + * Commander X16 Functions. + * https://www.commanderx16.com/forum/index.php?/about-faq/ + * https://github.com/commanderx16/x16-docs/blob/master/Commander%20X16%20Programmer's%20Reference%20Guide.md + * @version 0.2 + * @date 2022-01-29 + * + * @copyright Copyright (c) 2022 + * + */ + + + #ifndef __CX16__ #error "Target platform must be cx16" #endif -#include + +#include #include -/// The VIA#1: ROM/RAM Bank Control -/// Port A Bits 0-7 RAM bank -/// Port B Bits 0-2 ROM bank -/// Port B Bits 3-7 [TBD] -struct MOS6522_VIA * const VIA1 = (struct MOS6522_VIA *)0x9f60; -/// The VIA#2: Keyboard/Joy/Mouse -/// Port A Bit 0 KBD PS/2 DAT -/// Port A Bit 1 KBD PS/2 CLK -/// Port A Bit 2 [TBD] -/// Port A Bit 3 JOY1/2 LATCH -/// Port A Bit 4 JOY1 DATA -/// Port A Bit 5 JOY1/2 CLK -/// Port A Bit 6 JOY2 DATA -/// Port A Bit 7 [TBD] -/// Port B Bit 0 MOUSE PS/2 DAT -/// Port B Bit 1 MOUSE PS/2 CLK -/// Port B Bits 2-7 [TBD] -/// NOTE: The pin assignment of the NES/SNES controller is likely to change. -struct MOS6522_VIA * const VIA2 = (struct MOS6522_VIA *)0x9f70; +/** + * @brief The VIA#1: ROM/RAM Bank Control + * Port A Bits 0-7 RAM bank + * Port B Bits 0-2 ROM bank + * Port B Bits 3-7 [TBD] * * * * * + */ +struct MOS6522_VIA * const VIA1 = (struct MOS6522_VIA*)0x9f60; + +/** + * @brief The VIA#2: Peripherals control + * Port A Bit 0 KBD PS/2 DAT + * Port A Bit 1 KBD PS/2 CLK + * Port A Bit 2 [TBD] + * Port A Bit 3 JOY1/2 LATCH + * Port A Bit 4 JOY1 DATA + * Port A Bit 5 JOY1/2 CLK + * Port A Bit 6 JOY2 DATA + * Port A Bit 7 [TBD] + * Port B Bit 0 MOUSE PS/2 DAT + * Port B Bit 1 MOUSE PS/2 CLK + * Port B Bits 2-7 [TBD] + * kNOTE: The pin assignment of the NES/SNES controller is likely to change. + */ +struct MOS6522_VIA * const VIA2 = (struct MOS6522_VIA*)0x9f70; + +__export volatile __address(0x00) unsigned char BRAM = 0; +__export volatile __address(0x01) unsigned char BROM = 4; /// Interrupt Vectors /// https://github.com/commanderx16/x16-emulator/wiki/(ASM-Programming)-Interrupts-and-interrupt-handling -/// Pointer to interrupt function -typedef void (*IRQ_TYPE)(void); +// The vector used when the KERNAL serves IRQ interrupts /// $FFFE (ROM) Universal interrupt vector - The vector used when the HARDWARE serves IRQ interrupts IRQ_TYPE* const HARDWARE_IRQ = (IRQ_TYPE*)0xfffe; @@ -42,74 +61,53 @@ IRQ_TYPE* const KERNEL_IRQ = (IRQ_TYPE*)0x0314; /// $0316 (RAM) BRK vector - The vector used when the KERNAL serves IRQ caused by a BRK IRQ_TYPE* const KERNEL_BRK = (IRQ_TYPE*)0x0316; +void cx16_kernal_irq(IRQ_TYPE irq); + +byte const CX16_ROM_KERNAL = 0; +byte const CX16_ROM_BASIC = 4; /// VRAM Address of the default screen -char * const DEFAULT_SCREEN = (char*)0x0000; +vram_offset_t DEFAULT_SCREEN = (vram_offset_t)0xB000; /// VRAM Bank (0/1) of the default screen char * const DEFAULT_SCREEN_VBANK = (char*)0; -/// Put a single byte into VRAM. -/// Uses VERA DATA0 -/// @param vbank Which 64K VRAM bank to put data into (0/1) -/// @param vaddr The address in VRAM -/// @param data The data to put into VRAM -void vpoke(char vbank, char* vaddr, char data); -/// Read a single byte from VRAM. -/// Uses VERA DATA0 -/// @param bank Which 64K VRAM bank to put data into (0/1) -/// @param addr The address in VRAM -/// @param returns The data to put into VRAM -char vpeek(char vbank, char* vaddr); +/// The colors of the C64 +const char BLACK = 0x0; +const char WHITE = 0x1; +const char RED = 0x2; +const char CYAN = 0x3; +const char PURPLE = 0x4; +const char GREEN = 0x5; +const char BLUE = 0x6; +const char YELLOW = 0x7; +const char ORANGE = 0x8; +const char BROWN = 0x9; +const char PINK = 0xa; +const char DARK_GREY= 0xb; +const char GREY = 0xc; +const char LIGHT_GREEN = 0xd; +const char LIGHT_BLUE = 0xe; +const char LIGHT_GREY = 0xf; -/// Copy block of memory (from RAM to VRAM) -/// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination in VRAM. -/// @param vbank Which 64K VRAM bank to put data into (0/1) -/// @param vdest The destination address in VRAM -/// @param src The source address in RAM -/// @param num The number of bytes to copy -void memcpy_to_vram(char vbank, void* vdest, void* src, unsigned int num ); -/// Copy block of memory (from banked RAM to VRAM) -/// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination in VRAM. -/// @param vdest absolute address in VRAM -/// @param src absolute address in the banked RAM of the CX16. -/// @param num dword of the number of bytes to copy -/// Note: This function can switch RAM bank during copying to copy data from multiple RAM banks. -void memcpy_bank_to_vram(unsigned long vdest, unsigned long src, unsigned long num ); +inline void bank_push_set_bram(bram_bank_t bank); +inline void bank_push_bram(); +inline void bank_set_bram(bram_bank_t bank); +inline void bank_pull_bram(); +inline bram_bank_t bank_get_bram(); +inline bram_ptr_t bank_bram_ptr_inc(char bank, char* sptr, unsigned int inc); +void bank_set_brom(brom_bank_t bank); +inline brom_bank_t bank_get_brom(); -/// Copy block of memory (from VRAM to VRAM) -/// Copies the values from the location pointed by src to the location pointed by dest. -/// The method uses the VERA access ports 0 and 1 to copy data from and to in VRAM. -/// @param src_bank 64K VRAM bank number to copy from (0/1). -/// @param src pointer to the location to copy from. Note that the address is a 16 bit value! -/// @param src_increment the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -/// @param dest_bank 64K VRAM bank number to copy to (0/1). -/// @param dest pointer to the location to copy to. Note that the address is a 16 bit value! -/// @param dest_increment the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -/// @param num The number of bytes to copy -void memcpy_in_vram(char dest_bank, void *dest, char dest_increment, char src_bank, void *src, char src_increment, unsigned int num ); +void vpoke(vram_bank_t vbank, vram_offset_t vaddr, char data); +char vpeek(vram_bank_t vbank, vram_offset_t vaddr); -/// Set block of memory in VRAM to a value . -/// Sets num bytes to a value to the memory block pointed to by destination in VRAM. -/// @param vbank Which 64K VRAM bank to put data into (0/1) -/// @param vdest The destination address in VRAM -/// @param data The value to set the vram with. -/// @param num The number of bytes to set -void memset_vram(char vbank, void* vdest, char data, unsigned long num ); - -/// Set block of memory in VRAM to a word value . -/// Sets num words to a value to the memory block pointed to by destination in VRAM. -/// @param vbank Which 64K VRAM bank to put data into (0/1) -/// @param vdest The destination address in VRAM -/// @param data The value to set the vram with. -/// @param num The number of bytes to set -void memset_vram_word(char vbank, void* vdest, unsigned int data, unsigned long num ); - -/// Load a file into one of the 256 8KB RAM banks. -/// @param device The device to load from -/// @param filename The file name -/// @param address: The absolute address in banked memory to load the file too -/// @return 0xff: Success, other: Kernal Error Code (https://commodore.ca/manuals/pdfs/commodore_error_messages.pdf) -/// Note: This function only works if the entire file fits within the selected bank. The function cannot load to multiple banks. -char load_to_bank( char device, char* filename, unsigned long address); \ No newline at end of file +void memcpy_vram_ram(vram_bank_t dbank_vram, vram_offset_t doffset_vram, ram_ptr_t sptr_ram, unsigned int num); +void memcpy_ram_vram(ram_ptr_t dptr, vram_bank_t sbank_vram, vram_offset_t soffset_vram, unsigned int num); +void memcpy_vram_bram(vram_bank_t dbank_vram, vram_offset_t doffset_vram, bram_bank_t sbank_bram, bram_ptr_t sptr_bram, unsigned int num); +void memcpy8_vram_vram(vram_bank_t dbank_vram, vram_offset_t doffset_vram, vram_bank_t sbank_vram, vram_offset_t soffset_vram, unsigned char num8); +inline void memcpy_vram_bram_fast(vram_bank_t dbank_vram, vram_offset_t doffset_vram, bram_bank_t sbank_bram, bram_ptr_t sptr_bram, unsigned char num); +void memcpy_vram_vram(vram_bank_t dbank_vram, vram_offset_t doffset_vram, vram_bank_t sbank_vram, vram_offset_t soffset_vram, unsigned int num16); +void memcpy_vram_vram_inc(vram_bank_t dbank_vram, vram_offset_t doffset_vram, unsigned char dinc, vram_bank_t sbank_vram, vram_offset_t soffset_vram, unsigned char sinc, unsigned int num ); +void memset_vram(vram_bank_t dbank_vram, vram_offset_t doffset_vram, unsigned char data, unsigned int num); diff --git a/src/main/kc/include/errno.h b/src/main/kc/include/errno.h new file mode 100644 index 000000000..939f5a0fa --- /dev/null +++ b/src/main/kc/include/errno.h @@ -0,0 +1,17 @@ +/** + * @file errno.h + * @author Sven Van de Velde (sven.van.de.velde@telenet.be) + * @brief Contains the POSIX implementation of errno, which contains the last error detected. + * @version 0.1 + * @date 2023-03-18 + * + * @copyright Copyright (c) 2023 + * + */ + +/// @brief We POSIX standard specifies errno to be an int. We refer to it as part of the header file. +/// However, for practical purposes we don't keep errno but we keep a char array containing the last meaningful message. +/// Having the translate the error from errno would be too much memory consuming. +extern char __errno_error[32]; + +extern int __errno; \ No newline at end of file diff --git a/src/main/kc/include/kernal.h b/src/main/kc/include/kernal.h new file mode 100644 index 000000000..80934be8a --- /dev/null +++ b/src/main/kc/include/kernal.h @@ -0,0 +1,47 @@ +/** + * @file kernal.h + * @author your name (you@domain.com) + * @brief Most common CBM Kernal calls with it's dialects in the different CBM kernal family platforms. + * Please refer to http://sta.c64.org/cbm64krnfunc.html for the list of standard CBM C64 kernal functions. + * + * @version 1.0 + * @date 2023-03-22 + * + * @copyright Copyright (c) 2023 + * + */ + +const unsigned int CBM_SETNAM = 0xFFBD; ///< Set the name of a file. +const unsigned int CBM_SETLFS = 0xFFBA; ///< Set the logical file. +const unsigned int CBM_OPEN = 0xFFC0; ///< Open the file for the current logical file. +const unsigned int CBM_CHKIN = 0xFFC6; ///< Set the logical channel for input. +const unsigned int CBM_READST = 0xFFB7; ///< Check I/O errors. +const unsigned int CBM_CHRIN = 0xFFCF; ///< Read a character from the current channel for input. +const unsigned int CBM_GETIN = 0xFFE4; ///< Scan a character from the keyboard. +const unsigned int CBM_CLOSE = 0xFFC3; ///< Close a logical file. +const unsigned int CBM_CLRCHN = 0xFFCC; ///< Close all logical files. +const unsigned int CBM_LOAD = 0xFFD5; ///< Load a logical file. +const unsigned int CBM_PLOT = 0xFFF0; ///< Set or get current cursor location. +const unsigned int CBM_CHROUT = 0xFFD2; ///< Output a character. + + +/* inline */ void cbm_k_setlfs(char channel, char device, char command); +/* inline */ void cbm_k_setnam(char* filename); +/* inline */ void cbm_k_open(); +/* inline */ void cbm_k_close(char channel); +/* inline */ unsigned char cbm_k_chkin(char channel); +/* inline */ unsigned char cbm_k_chrin(); +/* inline */ void cbm_k_clrchn(); +/* inline */ unsigned char cbm_k_getin(); +/* inline */ unsigned char cbm_k_readst(); +/* inline */ unsigned char cbm_k_load(char* address, char verify); +/* inline */ unsigned int cbm_k_plot_get(); +/* inline */ void cbm_k_plot_set(unsigned char x, unsigned char y); +/* inline */ void cbm_k_chrout(char c); + + + + +#if defined(__CX16__) +#include +#endif diff --git a/src/main/kc/include/pet-kernal.h b/src/main/kc/include/pet-kernal.h new file mode 100644 index 000000000..03a110c2e --- /dev/null +++ b/src/main/kc/include/pet-kernal.h @@ -0,0 +1,10 @@ +/** + * @file pet-kernal.h + * @author your name (you@domain.com) + * @brief + * @version 0.1 + * @date 2022-12-13 + * + * @copyright Copyright (c) 2022 + * + */ \ No newline at end of file diff --git a/src/main/kc/include/pet.h b/src/main/kc/include/pet.h new file mode 100644 index 000000000..f096c4fdd --- /dev/null +++ b/src/main/kc/include/pet.h @@ -0,0 +1,32 @@ +/// @file +/// Commodore 64 Registers and Constants +#ifndef __PET8032__ +#error "Target platform must be PET" +#endif +#include +#include +#include + + +/// Default address of screen character matrix +char * const DEFAULT_SCREEN = (char*)0x8000; +/// Default address of the chargen font (upper case) +char * const DEFAULT_FONT_UPPER = (char*)0x1000; +/// Default address of the chargen font (mixed case) +char * const DEFAULT_FONT_MIXED = (char*)0x1800; + +/// Pointer to interrupt function +typedef void (*IRQ_TYPE)(void); + +/// The vector used when the KERNAL serves IRQ interrupts +IRQ_TYPE * const KERNEL_IRQ = (IRQ_TYPE*)0x0314; +/// The vector used when the KERNAL serves NMI interrupts +IRQ_TYPE * const KERNEL_NMI = (IRQ_TYPE*)0x0318; +/// The vector used when the HARDWARE serves IRQ interrupts +IRQ_TYPE * const HARDWARE_IRQ = (IRQ_TYPE*)0xfffe; + +/// The colors of the C64 +const char BLACK = 0x0; +const char WHITE = 0x1; + + diff --git a/src/main/kc/include/stdio.h b/src/main/kc/include/stdio.h index bf0e98238..dc284b7cb 100644 --- a/src/main/kc/include/stdio.h +++ b/src/main/kc/include/stdio.h @@ -2,5 +2,37 @@ /// Functions for performing input and output. #include +#include #include -#include \ No newline at end of file +#include + +#if defined(__CX16__) // For the moment only supported for the CX16 ... + + #ifndef __STDIO_FILELEN + #define __STDIO_FILELEN 32 + #endif + + #ifndef __STDIO_ERRORLEN + #define __STDIO_ERRORLEN 32 + #endif + + #ifndef __STDIO_FILECOUNT + #define __STDIO_FILECOUNT 4 + #endif + + typedef struct { + char filename[__STDIO_FILECOUNT*__STDIO_FILELEN]; + char channel[__STDIO_FILECOUNT]; + char device[__STDIO_FILECOUNT]; + char secondary[__STDIO_FILECOUNT]; + char status[__STDIO_FILECOUNT]; + } FILE; + + + + FILE *fopen(const char *path, const char *mode); + int fclose(FILE *stream); + unsigned int fgets(char *ptr, unsigned int size, FILE *stream); + int ferror(FILE *stream); + void perror(char* prefix); +#endif \ No newline at end of file diff --git a/src/main/kc/include/string.h b/src/main/kc/include/string.h index 8cd076d1f..cb78cc204 100644 --- a/src/main/kc/include/string.h +++ b/src/main/kc/include/string.h @@ -3,10 +3,12 @@ /// /// Functions to manipulate C strings and arrays. #include +#include /// Copy block of memory (forwards) /// Copies the values of num chars from the location pointed to by source directly to the memory block pointed to by destination. void* memcpy( void* destination, void* source, size_t num ); +char* memcpy_fast(char* destination, char* source, unsigned char num ); /// Move block of memory /// Copies the values of num chars from the location pointed by source to the memory block pointed by destination. Copying takes place as if an intermediate buffer were used, allowing the destination and source to overlap. @@ -14,6 +16,7 @@ void* memmove( void* destination, void* source, size_t num ); /// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. void *memset(void *str, char c, size_t num); +char* memset_fast(char* str, char c, unsigned char num); /// Compares the first n bytes of memory area str1 and memory area str2. /// @param str1 This is the pointer to a block of memory. @@ -27,6 +30,9 @@ int memcmp(const void *str1, const void *str2, size_t n); /// Copies the C string pointed by source into the array pointed by destination, including the terminating null character (and stopping at that point). char* strcpy( char* destination, char* source ); +/// Concatenates the C string pointed by source into the array pointed by destination, including the terminating null character (and stopping at that point). +char* strcat( char* destination, char* source ); + /// Copies up to n characters from the string pointed to, by src to dest. /// In a case where the length of src is less than that of n, the remainder of dest will be padded with null bytes. /// @param dst − This is the pointer to the destination array where the content is to be copied. @@ -60,4 +66,18 @@ int strcmp(const char *str1, const char *str2); /// @return if Return value < 0 then it indicates str1 is less than str2. /// if Return value > 0 then it indicates str2 is less than str1. /// if Return value = 0 then it indicates str1 is equal to str2. -int strncmp(const char *str1, const char *str2, size_t n); \ No newline at end of file +int strncmp(const char *str1, const char *str2, size_t n); + + +/** + * @brief The string-error function, strerror, + * is a C/C++ function which translates an error code, + * usually stored in the global variable errno, + * to a human-readable error message. + * + * However, the POSIX standard is not followed in kickc. strerror accepts the errno parameter, but it is not used. + * Instead strerror returns the last known error. + * This is done for performance reasons and pragmatism, not to make error handling too memory intensive. + * + */ +char* strerror(int errnum); diff --git a/src/main/kc/lib/conio-c128.c b/src/main/kc/lib/conio-c128.c new file mode 100644 index 000000000..be02b2733 --- /dev/null +++ b/src/main/kc/lib/conio-c128.c @@ -0,0 +1,63 @@ +// Commodore 64 conio.h implementation +#include +#include + +// The screen width +#define CONIO_WIDTH 40 +// The screen height +#define CONIO_HEIGHT 25 +// The text screen address +#ifndef CONIO_SCREEN_TEXT +#define CONIO_SCREEN_TEXT DEFAULT_SCREEN +#endif +// The color screen address +#ifndef CONIO_SCREEN_COLORS +#define CONIO_SCREEN_COLORS COLORRAM +#endif +// The default text color +#ifndef CONIO_TEXTCOLOR_DEFAULT +#define CONIO_TEXTCOLOR_DEFAULT LIGHT_BLUE +#endif + +// Use the shared CMB flat memory implementation +#include "conio-cbm-shared.c" + +// Initializer for conio.h on C128 +#pragma constructor_for(conio_c128_init, cputc, clrscr, cscroll) + +// Set initial cursor position +void conio_c128_init() { + // Position cursor at current line + char * const BASIC_CURSOR_LINE = (char*)0xD6; + char line = *BASIC_CURSOR_LINE; + if(line>=CONIO_HEIGHT) line=CONIO_HEIGHT-1; + gotoxy(0, line); +} + +// Return true if there's a key waiting, return false if not +unsigned char kbhit (void) { + // CIA#1 Port A: keyboard matrix columns and joystick #2 + char* const CIA1_PORT_A = (char*)0xdc00; + // CIA#1 Port B: keyboard matrix rows and joystick #1. + char* const CIA1_PORT_B = (char*)0xdc01; + *CIA1_PORT_A = 0; + return ~*CIA1_PORT_B; +} + +// Set the color for the background. The old color setting is returned. +unsigned char bgcolor(unsigned char color) { + // The background color register address + char * const CONIO_BGCOLOR = (char*)0xd021; + char old = *CONIO_BGCOLOR; + *CONIO_BGCOLOR = color; + return old; +} + +// Set the color for the border. The old color setting is returned. +unsigned char bordercolor(unsigned char color) { + // The border color register address + char * const CONIO_BORDERCOLOR = (char*)0xd020; + char old = *CONIO_BORDERCOLOR; + *CONIO_BORDERCOLOR = color; + return old; +} diff --git a/src/main/kc/lib/conio-cbm-shared.c b/src/main/kc/lib/conio-cbm-shared.c index 9b74bd8b3..05029fb5d 100644 --- a/src/main/kc/lib/conio-cbm-shared.c +++ b/src/main/kc/lib/conio-cbm-shared.c @@ -17,8 +17,12 @@ __ma char conio_cursor_x = 0; __ma char conio_cursor_y = 0; // The current text cursor line start __ma char *conio_line_text = CONIO_SCREEN_TEXT; + +#ifndef __PET8032__ // The current color cursor line start __ma char *conio_line_color = CONIO_SCREEN_COLORS; +#endif + // The current text color __ma char conio_textcolor = CONIO_TEXTCOLOR_DEFAULT; // Is a cursor whown when waiting for input (0: no, other: yes) @@ -30,19 +34,27 @@ __ma char conio_scroll_enable = 1; // clears the screen and moves the cursor to the upper left-hand corner of the screen. void clrscr(void) { char* line_text = CONIO_SCREEN_TEXT; + #ifndef __PET8032__ char* line_cols = CONIO_SCREEN_COLORS; + #endif for( char l=0;l -#include -#include - -// The screen width -#define CONIO_WIDTH conio_screen_width -// The screen height -#define CONIO_HEIGHT conio_screen_height -// The text screen base address, which is a 16:0 bit value in VERA VRAM. -// That is 128KB addressable space, thus 17 bits in total. -// CONIO_SCREEN_TEXT contains bits 15:0 of the address. -// CONIO_SCREEN_BANK contains bit 16, the the 64K memory bank in VERA VRAM (the upper 17th bit). -// !!! note that these values are not const for the cx16! -// This conio implements the two layers of VERA, which can be layer 0 or layer 1. -// Configuring conio to output to a different layer, will change these fields to the address base -// configured using VERA_L0_MAPBASE = 0x9f2e or VERA_L1_MAPBASE = 0x9f35. -// Using the function setscreenlayer(layer) will re-calculate using CONIO_SCREEN_TEXT and CONIO_SCREEN_BASE -// based on the values of VERA_L0_MAPBASE or VERA_L1_MAPBASE, mapping the base address of the selected layer. -// The function setscreenlayermapbase(layer,mapbase) allows to configure bit 16:9 of the -// mapbase address of the time map in VRAM of the selected layer VERA_L0_MAPBASE or VERA_L1_MAPBASE. -char* CONIO_SCREEN_TEXT = DEFAULT_SCREEN; -char CONIO_SCREEN_BANK = 0; // Default screen of the CX16 emulator uses memory bank 0 for text. -// The default text color -#ifndef CONIO_TEXTCOLOR_DEFAULT -#define CONIO_TEXTCOLOR_DEFAULT WHITE -#endif -// The default back color -#ifndef CONIO_BACKCOLOR_DEFAULT -#define CONIO_BACKCOLOR_DEFAULT BLUE -#endif - - -// This requires the following constants to be defined -// - CONIO_WIDTH - The screen width -// - CONIO_HEIGHT - The screen height -// - CONIO_SCREEN_TEXT - The text screen address -// - CONIO_SCREEN_COLORS - The color screen address -// - CONIO_TEXTCOLOR_DEFAULT - The default text color - -#include - -// The number of bytes on the screen -#define CONIO_BYTES CONIO_HEIGHT*CONIO_WIDTH - -// The current cursor x-position -unsigned byte conio_cursor_x[2] = {0,0}; -// The current cursor y-position -unsigned byte conio_cursor_y[2] = {0,0}; -// The current text cursor line start -unsigned word conio_line_text[2] = {0x0000,0x0000}; -// Is a cursor whown when waiting for input (0: no, other: yes) -__ma unsigned byte conio_display_cursor = 0; -// Is scrolling enabled when outputting beyond the end of the screen (1: yes, 0: no). -// If disabled the cursor just moves back to (0,0) instead -unsigned byte conio_scroll_enable[2] = {1,1}; -// Variable holding the screen width; -__ma unsigned byte conio_screen_width = 0; -// Variable holding the screen height; -__ma unsigned byte conio_screen_height = 0; -// Variable holding the screen layer on the VERA card with which conio interacts; -__ma unsigned byte conio_screen_layer = 1; - -// Variables holding the current map width and map height of the layer. -__ma word conio_width = 0; -__ma word conio_height = 0; -__ma byte conio_rowshift = 0; -__ma word conio_rowskip = 0; - -// Initializer for conio.h on X16 Commander. -#pragma constructor_for(conio_x16_init, cputc, clrscr, cscroll) - -// Set initial cursor position -void conio_x16_init() { - // Position cursor at current line - char * const BASIC_CURSOR_LINE = (char*)0xD6; - char line = *BASIC_CURSOR_LINE; - vera_layer_mode_text(1,(dword)0x00000,(dword)0x0F800,128,64,8,8,16); - screensize(&conio_screen_width, &conio_screen_height); - screenlayer(1); - vera_layer_set_textcolor(1, WHITE); - vera_layer_set_backcolor(1, BLUE); - vera_layer_set_mapbase(0,0x20); - vera_layer_set_mapbase(1,0x00); - if(line>=CONIO_HEIGHT) line=CONIO_HEIGHT-1; - gotoxy(0, line); -} - -// Return true if there's a key waiting, return false if not -unsigned char kbhit(void) { - - char ch = 0; - char* const chptr = &ch; - - char* const IN_DEV = (char*)$028A; // Current input device number - char* const GETIN = (char*)$FFE4; // CBM GETIN API - - kickasm(uses chptr, uses IN_DEV, uses GETIN) {{ - - jsr _kbhit - bne L3 - - jmp continue1 - - .var via1 = $9f60 //VIA#1 - .var d1pra = via1+1 - - _kbhit: - ldy d1pra // The count of keys pressed is stored in RAM bank 0. - stz d1pra // Set d1pra to zero to access RAM bank 0. - lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). - sty d1pra // Set d1pra to previous value. - rts - - L3: - ldy IN_DEV // Save current input device - stz IN_DEV // Keyboard - phy - jsr GETIN // Read char, and return in .A - ply - sta chptr // Store the character read in ch - sty IN_DEV // Restore input device - ldx #>$0000 - rts - - continue1: - nop - }} - - return ch; -} - -// clears the screen and moves the cursor to the upper left-hand corner of the screen. -void clrscr(void) { - char* line_text = CONIO_SCREEN_TEXT; - char color = ( vera_layer_get_backcolor(conio_screen_layer) << 4 ) | vera_layer_get_textcolor(conio_screen_layer); - for( char l=0;lCONIO_HEIGHT) y = 0; - if(x>=CONIO_WIDTH) x = 0; - conio_cursor_x[conio_screen_layer] = x; - conio_cursor_y[conio_screen_layer] = y; - unsigned int line_offset = (unsigned int)y << conio_rowshift; - conio_line_text[conio_screen_layer] = line_offset; -} - -// Return the current screen size. -void screensize(unsigned byte* x, unsigned byte* y) { - // VERA returns in VERA_DC_HSCALE the value of 128 when 80 columns is used in text mode, - // and the value of 64 when 40 columns is used in text mode. - // Basically, 40 columns mode in the VERA is a double scan mode. - // Same for the VERA_DC_VSCALE mode, but then the subdivision is 60 or 30 rows. - // I still need to test the other modes, but this will suffice for now for the pure text modes. - char hscale = (*VERA_DC_HSCALE) >> 7; - *x = 40 << hscale; - char vscale = (*VERA_DC_VSCALE) >> 7; - *y = 30 << vscale; - //printf("%u, %u\n", *x, *y); -} - -// Return the current screen size X width. -inline unsigned byte screensizex() { - return conio_screen_width; -} - -// Return the current screen size Y height. -inline unsigned byte screensizey() { - return conio_screen_height; -} - -// Return the X position of the cursor -inline unsigned byte wherex(void) { - return conio_cursor_x[conio_screen_layer]; -} - -// Return the Y position of the cursor -inline unsigned byte wherey(void) { - return conio_cursor_y[conio_screen_layer]; -} - -// Output one character at the current cursor position -// Moves the cursor forward. Scrolls the entire screen if needed -void cputc(char c) { - char color = vera_layer_get_color( conio_screen_layer); - char* conio_addr = CONIO_SCREEN_TEXT + conio_line_text[conio_screen_layer]; - - conio_addr += conio_cursor_x[conio_screen_layer] << 1; - if(c=='\n') { - cputln(); - } else { - // Select DATA0 - *VERA_CTRL &= ~VERA_ADDRSEL; - // Set address - *VERA_ADDRX_L = BYTE0(conio_addr); - *VERA_ADDRX_M = BYTE1(conio_addr); - *VERA_ADDRX_H = CONIO_SCREEN_BANK | VERA_INC_1; - *VERA_DATA0 = c; - *VERA_DATA0 = color; - - conio_cursor_x[conio_screen_layer]++; - byte scroll_enable = conio_scroll_enable[conio_screen_layer]; - if(scroll_enable) { - if(conio_cursor_x[conio_screen_layer] == CONIO_WIDTH) - cputln(); - } else { - if((unsigned int)conio_cursor_x[conio_screen_layer] == conio_width) - cputln(); - } - } -} - -// Print a newline -void cputln() { - // TODO: This needs to be optimized! other variations don't compile because of sections not available! - word temp = conio_line_text[conio_screen_layer]; - temp += conio_rowskip; - conio_line_text[conio_screen_layer] = temp; - conio_cursor_x[conio_screen_layer] = 0; - conio_cursor_y[conio_screen_layer]++; - cscroll(); -} - -void clearline() { - // Select DATA0 - *VERA_CTRL &= ~VERA_ADDRSEL; - // Set address - byte* addr = CONIO_SCREEN_TEXT + conio_line_text[conio_screen_layer]; - *VERA_ADDRX_L = BYTE0(addr); - *VERA_ADDRX_M = BYTE1(addr); - *VERA_ADDRX_H = VERA_INC_1; - char color = vera_layer_get_color( conio_screen_layer); - for( unsigned int c=0;c0; i--) { - unsigned int line = (conio_cursor_y[conio_screen_layer] + i - 1) << conio_rowshift; - unsigned char* start = CONIO_SCREEN_TEXT + line; - memcpy_in_vram(0, start+conio_rowskip, VERA_INC_1, 0, start, VERA_INC_1, width); - } - clearline(); -} - -// Insert a new line, and scroll the upper part of the screen up. -void insertup() { - unsigned byte cy = conio_cursor_y[conio_screen_layer]; - unsigned byte width = CONIO_WIDTH * 2; - for(unsigned byte i=1; i<=cy; i++) { - unsigned int line = (i-1) << conio_rowshift; - unsigned char* start = CONIO_SCREEN_TEXT + line; - memcpy_in_vram(0, start, VERA_INC_1, 0, start+conio_rowskip, VERA_INC_1, width); - } - clearline(); -} - -// Scroll the entire screen if the cursor is beyond the last line -void cscroll() { - if(conio_cursor_y[conio_screen_layer]>=CONIO_HEIGHT) { - if(conio_scroll_enable[conio_screen_layer]) { - insertup(); - gotoxy( 0, CONIO_HEIGHT-1); - } else { - if(conio_cursor_y[conio_screen_layer]>=conio_height) { - //gotoxy(0,0); - } - } - } -} - - -// Output a NUL-terminated string at the current cursor position -void cputs(const char* s) { - char c; - while(c=*s++) - cputc(c); -} - -// Move cursor and output one character -// Same as "gotoxy (x, y); cputc (c);" -void cputcxy(unsigned byte x, unsigned byte y, char c) { - gotoxy(x, y); - cputc(c); -} - -// Move cursor and output a NUL-terminated string -// Same as "gotoxy (x, y); puts (s);" -void cputsxy(unsigned byte x, unsigned byte y, const char* s) { - gotoxy(x, y); - cputs(s); -} - -// If onoff is 1, a cursor is displayed when waiting for keyboard input. -// If onoff is 0, the cursor is hidden when waiting for keyboard input. -// The function returns the old cursor setting. -unsigned byte cursor(unsigned byte onoff) { - char old = conio_display_cursor; - conio_display_cursor = onoff; - return old; -} - -// If onoff is 1, scrolling is enabled when outputting past the end of the screen -// If onoff is 0, scrolling is disabled and the cursor instead moves to (0,0) -// The function returns the old scroll setting. -unsigned byte scroll(unsigned byte onoff) { - char old = conio_scroll_enable[conio_screen_layer]; - conio_scroll_enable[conio_screen_layer] = onoff; - return old; -} - -// --- Defined in cx16.c and cx16-vera.h --- - -// --- layer management in VERA --- - -// Set the layer with which the conio will interact. -// - layer: value of 0 or 1. -void screenlayer(unsigned byte layer) { - conio_screen_layer = layer; - CONIO_SCREEN_BANK = vera_layer_get_mapbase_bank(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); - conio_height = vera_layer_get_height(conio_screen_layer); -} - - -// Set the front color for text output. The old front text color setting is returned. -// - color: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -inline char textcolor(char color) { - return vera_layer_set_textcolor(conio_screen_layer, color); -} - -// Set the back color for text output. The old back text color setting is returned. -// - color: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -inline char bgcolor(char color) { - return vera_layer_set_backcolor(conio_screen_layer, color); -} - -// Set the color for the border. The old color setting is returned. -char bordercolor(unsigned char color) { - // The border color register address - char old = *VERA_DC_BORDER; - *VERA_DC_BORDER = color; - return old; -} - diff --git a/src/main/kc/lib/conio.c b/src/main/kc/lib/conio.c index c0e3c8823..fc3e7fe70 100644 --- a/src/main/kc/lib/conio.c +++ b/src/main/kc/lib/conio.c @@ -7,6 +7,8 @@ #if defined(__C64__) #include "conio-c64.c" +#elif defined(__C128__) +#include "conio-c128.c" #elif defined(__PLUS4__) #include "conio-plus4.c" #elif defined(__VIC20__) @@ -18,7 +20,9 @@ #elif defined(__ATARIXL__) #include "conio-atarixl.c" #elif defined(__CX16__) -#include "conio-cx16.c" +#include "cx16-conio.c" +#elif defined(__PET8032__) +#include "pet-conio.c" #else #error "Target platform does not support conio.h" #endif diff --git a/src/main/kc/lib/cx16-bitmap.c b/src/main/kc/lib/cx16-bitmap.c index 475f5ae42..d7750bc91 100644 --- a/src/main/kc/lib/cx16-bitmap.c +++ b/src/main/kc/lib/cx16-bitmap.c @@ -1,120 +1,159 @@ // Plot and line drawing routines for HIRES bitmaps // Currently it can only plot on the first 256 x-positions. +#include #include #include #include -// Tables for the plotter - initialized by calling bitmap_draw_init(); -const word __bitmap_plot_x[640]; -const dword __bitmap_plot_y[480]; -const byte __bitmap_plot_bitmask[640]; -const byte __bitmap_plot_bitshift[640]; +typedef struct { + // Tables for the plotter - initialized by calling bitmap_draw_init(); + unsigned int plot_x[640]; + unsigned long plot_y[480]; + unsigned char plot_bitmask[640]; + unsigned char plot_bitshift[640]; -__ma dword __bitmap_address = 0; -__ma byte __bitmap_layer = 0; -__ma byte __bitmap_hscale = 0; -__ma byte __bitmap_vscale = 0; -__ma byte __bitmap_color_depth = 0; + unsigned long address; + unsigned char layer; + unsigned char hscale; + unsigned char vscale; + unsigned char color_depth; +} bitmap_t; -word hdeltas[16] = { +bitmap_t __bitmap; + + +unsigned int hdeltas[16] = { 0, 80, 40, 20, // 1 BPP 0, 160, 80, 40, // 2 BPP 0, 320, 160, 80, // 4 BPP 0, 640, 320, 160 // 8 BPP }; -const word vdeltas[4] = {0, 480, 240, 160}; -const byte bitmasks[5] = {$80, $C0, $F0, $FF}; -const signed byte bitshifts[5] = {7, 6, 4, 0}; +const unsigned int vdeltas[4] = {0, 480, 240, 160}; +const unsigned char bitmasks[5] = {0x80, 0xC0, 0xF0, 0xFF}; +const signed char bitshifts[5] = {7, 6, 4, 0}; + + +unsigned char bitmap_hscale() +{ + unsigned char hscale[4] = {0,128,64,32}; + unsigned char scale = 0; + for(char s=1;s<=3;s++) { + if(*VERA_DC_HSCALE==hscale[s]) { + scale = s; + break; + } + } + return scale; +} + +unsigned char bitmap_vscale() +{ + unsigned char vscale[4] = {0,128,64,32}; + unsigned char scale = 0; + for(char s=1;s<=3;s++) { + if(*VERA_DC_VSCALE==vscale[s]) { + scale = s; + break; + } + } + return scale; +} // Initialize the bitmap plotter tables for a specific bitmap -void bitmap_init(byte layer, dword address) { - __bitmap_address = address; - __bitmap_layer = layer; - __bitmap_color_depth = vera_layer_get_color_depth(__bitmap_layer); - __bitmap_hscale = vera_display_get_hscale(); // Returns 1 when 640 and 2 when 320. - __bitmap_vscale = vera_display_get_vscale(); // Returns 1 when 480 and 2 when 240. +void bitmap_init(unsigned char layer, unsigned char bank, unsigned int offset) +{ + __bitmap.address = MAKELONG(offset, bank); + __bitmap.layer = layer; + if(layer) { + __bitmap.color_depth = (*VERA_L1_CONFIG & VERA_LAYER_COLOR_DEPTH_MASK); + } else { + __bitmap.color_depth = (*VERA_L0_CONFIG & VERA_LAYER_COLOR_DEPTH_MASK); + } + __bitmap.hscale = bitmap_hscale(); // Returns 1 when 640 and 2 when 320, 3 when 160. + __bitmap.vscale = bitmap_vscale(); // Returns 1 when 480 and 2 when 240, 3 when 160. - byte bitmask = bitmasks[__bitmap_color_depth]; - signed byte bitshift = bitshifts[__bitmap_color_depth]; + unsigned char bitmask = bitmasks[__bitmap.color_depth]; + signed char bitshift = bitshifts[__bitmap.color_depth]; - for(word x : 0..639) { + for(unsigned int x=0; x<630; x++) { // 1 BPP - if(__bitmap_color_depth==0) { - __bitmap_plot_x[x] = (x >> 3); - __bitmap_plot_bitmask[x] = bitmask; - __bitmap_plot_bitshift[x] = (byte)bitshift; + if(__bitmap.color_depth==0) { + __bitmap.plot_x[x] = (x >> 3); + __bitmap.plot_bitmask[x] = bitmask; + __bitmap.plot_bitshift[x] = (unsigned char)bitshift; bitshift -= 1; bitmask >>= 1; } // 2 BPP - if(__bitmap_color_depth==1) { - __bitmap_plot_x[x] = (x >> 2); - __bitmap_plot_bitmask[x] = bitmask; - __bitmap_plot_bitshift[x] = (byte)bitshift; + if(__bitmap.color_depth==1) { + __bitmap.plot_x[x] = (x >> 2); + __bitmap.plot_bitmask[x] = bitmask; + __bitmap.plot_bitshift[x] = (unsigned char)bitshift; bitshift -= 2; bitmask >>= 2; } // 4 BPP - if(__bitmap_color_depth==2) { - __bitmap_plot_x[x] = (x >> 1); - __bitmap_plot_bitmask[x] = bitmask; - __bitmap_plot_bitshift[x] = (byte)bitshift; + if(__bitmap.color_depth==2) { + __bitmap.plot_x[x] = (x >> 1); + __bitmap.plot_bitmask[x] = bitmask; + __bitmap.plot_bitshift[x] = (unsigned char)bitshift; bitshift -= 4; bitmask >>= 4; } // 8 BPP - if(__bitmap_color_depth==3) { - __bitmap_plot_x[x] = x; - __bitmap_plot_bitmask[x] = bitmask; - __bitmap_plot_bitshift[x] = (byte)bitshift; + if(__bitmap.color_depth==3) { + __bitmap.plot_x[x] = x; + __bitmap.plot_bitmask[x] = bitmask; + __bitmap.plot_bitshift[x] = (unsigned char)bitshift; } if(bitshift<0) { - bitshift = bitshifts[__bitmap_color_depth]; + bitshift = bitshifts[__bitmap.color_depth]; } if(bitmask==0) { - bitmask = bitmasks[__bitmap_color_depth]; + bitmask = bitmasks[__bitmap.color_depth]; } } // This sets the right delta to skip a whole line based on the scale, depending on the color depth. - word hdelta = hdeltas[(__bitmap_color_depth<<2)+__bitmap_hscale]; - // We start at the bitmap address; The plot_y contains the bitmap address embedded so we know where a line starts. - dword yoffs = __bitmap_address; - for(word y : 0..479) { - __bitmap_plot_y[y] = yoffs; + unsigned int hdelta = hdeltas[(__bitmap.color_depth<<2)+__bitmap.hscale]; + // We start at the bitmap offset; The plot_y contains the bitmap offset embedded so we know where a line starts. + unsigned long yoffs = __bitmap.address; + for(unsigned int y=0; y<479; y++) { + __bitmap.plot_y[y] = yoffs; yoffs = yoffs + hdelta; } } // Clear all graphics on the bitmap void bitmap_clear() { - byte bitmask = bitmasks[__bitmap_color_depth]; - word vdelta = vdeltas[__bitmap_vscale]; - word hdelta = hdeltas[(__bitmap_color_depth<<2)+__bitmap_hscale]; - dword count = mul16u(hdelta,vdelta); - char vbank = BYTE2(__bitmap_address); - void* vdest = (void*) WORD0(__bitmap_address); - memset_vram(vbank, vdest, 0, count); + unsigned char bitmask = bitmasks[__bitmap.color_depth]; + unsigned int vdelta = vdeltas[__bitmap.vscale]; + unsigned int hdelta = hdeltas[(__bitmap.color_depth<<2)+__bitmap.hscale]; + hdelta = hdelta >> 1; + unsigned int count = (unsigned int)mul16u(hdelta,vdelta); + vram_bank_t vbank = BYTE3(__bitmap.address); + vram_offset_t vdest = WORD0(__bitmap.address); + memset_vram(vbank, vdest, 0, count); // TODO: check this out if it still works properly. } -void bitmap_plot(word x, word y, byte c) { +void bitmap_plot(unsigned int x, unsigned int y, unsigned char c) { // Needs unsigned int arrays arranged as two underlying char arrays to allow char* plotter_x = plot_x[x]; - and eventually - char* plotter = plot_x[x] + plot_y[y]; - dword plot_x = __bitmap_plot_x[x]; - dword plot_y = __bitmap_plot_y[y]; - dword plotter = plot_x+plot_y; - byte bitshift = __bitmap_plot_bitshift[x]; + unsigned long plot_x = __bitmap.plot_x[x]; + unsigned long plot_y = __bitmap.plot_y[y]; + unsigned long plotter = plot_x+plot_y; + unsigned char bitshift = __bitmap.plot_bitshift[x]; c = bitshift?c<<(bitshift):c; - vera_vram_address0(plotter,VERA_INC_0); - *VERA_DATA0 = (*VERA_DATA0 & ~__bitmap_plot_bitmask[x]) | c; + vera_vram_data0_address(plotter,VERA_INC_0); + *VERA_DATA0 = (*VERA_DATA0 & ~__bitmap.plot_bitmask[x]) | c; } // Draw a line on the bitmap -void bitmap_line(word x0, word x1, word y0, word y1, byte c) { - word xd; - word yd; +void bitmap_line(unsigned int x0, unsigned int x1, unsigned int y0, unsigned int y1, unsigned char c) { + unsigned int xd; + unsigned int yd; if(x0>1; +void bitmap_line_xdyi(unsigned int x, unsigned int y, unsigned int x1, unsigned int xd, unsigned int yd,unsigned char c) { + unsigned int e = yd>>1; do { bitmap_plot(x,y,c); x++; @@ -165,8 +204,8 @@ void bitmap_line_xdyi(word x, word y, word x1, word xd, word yd,byte c) { } while (x!=(x1+1)); } -void bitmap_line_xdyd(word x, word y, word x1, word xd, word yd, byte c) { - word e = yd>>1; +void bitmap_line_xdyd(unsigned int x, unsigned int y, unsigned int x1, unsigned int xd, unsigned int yd, unsigned char c) { + unsigned int e = yd>>1; do { bitmap_plot(x,y,c); x++; @@ -178,8 +217,8 @@ void bitmap_line_xdyd(word x, word y, word x1, word xd, word yd, byte c) { } while (x!=(x1+1)); } -void bitmap_line_ydxi(word y, word x, word y1, word yd, word xd, byte c) { - word e = xd>>1; +void bitmap_line_ydxi(unsigned int y, unsigned int x, unsigned int y1, unsigned int yd, unsigned int xd, unsigned char c) { + unsigned int e = xd>>1; do { bitmap_plot(x,y,c); y++; @@ -191,8 +230,8 @@ void bitmap_line_ydxi(word y, word x, word y1, word yd, word xd, byte c) { } while (y!=(y1+1)); } -void bitmap_line_ydxd(word y, word x, word y1, word yd, word xd, byte c) { - word e = xd>>1; +void bitmap_line_ydxd(unsigned int y, unsigned int x, unsigned int y1, unsigned int yd, unsigned int xd, unsigned char c) { + unsigned int e = xd>>1; do { bitmap_plot(x,y,c); y = y++; diff --git a/src/main/kc/lib/cx16-conio.c b/src/main/kc/lib/cx16-conio.c new file mode 100644 index 000000000..a237dc257 --- /dev/null +++ b/src/main/kc/lib/cx16-conio.c @@ -0,0 +1,390 @@ +/** + * @file cx16-conio.c + * @author Sven Van de Velde (sven.van.de.velde@telenet.be) + * @brief conio for the cx16. These methods allow to print and get information from the console. + * + * Important notes: + * + * - There is a pre-compile option __CONIO_BSOUT which if set, + * will output every conio operation to the standard output using the kernal API BSOUT, + * instead of directly posting to the vera. This is useful to log information in the emulator terminal while running. + * + * @version 0.1 + * @date 2022-10-15 + * + * @copyright Copyright (c) 2022 + * + */ + +#include +#include +#include +#include +#include + +#define CONIO_TEXTCOLOR_DEFAULT WHITE // The default text color +#define CONIO_BACKCOLOR_DEFAULT BLUE // The default back color + +typedef struct { + unsigned char cursor_x; ///< current cursor x-position + unsigned char cursor_y; ///< current cursor y-position + unsigned char layer; + unsigned int mapbase_offset; // Base pointer to the tile map base of the conio screen. + char mapbase_bank; // Default screen of the CX16 emulator uses memory bank 0 for text. + + unsigned char width; ///< the screen width; + unsigned char height; ///< the screen height; + unsigned char mapwidth; ///< the map width; + unsigned char mapheight; ///< the map height; + unsigned int rowskip; ///< the amount of vram bytes needed to skip a row. + unsigned char cursor; ///< is a cursor whown when waiting for input (0: no, other: yes) + unsigned char color; ///< color of the foreground and background + unsigned char bordercolor; ///< color of the border + /// Is scrolling enabled when outputting beyond the end of the screen (1: yes, 0: no). + /// If disabled the cursor just moves back to (0,0) instead + unsigned char scroll[2]; + unsigned char hscroll[2]; + unsigned int offset; ///< The current offset + unsigned int offsets[61]; ///< Calculated offsets per line according the mapbase and the row width (scale). +} cx16_conio_t; + +cx16_conio_t __conio; + + +/// Initializer for conio.h on X16 Commander. +#pragma constructor_for(conio_x16_init, cputc, clrscr, cscroll) + +/// Set initial screen values. +void conio_x16_init() { + + screenlayer1(); + + textcolor(CONIO_TEXTCOLOR_DEFAULT); + bgcolor(CONIO_BACKCOLOR_DEFAULT); + + cursor(0); + + __conio.cursor_x = BYTE1(cbm_k_plot_get()); + __conio.cursor_y = BYTE0(cbm_k_plot_get()); + gotoxy(__conio.cursor_x, __conio.cursor_y); + + __conio.scroll[0] = 1; + __conio.scroll[1] = 1; +} + +// Returns a value if a key is pressed. +inline unsigned char kbhit(void) +{ + cbm_k_clrchn(); + return cbm_k_getin(); +} + +// clears the screen and moves the cursor to the upper left-hand corner of the screen. +void clrscr(void) +{ + unsigned int line_text = __conio.mapbase_offset; + + *VERA_CTRL &= ~VERA_ADDRSEL; + *VERA_ADDRX_H = __conio.mapbase_bank | VERA_INC_1; + + unsigned char l = __conio.mapheight; + do { + unsigned int ch = line_text; + // Set address + *VERA_ADDRX_L = BYTE0(ch); + *VERA_ADDRX_M = BYTE1(ch); + + unsigned char c = __conio.mapwidth; + do{ + *VERA_DATA0 = ' '; + *VERA_DATA0 = __conio.color; + c--; + } while(c); + + line_text += __conio.rowskip; + l--; + } while(l); + + __conio.cursor_x = 0; + __conio.cursor_y = 0; + __conio.offset = __conio.mapbase_offset; +} + +// Set the cursor to the specified position +void gotoxy(unsigned char x, unsigned char y) +{ +#ifndef __CONIO_BSOUT + __conio.cursor_x = (x>=__conio.width)?__conio.width:x; + __conio.cursor_y = (y>=__conio.height)?__conio.height:y; + __conio.offset = __conio.offsets[y] + __conio.cursor_x << 1; +#endif +} + +// Return the current screen size. +void screensize(unsigned char* x, unsigned char* y) { + // VERA returns in VERA_DC_HSCALE the value of 128 when 80 columns is used in text mode, + // and the value of 64 when 40 columns is used in text mode. + // Basically, 40 columns mode in the VERA is a double scan mode. + // Same for the VERA_DC_VSCALE mode, but then the subdivision is 60 or 30 rows. + // I still need to test the other modes, but this will suffice for now for the pure text modes. + char hscale = (*VERA_DC_HSCALE) >> 7; + *x = (40 << hscale)-1; + char vscale = (*VERA_DC_VSCALE) >> 7; + *y = (30 << vscale)-1; + //printf("%u, %u\n", *x, *y); +} + +// Return the current screen size x width. +unsigned char screensizex() { + return __conio.width; +} + +// Return the current screen size y height. +unsigned char screensizey() { + return __conio.height; +} + +// Return the x position of the cursor +unsigned char wherex(void) { + return __conio.cursor_x; +} + +// Return the y position of the cursor +unsigned char wherey(void) { + return __conio.cursor_y; +} + +// Output one character at the current cursor position +// Moves the cursor forward. Scrolls the entire screen if needed +void cputc(char c) { + + if(c=='\n') { + cputln(); + } else { + +#ifdef __CONIO_BSOUT + cbm_k_plot_set(0,0); + cbm_k_chrout(c); +#endif + +#ifndef __CONIO_BSOUT + *VERA_CTRL &= ~VERA_ADDRSEL; + *VERA_ADDRX_L = BYTE0(__conio.offset); + *VERA_ADDRX_M = BYTE1(__conio.offset); + *VERA_ADDRX_H = __conio.mapbase_bank | VERA_INC_1; + *VERA_DATA0 = c; + *VERA_DATA0 = __conio.color; +#endif + if(!__conio.hscroll[__conio.layer]) { + if(__conio.cursor_x >= __conio.width) + cputln(); + else { + __conio.cursor_x++; + __conio.offset++; + __conio.offset++; + } + } else { + if(__conio.cursor_x >= __conio.mapwidth) + cputln(); + else + __conio.cursor_x++; + __conio.offset++; + __conio.offset++; + } + } +} + +// Print a newline +void cputln() { + __conio.cursor_x = 0; + __conio.cursor_y++; + __conio.offset = __conio.offsets[__conio.cursor_y]; + if(__conio.scroll[__conio.layer]) { + cscroll(); + } +#ifdef __CONIO_BSOUT + cbm_k_plot_set(0,0); + cbm_k_chrout(13); +#endif +} + +void clearline() { +#ifndef __CONIO_BSOUT + unsigned int addr = __conio.offsets[__conio.cursor_y]; + *VERA_CTRL &= ~VERA_ADDRSEL; + *VERA_ADDRX_L = BYTE0(addr); + *VERA_ADDRX_M = BYTE1(addr); + *VERA_ADDRX_H = __conio.mapbase_bank | VERA_INC_1; + register unsigned char c=__conio.width; + do { + *VERA_DATA0 = ' '; + *VERA_DATA0 = __conio.color; + c--; + } while(c); +#endif +} + +// Insert a new line, and scroll the lower part of the screen down. +void insertdown(unsigned char rows) { + if(__conio.cursor_y>=0 && __conio.cursor_y <=__conio.height-1) { +#ifndef __CONIO_BSOUT + // {asm{.byte $db}} + unsigned char width = (__conio.width+1) * 2; + for(unsigned char y=__conio.height - __conio.cursor_y + 1; y>__conio.cursor_y; y--) { + memcpy8_vram_vram(__conio.mapbase_bank, __conio.offsets[y], __conio.mapbase_bank, __conio.offsets[y-1], width); + } + clearline(); +#endif + } +} + +// Insert a new line, and scroll the upper part of the screen up. +void insertup(unsigned char rows) { +#ifndef __CONIO_BSOUT + // {asm{.byte $db}} + unsigned char width = (__conio.width+1) * 2; + for(unsigned char y=0; y<__conio.cursor_y; y++) { + memcpy8_vram_vram(__conio.mapbase_bank, __conio.offsets[y], __conio.mapbase_bank, __conio.offsets[y+1], width); + } + clearline(); +#endif +} + +// Scroll the entire screen if the cursor is beyond the last line +void cscroll() { +#ifndef __CONIO_BSOUT + if(__conio.cursor_y>__conio.height) { + if(__conio.scroll[__conio.layer]) { + insertup(1); + gotoxy( 0, __conio.height); + clearline(); + } else { + if(__conio.cursor_y>__conio.height) { + gotoxy(0,0); + } + } + } +#endif +} + + +// Output a NUL-terminated string at the current cursor position +void cputs(const char* s) { +#ifndef __CONIO_BSOUT + char c; + while(c=*s++) + cputc(c); +#endif +} + +// Move cursor and output one character +// Same as "gotoxy (x, y); cputc (c);" +void cputcxy(unsigned char x, unsigned char y, char c) { +#ifndef __CONIO_BSOUT + gotoxy(x, y); + cputc(c); +#endif +} + +// Move cursor and output a NUL-terminated string +// Same as "gotoxy (x, y); puts (s);" +void cputsxy(unsigned char x, unsigned char y, const char* s) { +#ifndef __CONIO_BSOUT + gotoxy(x, y); + cputs(s); +#endif +} + +// If onoff is 1, a cursor is displayed when waiting for keyboard input. +// If onoff is 0, the cursor is hidden when waiting for keyboard input. +// The function returns the old cursor setting. +unsigned char cursor(unsigned char onoff) { + // not supported in CX16 + char old = __conio.cursor; + __conio.cursor = onoff; + return old; +} + +// If onoff is 1, scrolling is enabled when outputting past the end of the screen +// If onoff is 0, scrolling is disabled and the cursor instead moves to (0,0) +// The function returns the old scroll setting. +unsigned char scroll(unsigned char onoff) { + char old = __conio.scroll[__conio.layer]; + __conio.scroll[__conio.layer] = onoff; + return old; +} + +// If onoff is 1, scrolling is enabled when outputting past the end of the screen +// If onoff is 0, scrolling is disabled and the cursor instead moves to (0,0) +// The function returns the old scroll setting. +unsigned char hscroll(unsigned char onoff) { + char old = __conio.hscroll[__conio.layer]; + __conio.hscroll[__conio.layer] = onoff; + return old; +} + +// --- Defined in cx16.c and cx16-vera.h --- + +// --- layer management in VERA --- + + + +void screenlayer(char layer, char mapbase, char config) +{ + unsigned char const VERA_LAYER_DIM[4] = {31, 63, 127, 255}; + unsigned int const VERA_LAYER_SKIP[4] = {64, 128, 256, 512}; + + __mem char vera_dc_hscale_temp = *VERA_DC_HSCALE; + __mem char vera_dc_vscale_temp = *VERA_DC_VSCALE; + + __conio.layer = 0; + __conio.mapbase_bank = mapbase >> 7; + __conio.mapbase_offset = MAKEWORD((mapbase)<<1,0); + __conio.mapwidth = VERA_LAYER_DIM[ (config & VERA_LAYER_WIDTH_MASK) >> 4]; + __conio.mapheight = VERA_LAYER_DIM[ (config & VERA_LAYER_HEIGHT_MASK) >> 6]; + // __conio.rowshift = ((config & VERA_LAYER_WIDTH_MASK)>>4)+6; + __conio.rowskip = VERA_LAYER_SKIP[(config & VERA_LAYER_WIDTH_MASK)>>4]; + __conio.width = (40 << (char)(vera_dc_hscale_temp == 0x80))-1; + __conio.height = (30 << (char)(vera_dc_vscale_temp == 0x80))-1; + + unsigned int mapbase_offset = __conio.mapbase_offset; + for(register char y=0; y<=__conio.height; y++) { + __conio.offsets[y] = mapbase_offset; + mapbase_offset += __conio.rowskip; + } +} + +// Set the layer with which the conio will interact. +// - layer: value of 0 or 1. +void screenlayer0() { + screenlayer(0, *VERA_L0_MAPBASE, *VERA_L0_CONFIG); +} + + +// Set the layer with which the conio will interact. +void screenlayer1() { + screenlayer(1, *VERA_L1_MAPBASE, *VERA_L1_CONFIG); +} + + +// Set the front color for text output. The old front text color setting is returned. +// - color: a 4 bit value ( decimal between 0 and 15). +// This will only work when the VERA is in 16 color mode! +// Note that on the VERA, the transparent color has value 0. +char textcolor(char color) { + return __conio.color = __conio.color & 0xF0 | color; +} + +// Set the back color for text output. +// - color: a 4 bit value ( decimal between 0 and 15). +// This will only work when the VERA is in 16 color mode! +// Note that on the VERA, the transparent color has value 0. +char bgcolor(char color) { + return __conio.color = __conio.color & 0x0F | color << 4; +} + +// Set the color for the border. +char bordercolor(unsigned char color) { + return __conio.bordercolor = *VERA_DC_BORDER; +} + diff --git a/src/main/kc/lib/cx16-kernal.c b/src/main/kc/lib/cx16-kernal.c index 45cb67928..9bdbbb140 100644 --- a/src/main/kc/lib/cx16-kernal.c +++ b/src/main/kc/lib/cx16-kernal.c @@ -1,62 +1,67 @@ +/** + * @file cx16-kernal.c + * @author Sven Van de Velde (sven.van.de.velde@telenet.be) + * @brief + * Please refer to http://sta.c64.org/cbm64krnfunc.html for the list of standard CBM C64 kernal functions. + * Please refer to https://github.com/commanderx16/x16-docs/blob/master/Commander%20X16%20Programmer's%20Reference%20Guide.md for the detailed list + * of APIs backward compatible with the C64. + + * @version 0.1 + * @date 2022-01-29 + * + * @copyright Copyright (c) 2022 + * + */ + +#include #include -#include -// Kernal SETNAM function -// SETNAM. Set file name parameters. -void setnam(char* filename) { - char filename_len = (char)strlen(filename); - asm { - // Kernal SETNAM function - // SETNAM. Set file name parameters. - // Input: A = File name length; X/Y = Pointer to file name. - lda filename_len - ldx filename - ldy filename+1 - jsr $ffbd - } + +/** + * @brief Read a number of bytes from the sdcard using kernal macptr call. + * BRAM bank needs to be set properly before the load between adressed A000 and BFFF. + * + * @return x the size of bytes read + * @return y the size of bytes read + * @return if carry is set there is an error + */ +unsigned int cx16_k_macptr(unsigned char bytes, void* buffer) +{ + unsigned int bytes_read; + {asm { + lda bytes + ldx buffer + ldy buffer+1 + + clc // needed from R42 of the CX16 commander rom to ensure MACPTR is progressing the read address. + // .byte $db + jsr CX16_MACPTR + stx bytes_read + sty bytes_read+1 + bcc !+ + lda #$FF + sta bytes_read + sta bytes_read+1 + !: + }} + return bytes_read; } -// SETLFS. Set file parameters. -void setlfs(char device) { - asm { - // SETLFS. Set file parameters. - // Input: A = Logical number; X = Device number; Y = Secondary address. - ldx device - lda #1 - ldy #0 - jsr $ffba - } -} -// LOAD. Load or verify file. (Must call SETLFS and SETNAM beforehands.) -// - verify: 0 = Load, 1-255 = Verify -// -// Returns a status, 0xff: Success other: Kernal Error Code -char load(char* address, char verify) { - char status; - asm { - //LOAD. Load or verify file. (Must call SETLFS and SETNAM beforehands.) - // Input: A: 0 = Load, 1-255 = Verify; X/Y = Load address (if secondary address = 0). - // Output: Carry: 0 = No errors, 1 = Error; A = KERNAL error code (if Carry = 1); X/Y = Address of last byte loaded/verified (if Carry = 0). - ldx address - ldy address+1 - lda verify - jsr $ffd5 - bcs error - lda #$ff - error: - sta status - } - return status; -} -// GETIN. Read a byte from the input channel -// return: next byte in buffer or 0 if buffer is empty. -char getin() { - char ch; - asm { - jsr $ffe4 - sta ch - } - return ch; +/** + * @brief Sets the [character set](https://github.com/commanderx16/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20KERNAL.md#function-name-screen_set_charset). + * + * @param charset The code of the charset to copy. + * @param offset The offset of the character set in ram. + */ +inline void cx16_k_screen_set_charset(char charset, char *offset) { + + + {asm { + lda charset + ldx offset + jsr CX16_SCREEN_SET_CHARSET + }} } diff --git a/src/main/kc/lib/cx16-mouse.c b/src/main/kc/lib/cx16-mouse.c new file mode 100644 index 000000000..bb9a4b133 --- /dev/null +++ b/src/main/kc/lib/cx16-mouse.c @@ -0,0 +1,94 @@ +/** + * @file cx16-mouse.c + * @author Sven Van de Velde (sven.van.de.velde@telenet.be) + * @brief See documentation of the [mouse pointer](https://github.com/commanderx16/x16-docs/blob/master/X16%20Reference%20-%2004%20-%20KERNAL.md#mouse) in the commander X16 manual: + * + * @note Compatible ONLY with the commander X16 version R39 ROM. + * + * @version 0.1 + * @date 2022-03-31 + * + * @copyright Copyright (c) 2022 + * + */ + +#include + +// The mouse work area. + +__mem cx16_mouse_t cx16_mouse; + +/** + * @brief Configures the mouse pointer. + * + * + * @param visible Turn the mouse pointer on or off. Provide a value of 0xFF to set your own mouse pointer graphic (sprite 0). + * @param scalex Specify x axis screen resolution in 8 pixel increments. + * @param scaley Specify y axis screen resolution in 8 pixel increments. + * + */ +void cx16_mouse_config(char visible, char scalex, char scaley) +{ + asm { + //.byte $db + lda visible + ldx scalex + ldy scaley + jsr CX16_MOUSE_CONFIG + } +} + +/** + * @brief Scan the mouse + * + */ +void cx16_mouse_scan() +{ + asm { + // .byte $db + jsr CX16_MOUSE_SCAN + } +} + +/** + * @brief Retrieves the status of the mouse pointer and will fill the mouse position in the defined mouse registers. + * + * @return char Current mouse status. + * + * The pre-defined variables cx16_mousex and cx16_mousey contain the position of the mouse pointer. + * + * volatile int cx16_mousex = 0; + * volatile int cx16_mousey = 0; + * + * The state of the mouse buttons is returned: + * + * |Bit|Description| + * |---|-----------| + * |0|Left Button| + * |1|Right Button| + * |2|Middle Button| + * + * If a button is pressed, the corresponding bit is set. + */ +char cx16_mouse_get() +{ + __mem char status; + __address(0xfc) int x; + __address(0xfe) int y; + + cx16_mouse.px = cx16_mouse.x; + cx16_mouse.py = cx16_mouse.y; + + asm { + // .byte $db + ldx #$fc + jsr CX16_MOUSE_GET + sta status + } + + cx16_mouse.x = x; + cx16_mouse.y = y; + cx16_mouse.status = status; + + return status; +} diff --git a/src/main/kc/lib/cx16.c b/src/main/kc/lib/cx16.c index a994da477..c8c1e1ed1 100644 --- a/src/main/kc/lib/cx16.c +++ b/src/main/kc/lib/cx16.c @@ -1,35 +1,230 @@ -// Commander X16 Functions -// https://www.commanderx16.com/forum/index.php?/about-faq/ -// https://github.com/commanderx16/x16-docs/blob/master/Commander%20X16%20Programmer's%20Reference%20Guide.md + +/** + * @file cx16.c + * @author Jesper Gravgaard / Sven Van de Velde + * @brief Contains functions to control the features of the Commander X16. + * Commander X16 Functions. + * https://www.commanderx16.com/forum/index.php?/about-faq/ + * https://github.com/commanderx16/x16-docs/blob/master/Commander%20X16%20Programmer's%20Reference%20Guide.md + * @version 0.1 + * @date 2021-06-13 + * + * @copyright Copyright (c) 2021 + * + */ + +#ifndef __CX16__ +#error "Target platform must be cx16" +#endif #include -#include +#include +#include +#include + +// Initializer for X16 Commander interrupt vector +#pragma constructor_for(cx16_init, cx16_kernal_irq) + +__mem __export word isr_vsync = 0x0314; + +void cx16_init() +{ + isr_vsync = *(word *)0x0314; +} + +void cx16_kernal_irq(IRQ_TYPE irq) +{ + *KERNEL_IRQ = irq; +} + +/** + * @brief Push the old bank on the stack and set the active bank of banked ram on the X16. + * Banked ram is the memory location between 0xA000 and 0xBFFF. + * + * @param bank Switch to this bank. + */ +inline void bank_push_set_bram(bram_bank_t bank) +{ + asm { + lda $00 + pha + } + BRAM = bank; +} + +/** + * @brief Set the active bank of banked ram on the X16. + * Banked ram is the memory location between 0xA000 and 0xBFFF. + * + * @param bank Switch to this bank. + */ +inline void bank_set_bram(bram_bank_t bank) +{ + BRAM = bank; +} + +/** + * @brief Set the active bank of banked ram on the X16. + * Banked ram is the memory location between 0xA000 and 0xBFFF. + * The old bank is pushed on the stack, and must be retrieved with bank_pop_bram!!! + * + * @param bank Switch to this bank. + */ +inline void bank_push_bram() +{ + asm { + lda $00 + pha + } +} + +/** + * @brief Get the active bank of banked ram on the X16. + * Banked ram is the memory location between 0xA000 and 0xBFFF. + * + * @return unsigned char The current active bank. + */ +inline unsigned char bank_get_bram() +{ + return BRAM; +} + +/** + * @brief Get the old bank of banked ram on the X16 from the stack. + * Banked ram is the memory location between 0xA000 and 0xBFFF. + * The old bank was set with bank_push_bram()!!! + */ +inline void bank_pull_bram() +{ + asm { + pla + sta $00 + } +} + +/** + * @brief Set the active banked rom on the X16. + * + * There are several banked roms available between 0xC000 and 0xFFFF. + * + * Bank Name Description + * 0 KERNAL character sets (uploaded into VRAM), MONITOR, KERNAL + * 1 KEYBD Keyboard layout tables + * 2 CBDOS The computer-based CBM-DOS for FAT32 SD cards + * 3 GEOS GEOS KERNAL + * 4 BASIC BASIC interpreter + * 5 MONITOR Machine Language Monitor + * + * Detailed documentation in the CX16 programmers reference: + * https://github.com/commanderx16/x16-docs/blob/master/Commander%20X16%20Programmer's%20Reference%20Guide.md + * + * Note: This method will change when R39 is released, + * as the bank is modified using zero page 0x01, instead of the VIA. + * + * @param bank Switch to this bank. + */ +inline void bank_set_brom(brom_bank_t bank) +{ + BROM = bank; +} + +/** + * @brief Get the active banked rom on the X16. + * There are several banked roms available between 0xC000 and 0xFFFF. + * + * Bank Name Description + * 0 KERNAL character sets (uploaded into VRAM), MONITOR, KERNAL + * 1 KEYBD Keyboard layout tables + * 2 CBDOS The computer-based CBM-DOS for FAT32 SD cards + * 3 GEOS GEOS KERNAL + * 4 BASIC BASIC interpreter + * 5 MONITOR Machine Language Monitor + * + * Detailed documentation in the CX16 programmers reference: + * https://github.com/commanderx16/x16-docs/blob/master/Commander%20X16%20Programmer's%20Reference%20Guide.md + * + * Note: This method will change when R39 is released, + * as the bank is modified using zero page 0x01, instead of the VIA. + * + * @return unsigned char The current active bank. + */ +brom_bank_t bank_get_brom() +{ +#ifdef X16_R38 + return VIA1->PORT_B; +#else + return BROM; +#endif +} + +/** + * Call a far routine in a bank. + * + */ +void call__far(bram_bank_t bank_func, bram_ptr_t ptr_func) +{ + +} + +// Increase a cx16 banked pointer, so that the bank setting evolves with the increment. +/** + * @brief Increase a banked pointer, located between 0xA000 and 0xBFFF, + * so that the bank setting evolves with the increment, increasing the bank and restaring at 0xA000 + * once the 0xBFFF boundary has been reached. + * + * @param bank Bank on which the pointer is mapped. + * @param sptr The pointer to increment. + * @param inc The increment. + * @return bram_ptr_t The new calculated pointer. + */ +bram_ptr_t bank_bram_ptr_inc(char bank, char *sptr, unsigned int inc) +{ + + char banks = BYTE1(inc) >> 5; // This returns the number of banks the increment will cover. + + sptr -= 0xA000; + unsigned int rptr = ((unsigned int)sptr + (inc & 0x1FFF)); + char diff = BYTE1(rptr) >> 5; // if the inc crosses the 0x2000 boundary, then this bit will be set. + + bank = bank + banks + diff; + bank_set_bram(bank); + + rptr = (rptr & 0x1FFF) + 0xA000; + + return (bram_ptr_t)rptr; +} + +/** + * @brief Put a single byte into VRAM. + * Uses VERA DATA0. + * + * @param vbank Which 64K VRAM bank to put data into (0/1). + * @param vaddr The address in VRAM. + * @param data The data to put into VRAM. + */ +void vpoke(vram_bank_t vbank, vram_offset_t vaddr, char data) +{ -// Put a single byte into VRAM. -// Uses VERA DATA0 -// - bank: Which 64K VRAM bank to put data into (0/1) -// - addr: The address in VRAM -// - data: The data to put into VRAM -void vpoke(char vbank, char* vaddr, char data) { - // Select DATA0 *VERA_CTRL &= ~VERA_ADDRSEL; - // Set address *VERA_ADDRX_L = BYTE0(vaddr); *VERA_ADDRX_M = BYTE1(vaddr); *VERA_ADDRX_H = VERA_INC_0 | vbank; - // Set data + *VERA_DATA0 = data; } -// Read a single byte from VRAM. -// Uses VERA DATA0 -// - bank: Which 64K VRAM bank to put data into (0/1) -// - addr: The address in VRAM -// - returns: The data to put into VRAM -char vpeek(char vbank, char* vaddr) { - // Select DATA0 +/** + * @brief Read a single byte from VRAM. + * Uses VERA DATA0. + * + * @param vbank Which 64K VRAM bank to put data into (0/1). + * @param vaddr The address in VRAM. + * @return char The data to put into VRAM. + */ +char vpeek(vram_bank_t vbank, vram_offset_t vaddr) +{ + *VERA_CTRL &= ~VERA_ADDRSEL; - // Set address *VERA_ADDRX_L = BYTE0(vaddr); *VERA_ADDRX_M = BYTE1(vaddr); *VERA_ADDRX_H = VERA_INC_0 | vbank; @@ -37,139 +232,389 @@ char vpeek(char vbank, char* vaddr) { return *VERA_DATA0; } -// Copy block of memory (from RAM to VRAM) -// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination in VRAM. -// - vbank: Which 64K VRAM bank to put data into (0/1) -// - vdest: The destination address in VRAM -// - src: The source address in RAM -// - num: The number of bytes to copy -void memcpy_to_vram(char vbank, void* vdest, void* src, unsigned int num ) { - // Select DATA0 +/** + * @brief Copy block of memory from ram to vram. + * Copies num bytes from the ram source pointer to the vram bank/offset. + * + * @param dbank_vram Destination vram bank. + * @param doffset_vram The destination vram offset, 0x0000 till 0xFFFF) + * @param sptr_ram Source pointer in ram. + * @param num Amount of bytes to copy. + */ +void memcpy_vram_ram(vram_bank_t dbank_vram, vram_offset_t doffset_vram, ram_ptr_t sptr_ram, unsigned int num) +{ + *VERA_CTRL &= ~VERA_ADDRSEL; - // Set address - *VERA_ADDRX_L = BYTE0(vdest); - *VERA_ADDRX_M = BYTE1(vdest); - *VERA_ADDRX_H = VERA_INC_1 | vbank; + *VERA_ADDRX_L = BYTE0(doffset_vram); + *VERA_ADDRX_M = BYTE1(doffset_vram); + *VERA_ADDRX_H = dbank_vram | VERA_INC_1; + // Transfer the data - char *end = (char*)src+num; - for(char *s = src; s!=end; s++) + unsigned char *end = (unsigned char *)sptr_ram + num; + for (char *s = sptr_ram; s != end; s++) *VERA_DATA0 = *s; } -// Copy block of memory (from banked RAM to VRAM) -// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination in VRAM. -// - vdest: absolute address in VRAM -// - src: absolute address in the banked RAM of the CX16. -// - num: dword of the number of bytes to copy -// Note: This function can switch RAM bank during copying to copy data from multiple RAM banks. -void memcpy_bank_to_vram(unsigned long vdest, unsigned long src, unsigned long num ) { - // Select DATA0 +/** + * @brief Copy block of memory from vram to ram. + * Copies num bytes from the source vram bank/offset to the ram destination pointer. + * + * @param dptr Destination vram pointer. + * @param sbank_vram Source vram bank. + * @param soffset_vram Source vram offset. + * @param num Amount of bytes to copy. + */ +void memcpy_ram_vram(ram_ptr_t dptr, vram_bank_t sbank_vram, vram_offset_t soffset_vram, unsigned int num) +{ + *VERA_CTRL &= ~VERA_ADDRSEL; - // Set address - *VERA_ADDRX_L = BYTE0(vdest); - *VERA_ADDRX_M = BYTE1(vdest); - *VERA_ADDRX_H = BYTE2(vdest); - *VERA_ADDRX_H |= VERA_INC_1; + *VERA_ADDRX_L = BYTE0(soffset_vram); + *VERA_ADDRX_M = BYTE1(soffset_vram); + *VERA_ADDRX_H = sbank_vram | VERA_INC_1; - unsigned long beg = src; - unsigned long end = src+num; - - char bank = BYTE2(beg)<<3 | BYTE1(beg)>>5 ; // (byte)(((((word)<(>beg)<<8)|>(>5)+((word)<(>beg)<<3)); - char* addr = (char*)(WORD0(beg)&0x1FFF); // stip off the top 3 bits, which are representing the bank of the word! - addr += 0xA000; - - VIA1->PORT_A = (char)bank; // select the bank - for(unsigned long pos=beg; posPORT_A = (char)++bank; // select the bank - addr = (char*)0xA000; - } - *VERA_DATA0 = *addr; - addr++; - } + // Get the data + unsigned char *end = (unsigned char *)dptr + num; + for (unsigned char *s = dptr; s != end; s++) + *s = *VERA_DATA0; } -// Set block of memory to a value in VRAM. -// Sets num bytes to a value to the memory block pointed to by destination in VRAM. -// - vbank: Which 64K VRAM bank to put data into (0/1) -// - vdest: The destination address in VRAM -// - data: The value to set the vram with. -// - num: The number of bytes to set -void memset_vram(char vbank, void* vdest, char data, unsigned long num ) { - // Select DATA0 - *VERA_CTRL &= ~VERA_ADDRSEL; - // Set address - *VERA_ADDRX_L = BYTE0(vdest); - *VERA_ADDRX_M = BYTE1(vdest); - *VERA_ADDRX_H = VERA_INC_1 | vbank; - // Transfer the data - for(unsigned long i = 0; i>5; //(byte)(((((word)<(>address)<<8)|>(>5)+((word)<(>address)<<3)); - char* addr = (char*)(WORD0(address)&0x1FFF); // stip off the top 3 bits, which are representing the bank of the word! - addr += 0xA000; - VIA1->PORT_A = (char)bank; // select the bank - return load(addr, 0); + +/** + * @brief Fast initialization of an area pointed by a destination memory address to one value c. + * Since the amount of bytes to be initialized is a byte long, it can be executed very fast. + * The parameter num can have a value 0, which in case is equal to 256, + * which allows 256 bytes to be copied using one single byte counter! + * Depending on the optimization of the compiler, this implementation can + * result in very fast code, but it should be inlined! + * + * @param destination The destination memory address as the start of the memory area. + * @param c The byte value initializing the memory area.. + * @param num The amount of bytes to be copied. A value of 0 will set an area of 256 bytes!!! + * @return void* The resulting destination memory address. + +/** + * @brief Fast and inline copy of memory from bram to vram. + * Copies num bytes (max 256) from the source bram bank/pointer to the destination vram bank/offset. + * Since the amount of bytes to be initialized is a byte long, it can be executed very fast. + * The parameter num can have a value 0, which in case is equal to 256, + * which allows 256 bytes to be copied using one single byte counter! + * Depending on the optimization of the compiler, this implementation can + * result in very fast code, but it should be inlined! + * NOTE! sptr_bram + amount of bytes to be copied must be between BRAM page boundaries! + * + * @param dbank_vram Destination vram bank between 0 and 1. + * @param doffset_vram Destination vram offset between 0x0000 and 0xFFFF. + * @param sbank_vram Source bram bank between 0 and 255 (Depending on banked ram availability, maxima can be 63, 127, 191 or 255). + * @param sptr_bram Source bram pointer between 0xA000 and 0xBFFF. + * @param num Amount of bytes to copy. + */ +inline void memcpy_vram_bram_fast(vram_bank_t dbank_vram, vram_offset_t doffset_vram, bram_bank_t sbank_bram, bram_ptr_t sptr_bram, unsigned char num) +{ + bank_push_set_bram(sbank_bram); + + *VERA_CTRL &= ~VERA_ADDRSEL; + *VERA_ADDRX_L = BYTE0(doffset_vram); + *VERA_ADDRX_M = BYTE1(doffset_vram); + *VERA_ADDRX_H = dbank_vram | VERA_INC_1; + + char add = 0; + do { + *VERA_DATA0 = sptr_bram[add]; + add++; + num--; + } while(num); + + bank_pull_bram(); +} + + + +/** + * @brief Copy block of memory from bram to vram. + * Copies num bytes from the source bram bank/pointer to the destination vram bank/offset. + * + * @param dbank_vram Destination vram bank between 0 and 1. + * @param doffset_vram Destination vram offset between 0x0000 and 0xFFFF. + * @param sbank_vram Source bram bank between 0 and 255 (Depending on banked ram availability, maxima can be 63, 127, 191 or 255). + * @param sptr_bram Source bram pointer between 0xA000 and 0xBFFF. + * @param num Amount of bytes to copy. + */ +void memcpy_vram_bram(vram_bank_t dbank_vram, vram_offset_t doffset_vram, bram_bank_t sbank_bram, bram_ptr_t sptr_bram, unsigned int num) +{ + + byte bank = bank_get_bram(); + bank_set_bram(sbank_bram); + + *VERA_CTRL &= ~VERA_ADDRSEL; + *VERA_ADDRX_L = BYTE0(doffset_vram); + *VERA_ADDRX_M = BYTE1(doffset_vram); + *VERA_ADDRX_H = dbank_vram | VERA_INC_1; + + + // byte* ptr = (byte*)sptr_bram; + // for(unsigned int i=0; i +#include +#include + +// The screen width +#define CONIO_WIDTH 80 +// The screen height +#define CONIO_HEIGHT 25 +// The text screen address +#ifndef CONIO_SCREEN_TEXT +#define CONIO_SCREEN_TEXT DEFAULT_SCREEN +#endif + +// The default text color +#ifndef CONIO_TEXTCOLOR_DEFAULT +#define CONIO_TEXTCOLOR_DEFAULT WHITE +#endif + +// Use the shared CMB flat memory implementation +#include "conio-cbm-shared.c" + +// Initializer for conio.h on C64 +#pragma constructor_for(conio_cpet_init, cputc, clrscr, cscroll) + +// Set initial cursor position +void conio_cpet_init() { + // // Position cursor at current line + // char * const BASIC_CURSOR_LINE = (char*)0xD6; + // char line = *BASIC_CURSOR_LINE; + // if(line>=CONIO_HEIGHT) line=CONIO_HEIGHT-1; + // gotoxy(0, line); +} + +// Return true if there's a key waiting, return false if not +unsigned char kbhit (void) { + // // CIA#1 Port A: keyboard matrix columns and joystick #2 + // char* const CIA1_PORT_A = (char*)0xdc00; + // // CIA#1 Port B: keyboard matrix rows and joystick #1. + // char* const CIA1_PORT_B = (char*)0xdc01; + // *CIA1_PORT_A = 0; + // return ~*CIA1_PORT_B; + return 0; +} + +// Set the color for the background. The old color setting is returned. +unsigned char bgcolor(unsigned char color) { + return 0; +} + +// Set the color for the border. The old color setting is returned. +unsigned char bordercolor(unsigned char color) { + return 0; +} + +// Get a charakter from the keyboard and return it. +unsigned char getch() { + return cbm_k_getin(); +} diff --git a/src/main/kc/lib/sprintf.c b/src/main/kc/lib/sprintf.c index 94d7176be..012d83175 100644 --- a/src/main/kc/lib/sprintf.c +++ b/src/main/kc/lib/sprintf.c @@ -23,10 +23,10 @@ __intrinsic int sprintf( char * s, const char * format, ... ); /// The capacity of the buffer (n passed to snprintf()) /// Used to hold state while printing -volatile size_t __snprintf_capacity; +__mem volatile size_t __snprintf_capacity; // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity. /// Used to hold state while printing -volatile size_t __snprintf_size; +__mem volatile size_t __snprintf_size; /// Current position in the buffer being filled ( initially *s passed to snprintf() /// Used to hold state while printing char * __snprintf_buffer; diff --git a/src/main/kc/lib/stdio.c b/src/main/kc/lib/stdio.c new file mode 100644 index 000000000..895f3c75f --- /dev/null +++ b/src/main/kc/lib/stdio.c @@ -0,0 +1,340 @@ + +#include +#include + +#if defined(__CX16__) // For the moment only supported for the CX16 ... + +#include + +volatile FILE __stdio_file; +volatile unsigned char __stdio_filecount = 0; + +#define __filename (&__stdio_file.filename[sp * __STDIO_FILECOUNT]) +#define __logical (__stdio_file.channel[sp]) +#define __device (__stdio_file.device[sp]) +#define __channel (__stdio_file.secondary[sp]) +#define __status (__stdio_file.status[sp]) + +/** + * @brief Load a file to banked ram located between address 0xA000 and 0xBFFF incrementing the banks. + * + * @param channel Input channel. + * @param device Input device. + * @param secondary Secondary channel. + * @param filename Name of the file to be loaded. + * @return + * - 0x0000: Something is wrong! Kernal Error Code (https://commodore.ca/manuals/pdfs/commodore_error_messages.pdf) + * - other: OK! The last pointer between 0xA000 and 0xBFFF is returned. Note that the last pointer is indicating the first free byte. + */ +FILE *fopen(const char *path, const char *mode) { + + unsigned char sp = __stdio_filecount; + FILE *stream = (FILE *)((unsigned int)sp | 0x8000); // We set bit 7 of the high byte, to differentiate from NULL. + + // Parse path + char pathstep = 0; + char *pathtoken = path; + char pathlen = 0; + char pathpos = sp * __STDIO_FILECOUNT; + + __logical = 0; + __device = 0; + __channel = 0; + + char num; + + // Iterate while path is not \0. + do { + if (*pathtoken == ',' || *pathtoken == '\0') { + if (pathstep > 0) { + char pathcmp = *path; + switch (pathcmp) { + case 'D': + case 'L': + case 'C': + num = (char)atoi(path + 1); + path = pathtoken + 1; + } + switch (pathcmp) { + case 'L': + __logical = num; + break; + case 'D': + __device = num; + break; + case 'C': + __channel = num; + break; + } + } else { + __stdio_file.filename[pathpos] = '\0'; + path = pathtoken + 1; + } + pathstep++; + } else { + if (pathstep == 0) { + __stdio_file.filename[pathpos] = *pathtoken; + pathpos++; + } + } + pathtoken++; + } while (*(pathtoken - 1)); + + __status = 0; + + if(!__logical) + __logical = __stdio_filecount+1; + if(!__device) + __device = 8; + if(!__channel) + __channel = __stdio_filecount+2; + +#ifdef __DEBUG_FILE + printf("open file, l=%u, d=%u, c=%u, f=%s", __logical, __device, __channel, __filename); +#endif + + cbm_k_setnam(__filename); + cbm_k_setlfs(__logical, __device, __channel); + + cbm_k_open(); + + __status = cbm_k_readst(); + + if (ferror(stream)) { + // The POSIX standard specifies that in case of file not found, NULL is returned. + // However, the error needs to be cleared from the device. + // This needs to be done using ferror, but this function needs a FILE* stream. + // As fopen returns NULL in case file not found, the ferror must be called before return + // to clear the error from the device. Otherwise the device is left with a red blicking led. + cbm_k_close(__logical); + return NULL; + } + + __stdio_filecount++; + +#ifdef __DEBUG_FILE + while(!kbhit()); +#endif + + + return (FILE *)stream; +} + +/** + * @brief Load a file to ram or (banked ram located between address 0xA000 and 0xBFFF), incrementing the banks. + * This function uses the new CX16 macptr kernal API at address $FF44. + * + * @param sptr The pointer between 0xA000 and 0xBFFF in banked ram. + * @param size The amount of bytes to be read. + * @param filename Name of the file to be loaded. + * @return ptr the pointer advanced to the point where the stream ends. + */ +unsigned int fgets(char *ptr, unsigned int size, FILE *stream) { + unsigned char sp = (unsigned char)stream; + +#ifdef __DEBUG_FILE + printf("load file, l=%u, d=%u, c=%u, b=%x, p=%p, si=%u", __logical, __device, __channel, bank_get_bram(), ptr, size); +#endif + + unsigned int read = 0; + unsigned int remaining = size; + + cbm_k_chkin(__logical); + __status = cbm_k_readst(); +#ifdef __DEBUG_FILE + printf(", chkin s=%u", __status); +#endif + if (__status) + return 0; + + unsigned int bytes = 0; + do { + if (!size) { +#ifdef __DEBUG_FILE + printf(", reading max ptr=%p", ptr); +#endif + bytes = cx16_k_macptr(0, ptr); + } else { + if (remaining >= 128) { +#ifdef __DEBUG_FILE + printf(", reading 128 ptr=%p", ptr); +#endif + bytes = cx16_k_macptr(128, ptr); + } else { +#ifdef __DEBUG_FILE + printf(", reading remaining=%u ptr=%p", remaining, ptr); +#endif + bytes = cx16_k_macptr(remaining, ptr); + } + } + + __status = cbm_k_readst(); +#ifdef __DEBUG_FILE + printf(", macptr s=%u", __status); +#endif + if (__status & 0xBF) { +#ifdef __DEBUG_FILE + printf("macptr error s=%u", __status); +#endif + return 0; + } + + if (bytes == 0xFFFF) { +#ifdef __DEBUG_FILE + printf("read error in file %s, s=%u, bank=%u, ptr=%p\n", __filename, __status, bank_get_bram(), ptr); +#endif + return 0; + } + +#ifdef __DEBUG_FILE + printf(", bytes=%u", bytes); +#endif + + read += bytes; + ptr += bytes; + + if (BYTE1(ptr) == 0xC0) + ptr -= 0x2000; + remaining -= bytes; + +#ifdef __DEBUG_FILE + printf(", size=%u, remaining=%u, read=%u", size, remaining, read); +#endif + + } while ((__status == 0) && ((size && remaining) || !size)); + +#ifdef __DEBUG_FILE + printf(", read bytes r=%u, s=%u\n", read, __status); +#endif + +#ifdef __DEBUG_FILE + while (!kbhit()) + ; +#endif + + return read; +} + +/** + * @brief Close a file. + * + * @param fp The FILE pointer. + * @return + * - 0x0000: Something is wrong! Kernal Error Code (https://commodore.ca/manuals/pdfs/commodore_error_messages.pdf) + * - other: OK! The last pointer between 0xA000 and 0xBFFF is returned. Note that the last pointer is indicating the first free byte. + */ +int fclose(FILE *stream) { + + unsigned char sp = (unsigned char)stream; + +#ifdef __DEBUG_FILE + printf("close file, l=%u", __logical); +#endif + + cbm_k_chkin(__logical); + + __status = cbm_k_readst(); + +#ifdef __DEBUG_FILE + printf(", chkin s=%u", __status); +#endif + if (__status) + return 0; + + cbm_k_close(__logical); + __status = cbm_k_readst(); + +#ifdef __DEBUG_FILE + printf(", close s=%u", __status); +#endif + + if (__status) + return -1; + + // cbm_k_clrchn(); + // #ifdef __DEBUG_FILE + // printf(", status=%u\n", __stdio_file.status); + // #endif + +#ifdef __DEBUG_FILE + // cbm_k_chkin(0); + // while(!kbhit()); +#endif + + __logical = 0; + __device = 0; + __channel = 0; + *__filename = '\0'; + + __stdio_filecount--; + + return 0; +} + +/** + * @brief POSIX equivalent of ferror for the CBM C language. + * This routine reads from secondary 15 the error message from the device! + * The result is an error string, including the error code, message, track, sector. + * The error string can be a maximum of 32 characters. + * + * @param stream FILE* stream. + * @return int Contains a non-zero value if there is an error. + */ +int ferror(FILE *stream) { + + unsigned char sp = (unsigned char)stream; + + cbm_k_setlfs(15, 8, 15); + cbm_k_setnam(""); + cbm_k_open(); + cbm_k_chkin(15); + + unsigned char st; + unsigned char errno_parsed = 0; + register char errno_len = 0; + + char ch = cbm_k_chrin(); + while (!(st = cbm_k_readst())) { + if (!errno_parsed) { + if (ch == ',') { + errno_parsed++; + char temp[4]; + strncpy(temp, __errno_error, errno_len+1); + __errno = atoi(temp); + } + } + __errno_error[errno_len] = ch; + errno_len++; + ch = cbm_k_chrin(); + // {asm {.byte $DB}} + } + __status = st; + cbm_k_close(15); + +#ifdef __DEBUG_FILE + printf("error: %s ", __errno_error); +#endif + + return __errno; +} + +/** + * @brief The POSIX error function, + * [perror](https://en.wikibooks.org/wiki/C_Programming/stdio.h/perror), + * is used in C and C++ to print an error message to stderr, + * based on the error state stored in errno.[1]It prints str and an implementation-defined error message corresponding to the global variable errno. + * + * + * @param prefix If the parameter prefix is non-NULL, perror will first print prefix followed by a colon and a space to standard error. + * Then, it will print the result of strerror to standard error, followed by a newline character. + */ +void perror(char *prefix) { + if (prefix) { + cputs(prefix); + cputs(": "); + } + cputs(__errno_error); + cputc('\n'); +} + +#endif \ No newline at end of file diff --git a/src/main/kc/lib/stdlib.c b/src/main/kc/lib/stdlib.c index feaac76c8..554b68437 100644 --- a/src/main/kc/lib/stdlib.c +++ b/src/main/kc/lib/stdlib.c @@ -4,7 +4,7 @@ #include // Top of the heap used by malloc() -unsigned char* HEAP_TOP = (unsigned char*)0xa000; +unsigned char* HEAP_TOP = (char*)0xa000; // Head of the heap. Moved backward each malloc() unsigned char* heap_head = HEAP_TOP; @@ -260,7 +260,7 @@ int atoi(const char *str) { i++; } // Iterate through all digits and update the result - for (; str[i]; ++i) + for (; str[i]>='0' && str[i]<='9'; ++i) res = res * 10 + str[i] - '0'; // Return result with sign if(negative) @@ -286,7 +286,7 @@ inline long labs(long x) { } // The random state variable -unsigned int rand_state = 1; +volatile unsigned int rand_state = 1; // Returns a pseudo-random number in the range of 0 to RAND_MAX (65535) // Uses an xorshift pseudorandom number generator that hits all different values diff --git a/src/main/kc/lib/string.c b/src/main/kc/lib/string.c index dafe5b58d..f0b111bc4 100644 --- a/src/main/kc/lib/string.c +++ b/src/main/kc/lib/string.c @@ -3,6 +3,28 @@ #include #include +/** + * @brief Fast copy of data from a source to a destination memory address. + * Since the amount of bytes to be copied is a byte long, it can be executed very fast. + * The parameter num can have a value 0, which in case is equal to 256, + * which allows 256 bytes to be copied using one single byte counter! + * Depending on the optimization of the compiler, this implementation can + * result in very fast code, but it should be inlined! + * + * @param destination The memory address as the destination. + * @param source The memory address as the source. + * @param num The amount of bytes to be copied. A value of 0 will copy 256 bytes!!! + * @return void* The resulting destination memory address. + */ +char* memcpy_fast(char* destination, char* source, unsigned char num) { + do { + *(destination+num) = *(source+num); + num--; + } while(num); + + return destination; +} + // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. void* memcpy( void* destination, void* source, size_t num ) { @@ -37,6 +59,28 @@ void *memset(void *str, char c, size_t num) { return str; } +/** + * @brief Fast initialization of an area pointed by a destination memory address to one value c. + * Since the amount of bytes to be initialized is a byte long, it can be executed very fast. + * The parameter num can have a value 0, which in case is equal to 256, + * which allows 256 bytes to be copied using one single byte counter! + * Depending on the optimization of the compiler, this implementation can + * result in very fast code, but it should be inlined! + * + * @param destination The destination memory address as the start of the memory area. + * @param c The byte value initializing the memory area.. + * @param num The amount of bytes to be copied. A value of 0 will set an area of 256 bytes!!! + * @return void* The resulting destination memory address. + */ +inline char* memset_fast(char* destination, char c, unsigned char num) { + do { + *(destination+num) = c; + num--; + } while(num); + + return destination; +} + // Copies the C string pointed by source into the array pointed by destination, including the terminating null character (and stopping at that point). char* strcpy( char* destination, char* source ) { char* src = source; @@ -61,6 +105,16 @@ char *strncpy(char *dst, const char *src, size_t n) { return dst; } +// Concatenates the C string pointed by source into the array pointed by destination, including the terminating null character (and stopping at that point). +char* strcat( char* destination, char* source ) { + char* src = source; + char* dst = destination + strlen(destination); + while(*src) *dst++ = *src++; + *dst = 0; + return destination; +} + + // Converts a string to uppercase. char * strupr(char *str) { char * src = str; @@ -142,4 +196,24 @@ int strncmp(const char *str1, const char *str2, size_t n) { s1++; s2++; } return (int)(signed char)(*s1-*s2); -} \ No newline at end of file +} + +/** + * @brief The string-error function, strerror, + * is a C/C++ function which translates an error code, + * usually stored in the global variable errno, + * to a human-readable error message. + * + * However, the POSIX standard is not followed in kickc. strerror accepts the errno parameter, but it is not used. + * Instead strerror returns the last known error. + * This is done for performance reasons and pragmatism, not to make error handling too memory intensive. + * + * + * @param errnum This variable is not used in the function, but kept for POSIX compatibility. + * @return char* the pointer to __errno_error, declared in errno.h (POSIX standard). + */ +char* strerror(int errnum) { + return __errno_error; +} + + diff --git a/src/test/kc/examples/cx16/cx16-bankload.ld b/src/main/kc/target/c128.ld similarity index 54% rename from src/test/kc/examples/cx16/cx16-bankload.ld rename to src/main/kc/target/c128.ld index 4ffbe5232..4c6920def 100644 --- a/src/test/kc/examples/cx16/cx16-bankload.ld +++ b/src/main/kc/target/c128.ld @@ -1,10 +1,8 @@ -// Create a bunch of files +// Commodore 128 PRG executable file .file [name="%O", type="prg", segments="Program"] -.file [name="SPRITE", type="bin", segments="Sprite"] .segmentdef Program [segments="Basic, Code, Data"] -.segmentdef Basic [start=$0801] +.segmentdef Basic [start=$1c01] .segmentdef Code [start=%P] .segmentdef Data [startAfter="Code"] .segment Basic -:BasicUpstart(%E) -.segmentdef Sprite +:BasicUpstart(%E) \ No newline at end of file diff --git a/src/main/kc/target/c128.tgt b/src/main/kc/target/c128.tgt new file mode 100644 index 000000000..8267260be --- /dev/null +++ b/src/main/kc/target/c128.tgt @@ -0,0 +1,13 @@ +{ + "description": "Commodore 128 PRG executable file.", + "extension": "prg", + "link": "c128.ld", + "start_address": "0x1c0d", + "cpu": "MOS6502X", + "interrupt": "rom_min_c64", + "zp_reserve": [ "0xfc..0xff" ], + "emulator": "x128", + "defines": { + "__C128__": 1 + } +} diff --git a/src/main/kc/target/cx16.ld b/src/main/kc/target/cx16.ld index 91922d13f..baa955af7 100644 --- a/src/main/kc/target/cx16.ld +++ b/src/main/kc/target/cx16.ld @@ -1,4 +1,4 @@ -// Commodore 64 PRG executable file +// Commander X16 PRG executable file .file [name="%O", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$0801] diff --git a/src/main/kc/target/pet8032.ld b/src/main/kc/target/pet8032.ld new file mode 100644 index 000000000..61a0b7e8c --- /dev/null +++ b/src/main/kc/target/pet8032.ld @@ -0,0 +1,8 @@ +// Commodore PET 8032 PRG executable file +.file [name="%O", type="prg", segments="Program"] +.segmentdef Program [segments="Basic, Code, Data"] +.segmentdef Basic [start=$0401] +.segmentdef Code [start=%P] +.segmentdef Data [startAfter="Code"] +.segment Basic +:BasicUpstart(%E) \ No newline at end of file diff --git a/src/main/kc/target/pet8032.tgt b/src/main/kc/target/pet8032.tgt new file mode 100644 index 000000000..b83cdebe1 --- /dev/null +++ b/src/main/kc/target/pet8032.tgt @@ -0,0 +1,13 @@ +{ + "description": "Commodore PET 8032 PRG executable file.", + "extension": "prg", + "link": "pet8032.ld", + "start_address": "0x040d", + "cpu": "MOS6502X", + "interrupt": "rom_min_pet_8032", + "zp_reserve": [ "0xfc..0xff" ], + "emulator": "xpet", + "defines": { + "__PET8032__": 1 + } +} \ 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 df4514641..9962eb7e9 100644 --- a/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java +++ b/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java @@ -756,6 +756,11 @@ public class TestProgramsFast extends TestPrograms { compileAndCompare("examples/rom/rom.c"); } + @Test + public void testMemFast() throws IOException { + compileAndCompare("examples/memfast/memfast.c"); + } + @Test public void testNesDxycp() throws IOException { compileAndCompare("examples/nes/nes-dxycp.c"); diff --git a/src/test/kc/examples/c128/sprites.c b/src/test/kc/examples/c128/sprites.c new file mode 100644 index 000000000..d2559501d --- /dev/null +++ b/src/test/kc/examples/c128/sprites.c @@ -0,0 +1,404 @@ +/** + * @file sprites.c + * @author Sven Van de Velde (sven.van.de.velde@telenet.be) + * @brief This program is a little exercise we did in retro computer + * initiation in school on the Commodore 128 using the KICKC compiler! + * + * We play with sprites on the Commodore 128. + * The reason I chose the Commodore 128 for this exercise is because + * this machine contains commands in BASIC that help define sprites and + * that you can float around. + * However, this is all in BASIC and those commands are made for simple users, + * and these were only introduced very late by Commodore in the BASIC language. + * The Commodore 64 does not have these BASIC instructions. + * + * We are now going to learn how to use the C language to control the sprites ourselves. + * We do this by directly controlling the registers of the VIC II chip, + * who draws the screen on the Commodore 128 and in the Commodore 64. + * + * Follow the link below for a full description of the VIC II chip and its registers. + * It's all very technical, but in class we will see that it is not so bad and + * that it is very nice after you have practiced a bit! + * [VIC II chip registers](https://handwiki.org/wiki/Engineering:MOS_Technology_VIC-II). + * + * As mentioned, we work with sprites today. + * This link [sprites](https://codebase64.org/doku.php?id=base:spriteintro) explains how we control sprites in the VIC II chip. We learn how they are turned on and off. + * We position them on the x-axis and y-axis. We indicate where the bitmap of the sprite is located in the internet memory. + * We play with sprites. In class we will go over this explanation together. + * + * In this lesson we will learn: + * - What registers the VICII has for sprite operations. + * - How these registries work. + * - We learn to address them binary (with &, |, ~ operators). + * - We learn how to build C-functions to edit the sprite registers in a simple way. + * - We play with our C functions and learn to move sprites across the screen. + * - We learn how to make a scan line interrupt and how to make very smooth sprite movements. + * - We learn to animate sprites. + * - We learn all kinds of other properties of sprites. + * + * We create the following features and we learn how they work: + * + * inline void screen_color(char color) + * inline void border_color(char color) + * inline void sprite_enable(char sprite) + * inline void sprite_position_x(char sprite, unsigned int x) + * inline void sprite_position_y(char sprite, char y) + * inline void sprite_color(char sprite, char color) + * inline void sprite_bitmap(char sprite, char* bitmap) + * + * Note that you will type in your program yourself, but we make the exercises together, because it is all new. + * So don't worry, you will learn a lot and later you will be able to play with this yourself :-). + * + * + * EXERCISE 15.1: We give the screen a different color. + * - We use VIC II register 0xD020 to color the edge of the screen. + * - We use VIC II register 0xD021 to color the screen. + * - We complete functions screen_color and border_color. + * + * EXERCISE 15.2: Position the sprite in a different place on the x-axis and the y-axis! + * - Which VIC II registers do you use for this? + * - Do you understand how the registers work? + * - We complete function sprite_enable to turn on the sprite. + * - We complete function sprite_position_x to position the sprite on the x-axis. + * - We complete function sprite_position_y to position the sprite on the y-axis. + * - We complete function sprite_bitmap to refer the sprite to the sprite bitmap. + * - We position the sprite on x-axis at 100 and on y-axis at 100. + * + * EXERCISE 15.3: Now try to change the color of the sprite. + * - We use VIC II registers D027 to D02E. + * - We complete function sprite_color to give the sprite a color. + * + * EXERCISE 15.4: Draw your own sprite in the excel sheet, and cut/paste the binary data into your c program. + * - Recompile and run your program. Does it work? + * - Ideas for a sprite are spaceships, planes, faces. Keep it simple. + * + * EXERCISE 15.5: Now make a 2nd and a 3rd sprite, based on the 1st sprite, but change it a bit. + * - Declare and allocate the bitmap of the 2nd and 3rd sprite. + * - Now try to adjust your program so that the 2nd sprite appears after a random keystroke. + * - To achieve this, you need to use the function to adjust the sprite bitmap register. + * + * EXERCISE 15.6: Now try to switch the sprite bitmap every 16 frames between the 1st sprite and the 2nd and the 3rd sprite. + * - We use the "grid line" method. Let me explain. The code scheleton contains all this logic. + * - We have to declare a counter that adds up every time. + * - For every 16 frames, we adjust the sprite bitmap to the next bitmap. + * + * EXERCISE 15.7: Now try to move the sprite on the x-axis, from position 50 to position 255. + * - If the sprite has landed at position 255, the position should be set back to 50 and we start from scratch. + * - We use a scan line interrupt to do this. + * + * EXERCISE 15.8: Now try to put the sprite BEYOND the position 255 on the x-axis! + * - You need a special register here! + * - You have to ask Sven how this register works. + * - We will learn here how to create a '|' (OR), use a '&' (AND), and a '~' (NOT) operator. + * + * EXERCISE 15.9: Now we try to move the sprite on the y-axis as well... + * + * @version 0.1 + * @date 2022-01-13 + * + * @copyright Copyright (c) 2023 + * + */ + +#pragma encoding(petscii_mixed) +#pragma var_model(zp) +#pragma target(C128) + +#include +#include +#include + +#include + +// We declare and initialize the registers to give the screen and border a color. +// For the color of the screen we use VIC II register 0xD021. +// For the color of the border we use VIC II register 0xD020. +char* const vic_background_color_0 = (char*)0xD021; +char* const vic_border_color = (char*)0xD020; + +// We declare and initialize the registers that contain the sprite pointers. +// Sprite pointers refer to the addresses where the sprite drawing is located. +char* const vic_sprite_bitmap_base = (char*)0x07F8; + +// We declare the variables to place sprites on the x-axis and y-axis. +char* const vic_sprite_x_base = (char*)0xD000; +char* const vic_sprite_y_base = (char*)0xD001; +char* const vic_sprite_x_msb = (char*)0xD010; + +// We declare the variables to give sprites a color. +// There are 8 registers from D027 to D02E that contain the color of sprite 0 to 7. +char* const vic_sprite_color_base = (char*)0xD027; + +// We declare the VICII register to show or hide a sprite. +// Each bit represents 1 sprite. +char* const vic_sprite_enable = (char*)0xD015; + +// We declare the VIC II register which contains the current grid (character) line of the screen. +// This grid line register is at address 0xD012 in bit 0 to 7, +// But register 0xD011 in bit 7, contains the 8th grid line bit which can test the values after 255! +// In other words, if bit 7 of register is 0xD011 at 1, then the scan line is past the 255th line! +char* const vic_raster_low = (char*)0xD012; +char* const vic_raster_high = (char*)0xD011; // We gebruiken hier ENKEL de 7de bit! + +// spite_bitmap0 +// SOLUTION 15.4: +static __address(0x2000) char sprite_bitmap_0[3*21] = { +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00011000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b01111110, 0b00000000, +0b00000001, 0b11111111, 0b10000000, +0b00000011, 0b11111111, 0b11000000, +0b00000111, 0b11111111, 0b11100000, +0b00011100, 0b10010010, 0b01111000, +0b00000111, 0b11111111, 0b11100000, +0b00000001, 0b11111111, 0b10000000, +0b00000000, 0b01000010, 0b00000000, +0b00000000, 0b10000001, 0b00000000, +0b00000011, 0b00000000, 0b11000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000 +}; + +// Ship1 +// SOLUTION 15.5: +static __address(0x2040) char sprite_bitmap_1[3*21] = { +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00001100, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b01111110, 0b00000000, +0b00000001, 0b11111111, 0b10000000, +0b00000011, 0b11111111, 0b11000000, +0b00000111, 0b11111111, 0b11100000, +0b00011110, 0b01001001, 0b00111000, +0b00000111, 0b11111111, 0b11100000, +0b00000001, 0b11111111, 0b10000000, +0b00000000, 0b01000010, 0b00000000, +0b00000000, 0b10000001, 0b00000000, +0b00000011, 0b00000000, 0b11000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000 +}; + +// Ship2 +// SOLUTION 15.5: +static __address(0x2080) char sprite_bitmap_2[3*21] = { +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00110000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b01111110, 0b00000000, +0b00000001, 0b11111111, 0b10000000, +0b00000011, 0b11111111, 0b11000000, +0b00000111, 0b11111111, 0b11100000, +0b00011101, 0b00100100, 0b10111000, +0b00000111, 0b11111111, 0b11100000, +0b00000001, 0b11111111, 0b10000000, +0b00000000, 0b01000010, 0b00000000, +0b00000000, 0b10000001, 0b00000000, +0b00000011, 0b00000000, 0b11000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000, +0b00000000, 0b00000000, 0b00000000 +}; + +char* sprite_bitmap_array[3] = {sprite_bitmap_0, sprite_bitmap_1, sprite_bitmap_2}; + + +inline void screen_color(char color) { + // SOLUTION 15.1: + *vic_background_color_0 = color; +} + +inline void border_color(char color) { + // SOLUTION 15.1: + *vic_border_color = color; +} + +inline void sprite_enable(char sprite) { + // SOLUTION 15.2: + // We activate the sprite 0 and 1 by setting bit 0 and 1 to 1 in the enable register. + *vic_sprite_enable = 1 << sprite; +} + +inline void sprite_position_x(char sprite, unsigned int x) { + // SOLUTION 15.2: + char* vic_sprite_x = vic_sprite_x_base; + vic_sprite_x += sprite << 1; + *vic_sprite_x = BYTE0(x); + + // SOLUTION 15.8: + if(BYTE1(x)) + *vic_sprite_x_msb = *vic_sprite_x_msb | 1; + else + *vic_sprite_x_msb = *vic_sprite_x_msb & ~1; +} + +inline void sprite_position_y(char sprite, char y) { + // SOLUTION 15.2: + char* vic_sprite_y = vic_sprite_y_base; + vic_sprite_y += sprite; + *vic_sprite_y = y; +} + +inline void sprite_color(char sprite, char color) { + // SOLUTION 15.3: + char* vic_sprite_color = vic_sprite_color_base; + vic_sprite_color += sprite; + *vic_sprite_color = color; +} + +inline void sprite_bitmap(char sprite, char* bitmap) { + // SOLUTION 15.2: + char* vic_sprite_bitmap = vic_sprite_bitmap_base; + vic_sprite_bitmap += sprite; + *vic_sprite_bitmap = (char)((unsigned int)bitmap >> 6); +} + +int main() { + + // You can skip these 2 instructions (ignore). Here we just put on the Commodore 128 + // the BASIC logic out that the sprite control does. + // On the Commodore 64, these instructions are not necessary. + *((char*)0216) = 255; + *((char*)0xA04) = *((char*)0xA04) & ~1; + + // We clear the screen. + clrscr(); + + // We do a loop in the main logic of this program, and we tested if a key was pressed. + // The character of the last keystroke used we store in ch, + // But now we initialize this value with 0 to indicate that no key was pressed. + unsigned char ch = 0; + + // This is a work variable that we keep track of to make sure we have the grid line + // Run logic only if bit 8 of the grid line falls back to 0. + // I'll explain it in class, why we have and do this. + // We perform the main logic only if raster_test equals 1. + unsigned raster_test = 1; + + // We keep track of the x position in a counter. + // The type of the x position must be an int, + // Because the screen has 320 pixels on the x-axis. + // We only have 256 possible values in a char. + // So we count with 2 bytes, and we use the type int. + // SOLUTION 15.7: + unsigned int x = 24; + + // Here is the sprite telletje, we use it to change the array of sprite bitmaps. + // SOLUTION 15.6: + unsigned char sprite_counter = 0; + + // This is the counter that counts every frame. + // SOLUTION 15.6: + unsigned char frame = 0; + + + + + // We give the screen a color of your choice. + // SOLUTION 15.1: + screen_color(1); + + // We give the border a color of your choice. + // SOLUTION 15.1: + border_color(1); + + // We activate sprite 0. + // SOLUTION 15.2: + sprite_enable(0); + + // We set the sprite pointer to the address of the sprite bitmap. + // SOLUTION 15.2: + sprite_bitmap(0, sprite_bitmap_0); + + // We put the sprite at a position on the x-axis an y-axis. + // SOLUTION 15.2: + sprite_position_x(0, 100); + sprite_position_y(0, 100); + + // We set the color of the sprites to a color of your choice. + // SOLUTION 15.3: + sprite_color(0, 0); + + + // We continue to run this logic until a key is pressed. + while(!ch) { + + // We tested whether we can raster_lijn tested and whether the 8th bit of the grid is set to 1. + // If the value of this bit is on, then we execute the logic. + if(raster_test && *vic_raster_high & 0x80) { + + // We put the sprite 0 x-axis an y-axis. + // SOLUTION 15.7: + sprite_position_x(0, x); + + sprite_position_y(0, 100); + + // We put the sprite pointer at the address of the sprite_bitmap counter. + // SOLUTION 15.6: + sprite_bitmap(0, sprite_bitmap_array[sprite_counter]); + + + // We now position our sprite at position +1 on the x-axis. + // If the position is equal to 0 (EXERCISE 15.7), + // or equal to 320 (EXERCISE 15.8), + // Then we position our sprite at position 24, the starting position. + // SOLUTION 15.7 and 15.8 : + if(x < 320) { + x++; + } else { + x = 24; + } + + // Here we add 1 to frame to keep track of how many frames we have had. + // SOLUTION 15.6: + frame += 1; + + // To ensure that we sprite_bitmap increase every 16 frames, + // we calculate the current frame AND 0b00010000. + // If the result is not 0, then the logic of the if is executed. + if((frame & 0x0F) == 0x0F) { + sprite_counter++; // We now increase the counter sprite_bitmap by 1. + if(sprite_counter == 3) { // If sprite_bitmap equals 3? + sprite_counter = 0; // Then we put sprite_bitmap back to 0. + } + } + + // We just read a character from the keyboard. + ch = kbhit(); + + // To ensure that we only run the logic 1 time, we put it + // raster_test flag at 0. + // We perform the main logic only if raster_test equals 1. + raster_test = 0; + + } else { + // Otherwise... Now we tested whether we can test the current grid line. + // If we are allowed to test raster_lijn, so if raster_test equals 0 + // AND or bit 8 of grid line equals 0. + if(!raster_test && !(*vic_raster_high & 0x80)) { + raster_test = 1; // Then we put raster_test back to 1; + } + } + + } + + return 1; +} diff --git a/src/test/kc/examples/cx16/cx16-bankaddressing.c b/src/test/kc/examples/cx16/cx16-bankaddressing.c deleted file mode 100644 index 77989733a..000000000 --- a/src/test/kc/examples/cx16/cx16-bankaddressing.c +++ /dev/null @@ -1,36 +0,0 @@ -// Example program for the Commander X16 -// Demonstrates some bank addressing calculations - -#pragma target(cx16) - -#include -#include <6502.h> -#include -#include -#include -#include - -void main() { - - dword src = (dword)0x02000; - dword num = 64*64*2; - - word inc = 0x0123; - - for(dword src=0x0000;src<0x3F000;src+=num) { - - dword calcbeg = src; - dword calcend = src+num+(-1); - byte bankbeg = BYTE2(calcbeg)<<3 | BYTE1(calcbeg)>>5 ; //(byte)(((((word)<(>calcbeg)<<8)|>(>5)+((word)<(>calcbeg)<<3)); - byte bankend = BYTE2(calcend)<<3 | BYTE1(calcend)>>5 ; //(byte)(((((word)<(>calcend)<<8)|>(>5)+((word)<(>calcend)<<3)); - const word borderbeg = 0xA000; - const word borderend = 0xA000+0x1FFF; - word beg = (WORD0(calcbeg)&0x1FFF); // stip off the top 3 bits, which are representing the bank of the word! - word end = (WORD0(calcend)&0x1FFF); // same for the end; - beg += borderbeg; - end += borderbeg; - - printf("cbeg=%x, add=%x, cend=%x, bbeg=%x, bend=%x, beg=%x, end=%x\n", calcbeg, num, calcend, bankbeg, bankend, beg, end ); - num+=inc; - } -} \ No newline at end of file diff --git a/src/test/kc/examples/cx16/cx16-bankload.c b/src/test/kc/examples/cx16/cx16-bankload.c deleted file mode 100644 index 3f904a4c1..000000000 --- a/src/test/kc/examples/cx16/cx16-bankload.c +++ /dev/null @@ -1,99 +0,0 @@ -// Commander X16 Load a file to a memory bank - -#pragma target(cx16) -#pragma link("cx16-bankload.ld") - -#include -#include -#include -#include -#include <6502.h> -#include -#include -#include - -#pragma data_seg(Sprite) -__export char SPRITE_PIXELS[] = kickasm(resource "ship.png") {{ - .var pic = LoadPicture("ship.png") - // palette: rgb->idx - .var palette = Hashtable() - // RGB value for each palette index - .var palList = List() - // Next palette index - .var nxt_idx = 0; - // Extract palette while outputting pixels as palete index values - .for (var y=0; y<64; y++) { - .for (var x=0;x<64; x++) { - // Find palette index (add if not known) - .var rgb = pic.getPixel(x,y); - .var idx = palette.get(rgb) - .if(idx==null) { - .eval idx = nxt_idx++; - .eval palette.put(rgb,idx); - .eval palList.add(rgb) - } - } - } - .if(nxt_idx>16) .error "Image has too many colours "+nxt_idx - - .for(var i=0;i<16;i++) { - .var rgb = palList.get(i) - .var red = floor(rgb / [256*256]) - .var green = floor(rgb/256) & 255 - .var blue = rgb & 255 - // bits 4-8: green, bits 0-3 blue - .byte green&$f0 | blue/16 - // bits bits 0-3 red - .byte red/16 - } - - .for (var y=0; y<64; y++) { - .for (var x=0;x<64; x+=2) { - // Find palette index (add if not known) - .var rgb = pic.getPixel(x,y); - .var idx1 = palette.get(rgb) - .if(idx1==null) { - .printnow "unknown rgb value!" - } - // Find palette index (add if not known) - .eval rgb = pic.getPixel(x+1,y); - .var idx2 = palette.get(rgb) - .if(idx2==null) { - .printnow "unknown rgb value!" - } - .byte idx1*16+idx2; - } - } -}}; - -#pragma data_seg(Data) - -void main() { - - vera_layer_set_text_color_mode( 1, VERA_LAYER_CONFIG_16C ); - screenlayer(1); - clrscr(); - printf("\n\nsprite banked file load and display demo.\n"); - - // RAM Bank where sprite is loaded - const dword BANK_SPRITE = 0x12000; - // VRAM address of sprite - const dword VRAM_SPRITE = 0x10000; - // Sprite attributes: 8bpp, in front, 64x64, address SPRITE_PIXELS_VRAM - struct VERA_SPRITE SPRITE_ATTR = { WORD0(VRAM_SPRITE/32)|VERA_SPRITE_8BPP, 320-32, 240-32, 0x0c, 0xf1 }; - - char status = load_to_bank(8, "SPRITE", BANK_SPRITE ); - - memcpy_bank_to_vram(VERA_PALETTE+32, BANK_SPRITE-2, 32); - memcpy_bank_to_vram(VRAM_SPRITE, BANK_SPRITE+32-2, 64*32); - - SPRITE_ATTR.ADDR = WORD0(VRAM_SPRITE/32)|VERA_SPRITE_4BPP; - SPRITE_ATTR.X = 100; - SPRITE_ATTR.Y = 100; - memcpy_to_vram(BYTE2(VERA_SPRITE_ATTR), (char*)WORD0(VERA_SPRITE_ATTR), &SPRITE_ATTR, sizeof(SPRITE_ATTR)); - - // Enable sprites - *VERA_CTRL &= ~VERA_DCSEL; - *VERA_DC_VIDEO |= VERA_SPRITES_ENABLE; - -} diff --git a/src/test/kc/examples/cx16/cx16-input.c b/src/test/kc/examples/cx16/cx16-input.c index 49715884d..8ce170b10 100644 --- a/src/test/kc/examples/cx16/cx16-input.c +++ b/src/test/kc/examples/cx16/cx16-input.c @@ -1,12 +1,12 @@ #pragma target(cx16) #include -#include +#include #include -// Find the value of a keypress as returned by kernal getin() +// Find the value of a keypress as returned by conio kbhit() void main() { printf("\npress a key\n"); char test = 0; - while(test==0) test=getin(); + while(test==0) test=kbhit(); printf("\nchar = %u\n", test); } \ No newline at end of file diff --git a/src/test/kc/examples/cx16/cx16-sprites.c b/src/test/kc/examples/cx16/cx16-sprites.c index ad6538f60..48afa5e72 100644 --- a/src/test/kc/examples/cx16/cx16-sprites.c +++ b/src/test/kc/examples/cx16/cx16-sprites.c @@ -4,6 +4,7 @@ #pragma target(cx16) #include #include <6502.h> +#include #define NUM_SPRITES 32 @@ -53,15 +54,15 @@ struct VERA_SPRITE SPRITE_ATTR = { WORD0(SPRITE_PIXELS_VRAM/32)|VERA_SPRITE_8BPP void main() { // Copy sprite data to VRAM - memcpy_to_vram(BYTE2(SPRITE_PIXELS_VRAM), (char*)WORD0(SPRITE_PIXELS_VRAM), SPRITE_PIXELS, 64*64); + memcpy_vram_ram((vram_bank_t)BYTE2(SPRITE_PIXELS_VRAM), (vram_offset_t)WORD0(SPRITE_PIXELS_VRAM), (ram_ptr_t)SPRITE_PIXELS, 64*64); // Copy sprite palette to VRAM - memcpy_to_vram(BYTE2(VERA_PALETTE), (char*)WORD0(VERA_PALETTE), SPRITE_PIXELS+64*64, 0x200); + memcpy_vram_ram((vram_bank_t)BYTE2(VERA_PALETTE), (vram_offset_t)WORD0(VERA_PALETTE), (ram_ptr_t)SPRITE_PIXELS+64*64, 0x200); // Copy 8* sprite attributes to VRAM char* vram_sprite_attr = (char*)WORD0(VERA_SPRITE_ATTR); for(char s=0;s=SINX_LEN) i_x -= SINX_LEN; i_y += 19; if(i_y>=SINY_LEN) i_y -= SINY_LEN; diff --git a/src/test/kc/examples/cx16/cx16-text.c b/src/test/kc/examples/cx16/cx16-text.c index c4d18cc11..b2e1bdfc4 100644 --- a/src/test/kc/examples/cx16/cx16-text.c +++ b/src/test/kc/examples/cx16/cx16-text.c @@ -7,14 +7,14 @@ void main() { // Copy message to screen one char at a time char MSG[] = "hello world!"; - char* vaddr = DEFAULT_SCREEN; + vram_offset_t vaddr = DEFAULT_SCREEN; for(char i=0;MSG[i];i++) { vpoke(0, vaddr++, MSG[i]); // Message vpoke(0, vaddr++, 0x21); // Red background, White foreground } // Copy message (and colors) to screen using memcpy_to_vram char MSG2[] = "h e l l o w o r l d ! "; // Space is 0x20, red background black foreground - memcpy_to_vram(0, DEFAULT_SCREEN+0x100, MSG2, sizeof(MSG2)); + memcpy_vram_ram(1, DEFAULT_SCREEN+0x100, MSG2, sizeof(MSG2)); } diff --git a/src/test/kc/examples/cx16/cx16-tilemap.c b/src/test/kc/examples/cx16/cx16-tilemap.c deleted file mode 100644 index d782d1017..000000000 --- a/src/test/kc/examples/cx16/cx16-tilemap.c +++ /dev/null @@ -1,145 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA layer 0 and 1. - -// Author: Sven Van de Velde - -// The default layer of the CX16 is layer 1. -// The CX16 starts in tile map mode, 1BPP in 16 color mode, and uses 8x8 tiles. -// The map base is address 0x00000 in VERA VRAM, the tile map is address 0x0F800. - -#pragma target(cx16) -#include -#include -#include -#include -#include <6502.h> - -void main() { - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - dword tilebase = vera_layer_get_tilebase_address(1); - - vera_layer_mode_tile(0, 0x10000, tilebase, 128, 128, 8, 8, 1); - - screenlayer(0); - scroll(0); // Scrolling on conio is deactivated, so conio will output beyond the borders of the visible screen. - textcolor(WHITE); - bgcolor(GREEN); - - draw_characters(tilebase); - - // Enable VSYNC IRQ (also set line bit 8 to 0) - SEI(); - *KERNEL_IRQ = &irq_vsync; - *VERA_IEN = VERA_VSYNC; - CLI(); - - vera_layer_show(0); - while(!kbhit()); - - vera_layer_hide(0); - textcolor(GREY); - bgcolor(GREEN); - draw_characters(tilebase); - vera_layer_show(0); - - screenlayer(1); - - textcolor(WHITE); - bgcolor(BLACK); - printf("\n\nthis demo displays the design of the standard x16 commander\n"); - printf("character set on the vera layer 0. it's the character set i grew up with :-).\n"); - printf("\nthe smooth scrolling is implemented by manipulating the scrolling \n"); - printf("registers of layer 0. at each raster line interrupt, \n"); - printf("the x and y scrolling registers are manipulated. the cx16 terminal \n"); - printf("works on layer 1. when layer 0 is enabled with the scrolling, \n"); - printf("it gives a nice background effect. this technique can be used to implement\n"); - printf("smooth scrolling backgrounds using tile layouts in games or demos.\n"); - - textcolor(YELLOW); - printf("\npress a key to continue ..."); - - while(!kbhit()); - - screenlayer(0); - vera_layer_hide(0); - textcolor(DARK_GREY); - bgcolor(BLACK); - draw_characters(tilebase); - vera_layer_show(0); - - screenlayer(1); - gotoxy(0,20); - -} - -void draw_characters(dword tilebase) { - dword tilecolumn = tilebase; - dword tilerow = tilebase; - clrscr(); - - for(byte y:0..15) { - tilerow = tilebase; - for(byte r:0..7) { - tilecolumn = tilerow; - for(byte x:0..15) { - vera_vram_address0(tilecolumn,VERA_INC_0); - byte data = *VERA_DATA0; - byte bit = data; - for(byte b:8..1) { - bit = (data >> (b-1)) & $1; - printf("%c", (char)((bit)?'*':'.')); - } - tilecolumn += 8; - printf(""); - } - //printf("\n"); - tilerow += 1; - } - tilebase += 8*16; - } -} - -// X sine index -volatile int scroll_x = 0; -volatile int scroll_y = 0; -volatile int delta_x = 2; -volatile int delta_y = 0; -volatile int speed = 2; - -// VSYNC Interrupt Routine -__interrupt(rom_sys_cx16) void irq_vsync() { - - scroll_x += delta_x; - scroll_y += delta_y; - - if( scroll_x>(128*8-80*8)) { - delta_x = 0; - delta_y = speed; - scroll_x = (128*8-80*8); - } - if( scroll_y>(128*8-60*8)) { - delta_x = -speed; - delta_y = 0; - scroll_y = (128*8-60*8); - } - if(scroll_x<0) { - delta_x = 0; - delta_y = -speed; - scroll_x = 0; - } - if(scroll_y<0) { - delta_x = speed; - delta_y = 0; - scroll_y = 0; - } - - vera_layer_set_horizontal_scroll(0,(word)scroll_x); - vera_layer_set_vertical_scroll(0,(word)scroll_y); - - // Reset the VSYNC interrupt - *VERA_ISR = VERA_VSYNC; -} \ No newline at end of file diff --git a/src/test/kc/examples/cx16/cx16-veralayers.c b/src/test/kc/examples/cx16/cx16-veralayers.c deleted file mode 100644 index 0bc8cdfe1..000000000 --- a/src/test/kc/examples/cx16/cx16-veralayers.c +++ /dev/null @@ -1,135 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA layer 0 and 1. - -// Author: Sven Van de Velde - -// The default layer of the CX16 is layer 1. -// The CX16 starts in tile map mode, 1BPP in 16 color mode, and uses 8x8 tiles. -// The map base is address 0x00000 in VERA VRAM, the tile map is address 0x0F800. - -#pragma target(cx16) -#include -#include -#include -#include - -void main() { - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - // Wait for a keypress and after clear the line! - textcolor(YELLOW); - printf("press a key"); - while(!kbhit()); - clearline(); - - screenlayer(1); - - gotoxy(0,16); - textcolor(GREEN); - - printf("this program demonstrates the layer functionality in text mode.\n"); - - // Here we use the screensizex and screensizey functions to show the width and height of the text screen. - printf("\nvera card width = %u; height = %u\n", screensizex(), screensizey()); - - // This is the content of the main controller registers of the VERA of layer 1. - // Layer 1 is the default layer that is activated in the CX16 at startup. - // It displays the characters in 1BPP 16x16 color mode! - unsigned byte dcvideo = *VERA_DC_VIDEO; - printf("\nvera dc video = %x\n", dcvideo); - unsigned byte config = vera_layer_get_config(1); - printf("\nvera layer 1 config = %x\n", config); - unsigned byte layershown = vera_layer_is_visible(1); - printf("vera layer 1 shown = %c\n", layershown); - unsigned byte mapbase = vera_layer_get_mapbase(1); - unsigned byte tilebase = vera_layer_get_tilebase(1); - printf("vera layer 1 mapbase = %hhx, tilebase = %hhx\n", mapbase, tilebase); - - // Wait for a keypress and after clear the line! - textcolor(YELLOW); - printf("press a key"); - while(!kbhit()); - clearline(); - - // Now we continue with demonstrating the layering! - // We set the mapbase of layer 0 to an address in VRAM. - // We copy the tilebase address from layer 1, so that we reference to the same tilebase. - // We print a text on layer 0, which of course, won't yet be displayed, - // because we haven't activated layer 0 on the VERA. - // But the text will be printed and awaiting to be displayer later, once we activate layer 0! - // But first, we also print the layer 0 VERA configuration. - // This statement sets the base of the display layer 1 at VRAM address 0x0200 - - vera_layer_set_mapbase(0,0x80); // Set the map base to address 0x10000 in VERA VRAM! - vera_layer_set_config(0, vera_layer_get_config(1)); - vera_layer_set_tilebase(0, vera_layer_get_tilebase(1)); - - textcolor(WHITE); - config = vera_layer_get_config(0); - printf("\nvera layer 0 config = %x\n", vera_layer_get_config(0)); - layershown = vera_layer_is_visible(0); - printf("vera layer 0 shown = %x\n", layershown); - mapbase = vera_layer_get_mapbase(0); - tilebase = vera_layer_get_tilebase(0); - printf("vera layer 0 mapbase = %x, tilebase = %x\n", mapbase, tilebase); - - // Now we print the layer 0 text on the layer 0! - screenlayer(0); // We set conio to output to layer 0 instead of layer 1! - textcolor(BLUE); - bgcolor(BLACK); - clrscr(); // We clear the screen of layer 0! - bgcolor(WHITE); - gotoxy(19,4); - printf(" "); - gotoxy(19,5); - printf(" this is printed on layer 0 !!! "); - gotoxy(19,6); - printf(" "); - - screenlayer(1); // Now we ask conio again to output to layer 1! - - // Wait for a keypress and after clear the line! - textcolor(YELLOW); - bgcolor(BLACK); - printf("press a key to show layer 0 and show the text!"); - while(!kbhit()); - clearline(); - - // Now we activate layer 0. - vera_layer_show(0); - textcolor(WHITE); - bgcolor(BLACK); - printf("vera layer 0 shown = %x. ", vera_layer_is_visible(0)); - - // Wait for a keypress and after clear the line! - textcolor(YELLOW); - bgcolor(BLACK); - printf("press a key to hide layer 0 and hide the text again"); - while(!kbhit()); - clearline(); - - vera_layer_hide(0); - textcolor(WHITE); - bgcolor(BLACK); - printf("vera layer 0 shown = %x. ", vera_layer_is_visible(0)); - - // Wait for a keypress and after clear the line! - textcolor(YELLOW); - bgcolor(BLACK); - printf("press a key to finish"); - while(!kbhit()); - clearline(); - - clrscr(); - textcolor(RED); - bgcolor(WHITE); - gotoxy(19,10); - printf(" "); - gotoxy(19,11); - printf(" analyze the code and learn! "); - gotoxy(19,12); - printf(" "); -} diff --git a/src/test/kc/examples/cx16/cx16-veramodes.c b/src/test/kc/examples/cx16/cx16-veramodes.c deleted file mode 100644 index fb283c974..000000000 --- a/src/test/kc/examples/cx16/cx16-veramodes.c +++ /dev/null @@ -1,1230 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA tile map modes and layering. - -// Author: Sven Van de Velde - -#pragma target(cx16) -#include -#include -#include -#include - -#include -#include -#include - -void main() { - - do { - vera_layer_mode_text(1, 0x00000, 0x0f800, 64, 64, 8, 8, 4); - vera_display_set_scale_double(); - vera_layer_show(1); - screenlayer(1); - - textcolor(WHITE); - bgcolor(BLUE); - clrscr(); - - printf( "\n *** vera demo ***\n\n" ); - printf( "1. bitmap - 320x240 - 1 bpp.\n"); - printf( "2. bitmap - 640x480 - 1 bpp.\n"); - printf( "3. bitmap - 320x240 - 2 bpp.\n"); - printf( "4. bitmap - 640x480 - 2 bpp.\n"); - printf( "5. bitmap - 320x240 - 4 bpp.\n"); - printf( "6. bitmap - 320x240 - 8 bpp.\n"); - - printf( "\na. text - 8x8 - 1 bpp, 16c.\n"); - printf( "b. text - 8x8 - 1 bpp, 256c.\n"); - - printf( "\nc. tile - 8x8 - 2 bpp.\n"); - printf( "d. tile - 16x16 - 2 bpp.\n"); - printf( "e. tile - 8x8 - 4 bpp.\n"); - printf( "f. tile - 16x16 - 4 bpp.\n"); - printf( "g. tile - 8x8 - 8 bpp.\n"); - printf( "h. tile - 16x16 - 8 bpp.\n"); - - printf( "\n0. exit.\n"); - - byte menu = 0; - while(menu==0) { - menu = getin(); - } - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - switch( menu ) { - case 49: - bitmap_320_x_240_1BPP(); - break; - case 50: - bitmap_640_x_480_1BPP(); - break; - case 51: - bitmap_320_x_240_2BPP(); - break; - case 52: - bitmap_640_x_480_2BPP(); - break; - case 53: - bitmap_320_x_240_4BPP(); - break; - case 54: - bitmap_320_x_240_8BPP(); - break; - case 65: - text_8_x_8_1BPP_16_color(); - break; - case 66: - text_8_x_8_1BPP_256_color(); - break; - case 67: - tile_8_x_8_2BPP_4_color(); - break; - case 68: - tile_16_x_16_2BPP_4_color(); - break; - case 69: - tile_8_x_8_4BPP_16_color(); - break; - case 70: - tile_16_x_16_4BPP_16_color(); - break; - case 71: - tile_8_x_8_8BPP_256_color(); - break; - case 72: - tile_16_x_16_8BPP_256_color(); - break; - } - - vera_layer_hide(0); - vera_layer_mode_text(1, 0x00000, 0x0f800, 64, 64, 8, 8, 4); - vera_layer_show(1); - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLUE); - clrscr(); - - } while( menu != 48 ); - -} - -void tile_16_x_16_8BPP_256_color() { - - vera_layer_mode_text( 1, 0x00000, 0x0F800, 128, 128, 8, 8, 256 ); - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - byte tiles[256] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - }; - - // 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. - // VERA VRAM holds in bank 1 many registers that interfere loading all of this data. - // So it is better to load all in bank 0, but then there is an other issue. - // So the default CX16 character set is located in bank 0, at address 0xF800. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x10000. - // This is now all easily done with a few statements in the new kickc vera lib ... - - memcpy_in_vram(1, 0xF000, VERA_INC_1, 0, 0xF800, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. - vera_layer_mode_tile(1, 0x10000, 0x1F000, 128, 64, 8, 8, 1); - vera_display_set_scale_none(); - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - // Now we can use the full bank 0! - // We set the mapbase of the tile demo to output to 0x12000, - // and the tilebase is set to 0x0000! - vera_layer_mode_tile(0, 0x14000, 0x00000, 64, 64, 16, 16, 8); - - - word tilebase = 0x0000; - memcpy_to_vram(0, tilebase, tiles, 256); - tilebase+=256; - for(byte t:1..255) { - for(byte p:0..255) { - tiles[p]+=1; - } - memcpy_to_vram(0, tilebase, tiles, 256); - tilebase+=256; - } - - //vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h, byte hflip, byte vflip, byte offset) - - vera_tile_area(0, 0, 0, 0, 40, 30, 0, 0, 0); - - word tile = 0; - - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - byte row = 1; - for(byte r:0..11) { - byte column = 0; - for(byte c:0..19) { - vera_tile_area(0, tile, column, row, 1, 1, 0, 0, 0); - column+=2; - tile++; - tile &= 0xff; - } - row += 2; - } - - gotoxy(0,50); - printf("vera in tile mode 8 x 8, color depth 8 bits per pixel.\n"); - - printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n"); - printf("each tile can have a variation of 256 colors.\n"); - printf("the vera palette of 256 colors, can be used by setting the palette\n"); - printf("offset for each tile.\n"); - printf("here each column is displaying the same tile, but with different offsets!\n"); - printf("each offset aligns to multiples of 16 colors in the palette!.\n"); - printf("however, the first color will always be transparent (black).\n"); - - vera_layer_show(0); - - while(!getin()); - - vera_tile_area(0, 0, 0, 0, 40, 30, 0, 0, 0); - - tile = 0; - row = 0; - for(byte r:0..11) { - byte column = 0; - for(byte c:0..19) { - vera_tile_area(0, tile, column, row, 2, 2, 0, 0, 0); - column+=2; - tile++; - tile &= 0xff; - } - row += 2; - } - - while(!getin()); - - memcpy_in_vram(0, 0xF800, VERA_INC_1, 1, 0xF000, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. -} - - -void tile_8_x_8_8BPP_256_color() { - - vera_layer_mode_tile(0, 0x04000, 0x14000, 128, 128, 8, 8, 8); - vera_display_set_scale_none(); - - vera_layer_mode_text( 1, 0x00000, 0x0F800, 128, 128, 8, 8, 256 ); - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - byte tiles[64] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - }; - - word tilebase = 0x4000; - memcpy_to_vram(1, tilebase, tiles, 64); - tilebase+=64; - for(byte t:1..255) { - for(byte p:0..63) { - tiles[p]+=1; - } - memcpy_to_vram(1, tilebase, tiles, 64); - tilebase+=64; - } - - //vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h, byte hflip, byte vflip, byte offset) - - vera_tile_area(0, 0, 0, 0, 80, 60, 0, 0, 0); - - word tile = 0; - - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - byte row = 1; - for(byte r:0..7) { - byte column = 1; - for(byte c:0..31) { - vera_tile_area(0, tile, column, row, 1, 1, 0, 0, 0); - column+=2; - tile++; - tile &= 0xff; - } - row += 2; - } - - tile = 0; - row = 20; - for(byte r:0..7) { - byte column = 1; - for(byte c:0..31) { - vera_tile_area(0, tile, column, row, 2, 2, 0, 0, 0); - column+=2; - tile++; - tile &= 0xff; - } - row += 2; - } - - vera_layer_show(0); - - gotoxy(0,50); - printf("vera in tile mode 8 x 8, color depth 8 bits per pixel.\n"); - - printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n"); - printf("each tile can have a variation of 256 colors.\n"); - printf("the vera palette of 256 colors, can be used by setting the palette\n"); - printf("offset for each tile.\n"); - printf("here each column is displaying the same tile, but with different offsets!\n"); - printf("each offset aligns to multiples of 16 colors in the palette!.\n"); - printf("however, the first color will always be transparent (black).\n"); - - while(!getin()); - - memcpy_in_vram(0, 0xF800, VERA_INC_1, 1, 0xF000, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. -} - - -void tile_16_x_16_4BPP_16_color() { - - vera_layer_mode_tile(0, 0x04000, 0x14000, 128, 128, 16, 16, 4); - vera_display_set_scale_none(); - - vera_layer_mode_text( 1, 0x00000, 0x0F800, 128, 128, 8, 8, 256 ); - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - byte tiles[2048] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - }; - - memcpy_to_vram(1, 0x4000, tiles, 2048); - - //vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h, byte hflip, byte vflip, byte offset) - - vera_tile_area(0, 0, 0, 0, 40, 30, 0, 0, 0); - - word tile = 0; - - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - tile = 0; - byte column = 1; - for(byte c:0..7) { - vera_tile_area(0, tile, column, 1, 1, 1, 0, 0, 0); - column+=4; - tile++; - } - column = 1; - for(byte c:0..7) { - vera_tile_area(0, tile, column, 3, 1, 1, 0, 0, 0); - column+=4; - tile++; - } - - tile = 0; - column = 1; - for(byte c:0..7) { - vera_tile_area(0, tile, column, 5, 3, 3, 0, 0, 0); - column+=4; - tile++; - } - column = 1; - for(byte c:0..7) { - vera_tile_area(0, tile, column, 9, 3, 3, 0, 0, 0); - column+=4; - tile++; - } - - tile = 0; - byte offset = 0; - - byte row = 13; - - for(byte r:0..7) { - byte column = 1; - for(byte c:0..31) { - vera_tile_area(0, tile, column, row, 1, 1, 0, 0, offset); - column+=1; - tile++; - if((c & 0x0f) == 0x0f) offset++; - tile &= 0x0f; - } - row += 1; - } - - vera_layer_show(0); - - gotoxy(0,50); - printf("vera in tile mode 16 x 16, color depth 4 bits per pixel.\n"); - - printf("in this mode, tiles are 16 pixels wide and 16 pixels tall.\n"); - printf("each tile can have a variation of 16 colors.\n"); - printf("the vera palette of 256 colors, can be used by setting the palette\n"); - printf("offset for each tile.\n"); - printf("here each column is displaying the same tile, but with different offsets!\n"); - printf("each offset aligns to multiples of 16 colors in the palette!.\n"); - printf("however, the first color will always be transparent (black).\n"); - - while(!getin()); -} - - -void tile_8_x_8_4BPP_16_color() { - - vera_layer_mode_tile(0, 0x04000, 0x14000, 128, 128, 8, 8, 4); - vera_display_set_scale_none(); - - vera_layer_mode_text( 1, 0x00000, 0x0F800, 128, 128, 8, 8, 256 ); - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - byte tiles[512] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - }; - - memcpy_to_vram(1, 0x4000, tiles, 512); - - vera_tile_area(0, 0, 0, 0, 80, 60, 0, 0, 0); - - word tile = 0; - - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - tile = 0; - byte column = 1; - for(byte c:0..7) { - vera_tile_area(0, tile, column, 1, 1, 1, 0, 0, 0); - column+=8; - tile++; - } - column = 1; - for(byte c:0..7) { - vera_tile_area(0, tile, column, 3, 1, 1, 0, 0, 0); - column+=8; - tile++; - } - - tile = 0; - column = 1; - for(byte c:0..7) { - vera_tile_area(0, tile, column, 5, 6, 6, 0, 0, 0); - column+=8; - tile++; - } - column = 1; - for(byte c:0..7) { - vera_tile_area(0, tile, column, 12, 6, 6, 0, 0, 0); - column+=8; - tile++; - } - - tile = 0; - byte offset = 0; - - byte row = 20; - - for(byte r:0..7) { - byte column = 1; - for(byte c:0..31) { - vera_tile_area(0, tile, column, row, 2, 2, 0, 0, offset); - column+=2; - tile++; - if((c & 0x0f) == 0x0f) offset++; - tile &= 0x0f; - } - row += 2; - } - - vera_layer_show(0); - - gotoxy(0,50); - printf("vera in tile mode 8 x 8, color depth 4 bits per pixel.\n"); - - printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n"); - printf("each tile can have a variation of 16 colors.\n"); - printf("the vera palette of 256 colors, can be used by setting the palette\n"); - printf("offset for each tile.\n"); - printf("here each column is displaying the same tile, but with different offsets!\n"); - printf("each offset aligns to multiples of 16 colors in the palette!.\n"); - printf("however, the first color will always be transparent (black).\n"); - - while(!getin()); -} - - -void tile_16_x_16_2BPP_4_color() { - - vera_layer_mode_tile(0, 0x04000, 0x14000, 128, 128, 16, 16, 2); - vera_display_set_scale_none(); - - vera_layer_mode_text( 1, 0x00000, 0x0F800, 128, 128, 8, 8, 256 ); - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - byte tiles[256] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - }; - - memcpy_to_vram(1, 0x4000, tiles, 256); - - //vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h, byte hflip, byte vflip, byte offset) - - vera_tile_area(0, 0, 0, 0, 40, 30, 0, 0, 0); - - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - vera_tile_area(0, 0, 4, 2, 1, 1, 0, 0, 0); - vera_tile_area(0, 1, 10, 2, 1, 1, 0, 0, 0); - vera_tile_area(0, 2, 16, 2, 1, 1, 0, 0, 0); - vera_tile_area(0, 3, 22, 2, 1, 1, 0, 0, 0); - - // Draw 4 squares with each tile, starting from row 6, width 4, height 4, separated by 2 characters. - vera_tile_area(0, 0, 4, 4, 4, 4, 0, 0, 0); - vera_tile_area(0, 1, 10, 4, 4, 4, 0, 0, 0); - vera_tile_area(0, 2, 16, 4, 4, 4, 0, 0, 0); - vera_tile_area(0, 3, 22, 4, 4, 4, 0, 0, 0); - - word tile = 0; - byte offset = 0; - - byte row = 10; - - for(byte r:0..3) { - byte column = 4; - for(byte c:0..16) { - vera_tile_area(0, tile, column, row, 1, 1, 0, 0, offset); - column+=2; - offset++; - } - tile++; - tile &= 0x3; - row += 2; - } - - vera_layer_show(0); - - gotoxy(0,50); - printf("vera in tile mode 8 x 8, color depth 2 bits per pixel.\n"); - - printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n"); - printf("each tile can have a variation of 4 colors.\n"); - printf("the vera palette of 256 colors, can be used by setting the palette\n"); - printf("offset for each tile.\n"); - printf("here each column is displaying the same tile, but with different offsets!\n"); - printf("each offset aligns to multiples of 16 colors, and only the first 4 colors\n"); - printf("can be used per offset!\n"); - printf("however, the first color will always be transparent (black).\n"); - - while(!getin()); -} - -void tile_8_x_8_2BPP_4_color() { - - vera_layer_mode_tile(0, 0x04000, 0x14000, 128, 128, 8, 8, 2); - vera_display_set_scale_none(); - - vera_layer_mode_text( 1, 0x00000, 0x0F800, 128, 128, 8, 8, 256 ); - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - byte tiles[64] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; - - byte map[16] = {0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x02,0x00,0x02,0x00,0x03,0x00,0x03,0x00}; - - memcpy_to_vram(1, 0x4000, tiles, 64); - - //vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h, byte hflip, byte vflip, byte offset) - - vera_tile_area(0, 0, 0, 0, 80, 60, 0, 0, 0); - - // Draw 4 squares with each tile, staring from row 2, width 10, height 10, separated by 2 characters. - vera_tile_area(0, 0, 4, 4, 10, 10, 0, 0, 0); - vera_tile_area(0, 1, 16, 4, 10, 10, 0, 0, 0); - vera_tile_area(0, 2, 28, 4, 10, 10, 0, 0, 0); - vera_tile_area(0, 3, 40, 4, 10, 10, 0, 0, 0); - - word tile = 0; - byte offset = 0; - - byte row = 22; - - for(byte r:0..3) { - byte column = 4; - for(byte c:0..15) { - vera_tile_area(0, tile, column, row, 3, 3, 0, 0, offset); - column+=4; - offset++; - } - tile++; - tile &= 0x3; - row += 4; - } - - vera_layer_show(0); - - gotoxy(0,50); - printf("vera in tile mode 8 x 8, color depth 2 bits per pixel.\n"); - - printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n"); - printf("each tile can have a variation of 4 colors.\n"); - printf("the vera palette of 256 colors, can be used by setting the palette\n"); - printf("offset for each tile.\n"); - printf("here each column is displaying the same tile, but with different offsets!\n"); - printf("each offset aligns to multiples of 16 colors, and only the first 4 colors\n"); - printf("can be used per offset!\n"); - printf("however, the first color will always be transparent (black).\n"); - - while(!getin()); -} - - -void text_8_x_8_1BPP_256_color() { - - // Configure the VERA card to work in text, 256 mode. - // The color mode is here 256 colors, (256 foreground on a black transparent background). - vera_layer_mode_text( 1, 0x00000, 0x0F800, 128, 128, 8, 8, 256 ); - vera_display_set_scale_none(); - screenlayer(1); - - for(byte c:0..255) { - textcolor(c); - printf(" ****** "); - } - - vera_layer_show(1); - - gotoxy(0,50); - textcolor(WHITE); - bgcolor(BLACK); - printf("vera in text mode 8 x 8, color depth 1 bits per pixel.\n"); - printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n"); - printf("each character can have a variation of 256 foreground colors.\n"); - printf("here we display 6 stars (******) each with a different color.\n"); - printf("however, the first color will always be transparent (black).\n"); - printf("in this mode, the background color cannot be set and is always transparent.\n"); - - while(!getin()); -} - -void text_8_x_8_1BPP_16_color() { - - // Configure the VERA card to work in text. - // The color mode is here 16 colors, (16 foreground and 16 background colors). - vera_layer_mode_text(1, 0x00000, 0x0F800, 128, 128, 8, 8, 16); - vera_display_set_scale_none(); - screenlayer(1); - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - - for(byte c:0..255) { - bgcolor(c); - printf(" ++++++ "); - } - - vera_layer_show(1); - - gotoxy(0,50); - textcolor(WHITE); - bgcolor(BLACK); - printf("vera in text mode 8 x 8, color depth 1 bits per pixel.\n"); - printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n"); - printf("each character can have a variation of 16 foreground colors and 16 background colors.\n"); - printf("here we display 6 stars (******) each with a different color.\n"); - printf("however, the first color will always be transparent (black).\n"); - printf("in this mode, the background color cannot be set and is always transparent.\n"); - - while(!getin()); -} - - -void bitmap_320_x_240_1BPP() { - - // 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. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x14000. - // This is now all easily done with a few statements in the new kickc vera lib ... - memcpy_in_vram(1, 0xF000, VERA_INC_1, 0, 0xF800, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. - vera_layer_mode_bitmap(0, (dword)0x00000, 320, 1); - - vera_layer_mode_tile(1, 0x14000, 0x1F000, 128, 64, 8, 8, 1); - screenlayer(1); - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,25); - printf("vera in bitmap mode,\n"); - printf("color depth 1 bits per pixel.\n"); - printf("in this mode, it is possible to display\n"); - printf("graphics in 2 colors (black or color).\n"); - - vera_layer_show(0); - - bitmap_init(0, 0x00000); - bitmap_clear(); - - gotoxy(0,29); - textcolor(YELLOW); - printf("press a key ..."); - - while(!getin()) { - bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&1); - }; - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,26); - printf("here you see all the colors possible.\n"); - - gotoxy(0,29); - textcolor(YELLOW); - printf("press a key ..."); - - word x = 0; - byte color = 0; - while(!getin()) { - bitmap_line(x, x, 0, 199, color); - color++; - if(color>1) color=0; - x++; - if(x>319) x=0; - }; - memcpy_in_vram(0, 0xF800, VERA_INC_1, 1, 0xF000, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. -} - -void bitmap_640_x_480_1BPP() { - - vera_display_set_scale_none(); - - // 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. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x14000. - // This is now all easily done with a few statements in the new kickc vera lib ... - memcpy_in_vram(1, 0xF000, VERA_INC_1, 0, 0xF800, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. - vera_layer_mode_tile(1, 0x14000, 0x1F000, 128, 64, 8, 8, 1); - - vera_layer_mode_bitmap(0, (dword)0x00000, 640, 1); - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,54); - printf("vera in bitmap mode,\n"); - printf("color depth 1 bits per pixel.\n"); - printf("in this mode, it is possible to display\n"); - printf("graphics in 2 colors (black or color).\n"); - - vera_layer_show(0); - - bitmap_init(0, 0x00000); - bitmap_clear(); - - gotoxy(0,59); - textcolor(YELLOW); - printf("press a key ..."); - - while(!getin()) { - bitmap_line(modr16u(rand(),639,0), modr16u(rand(),639,0), modr16u(rand(),399,0), modr16u(rand(),399,0), rand()&1); - }; - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,54); - printf("here you see all the colors possible.\n"); - - gotoxy(0,59); - textcolor(YELLOW); - printf("press a key ..."); - - word x = 0; - byte color = 0; - while(!getin()) { - bitmap_line(x, x, 0, 399, color); - color++; - if(color>1) color=0; - x++; - if(x>639) x=0; - }; - memcpy_in_vram(0, 0xF800, VERA_INC_1, 1, 0xF000, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. -} - -void bitmap_320_x_240_2BPP() { - - // 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. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x14000. - // This is now all easily done with a few statements in the new kickc vera lib ... - memcpy_in_vram(1, 0xF000, VERA_INC_1, 0, 0xF800, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. - vera_layer_mode_tile(1, 0x14000, 0x1F000, 128, 64, 8, 8, 1); - - vera_layer_mode_bitmap(0, (dword)0x00000, 320, 2); - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,25); - printf("vera in bitmap mode,\n"); - printf("color depth 2 bits per pixel.\n"); - printf("in this mode, it is possible to display\n"); - printf("graphics in 4 colors.\n"); - - vera_layer_show(0); - - bitmap_init(0, 0x00000); - bitmap_clear(); - - gotoxy(0,29); - textcolor(YELLOW); - printf("press a key ..."); - - while(!getin()) { - bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&3); - }; - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,26); - printf("here you see all the colors possible.\n"); - - gotoxy(0,29); - textcolor(YELLOW); - printf("press a key ..."); - - word x = 0; - byte color = 0; - while(!getin()) { - bitmap_line(x, x, 0, 199, color); - color++; - if(color>3) color=0; - x++; - if(x>319) x=0; - }; - memcpy_in_vram(0, 0xF800, VERA_INC_1, 1, 0xF000, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. -} - -void bitmap_640_x_480_2BPP() { - - // 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. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x14000. - // This is now all easily done with a few statements in the new kickc vera lib ... - memcpy_in_vram(1, 0xF000, VERA_INC_1, 0, 0xF800, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. - vera_layer_mode_tile(1, 0x14000, 0x1F000, 128, 64, 8, 8, 1); - - vera_layer_mode_bitmap(0, (dword)0x00000, 640, 2); - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,54); - printf("vera in bitmap mode,\n"); - printf("color depth 1 bits per pixel.\n"); - printf("in this mode, it is possible to display\n"); - printf("graphics in 2 colors (black or color).\n"); - - vera_layer_show(0); - - bitmap_init(0, 0x00000); - bitmap_clear(); - - gotoxy(0,59); - textcolor(YELLOW); - printf("press a key ..."); - - while(!getin()) { - bitmap_line(modr16u(rand(),639,0), modr16u(rand(),639,0), modr16u(rand(),399,0), modr16u(rand(),399,0), rand()&3); - }; - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,54); - printf("here you see all the colors possible.\n"); - - gotoxy(0,59); - textcolor(YELLOW); - printf("press a key ..."); - - word x = 0; - byte color = 0; - while(!getin()) { - bitmap_line(x, x, 0, 399, color); - color++; - if(color>3) color=0; - x++; - if(x>639) x=0; - }; - memcpy_in_vram(0, 0xF800, VERA_INC_1, 1, 0xF000, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. -} - -void bitmap_320_x_240_4BPP() { - - // 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. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x14000. - // This is now all easily done with a few statements in the new kickc vera lib ... - - memcpy_in_vram(1, 0xF000, VERA_INC_1, 0, 0xF800, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. - vera_layer_mode_tile(1, 0x14000, 0x1F000, 128, 64, 8, 8, 1); - - vera_layer_mode_bitmap(0, (dword)0x00000, 320, 4); - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,25); - printf("vera in bitmap mode,\n"); - printf("color depth 4 bits per pixel.\n"); - printf("in this mode, it is possible to display\n"); - printf("graphics in 16 colors.\n"); - - vera_layer_show(0); - - bitmap_init(0, 0x00000); - bitmap_clear(); - - gotoxy(0,29); - textcolor(YELLOW); - printf("press a key ..."); - - while(!getin()) { - bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&15); - }; - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,26); - printf("here you see all the colors possible.\n"); - - gotoxy(0,29); - textcolor(YELLOW); - printf("press a key ..."); - - word x = 0; - byte color = 0; - while(!getin()) { - bitmap_line(x, x, 0, 199, color); - color++; - if(color>15) color=0; - x++; - if(x>319) x=0; - }; - - memcpy_in_vram(0, 0xF800, VERA_INC_1, 1, 0xF000, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. -} - -void bitmap_320_x_240_8BPP() { - - // 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. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x14000. - // This is now all easily done with a few statements in the new kickc vera lib ... - memcpy_in_vram(1, 0xF000, VERA_INC_1, 0, 0xF800, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. - vera_layer_mode_tile(1, 0x14000, 0x1F000, 128, 64, 8, 8, 1); - - vera_layer_mode_bitmap(0, (dword)0x00000, 320, 8); - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,25); - printf("vera in bitmap mode,\n"); - printf("color depth 8 bits per pixel.\n"); - printf("in this mode, it is possible to display\n"); - printf("graphics in 256 colors.\n"); - - vera_layer_show(0); - - bitmap_init(0, 0x00000); - bitmap_clear(); - - gotoxy(0,29); - textcolor(YELLOW); - printf("press a key ..."); - - while(!getin()) { - bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&255); - }; - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,26); - printf("here you see all the colors possible.\n"); - - gotoxy(0,29); - textcolor(YELLOW); - printf("press a key ..."); - - word x = 0; - byte color = 0; - while(!getin()) { - bitmap_line(x, x, 0, 199, color); - color++; - x++; - if(x>319) x=0; - }; - - memcpy_in_vram(0, 0xF800, VERA_INC_1, 1, 0xF000, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. -} diff --git a/src/test/kc/examples/cx16/ship.png b/src/test/kc/examples/cx16/ship.png deleted file mode 100644 index 295195466e7cf2ca23fbde9f9b8d33f2ec4ad94d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1142 zcmV-+1d02JP);WN_#AGYF%pP%5%M)gIY`=-lY)c*40u~QWzWnvX%R@x|&+(@2Za;*8Xwg(kNkI649uXl@JtfyF zg4I>|DJ7BC+Q7fe)kOePmD`Z2CIhzURVH?sa<{uYR+j;!i?G5+{0tzC z2rU}X(sclxXCPcF{KF0@CgLwP_0_)Cxn6D6+>cLjWGeR!bgQa zVZ(TP{;pOtH+lThU(f*>)PZMk9ZK+A&F=5?*J8#^^TFZCT#?XgOzmp5qJLT;`#|-X zo2*Z5VRf=UQ} zo6Ck`(pnb>PM5aXA_2$sHvp(bB?wCZZC)~*h5*)@t0Jg%NG{%VXAwJ}0Wh1#qwD}= zLtLuRWay2V^OYi}@3SLoK!B+Me${x&0NDP=|41htfn(Hs7mnkE|_ z7$0gA`_O_o;6tY5?d^pRKCBmd{{-=|Lh;2!$3905+gI(*7LPNY0y@ z09zT*$mZf6LZ=g81`ldnDL$(W<-DN)zZGoB(-VW6bpe)BPOL5JyPr+{{~xRg+BP z{;r_yIyjuYG2lXRxxoFP@|v*%bc2gN=)WUCg-X|fvVpkp+}qFbBvq>0U()|J;V}bsOlxZZ;F3t(6u!0xSfb* zo!^FM(X$#%fR6iw>^%+j4xOgxc@6-;vqx8*DD9#Kt8UFsIp19YxQ$x&!bd;K0+3WM zk%$`#5&{)MS=3T0S4@~3tm&it$Q2T+mT^oUEqE0Dc)$7`;7A(ja)@QCK1*WD<-~a#s diff --git a/src/test/kc/examples/cx16/spacedemo/Metal_1/frame_1.png b/src/test/kc/examples/cx16/spacedemo/Metal_1/frame_1.png deleted file mode 100644 index 86a26465f98f7b37b845915a91b15a7a397fb5a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 556 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|j01c^T!AzT z3yYVF<-L7b)s;y>u~Adzc6<2*MHOaAs3@Ghb#=?3EtU?BXZKC{_Uqf4U2Bf+TcW<+ z31qlnNswPK!+$g&AnLFXXit}?i(`mIZ)tF6*R;taq;O&fxrWNU5E4+Ho3@d{^h~x7H|0DZQ`P(0ijN=fuRN0*>%f! zLeq0>IvQt}PU-$K|M$0^(iM$AYz!^5_AN2kzplx#W>4xv$=GcQf4a*a0k!dQubx+L ze?-LD@b6Xb`;5!>p5*##>c6>2Xv6KL(@&UoY~MLgFQIR)e2C7Q>Yi__bjk$O>vuAh z^C{0WT#zNXW5I`m3%^cvj^29G;Z$8f{n3!uVJBWK-xqcL3x7IS^1X7^?-#!Bc3EYY zl&zO-_4>gT!;`;Cgxuz8uesM$(5IRAroZUIh02sUsqeJ;)-SkvsOz63<2800AFIs) p+ddvkTj5qO@%PhHd&S*#j34Xdqt|`k77C0q22WQ%mvv4FO#p$!1`GfI diff --git a/src/test/kc/examples/cx16/spacedemo/Metal_1/frame_2.png b/src/test/kc/examples/cx16/spacedemo/Metal_1/frame_2.png deleted file mode 100644 index 2de84d9255762c65757873b3100115926309445e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|j01c^T!AzT z3yYVF<-L7b)s;y>u~Adzc6<2*MHOaAs3@Ghb#=?3EtU?BXZKC{_Uqf4U2Bf+TcW<+ z31qlnNswPK!+$g&AnLFXXwQC67sn8b-rV4aRm_SU)@ubbW^Vspe@iuE_um;`U$1Oo z5m;Z*|LythTh+&=-aKnzx~udB^IDS&Z#Sj=O#B)9R@XONtn{C`(uK(lOBNUAuSh;U z$vZ+qaLR(8>w;fhp7U${-zkq-89(tl$ko5qaB7<*uyD@DXX{O!O*}QC9&WVl*7{y% zEb!ofnkC0dPPr4O19)tl-$_`;K0Khs)>3&OCA4LO|04DWV$6k2*9)26EmCe(G0?fz ztS#5aTzr2K>x<-`2xB{zrFx5mQ!ZRgu5CRxH|`JPZ|_nsmM-T)nbpB%{bwCq%7t8( zw$EC3b=rfSn_O(<7g|mIx@4o|72bQD5ze`RN<41$E&*HsyD+e+Z(lh zR&iac-r1FH>ewBBKE^9W$n5G0mmf0Bc6}_uQ5Q3GMdL2_792fLwTOWy!LTvl`)T92 zJ1bYLVrH!BjMx{iHYMqt;Pa%b246m#O_Q6RVleaV^~2{L2fMEf&=qsd6H_!eex`k^ s?Sbt-&qSw2#Q5m`sTL|{I9tbXc8y$(R?C7{z<6fxboFyt=akR{01Gt`ApigX diff --git a/src/test/kc/examples/cx16/spacedemo/Metal_1/frame_3.png b/src/test/kc/examples/cx16/spacedemo/Metal_1/frame_3.png deleted file mode 100644 index 6e22143157967cc4df69b5b2cfcf55159cb1be38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|j01c^T!AzT z3yYVF<-L7b)s;y>u~Adzc6<2*MHOaAs3@Ghb#=?3EtU?BXZKC{_Uqf4U2Bf+TcW<+ z31qlnNswPK!+$g&AnLFXXwMu^7sn8b-qPUcqQ?e2-Xe}Fv0-Qb`tN4QTxuWfoBm{$ zL0pjBL^k7w*~#l1DqNnOTkq2HT=`AqdY`K($xt#*@xtoWI)ThbGf z8qUvoe}YpeR4RU=?!gI80cqYxpOl<@JN0OQv(O=%^=?o21!HzgTnRBYX*Yc&a#hHc ziM2re_>IWky1Naxn{GX;n0WZspc1bS~S+~$~HUBlshP?@QokdsL z2XfraT%YU5FlCXihsSxF4$H%Ts=b-4miwQ%^<%xjzI(eRpL}GS7{~J@LOk@Dov$3r z_g%3izZUVofBa0R-{-D_X?P?LZ^PGLDT1vZ6PV{ODoD|CSKTz{U$uPJjB82P)|L3y zt=>0ziqp2cJ*UJ^>t##;i+F3mTk@1zuoWDai#^T zn{4j9y71IO?cn`K^H(!``t|>4w*tRen}@q5zolg9r^Q@<+2d!(Df#YF(f~#xgQu&X J%Q~loCIJ261epK; diff --git a/src/test/kc/examples/cx16/spacedemo/Metal_1/frame_4.png b/src/test/kc/examples/cx16/spacedemo/Metal_1/frame_4.png deleted file mode 100644 index 0b142132fbe00c6272ebb716e7b643100d3f1a04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|j01c^T!AzT z3yYVF<-L7b)s;y>u~Adzc6<2*MHOaAs3@Ghb#=?3EtU?BXZKC{_Uqf4U2Bf+TcW<+ z31qlnNswPK!+$g&AnLFXXwMo?7sn8b-qPTUNi7OI&V50vX8!sgzkA8mx2ccc3FORL z(weRAr;wERTuI61SWH@;%)7ka_2Dh4cXo7S&rsZ!UZKqV`B9UY^rIQc50Xzf)+9?Y z8>i{^RZAXoPm+@L?Jv%o_WSdW+y|#06$)GvHt0WfqwgK_qF8)4bnWTC^o`LTS$B{m672D;HRzK>vc-yZ<%Jtujb32yrU*y5> zUtjh`GdjUw|GdxzbJxgaiQJ7>t2=KI$MExeNA$mw{+~5C{X6g5Dg5Qnl)js~k0E8j z0nyrur@|Y)Y@8zK@NfCX3eH70rvKd{m3yT0b4@$Dzy40ib$(GyNk;L%s+vQ2Hf;(J z`uyq3`OS%pPN}Mg6jv)qpYsn%ULzHvF|)+vWps#0XzgA1zlW-WlON^!ELER;^Ks+u z3kNkfruoHmGVCha_i=+UcN~MH%M#8?hWw(7;nl$}Yb#q7W(=p^^@C1F2frh zk5!v&w0tWhYxb=PYrRst=}oh}+#B7`$2+WUa({TgL43nsTcy)ACcDdhtFj8#`hL&< Y?JIXz=XYigFj5&jUHx3vIVCg!04drHYybcN diff --git a/src/test/kc/examples/cx16/spacedemo/Metal_1/metal_1.png b/src/test/kc/examples/cx16/spacedemo/Metal_1/metal_1.png deleted file mode 100644 index 7cbec374ef38d617a690fff7b0548da261253e18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1494 zcmV;{1u6Q8P)Px#Gf+%aMF0Q*5)cravb5gn?kOxOK}bPbT~c#>dyAQztir_!2?@p0)q9DHVrgP? zacT_=43wp;A=fak0000HbW%=J0RR90|NsC0|NsC0|NsC0{}2^Gp#T5{G)Y83R9JoQ&5Uyz508Yi-qy&RKcR6k zb8h!*#=9NIEP%iT!HSl<2`s=Oe60KP`9RD0bp`-~WuoG@=M8B=t-}IN0vi#7UpRAi zV&*ZPc+F{j_6rSP000N+2WN8z&mD7(m@b&S^YEu)mNj?rfBLR9?xXtW^s{ESptZ;q zTRI@x;m4Gpc+N+<9Q@+bb>J3c=VBqaCj1YWXMpEE(+|(517y${X|7BnUxQf7g6A{V z^u&R?I00k_=n^M&FNzjhv;}jYKGHnI^TCw}zeX|EIsnMSxi(Y}z?kw2{OG09CjJSqR`nMB#2+ z7fOKq-HmPm`SU%)0%D2bLiDb~$7Z7&Y;#e#IW5eZe&4&VwhLE7{!Fdn}G zzzgJ{yBiT$*hUv-Xb6$1^OnTa9&_xyX+VlcR>}`hdkph_+FC4Vb zI>4IRX@*>K0l#CvA@L+6kQluj9C?)mg1?LaM<%v&LSEUYDFM_dKev~)&C~>cP{Lq_ zxVM0n$*6P%@@?J@R07sGo zV^*S0Xa_F6H|B7BD|=AvmApS!1y{W}moXq3#@fQc%ie6diT< zi-L|413MJi8$8^st1c>%T$-SA%1vG-t4t&a5^zTA*IqKGeq77F1vX=A&z@ zl+efl&Ko*d+MvYMm^6RiohK-Ge7l{mgH-QeG3azXc7XmGjaUdJP|7x6#`AiuElAhk wdK+Uy`st&?`xay{4hr<#2L2_nnH(zr0SixExrsO=Y5)KL07*qoM6N<$g6}833;+NC diff --git a/src/test/kc/examples/cx16/spacedemo/Metal_1/metal_2.png b/src/test/kc/examples/cx16/spacedemo/Metal_1/metal_2.png deleted file mode 100644 index 162915e83f80e95c2aa81e451ebdb9a499d11da0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1418 zcmV;51$Fv~P)Px#Gf+%aMF0Q*5)cravb5gn?kOxOK}bPbT~c#>dyAQztir_!2?@p0)q9DHVrgP? zacT_=43wp;A=fak0000HbW%=J0RR90|NsC0|NsC0|NsC0{}2^Gp#T5`=t)FDR9J2{QuY9nE+~S>+YqyRjCfiOdj~qsB6SH&ZDl$0?qih>O#` z{Q#Eu;aJCgI2Zu%!*`Blu6Fnxmq3vSv_OlLaz$UG;QrnG6MqgA!K(n^Suhm;IFVA; zRq-nm(?#FO5P0M=Dmi%0dp`j@X{inQ_CVl(-~539u;6%d9WeKt0DR!$n7SH5U__!m zIpldh=zisE$|721a_(-7NQ4Vm?0LArrDHiP;9aj2yY5&tSR(yHItSo60qo8N05B0nkdIN)c*+6HV;mWK0{G~{PyrSs z1Io}&h9QblgJiN#fpi?0mA_@mrZLIEev!vYMM{?hf%E9MA=MV26c2e5~gRh!0D@aWM8Yo)7wP4P&k_ z1C_q1%$$!S2G@RdUWu+f68fciD35q5Vxi|QwYnR>hSieMxWS0twD8qy&UB;v3NT$5 z`@~T?P-fA)DkLGoos1_7e47`{-Ht603Al5mKq$?Tx##r4h0DiJ}$3}Vy#muj2UgMw)4s^8l+)EC4OtMQP(l<0AJ#YHvg~&cRl5y=1wEZ*~(YL8@ zfEKFXT_{I3vOB}+oHPktZ|u9$I`iXWn^_zm0805wHVzjmTYb(whs1P< zo=Y`jPxUpF%Sz|b+Ugc8(TNNIZ;*&-H{nuZ^<{z`);m)O8U)fT&KFfg>!FlesQA=xxs?)6Ab*dmba}z&dTx@a>?8bGCtrP^A2ytXaMI|M~g7` YAFdZzwr5$t5dZ)H07*qoM6N<$g2@?>YXATM diff --git a/src/test/kc/examples/cx16/spacedemo/Metal_1/metal_3.png b/src/test/kc/examples/cx16/spacedemo/Metal_1/metal_3.png deleted file mode 100644 index 6a08b28872fc44e2befa2d873d619447ac8519a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1420 zcmV;71#|j|P)Px#Gf+%aMF0Q*5)cravb5gn?kOxOK}bPbT~c#>dyAQztir_!2?@p0)q9DHVrgP? zacT_=43wp;A=fak0000HbW%=J0RR90|NsC0|NsC0|NsC0{}2^Gp#T5`>PbXFR9J8?ItWfx-`T3(c5T4TWe(-wW$hs zs{awIl~F4W#hPfZqi*BIR@Gz;?6;->G1cCBZ)$##E7!-~yC{)KDW$8lRyUm87+X5i ze!t@r|IdlmiZ^b9Iv&ur2CUI~t=d7Q-N>+D-Z9Qw&H!}h+QuL=STSmEwT?b|hmin) z3H1qZ#Q*>sF*6Zw3V_1W1~b=wg1kh^T8K_?XMttT(AUipepQ}CU4g{Q*Aq_-Imu++d00NZ^{82B) z9}Mo?i-Lg%w1g3W7}i+b2gP(calc=fa0hiQH5hD4#p<@zQU}uHM$#+7^BTri23W!Q zQgm825Pk&_Oc{lP!C!#WMBJ=wyZcJFLZx~l!x4}0fo2c@LHipM9AIZu!4SBCxe>CM z@LZ260OaX|{UQ&7LVc7$xSa_RL|*hNY!QVfVO)gkdg8_g@)D6obyj@#D5k0_jMq-| z1uKtMJvnf{)&fIlYyi;KFN)~};7$Z-r~?IUZU^eI(zb;YQ462S`2cVZNM-i2B&VX< z+=*UHpQ|xfJ0tfHK=I8G7W0#c0xy6Sg?B!{3j4rY>*j8>-rXHH*D;%UaKFxjoRCPZ z!TY))EKOWW-3LyA&eaGv%W2{)Oo@1Mg^)lC>m#EJJ#brQ828ImKKKA>pdz;i1RKJJ zC|E?{nFs%7;vbKI%NPP#c+^L$OAmg?gJb3PK#UqvsJahaCVmRza|+Ku%327@0kD54 zXAFD&l5+%rEm8i>gwrHmjR;moWcR-q6rZ_@3plc$?WbEX1gXqX;-5RyB?EQ<34rg# zB=1b<$zZ0P#nDsK+o*Yqmi;3GtIhzKC_KID9*J%brSuFlxvmV1TC_$!n;?T}TEvl?f&%w|d?wj>Q3 zvx}}jKft&z3{npuaUqja+^0V!1N;L(nh>Jk3xC1tW{tcJ0pSM#@mm96zOEUfAbm#V zU1{xSfXo9&;h69O=n$X~uKmJ*QxhrDk%EC)!~%|q7m6QD=m7AIL~HW!xca9PSN-wJ zl;xM@9I*}tacbFof&rfxyqkK4QS#B80DcG)eh8yVsPfr~3&3rO^#0~VSnB|`Oz>pj zcr8v7z9v%SKSerb7(LV7vA;*bZ?gjcC*4VuJP{Y5!ML z{arZ%5PdWm^bjLSdHQ04_XTu%o8EiYJH?sTI7cGgy|qXC&7J%FG8&7@3M0=-p86O? zz5w=QFn7KHz-Iwq^k;<1@SgpK(iPc(a)mitn`uToOL=Ky_RLia_tzrGX;q^o=TN{9 z#skB)Q!&YVfGM02K$(KV#|fbJKh;Rj-U-mCg>WLDi6_Xj@AAc<$zUq-`|-S8{zX`c z6eF|PkLr5j|7xpKM6zpM?~*s;XPf`%ify^Sdq2%o)|TJ7i?iQ&iKt(frFo8~_~nW< zMA%zoJY8d7;$*YR-_N+@zomQZ*2EV7y^s%zHWoEtvpF9E%QG^vV)GohexrYUBbP3F aH~t3=kXb$dCFJJ-0000Px#Gf+%aMF0Q*5)cravb5gn?kOxOK}bPbT~c#>dyAQztir_!2?@p0)q9DHVrgP? zacT_=43wp;A=fak0000HbW%=J0RR90|NsC0|NsC0|NsC0{}2^Gp#T5`=t)FDR9Jv9lfO{T8>?h(K3nBUbwSrDSOK~ zH`S)NXiWu6nT2tv;@>SDBbAhLZ+l5v#?E+zS}WO}Xt{UIY76HM3CI|VVc-Yht(8)= zr6euwdnO{=f=bDmUiIaR;#8j}VngFCL+RH0$f=A14F)!5%8iwlZaBj2@7Qy@ByGM0Fh<@0=bsQNGUZ4abaMK(e)GHhEoB+tX+(QmbHM!vSa&F z8ZfAW0;LZCv;f=-ys4BSGWLD!N+S>KPvDR{&BgX-ANE^zvR}=QfS@gB$&%V}fCEUw zKR8M^3chR5g*M5#40tfL0f%-ojSkSt7XW_%klvZMg4h9pdnpH{!S3Az*HHaKgI8#f z!Sr_6#v@rQC9)tz94DAS?m82n6O>x8PfY0rWcnqBy)XzFrm5yZUP>rtt6g8DX^bZI%NbyW4bMVcOr9Rh6#s`#Azq4-LfP`(a=_%76Z~iTzXN!rvuC4gV1+@< zqAa8+ETu8m&jE0EV{m|AP}{#D5v>emT))1UP**6M3Ekx@Gor6$f&RZj@B;_f-vGiT z$Ofxw(|?v~JipCdk&UvFGV&4t-8k5Hlw>4AQO=zw|G(4crh#dAnt(_|F&e0V1>!{Y zozl-ZxJ)o7&<1~u0{)D=`lAkiAwNGRF8}J!>Tjm{Kt9cI@S49WMc%COm`E0aiDx4#O+Zl;<|*Sl znf#WG9z;HONH`Hk%z{gU#@M=6t}EMWtyki`f?ao!=h--LH~v^&8%dW5EBarzBsg;+>X#p@sLtAa=7K-V4@tfNSeO6e zm2H+qrA4C18-VL{YX+wm9H9$GUpV99&6;WN_#AGYF%pP%5%M)gIY`=-lY)c*40u~QWzWnvX%R@x|&+(@2Za;*8Xwg(kNkI649uXl@JtfyF zg4I>|DJ7BC+Q7fe)kOePmD`Z2CIhzURVH?sa<{uYR+j;!i?G5+{0tzC z2rU}X(sclxXCPcF{KF0@CgLwP_0_)Cxn6D6+>cLjWGeR!bgQa zVZ(TP{;pOtH+lThU(f*>)PZMk9ZK+A&F=5?*J8#^^TFZCT#?XgOzmp5qJLT;`#|-X zo2*Z5VRf=UQ} zo6Ck`(pnb>PM5aXA_2$sHvp(bB?wCZZC)~*h5*)@t0Jg%NG{%VXAwJ}0Wh1#qwD}= zLtLuRWay2V^OYi}@3SLoK!B+Me${x&0NDP=|41htfn(Hs7mnkE|_ z7$0gA`_O_o;6tY5?d^pRKCBmd{{-=|Lh;2!$3905+gI(*7LPNY0y@ z09zT*$mZf6LZ=g81`ldnDL$(W<-DN)zZGoB(-VW6bpe)BPOL5JyPr+{{~xRg+BP z{;r_yIyjuYG2lXRxxoFP@|v*%bc2gN=)WUCg-X|fvVpkp+}qFbBvq>0U()|J;V}bsOlxZZ;F3t(6u!0xSfb* zo!^FM(X$#%fR6iw>^%+j4xOgxc@6-;vqx8*DD9#Kt8UFsIp19YxQ$x&!bd;K0+3WM zk%$`#5&{)MS=3T0S4@~3tm&it$Q2T+mT^oUEqE0Dc)$7`;7A(ja)@QCK1*WD<-~a#s diff --git a/src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_10.png b/src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_10.png deleted file mode 100644 index d40a2936fc844b41ff2c9e56475b41ebd919d092..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!j01c^T!AzvC+Cz(uWFs*tk|q) zr;7K^ZI1F$xVKc`*|n=dp+OQd5w- z?aFs~H~;TBXV{i)%@JsuHk-lamxR<`qbUll7uPc;?O<5O-=t^3YBBR9Lzl1Ob-SZ0 zK57L%d&7P3>hUEE>jH#C8IL(~>h6BNMCrm2hqHAoopLGP7?rZ)8%!CMIE`24hzG7w zXqJO3wz#?@(RIpZs l@yF8#-|X+~{~W(YpQVHANAUVZTELiK@O1TaS?83{1OShE(c=IB diff --git a/src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_11.png b/src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_11.png deleted file mode 100644 index 62ad7fb17bf1ca18135eed72a061edd90ea5c851..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 831 zcmV-F1Hk-=P);WN_#AGYF%pP%5%M)gIY`=-lY)c*40u~QWzWXd+`B#=nNfgEti zFBw;;m!3nuVxADBgeDTHnGBs4fg&(VRY4J0&{1~H5l9ojsX$meAnr*82u}vufD^Fu z%w*H^6QBTpjy%hjB!=7gdAl@*^ zB_&{-6L6I;Kn%oFG;~oE(P-qQ1KO^G3i9ir(GL~;Yt#W^@}=NY5*`2o?dF1p%q~Qn z-d_szGa%z(N1mS4q~{RN3-GZeabTn&5~hJlG4mGm1{nDX9tq%}vlLES%nrEs!72iv z7iH~2VeB=VNze>UEQXq33w#lBskwXlQEQh9sOF>7fTKkX{j3BxiC0-B<{9Y|ZtAMa zjSr?w-Ap`=)CUk4h}x}jaEu;+A#nzPK!Rvx=kp$@-y0w&2mpsK75p_hQA3{rU?m66 zPgjAh+J0)xICJ`uM+#`&m+db593YQ2n1WctdO->Ko~a@TE!~J3AZaOPa?f3suu(ay zkAXlUvJI|Tz?J8s9bv7VbWO!)7CZ^ox5LN`{|m@i_&OFmvZ2%0MF22S*bF%pF!$;0 zOp4i8F*rj4=I^VRrUSE-9wKv1_yWXnV81!c1>-Qe+8@BljznCPmH6o7{{=LoNI(f* zQ-F;W(am`gkhTm3>wtIw+cF^UsFt_HCBO#2vmwIT62KBbxrr7P*wOk;qXSl6IdC<5 zeTt=*o;QH<{4nB?zbIV%7vkTv=+Xie+=-O&mRv!9mKfwm@@zX002ov JPDHLkV1hB%YmEQ^ diff --git a/src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_12.png b/src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_12.png deleted file mode 100644 index c58128a1d0397243ff142f164fd12ee3d2317427..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1091 zcmV-J1ibr+P);WN_#AGYF%pP%5%M)gIY`=-lY)c*40u~QWzWKokTC1i{n~KdZ-}NCLSE-7??X;Q|49GmL`*B(ROvlpJ|bqa+ZIP{`4D45T6v zkswzZ=gGmzHtkb|0xsRwi5G&YDl7?rNf+JuQejcm>?{y~r!($e3||Q-@~~tGq_{6J z?tXE0f}VwviZ;PmO^zgh3H_@2XAJKM^6xDQu0}QCch$tA zD~MXVU9=^@zV`Sc&{+mP(slGguZCwdBbrKldLdeLnxHQxEP_ZpW+^5ru0$Qc3o5WS zeKkiRSTFChKsE`|Lrg%_EWQBaG{Zex0uS(>#<05Dx$}iA+fTENqH_u_sbIqKOr1+DB{a$+ z_(_5FYoeHBz{DknYRM3K)FR({=#@dQydgf|kE35@F}MVRK^QT+ z0124+{DjZFhSNP%UCuTPvhbU+RgAlzQg8s9Vfo@-guZ5rFX{K5dA?XBIx9 zW=yeLfZ{#-1b-X~1qG#85q4X6Y-?`zbW50S&BdnHbvxP!MZsD}k^qe`bnFo{D|2$uJ;d^zxu?MX zQm|l@Aw0)ZTOla65@hd|@T?COLBPcMpwTAWc0HhWD~~$_cu+P7D3*c)o5KBon%W_t z*Xw96gyS2*IQQ0VdY%1LHuv?{Pk)oNduadPu9vg@f8YP+`~eBgE2>HL_=5ld002ov JPDHLkV1h~o^R@s0 diff --git a/src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_2.png b/src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_2.png deleted file mode 100644 index b690978fb482c79c69ff59e7a48a3266635c6240..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1097 zcmV-P1h)H$P);WN_#AGYF%pP%5%M)gIY`=-lY)c*40u~QWzW+j1*82t@;?1uf_j z|NphKQ9G$~e2e9&c^Fm2c9Ld^%Ld6`U;ptUqJLxV+*%X=Y-?4e-nM<;_#-F6%$THY z8w-6Bh{T1N+|#`i@wykZnW@vj{+?vE3LpW%h+MP+uw@U3VQf{>X#Qu{V~F z0K~|ESO);PwB;B`gl%Ixb^!oU=n?=Hv2B~N3F^qG#abB%dyY!t##`F~;P*qIxgedK z05NW4<$%Ro1W1q682~SU6~JwJ^Og&THz-$nCrM)zvQGd$WBKnb;j#+=y+c4=Iw%0U zou4za%VWYfnpy$0CylIKF9<<809HxJNRj@CK)tJ?>s%V%vMU~SiWnmp-HZ^*1J+D= z>;fTZEbS~8_do;?ua*rb5)mG*kuf4!_|bUk-^j5E_#p^(g9@T^ zEBkCgL5hAvb9gyXfC}OkP)b6HQN_|>bspxap^t|%Vfa=25 zz(CnzmXF7f01Nu&1KU8T&su_JwiQW)5RnJYhG_5yQoKT>obufI>PD2TaVTJ(!>H^T zu0xbK>(C*u&8s0s3fzVG114>TAP5DHu~j->5lT_euk~Y84%oi|*qY|2wjXx|xC7w1 zI2wYt98fg=AQDml43}L~U&P=OAQp2Vn$B&3(7~q%+#VJ1PeN_j(ZCZxRXBJAElm$l zj?3kjp@t3=#i@+jMFf-wU_%kaZB}(0$7_3x)dF-s1?1>0bYjQv1{5ZP{|Z1J0LU}q z(iI5lC-A-n9tM%!x>oR2$T{GqJ#Jf=Bfs0vn*jvh8ciuACQ;NUNFv`nU=t&*gd|n@ zS^k=?_4DrWSb!4$H4`}C3I@P?_LERapvu~mQXTQUa#5pM1`Mig4g`$EnUDoQx!iEb zXOS=tB(>?oQ|%c5`QPi7AUKTb&1G8zgm0Lro~7wI-&Z|QSm=mqig_2-$TXj}o5`mTU87w|w{ zP19R|+;tw#g?JzE)p@`5_sIqC$;#YrpI`jiMfZRu`v-v4wfYU`|GfSIC=x3EF1uhL P00000NkvXXu0mjf@}2SI diff --git a/src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_3.png b/src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_3.png deleted file mode 100644 index e324623f20650171dd680a465dc057e167986cb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 844 zcmV-S1GD^zP);WN_#AGYF%pP%5%M)gIY`=-lY)c*40u~QWzWVh41_INARFN$ zz5mm8gnM(_Re_$CWRXSmdC<>*kK-RNBKn(HlUl3TF5tREYAJ;`MKG%}B(Q7(h?$Md ztl1U;JGfX(#JX&4VgQ)hW7hjVKud|>Jq6-K!j*g91iU#YRrdh&E=3hXxv$3uAp?T1 z5fu3H(=80)BEl}zS0|!1vTlMWi|CNC){M{7vH`oI71_D5t^usxk^sbC36Ocf$U6XM z0!S$3%bSX+ED$4gMvW7IJR0XfOG|*vbTa^B>608VLOZJIT}34(Mw0pqkkb-?KE8y5 zFQw>nfcR4I0;+X4Zbgxgh?oE%E(RcT7)(mdYK5tgX-ss}PXT@o05nLD-r5bZ?m>Sf zeC>dP#umaHS!@y*Cu%c*mms$S5Y;=ulpSM5)`%tmBMGQ}#ox^@*jcTGFpLz9Vg~Rc z#2DL`3wCxPg*qx~kT*AzNVuVU5TO@3u|)3a0^4{08_bsQ`{30}z+!{P~88`FR=@oU5j}FcBQn zDa@HdH>ZO1k`4t~l?4SLJoOw&l-vReVEFkw(}2UC`*d_*M`#L&JRuh14|?uLDZLQt z^8?g;3Wfv^hOMIt*?_odpc_}>QAq&cga8<}!MuD)K~PZ3V+jg4Z%c~+N*f*$94A|v z+gf}&bcEy$X{gu%z{oUb8U&czoY{}GX!wb~tG`vXER;Xt%BsyjweOi9vDmpT{@v$FD)bb>7Z=V`df0O&dYyH`Oq8J#KUpyGj?XGWr z*zpxt4v)|LmA4akZXJ+zllc;8(%0Cqh)K5Lp@b}JL4)vx^oGzK7c&kDNo;fGQ;lX> z;@`oNEO2FkxR;NJ_O=JJxu*tcZJKa2@5Ivpm5797eZ7z+Vp($-<+MMzdz;$)Qa+cg z=6Ud$W=%y~dv^HgBVJX8J9wj1WOTM0d4HcGa)a67S7ee})Pv9@l{uI z5<^N}&6nK5VsrZn>lV>3uXdh~bx@x4|J84n{PjGl*6Xup10#mP)78&qol`;+0E~Im A82|tP diff --git a/src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_5.png b/src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_5.png deleted file mode 100644 index 9a1920d036048da095bb33c41ed1b193e8fa1958..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 730 zcmV<00ww*4P);WN_#AGYF%pP%5%M)gIY`=-lY)c*40u~QWzWV$^ae;@1dx-mb`_Nby!T~*Ux0CC(1h|V09g6t zs2~9LvON7c0CT`2Vw!k-`6A#I8sc3PfN6nS1CTi`Vei7$dY{dV6ClqnA#TeDLCO1x z3~-xN0ALE`jmnv6;!6_nP)-r=D4d70_t5bN@K8893!EJs+e5+01FL1ooJD|Jm!T+QuJ0zg5EFjls;g@u0GjGS>~M%;IUete%mCXF zl=amZT8s?NoC($S_h{F|YfY>kSLK(nm3h`8^-a%R!l>zjoFlT&fZQLvXM&%MVT;dJrB_(du zt}t>f>EH*Tk4ijhxItL-HNYnmEXS_^+xkQMcM9@d{Px}d=f6Jx0K17Cs#0SHP);WN_#AGYF%pP%5%M)gIY`=-lY)c*40u~QWzW0s(AmpZ$rk(j{rL=DW0)7;2 zjNjh{wA!VK9vR7-06!$7Zv}voE{uBwVn+U(lWW88R``|%LJgK80Cd-M7A&pO6%s~%ec$PwXz z_g*^8Sr-6rk3o(u2EYsS467lQArP*3zLweVv2*vT%U)TLw}H8D`NL3xF=!fWE@`B|wLEgdT@6VyGbO7J>^L!s$ZKknq<&0Px{iFiK{e+Gi#>@@-1Os(zc9Lu3XAg~aJhUJF+OtySYefDU9H(h(Yr z=nLlxNfrX~wh@6b0O=h^9RQbZI_P`oT`5$ZS-`j^U`l5rT{|9+0YLWw0js~!x-|iI z^?1cFWa`*FQxQ2w2sa&+(&ghh65u%!a>g$}9#z+GYHl61i;WN_#AGYF%pP%5%M)gIY`=-lY)c*40u~QWzW=0cA_#zFuPZFd1mNgLjVbVPo_004z{$u)t%CjihOSt(Yz zuz4tQ695_%FNJI7;te&q>4qSkkcWw&o}2)6hXS(JwhzjJs~v_wMeleT_j52%PFz7_ z(kVCE!VFQda@q5aJW~8YdI5muf_c+i2Y{zQAhBN&oUt-9%)cQ703#2C1_34)F|0Qz zy75}Hvi@QawgLtGOT@>k_`&BI!2lc}C0k@Pr6}UXdX>2|?^m zf>ta8QwgjMsQ7n38R!XcNHYzexZA3_ zj9EJyU=d}AYb3Uw|8F}$qv8j`5camuT$y^ulf`-nGC?D>h(7D>5PEikLB_b3S&^Sb zj^=PykU$3Q_jmDgSLUWMz;HH*HLcfCRcx~AZ)fsaj{b|I zRZLbr2gg9S zU5E9v2#Rq+qxP%k15&P@o6rdmgG99Q8xQ{kP{QaKhYR9>a|fUSVD9Cx^-zgDq1^%q z25WG|V6^$!O$M31wmn(^RDbV-698UbTej@*_59Y6Q>%Qrj4K72SRyBv%2z1_13xdt zJ^+v}05tLefRS?fxQrBj2o45Udil7S^3Quc-#9Hl19;WN_#AGYF%pP%5%M)gIY`=-lY)c*40u~QWzW>u%dH424UY5@k_@ z`2J73L%Ha-tXU!h`!TgJ0>k`#c$NI|@sAe~-M9T9<65iOJ#%d=y_WMVd`kpzYt29? zEVulip+k)*%(|J*dkSEm@1LXbHh?dHiQ;0s9Y|UL#PKYUp}ZZ)1QYC0HhJ> zTbuw4sM%M5&@)^p!I4gE27$z)!3Sq#QUeM$)6j#`s`VxnVxYv{EhfAh&q8+3EWor{ zUJ=FjYALL%>KKt}fLTKf8!f4*Hu{#orgFafPvPNA!N)J%#x1HdVCj52uS4+(CRS^W~hX2 zLiH3vbS(c6T5~@*-FvKS;&Ckie2|=iGU$|pfSlDh=K=;3pNB6%JOVo6mVl`0!_2!S zAnn{5{tYYo)KfnJ4?bjk#}@#sz(7~(b$X8$3qXh>T$tYi(EURbA@%T;M6!yauHju0 zfXPbH({jqUfW^QQjr|jVDS$WjE(pFM{vhZw)n|akP}8f5NI3?!1pxs10m(whb;S5v zOCW5kmtYu!Riq~*vXCwX`l_Ko$UJxMF=5*U1NAs2BrF9l%&CVhXMxF?lpaVw;+V^; zkXIc|IZQMqBYZKJy?7|%0Iw+KeAnzXLvO0geSg9uR{L z<%;f%;OsT`S24`YGxmgm-3%J~BCNPFtDeWpp+*obxv8LuNnxMkDFqN*oAvu?@Vghq zz3IdhMH|B2U404Atf<%adA31CM*?7wQS~(e7_oiq;wOLr0B#@@9mCBRfRgtj13#U> z2<}=z$k~_y$iX5!$Ge+bG~}OCg1UL6gaHXpH-$e5NM8cblAjR(Kz5FcS&@QmS^Mfh zsK6Gzb4I~9LEY5MB0?}c?8KPgIinEcbb?(j%i!9ksPsKRFH{Hl6$6SwMfU()*3Pg- zB!<9g+klGgZlaAW?Wv3#3f3Ce2thBsTSmVC@`o-DFi|%Zpp-8K9eZ}%06>AP5vrF9 zBzpifZ(YwL2AA&`Q9FQvBkuLQ(lrERuaJx%OMml=fxZ-c-O(NU)e8@R&Er1K_j?9^ k67GF%{sOrF#rxl_A0{a<3tXd1h5!Hn07*qoM6N<$f;BSP(*OVf diff --git a/src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_9.png b/src/test/kc/examples/cx16/spacedemo/Ship_1/ship_1_360_9.png deleted file mode 100644 index 544b19308a4a2882c9cee089184ec253ac2381df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmV;WN_#AGYF%pP%5%M)gIY`=-lY)c*40u~QWzWbws z{jYY)Bz<*1gGVz+EpE6P)+&|-v{sl)DV%kJMOABM$pS`eLT1*J z0BWtNbTLWBK#c*IYNmMrOD#T6riDkf-2BZO##RV(IbN{sU%QS>Z~vx za%}?$+w%y3qK^^-f#kW_@<7Bzwh7MN76A4=!r1M`Sx$cd+J(jKHGn)qW}fiCZ-8>N z#A^Ur7n_U46vgJK0Wz@xh~V9L0i>cA3`w+YK$uwPYAO(v!S5?c{)C`qUd+ba>oE5% zfCa$ioVA-{7@XW+cN5tIpgE~J*;S(z7vL4)0i4JI0l@5o4Q@@_0{9t?XaFDpcI|f% zFJnL!^aikpBC(?zXlxV$DY%v&Fs%|b!S=c{lYOjO2s~)+@gK5eJ13My-XenmFxVRJ zO*GuK1sLIgoExpY%-tS>)AXpL`5plCFaa1yAOISJu?tv@(E9=)2k%GW8^R3`j};%A zqKIZYRVKH96|BEWls9`+lMIGUn$8G5|* ziS|9f1`nZU*wp<1r;GGkA@_?AfXq59$KMuXw^99>`NYs;TQf^&ddVy%+k=Q)gFEzkr^6>U -#include -#include -#include <6502.h> -#include -#include -#include -#include - -const byte NUM_SPRITES = 12; -const byte NUM_TILES_SMALL = 4; -const byte NUM_TILES_LARGE = 4; - -#pragma data_seg(Palettes) -__export char* PALETTES; - -#pragma data_seg(Sprites) -__export char SPRITE_PIXELS[] = kickasm(resource "Ship_1/ship_1_360_1.png") {{ - .var pic = LoadPicture("Ship_1/ship_1_360_1.png") - // palette: rgb->idx - .var palette = Hashtable() - // RGB value for each palette index - .var palList = List() - // Next palette index - .var nxt_idx = 0; - // Extract palette while outputting pixels as palete index values - .for (var y=0; y<64; y++) { - .for (var x=0;x<64; x++) { - // Find palette index (add if not known) - .var rgb = pic.getPixel(x,y); - .var idx = palette.get(rgb) - .if(idx==null) { - .eval idx = nxt_idx++; - .eval palette.put(rgb,idx); - .eval palList.add(rgb) - } - } - } - .if(nxt_idx>16) .error "Image has too many colours "+nxt_idx - - .segment Palettes - .for(var i=0;i<16;i++) { - .var rgb = palList.get(i) - .var red = floor(rgb / [256*256]) - .var green = floor(rgb/256) & 255 - .var blue = rgb & 255 - // bits 4-8: green, bits 0-3 blue - .byte green&$f0 | blue/16 - // bits bits 0-3 red - .byte red/16 - } - - .segment Sprites - .for(var p=1;p<=NUM_SPRITES;p++) { - .var pic = LoadPicture("Ship_1/ship_1_360_" + p + ".png") - .for (var y=0; y<64; y++) { - .for (var x=0;x<64; x+=2) { - // Find palette index (add if not known) - .var rgb = pic.getPixel(x,y); - .var idx1 = palette.get(rgb) - .if(idx1==null) { - .printnow "unknown rgb value!" - } - // Find palette index (add if not known) - .eval rgb = pic.getPixel(x+1,y); - .var idx2 = palette.get(rgb) - .if(idx2==null) { - .printnow "unknown rgb value!" - } - .byte idx1*16+idx2; - } - } - } -}}; - -#pragma data_seg(TileS) -__export char TILE_PIXELS_SMALL[] = kickasm(resource "Metal_1/frame_1.png") {{ - // palette: rgb->idx - .var palette2 = Hashtable() - // RGB value for each palette index - .var palList2 = List() - // Next palette index - // Extract palette while outputting pixels as palete index values - .var nxt_idx2 = 0; - .for(var p=1;p<=NUM_TILES_SMALL;p++) { - .var pic = LoadPicture("Metal_1/frame_" + p + ".png") - .for (var y=0; y<32; y++) { - .for (var x=0;x<32; x++) { - // Find palette index (add if not known) - .var rgb = pic.getPixel(x,y); - .var idx = palette2.get(rgb) - .if(idx==null) { - .eval idx = nxt_idx2++; - .eval palette2.put(rgb,idx); - .eval palList2.add(rgb) - } - } - } - } - .if(nxt_idx2>16) .error "Image has too many colours "+nxt_idx2 - - .segment Palettes - .for(var i=0;i<16;i++) { - .var rgb = 16*256*256+16*256+16 - .if(iidx - .var palette3 = Hashtable() - // RGB value for each palette index - .var palList3 = List() - // Next palette index - .var nxt_idx3 = 0; - // Extract palette while outputting pixels as palete index values - .for (var y=0; y<64; y++) { - .for (var x=0;x<64; x++) { - // Find palette index (add if not known) - .var rgb = pic3.getPixel(x,y); - .var idx = palette3.get(rgb) - .if(idx==null) { - .eval idx = nxt_idx3++; - .eval palette3.put(rgb,idx); - .eval palList3.add(rgb) - } - } - } - .if(nxt_idx3>16) .error "Image has too many colours "+nxt_idx3 - - .segment Palettes - .for(var i=0;i<16;i++) { - .var rgb = 0 - .if(iVERA_SPRITE_ATTR, vram_sprite_attr, &SPRITE_ATTR, sizeof(SPRITE_ATTR)); - vram_sprite_attr += sizeof(SPRITE_ATTR); - sprite_offset += 64; - } - // Enable sprites - *VERA_CTRL &= ~VERA_DCSEL; - *VERA_DC_VIDEO |= VERA_SPRITES_ENABLE; - // Enable VSYNC IRQ (also set line bit 8 to 0) - SEI(); - *KERNEL_IRQ = &irq_vsync; - *VERA_IEN = VERA_VSYNC; - CLI(); - - while(!getin()); -} - -volatile byte i = 0; -volatile byte a = 4; -volatile word vscroll = 0; -volatile word scroll_action = 2; - -// VSYNC Interrupt Routine -__interrupt(rom_sys_cx16) void irq_vsync() { - // Move the sprite around - - a--; - if(a==0) { - a=4; - const char vram_sprite_attr_bank = (char)>VERA_SPRITE_ATTR; - char *vram_sprite_attr = (char*)=NUM_SPRITES) { - x-=NUM_SPRITES; - } - SPRITE_ATTR.ADDR = sprites[x]; - SPRITE_ATTR.X = (word)40+((word)(s&03)<<7); - SPRITE_ATTR.Y = (word)100+((word)(s>>2)<<7); - // Copy sprite positions to VRAM (the 4 relevant bytes in VERA_SPRITE_ATTR) - memcpy_to_vram(vram_sprite_attr_bank, vram_sprite_attr, &SPRITE_ATTR, 6); - vram_sprite_attr += sizeof(SPRITE_ATTR); - } - - i++; - if(i>=NUM_SPRITES) i=0; - - } - - if(scroll_action--) { - scroll_action = 2; - vscroll++; - if(vscroll>(32+64)*2-1) vscroll=0; - vera_layer_set_vertical_scroll(0,vscroll); - } - - // Reset the VSYNC interrupt - *VERA_ISR = VERA_VSYNC; -} diff --git a/src/test/kc/examples/cx16/spacedemo/spacedemo.ld b/src/test/kc/examples/cx16/spacedemo/spacedemo.ld deleted file mode 100644 index 59bb4b240..000000000 --- a/src/test/kc/examples/cx16/spacedemo/spacedemo.ld +++ /dev/null @@ -1,16 +0,0 @@ -// Create a bunch of files -.file [name="%O", type="prg", segments="Program"] -.file [name="SPRITES", type="bin", segments="Sprites"] -.file [name="TILES", type="bin", segments="TileS"] -.file [name="TILEB", type="bin", segments="TileB"] -.file [name="PALETTES", type="bin", segments="Palettes"] -.segmentdef Program [segments="Basic, Code, Data"] -.segmentdef Basic [start=$0801] -.segmentdef Code [start=%P] -.segmentdef Data [startAfter="Code"] -.segment Basic -:BasicUpstart(%E) -.segmentdef Sprites -.segmentdef TileS -.segmentdef TileB -.segmentdef Palettes diff --git a/src/test/kc/examples/cx16/veralib/bitmap_1bpp_320_x_240.c b/src/test/kc/examples/cx16/veralib/bitmap_1bpp_320_x_240.c deleted file mode 100644 index 929041d74..000000000 --- a/src/test/kc/examples/cx16/veralib/bitmap_1bpp_320_x_240.c +++ /dev/null @@ -1,79 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA graphic modes and layering. - -// Author: Sven Van de Velde - -#pragma target(cx16) -#include -#include -#include -#include -#include -#include - -void main() { - - // 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. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x14000. - // This is now all easily done with a few statements in the new kickc vera lib ... - memcpy_in_vram(1, 0xF000, VERA_INC_1, 0, 0xF800, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. - vera_layer_mode_tile(1, 0x14000, 0x1F000, 128, 64, 8, 8, 1); - - vera_layer_mode_bitmap(0, (dword)0x00000, 320, 1); - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,25); - printf("vera in bitmap mode,\n"); - printf("color depth 1 bits per pixel.\n"); - printf("in this mode, it is possible to display\n"); - printf("graphics in 2 colors (black or color).\n"); - - vera_layer_show(0); - - bitmap_init(0, 0x00000); - bitmap_clear(); - - gotoxy(0,29); - textcolor(YELLOW); - printf("press a key ..."); - - while(!kbhit()) { - bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&1); - }; - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,26); - printf("here you see all the colors possible.\n"); - - gotoxy(0,29); - textcolor(YELLOW); - printf("press a key ..."); - - word x = 0; - byte color = 0; - while(!kbhit()) { - bitmap_line(x, x, 0, 199, color); - color++; - if(color>1) color=0; - x++; - if(x>319) x=0; - }; - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLUE); - clrscr(); - -} diff --git a/src/test/kc/examples/cx16/veralib/bitmap_1bpp_640_x_480.c b/src/test/kc/examples/cx16/veralib/bitmap_1bpp_640_x_480.c deleted file mode 100644 index 486fe5175..000000000 --- a/src/test/kc/examples/cx16/veralib/bitmap_1bpp_640_x_480.c +++ /dev/null @@ -1,79 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA graphic modes and layering. - -// Author: Sven Van de Velde - -#pragma target(cx16) -#include -#include -#include -#include -#include -#include - -void main() { - - // 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. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x14000. - // This is now all easily done with a few statements in the new kickc vera lib ... - memcpy_in_vram(1, 0xF000, VERA_INC_1, 0, 0xF800, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. - vera_layer_mode_tile(1, 0x14000, 0x1F000, 128, 64, 8, 8, 1); - - vera_layer_mode_bitmap(0, (dword)0x00000, 640, 1); - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,54); - printf("vera in bitmap mode,\n"); - printf("color depth 1 bits per pixel.\n"); - printf("in this mode, it is possible to display\n"); - printf("graphics in 2 colors (black or color).\n"); - - vera_layer_show(0); - - bitmap_init(0, 0x00000); - bitmap_clear(); - - gotoxy(0,59); - textcolor(YELLOW); - printf("press a key ..."); - - while(!kbhit()) { - bitmap_line(modr16u(rand(),639,0), modr16u(rand(),639,0), modr16u(rand(),399,0), modr16u(rand(),399,0), rand()&1); - }; - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,54); - printf("here you see all the colors possible.\n"); - - gotoxy(0,59); - textcolor(YELLOW); - printf("press a key ..."); - - word x = 0; - byte color = 0; - while(!kbhit()) { - bitmap_line(x, x, 0, 399, color); - color++; - if(color>1) color=0; - x++; - if(x>639) x=0; - }; - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLUE); - clrscr(); - -} diff --git a/src/test/kc/examples/cx16/veralib/bitmap_2bpp_320_x_240.c b/src/test/kc/examples/cx16/veralib/bitmap_2bpp_320_x_240.c deleted file mode 100644 index c2d3d0801..000000000 --- a/src/test/kc/examples/cx16/veralib/bitmap_2bpp_320_x_240.c +++ /dev/null @@ -1,79 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA graphic modes and layering. - -// Author: Sven Van de Velde - -#pragma target(cx16) -#include -#include -#include -#include -#include -#include - -void main() { - - // 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. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x14000. - // This is now all easily done with a few statements in the new kickc vera lib ... - memcpy_in_vram(1, 0xF000, VERA_INC_1, 0, 0xF800, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. - vera_layer_mode_tile(1, 0x14000, 0x1F000, 128, 64, 8, 8, 1); - - vera_layer_mode_bitmap(0, (dword)0x00000, 320, 2); - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,25); - printf("vera in bitmap mode,\n"); - printf("color depth 2 bits per pixel.\n"); - printf("in this mode, it is possible to display\n"); - printf("graphics in 4 colors.\n"); - - vera_layer_show(0); - - bitmap_init(0, 0x00000); - bitmap_clear(); - - gotoxy(0,29); - textcolor(YELLOW); - printf("press a key ..."); - - while(!kbhit()) { - bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&3); - }; - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,26); - printf("here you see all the colors possible.\n"); - - gotoxy(0,29); - textcolor(YELLOW); - printf("press a key ..."); - - word x = 0; - byte color = 0; - while(!kbhit()) { - bitmap_line(x, x, 0, 199, color); - color++; - if(color>3) color=0; - x++; - if(x>319) x=0; - }; - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLUE); - clrscr(); - -} diff --git a/src/test/kc/examples/cx16/veralib/bitmap_2bpp_640_x_480.c b/src/test/kc/examples/cx16/veralib/bitmap_2bpp_640_x_480.c deleted file mode 100644 index e04945d8d..000000000 --- a/src/test/kc/examples/cx16/veralib/bitmap_2bpp_640_x_480.c +++ /dev/null @@ -1,79 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA graphic modes and layering. - -// Author: Sven Van de Velde - -#pragma target(cx16) -#include -#include -#include -#include -#include -#include - -void main() { - - // 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. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x14000. - // This is now all easily done with a few statements in the new kickc vera lib ... - memcpy_in_vram(1, 0xF000, VERA_INC_1, 0, 0xF800, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. - vera_layer_mode_tile(1, 0x14000, 0x1F000, 128, 64, 8, 8, 1); - - vera_layer_mode_bitmap(0, (dword)0x00000, 640, 2); - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,54); - printf("vera in bitmap mode,\n"); - printf("color depth 1 bits per pixel.\n"); - printf("in this mode, it is possible to display\n"); - printf("graphics in 2 colors (black or color).\n"); - - vera_layer_show(0); - - bitmap_init(0, 0x00000); - bitmap_clear(); - - gotoxy(0,59); - textcolor(YELLOW); - printf("press a key ..."); - - while(!kbhit()) { - bitmap_line(modr16u(rand(),639,0), modr16u(rand(),639,0), modr16u(rand(),399,0), modr16u(rand(),399,0), rand()&3); - }; - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,54); - printf("here you see all the colors possible.\n"); - - gotoxy(0,59); - textcolor(YELLOW); - printf("press a key ..."); - - word x = 0; - byte color = 0; - while(!kbhit()) { - bitmap_line(x, x, 0, 399, color); - color++; - if(color>3) color=0; - x++; - if(x>639) x=0; - }; - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLUE); - clrscr(); - -} diff --git a/src/test/kc/examples/cx16/veralib/bitmap_4bpp_320_x_240.c b/src/test/kc/examples/cx16/veralib/bitmap_4bpp_320_x_240.c deleted file mode 100644 index e453a0a52..000000000 --- a/src/test/kc/examples/cx16/veralib/bitmap_4bpp_320_x_240.c +++ /dev/null @@ -1,80 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA graphic modes and layering. - -// Author: Sven Van de Velde - -#pragma target(cx16) -#include -#include -#include -#include -#include -#include - -void main() { - - // 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. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x14000. - // This is now all easily done with a few statements in the new kickc vera lib ... - - memcpy_in_vram(1, 0xF000, VERA_INC_1, 0, 0xF800, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. - vera_layer_mode_tile(1, 0x14000, 0x1F000, 128, 64, 8, 8, 1); - - vera_layer_mode_bitmap(0, (dword)0x00000, 320, 4); - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,25); - printf("vera in bitmap mode,\n"); - printf("color depth 4 bits per pixel.\n"); - printf("in this mode, it is possible to display\n"); - printf("graphics in 16 colors.\n"); - - vera_layer_show(0); - - bitmap_init(0, 0x00000); - bitmap_clear(); - - gotoxy(0,29); - textcolor(YELLOW); - printf("press a key ..."); - - while(!kbhit()) { - bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&15); - }; - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,26); - printf("here you see all the colors possible.\n"); - - gotoxy(0,29); - textcolor(YELLOW); - printf("press a key ..."); - - word x = 0; - byte color = 0; - while(!kbhit()) { - bitmap_line(x, x, 0, 199, color); - color++; - if(color>15) color=0; - x++; - if(x>319) x=0; - }; - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLUE); - clrscr(); - -} diff --git a/src/test/kc/examples/cx16/veralib/bitmap_8bpp_320_x_240.c b/src/test/kc/examples/cx16/veralib/bitmap_8bpp_320_x_240.c deleted file mode 100644 index 2c278e44c..000000000 --- a/src/test/kc/examples/cx16/veralib/bitmap_8bpp_320_x_240.c +++ /dev/null @@ -1,83 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA tile map modes and layering. - -// Author: Sven Van de Velde - -// The default layer of the CX16 is layer 1, but the tiles are written on layer 0. - -// An explanation is given how this mode is organized, and how the tiles display and coloring works. -// Pälette offsets are explained also. - -#pragma target(cx16) -#include -#include -#include -#include -#include -#include - -void main() { - - // 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. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x14000. - // This is now all easily done with a few statements in the new kickc vera lib ... - memcpy_in_vram(1, (char*)0xF000, VERA_INC_1, 0, (char*)0xF800, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. - vera_layer_mode_tile(1, 0x14000, 0x1F000, 128, 64, 8, 8, 1); - - vera_layer_mode_bitmap(0, (dword)0x00000, 320, 8); - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,25); - printf("vera in bitmap mode,\n"); - printf("color depth 8 bits per pixel.\n"); - printf("in this mode, it is possible to display\n"); - printf("graphics in 256 colors.\n"); - - vera_layer_show(0); - - bitmap_init(0, 0x00000); - bitmap_clear(); - - gotoxy(0,29); - textcolor(YELLOW); - printf("press a key ..."); - - while(!kbhit()) { - bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&255); - }; - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - gotoxy(0,26); - printf("here you see all the colors possible.\n"); - - gotoxy(0,29); - textcolor(YELLOW); - printf("press a key ..."); - - word x = 0; - byte color = 0; - while(!kbhit()) { - bitmap_line(x, x, 0, 199, color); - color++; - x++; - if(x>319) x=0; - }; - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLUE); - clrscr(); - -} diff --git a/src/test/kc/examples/cx16/veralib/tilemap_1bpp_8_x_8_16_color.c b/src/test/kc/examples/cx16/veralib/tilemap_1bpp_8_x_8_16_color.c deleted file mode 100644 index 60552bafe..000000000 --- a/src/test/kc/examples/cx16/veralib/tilemap_1bpp_8_x_8_16_color.c +++ /dev/null @@ -1,43 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA tile map modes and layering. - -// Author: Sven Van de Velde - -#pragma target(cx16) -#include -#include -#include - -void main() { - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - // Configure the VERA card to work in text, 16x16 mode. - // The color mode is here 16 colors, indicating 16x16 color mode, (16 foreground and 16 background colors). - vera_layer_set_text_color_mode( 1, VERA_LAYER_CONFIG_16C ); - - // or you can use the below statement, but that includes setting a "mode", including - // layer, map base address, tile base address, map width, map height, tile width, tile height, color mode. - //vera_layer_mode_text(1, 0x00000, 0x0F800, 128, 128, 8, 8, 16); - - for(byte c:0..255) { - bgcolor(c); - printf(" ****** "); - } - - vera_layer_show(1); - - gotoxy(0,50); - textcolor(WHITE); - bgcolor(BLACK); - printf("vera in text mode 8 x 8, color depth 1 bits per pixel.\n"); - printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n"); - printf("each character can have a variation of 16 foreground colors and 16 background colors.\n"); - printf("here we display 6 stars (******) each with a different color.\n"); - printf("however, the first color will always be transparent (black).\n"); - printf("in this mode, the background color cannot be set and is always transparent.\n"); - - while(!kbhit()); -} diff --git a/src/test/kc/examples/cx16/veralib/tilemap_1bpp_8_x_8_256_color.c b/src/test/kc/examples/cx16/veralib/tilemap_1bpp_8_x_8_256_color.c deleted file mode 100644 index 878135d98..000000000 --- a/src/test/kc/examples/cx16/veralib/tilemap_1bpp_8_x_8_256_color.c +++ /dev/null @@ -1,43 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA tile map modes and layering. - -// Author: Sven Van de Velde - -#pragma target(cx16) -#include -#include -#include - -void main() { - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - // Configure the VERA card to work in text, 256 mode. - // The color mode is here 256 colors, (256 foreground on a black transparent background). - vera_layer_mode_text( 1, 0x00000, 0x0F800, 128, 128, 8, 8, 256 ); - - // or you can use the below statement, but that includes setting a "mode", including - // layer, map base address, tile base address, map width, map height, tile width, tile height, color mode. - //vera_layer_mode_text(1, 0x00000, 0x0F800, 128, 128, 8, 8, 256); - - for(byte c:0..255) { - textcolor(c); - printf(" ****** "); - } - - vera_layer_show(1); - - gotoxy(0,50); - textcolor(WHITE); - bgcolor(BLACK); - printf("vera in text mode 8 x 8, color depth 1 bits per pixel.\n"); - printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n"); - printf("each character can have a variation of 256 foreground colors.\n"); - printf("here we display 6 stars (******) each with a different color.\n"); - printf("however, the first color will always be transparent (black).\n"); - printf("in this mode, the background color cannot be set and is always transparent.\n"); - - while(!kbhit()); -} diff --git a/src/test/kc/examples/cx16/veralib/tilemap_2bpp_16_x_16.c b/src/test/kc/examples/cx16/veralib/tilemap_2bpp_16_x_16.c deleted file mode 100644 index d7ef652ab..000000000 --- a/src/test/kc/examples/cx16/veralib/tilemap_2bpp_16_x_16.c +++ /dev/null @@ -1,88 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA tile map modes and layering. - -// Author: Sven Van de Velde - -#pragma target(cx16) -#include -#include -#include - -void main() { - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - vera_layer_mode_tile(0, 0x04000, 0x14000, 128, 128, 16, 16, 2); - - byte tiles[256] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - }; - - memcpy_to_vram(1, 0x4000, tiles, 256); - - //vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h, byte hflip, byte vflip, byte offset) - - vera_tile_area(0, 0, 0, 0, 40, 30, 0, 0, 0); - - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - vera_tile_area(0, 0, 4, 2, 1, 1, 0, 0, 0); - vera_tile_area(0, 1, 10, 2, 1, 1, 0, 0, 0); - vera_tile_area(0, 2, 16, 2, 1, 1, 0, 0, 0); - vera_tile_area(0, 3, 22, 2, 1, 1, 0, 0, 0); - - // Draw 4 squares with each tile, starting from row 6, width 4, height 4, separated by 2 characters. - vera_tile_area(0, 0, 4, 4, 4, 4, 0, 0, 0); - vera_tile_area(0, 1, 10, 4, 4, 4, 0, 0, 0); - vera_tile_area(0, 2, 16, 4, 4, 4, 0, 0, 0); - vera_tile_area(0, 3, 22, 4, 4, 4, 0, 0, 0); - - word tile = 0; - byte offset = 0; - - byte row = 10; - - for(byte r:0..3) { - byte column = 4; - for(byte c:0..16) { - vera_tile_area(0, tile, column, row, 1, 1, 0, 0, offset); - column+=2; - offset++; - } - tile++; - tile &= 0x3; - row += 2; - } - - vera_layer_show(0); - - gotoxy(0,50); - printf("vera in tile mode 8 x 8, color depth 2 bits per pixel.\n"); - - printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n"); - printf("each tile can have a variation of 4 colors.\n"); - printf("the vera palette of 256 colors, can be used by setting the palette\n"); - printf("offset for each tile.\n"); - printf("here each column is displaying the same tile, but with different offsets!\n"); - printf("each offset aligns to multiples of 16 colors, and only the first 4 colors\n"); - printf("can be used per offset!\n"); - printf("however, the first color will always be transparent (black).\n"); - - while(!kbhit()); -} diff --git a/src/test/kc/examples/cx16/veralib/tilemap_2bpp_8_x_8.c b/src/test/kc/examples/cx16/veralib/tilemap_2bpp_8_x_8.c deleted file mode 100644 index c5889a321..000000000 --- a/src/test/kc/examples/cx16/veralib/tilemap_2bpp_8_x_8.c +++ /dev/null @@ -1,70 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA tile map modes and layering. - -// Author: Sven Van de Velde - -#pragma target(cx16) -#include -#include -#include - -void main() { - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - vera_layer_mode_tile(0, 0x04000, 0x14000, 128, 128, 8, 8, 2); - - byte tiles[64] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; - - byte map[16] = {0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x02,0x00,0x02,0x00,0x03,0x00,0x03,0x00}; - - memcpy_to_vram(1, 0x4000, tiles, 64); - - //vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h, byte hflip, byte vflip, byte offset) - - vera_tile_area(0, 0, 0, 0, 80, 60, 0, 0, 0); - - // Draw 4 squares with each tile, staring from row 2, width 10, height 10, separated by 2 characters. - vera_tile_area(0, 0, 4, 4, 10, 10, 0, 0, 0); - vera_tile_area(0, 1, 16, 4, 10, 10, 0, 0, 0); - vera_tile_area(0, 2, 28, 4, 10, 10, 0, 0, 0); - vera_tile_area(0, 3, 40, 4, 10, 10, 0, 0, 0); - - word tile = 0; - byte offset = 0; - - byte row = 22; - - for(byte r:0..3) { - byte column = 4; - for(byte c:0..15) { - vera_tile_area(0, tile, column, row, 3, 3, 0, 0, offset); - column+=4; - offset++; - } - tile++; - tile &= 0x3; - row += 4; - } - - vera_layer_show(0); - - gotoxy(0,50); - printf("vera in tile mode 8 x 8, color depth 2 bits per pixel.\n"); - - printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n"); - printf("each tile can have a variation of 4 colors.\n"); - printf("the vera palette of 256 colors, can be used by setting the palette\n"); - printf("offset for each tile.\n"); - printf("here each column is displaying the same tile, but with different offsets!\n"); - printf("each offset aligns to multiples of 16 colors, and only the first 4 colors\n"); - printf("can be used per offset!\n"); - printf("however, the first color will always be transparent (black).\n"); - - while(!kbhit()); -} diff --git a/src/test/kc/examples/cx16/veralib/tilemap_4bpp_16_x_16.c b/src/test/kc/examples/cx16/veralib/tilemap_4bpp_16_x_16.c deleted file mode 100644 index b627f71d5..000000000 --- a/src/test/kc/examples/cx16/veralib/tilemap_4bpp_16_x_16.c +++ /dev/null @@ -1,218 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA tile map modes and layering. - -// Author: Sven Van de Velde - -#pragma target(cx16) -#include -#include -#include - -void main() { - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - vera_layer_mode_tile(0, 0x04000, 0x14000, 128, 128, 16, 16, 4); - - byte tiles[2048] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - }; - - memcpy_to_vram(1, 0x4000, tiles, 2048); - - //vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h, byte hflip, byte vflip, byte offset) - - vera_tile_area(0, 0, 0, 0, 40, 30, 0, 0, 0); - - word tile = 0; - - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - tile = 0; - byte column = 1; - for(byte c:0..7) { - vera_tile_area(0, tile, column, 1, 1, 1, 0, 0, 0); - column+=4; - tile++; - } - column = 1; - for(byte c:0..7) { - vera_tile_area(0, tile, column, 3, 1, 1, 0, 0, 0); - column+=4; - tile++; - } - - tile = 0; - column = 1; - for(byte c:0..7) { - vera_tile_area(0, tile, column, 5, 3, 3, 0, 0, 0); - column+=4; - tile++; - } - column = 1; - for(byte c:0..7) { - vera_tile_area(0, tile, column, 9, 3, 3, 0, 0, 0); - column+=4; - tile++; - } - - tile = 0; - byte offset = 0; - - byte row = 13; - - for(byte r:0..7) { - byte column = 1; - for(byte c:0..31) { - vera_tile_area(0, tile, column, row, 1, 1, 0, 0, offset); - column+=1; - tile++; - if((c & 0x0f) == 0x0f) offset++; - tile &= 0x0f; - } - row += 1; - } - - vera_layer_show(0); - - gotoxy(0,50); - printf("vera in tile mode 16 x 16, color depth 4 bits per pixel.\n"); - - printf("in this mode, tiles are 16 pixels wide and 16 pixels tall.\n"); - printf("each tile can have a variation of 16 colors.\n"); - printf("the vera palette of 256 colors, can be used by setting the palette\n"); - printf("offset for each tile.\n"); - printf("here each column is displaying the same tile, but with different offsets!\n"); - printf("each offset aligns to multiples of 16 colors in the palette!.\n"); - printf("however, the first color will always be transparent (black).\n"); - - while(!kbhit()); -} diff --git a/src/test/kc/examples/cx16/veralib/tilemap_4bpp_8_x_8.c b/src/test/kc/examples/cx16/veralib/tilemap_4bpp_8_x_8.c deleted file mode 100644 index 437d609b4..000000000 --- a/src/test/kc/examples/cx16/veralib/tilemap_4bpp_8_x_8.c +++ /dev/null @@ -1,120 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA tile map modes and layering. - -// Author: Sven Van de Velde - -#pragma target(cx16) -#include -#include -#include - -void main() { - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - vera_layer_mode_tile(0, 0x04000, 0x14000, 128, 128, 8, 8, 4); - - byte tiles[512] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD,0xDD, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - }; - - memcpy_to_vram(1, 0x4000, tiles, 512); - - vera_tile_area(0, 0, 0, 0, 80, 60, 0, 0, 0); - - word tile = 0; - - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - tile = 0; - byte column = 1; - for(byte c:0..7) { - vera_tile_area(0, tile, column, 1, 1, 1, 0, 0, 0); - column+=8; - tile++; - } - column = 1; - for(byte c:0..7) { - vera_tile_area(0, tile, column, 3, 1, 1, 0, 0, 0); - column+=8; - tile++; - } - - tile = 0; - column = 1; - for(byte c:0..7) { - vera_tile_area(0, tile, column, 5, 6, 6, 0, 0, 0); - column+=8; - tile++; - } - column = 1; - for(byte c:0..7) { - vera_tile_area(0, tile, column, 12, 6, 6, 0, 0, 0); - column+=8; - tile++; - } - - tile = 0; - byte offset = 0; - - byte row = 20; - - for(byte r:0..7) { - byte column = 1; - for(byte c:0..31) { - vera_tile_area(0, tile, column, row, 2, 2, 0, 0, offset); - column+=2; - tile++; - if((c & 0x0f) == 0x0f) offset++; - tile &= 0x0f; - } - row += 2; - } - - vera_layer_show(0); - - gotoxy(0,50); - printf("vera in tile mode 8 x 8, color depth 4 bits per pixel.\n"); - - printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n"); - printf("each tile can have a variation of 16 colors.\n"); - printf("the vera palette of 256 colors, can be used by setting the palette\n"); - printf("offset for each tile.\n"); - printf("here each column is displaying the same tile, but with different offsets!\n"); - printf("each offset aligns to multiples of 16 colors in the palette!.\n"); - printf("however, the first color will always be transparent (black).\n"); - - while(!kbhit()); -} diff --git a/src/test/kc/examples/cx16/veralib/tilemap_8bpp_16_x_16.c b/src/test/kc/examples/cx16/veralib/tilemap_8bpp_16_x_16.c deleted file mode 100644 index 0f151f3b3..000000000 --- a/src/test/kc/examples/cx16/veralib/tilemap_8bpp_16_x_16.c +++ /dev/null @@ -1,133 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA tile map modes and layering. - -// Author: Sven Van de Velde - -#pragma target(cx16) -#include -#include -#include - -void main() { - - - byte tiles[256] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - }; - - // 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. - // VERA VRAM holds in bank 1 many registers that interfere loading all of this data. - // So it is better to load all in bank 0, but then there is an other issue. - // So the default CX16 character set is located in bank 0, at address 0xF800. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x10000. - // This is now all easily done with a few statements in the new kickc vera lib ... - - memcpy_in_vram(1, (char*)0xF000, VERA_INC_1, 0, (char*)0xF800, VERA_INC_1, 256*8); // We copy the 128 character set of 8 bytes each. - vera_layer_mode_tile(1, 0x10000, 0x1F000, 128, 64, 8, 8, 1); - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - // Now we can use the full bank 0! - // We set the mapbase of the tile demo to output to 0x12000, - // and the tilebase is set to 0x0000! - vera_layer_mode_tile(0, 0x14000, 0x00000, 64, 64, 16, 16, 8); - - - char* tilebase = (char*)0x0000; - memcpy_to_vram(0, tilebase, tiles, 256); - tilebase+=256; - for(byte t:1..255) { - for(byte p:0..255) { - tiles[p]+=1; - } - memcpy_to_vram(0, tilebase, tiles, 256); - tilebase+=256; - } - - //vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h, byte hflip, byte vflip, byte offset) - - vera_tile_area(0, 0, 0, 0, 40, 30, 0, 0, 0); - - word tile = 0; - - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - byte row = 1; - for(byte r:0..11) { - byte column = 0; - for(byte c:0..19) { - vera_tile_area(0, tile, column, row, 1, 1, 0, 0, 0); - column+=2; - tile++; - tile &= 0xff; - } - row += 2; - } - - gotoxy(0,50); - printf("vera in tile mode 8 x 8, color depth 8 bits per pixel.\n"); - - printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n"); - printf("each tile can have a variation of 256 colors.\n"); - printf("the vera palette of 256 colors, can be used by setting the palette\n"); - printf("offset for each tile.\n"); - printf("here each column is displaying the same tile, but with different offsets!\n"); - printf("each offset aligns to multiples of 16 colors in the palette!.\n"); - printf("however, the first color will always be transparent (black).\n"); - - vera_layer_show(0); - - while(!kbhit()); - - vera_tile_area(0, 0, 0, 0, 40, 30, 0, 0, 0); - - tile = 0; - row = 0; - for(byte r:0..11) { - byte column = 0; - for(byte c:0..19) { - vera_tile_area(0, tile, column, row, 2, 2, 0, 0, 0); - column+=2; - tile++; - tile &= 0xff; - } - row += 2; - } - - while(!kbhit()); - - // Now put back the defaults ... - vera_tile_area(0, 0, 0, 0, 40, 30, 0, 0, 0); - vera_layer_hide(0); - memcpy_in_vram(0, (char*)0xF800, VERA_INC_1, 1, (char*)0xF000, VERA_INC_1, 256*8); - vera_layer_mode_tile(1, 0x00000, 0x0F800, 128, 128, 8, 8, 1); - vera_layer_mode_tile(0, 0x00000, 0x0F800, 128, 128, 8, 8, 1); - - screenlayer(1); - textcolor(WHITE); - bgcolor(BLUE); - clrscr(); - -} diff --git a/src/test/kc/examples/cx16/veralib/tilemap_8bpp_8_x_8.c b/src/test/kc/examples/cx16/veralib/tilemap_8bpp_8_x_8.c deleted file mode 100644 index 6061005d6..000000000 --- a/src/test/kc/examples/cx16/veralib/tilemap_8bpp_8_x_8.c +++ /dev/null @@ -1,87 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA tile map modes and layering. - -// Author: Sven Van de Velde - -#pragma target(cx16) -#include -#include -#include - -void main() { - - textcolor(WHITE); - bgcolor(BLACK); - clrscr(); - - vera_layer_mode_tile(0, 0x04000, 0x14000, 128, 128, 8, 8, 8); - - byte tiles[64] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - }; - - char* tilebase = (char*)0x4000; - memcpy_to_vram(1, tilebase, tiles, 64); - tilebase+=64; - for(byte t:1..255) { - for(byte p:0..63) { - tiles[p]+=1; - } - memcpy_to_vram(1, tilebase, tiles, 64); - tilebase+=64; - } - - //vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h, byte hflip, byte vflip, byte offset) - - vera_tile_area(0, 0, 0, 0, 80, 60, 0, 0, 0); - - word tile = 0; - - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - byte row = 1; - for(byte r:0..7) { - byte column = 1; - for(byte c:0..31) { - vera_tile_area(0, tile, column, row, 1, 1, 0, 0, 0); - column+=2; - tile++; - tile &= 0xff; - } - row += 2; - } - - tile = 0; - row = 20; - for(byte r:0..7) { - byte column = 1; - for(byte c:0..31) { - vera_tile_area(0, tile, column, row, 2, 2, 0, 0, 0); - column+=2; - tile++; - tile &= 0xff; - } - row += 2; - } - - vera_layer_show(0); - - gotoxy(0,50); - printf("vera in tile mode 8 x 8, color depth 8 bits per pixel.\n"); - - printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n"); - printf("each tile can have a variation of 256 colors.\n"); - printf("the vera palette of 256 colors, can be used by setting the palette\n"); - printf("offset for each tile.\n"); - printf("here each column is displaying the same tile, but with different offsets!\n"); - printf("each offset aligns to multiples of 16 colors in the palette!.\n"); - printf("however, the first color will always be transparent (black).\n"); - - while(!kbhit()); -} diff --git a/src/test/kc/examples/memfast/memfast.c b/src/test/kc/examples/memfast/memfast.c new file mode 100644 index 000000000..0023f4da3 --- /dev/null +++ b/src/test/kc/examples/memfast/memfast.c @@ -0,0 +1,39 @@ +/** + * @file memfast.c + * @author Sven Van de Velde (sven.van.de.velde@telenet.be) + * @brief Demonstration of functions memcpy_fast and memset_fast + * for 8 bit architectures. + * @version 0.1 + * @date 2023-04-14 + * + * @copyright Copyright (c) 2023 + * + */ + +#include +#include +#include + + +void main() { + const char* screen = (char*)0x0400; + const char* bottom = (char*)0x0400 + 40*12; + + // Show mixed chars on screen + *((char*)0xd018) = 0x17; + + // Clear screen + clrscr(); + + for(char i:0..255) { + memset_fast(screen, i, 256); // 256 will be truncated to 0, which will copy 256 bytes! + memcpy_fast(bottom, screen, 256); + } + + // There is a longer term plan to allow these calls to be written as "inline" ... + // Which would give the programmer the means to decide how the code should + // be generated for these copy functions. + // inline memset_fast(screen, i, 256); // 256 will be truncated to 0, which will copy 256 bytes! + // inline memcpy_fast(bottom, screen, 256); + +} \ No newline at end of file diff --git a/src/test/ref/casting-negative.log b/src/test/ref/casting-negative.log index cfa761d3c..2dc403ae1 100644 --- a/src/test/ref/casting-negative.log +++ b/src/test/ref/casting-negative.log @@ -13,6 +13,8 @@ Inlined call call __init Eliminating unused variable with no statement gotoxy::$4 Eliminating unused variable with no statement memcpy::$0 Eliminating unused variable with no statement memset::$2 +Eliminating unused variable with no statement __snprintf_capacity +Eliminating unused variable with no statement __snprintf_size Eliminating unused variable with no statement test_casting::$0 Calling convention STACK_CALL adding prepare/execute/finalize for call *printf_str::putc printf_str::c Calling convention STACK_CALL adding prepare/execute/finalize for call *printf_padding::putc printf_padding::pad diff --git a/src/test/ref/cbm-keyboard.log b/src/test/ref/cbm-keyboard.log index 0ffec3780..951995af8 100644 --- a/src/test/ref/cbm-keyboard.log +++ b/src/test/ref/cbm-keyboard.log @@ -15,6 +15,8 @@ Inlined call call __init Eliminating unused variable with no statement memcpy::$0 Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement gotoxy::$4 +Eliminating unused variable with no statement __snprintf_capacity +Eliminating unused variable with no statement __snprintf_size Eliminating unused variable with no statement main::$2 Eliminating unused variable with no statement main::$7 Calling convention STACK_CALL adding prepare/execute/finalize for call *printf_str::putc printf_str::c diff --git a/src/test/ref/complex/xmega65/xmega65.log b/src/test/ref/complex/xmega65/xmega65.log index 0610788ff..c7b45bec3 100644 --- a/src/test/ref/complex/xmega65/xmega65.log +++ b/src/test/ref/complex/xmega65/xmega65.log @@ -1,4 +1,5 @@ Loading link script "xmega65.ld" +Inlined call call __init Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA @@ -47,7 +48,7 @@ memset::@return: scope:[memset] from memset::@1 to:@return void main() -main: scope:[main] from __start +main: scope:[main] from __start::@1 *VICII_MEMORY = $14 memset::str#0 = (void *)SCREEN memset::c#0 = ' ' @@ -116,11 +117,15 @@ syscall2::@return: scope:[syscall2] from syscall2 void __start() __start: scope:[__start] from - call main + to:__start::__init1 +__start::__init1: scope:[__start] from __start to:__start::@1 -__start::@1: scope:[__start] from __start +__start::@1: scope:[__start] from __start::__init1 + call main + to:__start::@2 +__start::@2: scope:[__start] from __start::@1 to:__start::@return -__start::@return: scope:[__start] from __start::@1 +__start::@return: scope:[__start] from __start::@2 return to:@return @@ -281,7 +286,9 @@ Eliminating unused variable memset::return#3 and assignment [14] memset::return# Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start +Removing unused procedure block __start::__init1 Removing unused procedure block __start::@1 +Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Simple Condition main::$2 [20] if(*RASTER==$36) goto main::@5 diff --git a/src/test/ref/ducks-array.log b/src/test/ref/ducks-array.log index 52b0efcee..200ca1e29 100644 --- a/src/test/ref/ducks-array.log +++ b/src/test/ref/ducks-array.log @@ -7,6 +7,8 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) Inlined call call __init Eliminating unused variable with no statement gotoxy::$4 Eliminating unused variable with no statement printf_buffer +Eliminating unused variable with no statement __snprintf_capacity +Eliminating unused variable with no statement __snprintf_size CONTROL FLOW GRAPH SSA diff --git a/src/test/ref/ducks-total.log b/src/test/ref/ducks-total.log index b2ef90b84..65e8f8939 100644 --- a/src/test/ref/ducks-total.log +++ b/src/test/ref/ducks-total.log @@ -11,6 +11,8 @@ Eliminating unused variable with no statement memcpy::$0 Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement gotoxy::$4 Eliminating unused variable with no statement printf_buffer +Eliminating unused variable with no statement __snprintf_capacity +Eliminating unused variable with no statement __snprintf_size Eliminating unused variable with no statement div16u8u::$1 Eliminating unused variable with no statement div16u8u::$3 Eliminating unused variable with no statement div16u8u::$4 diff --git a/src/test/ref/examples/c64/font-2x2/font-2x2.log b/src/test/ref/examples/c64/font-2x2/font-2x2.log index 54e8fc78d..f89e3df56 100644 --- a/src/test/ref/examples/c64/font-2x2/font-2x2.log +++ b/src/test/ref/examples/c64/font-2x2/font-2x2.log @@ -1,5 +1,6 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) Inlined call main::$2 = call toD018(SCREEN, FONT_COMPRESSED) +Inlined call call __init Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement main::$1 Eliminating unused variable with no statement show::$3 @@ -52,7 +53,7 @@ memset::@return: scope:[memset] from memset::@1 to:@return void main() -main: scope:[main] from __start +main: scope:[main] from __start::@1 asm { sei } *PROCPORT = PROCPORT_RAM_CHARROM font_2x2::font_original#0 = CHARGEN @@ -500,11 +501,15 @@ font_find::@return: scope:[font_find] from font_find::@3 font_find::@8 void __start() __start: scope:[__start] from - call main + to:__start::__init1 +__start::__init1: scope:[__start] from __start to:__start::@1 -__start::@1: scope:[__start] from __start +__start::@1: scope:[__start] from __start::__init1 + call main + to:__start::@2 +__start::@2: scope:[__start] from __start::@1 to:__start::@return -__start::@return: scope:[__start] from __start::@1 +__start::@return: scope:[__start] from __start::@2 return to:@return @@ -1278,7 +1283,9 @@ Eliminating unused constant memset::return#2 Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start +Removing unused procedure block __start::__init1 Removing unused procedure block __start::@1 +Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Adding number conversion cast (unumber) 8 in [30] if(main::x#1!=8) goto main::@2 diff --git a/src/test/ref/examples/c64/kernalload/kernalload.log b/src/test/ref/examples/c64/kernalload/kernalload.log index b0fba1a3b..dd29f2926 100644 --- a/src/test/ref/examples/c64/kernalload/kernalload.log +++ b/src/test/ref/examples/c64/kernalload/kernalload.log @@ -8,6 +8,7 @@ Setting inferred volatile on symbol affected by address-of: load::verify in asm Setting inferred volatile on symbol affected by address-of: load::status in asm { ldxaddress ldyaddress+1 ldaverify jsr$ffd5 bcserror lda#$ff error: stastatus } Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) Inlined call main::$3 = call toSpritePtr(LOAD_SPRITE) +Inlined call call __init Eliminating unused variable with no statement main::$0 CONTROL FLOW GRAPH SSA @@ -40,7 +41,7 @@ strlen::@return: scope:[strlen] from strlen::@3 to:@return void main() -main: scope:[main] from __start +main: scope:[main] from __start::@1 loadFileToMemory::device#0 = 8 loadFileToMemory::filename#0 = main::filename loadFileToMemory::address#0 = LOAD_SPRITE @@ -166,11 +167,15 @@ load::@return: scope:[load] from load void __start() __start: scope:[__start] from - call main + to:__start::__init1 +__start::__init1: scope:[__start] from __start to:__start::@1 -__start::@1: scope:[__start] from __start +__start::@1: scope:[__start] from __start::__init1 + call main + to:__start::@2 +__start::@2: scope:[__start] from __start::@1 to:__start::@return -__start::@return: scope:[__start] from __start::@1 +__start::@return: scope:[__start] from __start::@2 return to:@return @@ -366,7 +371,9 @@ Simplifying expression containing zero SPRITES_YPOS in [24] SPRITES_YPOS[0] = $3 Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused procedure __start Removing unused procedure block __start +Removing unused procedure block __start::__init1 Removing unused procedure block __start::@1 +Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Alias candidate removed (volatile)load::return#1 = load::status load::return#2 diff --git a/src/test/ref/examples/cx16/cx16-rasterbars.asm b/src/test/ref/examples/cx16/cx16-rasterbars.asm index 0cedde062..465ab6799 100644 --- a/src/test/ref/examples/cx16/cx16-rasterbars.asm +++ b/src/test/ref/examples/cx16/cx16-rasterbars.asm @@ -1,7 +1,7 @@ // Example program for the Commander X16 // Displays raster bars in the border .cpu _65c02 - // Commodore 64 PRG executable file + // Commander X16 PRG executable file .file [name="cx16-rasterbars.prg", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$0801] @@ -9,9 +9,13 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(__start) + .const VERA_DCSEL = 2 .const VERA_LINE = 2 + .const isr_vsync = $314 .const SIZEOF_CHAR = 1 + /// $0314 (RAM) IRQ vector - The vector used when the KERNAL serves IRQ interrupts + .label KERNEL_IRQ = $314 /// $9F25 CTRL Control /// Bit 7: Reset /// Bit 1: DCSEL @@ -48,22 +52,28 @@ .label VERA_DC_VSTART = $9f2b /// $9F2C DC_VSTOP (DCSEL=1) Active Display V-Stop (8:1) .label VERA_DC_VSTOP = $9f2c - /// $0314 (RAM) IRQ vector - The vector used when the KERNAL serves IRQ interrupts - .label KERNEL_IRQ = $314 + .label BRAM = 0 + .label BROM = 1 // The horizontal start - .label hstart = 6 + .label hstart = $26 // The horizontal stop - .label hstop = 7 + .label hstop = $27 // The vertical start - .label vstart = 8 + .label vstart = $28 // The vertical stop - .label vstop = 9 + .label vstop = $29 // The countdown - .label cnt = 5 + .label cnt = $25 // The sin idx - .label sin_idx = $a + .label sin_idx = $2a .segment Code __start: { + // __export volatile __address(0x00) unsigned char BRAM = 0 + lda #0 + sta.z BRAM + // __export volatile __address(0x01) unsigned char BROM = 4 + lda #4 + sta.z BROM // volatile char hstart = 0/4 lda #0 sta.z hstart @@ -87,8 +97,8 @@ __start: { } // LINE Interrupt Routine irq_line: { - .label idx = 4 - .label bar = 2 + .label idx = $24 + .label bar = $22 // *VERA_CTRL |= VERA_DCSEL // Update the border lda #VERA_DCSEL @@ -243,7 +253,7 @@ memset: { .const c = 0 .label str = BARS .label end = str+num - .label dst = 2 + .label dst = $22 lda #str diff --git a/src/test/ref/examples/cx16/cx16-rasterbars.cfg b/src/test/ref/examples/cx16/cx16-rasterbars.cfg index 76233912a..ffa1c2b84 100644 --- a/src/test/ref/examples/cx16/cx16-rasterbars.cfg +++ b/src/test/ref/examples/cx16/cx16-rasterbars.cfg @@ -4,138 +4,140 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] hstart = 0 - [2] hstop = (char)$280/4 - [3] vstart = 0 - [4] vstop = (char)$1e0/2 - [5] cnt = 2 - [6] sin_idx = $64 + [1] BRAM = 0 + [2] BROM = 4 + [3] hstart = 0 + [4] hstop = (char)$280/4 + [5] vstart = 0 + [6] vstop = (char)$1e0/2 + [7] cnt = 2 + [8] sin_idx = $64 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - [7] phi() - [8] call main + [9] phi() + [10] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 - [9] return + [11] return to:@return __interrupt(rom_min_cx16) void irq_line() irq_line: scope:[irq_line] from - [10] *VERA_CTRL = *VERA_CTRL | VERA_DCSEL - [11] *VERA_DC_HSTART = hstart - [12] *VERA_DC_HSTOP = hstop - [13] *VERA_DC_VSTART = vstart - [14] *VERA_DC_VSTOP = vstop - [15] *VERA_CTRL = *VERA_CTRL & ~VERA_DCSEL + [12] *VERA_CTRL = *VERA_CTRL | VERA_DCSEL + [13] *VERA_DC_HSTART = hstart + [14] *VERA_DC_HSTOP = hstop + [15] *VERA_DC_VSTART = vstart + [16] *VERA_DC_VSTOP = vstop + [17] *VERA_CTRL = *VERA_CTRL & ~VERA_DCSEL to:irq_line::@2 irq_line::@2: scope:[irq_line] from irq_line irq_line::@10 - [16] irq_line::l#2 = phi( irq_line/0, irq_line::@10/irq_line::l#1 ) - [17] if(irq_line::l#2!=$e6) goto irq_line::@3 + [18] irq_line::l#2 = phi( irq_line/0, irq_line::@10/irq_line::l#1 ) + [19] if(irq_line::l#2!=$e6) goto irq_line::@3 to:irq_line::@4 irq_line::@4: scope:[irq_line] from irq_line::@2 - [18] cnt = -- cnt - [19] if(cnt!=0) goto irq_line::@1 + [20] cnt = -- cnt + [21] if(cnt!=0) goto irq_line::@1 to:irq_line::@11 irq_line::@11: scope:[irq_line] from irq_line::@4 - [20] cnt = 2 - [21] if(hstart>=(char)$140/4+1) goto irq_line::@1 + [22] cnt = 2 + [23] if(hstart>=(char)$140/4+1) goto irq_line::@1 to:irq_line::@12 irq_line::@12: scope:[irq_line] from irq_line::@11 - [22] hstart = ++ hstart - [23] hstop = -- hstop - [24] vstart = ++ vstart - [25] vstop = -- vstop + [24] hstart = ++ hstart + [25] hstop = -- hstop + [26] vstart = ++ vstart + [27] vstop = -- vstop to:irq_line::@1 irq_line::@1: scope:[irq_line] from irq_line::@11 irq_line::@12 irq_line::@4 - [26] phi() - [27] call memset + [28] phi() + [29] call memset to:irq_line::@19 irq_line::@19: scope:[irq_line] from irq_line::@1 - [28] irq_line::idx#0 = sin_idx - [29] sin_idx = -- sin_idx + [30] irq_line::idx#0 = sin_idx + [31] sin_idx = -- sin_idx to:irq_line::@13 irq_line::@13: scope:[irq_line] from irq_line::@18 irq_line::@19 - [30] irq_line::idx#2 = phi( irq_line::@18/irq_line::idx#1, irq_line::@19/irq_line::idx#0 ) - [30] irq_line::b#2 = phi( irq_line::@18/irq_line::b#1, irq_line::@19/0 ) - [31] if(irq_line::b#2<8) goto irq_line::@14 + [32] irq_line::idx#2 = phi( irq_line::@18/irq_line::idx#1, irq_line::@19/irq_line::idx#0 ) + [32] irq_line::b#2 = phi( irq_line::@18/irq_line::b#1, irq_line::@19/0 ) + [33] if(irq_line::b#2<8) goto irq_line::@14 to:irq_line::@15 irq_line::@15: scope:[irq_line] from irq_line::@13 - [32] *VERA_ISR = VERA_LINE + [34] *VERA_ISR = VERA_LINE to:irq_line::@return irq_line::@return: scope:[irq_line] from irq_line::@15 - [33] return + [35] return to:@return irq_line::@14: scope:[irq_line] from irq_line::@13 - [34] irq_line::bar#0 = BARS + SIN[irq_line::idx#2] + [36] irq_line::bar#0 = BARS + SIN[irq_line::idx#2] to:irq_line::@16 irq_line::@16: scope:[irq_line] from irq_line::@14 irq_line::@17 - [35] irq_line::i2#2 = phi( irq_line::@14/0, irq_line::@17/irq_line::i2#1 ) - [36] if(irq_line::i2#2<$20*SIZEOF_CHAR) goto irq_line::@17 + [37] irq_line::i2#2 = phi( irq_line::@14/0, irq_line::@17/irq_line::i2#1 ) + [38] if(irq_line::i2#2<$20*SIZEOF_CHAR) goto irq_line::@17 to:irq_line::@18 irq_line::@18: scope:[irq_line] from irq_line::@16 - [37] irq_line::idx#1 = irq_line::idx#2 + $d - [38] irq_line::b#1 = ++ irq_line::b#2 + [39] irq_line::idx#1 = irq_line::idx#2 + $d + [40] irq_line::b#1 = ++ irq_line::b#2 to:irq_line::@13 irq_line::@17: scope:[irq_line] from irq_line::@16 - [39] irq_line::bar#0[irq_line::i2#2] = BAR[irq_line::i2#2] - [40] irq_line::i2#1 = ++ irq_line::i2#2 + [41] irq_line::bar#0[irq_line::i2#2] = BAR[irq_line::i2#2] + [42] irq_line::i2#1 = ++ irq_line::i2#2 to:irq_line::@16 irq_line::@3: scope:[irq_line] from irq_line::@2 - [41] *VERA_DC_BORDER = BARS[irq_line::l#2] + [43] *VERA_DC_BORDER = BARS[irq_line::l#2] to:irq_line::@5 irq_line::@5: scope:[irq_line] from irq_line::@3 irq_line::@6 - [42] irq_line::i#2 = phi( irq_line::@3/0, irq_line::@6/irq_line::i#1 ) - [43] if(irq_line::i#2<$18) goto irq_line::@6 + [44] irq_line::i#2 = phi( irq_line::@3/0, irq_line::@6/irq_line::i#1 ) + [45] if(irq_line::i#2<$18) goto irq_line::@6 to:irq_line::@7 irq_line::@7: scope:[irq_line] from irq_line::@5 - [44] *VERA_DC_BORDER = 0 + [46] *VERA_DC_BORDER = 0 to:irq_line::@8 irq_line::@8: scope:[irq_line] from irq_line::@7 irq_line::@9 - [45] irq_line::i1#2 = phi( irq_line::@7/0, irq_line::@9/irq_line::i1#1 ) - [46] if(irq_line::i1#2<$17) goto irq_line::@9 + [47] irq_line::i1#2 = phi( irq_line::@7/0, irq_line::@9/irq_line::i1#1 ) + [48] if(irq_line::i1#2<$17) goto irq_line::@9 to:irq_line::@10 irq_line::@10: scope:[irq_line] from irq_line::@8 asm { nop nop } - [48] irq_line::l#1 = ++ irq_line::l#2 + [50] irq_line::l#1 = ++ irq_line::l#2 to:irq_line::@2 irq_line::@9: scope:[irq_line] from irq_line::@8 - [49] irq_line::i1#1 = ++ irq_line::i1#2 + [51] irq_line::i1#1 = ++ irq_line::i1#2 to:irq_line::@8 irq_line::@6: scope:[irq_line] from irq_line::@5 - [50] irq_line::i#1 = ++ irq_line::i#2 + [52] irq_line::i#1 = ++ irq_line::i#2 to:irq_line::@5 void main() main: scope:[main] from __start::@1 - [51] phi() + [53] phi() to:main::SEI1 main::SEI1: scope:[main] from main asm { sei } to:main::@2 main::@2: scope:[main] from main::SEI1 - [53] *KERNEL_IRQ = &irq_line - [54] *VERA_IEN = VERA_LINE - [55] *VERA_IRQLINE_L = 5 + [55] *KERNEL_IRQ = &irq_line + [56] *VERA_IEN = VERA_LINE + [57] *VERA_IRQLINE_L = 5 to:main::CLI1 main::CLI1: scope:[main] from main::@2 asm { cli } to:main::@1 main::@1: scope:[main] from main::@1 main::CLI1 - [57] phi() + [59] phi() to:main::@1 void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from irq_line::@1 - [58] phi() + [60] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [59] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) - [60] if(memset::dst#2!=memset::end#0) goto memset::@2 + [61] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) + [62] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 - [61] return + [63] return to:@return memset::@2: scope:[memset] from memset::@1 - [62] *memset::dst#2 = memset::c#0 - [63] memset::dst#1 = ++ memset::dst#2 + [64] *memset::dst#2 = memset::c#0 + [65] memset::dst#1 = ++ memset::dst#2 to:memset::@1 diff --git a/src/test/ref/examples/cx16/cx16-rasterbars.log b/src/test/ref/examples/cx16/cx16-rasterbars.log index 18cd7a889..933993238 100644 --- a/src/test/ref/examples/cx16/cx16-rasterbars.log +++ b/src/test/ref/examples/cx16/cx16-rasterbars.log @@ -1,11 +1,54 @@ Resolved forward reference irq_line to __interrupt(rom_min_cx16) void irq_line() -Setting inferred volatile on symbol affected by address-of: setnam::filename_len in asm { ldafilename_len ldxfilename ldyfilename+1 jsr$ffbd } -Setting inferred volatile on symbol affected by address-of: setnam::filename in asm { ldafilename_len ldxfilename ldyfilename+1 jsr$ffbd } -Setting inferred volatile on symbol affected by address-of: setlfs::device in asm { ldxdevice lda#1 ldy#0 jsr$ffba } -Setting inferred volatile on symbol affected by address-of: load::address in asm { ldxaddress ldyaddress+1 ldaverify jsr$ffd5 bcserror lda#$ff error: stastatus } -Setting inferred volatile on symbol affected by address-of: load::verify in asm { ldxaddress ldyaddress+1 ldaverify jsr$ffd5 bcserror lda#$ff error: stastatus } -Setting inferred volatile on symbol affected by address-of: load::status in asm { ldxaddress ldyaddress+1 ldaverify jsr$ffd5 bcserror lda#$ff error: stastatus } -Setting inferred volatile on symbol affected by address-of: getin::ch in asm { jsr$ffe4 stach } +Setting inferred volatile on symbol affected by address-of: memcpy_vram_bram::pos in asm { ldypos ldxlen inx ldaptr sta!ptr++1 ldaptr+1 sta!ptr++2 !ptr: lda$ffff,y staVERA_DATA0 iny dex bne!ptr- } +Setting inferred volatile on symbol affected by address-of: memcpy_vram_bram::len in asm { ldypos ldxlen inx ldaptr sta!ptr++1 ldaptr+1 sta!ptr++2 !ptr: lda$ffff,y staVERA_DATA0 iny dex bne!ptr- } +Setting inferred volatile on symbol affected by address-of: memcpy_vram_bram::ptr in asm { ldypos ldxlen inx ldaptr sta!ptr++1 ldaptr+1 sta!ptr++2 !ptr: lda$ffff,y staVERA_DATA0 iny dex bne!ptr- } +Setting inferred volatile on symbol affected by address-of: memcpy_vram_bram::num in asm { ldy#0 ldxnum inx ldaptr sta!ptr++1 ldaptr+1 sta!ptr++2 !ptr: lda$ffff,y staVERA_DATA0 iny dex bne!ptr- } +Setting inferred volatile on symbol affected by address-of: cbm_k_setlfs::device in asm { ldxdevice ldachannel ldycommand jsrCBM_SETLFS } +Setting inferred volatile on symbol affected by address-of: cbm_k_setlfs::channel in asm { ldxdevice ldachannel ldycommand jsrCBM_SETLFS } +Setting inferred volatile on symbol affected by address-of: cbm_k_setlfs::command in asm { ldxdevice ldachannel ldycommand jsrCBM_SETLFS } +Setting inferred volatile on symbol affected by address-of: cbm_k_setnam::filename_len in asm { ldafilename_len ldxfilename ldyfilename+1 jsrCBM_SETNAM } +Setting inferred volatile on symbol affected by address-of: cbm_k_setnam::filename in asm { ldafilename_len ldxfilename ldyfilename+1 jsrCBM_SETNAM } +Setting inferred volatile on symbol affected by address-of: cbm_k_close::channel in asm { ldachannel jsrCBM_CLOSE } +Setting inferred volatile on symbol affected by address-of: cbm_k_chkin::channel in asm { ldxchannel jsrCBM_CHKIN stastatus } +Setting inferred volatile on symbol affected by address-of: cbm_k_chkin::status in asm { ldxchannel jsrCBM_CHKIN stastatus } +Setting inferred volatile on symbol affected by address-of: cbm_k_chrin::ch in asm { jsrCBM_CHRIN stach } +Setting inferred volatile on symbol affected by address-of: cbm_k_getin::ch in asm { jsrCBM_GETIN stach } +Setting inferred volatile on symbol affected by address-of: cbm_k_readst::status in asm { jsrCBM_READST stastatus } +Setting inferred volatile on symbol affected by address-of: cbm_k_load::address in asm { .byte$db ldxaddress ldyaddress+1 ldaverify jsr$ffd5 bcs!error+ lda#$ff !error: stastatus } +Setting inferred volatile on symbol affected by address-of: cbm_k_load::verify in asm { .byte$db ldxaddress ldyaddress+1 ldaverify jsr$ffd5 bcs!error+ lda#$ff !error: stastatus } +Setting inferred volatile on symbol affected by address-of: cbm_k_load::status in asm { .byte$db ldxaddress ldyaddress+1 ldaverify jsr$ffd5 bcs!error+ lda#$ff !error: stastatus } +Setting inferred volatile on symbol affected by address-of: cbm_k_plot_get::x in kickasm( uses cbm_k_plot_get::x uses cbm_k_plot_get::y uses CBM_PLOT) {{ sec + jsr CBM_PLOT + stx y + sty x + }} +Setting inferred volatile on symbol affected by address-of: cbm_k_plot_get::y in kickasm( uses cbm_k_plot_get::x uses cbm_k_plot_get::y uses CBM_PLOT) {{ sec + jsr CBM_PLOT + stx y + sty x + }} +Setting inferred volatile on symbol affected by address-of: cbm_k_plot_set::x in kickasm( uses cbm_k_plot_set::x uses cbm_k_plot_set::y uses CBM_PLOT) {{ ldx y + ldy x + clc + jsr CBM_PLOT + }} +Setting inferred volatile on symbol affected by address-of: cbm_k_plot_set::y in kickasm( uses cbm_k_plot_set::x uses cbm_k_plot_set::y uses CBM_PLOT) {{ ldx y + ldy x + clc + jsr CBM_PLOT + }} +Setting inferred volatile on symbol affected by address-of: cbm_k_chrout::ch in asm { ldach jsrCBM_CHROUT } +Setting inferred volatile on symbol affected by address-of: cx16_k_macptr::bytes in asm { ldabytes ldxbuffer ldybuffer+1 clc jsrCX16_MACPTR stxbytes_read stybytes_read+1 bcc!+ lda#$FF stabytes_read stabytes_read+1 !: } +Setting inferred volatile on symbol affected by address-of: cx16_k_macptr::buffer in asm { ldabytes ldxbuffer ldybuffer+1 clc jsrCX16_MACPTR stxbytes_read stybytes_read+1 bcc!+ lda#$FF stabytes_read stabytes_read+1 !: } +Setting inferred volatile on symbol affected by address-of: cx16_k_macptr::bytes_read in asm { ldabytes ldxbuffer ldybuffer+1 clc jsrCX16_MACPTR stxbytes_read stybytes_read+1 bcc!+ lda#$FF stabytes_read stabytes_read+1 !: } +Setting inferred volatile on symbol affected by address-of: cx16_k_screen_set_charset::charset in asm { ldacharset ldxoffset jsrCX16_SCREEN_SET_CHARSET } +Setting inferred volatile on symbol affected by address-of: cx16_k_screen_set_charset::offset in asm { ldacharset ldxoffset jsrCX16_SCREEN_SET_CHARSET } +Inlined call call bank_set_bram(bank_bram_ptr_inc::bank) +Inlined call memcpy_vram_bram::bank = call bank_get_bram +Inlined call call bank_set_bram(memcpy_vram_bram::sbank_bram) +Inlined call call bank_set_bram(memcpy_vram_bram::sbank_bram) +Inlined call call bank_set_bram(memcpy_vram_bram::sbank_bram) +Inlined call call bank_set_bram(memcpy_vram_bram::bank) Inlined call call SEI Inlined call call CLI Inlined call call __init @@ -57,6 +100,16 @@ memset::@return: scope:[memset] from memset::@1 return to:@return +void cx16_init() +cx16_init: scope:[cx16_init] from __start::__init1 + isr_vsync#0 = *((unsigned int *)$314) + to:cx16_init::@return +cx16_init::@return: scope:[cx16_init] from cx16_init + isr_vsync#5 = phi( cx16_init/isr_vsync#0 ) + isr_vsync#1 = isr_vsync#5 + return + to:@return + void main() main: scope:[main] from __start::@1 to:main::SEI1 @@ -206,26 +259,44 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start + BRAM = 0 + BROM = 4 + isr_vsync#2 = $314 hstart = (char)0/4 hstop = (char)$280/4 vstart = (char)0/2 vstop = (char)$1e0/2 cnt = 2 sin_idx = $64 - to:__start::@1 -__start::@1: scope:[__start] from __start::__init1 - call main + call cx16_init to:__start::@2 -__start::@2: scope:[__start] from __start::@1 +__start::@2: scope:[__start] from __start::__init1 + isr_vsync#6 = phi( __start::__init1/isr_vsync#1 ) + isr_vsync#3 = isr_vsync#6 + to:__start::@1 +__start::@1: scope:[__start] from __start::@2 + isr_vsync#9 = phi( __start::@2/isr_vsync#3 ) + call main + to:__start::@3 +__start::@3: scope:[__start] from __start::@1 + isr_vsync#8 = phi( __start::@1/isr_vsync#9 ) to:__start::@return -__start::@return: scope:[__start] from __start::@2 +__start::@return: scope:[__start] from __start::@3 + isr_vsync#7 = phi( __start::@3/isr_vsync#8 ) + isr_vsync#4 = isr_vsync#7 return to:@return SYMBOL TABLE SSA __constant char BAR[$20] = { $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $1a, $1b, $1c, $1d, $1e, $1f, $1f, $1e, $1d, $1c, $1b, $1a, $19, $18, $17, $16, $15, $14, $13, $12, $11, $10 } __constant char BARS[$e6] = { fill( $e6, 0) } +__loadstore volatile char BRAM // !zp[-1]:0 +__loadstore volatile char BROM // !zp[-1]:1 __constant void (** const KERNEL_IRQ)() = (void (**)())$314 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 __constant char SIN[$100] = kickasm {{ .fill 256, 99+99*sin(i*2*PI/256) }} __constant char * const VERA_CTRL = (char *)$9f25 @@ -241,6 +312,7 @@ __constant char * const VERA_ISR = (char *)$9f27 __constant const char VERA_LINE = 2 void __start() __loadstore volatile char cnt +void cx16_init() __loadstore volatile char hstart __loadstore volatile char hstop __interrupt(rom_min_cx16) void irq_line() @@ -301,6 +373,17 @@ char irq_line::l#6 char irq_line::l#7 char irq_line::l#8 char irq_line::l#9 +unsigned int isr_vsync +unsigned int isr_vsync#0 +unsigned int isr_vsync#1 +unsigned int isr_vsync#2 +unsigned int isr_vsync#3 +unsigned int isr_vsync#4 +unsigned int isr_vsync#5 +unsigned int isr_vsync#6 +unsigned int isr_vsync#7 +unsigned int isr_vsync#8 +unsigned int isr_vsync#9 void main() void * memset(void *str , char c , unsigned int num) bool memset::$0 @@ -361,6 +444,7 @@ Inlining cast *VERA_DC_BORDER = (unumber)0 Inlining cast memset::c#0 = (unumber)0 Inlining cast cnt = (unumber)2 Successful SSA optimization Pass2InlineCast +Simplifying constant pointer cast (void (**)()) 788 Simplifying constant pointer cast (char *) 40741 Simplifying constant pointer cast (char *) 40742 Simplifying constant pointer cast (char *) 40743 @@ -370,8 +454,8 @@ Simplifying constant pointer cast (char *) 40745 Simplifying constant pointer cast (char *) 40746 Simplifying constant pointer cast (char *) 40747 Simplifying constant pointer cast (char *) 40748 -Simplifying constant pointer cast (void (**)()) 788 Simplifying constant integer cast 0 +Simplifying constant pointer cast (unsigned int *) 788 Simplifying constant integer cast 5 Simplifying constant integer cast $e6 Simplifying constant integer cast 0 @@ -396,8 +480,8 @@ Finalized unsigned number type (char) 8 Finalized unsigned number type (char) $d Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [2] memset::$1 = memset::num#1 <= 0 from [1] memset::$0 = memset::num#1 > 0 -Inversing boolean not [40] irq_line::$1 = cnt != 0 from [39] irq_line::$0 = cnt == 0 -Inversing boolean not [69] irq_line::$8 = hstart > (char)$140/4 from [68] irq_line::$7 = hstart <= (char)$140/4 +Inversing boolean not [44] irq_line::$1 = cnt != 0 from [43] irq_line::$0 = cnt == 0 +Inversing boolean not [73] irq_line::$8 = hstart > (char)$140/4 from [72] irq_line::$7 = hstart <= (char)$140/4 Successful SSA optimization Pass2UnaryNotSimplification Alias memset::return#0 = memset::str#1 memset::return#3 memset::return#1 Alias memset::str#2 = memset::str#3 @@ -407,6 +491,7 @@ Alias memset::c#1 = memset::c#2 Alias memset::dst#2 = memset::dst#3 Alias memset::end#1 = memset::end#2 Alias memset::str#4 = memset::str#5 +Alias isr_vsync#0 = isr_vsync#5 isr_vsync#1 Alias irq_line::l#2 = irq_line::l#3 Alias irq_line::i#2 = irq_line::i#3 Alias irq_line::l#6 = irq_line::l#9 irq_line::l#8 @@ -419,6 +504,7 @@ Alias irq_line::i2#2 = irq_line::i2#3 Alias irq_line::bar#1 = irq_line::bar#2 Alias irq_line::idx#3 = irq_line::idx#6 irq_line::idx#5 Alias irq_line::b#3 = irq_line::b#6 irq_line::b#4 +Alias isr_vsync#3 = isr_vsync#6 isr_vsync#9 isr_vsync#8 isr_vsync#7 isr_vsync#4 Successful SSA optimization Pass2AliasElimination Identical Phi Values memset::num#1 memset::num#0 Identical Phi Values memset::str#2 memset::str#0 @@ -431,21 +517,22 @@ Identical Phi Values irq_line::l#4 irq_line::l#6 Identical Phi Values irq_line::bar#1 irq_line::bar#0 Identical Phi Values irq_line::idx#3 irq_line::idx#2 Identical Phi Values irq_line::b#3 irq_line::b#2 +Identical Phi Values isr_vsync#3 isr_vsync#0 Successful SSA optimization Pass2IdenticalPhiElimination Identical Phi Values memset::return#0 memset::str#0 Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition memset::$1 [2] if(memset::num#0<=0) goto memset::@1 Simple Condition memset::$3 [9] if(memset::dst#2!=memset::end#0) goto memset::@4 -Simple Condition irq_line::$4 [28] if(irq_line::l#2!=$e6) goto irq_line::@3 -Simple Condition irq_line::$1 [33] if(cnt!=0) goto irq_line::@1 -Simple Condition irq_line::$5 [36] if(irq_line::i#2<$18) goto irq_line::@6 -Simple Condition irq_line::$6 [42] if(irq_line::i1#2<$17) goto irq_line::@9 -Simple Condition irq_line::$8 [56] if(hstart>(char)$140/4) goto irq_line::@1 -Simple Condition irq_line::$9 [63] if(irq_line::b#2<8) goto irq_line::@14 -Simple Condition irq_line::$12 [70] if(irq_line::i2#2(char)$140/4) goto irq_line::@1 +Simple Condition irq_line::$9 [65] if(irq_line::b#2<8) goto irq_line::@14 +Simple Condition irq_line::$12 [72] if(irq_line::i2#2(char)$140/4) goto irq_line::@1 -Simplifying constant evaluating to zero (char)0/4 in [76] hstart = (char)0/4 -Simplifying constant evaluating to zero (char)0/2 in [78] vstart = (char)0/2 +Rewriting conditional comparison [58] if(hstart>(char)$140/4) goto irq_line::@1 +Simplifying constant evaluating to zero (char)0/4 in [81] hstart = (char)0/4 +Simplifying constant evaluating to zero (char)0/2 in [83] vstart = (char)0/2 Successful SSA optimization PassNSimplifyConstantZero +Removing call to empty/unused procedure [87] call cx16_init +Successful SSA optimization PassNEliminateUnusedConstructors +Eliminating variable isr_vsync#0 from unused block cx16_init +Removing unused procedure cx16_init +Removing unused procedure block cx16_init +Removing unused procedure block cx16_init::@return Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Eliminating unused constant memset::return#2 @@ -510,6 +604,10 @@ Constant inlined irq_line::i1#0 = 0 Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined irq_line::b#0 = 0 Successful SSA optimization Pass2ConstantInlining +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Finalized unsigned number type (unsigned int) $100 Finalized unsigned number type (char) $e6 Finalized unsigned number type (char) $e6 @@ -522,8 +620,9 @@ Finalized unsigned number type (unsigned int) $1e0 Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of __start -Adding NOP phi() at start of __start::@1 Adding NOP phi() at start of __start::@2 +Adding NOP phi() at start of __start::@1 +Adding NOP phi() at start of __start::@3 Adding NOP phi() at start of irq_line::@1 Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -531,20 +630,21 @@ Adding NOP phi() at start of memset Adding NOP phi() at start of memset::@2 Adding NOP phi() at start of memset::@1 CALL GRAPH -Calls in [__start] to main:8 -Calls in [irq_line] to memset:28 +Calls in [__start] to main:11 +Calls in [irq_line] to memset:31 Created 7 initial phi equivalence classes -Coalesced [31] irq_line::idx#8 = irq_line::idx#0 -Coalesced [41] irq_line::b#7 = irq_line::b#1 -Coalesced [42] irq_line::idx#7 = irq_line::idx#1 -Coalesced [45] irq_line::i2#4 = irq_line::i2#1 -Coalesced [54] irq_line::l#10 = irq_line::l#1 -Coalesced [56] irq_line::i1#4 = irq_line::i1#1 -Coalesced [58] irq_line::i#4 = irq_line::i#1 -Coalesced [74] memset::dst#4 = memset::dst#1 +Coalesced [34] irq_line::idx#8 = irq_line::idx#0 +Coalesced [44] irq_line::b#7 = irq_line::b#1 +Coalesced [45] irq_line::idx#7 = irq_line::idx#1 +Coalesced [48] irq_line::i2#4 = irq_line::i2#1 +Coalesced [57] irq_line::l#10 = irq_line::l#1 +Coalesced [59] irq_line::i1#4 = irq_line::i1#1 +Coalesced [61] irq_line::i#4 = irq_line::i#1 +Coalesced [77] memset::dst#4 = memset::dst#1 Coalesced down to 7 phi equivalence classes Culled Empty Block label __start::@2 +Culled Empty Block label __start::@3 Culled Empty Block label memset::@2 Culled Empty Block label memset::@1 Renumbering block memset::@3 to memset::@1 @@ -563,144 +663,148 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] hstart = 0 - [2] hstop = (char)$280/4 - [3] vstart = 0 - [4] vstop = (char)$1e0/2 - [5] cnt = 2 - [6] sin_idx = $64 + [1] BRAM = 0 + [2] BROM = 4 + [3] hstart = 0 + [4] hstop = (char)$280/4 + [5] vstart = 0 + [6] vstop = (char)$1e0/2 + [7] cnt = 2 + [8] sin_idx = $64 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - [7] phi() - [8] call main + [9] phi() + [10] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 - [9] return + [11] return to:@return __interrupt(rom_min_cx16) void irq_line() irq_line: scope:[irq_line] from - [10] *VERA_CTRL = *VERA_CTRL | VERA_DCSEL - [11] *VERA_DC_HSTART = hstart - [12] *VERA_DC_HSTOP = hstop - [13] *VERA_DC_VSTART = vstart - [14] *VERA_DC_VSTOP = vstop - [15] *VERA_CTRL = *VERA_CTRL & ~VERA_DCSEL + [12] *VERA_CTRL = *VERA_CTRL | VERA_DCSEL + [13] *VERA_DC_HSTART = hstart + [14] *VERA_DC_HSTOP = hstop + [15] *VERA_DC_VSTART = vstart + [16] *VERA_DC_VSTOP = vstop + [17] *VERA_CTRL = *VERA_CTRL & ~VERA_DCSEL to:irq_line::@2 irq_line::@2: scope:[irq_line] from irq_line irq_line::@10 - [16] irq_line::l#2 = phi( irq_line/0, irq_line::@10/irq_line::l#1 ) - [17] if(irq_line::l#2!=$e6) goto irq_line::@3 + [18] irq_line::l#2 = phi( irq_line/0, irq_line::@10/irq_line::l#1 ) + [19] if(irq_line::l#2!=$e6) goto irq_line::@3 to:irq_line::@4 irq_line::@4: scope:[irq_line] from irq_line::@2 - [18] cnt = -- cnt - [19] if(cnt!=0) goto irq_line::@1 + [20] cnt = -- cnt + [21] if(cnt!=0) goto irq_line::@1 to:irq_line::@11 irq_line::@11: scope:[irq_line] from irq_line::@4 - [20] cnt = 2 - [21] if(hstart>=(char)$140/4+1) goto irq_line::@1 + [22] cnt = 2 + [23] if(hstart>=(char)$140/4+1) goto irq_line::@1 to:irq_line::@12 irq_line::@12: scope:[irq_line] from irq_line::@11 - [22] hstart = ++ hstart - [23] hstop = -- hstop - [24] vstart = ++ vstart - [25] vstop = -- vstop + [24] hstart = ++ hstart + [25] hstop = -- hstop + [26] vstart = ++ vstart + [27] vstop = -- vstop to:irq_line::@1 irq_line::@1: scope:[irq_line] from irq_line::@11 irq_line::@12 irq_line::@4 - [26] phi() - [27] call memset + [28] phi() + [29] call memset to:irq_line::@19 irq_line::@19: scope:[irq_line] from irq_line::@1 - [28] irq_line::idx#0 = sin_idx - [29] sin_idx = -- sin_idx + [30] irq_line::idx#0 = sin_idx + [31] sin_idx = -- sin_idx to:irq_line::@13 irq_line::@13: scope:[irq_line] from irq_line::@18 irq_line::@19 - [30] irq_line::idx#2 = phi( irq_line::@18/irq_line::idx#1, irq_line::@19/irq_line::idx#0 ) - [30] irq_line::b#2 = phi( irq_line::@18/irq_line::b#1, irq_line::@19/0 ) - [31] if(irq_line::b#2<8) goto irq_line::@14 + [32] irq_line::idx#2 = phi( irq_line::@18/irq_line::idx#1, irq_line::@19/irq_line::idx#0 ) + [32] irq_line::b#2 = phi( irq_line::@18/irq_line::b#1, irq_line::@19/0 ) + [33] if(irq_line::b#2<8) goto irq_line::@14 to:irq_line::@15 irq_line::@15: scope:[irq_line] from irq_line::@13 - [32] *VERA_ISR = VERA_LINE + [34] *VERA_ISR = VERA_LINE to:irq_line::@return irq_line::@return: scope:[irq_line] from irq_line::@15 - [33] return + [35] return to:@return irq_line::@14: scope:[irq_line] from irq_line::@13 - [34] irq_line::bar#0 = BARS + SIN[irq_line::idx#2] + [36] irq_line::bar#0 = BARS + SIN[irq_line::idx#2] to:irq_line::@16 irq_line::@16: scope:[irq_line] from irq_line::@14 irq_line::@17 - [35] irq_line::i2#2 = phi( irq_line::@14/0, irq_line::@17/irq_line::i2#1 ) - [36] if(irq_line::i2#2<$20*SIZEOF_CHAR) goto irq_line::@17 + [37] irq_line::i2#2 = phi( irq_line::@14/0, irq_line::@17/irq_line::i2#1 ) + [38] if(irq_line::i2#2<$20*SIZEOF_CHAR) goto irq_line::@17 to:irq_line::@18 irq_line::@18: scope:[irq_line] from irq_line::@16 - [37] irq_line::idx#1 = irq_line::idx#2 + $d - [38] irq_line::b#1 = ++ irq_line::b#2 + [39] irq_line::idx#1 = irq_line::idx#2 + $d + [40] irq_line::b#1 = ++ irq_line::b#2 to:irq_line::@13 irq_line::@17: scope:[irq_line] from irq_line::@16 - [39] irq_line::bar#0[irq_line::i2#2] = BAR[irq_line::i2#2] - [40] irq_line::i2#1 = ++ irq_line::i2#2 + [41] irq_line::bar#0[irq_line::i2#2] = BAR[irq_line::i2#2] + [42] irq_line::i2#1 = ++ irq_line::i2#2 to:irq_line::@16 irq_line::@3: scope:[irq_line] from irq_line::@2 - [41] *VERA_DC_BORDER = BARS[irq_line::l#2] + [43] *VERA_DC_BORDER = BARS[irq_line::l#2] to:irq_line::@5 irq_line::@5: scope:[irq_line] from irq_line::@3 irq_line::@6 - [42] irq_line::i#2 = phi( irq_line::@3/0, irq_line::@6/irq_line::i#1 ) - [43] if(irq_line::i#2<$18) goto irq_line::@6 + [44] irq_line::i#2 = phi( irq_line::@3/0, irq_line::@6/irq_line::i#1 ) + [45] if(irq_line::i#2<$18) goto irq_line::@6 to:irq_line::@7 irq_line::@7: scope:[irq_line] from irq_line::@5 - [44] *VERA_DC_BORDER = 0 + [46] *VERA_DC_BORDER = 0 to:irq_line::@8 irq_line::@8: scope:[irq_line] from irq_line::@7 irq_line::@9 - [45] irq_line::i1#2 = phi( irq_line::@7/0, irq_line::@9/irq_line::i1#1 ) - [46] if(irq_line::i1#2<$17) goto irq_line::@9 + [47] irq_line::i1#2 = phi( irq_line::@7/0, irq_line::@9/irq_line::i1#1 ) + [48] if(irq_line::i1#2<$17) goto irq_line::@9 to:irq_line::@10 irq_line::@10: scope:[irq_line] from irq_line::@8 asm { nop nop } - [48] irq_line::l#1 = ++ irq_line::l#2 + [50] irq_line::l#1 = ++ irq_line::l#2 to:irq_line::@2 irq_line::@9: scope:[irq_line] from irq_line::@8 - [49] irq_line::i1#1 = ++ irq_line::i1#2 + [51] irq_line::i1#1 = ++ irq_line::i1#2 to:irq_line::@8 irq_line::@6: scope:[irq_line] from irq_line::@5 - [50] irq_line::i#1 = ++ irq_line::i#2 + [52] irq_line::i#1 = ++ irq_line::i#2 to:irq_line::@5 void main() main: scope:[main] from __start::@1 - [51] phi() + [53] phi() to:main::SEI1 main::SEI1: scope:[main] from main asm { sei } to:main::@2 main::@2: scope:[main] from main::SEI1 - [53] *KERNEL_IRQ = &irq_line - [54] *VERA_IEN = VERA_LINE - [55] *VERA_IRQLINE_L = 5 + [55] *KERNEL_IRQ = &irq_line + [56] *VERA_IEN = VERA_LINE + [57] *VERA_IRQLINE_L = 5 to:main::CLI1 main::CLI1: scope:[main] from main::@2 asm { cli } to:main::@1 main::@1: scope:[main] from main::@1 main::CLI1 - [57] phi() + [59] phi() to:main::@1 void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from irq_line::@1 - [58] phi() + [60] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [59] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) - [60] if(memset::dst#2!=memset::end#0) goto memset::@2 + [61] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) + [62] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 - [61] return + [63] return to:@return memset::@2: scope:[memset] from memset::@1 - [62] *memset::dst#2 = memset::c#0 - [63] memset::dst#1 = ++ memset::dst#2 + [64] *memset::dst#2 = memset::c#0 + [65] memset::dst#1 = ++ memset::dst#2 to:memset::@1 VARIABLE REGISTER WEIGHTS +__loadstore volatile char BRAM // !zp[-1]:0 20.0 +__loadstore volatile char BROM // !zp[-1]:1 20.0 void __start() __loadstore volatile char cnt // 0.5263157894736842 __loadstore volatile char hstart // 0.4545454545454546 @@ -727,6 +831,7 @@ char irq_line::idx#2 // 5.0 char irq_line::l char irq_line::l#1 // 22.0 char irq_line::l#2 // 4.0 +unsigned int isr_vsync void main() void * memset(void *str , char c , unsigned int num) char memset::c @@ -749,6 +854,8 @@ Initial phi equivalence classes [ irq_line::i#2 irq_line::i#1 ] [ irq_line::i1#2 irq_line::i1#1 ] [ memset::dst#2 memset::dst#1 ] +Added variable BRAM to live range equivalence class [ BRAM ] +Added variable BROM to live range equivalence class [ BROM ] Added variable hstart to live range equivalence class [ hstart ] Added variable hstop to live range equivalence class [ hstop ] Added variable vstart to live range equivalence class [ vstart ] @@ -764,6 +871,8 @@ Complete equivalence classes [ irq_line::i#2 irq_line::i#1 ] [ irq_line::i1#2 irq_line::i1#1 ] [ memset::dst#2 memset::dst#1 ] +[ BRAM ] +[ BROM ] [ hstart ] [ hstop ] [ vstart ] @@ -771,134 +880,146 @@ Complete equivalence classes [ cnt ] [ sin_idx ] [ irq_line::bar#0 ] -Allocated zp[1]:2 [ irq_line::i2#2 irq_line::i2#1 ] -Allocated zp[1]:3 [ irq_line::i#2 irq_line::i#1 ] -Allocated zp[1]:4 [ irq_line::i1#2 irq_line::i1#1 ] -Allocated zp[2]:5 [ memset::dst#2 memset::dst#1 ] -Allocated zp[1]:7 [ irq_line::b#2 irq_line::b#1 ] -Allocated zp[1]:8 [ irq_line::l#2 irq_line::l#1 ] -Allocated zp[2]:9 [ irq_line::bar#0 ] -Allocated zp[1]:11 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] -Allocated zp[1]:12 [ cnt ] -Allocated zp[1]:13 [ hstart ] -Allocated zp[1]:14 [ hstop ] -Allocated zp[1]:15 [ vstart ] -Allocated zp[1]:16 [ vstop ] -Allocated zp[1]:17 [ sin_idx ] +Allocated zp[1]:34 [ irq_line::i2#2 irq_line::i2#1 ] +Allocated zp[1]:35 [ irq_line::i#2 irq_line::i#1 ] +Allocated zp[1]:36 [ irq_line::i1#2 irq_line::i1#1 ] +Allocated zp[2]:37 [ memset::dst#2 memset::dst#1 ] +Allocated zp[1]:39 [ irq_line::b#2 irq_line::b#1 ] +Allocated zp[1]:40 [ irq_line::l#2 irq_line::l#1 ] +Allocated zp[2]:41 [ irq_line::bar#0 ] +Allocated zp[1]:43 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] +Allocated zp[1]:44 [ cnt ] +Allocated zp[1]:45 [ hstart ] +Allocated zp[1]:46 [ hstop ] +Allocated zp[1]:47 [ vstart ] +Allocated zp[1]:48 [ vstop ] +Allocated zp[1]:49 [ sin_idx ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] hstart = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] hstop = (char)$280/4 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] vstart = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] vstop = (char)$1e0/2 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] cnt = 2 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] sin_idx = $64 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [10] *VERA_CTRL = *VERA_CTRL | VERA_DCSEL [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a -Statement [11] *VERA_DC_HSTART = hstart [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a -Statement [12] *VERA_DC_HSTOP = hstop [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a -Statement [13] *VERA_DC_VSTART = vstart [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a -Statement [14] *VERA_DC_VSTOP = vstop [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a -Statement [15] *VERA_CTRL = *VERA_CTRL & ~VERA_DCSEL [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a -Statement [19] if(cnt!=0) goto irq_line::@1 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a -Statement [20] cnt = 2 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a -Statement [21] if(hstart>=(char)$140/4+1) goto irq_line::@1 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a -Statement [32] *VERA_ISR = VERA_LINE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [34] irq_line::bar#0 = BARS + SIN[irq_line::idx#2] [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 ] ( [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:7 [ irq_line::b#2 irq_line::b#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:11 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] -Statement [37] irq_line::idx#1 = irq_line::idx#2 + $d [ irq_line::b#2 irq_line::idx#1 ] ( [ irq_line::b#2 irq_line::idx#1 ] { } ) always clobbers reg byte a -Statement [39] irq_line::bar#0[irq_line::i2#2] = BAR[irq_line::i2#2] [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 irq_line::i2#2 ] ( [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 irq_line::i2#2 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:2 [ irq_line::i2#2 irq_line::i2#1 ] -Statement [41] *VERA_DC_BORDER = BARS[irq_line::l#2] [ hstart hstop vstart vstop cnt sin_idx irq_line::l#2 ] ( [ hstart hstop vstart vstop cnt sin_idx irq_line::l#2 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:8 [ irq_line::l#2 irq_line::l#1 ] -Statement [44] *VERA_DC_BORDER = 0 [ hstart hstop vstart vstop cnt sin_idx irq_line::l#2 ] ( [ hstart hstop vstart vstop cnt sin_idx irq_line::l#2 ] { } ) always clobbers reg byte a -Statement [53] *KERNEL_IRQ = &irq_line [ ] ( main:8 [ ] { } ) always clobbers reg byte a -Statement [54] *VERA_IEN = VERA_LINE [ ] ( main:8 [ ] { } ) always clobbers reg byte a -Statement [55] *VERA_IRQLINE_L = 5 [ ] ( main:8 [ ] { } ) always clobbers reg byte a -Statement [60] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( memset:27 [ sin_idx memset::dst#2 ] { } ) always clobbers reg byte a -Statement [62] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( memset:27 [ sin_idx memset::dst#2 ] { } ) always clobbers reg byte a reg byte y -Statement [1] hstart = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] hstop = (char)$280/4 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] vstart = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] vstop = (char)$1e0/2 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] cnt = 2 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] sin_idx = $64 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [10] *VERA_CTRL = *VERA_CTRL | VERA_DCSEL [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a -Statement [11] *VERA_DC_HSTART = hstart [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a -Statement [12] *VERA_DC_HSTOP = hstop [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a -Statement [13] *VERA_DC_VSTART = vstart [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a -Statement [14] *VERA_DC_VSTOP = vstop [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a -Statement [15] *VERA_CTRL = *VERA_CTRL & ~VERA_DCSEL [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a -Statement [19] if(cnt!=0) goto irq_line::@1 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a -Statement [20] cnt = 2 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a -Statement [21] if(hstart>=(char)$140/4+1) goto irq_line::@1 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a -Statement [32] *VERA_ISR = VERA_LINE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [34] irq_line::bar#0 = BARS + SIN[irq_line::idx#2] [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 ] ( [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 ] { } ) always clobbers reg byte a -Statement [37] irq_line::idx#1 = irq_line::idx#2 + $d [ irq_line::b#2 irq_line::idx#1 ] ( [ irq_line::b#2 irq_line::idx#1 ] { } ) always clobbers reg byte a -Statement [39] irq_line::bar#0[irq_line::i2#2] = BAR[irq_line::i2#2] [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 irq_line::i2#2 ] ( [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 irq_line::i2#2 ] { } ) always clobbers reg byte a -Statement [41] *VERA_DC_BORDER = BARS[irq_line::l#2] [ hstart hstop vstart vstop cnt sin_idx irq_line::l#2 ] ( [ hstart hstop vstart vstop cnt sin_idx irq_line::l#2 ] { } ) always clobbers reg byte a -Statement [44] *VERA_DC_BORDER = 0 [ hstart hstop vstart vstop cnt sin_idx irq_line::l#2 ] ( [ hstart hstop vstart vstop cnt sin_idx irq_line::l#2 ] { } ) always clobbers reg byte a -Statement [53] *KERNEL_IRQ = &irq_line [ ] ( main:8 [ ] { } ) always clobbers reg byte a -Statement [54] *VERA_IEN = VERA_LINE [ ] ( main:8 [ ] { } ) always clobbers reg byte a -Statement [55] *VERA_IRQLINE_L = 5 [ ] ( main:8 [ ] { } ) always clobbers reg byte a -Statement [60] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( memset:27 [ sin_idx memset::dst#2 ] { } ) always clobbers reg byte a -Statement [62] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( memset:27 [ sin_idx memset::dst#2 ] { } ) always clobbers reg byte a reg byte y -Potential registers zp[1]:8 [ irq_line::l#2 irq_line::l#1 ] : zp[1]:8 , reg byte x , reg byte y , -Potential registers zp[1]:7 [ irq_line::b#2 irq_line::b#1 ] : zp[1]:7 , reg byte x , reg byte y , -Potential registers zp[1]:11 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] : zp[1]:11 , reg byte x , reg byte y , -Potential registers zp[1]:2 [ irq_line::i2#2 irq_line::i2#1 ] : zp[1]:2 , reg byte x , reg byte y , -Potential registers zp[1]:3 [ irq_line::i#2 irq_line::i#1 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:4 [ irq_line::i1#2 irq_line::i1#1 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:5 [ memset::dst#2 memset::dst#1 ] : zp[2]:5 , -Potential registers zp[1]:13 [ hstart ] : zp[1]:13 , -Potential registers zp[1]:14 [ hstop ] : zp[1]:14 , -Potential registers zp[1]:15 [ vstart ] : zp[1]:15 , -Potential registers zp[1]:16 [ vstop ] : zp[1]:16 , -Potential registers zp[1]:12 [ cnt ] : zp[1]:12 , -Potential registers zp[1]:17 [ sin_idx ] : zp[1]:17 , -Potential registers zp[2]:9 [ irq_line::bar#0 ] : zp[2]:9 , +Statement [1] BRAM = 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] BROM = 4 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] hstart = 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] hstop = (char)$280/4 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] vstart = 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] vstop = (char)$1e0/2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] cnt = 2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [8] sin_idx = $64 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [12] *VERA_CTRL = *VERA_CTRL | VERA_DCSEL [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a +Statement [13] *VERA_DC_HSTART = hstart [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a +Statement [14] *VERA_DC_HSTOP = hstop [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a +Statement [15] *VERA_DC_VSTART = vstart [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a +Statement [16] *VERA_DC_VSTOP = vstop [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a +Statement [17] *VERA_CTRL = *VERA_CTRL & ~VERA_DCSEL [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a +Statement [21] if(cnt!=0) goto irq_line::@1 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a +Statement [22] cnt = 2 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a +Statement [23] if(hstart>=(char)$140/4+1) goto irq_line::@1 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a +Statement [34] *VERA_ISR = VERA_LINE [ ] ( [ ] { } ) always clobbers reg byte a +Statement [36] irq_line::bar#0 = BARS + SIN[irq_line::idx#2] [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 ] ( [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:39 [ irq_line::b#2 irq_line::b#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:43 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] +Statement [39] irq_line::idx#1 = irq_line::idx#2 + $d [ irq_line::b#2 irq_line::idx#1 ] ( [ irq_line::b#2 irq_line::idx#1 ] { } ) always clobbers reg byte a +Statement [41] irq_line::bar#0[irq_line::i2#2] = BAR[irq_line::i2#2] [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 irq_line::i2#2 ] ( [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 irq_line::i2#2 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:34 [ irq_line::i2#2 irq_line::i2#1 ] +Statement [43] *VERA_DC_BORDER = BARS[irq_line::l#2] [ hstart hstop vstart vstop cnt sin_idx irq_line::l#2 ] ( [ hstart hstop vstart vstop cnt sin_idx irq_line::l#2 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:40 [ irq_line::l#2 irq_line::l#1 ] +Statement [46] *VERA_DC_BORDER = 0 [ hstart hstop vstart vstop cnt sin_idx irq_line::l#2 ] ( [ hstart hstop vstart vstop cnt sin_idx irq_line::l#2 ] { } ) always clobbers reg byte a +Statement [55] *KERNEL_IRQ = &irq_line [ ] ( main:10 [ ] { } ) always clobbers reg byte a +Statement [56] *VERA_IEN = VERA_LINE [ ] ( main:10 [ ] { } ) always clobbers reg byte a +Statement [57] *VERA_IRQLINE_L = 5 [ ] ( main:10 [ ] { } ) always clobbers reg byte a +Statement [62] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( memset:29 [ sin_idx memset::dst#2 ] { } ) always clobbers reg byte a +Statement [64] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( memset:29 [ sin_idx memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Statement [1] BRAM = 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] BROM = 4 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] hstart = 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] hstop = (char)$280/4 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] vstart = 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] vstop = (char)$1e0/2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] cnt = 2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [8] sin_idx = $64 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [12] *VERA_CTRL = *VERA_CTRL | VERA_DCSEL [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a +Statement [13] *VERA_DC_HSTART = hstart [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a +Statement [14] *VERA_DC_HSTOP = hstop [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a +Statement [15] *VERA_DC_VSTART = vstart [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a +Statement [16] *VERA_DC_VSTOP = vstop [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a +Statement [17] *VERA_CTRL = *VERA_CTRL & ~VERA_DCSEL [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a +Statement [21] if(cnt!=0) goto irq_line::@1 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a +Statement [22] cnt = 2 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a +Statement [23] if(hstart>=(char)$140/4+1) goto irq_line::@1 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a +Statement [34] *VERA_ISR = VERA_LINE [ ] ( [ ] { } ) always clobbers reg byte a +Statement [36] irq_line::bar#0 = BARS + SIN[irq_line::idx#2] [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 ] ( [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 ] { } ) always clobbers reg byte a +Statement [39] irq_line::idx#1 = irq_line::idx#2 + $d [ irq_line::b#2 irq_line::idx#1 ] ( [ irq_line::b#2 irq_line::idx#1 ] { } ) always clobbers reg byte a +Statement [41] irq_line::bar#0[irq_line::i2#2] = BAR[irq_line::i2#2] [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 irq_line::i2#2 ] ( [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 irq_line::i2#2 ] { } ) always clobbers reg byte a +Statement [43] *VERA_DC_BORDER = BARS[irq_line::l#2] [ hstart hstop vstart vstop cnt sin_idx irq_line::l#2 ] ( [ hstart hstop vstart vstop cnt sin_idx irq_line::l#2 ] { } ) always clobbers reg byte a +Statement [46] *VERA_DC_BORDER = 0 [ hstart hstop vstart vstop cnt sin_idx irq_line::l#2 ] ( [ hstart hstop vstart vstop cnt sin_idx irq_line::l#2 ] { } ) always clobbers reg byte a +Statement [55] *KERNEL_IRQ = &irq_line [ ] ( main:10 [ ] { } ) always clobbers reg byte a +Statement [56] *VERA_IEN = VERA_LINE [ ] ( main:10 [ ] { } ) always clobbers reg byte a +Statement [57] *VERA_IRQLINE_L = 5 [ ] ( main:10 [ ] { } ) always clobbers reg byte a +Statement [62] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( memset:29 [ sin_idx memset::dst#2 ] { } ) always clobbers reg byte a +Statement [64] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( memset:29 [ sin_idx memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Potential registers zp[1]:40 [ irq_line::l#2 irq_line::l#1 ] : zp[1]:40 , reg byte x , reg byte y , +Potential registers zp[1]:39 [ irq_line::b#2 irq_line::b#1 ] : zp[1]:39 , reg byte x , reg byte y , +Potential registers zp[1]:43 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] : zp[1]:43 , reg byte x , reg byte y , +Potential registers zp[1]:34 [ irq_line::i2#2 irq_line::i2#1 ] : zp[1]:34 , reg byte x , reg byte y , +Potential registers zp[1]:35 [ irq_line::i#2 irq_line::i#1 ] : zp[1]:35 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:36 [ irq_line::i1#2 irq_line::i1#1 ] : zp[1]:36 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:37 [ memset::dst#2 memset::dst#1 ] : zp[2]:37 , +Potential registers zp[1]:0 [ BRAM ] : zp[1]:0 , +Potential registers zp[1]:1 [ BROM ] : zp[1]:1 , +Potential registers zp[1]:45 [ hstart ] : zp[1]:45 , +Potential registers zp[1]:46 [ hstop ] : zp[1]:46 , +Potential registers zp[1]:47 [ vstart ] : zp[1]:47 , +Potential registers zp[1]:48 [ vstop ] : zp[1]:48 , +Potential registers zp[1]:44 [ cnt ] : zp[1]:44 , +Potential registers zp[1]:49 [ sin_idx ] : zp[1]:49 , +Potential registers zp[2]:41 [ irq_line::bar#0 ] : zp[2]:41 , REGISTER UPLIFT SCOPES -Uplift Scope [irq_line] 370.33: zp[1]:2 [ irq_line::i2#2 irq_line::i2#1 ] 353.5: zp[1]:3 [ irq_line::i#2 irq_line::i#1 ] 353.5: zp[1]:4 [ irq_line::i1#2 irq_line::i1#1 ] 26.12: zp[1]:7 [ irq_line::b#2 irq_line::b#1 ] 26: zp[1]:8 [ irq_line::l#2 irq_line::l#1 ] 22.4: zp[2]:9 [ irq_line::bar#0 ] 18: zp[1]:11 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] -Uplift Scope [memset] 336.67: zp[2]:5 [ memset::dst#2 memset::dst#1 ] -Uplift Scope [] 0.53: zp[1]:12 [ cnt ] 0.45: zp[1]:13 [ hstart ] 0.35: zp[1]:14 [ hstop ] 0.33: zp[1]:15 [ vstart ] 0.32: zp[1]:16 [ vstop ] 0.28: zp[1]:17 [ sin_idx ] -Uplift Scope [VERA_SPRITE] +Uplift Scope [irq_line] 370.33: zp[1]:34 [ irq_line::i2#2 irq_line::i2#1 ] 353.5: zp[1]:35 [ irq_line::i#2 irq_line::i#1 ] 353.5: zp[1]:36 [ irq_line::i1#2 irq_line::i1#1 ] 26.12: zp[1]:39 [ irq_line::b#2 irq_line::b#1 ] 26: zp[1]:40 [ irq_line::l#2 irq_line::l#1 ] 22.4: zp[2]:41 [ irq_line::bar#0 ] 18: zp[1]:43 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] +Uplift Scope [memset] 336.67: zp[2]:37 [ memset::dst#2 memset::dst#1 ] +Uplift Scope [] 20: zp[1]:0 [ BRAM ] 20: zp[1]:1 [ BROM ] 0.53: zp[1]:44 [ cnt ] 0.45: zp[1]:45 [ hstart ] 0.35: zp[1]:46 [ hstop ] 0.33: zp[1]:47 [ vstart ] 0.32: zp[1]:48 [ vstop ] 0.28: zp[1]:49 [ sin_idx ] Uplift Scope [MOS6522_VIA] +Uplift Scope [RADIX] +Uplift Scope [VERA_SPRITE] Uplift Scope [main] Uplift Scope [__start] -Uplifting [irq_line] best 8201 combination reg byte y [ irq_line::i2#2 irq_line::i2#1 ] reg byte a [ irq_line::i#2 irq_line::i#1 ] reg byte a [ irq_line::i1#2 irq_line::i1#1 ] reg byte x [ irq_line::b#2 irq_line::b#1 ] zp[1]:8 [ irq_line::l#2 irq_line::l#1 ] zp[2]:9 [ irq_line::bar#0 ] zp[1]:11 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] +Uplifting [irq_line] best 8211 combination reg byte y [ irq_line::i2#2 irq_line::i2#1 ] reg byte a [ irq_line::i#2 irq_line::i#1 ] reg byte a [ irq_line::i1#2 irq_line::i1#1 ] reg byte x [ irq_line::b#2 irq_line::b#1 ] zp[1]:40 [ irq_line::l#2 irq_line::l#1 ] zp[2]:41 [ irq_line::bar#0 ] zp[1]:43 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] Limited combination testing to 100 combinations of 1296 possible. -Uplifting [memset] best 8201 combination zp[2]:5 [ memset::dst#2 memset::dst#1 ] -Uplifting [] best 8201 combination zp[1]:12 [ cnt ] zp[1]:13 [ hstart ] zp[1]:14 [ hstop ] zp[1]:15 [ vstart ] zp[1]:16 [ vstop ] zp[1]:17 [ sin_idx ] -Uplifting [VERA_SPRITE] best 8201 combination -Uplifting [MOS6522_VIA] best 8201 combination -Uplifting [main] best 8201 combination -Uplifting [__start] best 8201 combination -Attempting to uplift remaining variables inzp[1]:8 [ irq_line::l#2 irq_line::l#1 ] -Uplifting [irq_line] best 8081 combination reg byte x [ irq_line::l#2 irq_line::l#1 ] -Attempting to uplift remaining variables inzp[1]:11 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] -Uplifting [irq_line] best 8081 combination zp[1]:11 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] -Attempting to uplift remaining variables inzp[1]:12 [ cnt ] -Uplifting [] best 8081 combination zp[1]:12 [ cnt ] -Attempting to uplift remaining variables inzp[1]:13 [ hstart ] -Uplifting [] best 8081 combination zp[1]:13 [ hstart ] -Attempting to uplift remaining variables inzp[1]:14 [ hstop ] -Uplifting [] best 8081 combination zp[1]:14 [ hstop ] -Attempting to uplift remaining variables inzp[1]:15 [ vstart ] -Uplifting [] best 8081 combination zp[1]:15 [ vstart ] -Attempting to uplift remaining variables inzp[1]:16 [ vstop ] -Uplifting [] best 8081 combination zp[1]:16 [ vstop ] -Attempting to uplift remaining variables inzp[1]:17 [ sin_idx ] -Uplifting [] best 8081 combination zp[1]:17 [ sin_idx ] -Coalescing zero page register [ zp[2]:9 [ irq_line::bar#0 ] ] with [ zp[2]:5 [ memset::dst#2 memset::dst#1 ] ] -Allocated (was zp[2]:9) zp[2]:2 [ irq_line::bar#0 memset::dst#2 memset::dst#1 ] -Allocated (was zp[1]:11) zp[1]:4 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] -Allocated (was zp[1]:12) zp[1]:5 [ cnt ] -Allocated (was zp[1]:13) zp[1]:6 [ hstart ] -Allocated (was zp[1]:14) zp[1]:7 [ hstop ] -Allocated (was zp[1]:15) zp[1]:8 [ vstart ] -Allocated (was zp[1]:16) zp[1]:9 [ vstop ] -Allocated (was zp[1]:17) zp[1]:10 [ sin_idx ] +Uplifting [memset] best 8211 combination zp[2]:37 [ memset::dst#2 memset::dst#1 ] +Uplifting [] best 8211 combination zp[1]:0 [ BRAM ] zp[1]:1 [ BROM ] zp[1]:44 [ cnt ] zp[1]:45 [ hstart ] zp[1]:46 [ hstop ] zp[1]:47 [ vstart ] zp[1]:48 [ vstop ] zp[1]:49 [ sin_idx ] +Uplifting [MOS6522_VIA] best 8211 combination +Uplifting [RADIX] best 8211 combination +Uplifting [VERA_SPRITE] best 8211 combination +Uplifting [main] best 8211 combination +Uplifting [__start] best 8211 combination +Attempting to uplift remaining variables inzp[1]:40 [ irq_line::l#2 irq_line::l#1 ] +Uplifting [irq_line] best 8091 combination reg byte x [ irq_line::l#2 irq_line::l#1 ] +Attempting to uplift remaining variables inzp[1]:0 [ BRAM ] +Uplifting [] best 8091 combination zp[1]:0 [ BRAM ] +Attempting to uplift remaining variables inzp[1]:1 [ BROM ] +Uplifting [] best 8091 combination zp[1]:1 [ BROM ] +Attempting to uplift remaining variables inzp[1]:43 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] +Uplifting [irq_line] best 8091 combination zp[1]:43 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] +Attempting to uplift remaining variables inzp[1]:44 [ cnt ] +Uplifting [] best 8091 combination zp[1]:44 [ cnt ] +Attempting to uplift remaining variables inzp[1]:45 [ hstart ] +Uplifting [] best 8091 combination zp[1]:45 [ hstart ] +Attempting to uplift remaining variables inzp[1]:46 [ hstop ] +Uplifting [] best 8091 combination zp[1]:46 [ hstop ] +Attempting to uplift remaining variables inzp[1]:47 [ vstart ] +Uplifting [] best 8091 combination zp[1]:47 [ vstart ] +Attempting to uplift remaining variables inzp[1]:48 [ vstop ] +Uplifting [] best 8091 combination zp[1]:48 [ vstop ] +Attempting to uplift remaining variables inzp[1]:49 [ sin_idx ] +Uplifting [] best 8091 combination zp[1]:49 [ sin_idx ] +Coalescing zero page register [ zp[2]:41 [ irq_line::bar#0 ] ] with [ zp[2]:37 [ memset::dst#2 memset::dst#1 ] ] +Allocated (was zp[2]:41) zp[2]:34 [ irq_line::bar#0 memset::dst#2 memset::dst#1 ] +Allocated (was zp[1]:43) zp[1]:36 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] +Allocated (was zp[1]:44) zp[1]:37 [ cnt ] +Allocated (was zp[1]:45) zp[1]:38 [ hstart ] +Allocated (was zp[1]:46) zp[1]:39 [ hstop ] +Allocated (was zp[1]:47) zp[1]:40 [ vstart ] +Allocated (was zp[1]:48) zp[1]:41 [ vstop ] +Allocated (was zp[1]:49) zp[1]:42 [ sin_idx ] ASSEMBLER BEFORE OPTIMIZATION // File Comments @@ -906,7 +1027,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Displays raster bars in the border // Upstart .cpu _65c02 - // Commodore 64 PRG executable file + // Commander X16 PRG executable file .file [name="cx16-rasterbars.prg", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$0801] @@ -914,10 +1035,14 @@ ASSEMBLER BEFORE OPTIMIZATION .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(__start) + // Global Constants & labels .const VERA_DCSEL = 2 .const VERA_LINE = 2 + .const isr_vsync = $314 .const SIZEOF_CHAR = 1 + /// $0314 (RAM) IRQ vector - The vector used when the KERNAL serves IRQ interrupts + .label KERNEL_IRQ = $314 /// $9F25 CTRL Control /// Bit 7: Reset /// Bit 1: DCSEL @@ -954,173 +1079,179 @@ ASSEMBLER BEFORE OPTIMIZATION .label VERA_DC_VSTART = $9f2b /// $9F2C DC_VSTOP (DCSEL=1) Active Display V-Stop (8:1) .label VERA_DC_VSTOP = $9f2c - /// $0314 (RAM) IRQ vector - The vector used when the KERNAL serves IRQ interrupts - .label KERNEL_IRQ = $314 + .label BRAM = 0 + .label BROM = 1 // The horizontal start - .label hstart = 6 + .label hstart = $26 // The horizontal stop - .label hstop = 7 + .label hstop = $27 // The vertical start - .label vstart = 8 + .label vstart = $28 // The vertical stop - .label vstop = 9 + .label vstop = $29 // The countdown - .label cnt = 5 + .label cnt = $25 // The sin idx - .label sin_idx = $a + .label sin_idx = $2a .segment Code // __start __start: { jmp __init1 // __start::__init1 __init1: - // [1] hstart = 0 -- vbuz1=vbuc1 + // [1] BRAM = 0 -- vbuz1=vbuc1 + lda #0 + sta.z BRAM + // [2] BROM = 4 -- vbuz1=vbuc1 + lda #4 + sta.z BROM + // [3] hstart = 0 -- vbuz1=vbuc1 lda #0 sta.z hstart - // [2] hstop = (char)$280/4 -- vbuz1=vbuc1 + // [4] hstop = (char)$280/4 -- vbuz1=vbuc1 lda #$280/4 sta.z hstop - // [3] vstart = 0 -- vbuz1=vbuc1 + // [5] vstart = 0 -- vbuz1=vbuc1 lda #0 sta.z vstart - // [4] vstop = (char)$1e0/2 -- vbuz1=vbuc1 + // [6] vstop = (char)$1e0/2 -- vbuz1=vbuc1 lda #$1e0/2 sta.z vstop - // [5] cnt = 2 -- vbuz1=vbuc1 + // [7] cnt = 2 -- vbuz1=vbuc1 lda #2 sta.z cnt - // [6] sin_idx = $64 -- vbuz1=vbuc1 + // [8] sin_idx = $64 -- vbuz1=vbuc1 lda #$64 sta.z sin_idx - // [7] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] + // [9] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: - // [8] call main - // [51] phi from __start::@1 to main [phi:__start::@1->main] + // [10] call main + // [53] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main jmp __breturn // __start::@return __breturn: - // [9] return + // [11] return rts } // irq_line // LINE Interrupt Routine irq_line: { - .label idx = 4 - .label bar = 2 + .label idx = $24 + .label bar = $22 // interrupt(isr_rom_min_cx16_entry) -- isr_rom_min_cx16_entry - // [10] *VERA_CTRL = *VERA_CTRL | VERA_DCSEL -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [12] *VERA_CTRL = *VERA_CTRL | VERA_DCSEL -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Update the border lda #VERA_DCSEL ora VERA_CTRL sta VERA_CTRL - // [11] *VERA_DC_HSTART = hstart -- _deref_pbuc1=vbuz1 + // [13] *VERA_DC_HSTART = hstart -- _deref_pbuc1=vbuz1 lda.z hstart sta VERA_DC_HSTART - // [12] *VERA_DC_HSTOP = hstop -- _deref_pbuc1=vbuz1 + // [14] *VERA_DC_HSTOP = hstop -- _deref_pbuc1=vbuz1 lda.z hstop sta VERA_DC_HSTOP - // [13] *VERA_DC_VSTART = vstart -- _deref_pbuc1=vbuz1 + // [15] *VERA_DC_VSTART = vstart -- _deref_pbuc1=vbuz1 lda.z vstart sta VERA_DC_VSTART - // [14] *VERA_DC_VSTOP = vstop -- _deref_pbuc1=vbuz1 + // [16] *VERA_DC_VSTOP = vstop -- _deref_pbuc1=vbuz1 lda.z vstop sta VERA_DC_VSTOP - // [15] *VERA_CTRL = *VERA_CTRL & ~VERA_DCSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [17] *VERA_CTRL = *VERA_CTRL & ~VERA_DCSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Show color raster bars in the border lda #VERA_DCSEL^$ff and VERA_CTRL sta VERA_CTRL - // [16] phi from irq_line to irq_line::@2 [phi:irq_line->irq_line::@2] + // [18] phi from irq_line to irq_line::@2 [phi:irq_line->irq_line::@2] __b2_from_irq_line: - // [16] phi irq_line::l#2 = 0 [phi:irq_line->irq_line::@2#0] -- vbuxx=vbuc1 + // [18] phi irq_line::l#2 = 0 [phi:irq_line->irq_line::@2#0] -- vbuxx=vbuc1 ldx #0 jmp __b2 // irq_line::@2 __b2: - // [17] if(irq_line::l#2!=$e6) goto irq_line::@3 -- vbuxx_neq_vbuc1_then_la1 + // [19] if(irq_line::l#2!=$e6) goto irq_line::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$e6 bne __b3 jmp __b4 // irq_line::@4 __b4: - // [18] cnt = -- cnt -- vbuz1=_dec_vbuz1 + // [20] cnt = -- cnt -- vbuz1=_dec_vbuz1 dec.z cnt - // [19] if(cnt!=0) goto irq_line::@1 -- vbuz1_neq_0_then_la1 + // [21] if(cnt!=0) goto irq_line::@1 -- vbuz1_neq_0_then_la1 lda.z cnt bne __b1_from___b4 jmp __b11 // irq_line::@11 __b11: - // [20] cnt = 2 -- vbuz1=vbuc1 + // [22] cnt = 2 -- vbuz1=vbuc1 lda #2 sta.z cnt - // [21] if(hstart>=(char)$140/4+1) goto irq_line::@1 -- vbuz1_ge_vbuc1_then_la1 + // [23] if(hstart>=(char)$140/4+1) goto irq_line::@1 -- vbuz1_ge_vbuc1_then_la1 lda.z hstart cmp #$140/4+1 bcs __b1_from___b11 jmp __b12 // irq_line::@12 __b12: - // [22] hstart = ++ hstart -- vbuz1=_inc_vbuz1 + // [24] hstart = ++ hstart -- vbuz1=_inc_vbuz1 inc.z hstart - // [23] hstop = -- hstop -- vbuz1=_dec_vbuz1 + // [25] hstop = -- hstop -- vbuz1=_dec_vbuz1 dec.z hstop - // [24] vstart = ++ vstart -- vbuz1=_inc_vbuz1 + // [26] vstart = ++ vstart -- vbuz1=_inc_vbuz1 inc.z vstart - // [25] vstop = -- vstop -- vbuz1=_dec_vbuz1 + // [27] vstop = -- vstop -- vbuz1=_dec_vbuz1 dec.z vstop - // [26] phi from irq_line::@11 irq_line::@12 irq_line::@4 to irq_line::@1 [phi:irq_line::@11/irq_line::@12/irq_line::@4->irq_line::@1] + // [28] phi from irq_line::@11 irq_line::@12 irq_line::@4 to irq_line::@1 [phi:irq_line::@11/irq_line::@12/irq_line::@4->irq_line::@1] __b1_from___b11: __b1_from___b12: __b1_from___b4: jmp __b1 // irq_line::@1 __b1: - // [27] call memset + // [29] call memset // Animate the bars - // [58] phi from irq_line::@1 to memset [phi:irq_line::@1->memset] + // [60] phi from irq_line::@1 to memset [phi:irq_line::@1->memset] memset_from___b1: jsr memset jmp __b19 // irq_line::@19 __b19: - // [28] irq_line::idx#0 = sin_idx -- vbuz1=vbuz2 + // [30] irq_line::idx#0 = sin_idx -- vbuz1=vbuz2 lda.z sin_idx sta.z idx - // [29] sin_idx = -- sin_idx -- vbuz1=_dec_vbuz1 + // [31] sin_idx = -- sin_idx -- vbuz1=_dec_vbuz1 dec.z sin_idx - // [30] phi from irq_line::@19 to irq_line::@13 [phi:irq_line::@19->irq_line::@13] + // [32] phi from irq_line::@19 to irq_line::@13 [phi:irq_line::@19->irq_line::@13] __b13_from___b19: - // [30] phi irq_line::idx#2 = irq_line::idx#0 [phi:irq_line::@19->irq_line::@13#0] -- register_copy - // [30] phi irq_line::b#2 = 0 [phi:irq_line::@19->irq_line::@13#1] -- vbuxx=vbuc1 + // [32] phi irq_line::idx#2 = irq_line::idx#0 [phi:irq_line::@19->irq_line::@13#0] -- register_copy + // [32] phi irq_line::b#2 = 0 [phi:irq_line::@19->irq_line::@13#1] -- vbuxx=vbuc1 ldx #0 jmp __b13 // irq_line::@13 __b13: - // [31] if(irq_line::b#2<8) goto irq_line::@14 -- vbuxx_lt_vbuc1_then_la1 + // [33] if(irq_line::b#2<8) goto irq_line::@14 -- vbuxx_lt_vbuc1_then_la1 cpx #8 bcc __b14 jmp __b15 // irq_line::@15 __b15: - // [32] *VERA_ISR = VERA_LINE -- _deref_pbuc1=vbuc2 + // [34] *VERA_ISR = VERA_LINE -- _deref_pbuc1=vbuc2 // Reset the LINE interrupt lda #VERA_LINE sta VERA_ISR jmp __breturn // irq_line::@return __breturn: - // [33] return + // [35] return // interrupt(isr_rom_min_cx16_exit) -- isr_rom_min_cx16_exit jmp $e049 // irq_line::@14 __b14: - // [34] irq_line::bar#0 = BARS + SIN[irq_line::idx#2] -- pbuz1=pbuc1_plus_pbuc2_derefidx_vbuz2 + // [36] irq_line::bar#0 = BARS + SIN[irq_line::idx#2] -- pbuz1=pbuc1_plus_pbuc2_derefidx_vbuz2 ldy.z idx lda SIN,y clc @@ -1129,72 +1260,72 @@ irq_line: { lda #>BARS adc #0 sta.z bar+1 - // [35] phi from irq_line::@14 to irq_line::@16 [phi:irq_line::@14->irq_line::@16] + // [37] phi from irq_line::@14 to irq_line::@16 [phi:irq_line::@14->irq_line::@16] __b16_from___b14: - // [35] phi irq_line::i2#2 = 0 [phi:irq_line::@14->irq_line::@16#0] -- vbuyy=vbuc1 + // [37] phi irq_line::i2#2 = 0 [phi:irq_line::@14->irq_line::@16#0] -- vbuyy=vbuc1 ldy #0 jmp __b16 // irq_line::@16 __b16: - // [36] if(irq_line::i2#2<$20*SIZEOF_CHAR) goto irq_line::@17 -- vbuyy_lt_vbuc1_then_la1 + // [38] if(irq_line::i2#2<$20*SIZEOF_CHAR) goto irq_line::@17 -- vbuyy_lt_vbuc1_then_la1 cpy #$20*SIZEOF_CHAR bcc __b17 jmp __b18 // irq_line::@18 __b18: - // [37] irq_line::idx#1 = irq_line::idx#2 + $d -- vbuz1=vbuz1_plus_vbuc1 + // [39] irq_line::idx#1 = irq_line::idx#2 + $d -- vbuz1=vbuz1_plus_vbuc1 lda #$d clc adc.z idx sta.z idx - // [38] irq_line::b#1 = ++ irq_line::b#2 -- vbuxx=_inc_vbuxx + // [40] irq_line::b#1 = ++ irq_line::b#2 -- vbuxx=_inc_vbuxx inx - // [30] phi from irq_line::@18 to irq_line::@13 [phi:irq_line::@18->irq_line::@13] + // [32] phi from irq_line::@18 to irq_line::@13 [phi:irq_line::@18->irq_line::@13] __b13_from___b18: - // [30] phi irq_line::idx#2 = irq_line::idx#1 [phi:irq_line::@18->irq_line::@13#0] -- register_copy - // [30] phi irq_line::b#2 = irq_line::b#1 [phi:irq_line::@18->irq_line::@13#1] -- register_copy + // [32] phi irq_line::idx#2 = irq_line::idx#1 [phi:irq_line::@18->irq_line::@13#0] -- register_copy + // [32] phi irq_line::b#2 = irq_line::b#1 [phi:irq_line::@18->irq_line::@13#1] -- register_copy jmp __b13 // irq_line::@17 __b17: - // [39] irq_line::bar#0[irq_line::i2#2] = BAR[irq_line::i2#2] -- pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuyy + // [41] irq_line::bar#0[irq_line::i2#2] = BAR[irq_line::i2#2] -- pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuyy lda BAR,y sta (bar),y - // [40] irq_line::i2#1 = ++ irq_line::i2#2 -- vbuyy=_inc_vbuyy + // [42] irq_line::i2#1 = ++ irq_line::i2#2 -- vbuyy=_inc_vbuyy iny - // [35] phi from irq_line::@17 to irq_line::@16 [phi:irq_line::@17->irq_line::@16] + // [37] phi from irq_line::@17 to irq_line::@16 [phi:irq_line::@17->irq_line::@16] __b16_from___b17: - // [35] phi irq_line::i2#2 = irq_line::i2#1 [phi:irq_line::@17->irq_line::@16#0] -- register_copy + // [37] phi irq_line::i2#2 = irq_line::i2#1 [phi:irq_line::@17->irq_line::@16#0] -- register_copy jmp __b16 // irq_line::@3 __b3: - // [41] *VERA_DC_BORDER = BARS[irq_line::l#2] -- _deref_pbuc1=pbuc2_derefidx_vbuxx + // [43] *VERA_DC_BORDER = BARS[irq_line::l#2] -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda BARS,x sta VERA_DC_BORDER - // [42] phi from irq_line::@3 to irq_line::@5 [phi:irq_line::@3->irq_line::@5] + // [44] phi from irq_line::@3 to irq_line::@5 [phi:irq_line::@3->irq_line::@5] __b5_from___b3: - // [42] phi irq_line::i#2 = 0 [phi:irq_line::@3->irq_line::@5#0] -- vbuaa=vbuc1 + // [44] phi irq_line::i#2 = 0 [phi:irq_line::@3->irq_line::@5#0] -- vbuaa=vbuc1 lda #0 jmp __b5 // irq_line::@5 __b5: - // [43] if(irq_line::i#2<$18) goto irq_line::@6 -- vbuaa_lt_vbuc1_then_la1 + // [45] if(irq_line::i#2<$18) goto irq_line::@6 -- vbuaa_lt_vbuc1_then_la1 cmp #$18 bcc __b6 jmp __b7 // irq_line::@7 __b7: - // [44] *VERA_DC_BORDER = 0 -- _deref_pbuc1=vbuc2 + // [46] *VERA_DC_BORDER = 0 -- _deref_pbuc1=vbuc2 // Wait exactly long enough to go to the next raster line lda #0 sta VERA_DC_BORDER - // [45] phi from irq_line::@7 to irq_line::@8 [phi:irq_line::@7->irq_line::@8] + // [47] phi from irq_line::@7 to irq_line::@8 [phi:irq_line::@7->irq_line::@8] __b8_from___b7: - // [45] phi irq_line::i1#2 = 0 [phi:irq_line::@7->irq_line::@8#0] -- vbuaa=vbuc1 + // [47] phi irq_line::i1#2 = 0 [phi:irq_line::@7->irq_line::@8#0] -- vbuaa=vbuc1 lda #0 jmp __b8 // irq_line::@8 __b8: - // [46] if(irq_line::i1#2<$17) goto irq_line::@9 -- vbuaa_lt_vbuc1_then_la1 + // [48] if(irq_line::i1#2<$17) goto irq_line::@9 -- vbuaa_lt_vbuc1_then_la1 cmp #$17 bcc __b9 jmp __b10 @@ -1204,27 +1335,27 @@ irq_line: { // Wait exactly long enough to go to the next raster line nop nop - // [48] irq_line::l#1 = ++ irq_line::l#2 -- vbuxx=_inc_vbuxx + // [50] irq_line::l#1 = ++ irq_line::l#2 -- vbuxx=_inc_vbuxx inx - // [16] phi from irq_line::@10 to irq_line::@2 [phi:irq_line::@10->irq_line::@2] + // [18] phi from irq_line::@10 to irq_line::@2 [phi:irq_line::@10->irq_line::@2] __b2_from___b10: - // [16] phi irq_line::l#2 = irq_line::l#1 [phi:irq_line::@10->irq_line::@2#0] -- register_copy + // [18] phi irq_line::l#2 = irq_line::l#1 [phi:irq_line::@10->irq_line::@2#0] -- register_copy jmp __b2 // irq_line::@9 __b9: - // [49] irq_line::i1#1 = ++ irq_line::i1#2 -- vbuaa=_inc_vbuaa + // [51] irq_line::i1#1 = ++ irq_line::i1#2 -- vbuaa=_inc_vbuaa inc - // [45] phi from irq_line::@9 to irq_line::@8 [phi:irq_line::@9->irq_line::@8] + // [47] phi from irq_line::@9 to irq_line::@8 [phi:irq_line::@9->irq_line::@8] __b8_from___b9: - // [45] phi irq_line::i1#2 = irq_line::i1#1 [phi:irq_line::@9->irq_line::@8#0] -- register_copy + // [47] phi irq_line::i1#2 = irq_line::i1#1 [phi:irq_line::@9->irq_line::@8#0] -- register_copy jmp __b8 // irq_line::@6 __b6: - // [50] irq_line::i#1 = ++ irq_line::i#2 -- vbuaa=_inc_vbuaa + // [52] irq_line::i#1 = ++ irq_line::i#2 -- vbuaa=_inc_vbuaa inc - // [42] phi from irq_line::@6 to irq_line::@5 [phi:irq_line::@6->irq_line::@5] + // [44] phi from irq_line::@6 to irq_line::@5 [phi:irq_line::@6->irq_line::@5] __b5_from___b6: - // [42] phi irq_line::i#2 = irq_line::i#1 [phi:irq_line::@6->irq_line::@5#0] -- register_copy + // [44] phi irq_line::i#2 = irq_line::i#1 [phi:irq_line::@6->irq_line::@5#0] -- register_copy jmp __b5 } // main @@ -1237,15 +1368,15 @@ main: { jmp __b2 // main::@2 __b2: - // [53] *KERNEL_IRQ = &irq_line -- _deref_qprc1=pprc2 + // [55] *KERNEL_IRQ = &irq_line -- _deref_qprc1=pprc2 lda #irq_line sta KERNEL_IRQ+1 - // [54] *VERA_IEN = VERA_LINE -- _deref_pbuc1=vbuc2 + // [56] *VERA_IEN = VERA_LINE -- _deref_pbuc1=vbuc2 lda #VERA_LINE sta VERA_IEN - // [55] *VERA_IRQLINE_L = 5 -- _deref_pbuc1=vbuc2 + // [57] *VERA_IRQLINE_L = 5 -- _deref_pbuc1=vbuc2 lda #5 sta VERA_IRQLINE_L jmp CLI1 @@ -1253,7 +1384,7 @@ main: { CLI1: // asm { cli } cli - // [57] phi from main::@1 main::CLI1 to main::@1 [phi:main::@1/main::CLI1->main::@1] + // [59] phi from main::@1 main::CLI1 to main::@1 [phi:main::@1/main::CLI1->main::@1] __b1_from___b1: __b1_from_CLI1: jmp __b1 @@ -1269,10 +1400,10 @@ memset: { .const c = 0 .label str = BARS .label end = str+num - .label dst = 2 - // [59] phi from memset to memset::@1 [phi:memset->memset::@1] + .label dst = $22 + // [61] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [59] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [61] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -1280,7 +1411,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [60] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 + // [62] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z dst+1 cmp #>end bne __b2 @@ -1290,22 +1421,22 @@ memset: { jmp __breturn // memset::@return __breturn: - // [61] return + // [63] return rts // memset::@2 __b2: - // [62] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 + // [64] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 lda #c ldy #0 sta (dst),y - // [63] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 + // [65] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: - // [59] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1] + // [61] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1] __b1_from___b2: - // [59] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy + // [61] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy jmp __b1 } // File Data @@ -1392,7 +1523,13 @@ Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE __constant char BAR[$20] = { $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $1a, $1b, $1c, $1d, $1e, $1f, $1f, $1e, $1d, $1c, $1b, $1a, $19, $18, $17, $16, $15, $14, $13, $12, $11, $10 } __constant char BARS[$e6] = { fill( $e6, 0) } +__loadstore volatile char BRAM // !zp[-1]:0 zp[1]:0 20.0 +__loadstore volatile char BROM // !zp[-1]:1 zp[1]:1 20.0 __constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 __constant char SIN[$100] = kickasm {{ .fill 256, 99+99*sin(i*2*PI/256) }} __constant char SIZEOF_CHAR = 1 @@ -1408,15 +1545,15 @@ __constant char * const VERA_IRQLINE_L = (char *) 40744 __constant char * const VERA_ISR = (char *) 40743 __constant const char VERA_LINE = 2 void __start() -__loadstore volatile char cnt // zp[1]:5 0.5263157894736842 -__loadstore volatile char hstart // zp[1]:6 0.4545454545454546 -__loadstore volatile char hstop // zp[1]:7 0.34782608695652173 +__loadstore volatile char cnt // zp[1]:37 0.5263157894736842 +__loadstore volatile char hstart // zp[1]:38 0.4545454545454546 +__loadstore volatile char hstop // zp[1]:39 0.34782608695652173 __interrupt(rom_min_cx16) void irq_line() char irq_line::b char irq_line::b#1 // reg byte x 22.0 char irq_line::b#2 // reg byte x 4.125 char *irq_line::bar -char *irq_line::bar#0 // bar zp[2]:2 22.4 +char *irq_line::bar#0 // bar zp[2]:34 22.4 char irq_line::i char irq_line::i#1 // reg byte a 202.0 char irq_line::i#2 // reg byte a 151.5 @@ -1427,19 +1564,21 @@ char irq_line::i2 char irq_line::i2#1 // reg byte y 202.0 char irq_line::i2#2 // reg byte y 168.33333333333331 char irq_line::idx -char irq_line::idx#0 // idx zp[1]:4 2.0 -char irq_line::idx#1 // idx zp[1]:4 11.0 -char irq_line::idx#2 // idx zp[1]:4 5.0 +char irq_line::idx#0 // idx zp[1]:36 2.0 +char irq_line::idx#1 // idx zp[1]:36 11.0 +char irq_line::idx#2 // idx zp[1]:36 5.0 char irq_line::l char irq_line::l#1 // reg byte x 22.0 char irq_line::l#2 // reg byte x 4.0 +unsigned int isr_vsync +__constant unsigned int isr_vsync#2 = $314 // isr_vsync void main() void * memset(void *str , char c , unsigned int num) char memset::c __constant char memset::c#0 = 0 // c char *memset::dst -char *memset::dst#1 // dst zp[2]:2 202.0 -char *memset::dst#2 // dst zp[2]:2 134.66666666666666 +char *memset::dst#1 // dst zp[2]:34 202.0 +char *memset::dst#2 // dst zp[2]:34 134.66666666666666 char *memset::end __constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end unsigned int memset::num @@ -1447,34 +1586,36 @@ __constant unsigned int memset::num#0 = $e6*SIZEOF_CHAR // num void *memset::return void *memset::str __constant void *memset::str#0 = (void *)BARS // str -__loadstore volatile char sin_idx // zp[1]:10 0.27586206896551724 -__loadstore volatile char vstart // zp[1]:8 0.3333333333333333 -__loadstore volatile char vstop // zp[1]:9 0.32 +__loadstore volatile char sin_idx // zp[1]:42 0.27586206896551724 +__loadstore volatile char vstart // zp[1]:40 0.3333333333333333 +__loadstore volatile char vstop // zp[1]:41 0.32 reg byte x [ irq_line::l#2 irq_line::l#1 ] reg byte x [ irq_line::b#2 irq_line::b#1 ] -zp[1]:4 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] +zp[1]:36 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] reg byte y [ irq_line::i2#2 irq_line::i2#1 ] reg byte a [ irq_line::i#2 irq_line::i#1 ] reg byte a [ irq_line::i1#2 irq_line::i1#1 ] -zp[1]:6 [ hstart ] -zp[1]:7 [ hstop ] -zp[1]:8 [ vstart ] -zp[1]:9 [ vstop ] -zp[1]:5 [ cnt ] -zp[1]:10 [ sin_idx ] -zp[2]:2 [ irq_line::bar#0 memset::dst#2 memset::dst#1 ] +zp[1]:0 [ BRAM ] +zp[1]:1 [ BROM ] +zp[1]:38 [ hstart ] +zp[1]:39 [ hstop ] +zp[1]:40 [ vstart ] +zp[1]:41 [ vstop ] +zp[1]:37 [ cnt ] +zp[1]:42 [ sin_idx ] +zp[2]:34 [ irq_line::bar#0 memset::dst#2 memset::dst#1 ] FINAL ASSEMBLER -Score: 5784 +Score: 5794 // File Comments // Example program for the Commander X16 // Displays raster bars in the border // Upstart .cpu _65c02 - // Commodore 64 PRG executable file + // Commander X16 PRG executable file .file [name="cx16-rasterbars.prg", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$0801] @@ -1482,10 +1623,14 @@ Score: 5784 .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(__start) + // Global Constants & labels .const VERA_DCSEL = 2 .const VERA_LINE = 2 + .const isr_vsync = $314 .const SIZEOF_CHAR = 1 + /// $0314 (RAM) IRQ vector - The vector used when the KERNAL serves IRQ interrupts + .label KERNEL_IRQ = $314 /// $9F25 CTRL Control /// Bit 7: Reset /// Bit 1: DCSEL @@ -1522,170 +1667,178 @@ Score: 5784 .label VERA_DC_VSTART = $9f2b /// $9F2C DC_VSTOP (DCSEL=1) Active Display V-Stop (8:1) .label VERA_DC_VSTOP = $9f2c - /// $0314 (RAM) IRQ vector - The vector used when the KERNAL serves IRQ interrupts - .label KERNEL_IRQ = $314 + .label BRAM = 0 + .label BROM = 1 // The horizontal start - .label hstart = 6 + .label hstart = $26 // The horizontal stop - .label hstop = 7 + .label hstop = $27 // The vertical start - .label vstart = 8 + .label vstart = $28 // The vertical stop - .label vstop = 9 + .label vstop = $29 // The countdown - .label cnt = 5 + .label cnt = $25 // The sin idx - .label sin_idx = $a + .label sin_idx = $2a .segment Code // __start __start: { // __start::__init1 + // __export volatile __address(0x00) unsigned char BRAM = 0 + // [1] BRAM = 0 -- vbuz1=vbuc1 + lda #0 + sta.z BRAM + // __export volatile __address(0x01) unsigned char BROM = 4 + // [2] BROM = 4 -- vbuz1=vbuc1 + lda #4 + sta.z BROM // volatile char hstart = 0/4 - // [1] hstart = 0 -- vbuz1=vbuc1 + // [3] hstart = 0 -- vbuz1=vbuc1 lda #0 sta.z hstart // volatile char hstop = 640/4 - // [2] hstop = (char)$280/4 -- vbuz1=vbuc1 + // [4] hstop = (char)$280/4 -- vbuz1=vbuc1 lda #$280/4 sta.z hstop // volatile char vstart = 0/2 - // [3] vstart = 0 -- vbuz1=vbuc1 + // [5] vstart = 0 -- vbuz1=vbuc1 lda #0 sta.z vstart // volatile char vstop = 480/2 - // [4] vstop = (char)$1e0/2 -- vbuz1=vbuc1 + // [6] vstop = (char)$1e0/2 -- vbuz1=vbuc1 lda #$1e0/2 sta.z vstop // volatile char cnt = 2 - // [5] cnt = 2 -- vbuz1=vbuc1 + // [7] cnt = 2 -- vbuz1=vbuc1 lda #2 sta.z cnt // volatile char sin_idx = 100 - // [6] sin_idx = $64 -- vbuz1=vbuc1 + // [8] sin_idx = $64 -- vbuz1=vbuc1 lda #$64 sta.z sin_idx - // [7] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] + // [9] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [8] call main - // [51] phi from __start::@1 to main [phi:__start::@1->main] + // [10] call main + // [53] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return - // [9] return + // [11] return rts } // irq_line // LINE Interrupt Routine irq_line: { - .label idx = 4 - .label bar = 2 + .label idx = $24 + .label bar = $22 // interrupt(isr_rom_min_cx16_entry) -- isr_rom_min_cx16_entry // *VERA_CTRL |= VERA_DCSEL - // [10] *VERA_CTRL = *VERA_CTRL | VERA_DCSEL -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [12] *VERA_CTRL = *VERA_CTRL | VERA_DCSEL -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Update the border lda #VERA_DCSEL ora VERA_CTRL sta VERA_CTRL // *VERA_DC_HSTART = hstart - // [11] *VERA_DC_HSTART = hstart -- _deref_pbuc1=vbuz1 + // [13] *VERA_DC_HSTART = hstart -- _deref_pbuc1=vbuz1 lda.z hstart sta VERA_DC_HSTART // *VERA_DC_HSTOP = hstop - // [12] *VERA_DC_HSTOP = hstop -- _deref_pbuc1=vbuz1 + // [14] *VERA_DC_HSTOP = hstop -- _deref_pbuc1=vbuz1 lda.z hstop sta VERA_DC_HSTOP // *VERA_DC_VSTART = vstart - // [13] *VERA_DC_VSTART = vstart -- _deref_pbuc1=vbuz1 + // [15] *VERA_DC_VSTART = vstart -- _deref_pbuc1=vbuz1 lda.z vstart sta VERA_DC_VSTART // *VERA_DC_VSTOP = vstop - // [14] *VERA_DC_VSTOP = vstop -- _deref_pbuc1=vbuz1 + // [16] *VERA_DC_VSTOP = vstop -- _deref_pbuc1=vbuz1 lda.z vstop sta VERA_DC_VSTOP // *VERA_CTRL &= ~VERA_DCSEL - // [15] *VERA_CTRL = *VERA_CTRL & ~VERA_DCSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [17] *VERA_CTRL = *VERA_CTRL & ~VERA_DCSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Show color raster bars in the border lda #VERA_DCSEL^$ff and VERA_CTRL sta VERA_CTRL - // [16] phi from irq_line to irq_line::@2 [phi:irq_line->irq_line::@2] - // [16] phi irq_line::l#2 = 0 [phi:irq_line->irq_line::@2#0] -- vbuxx=vbuc1 + // [18] phi from irq_line to irq_line::@2 [phi:irq_line->irq_line::@2] + // [18] phi irq_line::l#2 = 0 [phi:irq_line->irq_line::@2#0] -- vbuxx=vbuc1 ldx #0 // irq_line::@2 __b2: // for(char l=0;l!=230;l++) - // [17] if(irq_line::l#2!=$e6) goto irq_line::@3 -- vbuxx_neq_vbuc1_then_la1 + // [19] if(irq_line::l#2!=$e6) goto irq_line::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$e6 bne __b3 // irq_line::@4 // if(--cnt==0) - // [18] cnt = -- cnt -- vbuz1=_dec_vbuz1 + // [20] cnt = -- cnt -- vbuz1=_dec_vbuz1 dec.z cnt - // [19] if(cnt!=0) goto irq_line::@1 -- vbuz1_neq_0_then_la1 + // [21] if(cnt!=0) goto irq_line::@1 -- vbuz1_neq_0_then_la1 lda.z cnt bne __b1 // irq_line::@11 // cnt = 2 - // [20] cnt = 2 -- vbuz1=vbuc1 + // [22] cnt = 2 -- vbuz1=vbuc1 lda #2 sta.z cnt // if(hstart<=320/4) - // [21] if(hstart>=(char)$140/4+1) goto irq_line::@1 -- vbuz1_ge_vbuc1_then_la1 + // [23] if(hstart>=(char)$140/4+1) goto irq_line::@1 -- vbuz1_ge_vbuc1_then_la1 lda.z hstart cmp #$140/4+1 bcs __b1 // irq_line::@12 // hstart++; - // [22] hstart = ++ hstart -- vbuz1=_inc_vbuz1 + // [24] hstart = ++ hstart -- vbuz1=_inc_vbuz1 inc.z hstart // hstop--; - // [23] hstop = -- hstop -- vbuz1=_dec_vbuz1 + // [25] hstop = -- hstop -- vbuz1=_dec_vbuz1 dec.z hstop // vstart++; - // [24] vstart = ++ vstart -- vbuz1=_inc_vbuz1 + // [26] vstart = ++ vstart -- vbuz1=_inc_vbuz1 inc.z vstart // vstop--; - // [25] vstop = -- vstop -- vbuz1=_dec_vbuz1 + // [27] vstop = -- vstop -- vbuz1=_dec_vbuz1 dec.z vstop - // [26] phi from irq_line::@11 irq_line::@12 irq_line::@4 to irq_line::@1 [phi:irq_line::@11/irq_line::@12/irq_line::@4->irq_line::@1] + // [28] phi from irq_line::@11 irq_line::@12 irq_line::@4 to irq_line::@1 [phi:irq_line::@11/irq_line::@12/irq_line::@4->irq_line::@1] // irq_line::@1 __b1: // memset(BARS, 0, sizeof(BARS)) - // [27] call memset + // [29] call memset // Animate the bars - // [58] phi from irq_line::@1 to memset [phi:irq_line::@1->memset] + // [60] phi from irq_line::@1 to memset [phi:irq_line::@1->memset] jsr memset // irq_line::@19 // char idx = sin_idx-- - // [28] irq_line::idx#0 = sin_idx -- vbuz1=vbuz2 + // [30] irq_line::idx#0 = sin_idx -- vbuz1=vbuz2 lda.z sin_idx sta.z idx - // [29] sin_idx = -- sin_idx -- vbuz1=_dec_vbuz1 + // [31] sin_idx = -- sin_idx -- vbuz1=_dec_vbuz1 dec.z sin_idx - // [30] phi from irq_line::@19 to irq_line::@13 [phi:irq_line::@19->irq_line::@13] - // [30] phi irq_line::idx#2 = irq_line::idx#0 [phi:irq_line::@19->irq_line::@13#0] -- register_copy - // [30] phi irq_line::b#2 = 0 [phi:irq_line::@19->irq_line::@13#1] -- vbuxx=vbuc1 + // [32] phi from irq_line::@19 to irq_line::@13 [phi:irq_line::@19->irq_line::@13] + // [32] phi irq_line::idx#2 = irq_line::idx#0 [phi:irq_line::@19->irq_line::@13#0] -- register_copy + // [32] phi irq_line::b#2 = 0 [phi:irq_line::@19->irq_line::@13#1] -- vbuxx=vbuc1 ldx #0 // irq_line::@13 __b13: // for(char b=0;b<8;b++) - // [31] if(irq_line::b#2<8) goto irq_line::@14 -- vbuxx_lt_vbuc1_then_la1 + // [33] if(irq_line::b#2<8) goto irq_line::@14 -- vbuxx_lt_vbuc1_then_la1 cpx #8 bcc __b14 // irq_line::@15 // *VERA_ISR = VERA_LINE - // [32] *VERA_ISR = VERA_LINE -- _deref_pbuc1=vbuc2 + // [34] *VERA_ISR = VERA_LINE -- _deref_pbuc1=vbuc2 // Reset the LINE interrupt lda #VERA_LINE sta VERA_ISR // irq_line::@return // } - // [33] return + // [35] return // interrupt(isr_rom_min_cx16_exit) -- isr_rom_min_cx16_exit jmp $e049 // irq_line::@14 __b14: // char * bar = BARS + SIN[idx] - // [34] irq_line::bar#0 = BARS + SIN[irq_line::idx#2] -- pbuz1=pbuc1_plus_pbuc2_derefidx_vbuz2 + // [36] irq_line::bar#0 = BARS + SIN[irq_line::idx#2] -- pbuz1=pbuc1_plus_pbuc2_derefidx_vbuz2 ldy.z idx lda SIN,y clc @@ -1694,68 +1847,68 @@ irq_line: { lda #>BARS adc #0 sta.z bar+1 - // [35] phi from irq_line::@14 to irq_line::@16 [phi:irq_line::@14->irq_line::@16] - // [35] phi irq_line::i2#2 = 0 [phi:irq_line::@14->irq_line::@16#0] -- vbuyy=vbuc1 + // [37] phi from irq_line::@14 to irq_line::@16 [phi:irq_line::@14->irq_line::@16] + // [37] phi irq_line::i2#2 = 0 [phi:irq_line::@14->irq_line::@16#0] -- vbuyy=vbuc1 ldy #0 // irq_line::@16 __b16: // for(char i=0;iirq_line::@13] - // [30] phi irq_line::idx#2 = irq_line::idx#1 [phi:irq_line::@18->irq_line::@13#0] -- register_copy - // [30] phi irq_line::b#2 = irq_line::b#1 [phi:irq_line::@18->irq_line::@13#1] -- register_copy + // [32] phi from irq_line::@18 to irq_line::@13 [phi:irq_line::@18->irq_line::@13] + // [32] phi irq_line::idx#2 = irq_line::idx#1 [phi:irq_line::@18->irq_line::@13#0] -- register_copy + // [32] phi irq_line::b#2 = irq_line::b#1 [phi:irq_line::@18->irq_line::@13#1] -- register_copy jmp __b13 // irq_line::@17 __b17: // bar[i] = BAR[i] - // [39] irq_line::bar#0[irq_line::i2#2] = BAR[irq_line::i2#2] -- pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuyy + // [41] irq_line::bar#0[irq_line::i2#2] = BAR[irq_line::i2#2] -- pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuyy lda BAR,y sta (bar),y // for(char i=0;iirq_line::@16] - // [35] phi irq_line::i2#2 = irq_line::i2#1 [phi:irq_line::@17->irq_line::@16#0] -- register_copy + // [37] phi from irq_line::@17 to irq_line::@16 [phi:irq_line::@17->irq_line::@16] + // [37] phi irq_line::i2#2 = irq_line::i2#1 [phi:irq_line::@17->irq_line::@16#0] -- register_copy jmp __b16 // irq_line::@3 __b3: // *VERA_DC_BORDER = BARS[l] - // [41] *VERA_DC_BORDER = BARS[irq_line::l#2] -- _deref_pbuc1=pbuc2_derefidx_vbuxx + // [43] *VERA_DC_BORDER = BARS[irq_line::l#2] -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda BARS,x sta VERA_DC_BORDER - // [42] phi from irq_line::@3 to irq_line::@5 [phi:irq_line::@3->irq_line::@5] - // [42] phi irq_line::i#2 = 0 [phi:irq_line::@3->irq_line::@5#0] -- vbuaa=vbuc1 + // [44] phi from irq_line::@3 to irq_line::@5 [phi:irq_line::@3->irq_line::@5] + // [44] phi irq_line::i#2 = 0 [phi:irq_line::@3->irq_line::@5#0] -- vbuaa=vbuc1 lda #0 // irq_line::@5 __b5: // for(char i=0;i<24;i++) - // [43] if(irq_line::i#2<$18) goto irq_line::@6 -- vbuaa_lt_vbuc1_then_la1 + // [45] if(irq_line::i#2<$18) goto irq_line::@6 -- vbuaa_lt_vbuc1_then_la1 cmp #$18 bcc __b6 // irq_line::@7 // *VERA_DC_BORDER = 0 - // [44] *VERA_DC_BORDER = 0 -- _deref_pbuc1=vbuc2 + // [46] *VERA_DC_BORDER = 0 -- _deref_pbuc1=vbuc2 // Wait exactly long enough to go to the next raster line lda #0 sta VERA_DC_BORDER - // [45] phi from irq_line::@7 to irq_line::@8 [phi:irq_line::@7->irq_line::@8] - // [45] phi irq_line::i1#2 = 0 [phi:irq_line::@7->irq_line::@8#0] -- vbuaa=vbuc1 + // [47] phi from irq_line::@7 to irq_line::@8 [phi:irq_line::@7->irq_line::@8] + // [47] phi irq_line::i1#2 = 0 [phi:irq_line::@7->irq_line::@8#0] -- vbuaa=vbuc1 // irq_line::@8 __b8: // for(char i=0;i<23;i++) - // [46] if(irq_line::i1#2<$17) goto irq_line::@9 -- vbuaa_lt_vbuc1_then_la1 + // [48] if(irq_line::i1#2<$17) goto irq_line::@9 -- vbuaa_lt_vbuc1_then_la1 cmp #$17 bcc __b9 // irq_line::@10 @@ -1765,26 +1918,26 @@ irq_line: { nop nop // for(char l=0;l!=230;l++) - // [48] irq_line::l#1 = ++ irq_line::l#2 -- vbuxx=_inc_vbuxx + // [50] irq_line::l#1 = ++ irq_line::l#2 -- vbuxx=_inc_vbuxx inx - // [16] phi from irq_line::@10 to irq_line::@2 [phi:irq_line::@10->irq_line::@2] - // [16] phi irq_line::l#2 = irq_line::l#1 [phi:irq_line::@10->irq_line::@2#0] -- register_copy + // [18] phi from irq_line::@10 to irq_line::@2 [phi:irq_line::@10->irq_line::@2] + // [18] phi irq_line::l#2 = irq_line::l#1 [phi:irq_line::@10->irq_line::@2#0] -- register_copy jmp __b2 // irq_line::@9 __b9: // for(char i=0;i<23;i++) - // [49] irq_line::i1#1 = ++ irq_line::i1#2 -- vbuaa=_inc_vbuaa + // [51] irq_line::i1#1 = ++ irq_line::i1#2 -- vbuaa=_inc_vbuaa inc - // [45] phi from irq_line::@9 to irq_line::@8 [phi:irq_line::@9->irq_line::@8] - // [45] phi irq_line::i1#2 = irq_line::i1#1 [phi:irq_line::@9->irq_line::@8#0] -- register_copy + // [47] phi from irq_line::@9 to irq_line::@8 [phi:irq_line::@9->irq_line::@8] + // [47] phi irq_line::i1#2 = irq_line::i1#1 [phi:irq_line::@9->irq_line::@8#0] -- register_copy jmp __b8 // irq_line::@6 __b6: // for(char i=0;i<24;i++) - // [50] irq_line::i#1 = ++ irq_line::i#2 -- vbuaa=_inc_vbuaa + // [52] irq_line::i#1 = ++ irq_line::i#2 -- vbuaa=_inc_vbuaa inc - // [42] phi from irq_line::@6 to irq_line::@5 [phi:irq_line::@6->irq_line::@5] - // [42] phi irq_line::i#2 = irq_line::i#1 [phi:irq_line::@6->irq_line::@5#0] -- register_copy + // [44] phi from irq_line::@6 to irq_line::@5 [phi:irq_line::@6->irq_line::@5] + // [44] phi irq_line::i#2 = irq_line::i#1 [phi:irq_line::@6->irq_line::@5#0] -- register_copy jmp __b5 } // main @@ -1795,24 +1948,24 @@ main: { sei // main::@2 // *KERNEL_IRQ = &irq_line - // [53] *KERNEL_IRQ = &irq_line -- _deref_qprc1=pprc2 + // [55] *KERNEL_IRQ = &irq_line -- _deref_qprc1=pprc2 lda #irq_line sta KERNEL_IRQ+1 // *VERA_IEN = VERA_LINE - // [54] *VERA_IEN = VERA_LINE -- _deref_pbuc1=vbuc2 + // [56] *VERA_IEN = VERA_LINE -- _deref_pbuc1=vbuc2 lda #VERA_LINE sta VERA_IEN // *VERA_IRQLINE_L = 5 - // [55] *VERA_IRQLINE_L = 5 -- _deref_pbuc1=vbuc2 + // [57] *VERA_IRQLINE_L = 5 -- _deref_pbuc1=vbuc2 lda #5 sta VERA_IRQLINE_L // main::CLI1 // asm // asm { cli } cli - // [57] phi from main::@1 main::CLI1 to main::@1 [phi:main::@1/main::CLI1->main::@1] + // [59] phi from main::@1 main::CLI1 to main::@1 [phi:main::@1/main::CLI1->main::@1] // main::@1 __b1: jmp __b1 @@ -1825,9 +1978,9 @@ memset: { .const c = 0 .label str = BARS .label end = str+num - .label dst = 2 - // [59] phi from memset to memset::@1 [phi:memset->memset::@1] - // [59] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + .label dst = $22 + // [61] phi from memset to memset::@1 [phi:memset->memset::@1] + // [61] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -1835,7 +1988,7 @@ memset: { // memset::@1 __b1: // for(char* dst = str; dst!=end; dst++) - // [60] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 + // [62] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z dst+1 cmp #>end bne __b2 @@ -1844,23 +1997,23 @@ memset: { bne __b2 // memset::@return // } - // [61] return + // [63] return rts // memset::@2 __b2: // *dst = c - // [62] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 + // [64] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 lda #c ldy #0 sta (dst),y // for(char* dst = str; dst!=end; dst++) - // [63] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 + // [65] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: - // [59] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1] - // [59] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy + // [61] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1] + // [61] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy jmp __b1 } // File Data diff --git a/src/test/ref/examples/cx16/cx16-rasterbars.sym b/src/test/ref/examples/cx16/cx16-rasterbars.sym index b6ea05022..09568ee77 100644 --- a/src/test/ref/examples/cx16/cx16-rasterbars.sym +++ b/src/test/ref/examples/cx16/cx16-rasterbars.sym @@ -1,6 +1,12 @@ __constant char BAR[$20] = { $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $1a, $1b, $1c, $1d, $1e, $1f, $1f, $1e, $1d, $1c, $1b, $1a, $19, $18, $17, $16, $15, $14, $13, $12, $11, $10 } __constant char BARS[$e6] = { fill( $e6, 0) } +__loadstore volatile char BRAM // !zp[-1]:0 zp[1]:0 20.0 +__loadstore volatile char BROM // !zp[-1]:1 zp[1]:1 20.0 __constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 __constant char SIN[$100] = kickasm {{ .fill 256, 99+99*sin(i*2*PI/256) }} __constant char SIZEOF_CHAR = 1 @@ -16,15 +22,15 @@ __constant char * const VERA_IRQLINE_L = (char *) 40744 __constant char * const VERA_ISR = (char *) 40743 __constant const char VERA_LINE = 2 void __start() -__loadstore volatile char cnt // zp[1]:5 0.5263157894736842 -__loadstore volatile char hstart // zp[1]:6 0.4545454545454546 -__loadstore volatile char hstop // zp[1]:7 0.34782608695652173 +__loadstore volatile char cnt // zp[1]:37 0.5263157894736842 +__loadstore volatile char hstart // zp[1]:38 0.4545454545454546 +__loadstore volatile char hstop // zp[1]:39 0.34782608695652173 __interrupt(rom_min_cx16) void irq_line() char irq_line::b char irq_line::b#1 // reg byte x 22.0 char irq_line::b#2 // reg byte x 4.125 char *irq_line::bar -char *irq_line::bar#0 // bar zp[2]:2 22.4 +char *irq_line::bar#0 // bar zp[2]:34 22.4 char irq_line::i char irq_line::i#1 // reg byte a 202.0 char irq_line::i#2 // reg byte a 151.5 @@ -35,19 +41,21 @@ char irq_line::i2 char irq_line::i2#1 // reg byte y 202.0 char irq_line::i2#2 // reg byte y 168.33333333333331 char irq_line::idx -char irq_line::idx#0 // idx zp[1]:4 2.0 -char irq_line::idx#1 // idx zp[1]:4 11.0 -char irq_line::idx#2 // idx zp[1]:4 5.0 +char irq_line::idx#0 // idx zp[1]:36 2.0 +char irq_line::idx#1 // idx zp[1]:36 11.0 +char irq_line::idx#2 // idx zp[1]:36 5.0 char irq_line::l char irq_line::l#1 // reg byte x 22.0 char irq_line::l#2 // reg byte x 4.0 +unsigned int isr_vsync +__constant unsigned int isr_vsync#2 = $314 // isr_vsync void main() void * memset(void *str , char c , unsigned int num) char memset::c __constant char memset::c#0 = 0 // c char *memset::dst -char *memset::dst#1 // dst zp[2]:2 202.0 -char *memset::dst#2 // dst zp[2]:2 134.66666666666666 +char *memset::dst#1 // dst zp[2]:34 202.0 +char *memset::dst#2 // dst zp[2]:34 134.66666666666666 char *memset::end __constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end unsigned int memset::num @@ -55,20 +63,22 @@ __constant unsigned int memset::num#0 = $e6*SIZEOF_CHAR // num void *memset::return void *memset::str __constant void *memset::str#0 = (void *)BARS // str -__loadstore volatile char sin_idx // zp[1]:10 0.27586206896551724 -__loadstore volatile char vstart // zp[1]:8 0.3333333333333333 -__loadstore volatile char vstop // zp[1]:9 0.32 +__loadstore volatile char sin_idx // zp[1]:42 0.27586206896551724 +__loadstore volatile char vstart // zp[1]:40 0.3333333333333333 +__loadstore volatile char vstop // zp[1]:41 0.32 reg byte x [ irq_line::l#2 irq_line::l#1 ] reg byte x [ irq_line::b#2 irq_line::b#1 ] -zp[1]:4 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] +zp[1]:36 [ irq_line::idx#2 irq_line::idx#1 irq_line::idx#0 ] reg byte y [ irq_line::i2#2 irq_line::i2#1 ] reg byte a [ irq_line::i#2 irq_line::i#1 ] reg byte a [ irq_line::i1#2 irq_line::i1#1 ] -zp[1]:6 [ hstart ] -zp[1]:7 [ hstop ] -zp[1]:8 [ vstart ] -zp[1]:9 [ vstop ] -zp[1]:5 [ cnt ] -zp[1]:10 [ sin_idx ] -zp[2]:2 [ irq_line::bar#0 memset::dst#2 memset::dst#1 ] +zp[1]:0 [ BRAM ] +zp[1]:1 [ BROM ] +zp[1]:38 [ hstart ] +zp[1]:39 [ hstop ] +zp[1]:40 [ vstart ] +zp[1]:41 [ vstop ] +zp[1]:37 [ cnt ] +zp[1]:42 [ sin_idx ] +zp[2]:34 [ irq_line::bar#0 memset::dst#2 memset::dst#1 ] 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 deleted file mode 100644 index 9930fed7a..000000000 --- a/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.asm +++ /dev/null @@ -1,3510 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA tile map modes and layering. -.cpu _65c02 - // Commodore 64 PRG executable file -.file [name="bitmap_8bpp_320_x_240.prg", type="prg", segments="Program"] -.segmentdef Program [segments="Basic, Code, Data"] -.segmentdef Basic [start=$0801] -.segmentdef Code [start=$80d] -.segmentdef Data [startAfter="Code"] -.segment Basic -:BasicUpstart(__start) - /// The colors of the CX16 - .const BLACK = 0 - .const WHITE = 1 - .const BLUE = 6 - .const YELLOW = 7 - .const VERA_INC_1 = $10 - .const VERA_ADDRSEL = 1 - .const VERA_LAYER1_ENABLE = $20 - .const VERA_LAYER0_ENABLE = $10 - .const VERA_LAYER_WIDTH_64 = $10 - .const VERA_LAYER_WIDTH_128 = $20 - .const VERA_LAYER_WIDTH_256 = $30 - .const VERA_LAYER_WIDTH_MASK = $30 - .const VERA_LAYER_HEIGHT_64 = $40 - .const VERA_LAYER_HEIGHT_128 = $80 - .const VERA_LAYER_HEIGHT_256 = $c0 - .const VERA_LAYER_HEIGHT_MASK = $c0 - /// Bit 0-1: Color Depth (0: 1 bpp, 1: 2 bpp, 2: 4 bpp, 3: 8 bpp) - .const VERA_LAYER_COLOR_DEPTH_1BPP = 0 - .const VERA_LAYER_COLOR_DEPTH_8BPP = 3 - .const VERA_LAYER_COLOR_DEPTH_MASK = 3 - .const VERA_LAYER_CONFIG_MODE_BITMAP = 4 - .const VERA_LAYER_CONFIG_256C = 8 - .const VERA_TILEBASE_WIDTH_16 = 1 - .const VERA_TILEBASE_HEIGHT_16 = 2 - .const VERA_LAYER_TILEBASE_MASK = $fc - .const SIZEOF_POINTER = 2 - .const STACK_BASE = $103 - /// $9F20 VRAM Address (7:0) - .label VERA_ADDRX_L = $9f20 - /// $9F21 VRAM Address (15:8) - .label VERA_ADDRX_M = $9f21 - /// $9F22 VRAM Address (7:0) - /// Bit 4-7: Address Increment The following is the amount incremented per value value:increment - /// 0:0, 1:1, 2:2, 3:4, 4:8, 5:16, 6:32, 7:64, 8:128, 9:256, 10:512, 11:40, 12:80, 13:160, 14:320, 15:640 - /// Bit 3: DECR Setting the DECR bit, will decrement instead of increment by the value set by the 'Address Increment' field. - /// Bit 0: VRAM Address (16) - .label VERA_ADDRX_H = $9f22 - /// $9F23 DATA0 VRAM Data port 0 - .label VERA_DATA0 = $9f23 - /// $9F24 DATA1 VRAM Data port 1 - .label VERA_DATA1 = $9f24 - /// $9F25 CTRL Control - /// Bit 7: Reset - /// Bit 1: DCSEL - /// Bit 2: ADDRSEL - .label VERA_CTRL = $9f25 - /// $9F29 DC_VIDEO (DCSEL=0) - /// Bit 7: Current Field Read-only bit which reflects the active interlaced field in composite and RGB modes. (0: even, 1: odd) - /// Bit 6: Sprites Enable Enable output from the Sprites renderer - /// Bit 5: Layer1 Enable Enable output from the Layer1 renderer - /// Bit 4: Layer0 Enable Enable output from the Layer0 renderer - /// Bit 2: Chroma Disable Setting 'Chroma Disable' disables output of chroma in NTSC composite mode and will give a better picture on a monochrome display. (Setting this bit will also disable the chroma output on the S-video output.) - /// Bit 0-1: Output Mode 0: Video disabled, 1: VGA output, 2: NTSC composite, 3: RGB interlaced, composite sync (via VGA connector) - .label VERA_DC_VIDEO = $9f29 - /// $9F2A DC_HSCALE (DCSEL=0) Active Display H-Scale - .label VERA_DC_HSCALE = $9f2a - /// $9F2B DC_VSCALE (DCSEL=0) Active Display V-Scale - .label VERA_DC_VSCALE = $9f2b - /// $9F2D L0_CONFIG Layer 0 Configuration - .label VERA_L0_CONFIG = $9f2d - /// $9F2E L0_MAPBASE Layer 0 Map Base Address (16:9) - .label VERA_L0_MAPBASE = $9f2e - /// Bit 0: Tile Width (0:8 pixels, 1:16 pixels) - .label VERA_L0_TILEBASE = $9f2f - /// $9F34 L1_CONFIG Layer 1 Configuration - .label VERA_L1_CONFIG = $9f34 - /// $9F35 L1_MAPBASE Layer 1 Map Base Address (16:9) - .label VERA_L1_MAPBASE = $9f35 - /// $9F36 L1_TILEBASE Layer 1 Tile Base - /// Bit 2-7: Tile Base Address (16:11) - /// Bit 1: Tile Height (0:8 pixels, 1:16 pixels) - /// Bit 0: Tile Width (0:8 pixels, 1:16 pixels) - .label VERA_L1_TILEBASE = $9f36 - // Variable holding the screen width; - .label conio_screen_width = $24 - // Variable holding the screen height; - .label conio_screen_height = $31 - // Variable holding the screen layer on the VERA card with which conio interacts; - .label conio_screen_layer = $30 - // Variables holding the current map width and map height of the layer. - .label conio_width = $a5 - .label conio_height = $33 - .label conio_rowshift = $2d - .label conio_rowskip = $2e - .label __bitmap_address = $ac - .label __bitmap_layer = $96 - .label __bitmap_hscale = $b0 - .label __bitmap_vscale = $b1 - .label __bitmap_color_depth = $a7 - // The random state variable - .label rand_state = $35 - // Remainder after unsigned 16-bit division - .label rem16u = $41 - // The screen width - // The screen height - // The text screen base address, which is a 16:0 bit value in VERA VRAM. - // That is 128KB addressable space, thus 17 bits in total. - // CONIO_SCREEN_TEXT contains bits 15:0 of the address. - // CONIO_SCREEN_BANK contains bit 16, the the 64K memory bank in VERA VRAM (the upper 17th bit). - // !!! note that these values are not const for the cx16! - // This conio implements the two layers of VERA, which can be layer 0 or layer 1. - // Configuring conio to output to a different layer, will change these fields to the address base - // configured using VERA_L0_MAPBASE = 0x9f2e or VERA_L1_MAPBASE = 0x9f35. - // Using the function setscreenlayer(layer) will re-calculate using CONIO_SCREEN_TEXT and CONIO_SCREEN_BASE - // based on the values of VERA_L0_MAPBASE or VERA_L1_MAPBASE, mapping the base address of the selected layer. - // The function setscreenlayermapbase(layer,mapbase) allows to configure bit 16:9 of the - // mapbase address of the time map in VRAM of the selected layer VERA_L0_MAPBASE or VERA_L1_MAPBASE. - .label CONIO_SCREEN_TEXT = $2b - .label CONIO_SCREEN_BANK = $88 - .label CONIO_SCREEN_BANK_1 = $ab - // The screen width - // The screen height - // The text screen base address, which is a 16:0 bit value in VERA VRAM. - // That is 128KB addressable space, thus 17 bits in total. - // CONIO_SCREEN_TEXT contains bits 15:0 of the address. - // CONIO_SCREEN_BANK contains bit 16, the the 64K memory bank in VERA VRAM (the upper 17th bit). - // !!! note that these values are not const for the cx16! - // This conio implements the two layers of VERA, which can be layer 0 or layer 1. - // Configuring conio to output to a different layer, will change these fields to the address base - // configured using VERA_L0_MAPBASE = 0x9f2e or VERA_L1_MAPBASE = 0x9f35. - // Using the function setscreenlayer(layer) will re-calculate using CONIO_SCREEN_TEXT and CONIO_SCREEN_BASE - // based on the values of VERA_L0_MAPBASE or VERA_L1_MAPBASE, mapping the base address of the selected layer. - // The function setscreenlayermapbase(layer,mapbase) allows to configure bit 16:9 of the - // mapbase address of the time map in VRAM of the selected layer VERA_L0_MAPBASE or VERA_L1_MAPBASE. - .label CONIO_SCREEN_TEXT_1 = $b2 -.segment Code -__start: { - // __ma unsigned byte conio_screen_width = 0 - lda #0 - sta.z conio_screen_width - // __ma unsigned byte conio_screen_height = 0 - sta.z conio_screen_height - // __ma unsigned byte conio_screen_layer = 1 - lda #1 - sta.z conio_screen_layer - // __ma word conio_width = 0 - lda #<0 - sta.z conio_width - sta.z conio_width+1 - // __ma word conio_height = 0 - sta.z conio_height - sta.z conio_height+1 - // __ma byte conio_rowshift = 0 - sta.z conio_rowshift - // __ma word conio_rowskip = 0 - sta.z conio_rowskip - sta.z conio_rowskip+1 - // __ma dword __bitmap_address = 0 - sta.z __bitmap_address - sta.z __bitmap_address+1 - lda #<0>>$10 - sta.z __bitmap_address+2 - lda #>0>>$10 - sta.z __bitmap_address+3 - // __ma byte __bitmap_layer = 0 - lda #0 - sta.z __bitmap_layer - // __ma byte __bitmap_hscale = 0 - sta.z __bitmap_hscale - // __ma byte __bitmap_vscale = 0 - sta.z __bitmap_vscale - // __ma byte __bitmap_color_depth = 0 - sta.z __bitmap_color_depth - // #pragma constructor_for(conio_x16_init, cputc, clrscr, cscroll) - jsr conio_x16_init - jsr main - rts -} -// Set initial cursor position -conio_x16_init: { - // Position cursor at current line - .label BASIC_CURSOR_LINE = $d6 - .label line = $a8 - // char line = *BASIC_CURSOR_LINE - lda.z BASIC_CURSOR_LINE - sta.z line - // vera_layer_mode_text(1,(dword)0x00000,(dword)0x0F800,128,64,8,8,16) - jsr vera_layer_mode_text - // screensize(&conio_screen_width, &conio_screen_height) - jsr screensize - // screenlayer(1) - jsr screenlayer - // vera_layer_set_textcolor(1, WHITE) - lda #WHITE - ldx #1 - jsr vera_layer_set_textcolor - // vera_layer_set_backcolor(1, BLUE) - lda #BLUE - ldx #1 - jsr vera_layer_set_backcolor - // vera_layer_set_mapbase(0,0x20) - ldx #$20 - lda #0 - jsr vera_layer_set_mapbase - // vera_layer_set_mapbase(1,0x00) - ldx #0 - lda #1 - jsr vera_layer_set_mapbase - // if(line>=CONIO_HEIGHT) - lda.z line - cmp.z conio_screen_height - bcc __b1 - // line=CONIO_HEIGHT-1 - ldx.z conio_screen_height - dex - stx.z line - __b1: - // gotoxy(0, line) - ldx.z line - jsr gotoxy - // } - rts -} -// Output one character at the current cursor position -// Moves the cursor forward. Scrolls the entire screen if needed -// void cputc(__zp($69) char c) -cputc: { - .const OFFSET_STACK_C = 0 - .label __16 = $29 - .label c = $69 - .label conio_addr = $1e - tsx - lda STACK_BASE+OFFSET_STACK_C,x - sta.z c - // char color = vera_layer_get_color( conio_screen_layer) - ldx.z conio_screen_layer - jsr vera_layer_get_color - // char color = vera_layer_get_color( conio_screen_layer) - tax - // char* conio_addr = CONIO_SCREEN_TEXT + conio_line_text[conio_screen_layer] - lda.z conio_screen_layer - asl - tay - clc - lda.z CONIO_SCREEN_TEXT - adc conio_line_text,y - sta.z conio_addr - lda.z CONIO_SCREEN_TEXT+1 - adc conio_line_text+1,y - sta.z conio_addr+1 - // conio_cursor_x[conio_screen_layer] << 1 - ldy.z conio_screen_layer - lda conio_cursor_x,y - asl - // conio_addr += conio_cursor_x[conio_screen_layer] << 1 - clc - adc.z conio_addr - sta.z conio_addr - bcc !+ - inc.z conio_addr+1 - !: - // if(c=='\n') - lda #'\n' - cmp.z c - beq __b1 - // *VERA_CTRL &= ~VERA_ADDRSEL - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(conio_addr) - lda.z conio_addr - // *VERA_ADDRX_L = BYTE0(conio_addr) - // Set address - sta VERA_ADDRX_L - // BYTE1(conio_addr) - lda.z conio_addr+1 - // *VERA_ADDRX_M = BYTE1(conio_addr) - sta VERA_ADDRX_M - // CONIO_SCREEN_BANK | VERA_INC_1 - lda #VERA_INC_1 - ora.z CONIO_SCREEN_BANK - // *VERA_ADDRX_H = CONIO_SCREEN_BANK | VERA_INC_1 - sta VERA_ADDRX_H - // *VERA_DATA0 = c - lda.z c - sta VERA_DATA0 - // *VERA_DATA0 = color - stx VERA_DATA0 - // conio_cursor_x[conio_screen_layer]++; - ldx.z conio_screen_layer - inc conio_cursor_x,x - // byte scroll_enable = conio_scroll_enable[conio_screen_layer] - ldy.z conio_screen_layer - lda conio_scroll_enable,y - // if(scroll_enable) - cmp #0 - bne __b5 - // (unsigned int)conio_cursor_x[conio_screen_layer] == conio_width - lda conio_cursor_x,y - sta.z __16 - lda #0 - sta.z __16+1 - // if((unsigned int)conio_cursor_x[conio_screen_layer] == conio_width) - cmp.z conio_width+1 - bne __breturn - lda.z __16 - cmp.z conio_width - bne __breturn - // cputln() - jsr cputln - __breturn: - // } - rts - __b5: - // if(conio_cursor_x[conio_screen_layer] == CONIO_WIDTH) - lda.z conio_screen_width - ldy.z conio_screen_layer - cmp conio_cursor_x,y - bne __breturn - // cputln() - jsr cputln - rts - __b1: - // cputln() - jsr cputln - rts -} -main: { - .label __40 = $6e - .label color = $7e - .label x = $78 - // 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. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x14000. - // This is now all easily done with a few statements in the new kickc vera lib ... - lda #<$100*8 - sta.z memcpy_in_vram.num - lda #>$100*8 - sta.z memcpy_in_vram.num+1 - ldy #1 - lda #<$f000 - sta.z memcpy_in_vram.dest - lda #>$f000 - sta.z memcpy_in_vram.dest+1 - lda #<$f800 - sta.z memcpy_in_vram.src - lda #>$f800 - sta.z memcpy_in_vram.src+1 - jsr memcpy_in_vram - // vera_layer_mode_tile(1, 0x14000, 0x1F000, 128, 64, 8, 8, 1) - // We copy the 128 character set of 8 bytes each. - lda #8 - sta.z vera_layer_mode_tile.tileheight - sta.z vera_layer_mode_tile.tilewidth - lda #<$1f000 - sta.z vera_layer_mode_tile.tilebase_address - lda #>$1f000 - sta.z vera_layer_mode_tile.tilebase_address+1 - lda #<$1f000>>$10 - sta.z vera_layer_mode_tile.tilebase_address+2 - lda #>$1f000>>$10 - sta.z vera_layer_mode_tile.tilebase_address+3 - lda #<$14000 - sta.z vera_layer_mode_tile.mapbase_address - lda #>$14000 - sta.z vera_layer_mode_tile.mapbase_address+1 - lda #<$14000>>$10 - sta.z vera_layer_mode_tile.mapbase_address+2 - lda #>$14000>>$10 - sta.z vera_layer_mode_tile.mapbase_address+3 - lda #<$40 - sta.z vera_layer_mode_tile.mapheight - lda #>$40 - sta.z vera_layer_mode_tile.mapheight+1 - lda #1 - sta.z vera_layer_mode_tile.layer - lda #<$80 - sta.z vera_layer_mode_tile.mapwidth - lda #>$80 - sta.z vera_layer_mode_tile.mapwidth+1 - jsr vera_layer_mode_tile - // vera_layer_mode_bitmap(0, (dword)0x00000, 320, 8) - jsr vera_layer_mode_bitmap - // screenlayer(1) - jsr screenlayer - // vera_layer_set_textcolor(conio_screen_layer, color) - ldx.z conio_screen_layer - lda #WHITE - jsr vera_layer_set_textcolor - // vera_layer_set_backcolor(conio_screen_layer, color) - ldx.z conio_screen_layer - lda #BLACK - jsr vera_layer_set_backcolor - // clrscr() - jsr clrscr - // gotoxy(0,25) - ldx #$19 - jsr gotoxy - // printf("vera in bitmap mode,\n") - lda #s - sta.z printf_str.s+1 - jsr printf_str - // printf("color depth 8 bits per pixel.\n") - lda #s1 - sta.z printf_str.s+1 - jsr printf_str - // printf("in this mode, it is possible to display\n") - lda #s2 - sta.z printf_str.s+1 - jsr printf_str - // printf("graphics in 256 colors.\n") - lda #s3 - sta.z printf_str.s+1 - jsr printf_str - // *VERA_DC_VIDEO |= vera_layer_enable[layer] - lda VERA_DC_VIDEO - ora vera_layer_enable - sta VERA_DC_VIDEO - // bitmap_init(0, 0x00000) - jsr bitmap_init - // bitmap_clear() - jsr bitmap_clear - // gotoxy(0,29) - ldx #$1d - jsr gotoxy - // vera_layer_set_textcolor(conio_screen_layer, color) - ldx.z conio_screen_layer - lda #YELLOW - jsr vera_layer_set_textcolor - // printf("press a key ...") - lda #s4 - sta.z printf_str.s+1 - jsr printf_str - lda #<1 - sta.z rand_state - lda #>1 - sta.z rand_state+1 - __b1: - // kbhit() - jsr kbhit - // while(!kbhit()) - cmp #0 - bne !__b2+ - jmp __b2 - !__b2: - // vera_layer_set_textcolor(conio_screen_layer, color) - ldx.z conio_screen_layer - lda #WHITE - jsr vera_layer_set_textcolor - // vera_layer_set_backcolor(conio_screen_layer, color) - ldx.z conio_screen_layer - lda #BLACK - jsr vera_layer_set_backcolor - // clrscr() - jsr clrscr - // gotoxy(0,26) - ldx #$1a - jsr gotoxy - // printf("here you see all the colors possible.\n") - lda #s5 - sta.z printf_str.s+1 - jsr printf_str - // gotoxy(0,29) - ldx #$1d - jsr gotoxy - // vera_layer_set_textcolor(conio_screen_layer, color) - ldx.z conio_screen_layer - lda #YELLOW - jsr vera_layer_set_textcolor - // printf("press a key ...") - lda #s4 - sta.z printf_str.s+1 - jsr printf_str - lda #0 - sta.z color - sta.z x - sta.z x+1 - __b3: - // kbhit() - jsr kbhit - // while(!kbhit()) - cmp #0 - beq __b4 - // screenlayer(1) - jsr screenlayer - // vera_layer_set_textcolor(conio_screen_layer, color) - ldx.z conio_screen_layer - lda #WHITE - jsr vera_layer_set_textcolor - // vera_layer_set_backcolor(conio_screen_layer, color) - ldx.z conio_screen_layer - lda #BLUE - jsr vera_layer_set_backcolor - // clrscr() - jsr clrscr - // } - rts - __b4: - // bitmap_line(x, x, 0, 199, color) - lda.z x - sta.z bitmap_line.x0 - lda.z x+1 - sta.z bitmap_line.x0+1 - lda.z x - sta.z bitmap_line.x1 - lda.z x+1 - sta.z bitmap_line.x1+1 - ldx.z color - lda #<$c7 - sta.z bitmap_line.y1 - lda #>$c7 - sta.z bitmap_line.y1+1 - lda #<0 - sta.z bitmap_line.y0 - sta.z bitmap_line.y0+1 - jsr bitmap_line - // color++; - inc.z color - // x++; - inc.z x - bne !+ - inc.z x+1 - !: - // if(x>319) - lda.z x+1 - cmp #>$13f - bne !+ - lda.z x - cmp #<$13f - !: - bcc __b3 - beq __b3 - lda #<0 - sta.z x - sta.z x+1 - jmp __b3 - __b2: - // rand() - jsr rand - // rand() - // modr16u(rand(),320,0) - lda.z rand.return - sta.z modr16u.dividend - lda.z rand.return+1 - sta.z modr16u.dividend+1 - lda #<$140 - sta.z modr16u.divisor - lda #>$140 - sta.z modr16u.divisor+1 - jsr modr16u - // modr16u(rand(),320,0) - // bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&255) - lda.z modr16u.return - sta.z bitmap_line.x0 - lda.z modr16u.return+1 - sta.z bitmap_line.x0+1 - // rand() - jsr rand - // rand() - // modr16u(rand(),320,0) - lda.z rand.return - sta.z modr16u.dividend - lda.z rand.return+1 - sta.z modr16u.dividend+1 - lda #<$140 - sta.z modr16u.divisor - lda #>$140 - sta.z modr16u.divisor+1 - jsr modr16u - // modr16u(rand(),320,0) - // bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&255) - lda.z modr16u.return - sta.z bitmap_line.x1 - lda.z modr16u.return+1 - sta.z bitmap_line.x1+1 - // rand() - jsr rand - // rand() - // modr16u(rand(),200,0) - lda.z rand.return - sta.z modr16u.dividend - lda.z rand.return+1 - sta.z modr16u.dividend+1 - lda #<$c8 - sta.z modr16u.divisor - lda #>$c8 - sta.z modr16u.divisor+1 - jsr modr16u - // modr16u(rand(),200,0) - // bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&255) - lda.z modr16u.return - sta.z bitmap_line.y0 - lda.z modr16u.return+1 - sta.z bitmap_line.y0+1 - // rand() - jsr rand - // rand() - // modr16u(rand(),200,0) - lda.z rand.return - sta.z modr16u.dividend - lda.z rand.return+1 - sta.z modr16u.dividend+1 - lda #<$c8 - sta.z modr16u.divisor - lda #>$c8 - sta.z modr16u.divisor+1 - jsr modr16u - // modr16u(rand(),200,0) - // bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&255) - lda.z modr16u.return - sta.z bitmap_line.y1 - lda.z modr16u.return+1 - sta.z bitmap_line.y1+1 - // rand() - jsr rand - // rand() - // bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&255) - lda #$ff - and.z __40 - tax - jsr bitmap_line - jmp __b1 - .segment Data - s: .text @"vera in bitmap mode,\n" - .byte 0 - s1: .text @"color depth 8 bits per pixel.\n" - .byte 0 - s2: .text @"in this mode, it is possible to display\n" - .byte 0 - s3: .text @"graphics in 256 colors.\n" - .byte 0 - s4: .text "press a key ..." - .byte 0 - s5: .text @"here you see all the colors possible.\n" - .byte 0 -} -.segment Code -// Set a vera layer in text mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_mode: The color mode, which can be 16 or 256. -// void vera_layer_mode_text(char layer, unsigned long mapbase_address, unsigned long tilebase_address, unsigned int mapwidth, unsigned int mapheight, char tilewidth, char tileheight, unsigned int color_mode) -vera_layer_mode_text: { - .const mapbase_address = 0 - .const tilebase_address = $f800 - .const mapwidth = $80 - .const mapheight = $40 - .const tilewidth = 8 - .const tileheight = 8 - .label layer = 1 - // vera_layer_mode_tile( layer, mapbase_address, tilebase_address, mapwidth, mapheight, tilewidth, tileheight, 1 ) - lda #tileheight - sta.z vera_layer_mode_tile.tileheight - lda #tilewidth - sta.z vera_layer_mode_tile.tilewidth - lda #tilebase_address - sta.z vera_layer_mode_tile.tilebase_address+1 - lda #>$10 - sta.z vera_layer_mode_tile.tilebase_address+2 - lda #>tilebase_address>>$10 - sta.z vera_layer_mode_tile.tilebase_address+3 - lda #mapbase_address - sta.z vera_layer_mode_tile.mapbase_address+1 - lda #>$10 - sta.z vera_layer_mode_tile.mapbase_address+2 - lda #>mapbase_address>>$10 - sta.z vera_layer_mode_tile.mapbase_address+3 - lda #mapheight - sta.z vera_layer_mode_tile.mapheight+1 - lda #layer - sta.z vera_layer_mode_tile.layer - lda #mapwidth - sta.z vera_layer_mode_tile.mapwidth+1 - jsr vera_layer_mode_tile - // vera_layer_set_text_color_mode( layer, VERA_LAYER_CONFIG_16C ) - jsr vera_layer_set_text_color_mode - // } - rts -} -// Return the current screen size. -// void screensize(char *x, char *y) -screensize: { - .label x = conio_screen_width - .label y = conio_screen_height - // char hscale = (*VERA_DC_HSCALE) >> 7 - // VERA returns in VERA_DC_HSCALE the value of 128 when 80 columns is used in text mode, - // and the value of 64 when 40 columns is used in text mode. - // Basically, 40 columns mode in the VERA is a double scan mode. - // Same for the VERA_DC_VSCALE mode, but then the subdivision is 60 or 30 rows. - // I still need to test the other modes, but this will suffice for now for the pure text modes. - lda VERA_DC_HSCALE - rol - rol - and #1 - // 40 << hscale - tay - lda #$28 - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // *x = 40 << hscale - sta.z x - // char vscale = (*VERA_DC_VSCALE) >> 7 - lda VERA_DC_VSCALE - rol - rol - and #1 - // 30 << vscale - tay - lda #$1e - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // *y = 30 << vscale - sta.z y - // } - rts -} -// Set the layer with which the conio will interact. -// - layer: value of 0 or 1. -// void screenlayer(char layer) -screenlayer: { - .label __2 = $89 - .label __4 = $7f - .label __5 = $8b - .label vera_layer_get_width1_config = $97 - .label vera_layer_get_width1_return = $89 - .label vera_layer_get_height1_config = $99 - .label vera_layer_get_height1_return = $8b - // conio_screen_layer = layer - lda #1 - sta.z conio_screen_layer - // vera_layer_get_mapbase_bank(conio_screen_layer) - tax - jsr vera_layer_get_mapbase_bank - sta.z CONIO_SCREEN_BANK_1 - // vera_layer_get_mapbase_offset(conio_screen_layer) - lda.z conio_screen_layer - jsr vera_layer_get_mapbase_offset - lda.z vera_layer_get_mapbase_offset.return - sta.z CONIO_SCREEN_TEXT_1 - lda.z vera_layer_get_mapbase_offset.return+1 - sta.z CONIO_SCREEN_TEXT_1+1 - // vera_layer_get_width(conio_screen_layer) - lda.z conio_screen_layer - // byte* config = vera_layer_config[layer] - asl - tay - lda vera_layer_config,y - sta.z vera_layer_get_width1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_width1_config+1 - // *config & VERA_LAYER_WIDTH_MASK - lda #VERA_LAYER_WIDTH_MASK - ldy #0 - and (vera_layer_get_width1_config),y - // (*config & VERA_LAYER_WIDTH_MASK) >> 4 - lsr - lsr - lsr - lsr - // return VERA_LAYER_WIDTH[ (*config & VERA_LAYER_WIDTH_MASK) >> 4]; - asl - tay - lda VERA_LAYER_WIDTH,y - sta.z vera_layer_get_width1_return - lda VERA_LAYER_WIDTH+1,y - sta.z vera_layer_get_width1_return+1 - // } - // vera_layer_get_width(conio_screen_layer) - // conio_width = vera_layer_get_width(conio_screen_layer) - lda.z __2 - sta.z conio_width - lda.z __2+1 - sta.z conio_width+1 - // vera_layer_get_rowshift(conio_screen_layer) - ldx.z conio_screen_layer - jsr vera_layer_get_rowshift - // conio_rowshift = vera_layer_get_rowshift(conio_screen_layer) - sta.z conio_rowshift - // vera_layer_get_rowskip(conio_screen_layer) - lda.z conio_screen_layer - jsr vera_layer_get_rowskip - // conio_rowskip = vera_layer_get_rowskip(conio_screen_layer) - lda.z __4 - sta.z conio_rowskip - lda.z __4+1 - sta.z conio_rowskip+1 - // vera_layer_get_height(conio_screen_layer) - lda.z conio_screen_layer - // byte* config = vera_layer_config[layer] - asl - tay - lda vera_layer_config,y - sta.z vera_layer_get_height1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_height1_config+1 - // *config & VERA_LAYER_HEIGHT_MASK - lda #VERA_LAYER_HEIGHT_MASK - ldy #0 - and (vera_layer_get_height1_config),y - // (*config & VERA_LAYER_HEIGHT_MASK) >> 6 - rol - rol - rol - and #3 - // return VERA_LAYER_HEIGHT[ (*config & VERA_LAYER_HEIGHT_MASK) >> 6]; - asl - tay - lda VERA_LAYER_HEIGHT,y - sta.z vera_layer_get_height1_return - lda VERA_LAYER_HEIGHT+1,y - sta.z vera_layer_get_height1_return+1 - // } - // vera_layer_get_height(conio_screen_layer) - // conio_height = vera_layer_get_height(conio_screen_layer) - lda.z __5 - sta.z conio_height - lda.z __5+1 - sta.z conio_height+1 - // } - rts -} -// Set the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15) when the VERA works in 16x16 color text mode. -// An 8 bit value (decimal between 0 and 255) when the VERA works in 256 text mode. -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_textcolor(__register(X) char layer, __register(A) char color) -vera_layer_set_textcolor: { - // vera_layer_textcolor[layer] = color - sta vera_layer_textcolor,x - // } - rts -} -// Set the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_backcolor(__register(X) char layer, __register(A) char color) -vera_layer_set_backcolor: { - // vera_layer_backcolor[layer] = color - sta vera_layer_backcolor,x - // } - rts -} -// Set the base of the map layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - mapbase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// void vera_layer_set_mapbase(__register(A) char layer, __register(X) char mapbase) -vera_layer_set_mapbase: { - .label addr = $25 - // byte* addr = vera_layer_mapbase[layer] - asl - tay - lda vera_layer_mapbase,y - sta.z addr - lda vera_layer_mapbase+1,y - sta.z addr+1 - // *addr = mapbase - txa - ldy #0 - sta (addr),y - // } - rts -} -// Set the cursor to the specified position -// void gotoxy(char x, __register(X) char y) -gotoxy: { - .label __6 = $25 - .label line_offset = $25 - // if(y>CONIO_HEIGHT) - lda.z conio_screen_height - stx.z $ff - cmp.z $ff - bcs __b1 - ldx #0 - __b1: - // if(x>=CONIO_WIDTH) - lda.z conio_screen_width - // conio_cursor_x[conio_screen_layer] = x - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // conio_cursor_y[conio_screen_layer] = y - txa - sta conio_cursor_y,y - // unsigned int line_offset = (unsigned int)y << conio_rowshift - txa - sta.z __6 - lda #0 - sta.z __6+1 - ldy.z conio_rowshift - beq !e+ - !: - asl.z line_offset - rol.z line_offset+1 - dey - bne !- - !e: - // conio_line_text[conio_screen_layer] = line_offset - lda.z conio_screen_layer - asl - tay - lda.z line_offset - sta conio_line_text,y - lda.z line_offset+1 - sta conio_line_text+1,y - // } - rts -} -// Get the text and back color for text output in 16 color mode. -// - layer: Value of 0 or 1. -// - return: an 8 bit value with bit 7:4 containing the back color and bit 3:0 containing the front color. -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_color(__register(X) char layer) -vera_layer_get_color: { - .label addr = 6 - // byte* addr = vera_layer_config[layer] - txa - asl - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // *addr & VERA_LAYER_CONFIG_256C - lda #VERA_LAYER_CONFIG_256C - ldy #0 - and (addr),y - // if( *addr & VERA_LAYER_CONFIG_256C ) - cmp #0 - bne __b1 - // vera_layer_backcolor[layer] << 4 - lda vera_layer_backcolor,x - asl - asl - asl - asl - // return ((vera_layer_backcolor[layer] << 4) | vera_layer_textcolor[layer]); - ora vera_layer_textcolor,x - // } - rts - __b1: - // return (vera_layer_textcolor[layer]); - lda vera_layer_textcolor,x - rts -} -// Print a newline -cputln: { - .label temp = 6 - // word temp = conio_line_text[conio_screen_layer] - lda.z conio_screen_layer - asl - // TODO: This needs to be optimized! other variations don't compile because of sections not available! - tay - lda conio_line_text,y - sta.z temp - lda conio_line_text+1,y - sta.z temp+1 - // temp += conio_rowskip - clc - lda.z temp - adc.z conio_rowskip - sta.z temp - lda.z temp+1 - adc.z conio_rowskip+1 - sta.z temp+1 - // conio_line_text[conio_screen_layer] = temp - lda.z conio_screen_layer - asl - tay - lda.z temp - sta conio_line_text,y - lda.z temp+1 - sta conio_line_text+1,y - // conio_cursor_x[conio_screen_layer] = 0 - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // conio_cursor_y[conio_screen_layer]++; - ldx.z conio_screen_layer - inc conio_cursor_y,x - // cscroll() - jsr cscroll - // } - rts -} -// Copy block of memory (from VRAM to VRAM) -// Copies the values from the location pointed by src to the location pointed by dest. -// The method uses the VERA access ports 0 and 1 to copy data from and to in VRAM. -// - src_bank: 64K VRAM bank number to copy from (0/1). -// - src: pointer to the location to copy from. Note that the address is a 16 bit value! -// - src_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -// - dest_bank: 64K VRAM bank number to copy to (0/1). -// - dest: pointer to the location to copy to. Note that the address is a 16 bit value! -// - dest_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -// - num: The number of bytes to copy -// void memcpy_in_vram(__register(Y) char dest_bank, __zp($a) void *dest, char dest_increment, char src_bank, __zp(6) char *src, char src_increment, __zp(8) unsigned int num) -memcpy_in_vram: { - .label i = 2 - .label dest = $a - .label src = 6 - .label num = 8 - // *VERA_CTRL &= ~VERA_ADDRSEL - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(src) - lda.z src - // *VERA_ADDRX_L = BYTE0(src) - // Set address - sta VERA_ADDRX_L - // BYTE1(src) - lda.z src+1 - // *VERA_ADDRX_M = BYTE1(src) - sta VERA_ADDRX_M - // *VERA_ADDRX_H = src_increment | src_bank - lda #VERA_INC_1 - sta VERA_ADDRX_H - // *VERA_CTRL |= VERA_ADDRSEL - // Select DATA1 - lda #VERA_ADDRSEL - ora VERA_CTRL - sta VERA_CTRL - // BYTE0(dest) - lda.z dest - // *VERA_ADDRX_L = BYTE0(dest) - // Set address - sta VERA_ADDRX_L - // BYTE1(dest) - lda.z dest+1 - // *VERA_ADDRX_M = BYTE1(dest) - sta VERA_ADDRX_M - // dest_increment | dest_bank - tya - ora #VERA_INC_1 - // *VERA_ADDRX_H = dest_increment | dest_bank - sta VERA_ADDRX_H - lda #<0 - sta.z i - sta.z i+1 - // Transfer the data - __b1: - // for(unsigned int i=0; i$100 - bne __b1 - lda.z mapwidth - cmp #<$100 - bne __b1 - // vera_layer_rowshift[layer] = 9 - lda #9 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 512 - tya - asl - tay - lda #<$200 - sta vera_layer_rowskip,y - lda #>$200 - sta vera_layer_rowskip+1,y - ldx #VERA_LAYER_WIDTH_256 - jmp __b9 - __b1: - ldx #VERA_LAYER_COLOR_DEPTH_1BPP - __b9: - // case 32: - // config |= VERA_LAYER_HEIGHT_32; - // break; - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$20 - beq __b16 - !: - // case 64: - // config |= VERA_LAYER_HEIGHT_64; - // break; - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$40 - bne !__b13+ - jmp __b13 - !__b13: - !: - // case 128: - // config |= VERA_LAYER_HEIGHT_128; - // break; - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$80 - bne !__b14+ - jmp __b14 - !__b14: - !: - // case 256: - // config |= VERA_LAYER_HEIGHT_256; - // break; - lda.z mapheight+1 - cmp #>$100 - bne __b16 - lda.z mapheight - cmp #<$100 - bne __b16 - // config |= VERA_LAYER_HEIGHT_256 - txa - ora #VERA_LAYER_HEIGHT_256 - tax - __b16: - // vera_layer_set_config(layer, config) - lda.z layer - jsr vera_layer_set_config - // WORD0(mapbase_address) - lda.z mapbase_address - sta.z __1 - lda.z mapbase_address+1 - sta.z __1+1 - // vera_mapbase_offset[layer] = WORD0(mapbase_address) - lda.z layer - asl - sta.z __17 - // mapbase - tay - lda.z __1 - sta vera_mapbase_offset,y - lda.z __1+1 - sta vera_mapbase_offset+1,y - // BYTE2(mapbase_address) - lda.z mapbase_address+2 - // vera_mapbase_bank[layer] = BYTE2(mapbase_address) - ldy.z layer - sta vera_mapbase_bank,y - // vera_mapbase_address[layer] = mapbase_address - tya - asl - asl - sta.z __18 - tay - lda.z mapbase_address - sta vera_mapbase_address,y - lda.z mapbase_address+1 - sta vera_mapbase_address+1,y - lda.z mapbase_address+2 - sta vera_mapbase_address+2,y - lda.z mapbase_address+3 - sta vera_mapbase_address+3,y - // mapbase_address = mapbase_address >> 1 - lsr.z mapbase_address+3 - ror.z mapbase_address+2 - ror.z mapbase_address+1 - ror.z mapbase_address - // byte mapbase = BYTE1(mapbase_address) - ldx.z mapbase_address+1 - // vera_layer_set_mapbase(layer,mapbase) - lda.z layer - jsr vera_layer_set_mapbase - // WORD0(tilebase_address) - lda.z tilebase_address - sta.z __6 - lda.z tilebase_address+1 - sta.z __6+1 - // vera_tilebase_offset[layer] = WORD0(tilebase_address) - // tilebase - ldy.z __17 - lda.z __6 - sta vera_tilebase_offset,y - lda.z __6+1 - sta vera_tilebase_offset+1,y - // BYTE2(tilebase_address) - lda.z tilebase_address+2 - // vera_tilebase_bank[layer] = BYTE2(tilebase_address) - ldy.z layer - sta vera_tilebase_bank,y - // vera_tilebase_address[layer] = tilebase_address - ldy.z __18 - lda.z tilebase_address - sta vera_tilebase_address,y - lda.z tilebase_address+1 - sta vera_tilebase_address+1,y - lda.z tilebase_address+2 - sta vera_tilebase_address+2,y - lda.z tilebase_address+3 - sta vera_tilebase_address+3,y - // tilebase_address = tilebase_address >> 1 - lsr.z tilebase_address+3 - ror.z tilebase_address+2 - ror.z tilebase_address+1 - ror.z tilebase_address - // byte tilebase = BYTE1(tilebase_address) - lda.z tilebase_address+1 - // tilebase &= VERA_LAYER_TILEBASE_MASK - and #VERA_LAYER_TILEBASE_MASK - tax - // case 8: - // tilebase |= VERA_TILEBASE_WIDTH_8; - // break; - lda #8 - cmp.z tilewidth - beq __b19 - // case 16: - // tilebase |= VERA_TILEBASE_WIDTH_16; - // break; - lda #$10 - cmp.z tilewidth - bne __b19 - // tilebase |= VERA_TILEBASE_WIDTH_16 - txa - ora #VERA_TILEBASE_WIDTH_16 - tax - __b19: - // case 8: - // tilebase |= VERA_TILEBASE_HEIGHT_8; - // break; - lda #8 - cmp.z tileheight - beq __b22 - // case 16: - // tilebase |= VERA_TILEBASE_HEIGHT_16; - // break; - lda #$10 - cmp.z tileheight - bne __b22 - // tilebase |= VERA_TILEBASE_HEIGHT_16 - txa - ora #VERA_TILEBASE_HEIGHT_16 - tax - __b22: - // vera_layer_set_tilebase(layer,tilebase) - lda.z layer - jsr vera_layer_set_tilebase - // } - rts - __b14: - // config |= VERA_LAYER_HEIGHT_128 - txa - ora #VERA_LAYER_HEIGHT_128 - tax - jmp __b16 - __b13: - // config |= VERA_LAYER_HEIGHT_64 - txa - ora #VERA_LAYER_HEIGHT_64 - tax - jmp __b16 - __b7: - // vera_layer_rowshift[layer] = 8 - lda #8 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 256 - tya - asl - tay - lda #<$100 - sta vera_layer_rowskip,y - lda #>$100 - sta vera_layer_rowskip+1,y - ldx #VERA_LAYER_WIDTH_128 - jmp __b9 - __b6: - // vera_layer_rowshift[layer] = 7 - lda #7 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 128 - tya - asl - tay - lda #$80 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - ldx #VERA_LAYER_WIDTH_64 - jmp __b9 - __b5: - // vera_layer_rowshift[layer] = 6 - lda #6 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 64 - tya - asl - tay - lda #$40 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - jmp __b1 -} -// Set a vera layer in bitmap mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_mode: The color mode, which can be 16 or 256. -// void vera_layer_mode_bitmap(char layer, unsigned long bitmap_address, unsigned int mapwidth, unsigned int color_depth) -vera_layer_mode_bitmap: { - .const layer = 0 - .const bitmap_address = 0 - // config - .const config = VERA_LAYER_COLOR_DEPTH_8BPP|VERA_LAYER_CONFIG_MODE_BITMAP - .const tilebase = 0 - // vera_tilebase_offset[layer] = WORD0(bitmap_address) - // tilebase - lda #<0 - sta vera_tilebase_offset - sta vera_tilebase_offset+1 - // vera_tilebase_bank[layer] = BYTE2(bitmap_address) - sta vera_tilebase_bank - // vera_tilebase_address[layer] = bitmap_address - lda #bitmap_address - sta vera_tilebase_address+1 - lda #>$10 - sta vera_tilebase_address+2 - lda #>bitmap_address>>$10 - sta vera_tilebase_address+3 - // *VERA_DC_HSCALE = 64 - lda #$40 - sta VERA_DC_HSCALE - // *VERA_DC_VSCALE = 64 - sta VERA_DC_VSCALE - // vera_layer_set_config(layer, config) - ldx #config - lda #layer - jsr vera_layer_set_config - // vera_layer_set_tilebase(layer,tilebase) - ldx #tilebase - lda #layer - jsr vera_layer_set_tilebase - // } - rts -} -// clears the screen and moves the cursor to the upper left-hand corner of the screen. -clrscr: { - .label __1 = $87 - .label line_text = $70 - .label color = $87 - // char* line_text = CONIO_SCREEN_TEXT - lda.z CONIO_SCREEN_TEXT_1 - sta.z line_text - lda.z CONIO_SCREEN_TEXT_1+1 - sta.z line_text+1 - // vera_layer_get_backcolor(conio_screen_layer) - ldx.z conio_screen_layer - jsr vera_layer_get_backcolor - // vera_layer_get_backcolor(conio_screen_layer) << 4 - asl - asl - asl - asl - sta.z __1 - // vera_layer_get_textcolor(conio_screen_layer) - ldx.z conio_screen_layer - jsr vera_layer_get_textcolor - // char color = ( vera_layer_get_backcolor(conio_screen_layer) << 4 ) | vera_layer_get_textcolor(conio_screen_layer) - ora.z color - sta.z color - ldx #0 - __b1: - // for( char l=0;laddress - sta.z __bitmap_address+1 - lda #
>$10 - sta.z __bitmap_address+2 - lda #>address>>$10 - sta.z __bitmap_address+3 - // __bitmap_layer = layer - lda #layer - sta.z __bitmap_layer - // vera_layer_get_color_depth(__bitmap_layer) - // byte* config = vera_layer_config[layer] - asl - tay - lda vera_layer_config,y - sta.z vera_layer_get_color_depth1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_color_depth1_config+1 - // *config & VERA_LAYER_COLOR_DEPTH_MASK - lda #VERA_LAYER_COLOR_DEPTH_MASK - ldy #0 - and (vera_layer_get_color_depth1_config),y - // return (*config & VERA_LAYER_COLOR_DEPTH_MASK); - // } - // vera_layer_get_color_depth(__bitmap_layer) - // __bitmap_color_depth = vera_layer_get_color_depth(__bitmap_layer) - sta.z __bitmap_color_depth - // vera_display_get_hscale() - jsr vera_display_get_hscale - // vera_display_get_hscale() - // __bitmap_hscale = vera_display_get_hscale() - stx.z __bitmap_hscale - // vera_display_get_vscale() - jsr vera_display_get_vscale - // vera_display_get_vscale() - // __bitmap_vscale = vera_display_get_vscale() - // Returns 1 when 640 and 2 when 320. - stx.z __bitmap_vscale - // byte bitmask = bitmasks[__bitmap_color_depth] - // Returns 1 when 480 and 2 when 240. - ldy.z __bitmap_color_depth - lda bitmasks,y - sta.z bitmask - // signed byte bitshift = bitshifts[__bitmap_color_depth] - lda bitshifts,y - sta.z bitshift - lda #<0 - sta.z x - sta.z x+1 - __b1: - // if(__bitmap_color_depth==0) - lda.z __bitmap_color_depth - bne __b2 - // x >> 3 - lda.z x+1 - lsr - sta.z __7+1 - lda.z x - ror - sta.z __7 - lsr.z __7+1 - ror.z __7 - lsr.z __7+1 - ror.z __7 - // __bitmap_plot_x[x] = (x >> 3) - lda.z x - asl - sta.z __23 - lda.z x+1 - rol - sta.z __23+1 - lda.z __29 - clc - adc #<__bitmap_plot_x - sta.z __29 - lda.z __29+1 - adc #>__bitmap_plot_x - sta.z __29+1 - ldy #0 - lda.z __7 - sta (__29),y - iny - lda.z __7+1 - sta (__29),y - // __bitmap_plot_bitmask[x] = bitmask - lda.z x - clc - adc #<__bitmap_plot_bitmask - sta.z __30 - lda.z x+1 - adc #>__bitmap_plot_bitmask - sta.z __30+1 - lda.z bitmask - ldy #0 - sta (__30),y - // __bitmap_plot_bitshift[x] = (byte)bitshift - lda.z x - clc - adc #<__bitmap_plot_bitshift - sta.z __31 - lda.z x+1 - adc #>__bitmap_plot_bitshift - sta.z __31+1 - lda.z bitshift - sta (__31),y - // bitshift -= 1 - dec.z bitshift - // bitmask >>= 1 - lsr.z bitmask - __b2: - // if(__bitmap_color_depth==1) - lda #1 - cmp.z __bitmap_color_depth - bne __b3 - // x >> 2 - lda.z x+1 - lsr - sta.z __10+1 - lda.z x - ror - sta.z __10 - lsr.z __10+1 - ror.z __10 - // __bitmap_plot_x[x] = (x >> 2) - lda.z x - asl - sta.z __24 - lda.z x+1 - rol - sta.z __24+1 - lda.z __32 - clc - adc #<__bitmap_plot_x - sta.z __32 - lda.z __32+1 - adc #>__bitmap_plot_x - sta.z __32+1 - ldy #0 - lda.z __10 - sta (__32),y - iny - lda.z __10+1 - sta (__32),y - // __bitmap_plot_bitmask[x] = bitmask - lda.z x - clc - adc #<__bitmap_plot_bitmask - sta.z __33 - lda.z x+1 - adc #>__bitmap_plot_bitmask - sta.z __33+1 - lda.z bitmask - ldy #0 - sta (__33),y - // __bitmap_plot_bitshift[x] = (byte)bitshift - lda.z x - clc - adc #<__bitmap_plot_bitshift - sta.z __34 - lda.z x+1 - adc #>__bitmap_plot_bitshift - sta.z __34+1 - lda.z bitshift - sta (__34),y - // bitshift -= 2 - dec.z bitshift - dec.z bitshift - // bitmask >>= 2 - lda.z bitmask - lsr - lsr - sta.z bitmask - __b3: - // if(__bitmap_color_depth==2) - lda #2 - cmp.z __bitmap_color_depth - bne __b4 - // x >> 1 - lda.z x+1 - lsr - sta.z __13+1 - lda.z x - ror - sta.z __13 - // __bitmap_plot_x[x] = (x >> 1) - lda.z x - asl - sta.z __25 - lda.z x+1 - rol - sta.z __25+1 - lda.z __35 - clc - adc #<__bitmap_plot_x - sta.z __35 - lda.z __35+1 - adc #>__bitmap_plot_x - sta.z __35+1 - ldy #0 - lda.z __13 - sta (__35),y - iny - lda.z __13+1 - sta (__35),y - // __bitmap_plot_bitmask[x] = bitmask - lda.z x - clc - adc #<__bitmap_plot_bitmask - sta.z __36 - lda.z x+1 - adc #>__bitmap_plot_bitmask - sta.z __36+1 - lda.z bitmask - ldy #0 - sta (__36),y - // __bitmap_plot_bitshift[x] = (byte)bitshift - lda.z x - clc - adc #<__bitmap_plot_bitshift - sta.z __37 - lda.z x+1 - adc #>__bitmap_plot_bitshift - sta.z __37+1 - lda.z bitshift - sta (__37),y - // bitshift -= 4 - sec - sbc #4 - sta.z bitshift - // bitmask >>= 4 - lda.z bitmask - lsr - lsr - lsr - lsr - sta.z bitmask - __b4: - // if(__bitmap_color_depth==3) - lda #3 - cmp.z __bitmap_color_depth - bne __b5 - // __bitmap_plot_x[x] = x - lda.z x - asl - sta.z __26 - lda.z x+1 - rol - sta.z __26+1 - lda.z __38 - clc - adc #<__bitmap_plot_x - sta.z __38 - lda.z __38+1 - adc #>__bitmap_plot_x - sta.z __38+1 - ldy #0 - lda.z x - sta (__38),y - iny - lda.z x+1 - sta (__38),y - // __bitmap_plot_bitmask[x] = bitmask - lda.z x - clc - adc #<__bitmap_plot_bitmask - sta.z __39 - lda.z x+1 - adc #>__bitmap_plot_bitmask - sta.z __39+1 - lda.z bitmask - ldy #0 - sta (__39),y - // __bitmap_plot_bitshift[x] = (byte)bitshift - lda.z x - clc - adc #<__bitmap_plot_bitshift - sta.z __40 - lda.z x+1 - adc #>__bitmap_plot_bitshift - sta.z __40+1 - lda.z bitshift - sta (__40),y - __b5: - // if(bitshift<0) - lda.z bitshift - cmp #0 - bpl __b6 - // bitshift = bitshifts[__bitmap_color_depth] - ldy.z __bitmap_color_depth - lda bitshifts,y - sta.z bitshift - __b6: - // if(bitmask==0) - lda.z bitmask - bne __b7 - // bitmask = bitmasks[__bitmap_color_depth] - ldy.z __bitmap_color_depth - lda bitmasks,y - sta.z bitmask - __b7: - // for(word x : 0..639) - inc.z x - bne !+ - inc.z x+1 - !: - lda.z x+1 - cmp #>$280 - beq !__b1+ - jmp __b1 - !__b1: - lda.z x - cmp #<$280 - beq !__b1+ - jmp __b1 - !__b1: - // __bitmap_color_depth<<2 - lda.z __bitmap_color_depth - asl - asl - // (__bitmap_color_depth<<2)+__bitmap_hscale - clc - adc.z __bitmap_hscale - // word hdelta = hdeltas[(__bitmap_color_depth<<2)+__bitmap_hscale] - asl - // This sets the right delta to skip a whole line based on the scale, depending on the color depth. - tay - lda hdeltas,y - sta.z hdelta - lda hdeltas+1,y - sta.z hdelta+1 - // dword yoffs = __bitmap_address - // We start at the bitmap address; The plot_y contains the bitmap address embedded so we know where a line starts. - lda.z __bitmap_address - sta.z yoffs - lda.z __bitmap_address+1 - sta.z yoffs+1 - lda.z __bitmap_address+2 - sta.z yoffs+2 - lda.z __bitmap_address+3 - sta.z yoffs+3 - lda #<0 - sta.z y - sta.z y+1 - __b15: - // __bitmap_plot_y[y] = yoffs - lda.z y - asl - sta.z __28 - lda.z y+1 - rol - sta.z __28+1 - asl.z __28 - rol.z __28+1 - lda.z __41 - clc - adc #<__bitmap_plot_y - sta.z __41 - lda.z __41+1 - adc #>__bitmap_plot_y - sta.z __41+1 - ldy #0 - lda.z yoffs - sta (__41),y - iny - lda.z yoffs+1 - sta (__41),y - iny - lda.z yoffs+2 - sta (__41),y - iny - lda.z yoffs+3 - sta (__41),y - // yoffs = yoffs + hdelta - lda.z yoffs - clc - adc.z hdelta - sta.z yoffs - lda.z yoffs+1 - adc.z hdelta+1 - sta.z yoffs+1 - lda.z yoffs+2 - adc #0 - sta.z yoffs+2 - lda.z yoffs+3 - adc #0 - sta.z yoffs+3 - // for(word y : 0..479) - inc.z y - bne !+ - inc.z y+1 - !: - lda.z y+1 - cmp #>$1e0 - bne __b15 - lda.z y - cmp #<$1e0 - bne __b15 - // } - rts -} -// Clear all graphics on the bitmap -bitmap_clear: { - .label vdelta = $a1 - .label hdelta = $9d - .label count = $72 - .label vdest = $91 - // word vdelta = vdeltas[__bitmap_vscale] - lda.z __bitmap_vscale - asl - tay - lda vdeltas,y - sta.z vdelta - lda vdeltas+1,y - sta.z vdelta+1 - // __bitmap_color_depth<<2 - lda.z __bitmap_color_depth - asl - asl - // (__bitmap_color_depth<<2)+__bitmap_hscale - clc - adc.z __bitmap_hscale - // word hdelta = hdeltas[(__bitmap_color_depth<<2)+__bitmap_hscale] - asl - tay - lda hdeltas,y - sta.z hdelta - lda hdeltas+1,y - sta.z hdelta+1 - // dword count = mul16u(hdelta,vdelta) - lda.z hdelta - sta.z mul16u.a - lda.z hdelta+1 - sta.z mul16u.a+1 - jsr mul16u - lda.z mul16u.res - sta.z mul16u.return - lda.z mul16u.res+1 - sta.z mul16u.return+1 - lda.z mul16u.res+2 - sta.z mul16u.return+2 - lda.z mul16u.res+3 - sta.z mul16u.return+3 - // char vbank = BYTE2(__bitmap_address) - ldx.z __bitmap_address+2 - // WORD0(__bitmap_address) - lda.z __bitmap_address - sta.z vdest - lda.z __bitmap_address+1 - sta.z vdest+1 - // memset_vram(vbank, vdest, 0, count) - jsr memset_vram - // } - rts -} -// Return true if there's a key waiting, return false if not -kbhit: { - .label chptr = ch - .label IN_DEV = $28a - // Current input device number - .label GETIN = $ffe4 - .label ch = $32 - // char ch = 0 - lda #0 - sta.z ch - // kickasm - // CBM GETIN API - jsr _kbhit - bne L3 - - jmp continue1 - - .var via1 = $9f60 //VIA#1 - .var d1pra = via1+1 - - _kbhit: - ldy d1pra // The count of keys pressed is stored in RAM bank 0. - stz d1pra // Set d1pra to zero to access RAM bank 0. - lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). - sty d1pra // Set d1pra to previous value. - rts - - L3: - ldy IN_DEV // Save current input device - stz IN_DEV // Keyboard - phy - jsr GETIN // Read char, and return in .A - ply - sta chptr // Store the character read in ch - sty IN_DEV // Restore input device - ldx #>$0000 - rts - - continue1: - nop - - // return ch; - lda.z ch - // } - rts -} -// Draw a line on the bitmap -// void bitmap_line(__zp(6) unsigned int x0, __zp($a) unsigned int x1, __zp(8) unsigned int y0, __zp(2) unsigned int y1, __register(X) char c) -bitmap_line: { - .label xd = $22 - .label yd = $29 - .label yd_1 = $27 - .label x0 = 6 - .label x1 = $a - .label y0 = 8 - .label y1 = 2 - // if(x0> 9 - lsr - sta.z __1 - lda #0 - sta.z __1+1 - // rand_state ^= rand_state >> 9 - lda.z rand_state - eor.z __1 - sta.z rand_state - lda.z rand_state+1 - eor.z __1+1 - sta.z rand_state+1 - // rand_state << 8 - lda.z rand_state - sta.z __2+1 - lda #0 - sta.z __2 - // rand_state ^= rand_state << 8 - lda.z rand_state - eor.z __2 - sta.z rand_state - lda.z rand_state+1 - eor.z __2+1 - sta.z rand_state+1 - // return rand_state; - lda.z rand_state - sta.z return - lda.z rand_state+1 - sta.z return+1 - // } - rts -} -// Performs modulo on two 16 bit unsigned ints and an initial remainder -// Returns the remainder. -// Implemented using simple binary division -// __zp($76) unsigned int modr16u(__zp(2) unsigned int dividend, __zp($8f) unsigned int divisor, unsigned int rem) -modr16u: { - .label return = $76 - .label dividend = 2 - .label divisor = $8f - // divr16u(dividend, divisor, rem) - lda.z divisor - sta.z divr16u.divisor - lda.z divisor+1 - sta.z divr16u.divisor+1 - jsr divr16u - // return rem16u; - lda.z rem16u - sta.z return - lda.z rem16u+1 - sta.z return+1 - // } - rts -} -// Set the configuration of the layer text color mode. -// - layer: Value of 0 or 1. -// - color_mode: Specifies the color mode to be VERA_LAYER_CONFIG_16 or VERA_LAYER_CONFIG_256 for text mode. -// void vera_layer_set_text_color_mode(char layer, char color_mode) -vera_layer_set_text_color_mode: { - .label addr = $25 - // byte* addr = vera_layer_config[layer] - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER - sta.z addr - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER+1 - sta.z addr+1 - // *addr &= ~VERA_LAYER_CONFIG_256C - lda #VERA_LAYER_CONFIG_256C^$ff - ldy #0 - and (addr),y - sta (addr),y - // *addr |= color_mode - lda (addr),y - sta (addr),y - // } - rts -} -// Get the map base bank of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Bank in vera vram. -// __register(A) char vera_layer_get_mapbase_bank(__register(X) char layer) -vera_layer_get_mapbase_bank: { - // return vera_mapbase_bank[layer]; - lda vera_mapbase_bank,x - // } - rts -} -// Get the map base lower 16-bit address (offset) of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Offset in vera vram of the specified bank. -// __zp($8d) unsigned int vera_layer_get_mapbase_offset(__register(A) char layer) -vera_layer_get_mapbase_offset: { - .label return = $8d - // return vera_mapbase_offset[layer]; - asl - tay - lda vera_mapbase_offset,y - sta.z return - lda vera_mapbase_offset+1,y - sta.z return+1 - // } - rts -} -// Get the bit shift value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Rowshift value to calculate fast from a y value to line offset in tile mode. -// __register(A) char vera_layer_get_rowshift(__register(X) char layer) -vera_layer_get_rowshift: { - // return vera_layer_rowshift[layer]; - lda vera_layer_rowshift,x - // } - rts -} -// Get the value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Skip value to calculate fast from a y value to line offset in tile mode. -// __zp($7f) unsigned int vera_layer_get_rowskip(__register(A) char layer) -vera_layer_get_rowskip: { - .label return = $7f - // return vera_layer_rowskip[layer]; - asl - tay - lda vera_layer_rowskip,y - sta.z return - lda vera_layer_rowskip+1,y - sta.z return+1 - // } - rts -} -// Scroll the entire screen if the cursor is beyond the last line -cscroll: { - // if(conio_cursor_y[conio_screen_layer]>=CONIO_HEIGHT) - ldy.z conio_screen_layer - lda conio_cursor_y,y - cmp.z conio_screen_height - bcc __b3 - // if(conio_scroll_enable[conio_screen_layer]) - lda conio_scroll_enable,y - cmp #0 - bne __b4 - // if(conio_cursor_y[conio_screen_layer]>=conio_height) - lda conio_cursor_y,y - ldy.z conio_height+1 - bne __b3 - cmp.z conio_height - __b3: - // } - rts - __b4: - // insertup() - jsr insertup - // gotoxy( 0, CONIO_HEIGHT-1) - ldx.z conio_screen_height - dex - jsr gotoxy - rts -} -// Set the configuration of the layer. -// - layer: Value of 0 or 1. -// - config: Specifies the modes which are specified using T256C / 'Bitmap Mode' / 'Color Depth'. -// void vera_layer_set_config(__register(A) char layer, __register(X) char config) -vera_layer_set_config: { - .label addr = $25 - // byte* addr = vera_layer_config[layer] - asl - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // *addr = config - txa - ldy #0 - sta (addr),y - // } - rts -} -// Set the base of the tiles for the layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - tilebase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// void vera_layer_set_tilebase(__register(A) char layer, __register(X) char tilebase) -vera_layer_set_tilebase: { - .label addr = $25 - // byte* addr = vera_layer_tilebase[layer] - asl - tay - lda vera_layer_tilebase,y - sta.z addr - lda vera_layer_tilebase+1,y - sta.z addr+1 - // *addr = tilebase - txa - ldy #0 - sta (addr),y - // } - rts -} -// Get the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_backcolor(__register(X) char layer) -vera_layer_get_backcolor: { - // return vera_layer_backcolor[layer]; - lda vera_layer_backcolor,x - // } - rts -} -// Get the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_textcolor(__register(X) char layer) -vera_layer_get_textcolor: { - // return vera_layer_textcolor[layer]; - lda vera_layer_textcolor,x - // } - rts -} -vera_display_get_hscale: { - .const scale = 0 - ldx #1 - __b1: - // if(*VERA_DC_HSCALE==hscale[s]) - lda hscale,x - cmp VERA_DC_HSCALE - bne __b2 - rts - __b2: - // for(byte s:1..3) - inx - cpx #4 - bne __b1 - ldx #scale - // } - rts - .segment Data - hscale: .byte 0, $80, $40, $20 -} -.segment Code -vera_display_get_vscale: { - .const scale = 0 - ldx #1 - __b1: - // if(*VERA_DC_VSCALE==vscale[s]) - lda vscale,x - cmp VERA_DC_VSCALE - bne __b2 - rts - __b2: - // for(byte s:1..3) - inx - cpx #4 - bne __b1 - ldx #scale - // } - rts - .segment Data - vscale: .byte 0, $80, $40, $20 -} -.segment Code -// Perform binary multiplication of two unsigned 16-bit unsigned ints into a 32-bit unsigned long -// __zp($72) unsigned long mul16u(__zp(2) unsigned int a, __zp($a1) unsigned int b) -mul16u: { - .label a = 2 - .label b = $a1 - .label return = $72 - .label mb = $1a - .label res = $10 - // unsigned long mb = b - lda.z b - sta.z mb - lda.z b+1 - sta.z mb+1 - lda #0 - sta.z mb+2 - sta.z mb+3 - sta.z res - sta.z res+1 - lda #<0>>$10 - sta.z res+2 - lda #>0>>$10 - sta.z res+3 - __b1: - // while(a!=0) - lda.z a - ora.z a+1 - bne __b2 - // } - rts - __b2: - // a&1 - lda #1 - and.z a - // if( (a&1) != 0) - cmp #0 - beq __b3 - // res = res + mb - clc - lda.z res - adc.z mb - sta.z res - lda.z res+1 - adc.z mb+1 - sta.z res+1 - lda.z res+2 - adc.z mb+2 - sta.z res+2 - lda.z res+3 - adc.z mb+3 - sta.z res+3 - __b3: - // a = a>>1 - lsr.z a+1 - ror.z a - // mb = mb<<1 - asl.z mb - rol.z mb+1 - rol.z mb+2 - rol.z mb+3 - jmp __b1 -} -// Set block of memory to a value in VRAM. -// Sets num bytes to a value to the memory block pointed to by destination in VRAM. -// - vbank: Which 64K VRAM bank to put data into (0/1) -// - vdest: The destination address in VRAM -// - data: The value to set the vram with. -// - num: The number of bytes to set -// void memset_vram(__register(X) char vbank, __zp($91) void *vdest, char data, __zp($72) unsigned long num) -memset_vram: { - .const data = 0 - .label i = $10 - .label vdest = $91 - .label num = $72 - // *VERA_CTRL &= ~VERA_ADDRSEL - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(vdest) - lda.z vdest - // *VERA_ADDRX_L = BYTE0(vdest) - // Set address - sta VERA_ADDRX_L - // BYTE1(vdest) - lda.z vdest+1 - // *VERA_ADDRX_M = BYTE1(vdest) - sta VERA_ADDRX_M - // VERA_INC_1 | vbank - txa - ora #VERA_INC_1 - // *VERA_ADDRX_H = VERA_INC_1 | vbank - sta VERA_ADDRX_H - lda #<0 - sta.z i - sta.z i+1 - lda #<0>>$10 - sta.z i+2 - lda #>0>>$10 - sta.z i+3 - // Transfer the data - __b1: - // for(unsigned long i = 0; i>1 - lda.z xd+1 - lsr - sta.z e+1 - lda.z xd - ror - sta.z e - __b1: - // bitmap_plot(x,y,c) - lda.z x - sta.z bitmap_plot.x - lda.z x+1 - sta.z bitmap_plot.x+1 - ldx.z c - jsr bitmap_plot - // y++; - inc.z y - bne !+ - inc.z y+1 - !: - // e = e+xd - clc - lda.z e - adc.z xd - sta.z e - lda.z e+1 - adc.z xd+1 - sta.z e+1 - // if(yd>1 - lda.z yd+1 - lsr - sta.z e+1 - lda.z yd - ror - sta.z e - __b1: - // bitmap_plot(x,y,c) - lda.z y - sta.z bitmap_plot.y - lda.z y+1 - sta.z bitmap_plot.y+1 - ldx.z c - jsr bitmap_plot - // x++; - inc.z x - bne !+ - inc.z x+1 - !: - // e = e+yd - clc - lda.z e - adc.z yd - sta.z e - lda.z e+1 - adc.z yd+1 - sta.z e+1 - // if(xd>1 - lda.z xd+1 - lsr - sta.z e+1 - lda.z xd - ror - sta.z e - __b1: - // bitmap_plot(x,y,c) - lda.z x - sta.z bitmap_plot.x - lda.z x+1 - sta.z bitmap_plot.x+1 - ldx.z c - jsr bitmap_plot - // y = y++; - inc.z y - bne !+ - inc.z y+1 - !: - // e = e+xd - clc - lda.z e - adc.z xd - sta.z e - lda.z e+1 - adc.z xd+1 - sta.z e+1 - // if(yd>1 - lda.z yd+1 - lsr - sta.z e+1 - lda.z yd - ror - sta.z e - __b1: - // bitmap_plot(x,y,c) - lda.z y - sta.z bitmap_plot.y - lda.z y+1 - sta.z bitmap_plot.y+1 - ldx.z c - jsr bitmap_plot - // x++; - inc.z x - bne !+ - inc.z x+1 - !: - // e = e+yd - clc - lda.z e - adc.z yd - sta.z e - lda.z e+1 - adc.z yd+1 - sta.z e+1 - // if(xd=divisor) - lda.z rem+1 - cmp.z divisor+1 - bcc __b3 - bne !+ - lda.z rem - cmp.z divisor - bcc __b3 - !: - // quotient++; - inc.z quotient - bne !+ - inc.z quotient+1 - !: - // rem = rem - divisor - lda.z rem - sec - sbc.z divisor - sta.z rem - lda.z rem+1 - sbc.z divisor+1 - sta.z rem+1 - __b3: - // for( char i : 0..15) - inx - cpx #$10 - bne __b1 - // rem16u = rem - lda.z rem - sta.z rem16u - lda.z rem+1 - sta.z rem16u+1 - // } - rts -} -// Insert a new line, and scroll the upper part of the screen up. -insertup: { - .label cy = $21 - .label width = $20 - .label line = $a - .label start = $a - // unsigned byte cy = conio_cursor_y[conio_screen_layer] - ldy.z conio_screen_layer - lda conio_cursor_y,y - sta.z cy - // unsigned byte width = CONIO_WIDTH * 2 - lda.z conio_screen_width - asl - sta.z width - ldx #1 - __b1: - // for(unsigned byte i=1; i<=cy; i++) - lda.z cy - stx.z $ff - cmp.z $ff - bcs __b2 - // clearline() - jsr clearline - // } - rts - __b2: - // i-1 - txa - sec - sbc #1 - // unsigned int line = (i-1) << conio_rowshift - ldy.z conio_rowshift - sta.z line - lda #0 - sta.z line+1 - cpy #0 - beq !e+ - !: - asl.z line - rol.z line+1 - dey - bne !- - !e: - // unsigned char* start = CONIO_SCREEN_TEXT + line - clc - lda.z start - adc.z CONIO_SCREEN_TEXT - sta.z start - lda.z start+1 - adc.z CONIO_SCREEN_TEXT+1 - sta.z start+1 - // start+conio_rowskip - lda.z start - clc - adc.z conio_rowskip - sta.z memcpy_in_vram.src - lda.z start+1 - adc.z conio_rowskip+1 - sta.z memcpy_in_vram.src+1 - // memcpy_in_vram(0, start, VERA_INC_1, 0, start+conio_rowskip, VERA_INC_1, width) - lda.z width - sta.z memcpy_in_vram.num - lda #0 - sta.z memcpy_in_vram.num+1 - // memcpy_in_vram(0, start, VERA_INC_1, 0, start+conio_rowskip, VERA_INC_1, width) - tay - jsr memcpy_in_vram - // for(unsigned byte i=1; i<=cy; i++) - inx - jmp __b1 -} -// void bitmap_plot(__zp($1e) unsigned int x, __zp(4) unsigned int y, __register(X) char c) -bitmap_plot: { - .label __9 = $e - .label __10 = $c - .label plot_x = $1a - .label plot_y = $10 - .label vera_vram_address01_bankaddr = $1a - .label x = $1e - .label y = 4 - .label __12 = $e - .label __13 = $c - .label __14 = $14 - .label __15 = $16 - // dword plot_x = __bitmap_plot_x[x] - lda.z x - asl - sta.z __9 - lda.z x+1 - rol - sta.z __9+1 - lda.z __12 - clc - adc #<__bitmap_plot_x - sta.z __12 - lda.z __12+1 - adc #>__bitmap_plot_x - sta.z __12+1 - // Needs unsigned int arrays arranged as two underlying char arrays to allow char* plotter_x = plot_x[x]; - and eventually - char* plotter = plot_x[x] + plot_y[y]; - ldy #0 - sty.z plot_x+2 - sty.z plot_x+3 - lda (__12),y - sta.z plot_x - iny - lda (__12),y - sta.z plot_x+1 - // dword plot_y = __bitmap_plot_y[y] - lda.z y - asl - sta.z __10 - lda.z y+1 - rol - sta.z __10+1 - asl.z __10 - rol.z __10+1 - lda.z __13 - clc - adc #<__bitmap_plot_y - sta.z __13 - lda.z __13+1 - adc #>__bitmap_plot_y - sta.z __13+1 - ldy #0 - lda (__13),y - sta.z plot_y - iny - lda (__13),y - sta.z plot_y+1 - iny - lda (__13),y - sta.z plot_y+2 - iny - lda (__13),y - sta.z plot_y+3 - // dword plotter = plot_x+plot_y - clc - lda.z vera_vram_address01_bankaddr - adc.z plot_y - sta.z vera_vram_address01_bankaddr - lda.z vera_vram_address01_bankaddr+1 - adc.z plot_y+1 - sta.z vera_vram_address01_bankaddr+1 - lda.z vera_vram_address01_bankaddr+2 - adc.z plot_y+2 - sta.z vera_vram_address01_bankaddr+2 - lda.z vera_vram_address01_bankaddr+3 - adc.z plot_y+3 - sta.z vera_vram_address01_bankaddr+3 - // byte bitshift = __bitmap_plot_bitshift[x] - lda.z x - clc - adc #<__bitmap_plot_bitshift - sta.z __14 - lda.z x+1 - adc #>__bitmap_plot_bitshift - sta.z __14+1 - ldy #0 - lda (__14),y - // bitshift?c<<(bitshift):c - cmp #0 - bne __b1 - jmp __b2 - __b1: - tay - txa - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - tax - __b2: - // *VERA_CTRL &= ~VERA_ADDRSEL - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(bankaddr) - lda.z vera_vram_address01_bankaddr - // *VERA_ADDRX_L = BYTE0(bankaddr) - sta VERA_ADDRX_L - // BYTE1(bankaddr) - lda.z vera_vram_address01_bankaddr+1 - // *VERA_ADDRX_M = BYTE1(bankaddr) - sta VERA_ADDRX_M - // BYTE2(bankaddr) | incr - lda.z vera_vram_address01_bankaddr+2 - // *VERA_ADDRX_H = BYTE2(bankaddr) | incr - sta VERA_ADDRX_H - // ~__bitmap_plot_bitmask[x] - lda.z x - clc - adc #<__bitmap_plot_bitmask - sta.z __15 - lda.z x+1 - adc #>__bitmap_plot_bitmask - sta.z __15+1 - ldy #0 - lda (__15),y - eor #$ff - // *VERA_DATA0 & ~__bitmap_plot_bitmask[x] - and VERA_DATA0 - // (*VERA_DATA0 & ~__bitmap_plot_bitmask[x]) | c - stx.z $ff - ora.z $ff - // *VERA_DATA0 = (*VERA_DATA0 & ~__bitmap_plot_bitmask[x]) | c - sta VERA_DATA0 - // } - rts -} -clearline: { - .label addr = $e - .label c = 4 - // *VERA_CTRL &= ~VERA_ADDRSEL - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // byte* addr = CONIO_SCREEN_TEXT + conio_line_text[conio_screen_layer] - lda.z conio_screen_layer - asl - // Set address - tay - clc - lda.z CONIO_SCREEN_TEXT - adc conio_line_text,y - sta.z addr - lda.z CONIO_SCREEN_TEXT+1 - adc conio_line_text+1,y - sta.z addr+1 - // BYTE0(addr) - lda.z addr - // *VERA_ADDRX_L = BYTE0(addr) - sta VERA_ADDRX_L - // BYTE1(addr) - lda.z addr+1 - // *VERA_ADDRX_M = BYTE1(addr) - sta VERA_ADDRX_M - // *VERA_ADDRX_H = VERA_INC_1 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // char color = vera_layer_get_color( conio_screen_layer) - ldx.z conio_screen_layer - jsr vera_layer_get_color - // char color = vera_layer_get_color( conio_screen_layer) - tax - lda #<0 - sta.z c - sta.z c+1 - __b1: - // for( unsigned int c=0;c> 7 - [184] screensize::$1 = $28 << screensize::hscale#0 - [185] *screensize::x#0 = screensize::$1 - [186] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 - [187] screensize::$3 = $1e << screensize::vscale#0 - [188] *screensize::y#0 = screensize::$3 - to:screensize::@return -screensize::@return: scope:[screensize] from screensize - [189] return - to:@return - -void screenlayer(char layer) -screenlayer: scope:[screenlayer] from conio_x16_init::@4 main::@14 main::@5 - [190] conio_screen_layer = 1 - [191] vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer - [192] call vera_layer_get_mapbase_bank - [193] vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#0 - to:screenlayer::@3 -screenlayer::@3: scope:[screenlayer] from screenlayer - [194] CONIO_SCREEN_BANK#15 = vera_layer_get_mapbase_bank::return#2 - [195] vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer - [196] call vera_layer_get_mapbase_offset - [197] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 - to:screenlayer::@4 -screenlayer::@4: scope:[screenlayer] from screenlayer::@3 - [198] CONIO_SCREEN_TEXT#17 = vera_layer_get_mapbase_offset::return#2 - [199] 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 - [200] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 - [201] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] - [202] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK - [203] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 - [204] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 - [205] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] - to:screenlayer::vera_layer_get_width1_@return -screenlayer::vera_layer_get_width1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_width1 - [206] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 - to:screenlayer::@1 -screenlayer::@1: scope:[screenlayer] from screenlayer::vera_layer_get_width1_@return - [207] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 - [208] conio_width = screenlayer::$2 - [209] vera_layer_get_rowshift::layer#0 = conio_screen_layer - [210] call vera_layer_get_rowshift - [211] vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#0 - to:screenlayer::@5 -screenlayer::@5: scope:[screenlayer] from screenlayer::@1 - [212] screenlayer::$3 = vera_layer_get_rowshift::return#2 - [213] conio_rowshift = screenlayer::$3 - [214] vera_layer_get_rowskip::layer#0 = conio_screen_layer - [215] call vera_layer_get_rowskip - [216] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 - to:screenlayer::@6 -screenlayer::@6: scope:[screenlayer] from screenlayer::@5 - [217] screenlayer::$4 = vera_layer_get_rowskip::return#2 - [218] conio_rowskip = screenlayer::$4 - [219] screenlayer::vera_layer_get_height1_layer#0 = conio_screen_layer - to:screenlayer::vera_layer_get_height1 -screenlayer::vera_layer_get_height1: scope:[screenlayer] from screenlayer::@6 - [220] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 - [221] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] - [222] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK - [223] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 - [224] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 - [225] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] - to:screenlayer::vera_layer_get_height1_@return -screenlayer::vera_layer_get_height1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_height1 - [226] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 - to:screenlayer::@2 -screenlayer::@2: scope:[screenlayer] from screenlayer::vera_layer_get_height1_@return - [227] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 - [228] conio_height = screenlayer::$5 - to:screenlayer::@return -screenlayer::@return: scope:[screenlayer] from screenlayer::@2 - [229] return - to:@return - -char vera_layer_set_textcolor(char layer , char color) -vera_layer_set_textcolor: scope:[vera_layer_set_textcolor] from conio_x16_init::@5 main::textcolor1 main::textcolor2 main::textcolor3 main::textcolor4 main::textcolor5 - [230] vera_layer_set_textcolor::color#6 = phi( conio_x16_init::@5/WHITE, main::textcolor1/WHITE, main::textcolor2/YELLOW, main::textcolor3/WHITE, main::textcolor4/YELLOW, main::textcolor5/WHITE ) - [230] vera_layer_set_textcolor::layer#6 = phi( conio_x16_init::@5/1, main::textcolor1/vera_layer_set_textcolor::layer#1, main::textcolor2/vera_layer_set_textcolor::layer#2, main::textcolor3/vera_layer_set_textcolor::layer#3, main::textcolor4/vera_layer_set_textcolor::layer#4, main::textcolor5/vera_layer_set_textcolor::layer#5 ) - [231] vera_layer_textcolor[vera_layer_set_textcolor::layer#6] = vera_layer_set_textcolor::color#6 - to:vera_layer_set_textcolor::@return -vera_layer_set_textcolor::@return: scope:[vera_layer_set_textcolor] from vera_layer_set_textcolor - [232] return - to:@return - -char vera_layer_set_backcolor(char layer , char color) -vera_layer_set_backcolor: scope:[vera_layer_set_backcolor] from conio_x16_init::@6 main::bgcolor1 main::bgcolor2 main::bgcolor3 - [233] vera_layer_set_backcolor::color#4 = phi( conio_x16_init::@6/BLUE, main::bgcolor1/BLACK, main::bgcolor2/BLACK, main::bgcolor3/BLUE ) - [233] vera_layer_set_backcolor::layer#4 = phi( conio_x16_init::@6/1, main::bgcolor1/vera_layer_set_backcolor::layer#1, main::bgcolor2/vera_layer_set_backcolor::layer#2, main::bgcolor3/vera_layer_set_backcolor::layer#3 ) - [234] vera_layer_backcolor[vera_layer_set_backcolor::layer#4] = vera_layer_set_backcolor::color#4 - to:vera_layer_set_backcolor::@return -vera_layer_set_backcolor::@return: scope:[vera_layer_set_backcolor] from vera_layer_set_backcolor - [235] return - to:@return - -void vera_layer_set_mapbase(char layer , char mapbase) -vera_layer_set_mapbase: scope:[vera_layer_set_mapbase] from conio_x16_init::@7 conio_x16_init::@8 vera_layer_mode_tile::@23 - [236] vera_layer_set_mapbase::mapbase#3 = phi( conio_x16_init::@7/$20, conio_x16_init::@8/0, vera_layer_mode_tile::@23/vera_layer_set_mapbase::mapbase#0 ) - [236] vera_layer_set_mapbase::layer#3 = phi( conio_x16_init::@7/0, conio_x16_init::@8/1, vera_layer_mode_tile::@23/vera_layer_set_mapbase::layer#0 ) - [237] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 - [238] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] - [239] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 - to:vera_layer_set_mapbase::@return -vera_layer_set_mapbase::@return: scope:[vera_layer_set_mapbase] from vera_layer_set_mapbase - [240] return - to:@return - -void gotoxy(char x , char y) -gotoxy: scope:[gotoxy] from conio_x16_init::@1 cscroll::@5 main::@15 main::@21 main::@32 main::@34 - [241] gotoxy::y#7 = phi( conio_x16_init::@1/gotoxy::y#1, cscroll::@5/gotoxy::y#2, main::@15/$19, main::@21/$1d, main::@32/$1a, main::@34/$1d ) - [242] if(gotoxy::y#7<=conio_screen_height) goto gotoxy::@4 - to:gotoxy::@1 -gotoxy::@4: scope:[gotoxy] from gotoxy - [243] phi() - to:gotoxy::@1 -gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@4 - [244] gotoxy::y#10 = phi( gotoxy::@4/gotoxy::y#7, gotoxy/0 ) - [245] if(0> 1 - [318] vera_layer_mode_tile::mapbase#0 = byte1 vera_layer_mode_tile::mapbase_address#0 - [319] vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#10 - [320] vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0 - [321] call vera_layer_set_mapbase - to:vera_layer_mode_tile::@24 -vera_layer_mode_tile::@24: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@23 - [322] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 - [323] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 - [324] vera_layer_mode_tile::$7 = byte2 vera_layer_mode_tile::tilebase_address#10 - [325] vera_tilebase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$7 - [326] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 - [327] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 - [328] vera_layer_mode_tile::tilebase#0 = byte1 vera_layer_mode_tile::tilebase_address#0 - [329] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK - [330] if(vera_layer_mode_tile::tilewidth#10==8) goto vera_layer_mode_tile::@19 - to:vera_layer_mode_tile::@17 -vera_layer_mode_tile::@17: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@24 - [331] if(vera_layer_mode_tile::tilewidth#10!=$10) goto vera_layer_mode_tile::@19 - to:vera_layer_mode_tile::@18 -vera_layer_mode_tile::@18: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@17 - [332] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 - to:vera_layer_mode_tile::@19 -vera_layer_mode_tile::@19: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@17 vera_layer_mode_tile::@18 vera_layer_mode_tile::@24 - [333] vera_layer_mode_tile::tilebase#12 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@24/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@18/vera_layer_mode_tile::tilebase#3 ) - [334] if(vera_layer_mode_tile::tileheight#10==8) goto vera_layer_mode_tile::@22 - to:vera_layer_mode_tile::@20 -vera_layer_mode_tile::@20: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@19 - [335] if(vera_layer_mode_tile::tileheight#10!=$10) goto vera_layer_mode_tile::@22 - to:vera_layer_mode_tile::@21 -vera_layer_mode_tile::@21: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@20 - [336] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 - to:vera_layer_mode_tile::@22 -vera_layer_mode_tile::@22: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@19 vera_layer_mode_tile::@20 vera_layer_mode_tile::@21 - [337] vera_layer_mode_tile::tilebase#10 = phi( vera_layer_mode_tile::@20/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@19/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@21/vera_layer_mode_tile::tilebase#5 ) - [338] vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#10 - [339] vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10 - [340] call vera_layer_set_tilebase - to:vera_layer_mode_tile::@return -vera_layer_mode_tile::@return: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@22 - [341] return - to:@return -vera_layer_mode_tile::@14: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@11 - [342] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 - to:vera_layer_mode_tile::@16 -vera_layer_mode_tile::@13: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@10 - [343] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 - to:vera_layer_mode_tile::@16 -vera_layer_mode_tile::@7: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@3 - [344] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 - [345] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 - [346] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 - to:vera_layer_mode_tile::@9 -vera_layer_mode_tile::@6: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@2 - [347] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 - [348] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 - [349] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 - to:vera_layer_mode_tile::@9 -vera_layer_mode_tile::@5: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@1 - [350] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 - [351] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 - [352] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 - to:vera_layer_mode_tile::@9 - -void vera_layer_mode_bitmap(char layer , unsigned long bitmap_address , unsigned int mapwidth , unsigned int color_depth) -vera_layer_mode_bitmap: scope:[vera_layer_mode_bitmap] from main::@13 - [353] phi() - to:vera_layer_mode_bitmap::@1 -vera_layer_mode_bitmap::@1: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap - [354] *vera_tilebase_offset = 0 - [355] *vera_tilebase_bank = 0 - [356] *vera_tilebase_address = vera_layer_mode_bitmap::bitmap_address#1 - to:vera_layer_mode_bitmap::vera_display_set_scale_double1 -vera_layer_mode_bitmap::vera_display_set_scale_double1: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@1 - [357] *VERA_DC_HSCALE = $40 - [358] *VERA_DC_VSCALE = $40 - to:vera_layer_mode_bitmap::@2 -vera_layer_mode_bitmap::@2: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::vera_display_set_scale_double1 - [359] phi() - [360] call vera_layer_set_config - to:vera_layer_mode_bitmap::@3 -vera_layer_mode_bitmap::@3: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@2 - [361] phi() - [362] call vera_layer_set_tilebase - to:vera_layer_mode_bitmap::@return -vera_layer_mode_bitmap::@return: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@3 - [363] return - to:@return - -void clrscr() -clrscr: scope:[clrscr] from main::@11 main::@6 main::@9 - [364] clrscr::line_text#0 = (char *)CONIO_SCREEN_TEXT#17 - [365] vera_layer_get_backcolor::layer#0 = conio_screen_layer - [366] call vera_layer_get_backcolor - [367] vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 - to:clrscr::@7 -clrscr::@7: scope:[clrscr] from clrscr - [368] clrscr::$0 = vera_layer_get_backcolor::return#0 - [369] clrscr::$1 = clrscr::$0 << 4 - [370] vera_layer_get_textcolor::layer#0 = conio_screen_layer - [371] call vera_layer_get_textcolor - [372] vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 - to:clrscr::@8 -clrscr::@8: scope:[clrscr] from clrscr::@7 - [373] clrscr::$2 = vera_layer_get_textcolor::return#0 - [374] clrscr::color#0 = clrscr::$1 | clrscr::$2 - to:clrscr::@1 -clrscr::@1: scope:[clrscr] from clrscr::@6 clrscr::@8 - [375] clrscr::line_text#2 = phi( clrscr::@6/clrscr::line_text#1, clrscr::@8/clrscr::line_text#0 ) - [375] clrscr::l#2 = phi( clrscr::@6/clrscr::l#1, clrscr::@8/0 ) - [376] if(clrscr::l#2> 3 - [428] bitmap_init::$23 = bitmap_init::x#10 << 1 - [429] bitmap_init::$29 = __bitmap_plot_x + bitmap_init::$23 - [430] *bitmap_init::$29 = bitmap_init::$7 - [431] bitmap_init::$30 = __bitmap_plot_bitmask + bitmap_init::x#10 - [432] *bitmap_init::$30 = bitmap_init::bitmask#10 - [433] bitmap_init::$31 = __bitmap_plot_bitshift + bitmap_init::x#10 - [434] *bitmap_init::$31 = (char)bitmap_init::bitshift#10 - [435] bitmap_init::bitshift#1 = bitmap_init::bitshift#10 - 1 - [436] bitmap_init::bitmask#1 = bitmap_init::bitmask#10 >> 1 - to:bitmap_init::@2 -bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@8 - [437] bitmap_init::bitshift#11 = phi( bitmap_init::@1/bitmap_init::bitshift#10, bitmap_init::@8/bitmap_init::bitshift#1 ) - [437] bitmap_init::bitmask#11 = phi( bitmap_init::@1/bitmap_init::bitmask#10, bitmap_init::@8/bitmap_init::bitmask#1 ) - [438] if(__bitmap_color_depth!=1) goto bitmap_init::@3 - to:bitmap_init::@9 -bitmap_init::@9: scope:[bitmap_init] from bitmap_init::@2 - [439] bitmap_init::$10 = bitmap_init::x#10 >> 2 - [440] bitmap_init::$24 = bitmap_init::x#10 << 1 - [441] bitmap_init::$32 = __bitmap_plot_x + bitmap_init::$24 - [442] *bitmap_init::$32 = bitmap_init::$10 - [443] bitmap_init::$33 = __bitmap_plot_bitmask + bitmap_init::x#10 - [444] *bitmap_init::$33 = bitmap_init::bitmask#11 - [445] bitmap_init::$34 = __bitmap_plot_bitshift + bitmap_init::x#10 - [446] *bitmap_init::$34 = (char)bitmap_init::bitshift#11 - [447] bitmap_init::bitshift#2 = bitmap_init::bitshift#11 - 2 - [448] bitmap_init::bitmask#2 = bitmap_init::bitmask#11 >> 2 - to:bitmap_init::@3 -bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@9 - [449] bitmap_init::bitshift#12 = phi( bitmap_init::@2/bitmap_init::bitshift#11, bitmap_init::@9/bitmap_init::bitshift#2 ) - [449] bitmap_init::bitmask#12 = phi( bitmap_init::@2/bitmap_init::bitmask#11, bitmap_init::@9/bitmap_init::bitmask#2 ) - [450] if(__bitmap_color_depth!=2) goto bitmap_init::@4 - to:bitmap_init::@10 -bitmap_init::@10: scope:[bitmap_init] from bitmap_init::@3 - [451] bitmap_init::$13 = bitmap_init::x#10 >> 1 - [452] bitmap_init::$25 = bitmap_init::x#10 << 1 - [453] bitmap_init::$35 = __bitmap_plot_x + bitmap_init::$25 - [454] *bitmap_init::$35 = bitmap_init::$13 - [455] bitmap_init::$36 = __bitmap_plot_bitmask + bitmap_init::x#10 - [456] *bitmap_init::$36 = bitmap_init::bitmask#12 - [457] bitmap_init::$37 = __bitmap_plot_bitshift + bitmap_init::x#10 - [458] *bitmap_init::$37 = (char)bitmap_init::bitshift#12 - [459] bitmap_init::bitshift#3 = bitmap_init::bitshift#12 - 4 - [460] bitmap_init::bitmask#3 = bitmap_init::bitmask#12 >> 4 - to:bitmap_init::@4 -bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@10 bitmap_init::@3 - [461] bitmap_init::bitmask#13 = phi( bitmap_init::@10/bitmap_init::bitmask#3, bitmap_init::@3/bitmap_init::bitmask#12 ) - [461] bitmap_init::bitshift#13 = phi( bitmap_init::@10/bitmap_init::bitshift#3, bitmap_init::@3/bitmap_init::bitshift#12 ) - [462] if(__bitmap_color_depth!=3) goto bitmap_init::@5 - to:bitmap_init::@11 -bitmap_init::@11: scope:[bitmap_init] from bitmap_init::@4 - [463] bitmap_init::$26 = bitmap_init::x#10 << 1 - [464] bitmap_init::$38 = __bitmap_plot_x + bitmap_init::$26 - [465] *bitmap_init::$38 = bitmap_init::x#10 - [466] bitmap_init::$39 = __bitmap_plot_bitmask + bitmap_init::x#10 - [467] *bitmap_init::$39 = bitmap_init::bitmask#13 - [468] bitmap_init::$40 = __bitmap_plot_bitshift + bitmap_init::x#10 - [469] *bitmap_init::$40 = (char)bitmap_init::bitshift#13 - to:bitmap_init::@5 -bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@11 bitmap_init::@4 - [470] if(bitmap_init::bitshift#13>=0) goto bitmap_init::@6 - to:bitmap_init::@12 -bitmap_init::@12: scope:[bitmap_init] from bitmap_init::@5 - [471] bitmap_init::bitshift#4 = bitshifts[__bitmap_color_depth] - to:bitmap_init::@6 -bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@12 bitmap_init::@5 - [472] bitmap_init::bitshift#14 = phi( bitmap_init::@12/bitmap_init::bitshift#4, bitmap_init::@5/bitmap_init::bitshift#13 ) - [473] if(bitmap_init::bitmask#13!=0) goto bitmap_init::@7 - to:bitmap_init::@13 -bitmap_init::@13: scope:[bitmap_init] from bitmap_init::@6 - [474] bitmap_init::bitmask#4 = bitmasks[__bitmap_color_depth] - to:bitmap_init::@7 -bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@13 bitmap_init::@6 - [475] bitmap_init::bitmask#16 = phi( bitmap_init::@13/bitmap_init::bitmask#4, bitmap_init::@6/bitmap_init::bitmask#13 ) - [476] bitmap_init::x#1 = ++ bitmap_init::x#10 - [477] if(bitmap_init::x#1!=$280) goto bitmap_init::@1 - to:bitmap_init::@14 -bitmap_init::@14: scope:[bitmap_init] from bitmap_init::@7 - [478] bitmap_init::$3 = __bitmap_color_depth << 2 - [479] bitmap_init::$4 = bitmap_init::$3 + __bitmap_hscale - [480] bitmap_init::$27 = bitmap_init::$4 << 1 - [481] bitmap_init::hdelta#0 = hdeltas[bitmap_init::$27] - [482] bitmap_init::yoffs#0 = __bitmap_address - to:bitmap_init::@15 -bitmap_init::@15: scope:[bitmap_init] from bitmap_init::@14 bitmap_init::@15 - [483] bitmap_init::yoffs#2 = phi( bitmap_init::@14/bitmap_init::yoffs#0, bitmap_init::@15/bitmap_init::yoffs#1 ) - [483] bitmap_init::y#2 = phi( bitmap_init::@14/0, bitmap_init::@15/bitmap_init::y#1 ) - [484] bitmap_init::$28 = bitmap_init::y#2 << 2 - [485] bitmap_init::$41 = __bitmap_plot_y + bitmap_init::$28 - [486] *bitmap_init::$41 = bitmap_init::yoffs#2 - [487] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + bitmap_init::hdelta#0 - [488] bitmap_init::y#1 = ++ bitmap_init::y#2 - [489] if(bitmap_init::y#1!=$1e0) goto bitmap_init::@15 - to:bitmap_init::@return -bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@15 - [490] return - to:@return - -void bitmap_clear() -bitmap_clear: scope:[bitmap_clear] from main::@20 - [491] bitmap_clear::$6 = __bitmap_vscale << 1 - [492] bitmap_clear::vdelta#0 = vdeltas[bitmap_clear::$6] - [493] bitmap_clear::$0 = __bitmap_color_depth << 2 - [494] bitmap_clear::$1 = bitmap_clear::$0 + __bitmap_hscale - [495] bitmap_clear::$7 = bitmap_clear::$1 << 1 - [496] bitmap_clear::hdelta#0 = hdeltas[bitmap_clear::$7] - [497] mul16u::a#0 = bitmap_clear::hdelta#0 - [498] mul16u::b#0 = bitmap_clear::vdelta#0 - [499] call mul16u - [500] mul16u::return#0 = mul16u::res#2 - to:bitmap_clear::@1 -bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear - [501] bitmap_clear::count#0 = mul16u::return#0 - [502] bitmap_clear::vbank#0 = byte2 __bitmap_address - [503] bitmap_clear::vdest#0 = word0 __bitmap_address - [504] memset_vram::vbank#0 = bitmap_clear::vbank#0 - [505] memset_vram::vdest#0 = (void *)bitmap_clear::vdest#0 - [506] memset_vram::num#0 = bitmap_clear::count#0 - [507] call memset_vram - to:bitmap_clear::@return -bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1 - [508] return - to:@return - -char kbhit() -kbhit: scope:[kbhit] from main::@1 main::@3 - [509] kbhit::ch = 0 - kickasm( uses kbhit::chptr uses kbhit::IN_DEV uses kbhit::GETIN) {{ jsr _kbhit - bne L3 - - jmp continue1 - - .var via1 = $9f60 //VIA#1 - .var d1pra = via1+1 - - _kbhit: - ldy d1pra // The count of keys pressed is stored in RAM bank 0. - stz d1pra // Set d1pra to zero to access RAM bank 0. - lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). - sty d1pra // Set d1pra to previous value. - rts - - L3: - ldy IN_DEV // Save current input device - stz IN_DEV // Keyboard - phy - jsr GETIN // Read char, and return in .A - ply - sta chptr // Store the character read in ch - sty IN_DEV // Restore input device - ldx #>$0000 - rts - - continue1: - nop - }} - [511] kbhit::return#0 = kbhit::ch - to:kbhit::@return -kbhit::@return: scope:[kbhit] from kbhit - [512] kbhit::return#1 = kbhit::return#0 - [513] return - to:@return - -void bitmap_line(unsigned int x0 , unsigned int x1 , unsigned int y0 , unsigned int y1 , char c) -bitmap_line: scope:[bitmap_line] from main::@31 main::@4 - [514] bitmap_line::c#10 = phi( main::@31/bitmap_line::c#0, main::@4/bitmap_line::c#1 ) - [514] bitmap_line::y1#10 = phi( main::@31/bitmap_line::y1#0, main::@4/$c7 ) - [514] bitmap_line::y0#10 = phi( main::@31/bitmap_line::y0#0, main::@4/0 ) - [514] bitmap_line::x1#10 = phi( main::@31/bitmap_line::x1#0, main::@4/bitmap_line::x1#1 ) - [514] bitmap_line::x0#10 = phi( main::@31/bitmap_line::x0#0, main::@4/bitmap_line::x0#1 ) - [515] if(bitmap_line::x0#10> 9 - [589] rand_state#1 = rand_state#0 ^ rand::$1 - [590] rand::$2 = rand_state#1 << 8 - [591] rand_state#14 = rand_state#1 ^ rand::$2 - [592] rand::return#0 = rand_state#14 - to:rand::@return -rand::@return: scope:[rand] from rand - [593] return - to:@return - -unsigned int modr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) -modr16u: scope:[modr16u] from main::@23 main::@25 main::@27 main::@29 - [594] modr16u::divisor#4 = phi( main::@23/$140, main::@25/$140, main::@27/$c8, main::@29/$c8 ) - [594] modr16u::dividend#4 = phi( main::@23/modr16u::dividend#0, main::@25/modr16u::dividend#1, main::@27/modr16u::dividend#2, main::@29/modr16u::dividend#3 ) - [595] divr16u::dividend#1 = modr16u::dividend#4 - [596] divr16u::divisor#0 = modr16u::divisor#4 - [597] call divr16u - to:modr16u::@1 -modr16u::@1: scope:[modr16u] from modr16u - [598] modr16u::return#0 = rem16u#0 - to:modr16u::@return -modr16u::@return: scope:[modr16u] from modr16u::@1 - [599] return - to:@return - -void vera_layer_set_text_color_mode(char layer , char color_mode) -vera_layer_set_text_color_mode: scope:[vera_layer_set_text_color_mode] from vera_layer_mode_text::@1 - [600] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) - [601] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C - [602] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 - to:vera_layer_set_text_color_mode::@return -vera_layer_set_text_color_mode::@return: scope:[vera_layer_set_text_color_mode] from vera_layer_set_text_color_mode - [603] return - to:@return - -char vera_layer_get_mapbase_bank(char layer) -vera_layer_get_mapbase_bank: scope:[vera_layer_get_mapbase_bank] from screenlayer - [604] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0] - to:vera_layer_get_mapbase_bank::@return -vera_layer_get_mapbase_bank::@return: scope:[vera_layer_get_mapbase_bank] from vera_layer_get_mapbase_bank - [605] return - to:@return - -unsigned int vera_layer_get_mapbase_offset(char layer) -vera_layer_get_mapbase_offset: scope:[vera_layer_get_mapbase_offset] from screenlayer::@3 - [606] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 - [607] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] - to:vera_layer_get_mapbase_offset::@return -vera_layer_get_mapbase_offset::@return: scope:[vera_layer_get_mapbase_offset] from vera_layer_get_mapbase_offset - [608] return - to:@return - -char vera_layer_get_rowshift(char layer) -vera_layer_get_rowshift: scope:[vera_layer_get_rowshift] from screenlayer::@1 - [609] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0] - to:vera_layer_get_rowshift::@return -vera_layer_get_rowshift::@return: scope:[vera_layer_get_rowshift] from vera_layer_get_rowshift - [610] return - to:@return - -unsigned int vera_layer_get_rowskip(char layer) -vera_layer_get_rowskip: scope:[vera_layer_get_rowskip] from screenlayer::@5 - [611] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 - [612] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] - to:vera_layer_get_rowskip::@return -vera_layer_get_rowskip::@return: scope:[vera_layer_get_rowskip] from vera_layer_get_rowskip - [613] return - to:@return - -void cscroll() -cscroll: scope:[cscroll] from cputln - [614] if(conio_cursor_y[conio_screen_layer]> 1 - [660] mul16u::mb#1 = mul16u::mb#2 << 1 - to:mul16u::@1 - -void memset_vram(char vbank , void *vdest , char data , unsigned long num) -memset_vram: scope:[memset_vram] from bitmap_clear::@1 - [661] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL - [662] memset_vram::$0 = byte0 memset_vram::vdest#0 - [663] *VERA_ADDRX_L = memset_vram::$0 - [664] memset_vram::$1 = byte1 memset_vram::vdest#0 - [665] *VERA_ADDRX_M = memset_vram::$1 - [666] memset_vram::$2 = VERA_INC_1 | memset_vram::vbank#0 - [667] *VERA_ADDRX_H = memset_vram::$2 - to:memset_vram::@1 -memset_vram::@1: scope:[memset_vram] from memset_vram memset_vram::@2 - [668] memset_vram::i#2 = phi( memset_vram/0, memset_vram::@2/memset_vram::i#1 ) - [669] if(memset_vram::i#2> 1 - to:bitmap_line_ydxi::@1 -bitmap_line_ydxi::@1: scope:[bitmap_line_ydxi] from bitmap_line_ydxi bitmap_line_ydxi::@2 - [675] bitmap_line_ydxi::e#3 = phi( bitmap_line_ydxi/bitmap_line_ydxi::e#0, bitmap_line_ydxi::@2/bitmap_line_ydxi::e#6 ) - [675] bitmap_line_ydxi::y#3 = phi( bitmap_line_ydxi/bitmap_line_ydxi::y#6, bitmap_line_ydxi::@2/bitmap_line_ydxi::y#2 ) - [675] bitmap_line_ydxi::x#3 = phi( bitmap_line_ydxi/bitmap_line_ydxi::x#5, bitmap_line_ydxi::@2/bitmap_line_ydxi::x#6 ) - [676] bitmap_plot::x#2 = bitmap_line_ydxi::x#3 - [677] bitmap_plot::y#2 = bitmap_line_ydxi::y#3 - [678] bitmap_plot::c#3 = bitmap_line_ydxi::c#3 - [679] call bitmap_plot - to:bitmap_line_ydxi::@4 -bitmap_line_ydxi::@4: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@1 - [680] bitmap_line_ydxi::y#2 = ++ bitmap_line_ydxi::y#3 - [681] bitmap_line_ydxi::e#1 = bitmap_line_ydxi::e#3 + bitmap_line_ydxi::xd#2 - [682] if(bitmap_line_ydxi::yd#5>=bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 - to:bitmap_line_ydxi::@3 -bitmap_line_ydxi::@3: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@4 - [683] bitmap_line_ydxi::x#2 = ++ bitmap_line_ydxi::x#3 - [684] bitmap_line_ydxi::e#2 = bitmap_line_ydxi::e#1 - bitmap_line_ydxi::yd#5 - to:bitmap_line_ydxi::@2 -bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap_line_ydxi::@4 - [685] bitmap_line_ydxi::e#6 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::e#2, bitmap_line_ydxi::@4/bitmap_line_ydxi::e#1 ) - [685] bitmap_line_ydxi::x#6 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::x#2, bitmap_line_ydxi::@4/bitmap_line_ydxi::x#3 ) - [686] bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#6 + 1 - [687] if(bitmap_line_ydxi::y#2!=bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1 - to:bitmap_line_ydxi::@return -bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2 - [688] return - to:@return - -void bitmap_line_xdyi(unsigned int x , unsigned int y , unsigned int x1 , unsigned int xd , unsigned int yd , char c) -bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@13 bitmap_line::@8 - [689] bitmap_line_xdyi::x1#6 = phi( bitmap_line::@13/bitmap_line_xdyi::x1#1, bitmap_line::@8/bitmap_line_xdyi::x1#0 ) - [689] bitmap_line_xdyi::xd#5 = phi( bitmap_line::@13/bitmap_line_xdyi::xd#1, bitmap_line::@8/bitmap_line_xdyi::xd#0 ) - [689] bitmap_line_xdyi::c#3 = phi( bitmap_line::@13/bitmap_line_xdyi::c#1, bitmap_line::@8/bitmap_line_xdyi::c#0 ) - [689] bitmap_line_xdyi::y#5 = phi( bitmap_line::@13/bitmap_line_xdyi::y#1, bitmap_line::@8/bitmap_line_xdyi::y#0 ) - [689] bitmap_line_xdyi::x#6 = phi( bitmap_line::@13/bitmap_line_xdyi::x#1, bitmap_line::@8/bitmap_line_xdyi::x#0 ) - [689] bitmap_line_xdyi::yd#2 = phi( bitmap_line::@13/bitmap_line_xdyi::yd#1, bitmap_line::@8/bitmap_line_xdyi::yd#0 ) - [690] bitmap_line_xdyi::e#0 = bitmap_line_xdyi::yd#2 >> 1 - to:bitmap_line_xdyi::@1 -bitmap_line_xdyi::@1: scope:[bitmap_line_xdyi] from bitmap_line_xdyi bitmap_line_xdyi::@2 - [691] bitmap_line_xdyi::e#3 = phi( bitmap_line_xdyi/bitmap_line_xdyi::e#0, bitmap_line_xdyi::@2/bitmap_line_xdyi::e#6 ) - [691] bitmap_line_xdyi::y#3 = phi( bitmap_line_xdyi/bitmap_line_xdyi::y#5, bitmap_line_xdyi::@2/bitmap_line_xdyi::y#6 ) - [691] bitmap_line_xdyi::x#3 = phi( bitmap_line_xdyi/bitmap_line_xdyi::x#6, bitmap_line_xdyi::@2/bitmap_line_xdyi::x#2 ) - [692] bitmap_plot::x#0 = bitmap_line_xdyi::x#3 - [693] bitmap_plot::y#0 = bitmap_line_xdyi::y#3 - [694] bitmap_plot::c#1 = bitmap_line_xdyi::c#3 - [695] call bitmap_plot - to:bitmap_line_xdyi::@4 -bitmap_line_xdyi::@4: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@1 - [696] bitmap_line_xdyi::x#2 = ++ bitmap_line_xdyi::x#3 - [697] bitmap_line_xdyi::e#1 = bitmap_line_xdyi::e#3 + bitmap_line_xdyi::yd#2 - [698] if(bitmap_line_xdyi::xd#5>=bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 - to:bitmap_line_xdyi::@3 -bitmap_line_xdyi::@3: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@4 - [699] bitmap_line_xdyi::y#2 = ++ bitmap_line_xdyi::y#3 - [700] bitmap_line_xdyi::e#2 = bitmap_line_xdyi::e#1 - bitmap_line_xdyi::xd#5 - to:bitmap_line_xdyi::@2 -bitmap_line_xdyi::@2: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@3 bitmap_line_xdyi::@4 - [701] bitmap_line_xdyi::e#6 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::e#2, bitmap_line_xdyi::@4/bitmap_line_xdyi::e#1 ) - [701] bitmap_line_xdyi::y#6 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::y#2, bitmap_line_xdyi::@4/bitmap_line_xdyi::y#3 ) - [702] bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#6 + 1 - [703] if(bitmap_line_xdyi::x#2!=bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 - to:bitmap_line_xdyi::@return -bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2 - [704] return - to:@return - -void bitmap_line_ydxd(unsigned int y , unsigned int x , unsigned int y1 , unsigned int yd , unsigned int xd , char c) -bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@10 bitmap_line::@6 - [705] bitmap_line_ydxd::y1#6 = phi( bitmap_line::@10/bitmap_line_ydxd::y1#0, bitmap_line::@6/bitmap_line_ydxd::y1#1 ) - [705] bitmap_line_ydxd::yd#5 = phi( bitmap_line::@10/bitmap_line_ydxd::yd#0, bitmap_line::@6/bitmap_line_ydxd::yd#1 ) - [705] bitmap_line_ydxd::c#3 = phi( bitmap_line::@10/bitmap_line_ydxd::c#0, bitmap_line::@6/bitmap_line_ydxd::c#1 ) - [705] bitmap_line_ydxd::y#7 = phi( bitmap_line::@10/bitmap_line_ydxd::y#0, bitmap_line::@6/bitmap_line_ydxd::y#1 ) - [705] bitmap_line_ydxd::x#5 = phi( bitmap_line::@10/bitmap_line_ydxd::x#0, bitmap_line::@6/bitmap_line_ydxd::x#1 ) - [705] bitmap_line_ydxd::xd#2 = phi( bitmap_line::@10/bitmap_line_ydxd::xd#0, bitmap_line::@6/bitmap_line_ydxd::xd#1 ) - [706] bitmap_line_ydxd::e#0 = bitmap_line_ydxd::xd#2 >> 1 - to:bitmap_line_ydxd::@1 -bitmap_line_ydxd::@1: scope:[bitmap_line_ydxd] from bitmap_line_ydxd bitmap_line_ydxd::@2 - [707] bitmap_line_ydxd::e#3 = phi( bitmap_line_ydxd/bitmap_line_ydxd::e#0, bitmap_line_ydxd::@2/bitmap_line_ydxd::e#6 ) - [707] bitmap_line_ydxd::y#2 = phi( bitmap_line_ydxd/bitmap_line_ydxd::y#7, bitmap_line_ydxd::@2/bitmap_line_ydxd::y#3 ) - [707] bitmap_line_ydxd::x#3 = phi( bitmap_line_ydxd/bitmap_line_ydxd::x#5, bitmap_line_ydxd::@2/bitmap_line_ydxd::x#6 ) - [708] bitmap_plot::x#3 = bitmap_line_ydxd::x#3 - [709] bitmap_plot::y#3 = bitmap_line_ydxd::y#2 - [710] bitmap_plot::c#4 = bitmap_line_ydxd::c#3 - [711] call bitmap_plot - to:bitmap_line_ydxd::@4 -bitmap_line_ydxd::@4: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@1 - [712] bitmap_line_ydxd::y#3 = ++ bitmap_line_ydxd::y#2 - [713] bitmap_line_ydxd::e#1 = bitmap_line_ydxd::e#3 + bitmap_line_ydxd::xd#2 - [714] if(bitmap_line_ydxd::yd#5>=bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 - to:bitmap_line_ydxd::@3 -bitmap_line_ydxd::@3: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@4 - [715] bitmap_line_ydxd::x#2 = -- bitmap_line_ydxd::x#3 - [716] bitmap_line_ydxd::e#2 = bitmap_line_ydxd::e#1 - bitmap_line_ydxd::yd#5 - to:bitmap_line_ydxd::@2 -bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap_line_ydxd::@4 - [717] bitmap_line_ydxd::e#6 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::e#2, bitmap_line_ydxd::@4/bitmap_line_ydxd::e#1 ) - [717] bitmap_line_ydxd::x#6 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::x#2, bitmap_line_ydxd::@4/bitmap_line_ydxd::x#3 ) - [718] bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#6 + 1 - [719] if(bitmap_line_ydxd::y#3!=bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1 - to:bitmap_line_ydxd::@return -bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2 - [720] return - to:@return - -void bitmap_line_xdyd(unsigned int x , unsigned int y , unsigned int x1 , unsigned int xd , unsigned int yd , char c) -bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@12 bitmap_line::@9 - [721] bitmap_line_xdyd::x1#6 = phi( bitmap_line::@12/bitmap_line_xdyd::x1#1, bitmap_line::@9/bitmap_line_xdyd::x1#0 ) - [721] bitmap_line_xdyd::xd#5 = phi( bitmap_line::@12/bitmap_line_xdyd::xd#1, bitmap_line::@9/bitmap_line_xdyd::xd#0 ) - [721] bitmap_line_xdyd::c#3 = phi( bitmap_line::@12/bitmap_line_xdyd::c#1, bitmap_line::@9/bitmap_line_xdyd::c#0 ) - [721] bitmap_line_xdyd::y#5 = phi( bitmap_line::@12/bitmap_line_xdyd::y#1, bitmap_line::@9/bitmap_line_xdyd::y#0 ) - [721] bitmap_line_xdyd::x#6 = phi( bitmap_line::@12/bitmap_line_xdyd::x#1, bitmap_line::@9/bitmap_line_xdyd::x#0 ) - [721] bitmap_line_xdyd::yd#2 = phi( bitmap_line::@12/bitmap_line_xdyd::yd#1, bitmap_line::@9/bitmap_line_xdyd::yd#0 ) - [722] bitmap_line_xdyd::e#0 = bitmap_line_xdyd::yd#2 >> 1 - to:bitmap_line_xdyd::@1 -bitmap_line_xdyd::@1: scope:[bitmap_line_xdyd] from bitmap_line_xdyd bitmap_line_xdyd::@2 - [723] bitmap_line_xdyd::e#3 = phi( bitmap_line_xdyd/bitmap_line_xdyd::e#0, bitmap_line_xdyd::@2/bitmap_line_xdyd::e#6 ) - [723] bitmap_line_xdyd::y#3 = phi( bitmap_line_xdyd/bitmap_line_xdyd::y#5, bitmap_line_xdyd::@2/bitmap_line_xdyd::y#6 ) - [723] bitmap_line_xdyd::x#3 = phi( bitmap_line_xdyd/bitmap_line_xdyd::x#6, bitmap_line_xdyd::@2/bitmap_line_xdyd::x#2 ) - [724] bitmap_plot::x#1 = bitmap_line_xdyd::x#3 - [725] bitmap_plot::y#1 = bitmap_line_xdyd::y#3 - [726] bitmap_plot::c#2 = bitmap_line_xdyd::c#3 - [727] call bitmap_plot - to:bitmap_line_xdyd::@4 -bitmap_line_xdyd::@4: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@1 - [728] bitmap_line_xdyd::x#2 = ++ bitmap_line_xdyd::x#3 - [729] bitmap_line_xdyd::e#1 = bitmap_line_xdyd::e#3 + bitmap_line_xdyd::yd#2 - [730] if(bitmap_line_xdyd::xd#5>=bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 - to:bitmap_line_xdyd::@3 -bitmap_line_xdyd::@3: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@4 - [731] bitmap_line_xdyd::y#2 = -- bitmap_line_xdyd::y#3 - [732] bitmap_line_xdyd::e#2 = bitmap_line_xdyd::e#1 - bitmap_line_xdyd::xd#5 - to:bitmap_line_xdyd::@2 -bitmap_line_xdyd::@2: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@3 bitmap_line_xdyd::@4 - [733] bitmap_line_xdyd::e#6 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::e#2, bitmap_line_xdyd::@4/bitmap_line_xdyd::e#1 ) - [733] bitmap_line_xdyd::y#6 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::y#2, bitmap_line_xdyd::@4/bitmap_line_xdyd::y#3 ) - [734] bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#6 + 1 - [735] if(bitmap_line_xdyd::x#2!=bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1 - to:bitmap_line_xdyd::@return -bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2 - [736] return - to:@return - -unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) -divr16u: scope:[divr16u] from modr16u - [737] phi() - to:divr16u::@1 -divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 - [738] divr16u::i#2 = phi( divr16u/0, divr16u::@3/divr16u::i#1 ) - [738] divr16u::quotient#3 = phi( divr16u/0, divr16u::@3/divr16u::return#0 ) - [738] divr16u::dividend#2 = phi( divr16u/divr16u::dividend#1, divr16u::@3/divr16u::dividend#0 ) - [738] divr16u::rem#4 = phi( divr16u/0, divr16u::@3/divr16u::rem#10 ) - [739] divr16u::rem#0 = divr16u::rem#4 << 1 - [740] divr16u::$1 = byte1 divr16u::dividend#2 - [741] divr16u::$2 = divr16u::$1 & $80 - [742] if(divr16u::$2==0) goto divr16u::@2 - to:divr16u::@4 -divr16u::@4: scope:[divr16u] from divr16u::@1 - [743] divr16u::rem#1 = divr16u::rem#0 | 1 - to:divr16u::@2 -divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4 - [744] divr16u::rem#5 = phi( divr16u::@1/divr16u::rem#0, divr16u::@4/divr16u::rem#1 ) - [745] divr16u::dividend#0 = divr16u::dividend#2 << 1 - [746] divr16u::quotient#1 = divr16u::quotient#3 << 1 - [747] if(divr16u::rem#5 conio_screen_height - gotoxy::$1 = ! gotoxy::$0 - if(gotoxy::$1) goto gotoxy::@1 - to:gotoxy::@3 -gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 - gotoxy::y#9 = phi( gotoxy/gotoxy::y#7, gotoxy::@3/gotoxy::y#0 ) - gotoxy::x#7 = phi( gotoxy/gotoxy::x#9, gotoxy::@3/gotoxy::x#10 ) - gotoxy::$2 = gotoxy::x#7 >= conio_screen_width - gotoxy::$3 = ! gotoxy::$2 - if(gotoxy::$3) goto gotoxy::@2 - to:gotoxy::@4 -gotoxy::@3: scope:[gotoxy] from gotoxy - gotoxy::x#10 = phi( gotoxy/gotoxy::x#9 ) - gotoxy::y#0 = 0 - to:gotoxy::@1 -gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@4 - gotoxy::y#8 = phi( gotoxy::@1/gotoxy::y#9, gotoxy::@4/gotoxy::y#10 ) - gotoxy::x#8 = phi( gotoxy::@1/gotoxy::x#7, gotoxy::@4/gotoxy::x#0 ) - conio_cursor_x[conio_screen_layer] = gotoxy::x#8 - conio_cursor_y[conio_screen_layer] = gotoxy::y#8 - gotoxy::$6 = (unsigned int)gotoxy::y#8 - gotoxy::line_offset#0 = gotoxy::$6 << conio_rowshift - gotoxy::$5 = conio_screen_layer * SIZEOF_UNSIGNED_INT - conio_line_text[gotoxy::$5] = gotoxy::line_offset#0 - to:gotoxy::@return -gotoxy::@4: scope:[gotoxy] from gotoxy::@1 - gotoxy::y#10 = phi( gotoxy::@1/gotoxy::y#9 ) - gotoxy::x#0 = 0 - to:gotoxy::@2 -gotoxy::@return: scope:[gotoxy] from gotoxy::@2 - return - to:@return - -void screensize(char *x , char *y) -screensize: scope:[screensize] from conio_x16_init::@3 - screensize::y#1 = phi( conio_x16_init::@3/screensize::y#0 ) - screensize::x#1 = phi( conio_x16_init::@3/screensize::x#0 ) - screensize::hscale#0 = *VERA_DC_HSCALE >> 7 - screensize::$1 = $28 << screensize::hscale#0 - *screensize::x#1 = screensize::$1 - screensize::vscale#0 = *VERA_DC_VSCALE >> 7 - screensize::$3 = $1e << screensize::vscale#0 - *screensize::y#1 = screensize::$3 - to:screensize::@return -screensize::@return: scope:[screensize] from screensize - return - to:@return - -__stackcall void cputc(char c) -cputc: scope:[cputc] from - CONIO_SCREEN_BANK#33 = phi( ) - CONIO_SCREEN_TEXT#27 = phi( ) - cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C) - vera_layer_get_color::layer#0 = conio_screen_layer - call vera_layer_get_color - vera_layer_get_color::return#0 = vera_layer_get_color::return#3 - to:cputc::@7 -cputc::@7: scope:[cputc] from cputc - CONIO_SCREEN_BANK#23 = phi( cputc/CONIO_SCREEN_BANK#33 ) - cputc::c#1 = phi( cputc/cputc::c#0 ) - CONIO_SCREEN_TEXT#12 = phi( cputc/CONIO_SCREEN_TEXT#27 ) - vera_layer_get_color::return#5 = phi( cputc/vera_layer_get_color::return#0 ) - cputc::color#0 = vera_layer_get_color::return#5 - cputc::$15 = conio_screen_layer * SIZEOF_UNSIGNED_INT - cputc::conio_addr#0 = CONIO_SCREEN_TEXT#12 + conio_line_text[cputc::$15] - cputc::$2 = conio_cursor_x[conio_screen_layer] << 1 - cputc::conio_addr#1 = cputc::conio_addr#0 + cputc::$2 - cputc::$3 = cputc::c#1 == ' -' - if(cputc::$3) goto cputc::@1 - to:cputc::@2 -cputc::@1: scope:[cputc] from cputc::@7 - CONIO_SCREEN_TEXT#82 = phi( cputc::@7/CONIO_SCREEN_TEXT#12 ) - call cputln - to:cputc::@8 -cputc::@8: scope:[cputc] from cputc::@1 - to:cputc::@return -cputc::@2: scope:[cputc] from cputc::@7 - CONIO_SCREEN_TEXT#93 = phi( cputc::@7/CONIO_SCREEN_TEXT#12 ) - cputc::color#1 = phi( cputc::@7/cputc::color#0 ) - cputc::c#2 = phi( cputc::@7/cputc::c#1 ) - CONIO_SCREEN_BANK#12 = phi( cputc::@7/CONIO_SCREEN_BANK#23 ) - cputc::conio_addr#2 = phi( cputc::@7/cputc::conio_addr#1 ) - *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL - cputc::$4 = byte0 cputc::conio_addr#2 - *VERA_ADDRX_L = cputc::$4 - cputc::$5 = byte1 cputc::conio_addr#2 - *VERA_ADDRX_M = cputc::$5 - cputc::$6 = CONIO_SCREEN_BANK#12 | VERA_INC_1 - *VERA_ADDRX_H = cputc::$6 - *VERA_DATA0 = cputc::c#2 - *VERA_DATA0 = cputc::color#1 - conio_cursor_x[conio_screen_layer] = ++ conio_cursor_x[conio_screen_layer] - cputc::scroll_enable#0 = conio_scroll_enable[conio_screen_layer] - cputc::$17 = 0 != cputc::scroll_enable#0 - if(cputc::$17) goto cputc::@5 - to:cputc::@3 -cputc::@5: scope:[cputc] from cputc::@2 - CONIO_SCREEN_TEXT#89 = phi( cputc::@2/CONIO_SCREEN_TEXT#93 ) - cputc::$11 = conio_cursor_x[conio_screen_layer] == conio_screen_width - cputc::$12 = ! cputc::$11 - if(cputc::$12) goto cputc::@return - to:cputc::@6 -cputc::@3: scope:[cputc] from cputc::@2 - CONIO_SCREEN_TEXT#88 = phi( cputc::@2/CONIO_SCREEN_TEXT#93 ) - cputc::$16 = (unsigned int)conio_cursor_x[conio_screen_layer] - cputc::$8 = cputc::$16 == conio_width - cputc::$9 = ! cputc::$8 - if(cputc::$9) goto cputc::@return - to:cputc::@4 -cputc::@4: scope:[cputc] from cputc::@3 - CONIO_SCREEN_TEXT#83 = phi( cputc::@3/CONIO_SCREEN_TEXT#88 ) - call cputln - to:cputc::@9 -cputc::@9: scope:[cputc] from cputc::@4 - to:cputc::@return -cputc::@6: scope:[cputc] from cputc::@5 - CONIO_SCREEN_TEXT#84 = phi( cputc::@5/CONIO_SCREEN_TEXT#89 ) - call cputln - to:cputc::@10 -cputc::@10: scope:[cputc] from cputc::@6 - to:cputc::@return -cputc::@return: scope:[cputc] from cputc::@10 cputc::@3 cputc::@5 cputc::@8 cputc::@9 - return - to:@return - -void cputln() -cputln: scope:[cputln] from cputc::@1 cputc::@4 cputc::@6 - CONIO_SCREEN_TEXT#76 = phi( cputc::@1/CONIO_SCREEN_TEXT#82, cputc::@4/CONIO_SCREEN_TEXT#83, cputc::@6/CONIO_SCREEN_TEXT#84 ) - cputln::$2 = conio_screen_layer * SIZEOF_UNSIGNED_INT - cputln::temp#0 = conio_line_text[cputln::$2] - cputln::temp#1 = cputln::temp#0 + conio_rowskip - cputln::$3 = conio_screen_layer * SIZEOF_UNSIGNED_INT - conio_line_text[cputln::$3] = cputln::temp#1 - conio_cursor_x[conio_screen_layer] = 0 - conio_cursor_y[conio_screen_layer] = ++ conio_cursor_y[conio_screen_layer] - call cscroll - to:cputln::@1 -cputln::@1: scope:[cputln] from cputln - to:cputln::@return -cputln::@return: scope:[cputln] from cputln::@1 - return - to:@return - -char kbhit() -kbhit: scope:[kbhit] from main::@1 main::@4 - kbhit::ch = 0 - kickasm( uses kbhit::chptr uses kbhit::IN_DEV uses kbhit::GETIN) {{ jsr _kbhit - bne L3 - - jmp continue1 - - .var via1 = $9f60 //VIA#1 - .var d1pra = via1+1 - - _kbhit: - ldy d1pra // The count of keys pressed is stored in RAM bank 0. - stz d1pra // Set d1pra to zero to access RAM bank 0. - lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). - sty d1pra // Set d1pra to previous value. - rts - - L3: - ldy IN_DEV // Save current input device - stz IN_DEV // Keyboard - phy - jsr GETIN // Read char, and return in .A - ply - sta chptr // Store the character read in ch - sty IN_DEV // Restore input device - ldx #>$0000 - rts - - continue1: - nop - }} - kbhit::return#0 = kbhit::ch - to:kbhit::@return -kbhit::@return: scope:[kbhit] from kbhit - kbhit::return#4 = phi( kbhit/kbhit::return#0 ) - kbhit::return#1 = kbhit::return#4 - return - to:@return - -char vera_display_get_hscale() -vera_display_get_hscale: scope:[vera_display_get_hscale] from bitmap_init::@16 - vera_display_get_hscale::scale#0 = 0 - vera_display_get_hscale::s#0 = 1 - to:vera_display_get_hscale::@1 -vera_display_get_hscale::@1: scope:[vera_display_get_hscale] from vera_display_get_hscale vera_display_get_hscale::@2 - vera_display_get_hscale::scale#4 = phi( vera_display_get_hscale/vera_display_get_hscale::scale#0, vera_display_get_hscale::@2/vera_display_get_hscale::scale#3 ) - vera_display_get_hscale::s#2 = phi( vera_display_get_hscale/vera_display_get_hscale::s#0, vera_display_get_hscale::@2/vera_display_get_hscale::s#1 ) - vera_display_get_hscale::$0 = *VERA_DC_HSCALE == vera_display_get_hscale::hscale[vera_display_get_hscale::s#2] - vera_display_get_hscale::$1 = ! vera_display_get_hscale::$0 - if(vera_display_get_hscale::$1) goto vera_display_get_hscale::@2 - to:vera_display_get_hscale::@4 -vera_display_get_hscale::@2: scope:[vera_display_get_hscale] from vera_display_get_hscale::@1 - vera_display_get_hscale::scale#3 = phi( vera_display_get_hscale::@1/vera_display_get_hscale::scale#4 ) - vera_display_get_hscale::s#3 = phi( vera_display_get_hscale::@1/vera_display_get_hscale::s#2 ) - vera_display_get_hscale::s#1 = vera_display_get_hscale::s#3 + rangenext(1,3) - vera_display_get_hscale::$2 = vera_display_get_hscale::s#1 != rangelast(1,3) - if(vera_display_get_hscale::$2) goto vera_display_get_hscale::@1 - to:vera_display_get_hscale::@3 -vera_display_get_hscale::@4: scope:[vera_display_get_hscale] from vera_display_get_hscale::@1 - vera_display_get_hscale::s#4 = phi( vera_display_get_hscale::@1/vera_display_get_hscale::s#2 ) - vera_display_get_hscale::scale#1 = vera_display_get_hscale::s#4 - to:vera_display_get_hscale::@3 -vera_display_get_hscale::@3: scope:[vera_display_get_hscale] from vera_display_get_hscale::@2 vera_display_get_hscale::@4 - vera_display_get_hscale::scale#2 = phi( vera_display_get_hscale::@2/vera_display_get_hscale::scale#3, vera_display_get_hscale::@4/vera_display_get_hscale::scale#1 ) - vera_display_get_hscale::return#0 = vera_display_get_hscale::scale#2 - to:vera_display_get_hscale::@return -vera_display_get_hscale::@return: scope:[vera_display_get_hscale] from vera_display_get_hscale::@3 - vera_display_get_hscale::return#3 = phi( vera_display_get_hscale::@3/vera_display_get_hscale::return#0 ) - vera_display_get_hscale::return#1 = vera_display_get_hscale::return#3 - return - to:@return - -char vera_display_get_vscale() -vera_display_get_vscale: scope:[vera_display_get_vscale] from bitmap_init::@17 - vera_display_get_vscale::scale#0 = 0 - vera_display_get_vscale::s#0 = 1 - to:vera_display_get_vscale::@1 -vera_display_get_vscale::@1: scope:[vera_display_get_vscale] from vera_display_get_vscale vera_display_get_vscale::@2 - vera_display_get_vscale::scale#4 = phi( vera_display_get_vscale/vera_display_get_vscale::scale#0, vera_display_get_vscale::@2/vera_display_get_vscale::scale#3 ) - vera_display_get_vscale::s#2 = phi( vera_display_get_vscale/vera_display_get_vscale::s#0, vera_display_get_vscale::@2/vera_display_get_vscale::s#1 ) - vera_display_get_vscale::$0 = *VERA_DC_VSCALE == vera_display_get_vscale::vscale[vera_display_get_vscale::s#2] - vera_display_get_vscale::$1 = ! vera_display_get_vscale::$0 - if(vera_display_get_vscale::$1) goto vera_display_get_vscale::@2 - to:vera_display_get_vscale::@4 -vera_display_get_vscale::@2: scope:[vera_display_get_vscale] from vera_display_get_vscale::@1 - vera_display_get_vscale::scale#3 = phi( vera_display_get_vscale::@1/vera_display_get_vscale::scale#4 ) - vera_display_get_vscale::s#3 = phi( vera_display_get_vscale::@1/vera_display_get_vscale::s#2 ) - vera_display_get_vscale::s#1 = vera_display_get_vscale::s#3 + rangenext(1,3) - vera_display_get_vscale::$2 = vera_display_get_vscale::s#1 != rangelast(1,3) - if(vera_display_get_vscale::$2) goto vera_display_get_vscale::@1 - to:vera_display_get_vscale::@3 -vera_display_get_vscale::@4: scope:[vera_display_get_vscale] from vera_display_get_vscale::@1 - vera_display_get_vscale::s#4 = phi( vera_display_get_vscale::@1/vera_display_get_vscale::s#2 ) - vera_display_get_vscale::scale#1 = vera_display_get_vscale::s#4 - to:vera_display_get_vscale::@3 -vera_display_get_vscale::@3: scope:[vera_display_get_vscale] from vera_display_get_vscale::@2 vera_display_get_vscale::@4 - vera_display_get_vscale::scale#2 = phi( vera_display_get_vscale::@2/vera_display_get_vscale::scale#3, vera_display_get_vscale::@4/vera_display_get_vscale::scale#1 ) - vera_display_get_vscale::return#0 = vera_display_get_vscale::scale#2 - to:vera_display_get_vscale::@return -vera_display_get_vscale::@return: scope:[vera_display_get_vscale] from vera_display_get_vscale::@3 - vera_display_get_vscale::return#3 = phi( vera_display_get_vscale::@3/vera_display_get_vscale::return#0 ) - vera_display_get_vscale::return#1 = vera_display_get_vscale::return#3 - return - to:@return - -void vera_layer_set_config(char layer , char config) -vera_layer_set_config: scope:[vera_layer_set_config] from vera_layer_mode_bitmap::@10 vera_layer_mode_tile::@24 - vera_layer_set_config::config#2 = phi( vera_layer_mode_bitmap::@10/vera_layer_set_config::config#1, vera_layer_mode_tile::@24/vera_layer_set_config::config#0 ) - vera_layer_set_config::layer#2 = phi( vera_layer_mode_bitmap::@10/vera_layer_set_config::layer#1, vera_layer_mode_tile::@24/vera_layer_set_config::layer#0 ) - vera_layer_set_config::$0 = vera_layer_set_config::layer#2 * SIZEOF_POINTER - vera_layer_set_config::addr#0 = vera_layer_config[vera_layer_set_config::$0] - *vera_layer_set_config::addr#0 = vera_layer_set_config::config#2 - to:vera_layer_set_config::@return -vera_layer_set_config::@return: scope:[vera_layer_set_config] from vera_layer_set_config - return - to:@return - -void vera_layer_set_text_color_mode(char layer , char color_mode) -vera_layer_set_text_color_mode: scope:[vera_layer_set_text_color_mode] from vera_layer_mode_text::@2 vera_layer_mode_text::@3 - vera_layer_set_text_color_mode::color_mode#2 = phi( vera_layer_mode_text::@2/vera_layer_set_text_color_mode::color_mode#0, vera_layer_mode_text::@3/vera_layer_set_text_color_mode::color_mode#1 ) - vera_layer_set_text_color_mode::layer#2 = phi( vera_layer_mode_text::@2/vera_layer_set_text_color_mode::layer#0, vera_layer_mode_text::@3/vera_layer_set_text_color_mode::layer#1 ) - vera_layer_set_text_color_mode::$0 = vera_layer_set_text_color_mode::layer#2 * SIZEOF_POINTER - vera_layer_set_text_color_mode::addr#0 = vera_layer_config[vera_layer_set_text_color_mode::$0] - *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C - *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 | vera_layer_set_text_color_mode::color_mode#2 - to:vera_layer_set_text_color_mode::@return -vera_layer_set_text_color_mode::@return: scope:[vera_layer_set_text_color_mode] from vera_layer_set_text_color_mode - return - to:@return - -void vera_layer_set_mapbase(char layer , char mapbase) -vera_layer_set_mapbase: scope:[vera_layer_set_mapbase] from conio_x16_init::@7 conio_x16_init::@8 vera_layer_mode_tile::@33 - vera_layer_set_mapbase::mapbase#3 = phi( conio_x16_init::@7/vera_layer_set_mapbase::mapbase#1, conio_x16_init::@8/vera_layer_set_mapbase::mapbase#2, vera_layer_mode_tile::@33/vera_layer_set_mapbase::mapbase#0 ) - vera_layer_set_mapbase::layer#3 = phi( conio_x16_init::@7/vera_layer_set_mapbase::layer#1, conio_x16_init::@8/vera_layer_set_mapbase::layer#2, vera_layer_mode_tile::@33/vera_layer_set_mapbase::layer#0 ) - vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 * SIZEOF_POINTER - vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] - *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 - to:vera_layer_set_mapbase::@return -vera_layer_set_mapbase::@return: scope:[vera_layer_set_mapbase] from vera_layer_set_mapbase - return - to:@return - -char vera_layer_get_mapbase_bank(char layer) -vera_layer_get_mapbase_bank: scope:[vera_layer_get_mapbase_bank] from screenlayer - vera_layer_get_mapbase_bank::layer#1 = phi( screenlayer/vera_layer_get_mapbase_bank::layer#0 ) - vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#1] - to:vera_layer_get_mapbase_bank::@return -vera_layer_get_mapbase_bank::@return: scope:[vera_layer_get_mapbase_bank] from vera_layer_get_mapbase_bank - vera_layer_get_mapbase_bank::return#3 = phi( vera_layer_get_mapbase_bank/vera_layer_get_mapbase_bank::return#0 ) - vera_layer_get_mapbase_bank::return#1 = vera_layer_get_mapbase_bank::return#3 - return - to:@return - -unsigned int vera_layer_get_mapbase_offset(char layer) -vera_layer_get_mapbase_offset: scope:[vera_layer_get_mapbase_offset] from screenlayer::@3 - vera_layer_get_mapbase_offset::layer#1 = phi( screenlayer::@3/vera_layer_get_mapbase_offset::layer#0 ) - vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#1 * SIZEOF_UNSIGNED_INT - vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] - to:vera_layer_get_mapbase_offset::@return -vera_layer_get_mapbase_offset::@return: scope:[vera_layer_get_mapbase_offset] from vera_layer_get_mapbase_offset - vera_layer_get_mapbase_offset::return#3 = phi( vera_layer_get_mapbase_offset/vera_layer_get_mapbase_offset::return#0 ) - vera_layer_get_mapbase_offset::return#1 = vera_layer_get_mapbase_offset::return#3 - return - to:@return - -void vera_layer_set_tilebase(char layer , char tilebase) -vera_layer_set_tilebase: scope:[vera_layer_set_tilebase] from vera_layer_mode_bitmap::@13 vera_layer_mode_tile::@32 - vera_layer_set_tilebase::tilebase#2 = phi( vera_layer_mode_bitmap::@13/vera_layer_set_tilebase::tilebase#1, vera_layer_mode_tile::@32/vera_layer_set_tilebase::tilebase#0 ) - vera_layer_set_tilebase::layer#2 = phi( vera_layer_mode_bitmap::@13/vera_layer_set_tilebase::layer#1, vera_layer_mode_tile::@32/vera_layer_set_tilebase::layer#0 ) - vera_layer_set_tilebase::$0 = vera_layer_set_tilebase::layer#2 * SIZEOF_POINTER - vera_layer_set_tilebase::addr#0 = vera_layer_tilebase[vera_layer_set_tilebase::$0] - *vera_layer_set_tilebase::addr#0 = vera_layer_set_tilebase::tilebase#2 - to:vera_layer_set_tilebase::@return -vera_layer_set_tilebase::@return: scope:[vera_layer_set_tilebase] from vera_layer_set_tilebase - return - to:@return - -char vera_layer_set_textcolor(char layer , char color) -vera_layer_set_textcolor: scope:[vera_layer_set_textcolor] from conio_x16_init::@5 main::textcolor1 main::textcolor2 main::textcolor3 main::textcolor4 main::textcolor5 - vera_layer_set_textcolor::color#6 = phi( conio_x16_init::@5/vera_layer_set_textcolor::color#0, main::textcolor1/vera_layer_set_textcolor::color#1, main::textcolor2/vera_layer_set_textcolor::color#2, main::textcolor3/vera_layer_set_textcolor::color#3, main::textcolor4/vera_layer_set_textcolor::color#4, main::textcolor5/vera_layer_set_textcolor::color#5 ) - vera_layer_set_textcolor::layer#6 = phi( conio_x16_init::@5/vera_layer_set_textcolor::layer#0, main::textcolor1/vera_layer_set_textcolor::layer#1, main::textcolor2/vera_layer_set_textcolor::layer#2, main::textcolor3/vera_layer_set_textcolor::layer#3, main::textcolor4/vera_layer_set_textcolor::layer#4, main::textcolor5/vera_layer_set_textcolor::layer#5 ) - vera_layer_set_textcolor::old#0 = vera_layer_textcolor[vera_layer_set_textcolor::layer#6] - vera_layer_textcolor[vera_layer_set_textcolor::layer#6] = vera_layer_set_textcolor::color#6 - vera_layer_set_textcolor::return#0 = vera_layer_set_textcolor::old#0 - to:vera_layer_set_textcolor::@return -vera_layer_set_textcolor::@return: scope:[vera_layer_set_textcolor] from vera_layer_set_textcolor - vera_layer_set_textcolor::return#8 = phi( vera_layer_set_textcolor/vera_layer_set_textcolor::return#0 ) - vera_layer_set_textcolor::return#1 = vera_layer_set_textcolor::return#8 - return - to:@return - -char vera_layer_get_textcolor(char layer) -vera_layer_get_textcolor: scope:[vera_layer_get_textcolor] from clrscr::@7 - vera_layer_get_textcolor::layer#1 = phi( clrscr::@7/vera_layer_get_textcolor::layer#0 ) - vera_layer_get_textcolor::return#1 = vera_layer_textcolor[vera_layer_get_textcolor::layer#1] - to:vera_layer_get_textcolor::@return -vera_layer_get_textcolor::@return: scope:[vera_layer_get_textcolor] from vera_layer_get_textcolor - vera_layer_get_textcolor::return#4 = phi( vera_layer_get_textcolor/vera_layer_get_textcolor::return#1 ) - vera_layer_get_textcolor::return#2 = vera_layer_get_textcolor::return#4 - return - to:@return - -char vera_layer_set_backcolor(char layer , char color) -vera_layer_set_backcolor: scope:[vera_layer_set_backcolor] from conio_x16_init::@6 main::bgcolor1 main::bgcolor2 main::bgcolor3 - vera_layer_set_backcolor::color#4 = phi( conio_x16_init::@6/vera_layer_set_backcolor::color#0, main::bgcolor1/vera_layer_set_backcolor::color#1, main::bgcolor2/vera_layer_set_backcolor::color#2, main::bgcolor3/vera_layer_set_backcolor::color#3 ) - vera_layer_set_backcolor::layer#4 = phi( conio_x16_init::@6/vera_layer_set_backcolor::layer#0, main::bgcolor1/vera_layer_set_backcolor::layer#1, main::bgcolor2/vera_layer_set_backcolor::layer#2, main::bgcolor3/vera_layer_set_backcolor::layer#3 ) - vera_layer_set_backcolor::old#0 = vera_layer_backcolor[vera_layer_set_backcolor::layer#4] - vera_layer_backcolor[vera_layer_set_backcolor::layer#4] = vera_layer_set_backcolor::color#4 - vera_layer_set_backcolor::return#0 = vera_layer_set_backcolor::old#0 - to:vera_layer_set_backcolor::@return -vera_layer_set_backcolor::@return: scope:[vera_layer_set_backcolor] from vera_layer_set_backcolor - vera_layer_set_backcolor::return#6 = phi( vera_layer_set_backcolor/vera_layer_set_backcolor::return#0 ) - vera_layer_set_backcolor::return#1 = vera_layer_set_backcolor::return#6 - return - to:@return - -char vera_layer_get_backcolor(char layer) -vera_layer_get_backcolor: scope:[vera_layer_get_backcolor] from clrscr - vera_layer_get_backcolor::layer#1 = phi( clrscr/vera_layer_get_backcolor::layer#0 ) - vera_layer_get_backcolor::return#1 = vera_layer_backcolor[vera_layer_get_backcolor::layer#1] - to:vera_layer_get_backcolor::@return -vera_layer_get_backcolor::@return: scope:[vera_layer_get_backcolor] from vera_layer_get_backcolor - vera_layer_get_backcolor::return#4 = phi( vera_layer_get_backcolor/vera_layer_get_backcolor::return#1 ) - vera_layer_get_backcolor::return#2 = vera_layer_get_backcolor::return#4 - return - to:@return - -char vera_layer_get_color(char layer) -vera_layer_get_color: scope:[vera_layer_get_color] from clearline cputc - vera_layer_get_color::layer#2 = phi( clearline/vera_layer_get_color::layer#1, cputc/vera_layer_get_color::layer#0 ) - vera_layer_get_color::$3 = vera_layer_get_color::layer#2 * SIZEOF_POINTER - vera_layer_get_color::addr#0 = vera_layer_config[vera_layer_get_color::$3] - vera_layer_get_color::$0 = *vera_layer_get_color::addr#0 & VERA_LAYER_CONFIG_256C - vera_layer_get_color::$4 = 0 != vera_layer_get_color::$0 - if(vera_layer_get_color::$4) goto vera_layer_get_color::@1 - to:vera_layer_get_color::@2 -vera_layer_get_color::@1: scope:[vera_layer_get_color] from vera_layer_get_color - vera_layer_get_color::layer#3 = phi( vera_layer_get_color/vera_layer_get_color::layer#2 ) - vera_layer_get_color::return#1 = vera_layer_textcolor[vera_layer_get_color::layer#3] - to:vera_layer_get_color::@return -vera_layer_get_color::@2: scope:[vera_layer_get_color] from vera_layer_get_color - vera_layer_get_color::layer#4 = phi( vera_layer_get_color/vera_layer_get_color::layer#2 ) - vera_layer_get_color::$1 = vera_layer_backcolor[vera_layer_get_color::layer#4] << 4 - vera_layer_get_color::$2 = vera_layer_get_color::$1 | vera_layer_textcolor[vera_layer_get_color::layer#4] - vera_layer_get_color::return#2 = vera_layer_get_color::$2 - to:vera_layer_get_color::@return -vera_layer_get_color::@return: scope:[vera_layer_get_color] from vera_layer_get_color::@1 vera_layer_get_color::@2 - vera_layer_get_color::return#6 = phi( vera_layer_get_color::@1/vera_layer_get_color::return#1, vera_layer_get_color::@2/vera_layer_get_color::return#2 ) - vera_layer_get_color::return#3 = vera_layer_get_color::return#6 - return - to:@return - -char vera_layer_get_rowshift(char layer) -vera_layer_get_rowshift: scope:[vera_layer_get_rowshift] from screenlayer::@1 - vera_layer_get_rowshift::layer#1 = phi( screenlayer::@1/vera_layer_get_rowshift::layer#0 ) - vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#1] - to:vera_layer_get_rowshift::@return -vera_layer_get_rowshift::@return: scope:[vera_layer_get_rowshift] from vera_layer_get_rowshift - vera_layer_get_rowshift::return#3 = phi( vera_layer_get_rowshift/vera_layer_get_rowshift::return#0 ) - vera_layer_get_rowshift::return#1 = vera_layer_get_rowshift::return#3 - return - to:@return - -unsigned int vera_layer_get_rowskip(char layer) -vera_layer_get_rowskip: scope:[vera_layer_get_rowskip] from screenlayer::@5 - vera_layer_get_rowskip::layer#1 = phi( screenlayer::@5/vera_layer_get_rowskip::layer#0 ) - vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#1 * SIZEOF_UNSIGNED_INT - vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] - to:vera_layer_get_rowskip::@return -vera_layer_get_rowskip::@return: scope:[vera_layer_get_rowskip] from vera_layer_get_rowskip - vera_layer_get_rowskip::return#3 = phi( vera_layer_get_rowskip/vera_layer_get_rowskip::return#0 ) - vera_layer_get_rowskip::return#1 = vera_layer_get_rowskip::return#3 - return - to:@return - -void vera_layer_mode_tile(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , char color_depth) -vera_layer_mode_tile: scope:[vera_layer_mode_tile] from main::@17 vera_layer_mode_text - vera_layer_mode_tile::tileheight#31 = phi( main::@17/vera_layer_mode_tile::tileheight#1, vera_layer_mode_text/vera_layer_mode_tile::tileheight#0 ) - vera_layer_mode_tile::tilewidth#27 = phi( main::@17/vera_layer_mode_tile::tilewidth#1, vera_layer_mode_text/vera_layer_mode_tile::tilewidth#0 ) - vera_layer_mode_tile::tilebase_address#27 = phi( main::@17/vera_layer_mode_tile::tilebase_address#2, vera_layer_mode_text/vera_layer_mode_tile::tilebase_address#1 ) - vera_layer_mode_tile::mapbase_address#26 = phi( main::@17/vera_layer_mode_tile::mapbase_address#2, vera_layer_mode_text/vera_layer_mode_tile::mapbase_address#1 ) - vera_layer_mode_tile::mapheight#19 = phi( main::@17/vera_layer_mode_tile::mapheight#1, vera_layer_mode_text/vera_layer_mode_tile::mapheight#0 ) - vera_layer_mode_tile::layer#31 = phi( main::@17/vera_layer_mode_tile::layer#1, vera_layer_mode_text/vera_layer_mode_tile::layer#0 ) - vera_layer_mode_tile::mapwidth#11 = phi( main::@17/vera_layer_mode_tile::mapwidth#1, vera_layer_mode_text/vera_layer_mode_tile::mapwidth#0 ) - vera_layer_mode_tile::color_depth#2 = phi( main::@17/vera_layer_mode_tile::color_depth#1, vera_layer_mode_text/vera_layer_mode_tile::color_depth#0 ) - vera_layer_mode_tile::config#0 = 0 - if(vera_layer_mode_tile::color_depth#2==1) goto vera_layer_mode_tile::@4 - to:vera_layer_mode_tile::@1 -vera_layer_mode_tile::@4: scope:[vera_layer_mode_tile] from vera_layer_mode_tile - vera_layer_mode_tile::tileheight#27 = phi( vera_layer_mode_tile/vera_layer_mode_tile::tileheight#31 ) - vera_layer_mode_tile::tilewidth#23 = phi( vera_layer_mode_tile/vera_layer_mode_tile::tilewidth#27 ) - vera_layer_mode_tile::tilebase_address#23 = phi( vera_layer_mode_tile/vera_layer_mode_tile::tilebase_address#27 ) - vera_layer_mode_tile::mapbase_address#22 = phi( vera_layer_mode_tile/vera_layer_mode_tile::mapbase_address#26 ) - vera_layer_mode_tile::mapheight#15 = phi( vera_layer_mode_tile/vera_layer_mode_tile::mapheight#19 ) - vera_layer_mode_tile::layer#23 = phi( vera_layer_mode_tile/vera_layer_mode_tile::layer#31 ) - vera_layer_mode_tile::mapwidth#7 = phi( vera_layer_mode_tile/vera_layer_mode_tile::mapwidth#11 ) - vera_layer_mode_tile::config#13 = phi( vera_layer_mode_tile/vera_layer_mode_tile::config#0 ) - vera_layer_mode_tile::config#1 = vera_layer_mode_tile::config#13 | VERA_LAYER_COLOR_DEPTH_1BPP - to:vera_layer_mode_tile::@8 -vera_layer_mode_tile::@1: scope:[vera_layer_mode_tile] from vera_layer_mode_tile - vera_layer_mode_tile::tileheight#32 = phi( vera_layer_mode_tile/vera_layer_mode_tile::tileheight#31 ) - vera_layer_mode_tile::tilewidth#28 = phi( vera_layer_mode_tile/vera_layer_mode_tile::tilewidth#27 ) - vera_layer_mode_tile::tilebase_address#28 = phi( vera_layer_mode_tile/vera_layer_mode_tile::tilebase_address#27 ) - vera_layer_mode_tile::mapbase_address#27 = phi( vera_layer_mode_tile/vera_layer_mode_tile::mapbase_address#26 ) - vera_layer_mode_tile::mapheight#20 = phi( vera_layer_mode_tile/vera_layer_mode_tile::mapheight#19 ) - vera_layer_mode_tile::layer#32 = phi( vera_layer_mode_tile/vera_layer_mode_tile::layer#31 ) - vera_layer_mode_tile::mapwidth#12 = phi( vera_layer_mode_tile/vera_layer_mode_tile::mapwidth#11 ) - vera_layer_mode_tile::config#26 = phi( vera_layer_mode_tile/vera_layer_mode_tile::config#0 ) - vera_layer_mode_tile::color_depth#3 = phi( vera_layer_mode_tile/vera_layer_mode_tile::color_depth#2 ) - if(vera_layer_mode_tile::color_depth#3==2) goto vera_layer_mode_tile::@5 - to:vera_layer_mode_tile::@2 -vera_layer_mode_tile::@5: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@1 - vera_layer_mode_tile::tileheight#28 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::tileheight#32 ) - vera_layer_mode_tile::tilewidth#24 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::tilewidth#28 ) - vera_layer_mode_tile::tilebase_address#24 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::tilebase_address#28 ) - vera_layer_mode_tile::mapbase_address#23 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::mapbase_address#27 ) - vera_layer_mode_tile::mapheight#16 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::mapheight#20 ) - vera_layer_mode_tile::layer#24 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::layer#32 ) - vera_layer_mode_tile::mapwidth#8 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::mapwidth#12 ) - vera_layer_mode_tile::config#14 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::config#26 ) - vera_layer_mode_tile::config#2 = vera_layer_mode_tile::config#14 | VERA_LAYER_COLOR_DEPTH_2BPP - to:vera_layer_mode_tile::@8 -vera_layer_mode_tile::@2: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@1 - vera_layer_mode_tile::tileheight#33 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::tileheight#32 ) - vera_layer_mode_tile::tilewidth#29 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::tilewidth#28 ) - vera_layer_mode_tile::tilebase_address#29 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::tilebase_address#28 ) - vera_layer_mode_tile::mapbase_address#28 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::mapbase_address#27 ) - vera_layer_mode_tile::mapheight#21 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::mapheight#20 ) - vera_layer_mode_tile::layer#33 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::layer#32 ) - vera_layer_mode_tile::mapwidth#13 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::mapwidth#12 ) - vera_layer_mode_tile::config#27 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::config#26 ) - vera_layer_mode_tile::color_depth#4 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::color_depth#3 ) - if(vera_layer_mode_tile::color_depth#4==4) goto vera_layer_mode_tile::@6 - to:vera_layer_mode_tile::@3 -vera_layer_mode_tile::@6: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@2 - vera_layer_mode_tile::tileheight#29 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::tileheight#33 ) - vera_layer_mode_tile::tilewidth#25 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::tilewidth#29 ) - vera_layer_mode_tile::tilebase_address#25 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::tilebase_address#29 ) - vera_layer_mode_tile::mapbase_address#24 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::mapbase_address#28 ) - vera_layer_mode_tile::mapheight#17 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::mapheight#21 ) - vera_layer_mode_tile::layer#25 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::layer#33 ) - vera_layer_mode_tile::mapwidth#9 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::mapwidth#13 ) - vera_layer_mode_tile::config#15 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::config#27 ) - vera_layer_mode_tile::config#3 = vera_layer_mode_tile::config#15 | VERA_LAYER_COLOR_DEPTH_4BPP - to:vera_layer_mode_tile::@8 -vera_layer_mode_tile::@3: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@2 - vera_layer_mode_tile::tileheight#26 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::tileheight#33 ) - vera_layer_mode_tile::tilewidth#22 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::tilewidth#29 ) - vera_layer_mode_tile::tilebase_address#22 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::tilebase_address#29 ) - vera_layer_mode_tile::mapbase_address#21 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::mapbase_address#28 ) - vera_layer_mode_tile::mapheight#14 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::mapheight#21 ) - vera_layer_mode_tile::layer#22 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::layer#33 ) - vera_layer_mode_tile::mapwidth#6 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::mapwidth#13 ) - vera_layer_mode_tile::config#28 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::config#27 ) - vera_layer_mode_tile::color_depth#5 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::color_depth#4 ) - if(vera_layer_mode_tile::color_depth#5==8) goto vera_layer_mode_tile::@7 - to:vera_layer_mode_tile::@8 -vera_layer_mode_tile::@7: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@3 - vera_layer_mode_tile::tileheight#30 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::tileheight#26 ) - vera_layer_mode_tile::tilewidth#26 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::tilewidth#22 ) - vera_layer_mode_tile::tilebase_address#26 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::tilebase_address#22 ) - vera_layer_mode_tile::mapbase_address#25 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::mapbase_address#21 ) - vera_layer_mode_tile::mapheight#18 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::mapheight#14 ) - vera_layer_mode_tile::layer#26 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::layer#22 ) - vera_layer_mode_tile::mapwidth#10 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::mapwidth#6 ) - vera_layer_mode_tile::config#16 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::config#28 ) - vera_layer_mode_tile::config#4 = vera_layer_mode_tile::config#16 | VERA_LAYER_COLOR_DEPTH_8BPP - to:vera_layer_mode_tile::@8 -vera_layer_mode_tile::@8: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@3 vera_layer_mode_tile::@4 vera_layer_mode_tile::@5 vera_layer_mode_tile::@6 vera_layer_mode_tile::@7 - vera_layer_mode_tile::tileheight#23 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::tileheight#26, vera_layer_mode_tile::@4/vera_layer_mode_tile::tileheight#27, vera_layer_mode_tile::@5/vera_layer_mode_tile::tileheight#28, vera_layer_mode_tile::@6/vera_layer_mode_tile::tileheight#29, vera_layer_mode_tile::@7/vera_layer_mode_tile::tileheight#30 ) - vera_layer_mode_tile::tilewidth#19 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::tilewidth#22, vera_layer_mode_tile::@4/vera_layer_mode_tile::tilewidth#23, vera_layer_mode_tile::@5/vera_layer_mode_tile::tilewidth#24, vera_layer_mode_tile::@6/vera_layer_mode_tile::tilewidth#25, vera_layer_mode_tile::@7/vera_layer_mode_tile::tilewidth#26 ) - vera_layer_mode_tile::tilebase_address#19 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::tilebase_address#22, vera_layer_mode_tile::@4/vera_layer_mode_tile::tilebase_address#23, vera_layer_mode_tile::@5/vera_layer_mode_tile::tilebase_address#24, vera_layer_mode_tile::@6/vera_layer_mode_tile::tilebase_address#25, vera_layer_mode_tile::@7/vera_layer_mode_tile::tilebase_address#26 ) - vera_layer_mode_tile::mapbase_address#18 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::mapbase_address#21, vera_layer_mode_tile::@4/vera_layer_mode_tile::mapbase_address#22, vera_layer_mode_tile::@5/vera_layer_mode_tile::mapbase_address#23, vera_layer_mode_tile::@6/vera_layer_mode_tile::mapbase_address#24, vera_layer_mode_tile::@7/vera_layer_mode_tile::mapbase_address#25 ) - vera_layer_mode_tile::mapheight#11 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::mapheight#14, vera_layer_mode_tile::@4/vera_layer_mode_tile::mapheight#15, vera_layer_mode_tile::@5/vera_layer_mode_tile::mapheight#16, vera_layer_mode_tile::@6/vera_layer_mode_tile::mapheight#17, vera_layer_mode_tile::@7/vera_layer_mode_tile::mapheight#18 ) - vera_layer_mode_tile::layer#10 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::layer#22, vera_layer_mode_tile::@4/vera_layer_mode_tile::layer#23, vera_layer_mode_tile::@5/vera_layer_mode_tile::layer#24, vera_layer_mode_tile::@6/vera_layer_mode_tile::layer#25, vera_layer_mode_tile::@7/vera_layer_mode_tile::layer#26 ) - vera_layer_mode_tile::config#29 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::config#28, vera_layer_mode_tile::@4/vera_layer_mode_tile::config#1, vera_layer_mode_tile::@5/vera_layer_mode_tile::config#2, vera_layer_mode_tile::@6/vera_layer_mode_tile::config#3, vera_layer_mode_tile::@7/vera_layer_mode_tile::config#4 ) - vera_layer_mode_tile::mapwidth#2 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::mapwidth#6, vera_layer_mode_tile::@4/vera_layer_mode_tile::mapwidth#7, vera_layer_mode_tile::@5/vera_layer_mode_tile::mapwidth#8, vera_layer_mode_tile::@6/vera_layer_mode_tile::mapwidth#9, vera_layer_mode_tile::@7/vera_layer_mode_tile::mapwidth#10 ) - if(vera_layer_mode_tile::mapwidth#2==$20) goto vera_layer_mode_tile::@12 - to:vera_layer_mode_tile::@9 -vera_layer_mode_tile::@12: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@8 - vera_layer_mode_tile::tileheight#19 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::tileheight#23 ) - vera_layer_mode_tile::tilewidth#15 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::tilewidth#19 ) - vera_layer_mode_tile::tilebase_address#15 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::tilebase_address#19 ) - vera_layer_mode_tile::mapbase_address#14 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::mapbase_address#18 ) - vera_layer_mode_tile::mapheight#7 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::mapheight#11 ) - vera_layer_mode_tile::layer#2 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::layer#10 ) - vera_layer_mode_tile::config#17 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::config#29 ) - vera_layer_mode_tile::config#5 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_32 - vera_layer_rowshift[vera_layer_mode_tile::layer#2] = 6 - vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#2 * SIZEOF_UNSIGNED_INT - vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 - to:vera_layer_mode_tile::@16 -vera_layer_mode_tile::@9: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@8 - vera_layer_mode_tile::tileheight#24 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::tileheight#23 ) - vera_layer_mode_tile::tilewidth#20 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::tilewidth#19 ) - vera_layer_mode_tile::tilebase_address#20 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::tilebase_address#19 ) - vera_layer_mode_tile::mapbase_address#19 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::mapbase_address#18 ) - vera_layer_mode_tile::mapheight#12 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::mapheight#11 ) - vera_layer_mode_tile::layer#11 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::layer#10 ) - vera_layer_mode_tile::config#30 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::config#29 ) - vera_layer_mode_tile::mapwidth#3 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::mapwidth#2 ) - if(vera_layer_mode_tile::mapwidth#3==$40) goto vera_layer_mode_tile::@13 - to:vera_layer_mode_tile::@10 -vera_layer_mode_tile::@13: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@9 - vera_layer_mode_tile::tileheight#20 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::tileheight#24 ) - vera_layer_mode_tile::tilewidth#16 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::tilewidth#20 ) - vera_layer_mode_tile::tilebase_address#16 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::tilebase_address#20 ) - vera_layer_mode_tile::mapbase_address#15 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::mapbase_address#19 ) - vera_layer_mode_tile::mapheight#8 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::mapheight#12 ) - vera_layer_mode_tile::layer#3 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::layer#11 ) - vera_layer_mode_tile::config#18 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::config#30 ) - vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#18 | VERA_LAYER_WIDTH_64 - vera_layer_rowshift[vera_layer_mode_tile::layer#3] = 7 - vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#3 * SIZEOF_UNSIGNED_INT - vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 - to:vera_layer_mode_tile::@16 -vera_layer_mode_tile::@10: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@9 - vera_layer_mode_tile::tileheight#25 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::tileheight#24 ) - vera_layer_mode_tile::tilewidth#21 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::tilewidth#20 ) - vera_layer_mode_tile::tilebase_address#21 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::tilebase_address#20 ) - vera_layer_mode_tile::mapbase_address#20 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::mapbase_address#19 ) - vera_layer_mode_tile::mapheight#13 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::mapheight#12 ) - vera_layer_mode_tile::layer#12 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::layer#11 ) - vera_layer_mode_tile::config#31 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::config#30 ) - vera_layer_mode_tile::mapwidth#4 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::mapwidth#3 ) - if(vera_layer_mode_tile::mapwidth#4==$80) goto vera_layer_mode_tile::@14 - to:vera_layer_mode_tile::@11 -vera_layer_mode_tile::@14: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@10 - vera_layer_mode_tile::tileheight#21 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::tileheight#25 ) - vera_layer_mode_tile::tilewidth#17 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::tilewidth#21 ) - vera_layer_mode_tile::tilebase_address#17 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::tilebase_address#21 ) - vera_layer_mode_tile::mapbase_address#16 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::mapbase_address#20 ) - vera_layer_mode_tile::mapheight#9 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::mapheight#13 ) - vera_layer_mode_tile::layer#4 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::layer#12 ) - vera_layer_mode_tile::config#19 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::config#31 ) - vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#19 | VERA_LAYER_WIDTH_128 - vera_layer_rowshift[vera_layer_mode_tile::layer#4] = 8 - vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#4 * SIZEOF_UNSIGNED_INT - vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 - to:vera_layer_mode_tile::@16 -vera_layer_mode_tile::@11: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@10 - vera_layer_mode_tile::tileheight#18 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::tileheight#25 ) - vera_layer_mode_tile::tilewidth#14 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::tilewidth#21 ) - vera_layer_mode_tile::tilebase_address#14 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::tilebase_address#21 ) - vera_layer_mode_tile::mapbase_address#13 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::mapbase_address#20 ) - vera_layer_mode_tile::mapheight#6 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::mapheight#13 ) - vera_layer_mode_tile::layer#13 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::layer#12 ) - vera_layer_mode_tile::config#32 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::config#31 ) - vera_layer_mode_tile::mapwidth#5 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::mapwidth#4 ) - if(vera_layer_mode_tile::mapwidth#5==$100) goto vera_layer_mode_tile::@15 - to:vera_layer_mode_tile::@16 -vera_layer_mode_tile::@15: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@11 - vera_layer_mode_tile::tileheight#22 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::tileheight#18 ) - vera_layer_mode_tile::tilewidth#18 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::tilewidth#14 ) - vera_layer_mode_tile::tilebase_address#18 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::tilebase_address#14 ) - vera_layer_mode_tile::mapbase_address#17 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::mapbase_address#13 ) - vera_layer_mode_tile::mapheight#10 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::mapheight#6 ) - vera_layer_mode_tile::layer#5 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::layer#13 ) - vera_layer_mode_tile::config#20 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::config#32 ) - vera_layer_mode_tile::config#8 = vera_layer_mode_tile::config#20 | VERA_LAYER_WIDTH_256 - vera_layer_rowshift[vera_layer_mode_tile::layer#5] = 9 - vera_layer_mode_tile::$14 = vera_layer_mode_tile::layer#5 * SIZEOF_UNSIGNED_INT - vera_layer_rowskip[vera_layer_mode_tile::$14] = $200 - to:vera_layer_mode_tile::@16 -vera_layer_mode_tile::@16: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@11 vera_layer_mode_tile::@12 vera_layer_mode_tile::@13 vera_layer_mode_tile::@14 vera_layer_mode_tile::@15 - vera_layer_mode_tile::tileheight#15 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::tileheight#18, vera_layer_mode_tile::@12/vera_layer_mode_tile::tileheight#19, vera_layer_mode_tile::@13/vera_layer_mode_tile::tileheight#20, vera_layer_mode_tile::@14/vera_layer_mode_tile::tileheight#21, vera_layer_mode_tile::@15/vera_layer_mode_tile::tileheight#22 ) - vera_layer_mode_tile::tilewidth#11 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::tilewidth#14, vera_layer_mode_tile::@12/vera_layer_mode_tile::tilewidth#15, vera_layer_mode_tile::@13/vera_layer_mode_tile::tilewidth#16, vera_layer_mode_tile::@14/vera_layer_mode_tile::tilewidth#17, vera_layer_mode_tile::@15/vera_layer_mode_tile::tilewidth#18 ) - vera_layer_mode_tile::tilebase_address#11 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::tilebase_address#14, vera_layer_mode_tile::@12/vera_layer_mode_tile::tilebase_address#15, vera_layer_mode_tile::@13/vera_layer_mode_tile::tilebase_address#16, vera_layer_mode_tile::@14/vera_layer_mode_tile::tilebase_address#17, vera_layer_mode_tile::@15/vera_layer_mode_tile::tilebase_address#18 ) - vera_layer_mode_tile::mapbase_address#10 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::mapbase_address#13, vera_layer_mode_tile::@12/vera_layer_mode_tile::mapbase_address#14, vera_layer_mode_tile::@13/vera_layer_mode_tile::mapbase_address#15, vera_layer_mode_tile::@14/vera_layer_mode_tile::mapbase_address#16, vera_layer_mode_tile::@15/vera_layer_mode_tile::mapbase_address#17 ) - vera_layer_mode_tile::layer#27 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::layer#13, vera_layer_mode_tile::@12/vera_layer_mode_tile::layer#2, vera_layer_mode_tile::@13/vera_layer_mode_tile::layer#3, vera_layer_mode_tile::@14/vera_layer_mode_tile::layer#4, vera_layer_mode_tile::@15/vera_layer_mode_tile::layer#5 ) - vera_layer_mode_tile::config#33 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::config#32, vera_layer_mode_tile::@12/vera_layer_mode_tile::config#5, vera_layer_mode_tile::@13/vera_layer_mode_tile::config#6, vera_layer_mode_tile::@14/vera_layer_mode_tile::config#7, vera_layer_mode_tile::@15/vera_layer_mode_tile::config#8 ) - vera_layer_mode_tile::mapheight#2 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::mapheight#6, vera_layer_mode_tile::@12/vera_layer_mode_tile::mapheight#7, vera_layer_mode_tile::@13/vera_layer_mode_tile::mapheight#8, vera_layer_mode_tile::@14/vera_layer_mode_tile::mapheight#9, vera_layer_mode_tile::@15/vera_layer_mode_tile::mapheight#10 ) - if(vera_layer_mode_tile::mapheight#2==$20) goto vera_layer_mode_tile::@20 - to:vera_layer_mode_tile::@17 -vera_layer_mode_tile::@20: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@16 - vera_layer_mode_tile::tileheight#11 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::tileheight#15 ) - vera_layer_mode_tile::tilewidth#7 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::tilewidth#11 ) - vera_layer_mode_tile::tilebase_address#7 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::tilebase_address#11 ) - vera_layer_mode_tile::mapbase_address#6 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::mapbase_address#10 ) - vera_layer_mode_tile::layer#15 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::layer#27 ) - vera_layer_mode_tile::config#21 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::config#33 ) - vera_layer_mode_tile::config#9 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_32 - to:vera_layer_mode_tile::@24 -vera_layer_mode_tile::@17: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@16 - vera_layer_mode_tile::tileheight#16 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::tileheight#15 ) - vera_layer_mode_tile::tilewidth#12 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::tilewidth#11 ) - vera_layer_mode_tile::tilebase_address#12 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::tilebase_address#11 ) - vera_layer_mode_tile::mapbase_address#11 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::mapbase_address#10 ) - vera_layer_mode_tile::layer#28 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::layer#27 ) - vera_layer_mode_tile::config#34 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::config#33 ) - vera_layer_mode_tile::mapheight#3 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::mapheight#2 ) - if(vera_layer_mode_tile::mapheight#3==$40) goto vera_layer_mode_tile::@21 - to:vera_layer_mode_tile::@18 -vera_layer_mode_tile::@21: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@17 - vera_layer_mode_tile::tileheight#12 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::tileheight#16 ) - vera_layer_mode_tile::tilewidth#8 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::tilewidth#12 ) - vera_layer_mode_tile::tilebase_address#8 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::tilebase_address#12 ) - vera_layer_mode_tile::mapbase_address#7 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::mapbase_address#11 ) - vera_layer_mode_tile::layer#16 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::layer#28 ) - vera_layer_mode_tile::config#22 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::config#34 ) - vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#22 | VERA_LAYER_HEIGHT_64 - to:vera_layer_mode_tile::@24 -vera_layer_mode_tile::@18: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@17 - vera_layer_mode_tile::tileheight#17 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::tileheight#16 ) - vera_layer_mode_tile::tilewidth#13 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::tilewidth#12 ) - vera_layer_mode_tile::tilebase_address#13 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::tilebase_address#12 ) - vera_layer_mode_tile::mapbase_address#12 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::mapbase_address#11 ) - vera_layer_mode_tile::layer#29 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::layer#28 ) - vera_layer_mode_tile::config#35 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::config#34 ) - vera_layer_mode_tile::mapheight#4 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::mapheight#3 ) - if(vera_layer_mode_tile::mapheight#4==$80) goto vera_layer_mode_tile::@22 - to:vera_layer_mode_tile::@19 -vera_layer_mode_tile::@22: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@18 - vera_layer_mode_tile::tileheight#13 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::tileheight#17 ) - vera_layer_mode_tile::tilewidth#9 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::tilewidth#13 ) - vera_layer_mode_tile::tilebase_address#9 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::tilebase_address#13 ) - vera_layer_mode_tile::mapbase_address#8 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::mapbase_address#12 ) - vera_layer_mode_tile::layer#17 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::layer#29 ) - vera_layer_mode_tile::config#23 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::config#35 ) - vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#23 | VERA_LAYER_HEIGHT_128 - to:vera_layer_mode_tile::@24 -vera_layer_mode_tile::@19: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@18 - vera_layer_mode_tile::tileheight#10 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::tileheight#17 ) - vera_layer_mode_tile::tilewidth#6 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::tilewidth#13 ) - vera_layer_mode_tile::tilebase_address#6 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::tilebase_address#13 ) - vera_layer_mode_tile::mapbase_address#5 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::mapbase_address#12 ) - vera_layer_mode_tile::layer#14 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::layer#29 ) - vera_layer_mode_tile::config#36 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::config#35 ) - vera_layer_mode_tile::mapheight#5 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::mapheight#4 ) - if(vera_layer_mode_tile::mapheight#5==$100) goto vera_layer_mode_tile::@23 - to:vera_layer_mode_tile::@24 -vera_layer_mode_tile::@23: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@19 - vera_layer_mode_tile::tileheight#14 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::tileheight#10 ) - vera_layer_mode_tile::tilewidth#10 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::tilewidth#6 ) - vera_layer_mode_tile::tilebase_address#10 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::tilebase_address#6 ) - vera_layer_mode_tile::mapbase_address#9 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::mapbase_address#5 ) - vera_layer_mode_tile::layer#18 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::layer#14 ) - vera_layer_mode_tile::config#24 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::config#36 ) - vera_layer_mode_tile::config#12 = vera_layer_mode_tile::config#24 | VERA_LAYER_HEIGHT_256 - to:vera_layer_mode_tile::@24 -vera_layer_mode_tile::@24: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@19 vera_layer_mode_tile::@20 vera_layer_mode_tile::@21 vera_layer_mode_tile::@22 vera_layer_mode_tile::@23 - vera_layer_mode_tile::tileheight#9 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::tileheight#10, vera_layer_mode_tile::@20/vera_layer_mode_tile::tileheight#11, vera_layer_mode_tile::@21/vera_layer_mode_tile::tileheight#12, vera_layer_mode_tile::@22/vera_layer_mode_tile::tileheight#13, vera_layer_mode_tile::@23/vera_layer_mode_tile::tileheight#14 ) - vera_layer_mode_tile::tilewidth#5 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::tilewidth#6, vera_layer_mode_tile::@20/vera_layer_mode_tile::tilewidth#7, vera_layer_mode_tile::@21/vera_layer_mode_tile::tilewidth#8, vera_layer_mode_tile::@22/vera_layer_mode_tile::tilewidth#9, vera_layer_mode_tile::@23/vera_layer_mode_tile::tilewidth#10 ) - vera_layer_mode_tile::tilebase_address#5 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::tilebase_address#6, vera_layer_mode_tile::@20/vera_layer_mode_tile::tilebase_address#7, vera_layer_mode_tile::@21/vera_layer_mode_tile::tilebase_address#8, vera_layer_mode_tile::@22/vera_layer_mode_tile::tilebase_address#9, vera_layer_mode_tile::@23/vera_layer_mode_tile::tilebase_address#10 ) - vera_layer_mode_tile::mapbase_address#4 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::mapbase_address#5, vera_layer_mode_tile::@20/vera_layer_mode_tile::mapbase_address#6, vera_layer_mode_tile::@21/vera_layer_mode_tile::mapbase_address#7, vera_layer_mode_tile::@22/vera_layer_mode_tile::mapbase_address#8, vera_layer_mode_tile::@23/vera_layer_mode_tile::mapbase_address#9 ) - vera_layer_mode_tile::config#25 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::config#36, vera_layer_mode_tile::@20/vera_layer_mode_tile::config#9, vera_layer_mode_tile::@21/vera_layer_mode_tile::config#10, vera_layer_mode_tile::@22/vera_layer_mode_tile::config#11, vera_layer_mode_tile::@23/vera_layer_mode_tile::config#12 ) - vera_layer_mode_tile::layer#6 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::layer#14, vera_layer_mode_tile::@20/vera_layer_mode_tile::layer#15, vera_layer_mode_tile::@21/vera_layer_mode_tile::layer#16, vera_layer_mode_tile::@22/vera_layer_mode_tile::layer#17, vera_layer_mode_tile::@23/vera_layer_mode_tile::layer#18 ) - vera_layer_set_config::layer#0 = vera_layer_mode_tile::layer#6 - vera_layer_set_config::config#0 = vera_layer_mode_tile::config#25 - call vera_layer_set_config - to:vera_layer_mode_tile::@33 -vera_layer_mode_tile::@33: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@24 - vera_layer_mode_tile::tileheight#8 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::tileheight#9 ) - vera_layer_mode_tile::tilewidth#4 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::tilewidth#5 ) - vera_layer_mode_tile::tilebase_address#4 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::tilebase_address#5 ) - vera_layer_mode_tile::layer#7 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::layer#6 ) - vera_layer_mode_tile::mapbase_address#3 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::mapbase_address#4 ) - vera_layer_mode_tile::$1 = word0 vera_layer_mode_tile::mapbase_address#3 - vera_layer_mode_tile::$15 = vera_layer_mode_tile::layer#7 * SIZEOF_UNSIGNED_INT - vera_mapbase_offset[vera_layer_mode_tile::$15] = vera_layer_mode_tile::$1 - vera_layer_mode_tile::$2 = byte2 vera_layer_mode_tile::mapbase_address#3 - vera_mapbase_bank[vera_layer_mode_tile::layer#7] = vera_layer_mode_tile::$2 - vera_layer_mode_tile::$16 = vera_layer_mode_tile::layer#7 * SIZEOF_UNSIGNED_LONG - vera_mapbase_address[vera_layer_mode_tile::$16] = vera_layer_mode_tile::mapbase_address#3 - vera_layer_mode_tile::$3 = vera_layer_mode_tile::mapbase_address#3 >> 1 - vera_layer_mode_tile::mapbase_address#0 = vera_layer_mode_tile::$3 - vera_layer_mode_tile::mapbase#0 = byte1 vera_layer_mode_tile::mapbase_address#0 - vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#7 - vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0 - call vera_layer_set_mapbase - to:vera_layer_mode_tile::@34 -vera_layer_mode_tile::@34: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@33 - vera_layer_mode_tile::tileheight#7 = phi( vera_layer_mode_tile::@33/vera_layer_mode_tile::tileheight#8 ) - vera_layer_mode_tile::tilewidth#2 = phi( vera_layer_mode_tile::@33/vera_layer_mode_tile::tilewidth#4 ) - vera_layer_mode_tile::layer#8 = phi( vera_layer_mode_tile::@33/vera_layer_mode_tile::layer#7 ) - vera_layer_mode_tile::tilebase_address#3 = phi( vera_layer_mode_tile::@33/vera_layer_mode_tile::tilebase_address#4 ) - vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#3 - vera_layer_mode_tile::$17 = vera_layer_mode_tile::layer#8 * SIZEOF_UNSIGNED_INT - vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 - vera_layer_mode_tile::$7 = byte2 vera_layer_mode_tile::tilebase_address#3 - vera_tilebase_bank[vera_layer_mode_tile::layer#8] = vera_layer_mode_tile::$7 - vera_layer_mode_tile::$18 = vera_layer_mode_tile::layer#8 * SIZEOF_UNSIGNED_LONG - vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#3 - vera_layer_mode_tile::$8 = vera_layer_mode_tile::tilebase_address#3 >> 1 - vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::$8 - vera_layer_mode_tile::tilebase#0 = byte1 vera_layer_mode_tile::tilebase_address#0 - vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK - if(vera_layer_mode_tile::tilewidth#2==8) goto vera_layer_mode_tile::@26 - to:vera_layer_mode_tile::@25 -vera_layer_mode_tile::@26: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@34 - vera_layer_mode_tile::layer#35 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::layer#8 ) - vera_layer_mode_tile::tileheight#5 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::tileheight#7 ) - vera_layer_mode_tile::tilebase#6 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::tilebase#1 ) - vera_layer_mode_tile::tilebase#2 = vera_layer_mode_tile::tilebase#6 | VERA_TILEBASE_WIDTH_8 - to:vera_layer_mode_tile::@28 -vera_layer_mode_tile::@25: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@34 - vera_layer_mode_tile::layer#34 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::layer#8 ) - vera_layer_mode_tile::tileheight#4 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::tileheight#7 ) - vera_layer_mode_tile::tilebase#11 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::tilebase#1 ) - vera_layer_mode_tile::tilewidth#3 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::tilewidth#2 ) - if(vera_layer_mode_tile::tilewidth#3==$10) goto vera_layer_mode_tile::@27 - to:vera_layer_mode_tile::@28 -vera_layer_mode_tile::@27: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@25 - vera_layer_mode_tile::layer#36 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::layer#34 ) - vera_layer_mode_tile::tileheight#6 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::tileheight#4 ) - vera_layer_mode_tile::tilebase#7 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::tilebase#11 ) - vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#7 | VERA_TILEBASE_WIDTH_16 - to:vera_layer_mode_tile::@28 -vera_layer_mode_tile::@28: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@25 vera_layer_mode_tile::@26 vera_layer_mode_tile::@27 - vera_layer_mode_tile::layer#30 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::layer#34, vera_layer_mode_tile::@26/vera_layer_mode_tile::layer#35, vera_layer_mode_tile::@27/vera_layer_mode_tile::layer#36 ) - vera_layer_mode_tile::tilebase#12 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::tilebase#11, vera_layer_mode_tile::@26/vera_layer_mode_tile::tilebase#2, vera_layer_mode_tile::@27/vera_layer_mode_tile::tilebase#3 ) - vera_layer_mode_tile::tileheight#2 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::tileheight#4, vera_layer_mode_tile::@26/vera_layer_mode_tile::tileheight#5, vera_layer_mode_tile::@27/vera_layer_mode_tile::tileheight#6 ) - if(vera_layer_mode_tile::tileheight#2==8) goto vera_layer_mode_tile::@30 - to:vera_layer_mode_tile::@29 -vera_layer_mode_tile::@30: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@28 - vera_layer_mode_tile::layer#20 = phi( vera_layer_mode_tile::@28/vera_layer_mode_tile::layer#30 ) - vera_layer_mode_tile::tilebase#8 = phi( vera_layer_mode_tile::@28/vera_layer_mode_tile::tilebase#12 ) - vera_layer_mode_tile::tilebase#4 = vera_layer_mode_tile::tilebase#8 | VERA_TILEBASE_HEIGHT_8 - to:vera_layer_mode_tile::@32 -vera_layer_mode_tile::@29: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@28 - vera_layer_mode_tile::layer#19 = phi( vera_layer_mode_tile::@28/vera_layer_mode_tile::layer#30 ) - vera_layer_mode_tile::tilebase#13 = phi( vera_layer_mode_tile::@28/vera_layer_mode_tile::tilebase#12 ) - vera_layer_mode_tile::tileheight#3 = phi( vera_layer_mode_tile::@28/vera_layer_mode_tile::tileheight#2 ) - if(vera_layer_mode_tile::tileheight#3==$10) goto vera_layer_mode_tile::@31 - to:vera_layer_mode_tile::@32 -vera_layer_mode_tile::@31: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@29 - vera_layer_mode_tile::layer#21 = phi( vera_layer_mode_tile::@29/vera_layer_mode_tile::layer#19 ) - vera_layer_mode_tile::tilebase#9 = phi( vera_layer_mode_tile::@29/vera_layer_mode_tile::tilebase#13 ) - vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#9 | VERA_TILEBASE_HEIGHT_16 - to:vera_layer_mode_tile::@32 -vera_layer_mode_tile::@32: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@29 vera_layer_mode_tile::@30 vera_layer_mode_tile::@31 - vera_layer_mode_tile::tilebase#10 = phi( vera_layer_mode_tile::@29/vera_layer_mode_tile::tilebase#13, vera_layer_mode_tile::@30/vera_layer_mode_tile::tilebase#4, vera_layer_mode_tile::@31/vera_layer_mode_tile::tilebase#5 ) - vera_layer_mode_tile::layer#9 = phi( vera_layer_mode_tile::@29/vera_layer_mode_tile::layer#19, vera_layer_mode_tile::@30/vera_layer_mode_tile::layer#20, vera_layer_mode_tile::@31/vera_layer_mode_tile::layer#21 ) - vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#9 - vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10 - call vera_layer_set_tilebase - to:vera_layer_mode_tile::@35 -vera_layer_mode_tile::@35: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@32 - to:vera_layer_mode_tile::@return -vera_layer_mode_tile::@return: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@35 - return - to:@return - -void vera_layer_mode_text(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , unsigned int color_mode) -vera_layer_mode_text: scope:[vera_layer_mode_text] from conio_x16_init - vera_layer_mode_text::color_mode#3 = phi( conio_x16_init/vera_layer_mode_text::color_mode#0 ) - vera_layer_mode_text::tileheight#1 = phi( conio_x16_init/vera_layer_mode_text::tileheight#0 ) - vera_layer_mode_text::tilewidth#1 = phi( conio_x16_init/vera_layer_mode_text::tilewidth#0 ) - vera_layer_mode_text::mapheight#1 = phi( conio_x16_init/vera_layer_mode_text::mapheight#0 ) - vera_layer_mode_text::mapwidth#1 = phi( conio_x16_init/vera_layer_mode_text::mapwidth#0 ) - vera_layer_mode_text::tilebase_address#1 = phi( conio_x16_init/vera_layer_mode_text::tilebase_address#0 ) - vera_layer_mode_text::mapbase_address#1 = phi( conio_x16_init/vera_layer_mode_text::mapbase_address#0 ) - vera_layer_mode_text::layer#1 = phi( conio_x16_init/vera_layer_mode_text::layer#0 ) - vera_layer_mode_tile::layer#0 = vera_layer_mode_text::layer#1 - vera_layer_mode_tile::mapbase_address#1 = vera_layer_mode_text::mapbase_address#1 - vera_layer_mode_tile::tilebase_address#1 = vera_layer_mode_text::tilebase_address#1 - vera_layer_mode_tile::mapwidth#0 = vera_layer_mode_text::mapwidth#1 - vera_layer_mode_tile::mapheight#0 = vera_layer_mode_text::mapheight#1 - vera_layer_mode_tile::tilewidth#0 = vera_layer_mode_text::tilewidth#1 - vera_layer_mode_tile::tileheight#0 = vera_layer_mode_text::tileheight#1 - vera_layer_mode_tile::color_depth#0 = 1 - call vera_layer_mode_tile - to:vera_layer_mode_text::@4 -vera_layer_mode_text::@4: scope:[vera_layer_mode_text] from vera_layer_mode_text - vera_layer_mode_text::layer#4 = phi( vera_layer_mode_text/vera_layer_mode_text::layer#1 ) - vera_layer_mode_text::color_mode#1 = phi( vera_layer_mode_text/vera_layer_mode_text::color_mode#3 ) - if(vera_layer_mode_text::color_mode#1==$10) goto vera_layer_mode_text::@2 - to:vera_layer_mode_text::@1 -vera_layer_mode_text::@2: scope:[vera_layer_mode_text] from vera_layer_mode_text::@4 - vera_layer_mode_text::layer#2 = phi( vera_layer_mode_text::@4/vera_layer_mode_text::layer#4 ) - vera_layer_set_text_color_mode::layer#0 = vera_layer_mode_text::layer#2 - vera_layer_set_text_color_mode::color_mode#0 = VERA_LAYER_CONFIG_16C - call vera_layer_set_text_color_mode - to:vera_layer_mode_text::@5 -vera_layer_mode_text::@5: scope:[vera_layer_mode_text] from vera_layer_mode_text::@2 - to:vera_layer_mode_text::@return -vera_layer_mode_text::@1: scope:[vera_layer_mode_text] from vera_layer_mode_text::@4 - vera_layer_mode_text::layer#5 = phi( vera_layer_mode_text::@4/vera_layer_mode_text::layer#4 ) - vera_layer_mode_text::color_mode#2 = phi( vera_layer_mode_text::@4/vera_layer_mode_text::color_mode#1 ) - if(vera_layer_mode_text::color_mode#2==$100) goto vera_layer_mode_text::@3 - to:vera_layer_mode_text::@return -vera_layer_mode_text::@3: scope:[vera_layer_mode_text] from vera_layer_mode_text::@1 - vera_layer_mode_text::layer#3 = phi( vera_layer_mode_text::@1/vera_layer_mode_text::layer#5 ) - vera_layer_set_text_color_mode::layer#1 = vera_layer_mode_text::layer#3 - vera_layer_set_text_color_mode::color_mode#1 = VERA_LAYER_CONFIG_256C - call vera_layer_set_text_color_mode - to:vera_layer_mode_text::@6 -vera_layer_mode_text::@6: scope:[vera_layer_mode_text] from vera_layer_mode_text::@3 - to:vera_layer_mode_text::@return -vera_layer_mode_text::@return: scope:[vera_layer_mode_text] from vera_layer_mode_text::@1 vera_layer_mode_text::@5 vera_layer_mode_text::@6 - return - to:@return - -void vera_layer_mode_bitmap(char layer , unsigned long bitmap_address , unsigned int mapwidth , unsigned int color_depth) -vera_layer_mode_bitmap: scope:[vera_layer_mode_bitmap] from main::@18 - vera_layer_mode_bitmap::mapwidth#8 = phi( main::@18/vera_layer_mode_bitmap::mapwidth#0 ) - vera_layer_mode_bitmap::layer#12 = phi( main::@18/vera_layer_mode_bitmap::layer#0 ) - vera_layer_mode_bitmap::bitmap_address#8 = phi( main::@18/vera_layer_mode_bitmap::bitmap_address#1 ) - vera_layer_mode_bitmap::color_depth#1 = phi( main::@18/vera_layer_mode_bitmap::color_depth#0 ) - vera_layer_mode_bitmap::config#0 = 0 - if(vera_layer_mode_bitmap::color_depth#1==1) goto vera_layer_mode_bitmap::@4 - to:vera_layer_mode_bitmap::@1 -vera_layer_mode_bitmap::@4: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap - vera_layer_mode_bitmap::mapwidth#4 = phi( vera_layer_mode_bitmap/vera_layer_mode_bitmap::mapwidth#8 ) - vera_layer_mode_bitmap::layer#5 = phi( vera_layer_mode_bitmap/vera_layer_mode_bitmap::layer#12 ) - vera_layer_mode_bitmap::bitmap_address#4 = phi( vera_layer_mode_bitmap/vera_layer_mode_bitmap::bitmap_address#8 ) - vera_layer_mode_bitmap::config#6 = phi( vera_layer_mode_bitmap/vera_layer_mode_bitmap::config#0 ) - vera_layer_mode_bitmap::config#1 = vera_layer_mode_bitmap::config#6 | VERA_LAYER_COLOR_DEPTH_1BPP - to:vera_layer_mode_bitmap::@8 -vera_layer_mode_bitmap::@1: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap - vera_layer_mode_bitmap::mapwidth#9 = phi( vera_layer_mode_bitmap/vera_layer_mode_bitmap::mapwidth#8 ) - vera_layer_mode_bitmap::layer#13 = phi( vera_layer_mode_bitmap/vera_layer_mode_bitmap::layer#12 ) - vera_layer_mode_bitmap::bitmap_address#9 = phi( vera_layer_mode_bitmap/vera_layer_mode_bitmap::bitmap_address#8 ) - vera_layer_mode_bitmap::config#12 = phi( vera_layer_mode_bitmap/vera_layer_mode_bitmap::config#0 ) - vera_layer_mode_bitmap::color_depth#2 = phi( vera_layer_mode_bitmap/vera_layer_mode_bitmap::color_depth#1 ) - if(vera_layer_mode_bitmap::color_depth#2==2) goto vera_layer_mode_bitmap::@5 - to:vera_layer_mode_bitmap::@2 -vera_layer_mode_bitmap::@5: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@1 - vera_layer_mode_bitmap::mapwidth#5 = phi( vera_layer_mode_bitmap::@1/vera_layer_mode_bitmap::mapwidth#9 ) - vera_layer_mode_bitmap::layer#6 = phi( vera_layer_mode_bitmap::@1/vera_layer_mode_bitmap::layer#13 ) - vera_layer_mode_bitmap::bitmap_address#5 = phi( vera_layer_mode_bitmap::@1/vera_layer_mode_bitmap::bitmap_address#9 ) - vera_layer_mode_bitmap::config#7 = phi( vera_layer_mode_bitmap::@1/vera_layer_mode_bitmap::config#12 ) - vera_layer_mode_bitmap::config#2 = vera_layer_mode_bitmap::config#7 | VERA_LAYER_COLOR_DEPTH_2BPP - to:vera_layer_mode_bitmap::@8 -vera_layer_mode_bitmap::@2: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@1 - vera_layer_mode_bitmap::mapwidth#10 = phi( vera_layer_mode_bitmap::@1/vera_layer_mode_bitmap::mapwidth#9 ) - vera_layer_mode_bitmap::layer#14 = phi( vera_layer_mode_bitmap::@1/vera_layer_mode_bitmap::layer#13 ) - vera_layer_mode_bitmap::bitmap_address#10 = phi( vera_layer_mode_bitmap::@1/vera_layer_mode_bitmap::bitmap_address#9 ) - vera_layer_mode_bitmap::config#13 = phi( vera_layer_mode_bitmap::@1/vera_layer_mode_bitmap::config#12 ) - vera_layer_mode_bitmap::color_depth#3 = phi( vera_layer_mode_bitmap::@1/vera_layer_mode_bitmap::color_depth#2 ) - if(vera_layer_mode_bitmap::color_depth#3==4) goto vera_layer_mode_bitmap::@6 - to:vera_layer_mode_bitmap::@3 -vera_layer_mode_bitmap::@6: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@2 - vera_layer_mode_bitmap::mapwidth#6 = phi( vera_layer_mode_bitmap::@2/vera_layer_mode_bitmap::mapwidth#10 ) - vera_layer_mode_bitmap::layer#7 = phi( vera_layer_mode_bitmap::@2/vera_layer_mode_bitmap::layer#14 ) - vera_layer_mode_bitmap::bitmap_address#6 = phi( vera_layer_mode_bitmap::@2/vera_layer_mode_bitmap::bitmap_address#10 ) - vera_layer_mode_bitmap::config#8 = phi( vera_layer_mode_bitmap::@2/vera_layer_mode_bitmap::config#13 ) - vera_layer_mode_bitmap::config#3 = vera_layer_mode_bitmap::config#8 | VERA_LAYER_COLOR_DEPTH_4BPP - to:vera_layer_mode_bitmap::@8 -vera_layer_mode_bitmap::@3: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@2 - vera_layer_mode_bitmap::mapwidth#3 = phi( vera_layer_mode_bitmap::@2/vera_layer_mode_bitmap::mapwidth#10 ) - vera_layer_mode_bitmap::layer#4 = phi( vera_layer_mode_bitmap::@2/vera_layer_mode_bitmap::layer#14 ) - vera_layer_mode_bitmap::bitmap_address#3 = phi( vera_layer_mode_bitmap::@2/vera_layer_mode_bitmap::bitmap_address#10 ) - vera_layer_mode_bitmap::config#14 = phi( vera_layer_mode_bitmap::@2/vera_layer_mode_bitmap::config#13 ) - vera_layer_mode_bitmap::color_depth#4 = phi( vera_layer_mode_bitmap::@2/vera_layer_mode_bitmap::color_depth#3 ) - if(vera_layer_mode_bitmap::color_depth#4==8) goto vera_layer_mode_bitmap::@7 - to:vera_layer_mode_bitmap::@8 -vera_layer_mode_bitmap::@7: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@3 - vera_layer_mode_bitmap::mapwidth#7 = phi( vera_layer_mode_bitmap::@3/vera_layer_mode_bitmap::mapwidth#3 ) - vera_layer_mode_bitmap::layer#8 = phi( vera_layer_mode_bitmap::@3/vera_layer_mode_bitmap::layer#4 ) - vera_layer_mode_bitmap::bitmap_address#7 = phi( vera_layer_mode_bitmap::@3/vera_layer_mode_bitmap::bitmap_address#3 ) - vera_layer_mode_bitmap::config#9 = phi( vera_layer_mode_bitmap::@3/vera_layer_mode_bitmap::config#14 ) - vera_layer_mode_bitmap::config#4 = vera_layer_mode_bitmap::config#9 | VERA_LAYER_COLOR_DEPTH_8BPP - to:vera_layer_mode_bitmap::@8 -vera_layer_mode_bitmap::@8: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@3 vera_layer_mode_bitmap::@4 vera_layer_mode_bitmap::@5 vera_layer_mode_bitmap::@6 vera_layer_mode_bitmap::@7 - vera_layer_mode_bitmap::mapwidth#1 = phi( vera_layer_mode_bitmap::@3/vera_layer_mode_bitmap::mapwidth#3, vera_layer_mode_bitmap::@4/vera_layer_mode_bitmap::mapwidth#4, vera_layer_mode_bitmap::@5/vera_layer_mode_bitmap::mapwidth#5, vera_layer_mode_bitmap::@6/vera_layer_mode_bitmap::mapwidth#6, vera_layer_mode_bitmap::@7/vera_layer_mode_bitmap::mapwidth#7 ) - vera_layer_mode_bitmap::layer#1 = phi( vera_layer_mode_bitmap::@3/vera_layer_mode_bitmap::layer#4, vera_layer_mode_bitmap::@4/vera_layer_mode_bitmap::layer#5, vera_layer_mode_bitmap::@5/vera_layer_mode_bitmap::layer#6, vera_layer_mode_bitmap::@6/vera_layer_mode_bitmap::layer#7, vera_layer_mode_bitmap::@7/vera_layer_mode_bitmap::layer#8 ) - vera_layer_mode_bitmap::bitmap_address#2 = phi( vera_layer_mode_bitmap::@3/vera_layer_mode_bitmap::bitmap_address#3, vera_layer_mode_bitmap::@4/vera_layer_mode_bitmap::bitmap_address#4, vera_layer_mode_bitmap::@5/vera_layer_mode_bitmap::bitmap_address#5, vera_layer_mode_bitmap::@6/vera_layer_mode_bitmap::bitmap_address#6, vera_layer_mode_bitmap::@7/vera_layer_mode_bitmap::bitmap_address#7 ) - vera_layer_mode_bitmap::config#10 = phi( vera_layer_mode_bitmap::@3/vera_layer_mode_bitmap::config#14, vera_layer_mode_bitmap::@4/vera_layer_mode_bitmap::config#1, vera_layer_mode_bitmap::@5/vera_layer_mode_bitmap::config#2, vera_layer_mode_bitmap::@6/vera_layer_mode_bitmap::config#3, vera_layer_mode_bitmap::@7/vera_layer_mode_bitmap::config#4 ) - vera_layer_mode_bitmap::$0 = vera_layer_mode_bitmap::config#10 | VERA_LAYER_CONFIG_MODE_BITMAP - vera_layer_mode_bitmap::config#5 = vera_layer_mode_bitmap::$0 - vera_layer_mode_bitmap::$1 = word0 vera_layer_mode_bitmap::bitmap_address#2 - vera_layer_mode_bitmap::$9 = vera_layer_mode_bitmap::layer#1 * SIZEOF_UNSIGNED_INT - vera_tilebase_offset[vera_layer_mode_bitmap::$9] = vera_layer_mode_bitmap::$1 - vera_layer_mode_bitmap::$2 = byte2 vera_layer_mode_bitmap::bitmap_address#2 - vera_tilebase_bank[vera_layer_mode_bitmap::layer#1] = vera_layer_mode_bitmap::$2 - vera_layer_mode_bitmap::$10 = vera_layer_mode_bitmap::layer#1 * SIZEOF_UNSIGNED_LONG - vera_tilebase_address[vera_layer_mode_bitmap::$10] = vera_layer_mode_bitmap::bitmap_address#2 - vera_layer_mode_bitmap::$3 = vera_layer_mode_bitmap::bitmap_address#2 >> 1 - vera_layer_mode_bitmap::bitmap_address#0 = vera_layer_mode_bitmap::$3 - vera_layer_mode_bitmap::tilebase#0 = byte1 vera_layer_mode_bitmap::bitmap_address#0 - vera_layer_mode_bitmap::tilebase#1 = vera_layer_mode_bitmap::tilebase#0 & VERA_LAYER_TILEBASE_MASK - if(vera_layer_mode_bitmap::mapwidth#1==$140) goto vera_layer_mode_bitmap::vera_display_set_scale_double1 - to:vera_layer_mode_bitmap::@9 -vera_layer_mode_bitmap::vera_display_set_scale_double1: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@8 - vera_layer_mode_bitmap::config#18 = phi( vera_layer_mode_bitmap::@8/vera_layer_mode_bitmap::config#5 ) - vera_layer_mode_bitmap::layer#15 = phi( vera_layer_mode_bitmap::@8/vera_layer_mode_bitmap::layer#1 ) - vera_layer_mode_bitmap::tilebase#7 = phi( vera_layer_mode_bitmap::@8/vera_layer_mode_bitmap::tilebase#1 ) - *VERA_DC_HSCALE = $40 - *VERA_DC_VSCALE = $40 - to:vera_layer_mode_bitmap::@11 -vera_layer_mode_bitmap::@11: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::vera_display_set_scale_double1 - vera_layer_mode_bitmap::config#15 = phi( vera_layer_mode_bitmap::vera_display_set_scale_double1/vera_layer_mode_bitmap::config#18 ) - vera_layer_mode_bitmap::layer#9 = phi( vera_layer_mode_bitmap::vera_display_set_scale_double1/vera_layer_mode_bitmap::layer#15 ) - vera_layer_mode_bitmap::tilebase#4 = phi( vera_layer_mode_bitmap::vera_display_set_scale_double1/vera_layer_mode_bitmap::tilebase#7 ) - vera_layer_mode_bitmap::tilebase#2 = vera_layer_mode_bitmap::tilebase#4 | VERA_TILEBASE_WIDTH_8 - to:vera_layer_mode_bitmap::@10 -vera_layer_mode_bitmap::@9: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@8 - vera_layer_mode_bitmap::tilebase#10 = phi( vera_layer_mode_bitmap::@8/vera_layer_mode_bitmap::tilebase#1 ) - vera_layer_mode_bitmap::config#17 = phi( vera_layer_mode_bitmap::@8/vera_layer_mode_bitmap::config#5 ) - vera_layer_mode_bitmap::layer#11 = phi( vera_layer_mode_bitmap::@8/vera_layer_mode_bitmap::layer#1 ) - vera_layer_mode_bitmap::mapwidth#2 = phi( vera_layer_mode_bitmap::@8/vera_layer_mode_bitmap::mapwidth#1 ) - if(vera_layer_mode_bitmap::mapwidth#2==$280) goto vera_layer_mode_bitmap::vera_display_set_scale_none1 - to:vera_layer_mode_bitmap::@10 -vera_layer_mode_bitmap::vera_display_set_scale_none1: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@9 - vera_layer_mode_bitmap::config#19 = phi( vera_layer_mode_bitmap::@9/vera_layer_mode_bitmap::config#17 ) - vera_layer_mode_bitmap::layer#16 = phi( vera_layer_mode_bitmap::@9/vera_layer_mode_bitmap::layer#11 ) - vera_layer_mode_bitmap::tilebase#8 = phi( vera_layer_mode_bitmap::@9/vera_layer_mode_bitmap::tilebase#10 ) - *VERA_DC_HSCALE = $80 - *VERA_DC_VSCALE = $80 - to:vera_layer_mode_bitmap::@12 -vera_layer_mode_bitmap::@12: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::vera_display_set_scale_none1 - vera_layer_mode_bitmap::config#16 = phi( vera_layer_mode_bitmap::vera_display_set_scale_none1/vera_layer_mode_bitmap::config#19 ) - vera_layer_mode_bitmap::layer#10 = phi( vera_layer_mode_bitmap::vera_display_set_scale_none1/vera_layer_mode_bitmap::layer#16 ) - vera_layer_mode_bitmap::tilebase#5 = phi( vera_layer_mode_bitmap::vera_display_set_scale_none1/vera_layer_mode_bitmap::tilebase#8 ) - vera_layer_mode_bitmap::tilebase#3 = vera_layer_mode_bitmap::tilebase#5 | VERA_TILEBASE_WIDTH_16 - to:vera_layer_mode_bitmap::@10 -vera_layer_mode_bitmap::@10: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@11 vera_layer_mode_bitmap::@12 vera_layer_mode_bitmap::@9 - vera_layer_mode_bitmap::tilebase#9 = phi( vera_layer_mode_bitmap::@11/vera_layer_mode_bitmap::tilebase#2, vera_layer_mode_bitmap::@12/vera_layer_mode_bitmap::tilebase#3, vera_layer_mode_bitmap::@9/vera_layer_mode_bitmap::tilebase#10 ) - vera_layer_mode_bitmap::config#11 = phi( vera_layer_mode_bitmap::@11/vera_layer_mode_bitmap::config#15, vera_layer_mode_bitmap::@12/vera_layer_mode_bitmap::config#16, vera_layer_mode_bitmap::@9/vera_layer_mode_bitmap::config#17 ) - vera_layer_mode_bitmap::layer#2 = phi( vera_layer_mode_bitmap::@11/vera_layer_mode_bitmap::layer#9, vera_layer_mode_bitmap::@12/vera_layer_mode_bitmap::layer#10, vera_layer_mode_bitmap::@9/vera_layer_mode_bitmap::layer#11 ) - vera_layer_set_config::layer#1 = vera_layer_mode_bitmap::layer#2 - vera_layer_set_config::config#1 = vera_layer_mode_bitmap::config#11 - call vera_layer_set_config - to:vera_layer_mode_bitmap::@13 -vera_layer_mode_bitmap::@13: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@10 - vera_layer_mode_bitmap::tilebase#6 = phi( vera_layer_mode_bitmap::@10/vera_layer_mode_bitmap::tilebase#9 ) - vera_layer_mode_bitmap::layer#3 = phi( vera_layer_mode_bitmap::@10/vera_layer_mode_bitmap::layer#2 ) - vera_layer_set_tilebase::layer#1 = vera_layer_mode_bitmap::layer#3 - vera_layer_set_tilebase::tilebase#1 = vera_layer_mode_bitmap::tilebase#6 - call vera_layer_set_tilebase - to:vera_layer_mode_bitmap::@14 -vera_layer_mode_bitmap::@14: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@13 - to:vera_layer_mode_bitmap::@return -vera_layer_mode_bitmap::@return: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@14 - return - to:@return - -void conio_x16_init() -conio_x16_init: scope:[conio_x16_init] from __start::__init1 - CONIO_SCREEN_TEXT#47 = phi( __start::__init1/CONIO_SCREEN_TEXT#7 ) - CONIO_SCREEN_BANK#42 = phi( __start::__init1/CONIO_SCREEN_BANK#7 ) - conio_x16_init::line#0 = *conio_x16_init::BASIC_CURSOR_LINE - vera_layer_mode_text::layer#0 = 1 - vera_layer_mode_text::mapbase_address#0 = (unsigned long)0 - vera_layer_mode_text::tilebase_address#0 = (unsigned long)$f800 - vera_layer_mode_text::mapwidth#0 = $80 - vera_layer_mode_text::mapheight#0 = $40 - vera_layer_mode_text::tilewidth#0 = 8 - vera_layer_mode_text::tileheight#0 = 8 - vera_layer_mode_text::color_mode#0 = $10 - call vera_layer_mode_text - to:conio_x16_init::@3 -conio_x16_init::@3: scope:[conio_x16_init] from conio_x16_init - conio_x16_init::line#9 = phi( conio_x16_init/conio_x16_init::line#0 ) - CONIO_SCREEN_TEXT#37 = phi( conio_x16_init/CONIO_SCREEN_TEXT#47 ) - CONIO_SCREEN_BANK#34 = phi( conio_x16_init/CONIO_SCREEN_BANK#42 ) - screensize::x#0 = &conio_screen_width - screensize::y#0 = &conio_screen_height - call screensize - to:conio_x16_init::@4 -conio_x16_init::@4: scope:[conio_x16_init] from conio_x16_init::@3 - conio_x16_init::line#8 = phi( conio_x16_init::@3/conio_x16_init::line#9 ) - CONIO_SCREEN_TEXT#28 = phi( conio_x16_init::@3/CONIO_SCREEN_TEXT#37 ) - CONIO_SCREEN_BANK#24 = phi( conio_x16_init::@3/CONIO_SCREEN_BANK#34 ) - screenlayer::layer#0 = 1 - call screenlayer - to:conio_x16_init::@5 -conio_x16_init::@5: scope:[conio_x16_init] from conio_x16_init::@4 - conio_x16_init::line#7 = phi( conio_x16_init::@4/conio_x16_init::line#8 ) - CONIO_SCREEN_TEXT#13 = phi( conio_x16_init::@4/CONIO_SCREEN_TEXT#3 ) - CONIO_SCREEN_BANK#13 = phi( conio_x16_init::@4/CONIO_SCREEN_BANK#3 ) - CONIO_SCREEN_BANK#0 = CONIO_SCREEN_BANK#13 - CONIO_SCREEN_TEXT#0 = CONIO_SCREEN_TEXT#13 - vera_layer_set_textcolor::layer#0 = 1 - vera_layer_set_textcolor::color#0 = WHITE - call vera_layer_set_textcolor - vera_layer_set_textcolor::return#2 = vera_layer_set_textcolor::return#1 - to:conio_x16_init::@6 -conio_x16_init::@6: scope:[conio_x16_init] from conio_x16_init::@5 - CONIO_SCREEN_TEXT#75 = phi( conio_x16_init::@5/CONIO_SCREEN_TEXT#0 ) - CONIO_SCREEN_BANK#65 = phi( conio_x16_init::@5/CONIO_SCREEN_BANK#0 ) - conio_x16_init::line#6 = phi( conio_x16_init::@5/conio_x16_init::line#7 ) - vera_layer_set_backcolor::layer#0 = 1 - vera_layer_set_backcolor::color#0 = BLUE - call vera_layer_set_backcolor - vera_layer_set_backcolor::return#2 = vera_layer_set_backcolor::return#1 - to:conio_x16_init::@7 -conio_x16_init::@7: scope:[conio_x16_init] from conio_x16_init::@6 - CONIO_SCREEN_TEXT#67 = phi( conio_x16_init::@6/CONIO_SCREEN_TEXT#75 ) - CONIO_SCREEN_BANK#60 = phi( conio_x16_init::@6/CONIO_SCREEN_BANK#65 ) - conio_x16_init::line#5 = phi( conio_x16_init::@6/conio_x16_init::line#6 ) - vera_layer_set_mapbase::layer#1 = 0 - vera_layer_set_mapbase::mapbase#1 = $20 - call vera_layer_set_mapbase - to:conio_x16_init::@8 -conio_x16_init::@8: scope:[conio_x16_init] from conio_x16_init::@7 - CONIO_SCREEN_TEXT#57 = phi( conio_x16_init::@7/CONIO_SCREEN_TEXT#67 ) - CONIO_SCREEN_BANK#51 = phi( conio_x16_init::@7/CONIO_SCREEN_BANK#60 ) - conio_x16_init::line#4 = phi( conio_x16_init::@7/conio_x16_init::line#5 ) - vera_layer_set_mapbase::layer#2 = 1 - vera_layer_set_mapbase::mapbase#2 = 0 - call vera_layer_set_mapbase - to:conio_x16_init::@9 -conio_x16_init::@9: scope:[conio_x16_init] from conio_x16_init::@8 - CONIO_SCREEN_TEXT#49 = phi( conio_x16_init::@8/CONIO_SCREEN_TEXT#57 ) - CONIO_SCREEN_BANK#44 = phi( conio_x16_init::@8/CONIO_SCREEN_BANK#51 ) - conio_x16_init::line#2 = phi( conio_x16_init::@8/conio_x16_init::line#4 ) - conio_x16_init::$7 = conio_x16_init::line#2 >= conio_screen_height - conio_x16_init::$8 = ! conio_x16_init::$7 - if(conio_x16_init::$8) goto conio_x16_init::@1 - to:conio_x16_init::@2 -conio_x16_init::@1: scope:[conio_x16_init] from conio_x16_init::@2 conio_x16_init::@9 - CONIO_SCREEN_TEXT#38 = phi( conio_x16_init::@2/CONIO_SCREEN_TEXT#48, conio_x16_init::@9/CONIO_SCREEN_TEXT#49 ) - CONIO_SCREEN_BANK#35 = phi( conio_x16_init::@2/CONIO_SCREEN_BANK#43, conio_x16_init::@9/CONIO_SCREEN_BANK#44 ) - conio_x16_init::line#3 = phi( conio_x16_init::@2/conio_x16_init::line#1, conio_x16_init::@9/conio_x16_init::line#2 ) - gotoxy::x#1 = 0 - gotoxy::y#1 = conio_x16_init::line#3 - call gotoxy - to:conio_x16_init::@10 -conio_x16_init::@10: scope:[conio_x16_init] from conio_x16_init::@1 - CONIO_SCREEN_TEXT#29 = phi( conio_x16_init::@1/CONIO_SCREEN_TEXT#38 ) - CONIO_SCREEN_BANK#25 = phi( conio_x16_init::@1/CONIO_SCREEN_BANK#35 ) - to:conio_x16_init::@return -conio_x16_init::@2: scope:[conio_x16_init] from conio_x16_init::@9 - CONIO_SCREEN_TEXT#48 = phi( conio_x16_init::@9/CONIO_SCREEN_TEXT#49 ) - CONIO_SCREEN_BANK#43 = phi( conio_x16_init::@9/CONIO_SCREEN_BANK#44 ) - conio_x16_init::$9 = conio_screen_height - 1 - conio_x16_init::line#1 = conio_x16_init::$9 - to:conio_x16_init::@1 -conio_x16_init::@return: scope:[conio_x16_init] from conio_x16_init::@10 - CONIO_SCREEN_TEXT#14 = phi( conio_x16_init::@10/CONIO_SCREEN_TEXT#29 ) - CONIO_SCREEN_BANK#14 = phi( conio_x16_init::@10/CONIO_SCREEN_BANK#25 ) - CONIO_SCREEN_BANK#1 = CONIO_SCREEN_BANK#14 - CONIO_SCREEN_TEXT#1 = CONIO_SCREEN_TEXT#14 - return - to:@return - -void clearline() -clearline: scope:[clearline] from insertup::@3 - CONIO_SCREEN_TEXT#15 = phi( insertup::@3/CONIO_SCREEN_TEXT#30 ) - *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL - clearline::$5 = conio_screen_layer * SIZEOF_UNSIGNED_INT - clearline::addr#0 = CONIO_SCREEN_TEXT#15 + conio_line_text[clearline::$5] - clearline::$1 = byte0 clearline::addr#0 - *VERA_ADDRX_L = clearline::$1 - clearline::$2 = byte1 clearline::addr#0 - *VERA_ADDRX_M = clearline::$2 - *VERA_ADDRX_H = VERA_INC_1 - vera_layer_get_color::layer#1 = conio_screen_layer - call vera_layer_get_color - vera_layer_get_color::return#4 = vera_layer_get_color::return#3 - to:clearline::@4 -clearline::@4: scope:[clearline] from clearline - vera_layer_get_color::return#7 = phi( clearline/vera_layer_get_color::return#4 ) - clearline::color#0 = vera_layer_get_color::return#7 - clearline::c#0 = 0 - to:clearline::@1 -clearline::@1: scope:[clearline] from clearline::@2 clearline::@4 - clearline::color#2 = phi( clearline::@2/clearline::color#1, clearline::@4/clearline::color#0 ) - clearline::c#2 = phi( clearline::@2/clearline::c#1, clearline::@4/clearline::c#0 ) - clearline::$4 = clearline::c#2 < conio_screen_width - if(clearline::$4) goto clearline::@2 - to:clearline::@3 -clearline::@2: scope:[clearline] from clearline::@1 - clearline::c#3 = phi( clearline::@1/clearline::c#2 ) - clearline::color#1 = phi( clearline::@1/clearline::color#2 ) - *VERA_DATA0 = ' ' - *VERA_DATA0 = clearline::color#1 - clearline::c#1 = ++ clearline::c#3 - to:clearline::@1 -clearline::@3: scope:[clearline] from clearline::@1 - conio_cursor_x[conio_screen_layer] = 0 - to:clearline::@return -clearline::@return: scope:[clearline] from clearline::@3 - return - to:@return - -void insertup() -insertup: scope:[insertup] from cscroll::@4 - CONIO_SCREEN_TEXT#39 = phi( cscroll::@4/CONIO_SCREEN_TEXT#50 ) - insertup::cy#0 = conio_cursor_y[conio_screen_layer] - insertup::width#0 = conio_screen_width * 2 - insertup::i#0 = 1 - to:insertup::@1 -insertup::@1: scope:[insertup] from insertup insertup::@4 - insertup::width#2 = phi( insertup/insertup::width#0, insertup::@4/insertup::width#3 ) - CONIO_SCREEN_TEXT#31 = phi( insertup/CONIO_SCREEN_TEXT#39, insertup::@4/CONIO_SCREEN_TEXT#40 ) - insertup::cy#1 = phi( insertup/insertup::cy#0, insertup::@4/insertup::cy#2 ) - insertup::i#2 = phi( insertup/insertup::i#0, insertup::@4/insertup::i#1 ) - insertup::$2 = insertup::i#2 <= insertup::cy#1 - if(insertup::$2) goto insertup::@2 - to:insertup::@3 -insertup::@2: scope:[insertup] from insertup::@1 - insertup::cy#3 = phi( insertup::@1/insertup::cy#1 ) - insertup::width#1 = phi( insertup::@1/insertup::width#2 ) - CONIO_SCREEN_TEXT#16 = phi( insertup::@1/CONIO_SCREEN_TEXT#31 ) - insertup::i#3 = phi( insertup::@1/insertup::i#2 ) - insertup::$3 = insertup::i#3 - 1 - insertup::line#0 = insertup::$3 << conio_rowshift - insertup::start#0 = CONIO_SCREEN_TEXT#16 + insertup::line#0 - insertup::$6 = insertup::start#0 + conio_rowskip - memcpy_in_vram::dest_bank#0 = 0 - memcpy_in_vram::dest#0 = (void *)insertup::start#0 - memcpy_in_vram::dest_increment#0 = VERA_INC_1 - memcpy_in_vram::src_bank#0 = 0 - memcpy_in_vram::src#0 = (void *)insertup::$6 - memcpy_in_vram::src_increment#0 = VERA_INC_1 - memcpy_in_vram::num#0 = insertup::width#1 - call memcpy_in_vram - to:insertup::@4 -insertup::@4: scope:[insertup] from insertup::@2 - insertup::width#3 = phi( insertup::@2/insertup::width#1 ) - CONIO_SCREEN_TEXT#40 = phi( insertup::@2/CONIO_SCREEN_TEXT#16 ) - insertup::cy#2 = phi( insertup::@2/insertup::cy#3 ) - insertup::i#4 = phi( insertup::@2/insertup::i#3 ) - insertup::i#1 = ++ insertup::i#4 - to:insertup::@1 -insertup::@3: scope:[insertup] from insertup::@1 - CONIO_SCREEN_TEXT#30 = phi( insertup::@1/CONIO_SCREEN_TEXT#31 ) - call clearline - to:insertup::@5 -insertup::@5: scope:[insertup] from insertup::@3 - to:insertup::@return -insertup::@return: scope:[insertup] from insertup::@5 - return - to:@return - -void cscroll() -cscroll: scope:[cscroll] from cputln - CONIO_SCREEN_TEXT#68 = phi( cputln/CONIO_SCREEN_TEXT#76 ) - cscroll::$0 = conio_cursor_y[conio_screen_layer] >= conio_screen_height - cscroll::$1 = ! cscroll::$0 - if(cscroll::$1) goto cscroll::@return - to:cscroll::@1 -cscroll::@1: scope:[cscroll] from cscroll - CONIO_SCREEN_TEXT#58 = phi( cscroll/CONIO_SCREEN_TEXT#68 ) - cscroll::$7 = 0 != conio_scroll_enable[conio_screen_layer] - if(cscroll::$7) goto cscroll::@4 - to:cscroll::@2 -cscroll::@4: scope:[cscroll] from cscroll::@1 - CONIO_SCREEN_TEXT#50 = phi( cscroll::@1/CONIO_SCREEN_TEXT#58 ) - call insertup - to:cscroll::@5 -cscroll::@5: scope:[cscroll] from cscroll::@4 - cscroll::$5 = conio_screen_height - 1 - gotoxy::x#2 = 0 - gotoxy::y#2 = cscroll::$5 - call gotoxy - to:cscroll::@6 -cscroll::@6: scope:[cscroll] from cscroll::@5 - to:cscroll::@return -cscroll::@2: scope:[cscroll] from cscroll::@1 - cscroll::$2 = conio_cursor_y[conio_screen_layer] >= conio_height - cscroll::$3 = ! cscroll::$2 - if(cscroll::$3) goto cscroll::@return - to:cscroll::@3 -cscroll::@3: scope:[cscroll] from cscroll::@2 - to:cscroll::@return -cscroll::@return: scope:[cscroll] from cscroll cscroll::@2 cscroll::@3 cscroll::@6 - return - to:@return - -void screenlayer(char layer) -screenlayer: scope:[screenlayer] from conio_x16_init::@4 main::@19 main::@6 - screenlayer::layer#3 = phi( conio_x16_init::@4/screenlayer::layer#0, main::@19/screenlayer::layer#1, main::@6/screenlayer::layer#2 ) - conio_screen_layer = screenlayer::layer#3 - vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer - call vera_layer_get_mapbase_bank - vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#1 - to:screenlayer::@3 -screenlayer::@3: scope:[screenlayer] from screenlayer - vera_layer_get_mapbase_bank::return#4 = phi( screenlayer/vera_layer_get_mapbase_bank::return#2 ) - screenlayer::$0 = vera_layer_get_mapbase_bank::return#4 - CONIO_SCREEN_BANK#2 = screenlayer::$0 - vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer - call vera_layer_get_mapbase_offset - vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#1 - to:screenlayer::@4 -screenlayer::@4: scope:[screenlayer] from screenlayer::@3 - CONIO_SCREEN_BANK#80 = 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 = (char *)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 - CONIO_SCREEN_TEXT#90 = phi( screenlayer::@4/CONIO_SCREEN_TEXT#2 ) - CONIO_SCREEN_BANK#76 = phi( screenlayer::@4/CONIO_SCREEN_BANK#80 ) - screenlayer::vera_layer_get_width1_layer#1 = phi( screenlayer::@4/screenlayer::vera_layer_get_width1_layer#0 ) - screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#1 * SIZEOF_POINTER - screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] - screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK - screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 - screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 * SIZEOF_UNSIGNED_INT - screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] - to:screenlayer::vera_layer_get_width1_@return -screenlayer::vera_layer_get_width1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_width1 - CONIO_SCREEN_TEXT#85 = phi( screenlayer::vera_layer_get_width1/CONIO_SCREEN_TEXT#90 ) - CONIO_SCREEN_BANK#71 = phi( screenlayer::vera_layer_get_width1/CONIO_SCREEN_BANK#76 ) - screenlayer::vera_layer_get_width1_return#2 = phi( screenlayer::vera_layer_get_width1/screenlayer::vera_layer_get_width1_return#0 ) - screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#2 - to:screenlayer::@1 -screenlayer::@1: scope:[screenlayer] from screenlayer::vera_layer_get_width1_@return - CONIO_SCREEN_TEXT#77 = phi( screenlayer::vera_layer_get_width1_@return/CONIO_SCREEN_TEXT#85 ) - CONIO_SCREEN_BANK#66 = phi( screenlayer::vera_layer_get_width1_@return/CONIO_SCREEN_BANK#71 ) - screenlayer::vera_layer_get_width1_return#3 = phi( screenlayer::vera_layer_get_width1_@return/screenlayer::vera_layer_get_width1_return#1 ) - screenlayer::$2 = screenlayer::vera_layer_get_width1_return#3 - conio_width = screenlayer::$2 - vera_layer_get_rowshift::layer#0 = conio_screen_layer - call vera_layer_get_rowshift - vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#1 - to:screenlayer::@5 -screenlayer::@5: scope:[screenlayer] from screenlayer::@1 - CONIO_SCREEN_TEXT#69 = phi( screenlayer::@1/CONIO_SCREEN_TEXT#77 ) - CONIO_SCREEN_BANK#61 = phi( screenlayer::@1/CONIO_SCREEN_BANK#66 ) - vera_layer_get_rowshift::return#4 = phi( screenlayer::@1/vera_layer_get_rowshift::return#2 ) - screenlayer::$3 = vera_layer_get_rowshift::return#4 - conio_rowshift = screenlayer::$3 - vera_layer_get_rowskip::layer#0 = conio_screen_layer - call vera_layer_get_rowskip - vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#1 - to:screenlayer::@6 -screenlayer::@6: scope:[screenlayer] from screenlayer::@5 - CONIO_SCREEN_TEXT#59 = phi( screenlayer::@5/CONIO_SCREEN_TEXT#69 ) - CONIO_SCREEN_BANK#52 = phi( screenlayer::@5/CONIO_SCREEN_BANK#61 ) - vera_layer_get_rowskip::return#4 = phi( screenlayer::@5/vera_layer_get_rowskip::return#2 ) - screenlayer::$4 = vera_layer_get_rowskip::return#4 - conio_rowskip = screenlayer::$4 - screenlayer::vera_layer_get_height1_layer#0 = conio_screen_layer - to:screenlayer::vera_layer_get_height1 -screenlayer::vera_layer_get_height1: scope:[screenlayer] from screenlayer::@6 - CONIO_SCREEN_TEXT#51 = phi( screenlayer::@6/CONIO_SCREEN_TEXT#59 ) - CONIO_SCREEN_BANK#45 = phi( screenlayer::@6/CONIO_SCREEN_BANK#52 ) - screenlayer::vera_layer_get_height1_layer#1 = phi( screenlayer::@6/screenlayer::vera_layer_get_height1_layer#0 ) - screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#1 * SIZEOF_POINTER - screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] - screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK - screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 - screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 * SIZEOF_UNSIGNED_INT - screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] - to:screenlayer::vera_layer_get_height1_@return -screenlayer::vera_layer_get_height1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_height1 - CONIO_SCREEN_TEXT#41 = phi( screenlayer::vera_layer_get_height1/CONIO_SCREEN_TEXT#51 ) - CONIO_SCREEN_BANK#36 = phi( screenlayer::vera_layer_get_height1/CONIO_SCREEN_BANK#45 ) - screenlayer::vera_layer_get_height1_return#2 = phi( screenlayer::vera_layer_get_height1/screenlayer::vera_layer_get_height1_return#0 ) - screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#2 - to:screenlayer::@2 -screenlayer::@2: scope:[screenlayer] from screenlayer::vera_layer_get_height1_@return - CONIO_SCREEN_TEXT#32 = phi( screenlayer::vera_layer_get_height1_@return/CONIO_SCREEN_TEXT#41 ) - CONIO_SCREEN_BANK#26 = phi( screenlayer::vera_layer_get_height1_@return/CONIO_SCREEN_BANK#36 ) - screenlayer::vera_layer_get_height1_return#3 = phi( screenlayer::vera_layer_get_height1_@return/screenlayer::vera_layer_get_height1_return#1 ) - screenlayer::$5 = screenlayer::vera_layer_get_height1_return#3 - conio_height = screenlayer::$5 - to:screenlayer::@return -screenlayer::@return: scope:[screenlayer] from screenlayer::@2 - CONIO_SCREEN_TEXT#17 = phi( screenlayer::@2/CONIO_SCREEN_TEXT#32 ) - CONIO_SCREEN_BANK#15 = phi( screenlayer::@2/CONIO_SCREEN_BANK#26 ) - CONIO_SCREEN_BANK#3 = CONIO_SCREEN_BANK#15 - CONIO_SCREEN_TEXT#3 = CONIO_SCREEN_TEXT#17 - return - to:@return - -unsigned int rand() -rand: scope:[rand] from main::@2 main::@36 main::@38 main::@40 main::@42 - rand_state#13 = phi( main::@2/rand_state#23, main::@36/rand_state#24, main::@38/rand_state#25, main::@40/rand_state#26, main::@42/rand_state#27 ) - rand::$0 = rand_state#13 << 7 - rand_state#0 = rand_state#13 ^ rand::$0 - rand::$1 = rand_state#0 >> 9 - rand_state#1 = rand_state#0 ^ rand::$1 - rand::$2 = rand_state#1 << 8 - rand_state#2 = rand_state#1 ^ rand::$2 - rand::return#0 = rand_state#2 - to:rand::@return -rand::@return: scope:[rand] from rand - rand_state#14 = phi( rand/rand_state#2 ) - rand::return#7 = phi( rand/rand::return#0 ) - rand::return#1 = rand::return#7 - rand_state#3 = rand_state#14 - return - to:@return - -void printf_str(void (*putc)(char) , const char *s) -printf_str: scope:[printf_str] from main::@11 main::@14 main::@24 main::@25 main::@26 main::@27 main::@48 - printf_str::putc#9 = phi( main::@11/printf_str::putc#4, main::@14/printf_str::putc#6, main::@24/printf_str::putc#0, main::@25/printf_str::putc#1, main::@26/printf_str::putc#2, main::@27/printf_str::putc#3, main::@48/printf_str::putc#5 ) - printf_str::s#9 = phi( main::@11/printf_str::s#5, main::@14/printf_str::s#7, main::@24/printf_str::s#1, main::@25/printf_str::s#2, main::@26/printf_str::s#3, main::@27/printf_str::s#4, main::@48/printf_str::s#6 ) - printf_str::c#0 = 0 - to:printf_str::@1 -printf_str::@1: scope:[printf_str] from printf_str printf_str::@2 - printf_str::putc#8 = phi( printf_str/printf_str::putc#9, printf_str::@2/printf_str::putc#7 ) - printf_str::s#8 = phi( printf_str/printf_str::s#9, printf_str::@2/printf_str::s#10 ) - printf_str::c#1 = *printf_str::s#8 - printf_str::$0 = printf_str::c#1 - printf_str::s#0 = ++ printf_str::s#8 - printf_str::$2 = 0 != printf_str::$0 - if(printf_str::$2) goto printf_str::@2 - to:printf_str::@return -printf_str::@2: scope:[printf_str] from printf_str::@1 - printf_str::s#10 = phi( printf_str::@1/printf_str::s#0 ) - printf_str::putc#7 = phi( printf_str::@1/printf_str::putc#8 ) - printf_str::c#2 = phi( printf_str::@1/printf_str::c#1 ) - stackpush(char) = printf_str::c#2 - callexecute *printf_str::putc#7 - sideeffect stackpullpadding(1) - to:printf_str::@1 -printf_str::@return: scope:[printf_str] from printf_str::@1 - return - to:@return - -void bitmap_init(char layer , unsigned long address) -bitmap_init: scope:[bitmap_init] from main::@10 - bitmap_init::layer#1 = phi( main::@10/bitmap_init::layer#0 ) - bitmap_init::address#1 = phi( main::@10/bitmap_init::address#0 ) - __bitmap_address = bitmap_init::address#1 - __bitmap_layer = bitmap_init::layer#1 - bitmap_init::vera_layer_get_color_depth1_layer#0 = __bitmap_layer - to:bitmap_init::vera_layer_get_color_depth1 -bitmap_init::vera_layer_get_color_depth1: scope:[bitmap_init] from bitmap_init - bitmap_init::vera_layer_get_color_depth1_layer#1 = phi( bitmap_init/bitmap_init::vera_layer_get_color_depth1_layer#0 ) - bitmap_init::vera_layer_get_color_depth1_$1 = bitmap_init::vera_layer_get_color_depth1_layer#1 * SIZEOF_POINTER - bitmap_init::vera_layer_get_color_depth1_config#0 = vera_layer_config[bitmap_init::vera_layer_get_color_depth1_$1] - bitmap_init::vera_layer_get_color_depth1_$0 = *bitmap_init::vera_layer_get_color_depth1_config#0 & VERA_LAYER_COLOR_DEPTH_MASK - bitmap_init::vera_layer_get_color_depth1_return#0 = bitmap_init::vera_layer_get_color_depth1_$0 - to:bitmap_init::vera_layer_get_color_depth1_@return -bitmap_init::vera_layer_get_color_depth1_@return: scope:[bitmap_init] from bitmap_init::vera_layer_get_color_depth1 - bitmap_init::vera_layer_get_color_depth1_return#2 = phi( bitmap_init::vera_layer_get_color_depth1/bitmap_init::vera_layer_get_color_depth1_return#0 ) - bitmap_init::vera_layer_get_color_depth1_return#1 = bitmap_init::vera_layer_get_color_depth1_return#2 - to:bitmap_init::@16 -bitmap_init::@16: scope:[bitmap_init] from bitmap_init::vera_layer_get_color_depth1_@return - bitmap_init::vera_layer_get_color_depth1_return#3 = phi( bitmap_init::vera_layer_get_color_depth1_@return/bitmap_init::vera_layer_get_color_depth1_return#1 ) - bitmap_init::$0 = bitmap_init::vera_layer_get_color_depth1_return#3 - __bitmap_color_depth = bitmap_init::$0 - call vera_display_get_hscale - vera_display_get_hscale::return#2 = vera_display_get_hscale::return#1 - to:bitmap_init::@17 -bitmap_init::@17: scope:[bitmap_init] from bitmap_init::@16 - vera_display_get_hscale::return#4 = phi( bitmap_init::@16/vera_display_get_hscale::return#2 ) - bitmap_init::$1 = vera_display_get_hscale::return#4 - __bitmap_hscale = bitmap_init::$1 - call vera_display_get_vscale - vera_display_get_vscale::return#2 = vera_display_get_vscale::return#1 - to:bitmap_init::@18 -bitmap_init::@18: scope:[bitmap_init] from bitmap_init::@17 - vera_display_get_vscale::return#4 = phi( bitmap_init::@17/vera_display_get_vscale::return#2 ) - bitmap_init::$2 = vera_display_get_vscale::return#4 - __bitmap_vscale = bitmap_init::$2 - bitmap_init::bitmask#0 = bitmasks[__bitmap_color_depth] - bitmap_init::bitshift#0 = bitshifts[__bitmap_color_depth] - bitmap_init::x#0 = 0 - to:bitmap_init::@1 -bitmap_init::@1: scope:[bitmap_init] from bitmap_init::@18 bitmap_init::@7 - bitmap_init::bitshift#10 = phi( bitmap_init::@18/bitmap_init::bitshift#0, bitmap_init::@7/bitmap_init::bitshift#14 ) - bitmap_init::bitmask#10 = phi( bitmap_init::@18/bitmap_init::bitmask#0, bitmap_init::@7/bitmap_init::bitmask#16 ) - bitmap_init::x#7 = phi( bitmap_init::@18/bitmap_init::x#0, bitmap_init::@7/bitmap_init::x#1 ) - bitmap_init::$5 = __bitmap_color_depth == 0 - bitmap_init::$6 = ! bitmap_init::$5 - if(bitmap_init::$6) goto bitmap_init::@2 - to:bitmap_init::@8 -bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@8 - bitmap_init::bitshift#11 = phi( bitmap_init::@1/bitmap_init::bitshift#10, bitmap_init::@8/bitmap_init::bitshift#1 ) - bitmap_init::bitmask#11 = phi( bitmap_init::@1/bitmap_init::bitmask#10, bitmap_init::@8/bitmap_init::bitmask#1 ) - bitmap_init::x#8 = phi( bitmap_init::@1/bitmap_init::x#7, bitmap_init::@8/bitmap_init::x#2 ) - bitmap_init::$8 = __bitmap_color_depth == 1 - bitmap_init::$9 = ! bitmap_init::$8 - if(bitmap_init::$9) goto bitmap_init::@3 - to:bitmap_init::@9 -bitmap_init::@8: scope:[bitmap_init] from bitmap_init::@1 - bitmap_init::bitshift#5 = phi( bitmap_init::@1/bitmap_init::bitshift#10 ) - bitmap_init::bitmask#5 = phi( bitmap_init::@1/bitmap_init::bitmask#10 ) - bitmap_init::x#2 = phi( bitmap_init::@1/bitmap_init::x#7 ) - bitmap_init::$7 = bitmap_init::x#2 >> 3 - bitmap_init::$23 = bitmap_init::x#2 * SIZEOF_UNSIGNED_INT - __bitmap_plot_x[bitmap_init::$23] = bitmap_init::$7 - __bitmap_plot_bitmask[bitmap_init::x#2] = bitmap_init::bitmask#5 - __bitmap_plot_bitshift[bitmap_init::x#2] = (char)bitmap_init::bitshift#5 - bitmap_init::bitshift#1 = bitmap_init::bitshift#5 - 1 - bitmap_init::bitmask#1 = bitmap_init::bitmask#5 >> 1 - to:bitmap_init::@2 -bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@9 - bitmap_init::bitshift#12 = phi( bitmap_init::@2/bitmap_init::bitshift#11, bitmap_init::@9/bitmap_init::bitshift#2 ) - bitmap_init::bitmask#12 = phi( bitmap_init::@2/bitmap_init::bitmask#11, bitmap_init::@9/bitmap_init::bitmask#2 ) - bitmap_init::x#9 = phi( bitmap_init::@2/bitmap_init::x#8, bitmap_init::@9/bitmap_init::x#3 ) - bitmap_init::$11 = __bitmap_color_depth == 2 - bitmap_init::$12 = ! bitmap_init::$11 - if(bitmap_init::$12) goto bitmap_init::@4 - to:bitmap_init::@10 -bitmap_init::@9: scope:[bitmap_init] from bitmap_init::@2 - bitmap_init::bitshift#6 = phi( bitmap_init::@2/bitmap_init::bitshift#11 ) - bitmap_init::bitmask#6 = phi( bitmap_init::@2/bitmap_init::bitmask#11 ) - bitmap_init::x#3 = phi( bitmap_init::@2/bitmap_init::x#8 ) - bitmap_init::$10 = bitmap_init::x#3 >> 2 - bitmap_init::$24 = bitmap_init::x#3 * SIZEOF_UNSIGNED_INT - __bitmap_plot_x[bitmap_init::$24] = bitmap_init::$10 - __bitmap_plot_bitmask[bitmap_init::x#3] = bitmap_init::bitmask#6 - __bitmap_plot_bitshift[bitmap_init::x#3] = (char)bitmap_init::bitshift#6 - bitmap_init::bitshift#2 = bitmap_init::bitshift#6 - 2 - bitmap_init::bitmask#2 = bitmap_init::bitmask#6 >> 2 - to:bitmap_init::@3 -bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@10 bitmap_init::@3 - bitmap_init::bitmask#13 = phi( bitmap_init::@10/bitmap_init::bitmask#3, bitmap_init::@3/bitmap_init::bitmask#12 ) - bitmap_init::x#10 = phi( bitmap_init::@10/bitmap_init::x#4, bitmap_init::@3/bitmap_init::x#9 ) - bitmap_init::bitshift#13 = phi( bitmap_init::@10/bitmap_init::bitshift#3, bitmap_init::@3/bitmap_init::bitshift#12 ) - bitmap_init::$14 = __bitmap_color_depth == 3 - bitmap_init::$15 = ! bitmap_init::$14 - if(bitmap_init::$15) goto bitmap_init::@5 - to:bitmap_init::@11 -bitmap_init::@10: scope:[bitmap_init] from bitmap_init::@3 - bitmap_init::bitshift#7 = phi( bitmap_init::@3/bitmap_init::bitshift#12 ) - bitmap_init::bitmask#7 = phi( bitmap_init::@3/bitmap_init::bitmask#12 ) - bitmap_init::x#4 = phi( bitmap_init::@3/bitmap_init::x#9 ) - bitmap_init::$13 = bitmap_init::x#4 >> 1 - bitmap_init::$25 = bitmap_init::x#4 * SIZEOF_UNSIGNED_INT - __bitmap_plot_x[bitmap_init::$25] = bitmap_init::$13 - __bitmap_plot_bitmask[bitmap_init::x#4] = bitmap_init::bitmask#7 - __bitmap_plot_bitshift[bitmap_init::x#4] = (char)bitmap_init::bitshift#7 - bitmap_init::bitshift#3 = bitmap_init::bitshift#7 - 4 - bitmap_init::bitmask#3 = bitmap_init::bitmask#7 >> 4 - to:bitmap_init::@4 -bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@11 bitmap_init::@4 - bitmap_init::x#14 = phi( bitmap_init::@11/bitmap_init::x#5, bitmap_init::@4/bitmap_init::x#10 ) - bitmap_init::bitmask#15 = phi( bitmap_init::@11/bitmap_init::bitmask#8, bitmap_init::@4/bitmap_init::bitmask#13 ) - bitmap_init::bitshift#8 = phi( bitmap_init::@11/bitmap_init::bitshift#9, bitmap_init::@4/bitmap_init::bitshift#13 ) - bitmap_init::$16 = bitmap_init::bitshift#8 < 0 - bitmap_init::$17 = ! bitmap_init::$16 - if(bitmap_init::$17) goto bitmap_init::@6 - to:bitmap_init::@12 -bitmap_init::@11: scope:[bitmap_init] from bitmap_init::@4 - bitmap_init::bitshift#9 = phi( bitmap_init::@4/bitmap_init::bitshift#13 ) - bitmap_init::bitmask#8 = phi( bitmap_init::@4/bitmap_init::bitmask#13 ) - bitmap_init::x#5 = phi( bitmap_init::@4/bitmap_init::x#10 ) - bitmap_init::$26 = bitmap_init::x#5 * SIZEOF_UNSIGNED_INT - __bitmap_plot_x[bitmap_init::$26] = bitmap_init::x#5 - __bitmap_plot_bitmask[bitmap_init::x#5] = bitmap_init::bitmask#8 - __bitmap_plot_bitshift[bitmap_init::x#5] = (char)bitmap_init::bitshift#9 - to:bitmap_init::@5 -bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@12 bitmap_init::@5 - bitmap_init::bitshift#16 = phi( bitmap_init::@12/bitmap_init::bitshift#4, bitmap_init::@5/bitmap_init::bitshift#8 ) - bitmap_init::x#12 = phi( bitmap_init::@12/bitmap_init::x#13, bitmap_init::@5/bitmap_init::x#14 ) - bitmap_init::bitmask#9 = phi( bitmap_init::@12/bitmap_init::bitmask#14, bitmap_init::@5/bitmap_init::bitmask#15 ) - bitmap_init::$18 = bitmap_init::bitmask#9 == 0 - bitmap_init::$19 = ! bitmap_init::$18 - if(bitmap_init::$19) goto bitmap_init::@7 - to:bitmap_init::@13 -bitmap_init::@12: scope:[bitmap_init] from bitmap_init::@5 - bitmap_init::x#13 = phi( bitmap_init::@5/bitmap_init::x#14 ) - bitmap_init::bitmask#14 = phi( bitmap_init::@5/bitmap_init::bitmask#15 ) - bitmap_init::bitshift#4 = bitshifts[__bitmap_color_depth] - to:bitmap_init::@6 -bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@13 bitmap_init::@6 - bitmap_init::bitshift#14 = phi( bitmap_init::@13/bitmap_init::bitshift#15, bitmap_init::@6/bitmap_init::bitshift#16 ) - bitmap_init::bitmask#16 = phi( bitmap_init::@13/bitmap_init::bitmask#4, bitmap_init::@6/bitmap_init::bitmask#9 ) - bitmap_init::x#6 = phi( bitmap_init::@13/bitmap_init::x#11, bitmap_init::@6/bitmap_init::x#12 ) - bitmap_init::x#1 = bitmap_init::x#6 + rangenext(0,$27f) - bitmap_init::$20 = bitmap_init::x#1 != rangelast(0,$27f) - if(bitmap_init::$20) goto bitmap_init::@1 - to:bitmap_init::@14 -bitmap_init::@13: scope:[bitmap_init] from bitmap_init::@6 - bitmap_init::bitshift#15 = phi( bitmap_init::@6/bitmap_init::bitshift#16 ) - bitmap_init::x#11 = phi( bitmap_init::@6/bitmap_init::x#12 ) - bitmap_init::bitmask#4 = bitmasks[__bitmap_color_depth] - to:bitmap_init::@7 -bitmap_init::@14: scope:[bitmap_init] from bitmap_init::@7 - bitmap_init::$3 = __bitmap_color_depth << 2 - bitmap_init::$4 = bitmap_init::$3 + __bitmap_hscale - bitmap_init::$27 = bitmap_init::$4 * SIZEOF_UNSIGNED_INT - bitmap_init::hdelta#0 = hdeltas[bitmap_init::$27] - bitmap_init::yoffs#0 = __bitmap_address - bitmap_init::y#0 = 0 - to:bitmap_init::@15 -bitmap_init::@15: scope:[bitmap_init] from bitmap_init::@14 bitmap_init::@15 - bitmap_init::hdelta#1 = phi( bitmap_init::@14/bitmap_init::hdelta#0, bitmap_init::@15/bitmap_init::hdelta#1 ) - bitmap_init::yoffs#2 = phi( bitmap_init::@14/bitmap_init::yoffs#0, bitmap_init::@15/bitmap_init::yoffs#1 ) - bitmap_init::y#2 = phi( bitmap_init::@14/bitmap_init::y#0, bitmap_init::@15/bitmap_init::y#1 ) - bitmap_init::$28 = bitmap_init::y#2 * SIZEOF_UNSIGNED_LONG - __bitmap_plot_y[bitmap_init::$28] = bitmap_init::yoffs#2 - bitmap_init::$21 = bitmap_init::yoffs#2 + bitmap_init::hdelta#1 - bitmap_init::yoffs#1 = bitmap_init::$21 - bitmap_init::y#1 = bitmap_init::y#2 + rangenext(0,$1df) - bitmap_init::$22 = bitmap_init::y#1 != rangelast(0,$1df) - if(bitmap_init::$22) goto bitmap_init::@15 - to:bitmap_init::@return -bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@15 - return - to:@return - -void bitmap_clear() -bitmap_clear: scope:[bitmap_clear] from main::@29 - bitmap_clear::$6 = __bitmap_vscale * SIZEOF_UNSIGNED_INT - bitmap_clear::vdelta#0 = vdeltas[bitmap_clear::$6] - bitmap_clear::$0 = __bitmap_color_depth << 2 - bitmap_clear::$1 = bitmap_clear::$0 + __bitmap_hscale - bitmap_clear::$7 = bitmap_clear::$1 * SIZEOF_UNSIGNED_INT - bitmap_clear::hdelta#0 = hdeltas[bitmap_clear::$7] - mul16u::a#0 = bitmap_clear::hdelta#0 - mul16u::b#0 = bitmap_clear::vdelta#0 - call mul16u - mul16u::return#0 = mul16u::return#2 - to:bitmap_clear::@1 -bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear - mul16u::return#3 = phi( bitmap_clear/mul16u::return#0 ) - bitmap_clear::count#0 = mul16u::return#3 - bitmap_clear::vbank#0 = byte2 __bitmap_address - bitmap_clear::$4 = word0 __bitmap_address - bitmap_clear::vdest#0 = (void *)bitmap_clear::$4 - memset_vram::vbank#0 = bitmap_clear::vbank#0 - memset_vram::vdest#0 = bitmap_clear::vdest#0 - memset_vram::data#0 = 0 - memset_vram::num#0 = bitmap_clear::count#0 - call memset_vram - to:bitmap_clear::@2 -bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 - to:bitmap_clear::@return -bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@2 - return - to:@return - -void bitmap_plot(unsigned int x , unsigned int y , char c) -bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1 - bitmap_plot::c#8 = phi( bitmap_line_xdyd::@1/bitmap_plot::c#2, bitmap_line_xdyi::@1/bitmap_plot::c#1, bitmap_line_ydxd::@1/bitmap_plot::c#4, bitmap_line_ydxi::@1/bitmap_plot::c#3 ) - bitmap_plot::y#4 = phi( bitmap_line_xdyd::@1/bitmap_plot::y#1, bitmap_line_xdyi::@1/bitmap_plot::y#0, bitmap_line_ydxd::@1/bitmap_plot::y#3, bitmap_line_ydxi::@1/bitmap_plot::y#2 ) - bitmap_plot::x#4 = phi( bitmap_line_xdyd::@1/bitmap_plot::x#1, bitmap_line_xdyi::@1/bitmap_plot::x#0, bitmap_line_ydxd::@1/bitmap_plot::x#3, bitmap_line_ydxi::@1/bitmap_plot::x#2 ) - bitmap_plot::$9 = bitmap_plot::x#4 * SIZEOF_UNSIGNED_INT - bitmap_plot::plot_x#0 = (unsigned long)__bitmap_plot_x[bitmap_plot::$9] - bitmap_plot::$10 = bitmap_plot::y#4 * SIZEOF_UNSIGNED_LONG - bitmap_plot::plot_y#0 = __bitmap_plot_y[bitmap_plot::$10] - bitmap_plot::plotter#0 = bitmap_plot::plot_x#0 + bitmap_plot::plot_y#0 - bitmap_plot::bitshift#0 = __bitmap_plot_bitshift[bitmap_plot::x#4] - bitmap_plot::$11 = 0 != bitmap_plot::bitshift#0 - if(bitmap_plot::$11) goto bitmap_plot::@1 - to:bitmap_plot::@2 -bitmap_plot::@1: scope:[bitmap_plot] from bitmap_plot - bitmap_plot::x#8 = phi( bitmap_plot/bitmap_plot::x#4 ) - bitmap_plot::plotter#2 = phi( bitmap_plot/bitmap_plot::plotter#0 ) - bitmap_plot::bitshift#1 = phi( bitmap_plot/bitmap_plot::bitshift#0 ) - bitmap_plot::c#5 = phi( bitmap_plot/bitmap_plot::c#8 ) - bitmap_plot::$2 = bitmap_plot::c#5 << bitmap_plot::bitshift#1 - bitmap_plot::$3 = bitmap_plot::$2 - to:bitmap_plot::@3 -bitmap_plot::@2: scope:[bitmap_plot] from bitmap_plot - bitmap_plot::x#9 = phi( bitmap_plot/bitmap_plot::x#4 ) - bitmap_plot::plotter#3 = phi( bitmap_plot/bitmap_plot::plotter#0 ) - bitmap_plot::c#6 = phi( bitmap_plot/bitmap_plot::c#8 ) - bitmap_plot::$1 = bitmap_plot::c#6 - to:bitmap_plot::@3 -bitmap_plot::@3: scope:[bitmap_plot] from bitmap_plot::@1 bitmap_plot::@2 - bitmap_plot::x#7 = phi( bitmap_plot::@1/bitmap_plot::x#8, bitmap_plot::@2/bitmap_plot::x#9 ) - bitmap_plot::plotter#1 = phi( bitmap_plot::@1/bitmap_plot::plotter#2, bitmap_plot::@2/bitmap_plot::plotter#3 ) - bitmap_plot::$4 = phi( bitmap_plot::@1/bitmap_plot::$3, bitmap_plot::@2/bitmap_plot::$1 ) - bitmap_plot::c#0 = bitmap_plot::$4 - bitmap_plot::vera_vram_address01_bankaddr#0 = bitmap_plot::plotter#1 - bitmap_plot::vera_vram_address01_incr#0 = VERA_INC_0 - to:bitmap_plot::vera_vram_address01 -bitmap_plot::vera_vram_address01: scope:[bitmap_plot] from bitmap_plot::@3 - bitmap_plot::c#9 = phi( bitmap_plot::@3/bitmap_plot::c#0 ) - bitmap_plot::x#6 = phi( bitmap_plot::@3/bitmap_plot::x#7 ) - bitmap_plot::vera_vram_address01_incr#1 = phi( bitmap_plot::@3/bitmap_plot::vera_vram_address01_incr#0 ) - bitmap_plot::vera_vram_address01_bankaddr#1 = phi( bitmap_plot::@3/bitmap_plot::vera_vram_address01_bankaddr#0 ) - *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL - bitmap_plot::vera_vram_address01_$0 = byte0 bitmap_plot::vera_vram_address01_bankaddr#1 - *VERA_ADDRX_L = bitmap_plot::vera_vram_address01_$0 - bitmap_plot::vera_vram_address01_$1 = byte1 bitmap_plot::vera_vram_address01_bankaddr#1 - *VERA_ADDRX_M = bitmap_plot::vera_vram_address01_$1 - bitmap_plot::vera_vram_address01_$2 = byte2 bitmap_plot::vera_vram_address01_bankaddr#1 - bitmap_plot::vera_vram_address01_$3 = bitmap_plot::vera_vram_address01_$2 | bitmap_plot::vera_vram_address01_incr#1 - *VERA_ADDRX_H = bitmap_plot::vera_vram_address01_$3 - to:bitmap_plot::@4 -bitmap_plot::@4: scope:[bitmap_plot] from bitmap_plot::vera_vram_address01 - bitmap_plot::c#7 = phi( bitmap_plot::vera_vram_address01/bitmap_plot::c#9 ) - bitmap_plot::x#5 = phi( bitmap_plot::vera_vram_address01/bitmap_plot::x#6 ) - bitmap_plot::$6 = ~ __bitmap_plot_bitmask[bitmap_plot::x#5] - bitmap_plot::$7 = *VERA_DATA0 & bitmap_plot::$6 - bitmap_plot::$8 = bitmap_plot::$7 | bitmap_plot::c#7 - *VERA_DATA0 = bitmap_plot::$8 - to:bitmap_plot::@return -bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot::@4 - return - to:@return - -void bitmap_line(unsigned int x0 , unsigned int x1 , unsigned int y0 , unsigned int y1 , char c) -bitmap_line: scope:[bitmap_line] from main::@43 main::@5 - bitmap_line::c#16 = phi( main::@43/bitmap_line::c#0, main::@5/bitmap_line::c#1 ) - bitmap_line::y1#14 = phi( main::@43/bitmap_line::y1#0, main::@5/bitmap_line::y1#1 ) - bitmap_line::y0#14 = phi( main::@43/bitmap_line::y0#0, main::@5/bitmap_line::y0#1 ) - bitmap_line::x1#2 = phi( main::@43/bitmap_line::x1#0, main::@5/bitmap_line::x1#1 ) - bitmap_line::x0#2 = phi( main::@43/bitmap_line::x0#0, main::@5/bitmap_line::x0#1 ) - bitmap_line::xd#0 = 0 - bitmap_line::yd#0 = 0 - bitmap_line::$0 = bitmap_line::x0#2 < bitmap_line::x1#2 - if(bitmap_line::$0) goto bitmap_line::@1 - to:bitmap_line::@2 -bitmap_line::@1: scope:[bitmap_line] from bitmap_line - bitmap_line::c#15 = phi( bitmap_line/bitmap_line::c#16 ) - bitmap_line::y1#2 = phi( bitmap_line/bitmap_line::y1#14 ) - bitmap_line::y0#2 = phi( bitmap_line/bitmap_line::y0#14 ) - bitmap_line::x0#3 = phi( bitmap_line/bitmap_line::x0#2 ) - bitmap_line::x1#3 = phi( bitmap_line/bitmap_line::x1#2 ) - bitmap_line::$11 = bitmap_line::x1#3 - bitmap_line::x0#3 - bitmap_line::xd#1 = bitmap_line::$11 - bitmap_line::$12 = bitmap_line::y0#2 < bitmap_line::y1#2 - if(bitmap_line::$12) goto bitmap_line::@11 - to:bitmap_line::@5 -bitmap_line::@2: scope:[bitmap_line] from bitmap_line - bitmap_line::c#14 = phi( bitmap_line/bitmap_line::c#16 ) - bitmap_line::y1#3 = phi( bitmap_line/bitmap_line::y1#14 ) - bitmap_line::y0#3 = phi( bitmap_line/bitmap_line::y0#14 ) - bitmap_line::x1#4 = phi( bitmap_line/bitmap_line::x1#2 ) - bitmap_line::x0#4 = phi( bitmap_line/bitmap_line::x0#2 ) - bitmap_line::$1 = bitmap_line::x0#4 - bitmap_line::x1#4 - bitmap_line::xd#2 = bitmap_line::$1 - bitmap_line::$2 = bitmap_line::y0#3 < bitmap_line::y1#3 - if(bitmap_line::$2) goto bitmap_line::@7 - to:bitmap_line::@3 -bitmap_line::@7: scope:[bitmap_line] from bitmap_line::@2 - bitmap_line::c#11 = phi( bitmap_line::@2/bitmap_line::c#14 ) - bitmap_line::x0#12 = phi( bitmap_line::@2/bitmap_line::x0#4 ) - bitmap_line::x1#12 = phi( bitmap_line::@2/bitmap_line::x1#4 ) - bitmap_line::xd#3 = phi( bitmap_line::@2/bitmap_line::xd#2 ) - bitmap_line::y0#4 = phi( bitmap_line::@2/bitmap_line::y0#3 ) - bitmap_line::y1#4 = phi( bitmap_line::@2/bitmap_line::y1#3 ) - bitmap_line::$7 = bitmap_line::y1#4 - bitmap_line::y0#4 - bitmap_line::yd#1 = bitmap_line::$7 - bitmap_line::$8 = bitmap_line::yd#1 < bitmap_line::xd#3 - if(bitmap_line::$8) goto bitmap_line::@9 - to:bitmap_line::@10 -bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@2 - bitmap_line::c#10 = phi( bitmap_line::@2/bitmap_line::c#14 ) - bitmap_line::x0#11 = phi( bitmap_line::@2/bitmap_line::x0#4 ) - bitmap_line::x1#11 = phi( bitmap_line::@2/bitmap_line::x1#4 ) - bitmap_line::xd#4 = phi( bitmap_line::@2/bitmap_line::xd#2 ) - bitmap_line::y1#5 = phi( bitmap_line::@2/bitmap_line::y1#3 ) - bitmap_line::y0#5 = phi( bitmap_line::@2/bitmap_line::y0#3 ) - bitmap_line::$3 = bitmap_line::y0#5 - bitmap_line::y1#5 - bitmap_line::yd#2 = bitmap_line::$3 - bitmap_line::$4 = bitmap_line::yd#2 < bitmap_line::xd#4 - if(bitmap_line::$4) goto bitmap_line::@8 - to:bitmap_line::@4 -bitmap_line::@8: scope:[bitmap_line] from bitmap_line::@3 - bitmap_line::c#2 = phi( bitmap_line::@3/bitmap_line::c#10 ) - bitmap_line::yd#5 = phi( bitmap_line::@3/bitmap_line::yd#2 ) - bitmap_line::xd#5 = phi( bitmap_line::@3/bitmap_line::xd#4 ) - bitmap_line::x0#5 = phi( bitmap_line::@3/bitmap_line::x0#11 ) - bitmap_line::y1#6 = phi( bitmap_line::@3/bitmap_line::y1#5 ) - bitmap_line::x1#5 = phi( bitmap_line::@3/bitmap_line::x1#11 ) - bitmap_line_xdyi::x#0 = bitmap_line::x1#5 - bitmap_line_xdyi::y#0 = bitmap_line::y1#6 - bitmap_line_xdyi::x1#0 = bitmap_line::x0#5 - bitmap_line_xdyi::xd#0 = bitmap_line::xd#5 - bitmap_line_xdyi::yd#0 = bitmap_line::yd#5 - bitmap_line_xdyi::c#0 = bitmap_line::c#2 - call bitmap_line_xdyi - to:bitmap_line::@15 -bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@8 - to:bitmap_line::@return -bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@3 - bitmap_line::c#3 = phi( bitmap_line::@3/bitmap_line::c#10 ) - bitmap_line::xd#6 = phi( bitmap_line::@3/bitmap_line::xd#4 ) - bitmap_line::yd#6 = phi( bitmap_line::@3/bitmap_line::yd#2 ) - bitmap_line::y0#6 = phi( bitmap_line::@3/bitmap_line::y0#5 ) - bitmap_line::x1#6 = phi( bitmap_line::@3/bitmap_line::x1#11 ) - bitmap_line::y1#7 = phi( bitmap_line::@3/bitmap_line::y1#5 ) - bitmap_line_ydxi::y#0 = bitmap_line::y1#7 - bitmap_line_ydxi::x#0 = bitmap_line::x1#6 - bitmap_line_ydxi::y1#0 = bitmap_line::y0#6 - bitmap_line_ydxi::yd#0 = bitmap_line::yd#6 - bitmap_line_ydxi::xd#0 = bitmap_line::xd#6 - bitmap_line_ydxi::c#0 = bitmap_line::c#3 - call bitmap_line_ydxi - to:bitmap_line::@16 -bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@4 - to:bitmap_line::@return -bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@7 - bitmap_line::c#4 = phi( bitmap_line::@7/bitmap_line::c#11 ) - bitmap_line::yd#7 = phi( bitmap_line::@7/bitmap_line::yd#1 ) - bitmap_line::xd#7 = phi( bitmap_line::@7/bitmap_line::xd#3 ) - bitmap_line::x0#6 = phi( bitmap_line::@7/bitmap_line::x0#12 ) - bitmap_line::y1#8 = phi( bitmap_line::@7/bitmap_line::y1#4 ) - bitmap_line::x1#7 = phi( bitmap_line::@7/bitmap_line::x1#12 ) - bitmap_line_xdyd::x#0 = bitmap_line::x1#7 - bitmap_line_xdyd::y#0 = bitmap_line::y1#8 - bitmap_line_xdyd::x1#0 = bitmap_line::x0#6 - bitmap_line_xdyd::xd#0 = bitmap_line::xd#7 - bitmap_line_xdyd::yd#0 = bitmap_line::yd#7 - bitmap_line_xdyd::c#0 = bitmap_line::c#4 - call bitmap_line_xdyd - to:bitmap_line::@17 -bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@9 - to:bitmap_line::@return -bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@7 - bitmap_line::c#5 = phi( bitmap_line::@7/bitmap_line::c#11 ) - bitmap_line::xd#8 = phi( bitmap_line::@7/bitmap_line::xd#3 ) - bitmap_line::yd#8 = phi( bitmap_line::@7/bitmap_line::yd#1 ) - bitmap_line::y1#9 = phi( bitmap_line::@7/bitmap_line::y1#4 ) - bitmap_line::x0#7 = phi( bitmap_line::@7/bitmap_line::x0#12 ) - bitmap_line::y0#7 = phi( bitmap_line::@7/bitmap_line::y0#4 ) - bitmap_line_ydxd::y#0 = bitmap_line::y0#7 - bitmap_line_ydxd::x#0 = bitmap_line::x0#7 - bitmap_line_ydxd::y1#0 = bitmap_line::y1#9 - bitmap_line_ydxd::yd#0 = bitmap_line::yd#8 - bitmap_line_ydxd::xd#0 = bitmap_line::xd#8 - bitmap_line_ydxd::c#0 = bitmap_line::c#5 - call bitmap_line_ydxd - to:bitmap_line::@18 -bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@10 - to:bitmap_line::@return -bitmap_line::@11: scope:[bitmap_line] from bitmap_line::@1 - bitmap_line::c#13 = phi( bitmap_line::@1/bitmap_line::c#15 ) - bitmap_line::x1#14 = phi( bitmap_line::@1/bitmap_line::x1#3 ) - bitmap_line::x0#14 = phi( bitmap_line::@1/bitmap_line::x0#3 ) - bitmap_line::xd#9 = phi( bitmap_line::@1/bitmap_line::xd#1 ) - bitmap_line::y0#8 = phi( bitmap_line::@1/bitmap_line::y0#2 ) - bitmap_line::y1#10 = phi( bitmap_line::@1/bitmap_line::y1#2 ) - bitmap_line::$17 = bitmap_line::y1#10 - bitmap_line::y0#8 - bitmap_line::yd#3 = bitmap_line::$17 - bitmap_line::$18 = bitmap_line::yd#3 < bitmap_line::xd#9 - if(bitmap_line::$18) goto bitmap_line::@13 - to:bitmap_line::@14 -bitmap_line::@5: scope:[bitmap_line] from bitmap_line::@1 - bitmap_line::c#12 = phi( bitmap_line::@1/bitmap_line::c#15 ) - bitmap_line::x1#13 = phi( bitmap_line::@1/bitmap_line::x1#3 ) - bitmap_line::x0#13 = phi( bitmap_line::@1/bitmap_line::x0#3 ) - bitmap_line::xd#10 = phi( bitmap_line::@1/bitmap_line::xd#1 ) - bitmap_line::y1#11 = phi( bitmap_line::@1/bitmap_line::y1#2 ) - bitmap_line::y0#9 = phi( bitmap_line::@1/bitmap_line::y0#2 ) - bitmap_line::$13 = bitmap_line::y0#9 - bitmap_line::y1#11 - bitmap_line::yd#4 = bitmap_line::$13 - bitmap_line::$14 = bitmap_line::yd#4 < bitmap_line::xd#10 - if(bitmap_line::$14) goto bitmap_line::@12 - to:bitmap_line::@6 -bitmap_line::@12: scope:[bitmap_line] from bitmap_line::@5 - bitmap_line::c#6 = phi( bitmap_line::@5/bitmap_line::c#12 ) - bitmap_line::yd#9 = phi( bitmap_line::@5/bitmap_line::yd#4 ) - bitmap_line::xd#11 = phi( bitmap_line::@5/bitmap_line::xd#10 ) - bitmap_line::x1#8 = phi( bitmap_line::@5/bitmap_line::x1#13 ) - bitmap_line::y0#10 = phi( bitmap_line::@5/bitmap_line::y0#9 ) - bitmap_line::x0#8 = phi( bitmap_line::@5/bitmap_line::x0#13 ) - bitmap_line_xdyd::x#1 = bitmap_line::x0#8 - bitmap_line_xdyd::y#1 = bitmap_line::y0#10 - bitmap_line_xdyd::x1#1 = bitmap_line::x1#8 - bitmap_line_xdyd::xd#1 = bitmap_line::xd#11 - bitmap_line_xdyd::yd#1 = bitmap_line::yd#9 - bitmap_line_xdyd::c#1 = bitmap_line::c#6 - call bitmap_line_xdyd - to:bitmap_line::@19 -bitmap_line::@19: scope:[bitmap_line] from bitmap_line::@12 - to:bitmap_line::@return -bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 - bitmap_line::c#7 = phi( bitmap_line::@5/bitmap_line::c#12 ) - bitmap_line::xd#12 = phi( bitmap_line::@5/bitmap_line::xd#10 ) - bitmap_line::yd#10 = phi( bitmap_line::@5/bitmap_line::yd#4 ) - bitmap_line::y0#11 = phi( bitmap_line::@5/bitmap_line::y0#9 ) - bitmap_line::x1#9 = phi( bitmap_line::@5/bitmap_line::x1#13 ) - bitmap_line::y1#12 = phi( bitmap_line::@5/bitmap_line::y1#11 ) - bitmap_line_ydxd::y#1 = bitmap_line::y1#12 - bitmap_line_ydxd::x#1 = bitmap_line::x1#9 - bitmap_line_ydxd::y1#1 = bitmap_line::y0#11 - bitmap_line_ydxd::yd#1 = bitmap_line::yd#10 - bitmap_line_ydxd::xd#1 = bitmap_line::xd#12 - bitmap_line_ydxd::c#1 = bitmap_line::c#7 - call bitmap_line_ydxd - to:bitmap_line::@20 -bitmap_line::@20: scope:[bitmap_line] from bitmap_line::@6 - to:bitmap_line::@return -bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@11 - bitmap_line::c#8 = phi( bitmap_line::@11/bitmap_line::c#13 ) - bitmap_line::yd#11 = phi( bitmap_line::@11/bitmap_line::yd#3 ) - bitmap_line::xd#13 = phi( bitmap_line::@11/bitmap_line::xd#9 ) - bitmap_line::x1#10 = phi( bitmap_line::@11/bitmap_line::x1#14 ) - bitmap_line::y0#12 = phi( bitmap_line::@11/bitmap_line::y0#8 ) - bitmap_line::x0#9 = phi( bitmap_line::@11/bitmap_line::x0#14 ) - bitmap_line_xdyi::x#1 = bitmap_line::x0#9 - bitmap_line_xdyi::y#1 = bitmap_line::y0#12 - bitmap_line_xdyi::x1#1 = bitmap_line::x1#10 - bitmap_line_xdyi::xd#1 = bitmap_line::xd#13 - bitmap_line_xdyi::yd#1 = bitmap_line::yd#11 - bitmap_line_xdyi::c#1 = bitmap_line::c#8 - call bitmap_line_xdyi - to:bitmap_line::@21 -bitmap_line::@21: scope:[bitmap_line] from bitmap_line::@13 - to:bitmap_line::@return -bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@11 - bitmap_line::c#9 = phi( bitmap_line::@11/bitmap_line::c#13 ) - bitmap_line::xd#14 = phi( bitmap_line::@11/bitmap_line::xd#9 ) - bitmap_line::yd#12 = phi( bitmap_line::@11/bitmap_line::yd#3 ) - bitmap_line::y1#13 = phi( bitmap_line::@11/bitmap_line::y1#10 ) - bitmap_line::x0#10 = phi( bitmap_line::@11/bitmap_line::x0#14 ) - bitmap_line::y0#13 = phi( bitmap_line::@11/bitmap_line::y0#8 ) - bitmap_line_ydxi::y#1 = bitmap_line::y0#13 - bitmap_line_ydxi::x#1 = bitmap_line::x0#10 - bitmap_line_ydxi::y1#1 = bitmap_line::y1#13 - bitmap_line_ydxi::yd#1 = bitmap_line::yd#12 - bitmap_line_ydxi::xd#1 = bitmap_line::xd#14 - bitmap_line_ydxi::c#1 = bitmap_line::c#9 - call bitmap_line_ydxi - to:bitmap_line::@22 -bitmap_line::@22: scope:[bitmap_line] from bitmap_line::@14 - to:bitmap_line::@return -bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@15 bitmap_line::@16 bitmap_line::@17 bitmap_line::@18 bitmap_line::@19 bitmap_line::@20 bitmap_line::@21 bitmap_line::@22 - return - to:@return - -unsigned long mul16u(unsigned int a , unsigned int b) -mul16u: scope:[mul16u] from bitmap_clear - mul16u::a#5 = phi( bitmap_clear/mul16u::a#0 ) - mul16u::b#1 = phi( bitmap_clear/mul16u::b#0 ) - mul16u::res#0 = 0 - mul16u::mb#0 = (unsigned long)mul16u::b#1 - to:mul16u::@1 -mul16u::@1: scope:[mul16u] from mul16u mul16u::@4 - mul16u::mb#5 = phi( mul16u/mul16u::mb#0, mul16u::@4/mul16u::mb#1 ) - mul16u::res#4 = phi( mul16u/mul16u::res#0, mul16u::@4/mul16u::res#6 ) - mul16u::a#2 = phi( mul16u/mul16u::a#5, mul16u::@4/mul16u::a#1 ) - mul16u::$0 = mul16u::a#2 != 0 - if(mul16u::$0) goto mul16u::@2 - to:mul16u::@3 -mul16u::@2: scope:[mul16u] from mul16u::@1 - mul16u::res#5 = phi( mul16u::@1/mul16u::res#4 ) - mul16u::mb#4 = phi( mul16u::@1/mul16u::mb#5 ) - mul16u::a#3 = phi( mul16u::@1/mul16u::a#2 ) - mul16u::$1 = mul16u::a#3 & 1 - mul16u::$2 = mul16u::$1 != 0 - mul16u::$3 = ! mul16u::$2 - if(mul16u::$3) goto mul16u::@4 - to:mul16u::@5 -mul16u::@3: scope:[mul16u] from mul16u::@1 - mul16u::res#2 = phi( mul16u::@1/mul16u::res#4 ) - mul16u::return#1 = mul16u::res#2 - to:mul16u::@return -mul16u::@4: scope:[mul16u] from mul16u::@2 mul16u::@5 - mul16u::res#6 = phi( mul16u::@2/mul16u::res#5, mul16u::@5/mul16u::res#1 ) - mul16u::mb#2 = phi( mul16u::@2/mul16u::mb#4, mul16u::@5/mul16u::mb#3 ) - mul16u::a#4 = phi( mul16u::@2/mul16u::a#3, mul16u::@5/mul16u::a#6 ) - mul16u::$5 = mul16u::a#4 >> 1 - mul16u::a#1 = mul16u::$5 - mul16u::$6 = mul16u::mb#2 << 1 - mul16u::mb#1 = mul16u::$6 - to:mul16u::@1 -mul16u::@5: scope:[mul16u] from mul16u::@2 - mul16u::a#6 = phi( mul16u::@2/mul16u::a#3 ) - mul16u::mb#3 = phi( mul16u::@2/mul16u::mb#4 ) - mul16u::res#3 = phi( mul16u::@2/mul16u::res#5 ) - mul16u::$4 = mul16u::res#3 + mul16u::mb#3 - mul16u::res#1 = mul16u::$4 - to:mul16u::@4 -mul16u::@return: scope:[mul16u] from mul16u::@3 - mul16u::return#4 = phi( mul16u::@3/mul16u::return#1 ) - mul16u::return#2 = mul16u::return#4 - return - to:@return - -void bitmap_line_xdyi(unsigned int x , unsigned int y , unsigned int x1 , unsigned int xd , unsigned int yd , char c) -bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@13 bitmap_line::@8 - bitmap_line_xdyi::x1#6 = phi( bitmap_line::@13/bitmap_line_xdyi::x1#1, bitmap_line::@8/bitmap_line_xdyi::x1#0 ) - bitmap_line_xdyi::xd#5 = phi( bitmap_line::@13/bitmap_line_xdyi::xd#1, bitmap_line::@8/bitmap_line_xdyi::xd#0 ) - bitmap_line_xdyi::c#3 = phi( bitmap_line::@13/bitmap_line_xdyi::c#1, bitmap_line::@8/bitmap_line_xdyi::c#0 ) - bitmap_line_xdyi::y#5 = phi( bitmap_line::@13/bitmap_line_xdyi::y#1, bitmap_line::@8/bitmap_line_xdyi::y#0 ) - bitmap_line_xdyi::x#6 = phi( bitmap_line::@13/bitmap_line_xdyi::x#1, bitmap_line::@8/bitmap_line_xdyi::x#0 ) - bitmap_line_xdyi::yd#2 = phi( bitmap_line::@13/bitmap_line_xdyi::yd#1, bitmap_line::@8/bitmap_line_xdyi::yd#0 ) - bitmap_line_xdyi::e#0 = bitmap_line_xdyi::yd#2 >> 1 - to:bitmap_line_xdyi::@1 -bitmap_line_xdyi::@1: scope:[bitmap_line_xdyi] from bitmap_line_xdyi bitmap_line_xdyi::@2 - bitmap_line_xdyi::x1#5 = phi( bitmap_line_xdyi/bitmap_line_xdyi::x1#6, bitmap_line_xdyi::@2/bitmap_line_xdyi::x1#2 ) - bitmap_line_xdyi::xd#4 = phi( bitmap_line_xdyi/bitmap_line_xdyi::xd#5, bitmap_line_xdyi::@2/bitmap_line_xdyi::xd#6 ) - bitmap_line_xdyi::yd#4 = phi( bitmap_line_xdyi/bitmap_line_xdyi::yd#2, bitmap_line_xdyi::@2/bitmap_line_xdyi::yd#5 ) - bitmap_line_xdyi::e#5 = phi( bitmap_line_xdyi/bitmap_line_xdyi::e#0, bitmap_line_xdyi::@2/bitmap_line_xdyi::e#6 ) - bitmap_line_xdyi::c#2 = phi( bitmap_line_xdyi/bitmap_line_xdyi::c#3, bitmap_line_xdyi::@2/bitmap_line_xdyi::c#4 ) - bitmap_line_xdyi::y#3 = phi( bitmap_line_xdyi/bitmap_line_xdyi::y#5, bitmap_line_xdyi::@2/bitmap_line_xdyi::y#6 ) - bitmap_line_xdyi::x#3 = phi( bitmap_line_xdyi/bitmap_line_xdyi::x#6, bitmap_line_xdyi::@2/bitmap_line_xdyi::x#5 ) - bitmap_plot::x#0 = bitmap_line_xdyi::x#3 - bitmap_plot::y#0 = bitmap_line_xdyi::y#3 - bitmap_plot::c#1 = bitmap_line_xdyi::c#2 - call bitmap_plot - to:bitmap_line_xdyi::@4 -bitmap_line_xdyi::@4: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@1 - bitmap_line_xdyi::c#6 = phi( bitmap_line_xdyi::@1/bitmap_line_xdyi::c#2 ) - bitmap_line_xdyi::y#7 = phi( bitmap_line_xdyi::@1/bitmap_line_xdyi::y#3 ) - bitmap_line_xdyi::x1#4 = phi( bitmap_line_xdyi::@1/bitmap_line_xdyi::x1#5 ) - bitmap_line_xdyi::xd#2 = phi( bitmap_line_xdyi::@1/bitmap_line_xdyi::xd#4 ) - bitmap_line_xdyi::yd#3 = phi( bitmap_line_xdyi::@1/bitmap_line_xdyi::yd#4 ) - bitmap_line_xdyi::e#3 = phi( bitmap_line_xdyi::@1/bitmap_line_xdyi::e#5 ) - bitmap_line_xdyi::x#4 = phi( bitmap_line_xdyi::@1/bitmap_line_xdyi::x#3 ) - bitmap_line_xdyi::x#2 = ++ bitmap_line_xdyi::x#4 - bitmap_line_xdyi::$2 = bitmap_line_xdyi::e#3 + bitmap_line_xdyi::yd#3 - bitmap_line_xdyi::e#1 = bitmap_line_xdyi::$2 - bitmap_line_xdyi::$3 = bitmap_line_xdyi::xd#2 < bitmap_line_xdyi::e#1 - bitmap_line_xdyi::$4 = ! bitmap_line_xdyi::$3 - if(bitmap_line_xdyi::$4) goto bitmap_line_xdyi::@2 - to:bitmap_line_xdyi::@3 -bitmap_line_xdyi::@2: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@3 bitmap_line_xdyi::@4 - bitmap_line_xdyi::xd#6 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::xd#3, bitmap_line_xdyi::@4/bitmap_line_xdyi::xd#2 ) - bitmap_line_xdyi::yd#5 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::yd#6, bitmap_line_xdyi::@4/bitmap_line_xdyi::yd#3 ) - bitmap_line_xdyi::e#6 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::e#2, bitmap_line_xdyi::@4/bitmap_line_xdyi::e#1 ) - bitmap_line_xdyi::c#4 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::c#5, bitmap_line_xdyi::@4/bitmap_line_xdyi::c#6 ) - bitmap_line_xdyi::y#6 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::y#2, bitmap_line_xdyi::@4/bitmap_line_xdyi::y#7 ) - bitmap_line_xdyi::x#5 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::x#7, bitmap_line_xdyi::@4/bitmap_line_xdyi::x#2 ) - bitmap_line_xdyi::x1#2 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::x1#3, bitmap_line_xdyi::@4/bitmap_line_xdyi::x1#4 ) - bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#2 + 1 - bitmap_line_xdyi::$7 = bitmap_line_xdyi::x#5 != bitmap_line_xdyi::$6 - if(bitmap_line_xdyi::$7) goto bitmap_line_xdyi::@1 - to:bitmap_line_xdyi::@return -bitmap_line_xdyi::@3: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@4 - bitmap_line_xdyi::yd#6 = phi( bitmap_line_xdyi::@4/bitmap_line_xdyi::yd#3 ) - bitmap_line_xdyi::c#5 = phi( bitmap_line_xdyi::@4/bitmap_line_xdyi::c#6 ) - bitmap_line_xdyi::x#7 = phi( bitmap_line_xdyi::@4/bitmap_line_xdyi::x#2 ) - bitmap_line_xdyi::x1#3 = phi( bitmap_line_xdyi::@4/bitmap_line_xdyi::x1#4 ) - bitmap_line_xdyi::xd#3 = phi( bitmap_line_xdyi::@4/bitmap_line_xdyi::xd#2 ) - bitmap_line_xdyi::e#4 = phi( bitmap_line_xdyi::@4/bitmap_line_xdyi::e#1 ) - bitmap_line_xdyi::y#4 = phi( bitmap_line_xdyi::@4/bitmap_line_xdyi::y#7 ) - bitmap_line_xdyi::y#2 = ++ bitmap_line_xdyi::y#4 - bitmap_line_xdyi::$5 = bitmap_line_xdyi::e#4 - bitmap_line_xdyi::xd#3 - bitmap_line_xdyi::e#2 = bitmap_line_xdyi::$5 - to:bitmap_line_xdyi::@2 -bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2 - return - to:@return - -void bitmap_line_xdyd(unsigned int x , unsigned int y , unsigned int x1 , unsigned int xd , unsigned int yd , char c) -bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@12 bitmap_line::@9 - bitmap_line_xdyd::x1#6 = phi( bitmap_line::@12/bitmap_line_xdyd::x1#1, bitmap_line::@9/bitmap_line_xdyd::x1#0 ) - bitmap_line_xdyd::xd#5 = phi( bitmap_line::@12/bitmap_line_xdyd::xd#1, bitmap_line::@9/bitmap_line_xdyd::xd#0 ) - bitmap_line_xdyd::c#3 = phi( bitmap_line::@12/bitmap_line_xdyd::c#1, bitmap_line::@9/bitmap_line_xdyd::c#0 ) - bitmap_line_xdyd::y#5 = phi( bitmap_line::@12/bitmap_line_xdyd::y#1, bitmap_line::@9/bitmap_line_xdyd::y#0 ) - bitmap_line_xdyd::x#6 = phi( bitmap_line::@12/bitmap_line_xdyd::x#1, bitmap_line::@9/bitmap_line_xdyd::x#0 ) - bitmap_line_xdyd::yd#2 = phi( bitmap_line::@12/bitmap_line_xdyd::yd#1, bitmap_line::@9/bitmap_line_xdyd::yd#0 ) - bitmap_line_xdyd::e#0 = bitmap_line_xdyd::yd#2 >> 1 - to:bitmap_line_xdyd::@1 -bitmap_line_xdyd::@1: scope:[bitmap_line_xdyd] from bitmap_line_xdyd bitmap_line_xdyd::@2 - bitmap_line_xdyd::x1#5 = phi( bitmap_line_xdyd/bitmap_line_xdyd::x1#6, bitmap_line_xdyd::@2/bitmap_line_xdyd::x1#2 ) - bitmap_line_xdyd::xd#4 = phi( bitmap_line_xdyd/bitmap_line_xdyd::xd#5, bitmap_line_xdyd::@2/bitmap_line_xdyd::xd#6 ) - bitmap_line_xdyd::yd#4 = phi( bitmap_line_xdyd/bitmap_line_xdyd::yd#2, bitmap_line_xdyd::@2/bitmap_line_xdyd::yd#5 ) - bitmap_line_xdyd::e#5 = phi( bitmap_line_xdyd/bitmap_line_xdyd::e#0, bitmap_line_xdyd::@2/bitmap_line_xdyd::e#6 ) - bitmap_line_xdyd::c#2 = phi( bitmap_line_xdyd/bitmap_line_xdyd::c#3, bitmap_line_xdyd::@2/bitmap_line_xdyd::c#4 ) - bitmap_line_xdyd::y#3 = phi( bitmap_line_xdyd/bitmap_line_xdyd::y#5, bitmap_line_xdyd::@2/bitmap_line_xdyd::y#6 ) - bitmap_line_xdyd::x#3 = phi( bitmap_line_xdyd/bitmap_line_xdyd::x#6, bitmap_line_xdyd::@2/bitmap_line_xdyd::x#5 ) - bitmap_plot::x#1 = bitmap_line_xdyd::x#3 - bitmap_plot::y#1 = bitmap_line_xdyd::y#3 - bitmap_plot::c#2 = bitmap_line_xdyd::c#2 - call bitmap_plot - to:bitmap_line_xdyd::@4 -bitmap_line_xdyd::@4: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@1 - bitmap_line_xdyd::c#6 = phi( bitmap_line_xdyd::@1/bitmap_line_xdyd::c#2 ) - bitmap_line_xdyd::y#7 = phi( bitmap_line_xdyd::@1/bitmap_line_xdyd::y#3 ) - bitmap_line_xdyd::x1#4 = phi( bitmap_line_xdyd::@1/bitmap_line_xdyd::x1#5 ) - bitmap_line_xdyd::xd#2 = phi( bitmap_line_xdyd::@1/bitmap_line_xdyd::xd#4 ) - bitmap_line_xdyd::yd#3 = phi( bitmap_line_xdyd::@1/bitmap_line_xdyd::yd#4 ) - bitmap_line_xdyd::e#3 = phi( bitmap_line_xdyd::@1/bitmap_line_xdyd::e#5 ) - bitmap_line_xdyd::x#4 = phi( bitmap_line_xdyd::@1/bitmap_line_xdyd::x#3 ) - bitmap_line_xdyd::x#2 = ++ bitmap_line_xdyd::x#4 - bitmap_line_xdyd::$2 = bitmap_line_xdyd::e#3 + bitmap_line_xdyd::yd#3 - bitmap_line_xdyd::e#1 = bitmap_line_xdyd::$2 - bitmap_line_xdyd::$3 = bitmap_line_xdyd::xd#2 < bitmap_line_xdyd::e#1 - bitmap_line_xdyd::$4 = ! bitmap_line_xdyd::$3 - if(bitmap_line_xdyd::$4) goto bitmap_line_xdyd::@2 - to:bitmap_line_xdyd::@3 -bitmap_line_xdyd::@2: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@3 bitmap_line_xdyd::@4 - bitmap_line_xdyd::xd#6 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::xd#3, bitmap_line_xdyd::@4/bitmap_line_xdyd::xd#2 ) - bitmap_line_xdyd::yd#5 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::yd#6, bitmap_line_xdyd::@4/bitmap_line_xdyd::yd#3 ) - bitmap_line_xdyd::e#6 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::e#2, bitmap_line_xdyd::@4/bitmap_line_xdyd::e#1 ) - bitmap_line_xdyd::c#4 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::c#5, bitmap_line_xdyd::@4/bitmap_line_xdyd::c#6 ) - bitmap_line_xdyd::y#6 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::y#2, bitmap_line_xdyd::@4/bitmap_line_xdyd::y#7 ) - bitmap_line_xdyd::x#5 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::x#7, bitmap_line_xdyd::@4/bitmap_line_xdyd::x#2 ) - bitmap_line_xdyd::x1#2 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::x1#3, bitmap_line_xdyd::@4/bitmap_line_xdyd::x1#4 ) - bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#2 + 1 - bitmap_line_xdyd::$7 = bitmap_line_xdyd::x#5 != bitmap_line_xdyd::$6 - if(bitmap_line_xdyd::$7) goto bitmap_line_xdyd::@1 - to:bitmap_line_xdyd::@return -bitmap_line_xdyd::@3: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@4 - bitmap_line_xdyd::yd#6 = phi( bitmap_line_xdyd::@4/bitmap_line_xdyd::yd#3 ) - bitmap_line_xdyd::c#5 = phi( bitmap_line_xdyd::@4/bitmap_line_xdyd::c#6 ) - bitmap_line_xdyd::x#7 = phi( bitmap_line_xdyd::@4/bitmap_line_xdyd::x#2 ) - bitmap_line_xdyd::x1#3 = phi( bitmap_line_xdyd::@4/bitmap_line_xdyd::x1#4 ) - bitmap_line_xdyd::xd#3 = phi( bitmap_line_xdyd::@4/bitmap_line_xdyd::xd#2 ) - bitmap_line_xdyd::e#4 = phi( bitmap_line_xdyd::@4/bitmap_line_xdyd::e#1 ) - bitmap_line_xdyd::y#4 = phi( bitmap_line_xdyd::@4/bitmap_line_xdyd::y#7 ) - bitmap_line_xdyd::y#2 = -- bitmap_line_xdyd::y#4 - bitmap_line_xdyd::$5 = bitmap_line_xdyd::e#4 - bitmap_line_xdyd::xd#3 - bitmap_line_xdyd::e#2 = bitmap_line_xdyd::$5 - to:bitmap_line_xdyd::@2 -bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2 - return - to:@return - -void bitmap_line_ydxi(unsigned int y , unsigned int x , unsigned int y1 , unsigned int yd , unsigned int xd , char c) -bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@14 bitmap_line::@4 - bitmap_line_ydxi::y1#6 = phi( bitmap_line::@14/bitmap_line_ydxi::y1#1, bitmap_line::@4/bitmap_line_ydxi::y1#0 ) - bitmap_line_ydxi::yd#5 = phi( bitmap_line::@14/bitmap_line_ydxi::yd#1, bitmap_line::@4/bitmap_line_ydxi::yd#0 ) - bitmap_line_ydxi::c#3 = phi( bitmap_line::@14/bitmap_line_ydxi::c#1, bitmap_line::@4/bitmap_line_ydxi::c#0 ) - bitmap_line_ydxi::y#6 = phi( bitmap_line::@14/bitmap_line_ydxi::y#1, bitmap_line::@4/bitmap_line_ydxi::y#0 ) - bitmap_line_ydxi::x#5 = phi( bitmap_line::@14/bitmap_line_ydxi::x#1, bitmap_line::@4/bitmap_line_ydxi::x#0 ) - bitmap_line_ydxi::xd#2 = phi( bitmap_line::@14/bitmap_line_ydxi::xd#1, bitmap_line::@4/bitmap_line_ydxi::xd#0 ) - bitmap_line_ydxi::e#0 = bitmap_line_ydxi::xd#2 >> 1 - to:bitmap_line_ydxi::@1 -bitmap_line_ydxi::@1: scope:[bitmap_line_ydxi] from bitmap_line_ydxi bitmap_line_ydxi::@2 - bitmap_line_ydxi::y1#5 = phi( bitmap_line_ydxi/bitmap_line_ydxi::y1#6, bitmap_line_ydxi::@2/bitmap_line_ydxi::y1#2 ) - bitmap_line_ydxi::yd#4 = phi( bitmap_line_ydxi/bitmap_line_ydxi::yd#5, bitmap_line_ydxi::@2/bitmap_line_ydxi::yd#6 ) - bitmap_line_ydxi::xd#4 = phi( bitmap_line_ydxi/bitmap_line_ydxi::xd#2, bitmap_line_ydxi::@2/bitmap_line_ydxi::xd#5 ) - bitmap_line_ydxi::e#5 = phi( bitmap_line_ydxi/bitmap_line_ydxi::e#0, bitmap_line_ydxi::@2/bitmap_line_ydxi::e#6 ) - bitmap_line_ydxi::c#2 = phi( bitmap_line_ydxi/bitmap_line_ydxi::c#3, bitmap_line_ydxi::@2/bitmap_line_ydxi::c#4 ) - bitmap_line_ydxi::y#3 = phi( bitmap_line_ydxi/bitmap_line_ydxi::y#6, bitmap_line_ydxi::@2/bitmap_line_ydxi::y#5 ) - bitmap_line_ydxi::x#3 = phi( bitmap_line_ydxi/bitmap_line_ydxi::x#5, bitmap_line_ydxi::@2/bitmap_line_ydxi::x#6 ) - bitmap_plot::x#2 = bitmap_line_ydxi::x#3 - bitmap_plot::y#2 = bitmap_line_ydxi::y#3 - bitmap_plot::c#3 = bitmap_line_ydxi::c#2 - call bitmap_plot - to:bitmap_line_ydxi::@4 -bitmap_line_ydxi::@4: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@1 - bitmap_line_ydxi::c#6 = phi( bitmap_line_ydxi::@1/bitmap_line_ydxi::c#2 ) - bitmap_line_ydxi::x#7 = phi( bitmap_line_ydxi::@1/bitmap_line_ydxi::x#3 ) - bitmap_line_ydxi::y1#4 = phi( bitmap_line_ydxi::@1/bitmap_line_ydxi::y1#5 ) - bitmap_line_ydxi::yd#2 = phi( bitmap_line_ydxi::@1/bitmap_line_ydxi::yd#4 ) - bitmap_line_ydxi::xd#3 = phi( bitmap_line_ydxi::@1/bitmap_line_ydxi::xd#4 ) - bitmap_line_ydxi::e#3 = phi( bitmap_line_ydxi::@1/bitmap_line_ydxi::e#5 ) - bitmap_line_ydxi::y#4 = phi( bitmap_line_ydxi::@1/bitmap_line_ydxi::y#3 ) - bitmap_line_ydxi::y#2 = ++ bitmap_line_ydxi::y#4 - bitmap_line_ydxi::$2 = bitmap_line_ydxi::e#3 + bitmap_line_ydxi::xd#3 - bitmap_line_ydxi::e#1 = bitmap_line_ydxi::$2 - bitmap_line_ydxi::$3 = bitmap_line_ydxi::yd#2 < bitmap_line_ydxi::e#1 - bitmap_line_ydxi::$4 = ! bitmap_line_ydxi::$3 - if(bitmap_line_ydxi::$4) goto bitmap_line_ydxi::@2 - to:bitmap_line_ydxi::@3 -bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap_line_ydxi::@4 - bitmap_line_ydxi::yd#6 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::yd#3, bitmap_line_ydxi::@4/bitmap_line_ydxi::yd#2 ) - bitmap_line_ydxi::xd#5 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::xd#6, bitmap_line_ydxi::@4/bitmap_line_ydxi::xd#3 ) - bitmap_line_ydxi::e#6 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::e#2, bitmap_line_ydxi::@4/bitmap_line_ydxi::e#1 ) - bitmap_line_ydxi::c#4 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::c#5, bitmap_line_ydxi::@4/bitmap_line_ydxi::c#6 ) - bitmap_line_ydxi::x#6 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::x#2, bitmap_line_ydxi::@4/bitmap_line_ydxi::x#7 ) - bitmap_line_ydxi::y#5 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::y#7, bitmap_line_ydxi::@4/bitmap_line_ydxi::y#2 ) - bitmap_line_ydxi::y1#2 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::y1#3, bitmap_line_ydxi::@4/bitmap_line_ydxi::y1#4 ) - bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#2 + 1 - bitmap_line_ydxi::$7 = bitmap_line_ydxi::y#5 != bitmap_line_ydxi::$6 - if(bitmap_line_ydxi::$7) goto bitmap_line_ydxi::@1 - to:bitmap_line_ydxi::@return -bitmap_line_ydxi::@3: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@4 - bitmap_line_ydxi::xd#6 = phi( bitmap_line_ydxi::@4/bitmap_line_ydxi::xd#3 ) - bitmap_line_ydxi::c#5 = phi( bitmap_line_ydxi::@4/bitmap_line_ydxi::c#6 ) - bitmap_line_ydxi::y#7 = phi( bitmap_line_ydxi::@4/bitmap_line_ydxi::y#2 ) - bitmap_line_ydxi::y1#3 = phi( bitmap_line_ydxi::@4/bitmap_line_ydxi::y1#4 ) - bitmap_line_ydxi::yd#3 = phi( bitmap_line_ydxi::@4/bitmap_line_ydxi::yd#2 ) - bitmap_line_ydxi::e#4 = phi( bitmap_line_ydxi::@4/bitmap_line_ydxi::e#1 ) - bitmap_line_ydxi::x#4 = phi( bitmap_line_ydxi::@4/bitmap_line_ydxi::x#7 ) - bitmap_line_ydxi::x#2 = ++ bitmap_line_ydxi::x#4 - bitmap_line_ydxi::$5 = bitmap_line_ydxi::e#4 - bitmap_line_ydxi::yd#3 - bitmap_line_ydxi::e#2 = bitmap_line_ydxi::$5 - to:bitmap_line_ydxi::@2 -bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2 - return - to:@return - -void bitmap_line_ydxd(unsigned int y , unsigned int x , unsigned int y1 , unsigned int yd , unsigned int xd , char c) -bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@10 bitmap_line::@6 - bitmap_line_ydxd::y1#6 = phi( bitmap_line::@10/bitmap_line_ydxd::y1#0, bitmap_line::@6/bitmap_line_ydxd::y1#1 ) - bitmap_line_ydxd::yd#5 = phi( bitmap_line::@10/bitmap_line_ydxd::yd#0, bitmap_line::@6/bitmap_line_ydxd::yd#1 ) - bitmap_line_ydxd::c#3 = phi( bitmap_line::@10/bitmap_line_ydxd::c#0, bitmap_line::@6/bitmap_line_ydxd::c#1 ) - bitmap_line_ydxd::y#7 = phi( bitmap_line::@10/bitmap_line_ydxd::y#0, bitmap_line::@6/bitmap_line_ydxd::y#1 ) - bitmap_line_ydxd::x#5 = phi( bitmap_line::@10/bitmap_line_ydxd::x#0, bitmap_line::@6/bitmap_line_ydxd::x#1 ) - bitmap_line_ydxd::xd#2 = phi( bitmap_line::@10/bitmap_line_ydxd::xd#0, bitmap_line::@6/bitmap_line_ydxd::xd#1 ) - bitmap_line_ydxd::e#0 = bitmap_line_ydxd::xd#2 >> 1 - to:bitmap_line_ydxd::@1 -bitmap_line_ydxd::@1: scope:[bitmap_line_ydxd] from bitmap_line_ydxd bitmap_line_ydxd::@2 - bitmap_line_ydxd::y1#5 = phi( bitmap_line_ydxd/bitmap_line_ydxd::y1#6, bitmap_line_ydxd::@2/bitmap_line_ydxd::y1#2 ) - bitmap_line_ydxd::yd#4 = phi( bitmap_line_ydxd/bitmap_line_ydxd::yd#5, bitmap_line_ydxd::@2/bitmap_line_ydxd::yd#6 ) - bitmap_line_ydxd::xd#4 = phi( bitmap_line_ydxd/bitmap_line_ydxd::xd#2, bitmap_line_ydxd::@2/bitmap_line_ydxd::xd#5 ) - bitmap_line_ydxd::e#5 = phi( bitmap_line_ydxd/bitmap_line_ydxd::e#0, bitmap_line_ydxd::@2/bitmap_line_ydxd::e#6 ) - bitmap_line_ydxd::c#2 = phi( bitmap_line_ydxd/bitmap_line_ydxd::c#3, bitmap_line_ydxd::@2/bitmap_line_ydxd::c#4 ) - bitmap_line_ydxd::y#4 = phi( bitmap_line_ydxd/bitmap_line_ydxd::y#7, bitmap_line_ydxd::@2/bitmap_line_ydxd::y#6 ) - bitmap_line_ydxd::x#3 = phi( bitmap_line_ydxd/bitmap_line_ydxd::x#5, bitmap_line_ydxd::@2/bitmap_line_ydxd::x#6 ) - bitmap_plot::x#3 = bitmap_line_ydxd::x#3 - bitmap_plot::y#3 = bitmap_line_ydxd::y#4 - bitmap_plot::c#4 = bitmap_line_ydxd::c#2 - call bitmap_plot - to:bitmap_line_ydxd::@4 -bitmap_line_ydxd::@4: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@1 - bitmap_line_ydxd::c#6 = phi( bitmap_line_ydxd::@1/bitmap_line_ydxd::c#2 ) - bitmap_line_ydxd::x#7 = phi( bitmap_line_ydxd::@1/bitmap_line_ydxd::x#3 ) - bitmap_line_ydxd::y1#4 = phi( bitmap_line_ydxd::@1/bitmap_line_ydxd::y1#5 ) - bitmap_line_ydxd::yd#2 = phi( bitmap_line_ydxd::@1/bitmap_line_ydxd::yd#4 ) - bitmap_line_ydxd::xd#3 = phi( bitmap_line_ydxd::@1/bitmap_line_ydxd::xd#4 ) - bitmap_line_ydxd::e#3 = phi( bitmap_line_ydxd::@1/bitmap_line_ydxd::e#5 ) - bitmap_line_ydxd::y#5 = phi( bitmap_line_ydxd::@1/bitmap_line_ydxd::y#4 ) - bitmap_line_ydxd::y#2 = bitmap_line_ydxd::y#5 - bitmap_line_ydxd::y#3 = ++ bitmap_line_ydxd::y#2 - bitmap_line_ydxd::$2 = bitmap_line_ydxd::e#3 + bitmap_line_ydxd::xd#3 - bitmap_line_ydxd::e#1 = bitmap_line_ydxd::$2 - bitmap_line_ydxd::$3 = bitmap_line_ydxd::yd#2 < bitmap_line_ydxd::e#1 - bitmap_line_ydxd::$4 = ! bitmap_line_ydxd::$3 - if(bitmap_line_ydxd::$4) goto bitmap_line_ydxd::@2 - to:bitmap_line_ydxd::@3 -bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap_line_ydxd::@4 - bitmap_line_ydxd::yd#6 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::yd#3, bitmap_line_ydxd::@4/bitmap_line_ydxd::yd#2 ) - bitmap_line_ydxd::xd#5 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::xd#6, bitmap_line_ydxd::@4/bitmap_line_ydxd::xd#3 ) - bitmap_line_ydxd::e#6 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::e#2, bitmap_line_ydxd::@4/bitmap_line_ydxd::e#1 ) - bitmap_line_ydxd::c#4 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::c#5, bitmap_line_ydxd::@4/bitmap_line_ydxd::c#6 ) - bitmap_line_ydxd::x#6 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::x#2, bitmap_line_ydxd::@4/bitmap_line_ydxd::x#7 ) - bitmap_line_ydxd::y#6 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::y#8, bitmap_line_ydxd::@4/bitmap_line_ydxd::y#3 ) - bitmap_line_ydxd::y1#2 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::y1#3, bitmap_line_ydxd::@4/bitmap_line_ydxd::y1#4 ) - bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#2 + 1 - bitmap_line_ydxd::$7 = bitmap_line_ydxd::y#6 != bitmap_line_ydxd::$6 - if(bitmap_line_ydxd::$7) goto bitmap_line_ydxd::@1 - to:bitmap_line_ydxd::@return -bitmap_line_ydxd::@3: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@4 - bitmap_line_ydxd::xd#6 = phi( bitmap_line_ydxd::@4/bitmap_line_ydxd::xd#3 ) - bitmap_line_ydxd::c#5 = phi( bitmap_line_ydxd::@4/bitmap_line_ydxd::c#6 ) - bitmap_line_ydxd::y#8 = phi( bitmap_line_ydxd::@4/bitmap_line_ydxd::y#3 ) - bitmap_line_ydxd::y1#3 = phi( bitmap_line_ydxd::@4/bitmap_line_ydxd::y1#4 ) - bitmap_line_ydxd::yd#3 = phi( bitmap_line_ydxd::@4/bitmap_line_ydxd::yd#2 ) - bitmap_line_ydxd::e#4 = phi( bitmap_line_ydxd::@4/bitmap_line_ydxd::e#1 ) - bitmap_line_ydxd::x#4 = phi( bitmap_line_ydxd::@4/bitmap_line_ydxd::x#7 ) - bitmap_line_ydxd::x#2 = -- bitmap_line_ydxd::x#4 - bitmap_line_ydxd::$5 = bitmap_line_ydxd::e#4 - bitmap_line_ydxd::yd#3 - bitmap_line_ydxd::e#2 = bitmap_line_ydxd::$5 - to:bitmap_line_ydxd::@2 -bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2 - return - to:@return - -unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) -divr16u: scope:[divr16u] from modr16u - divr16u::divisor#5 = phi( modr16u/divr16u::divisor#0 ) - divr16u::dividend#4 = phi( modr16u/divr16u::dividend#1 ) - divr16u::rem#9 = phi( modr16u/divr16u::rem#3 ) - divr16u::quotient#0 = 0 - divr16u::i#0 = 0 - to:divr16u::@1 -divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 - divr16u::i#5 = phi( divr16u/divr16u::i#0, divr16u::@3/divr16u::i#1 ) - divr16u::divisor#3 = phi( divr16u/divr16u::divisor#5, divr16u::@3/divr16u::divisor#6 ) - divr16u::quotient#6 = phi( divr16u/divr16u::quotient#0, divr16u::@3/divr16u::quotient#8 ) - divr16u::dividend#2 = phi( divr16u/divr16u::dividend#4, divr16u::@3/divr16u::dividend#5 ) - divr16u::rem#4 = phi( divr16u/divr16u::rem#9, divr16u::@3/divr16u::rem#10 ) - divr16u::$0 = divr16u::rem#4 << 1 - divr16u::rem#0 = divr16u::$0 - divr16u::$1 = byte1 divr16u::dividend#2 - divr16u::$2 = divr16u::$1 & $80 - divr16u::$3 = divr16u::$2 != 0 - divr16u::$4 = ! divr16u::$3 - if(divr16u::$4) goto divr16u::@2 - to:divr16u::@4 -divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4 - divr16u::i#3 = phi( divr16u::@1/divr16u::i#5, divr16u::@4/divr16u::i#6 ) - divr16u::divisor#1 = phi( divr16u::@1/divr16u::divisor#3, divr16u::@4/divr16u::divisor#4 ) - divr16u::rem#5 = phi( divr16u::@1/divr16u::rem#0, divr16u::@4/divr16u::rem#1 ) - divr16u::quotient#3 = phi( divr16u::@1/divr16u::quotient#6, divr16u::@4/divr16u::quotient#7 ) - divr16u::dividend#3 = phi( divr16u::@1/divr16u::dividend#2, divr16u::@4/divr16u::dividend#6 ) - divr16u::$6 = divr16u::dividend#3 << 1 - divr16u::dividend#0 = divr16u::$6 - divr16u::$7 = divr16u::quotient#3 << 1 - divr16u::quotient#1 = divr16u::$7 - divr16u::$8 = divr16u::rem#5 >= divr16u::divisor#1 - divr16u::$9 = ! divr16u::$8 - if(divr16u::$9) goto divr16u::@3 - to:divr16u::@5 -divr16u::@4: scope:[divr16u] from divr16u::@1 - divr16u::i#6 = phi( divr16u::@1/divr16u::i#5 ) - divr16u::divisor#4 = phi( divr16u::@1/divr16u::divisor#3 ) - divr16u::quotient#7 = phi( divr16u::@1/divr16u::quotient#6 ) - divr16u::dividend#6 = phi( divr16u::@1/divr16u::dividend#2 ) - divr16u::rem#6 = phi( divr16u::@1/divr16u::rem#0 ) - divr16u::$5 = divr16u::rem#6 | 1 - divr16u::rem#1 = divr16u::$5 - to:divr16u::@2 -divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 - divr16u::divisor#6 = phi( divr16u::@2/divr16u::divisor#1, divr16u::@5/divr16u::divisor#2 ) - divr16u::quotient#8 = phi( divr16u::@2/divr16u::quotient#1, divr16u::@5/divr16u::quotient#2 ) - divr16u::dividend#5 = phi( divr16u::@2/divr16u::dividend#0, divr16u::@5/divr16u::dividend#7 ) - divr16u::rem#10 = phi( divr16u::@2/divr16u::rem#5, divr16u::@5/divr16u::rem#2 ) - divr16u::i#2 = phi( divr16u::@2/divr16u::i#3, divr16u::@5/divr16u::i#4 ) - divr16u::i#1 = divr16u::i#2 + rangenext(0,$f) - divr16u::$11 = divr16u::i#1 != rangelast(0,$f) - if(divr16u::$11) goto divr16u::@1 - to:divr16u::@6 -divr16u::@5: scope:[divr16u] from divr16u::@2 - divr16u::dividend#7 = phi( divr16u::@2/divr16u::dividend#0 ) - divr16u::i#4 = phi( divr16u::@2/divr16u::i#3 ) - divr16u::divisor#2 = phi( divr16u::@2/divr16u::divisor#1 ) - divr16u::rem#7 = phi( divr16u::@2/divr16u::rem#5 ) - divr16u::quotient#4 = phi( divr16u::@2/divr16u::quotient#1 ) - divr16u::quotient#2 = ++ divr16u::quotient#4 - divr16u::$10 = divr16u::rem#7 - divr16u::divisor#2 - divr16u::rem#2 = divr16u::$10 - to:divr16u::@3 -divr16u::@6: scope:[divr16u] from divr16u::@3 - divr16u::quotient#5 = phi( divr16u::@3/divr16u::quotient#8 ) - divr16u::rem#8 = phi( divr16u::@3/divr16u::rem#10 ) - rem16u#0 = divr16u::rem#8 - divr16u::return#0 = divr16u::quotient#5 - to:divr16u::@return -divr16u::@return: scope:[divr16u] from divr16u::@6 - rem16u#12 = phi( divr16u::@6/rem16u#0 ) - divr16u::return#3 = phi( divr16u::@6/divr16u::return#0 ) - divr16u::return#1 = divr16u::return#3 - rem16u#1 = rem16u#12 - return - to:@return - -unsigned int modr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) -modr16u: scope:[modr16u] from main::@35 main::@37 main::@39 main::@41 - rem16u#22 = phi( main::@35/rem16u#23, main::@37/rem16u#24, main::@39/rem16u#25, main::@41/rem16u#26 ) - modr16u::rem#4 = phi( main::@35/modr16u::rem#0, main::@37/modr16u::rem#1, main::@39/modr16u::rem#2, main::@41/modr16u::rem#3 ) - modr16u::divisor#4 = phi( main::@35/modr16u::divisor#0, main::@37/modr16u::divisor#1, main::@39/modr16u::divisor#2, main::@41/modr16u::divisor#3 ) - modr16u::dividend#4 = phi( main::@35/modr16u::dividend#0, main::@37/modr16u::dividend#1, main::@39/modr16u::dividend#2, main::@41/modr16u::dividend#3 ) - divr16u::dividend#1 = modr16u::dividend#4 - divr16u::divisor#0 = modr16u::divisor#4 - divr16u::rem#3 = modr16u::rem#4 - call divr16u - divr16u::return#2 = divr16u::return#1 - to:modr16u::@1 -modr16u::@1: scope:[modr16u] from modr16u - rem16u#13 = phi( modr16u/rem16u#1 ) - rem16u#2 = rem16u#13 - modr16u::return#0 = rem16u#2 - to:modr16u::@return -modr16u::@return: scope:[modr16u] from modr16u::@1 - rem16u#14 = phi( modr16u::@1/rem16u#2 ) - modr16u::return#6 = phi( modr16u::@1/modr16u::return#0 ) - modr16u::return#1 = modr16u::return#6 - rem16u#3 = rem16u#14 - return - to:@return - -void main() -main: scope:[main] from __start::@1 - rem16u#88 = phi( __start::@1/rem16u#28 ) - rand_state#87 = phi( __start::@1/rand_state#29 ) - CONIO_SCREEN_TEXT#60 = phi( __start::@1/CONIO_SCREEN_TEXT#36 ) - CONIO_SCREEN_BANK#53 = phi( __start::@1/CONIO_SCREEN_BANK#30 ) - memcpy_in_vram::dest_bank#1 = 1 - memcpy_in_vram::dest#1 = (void *)(char *)$f000 - memcpy_in_vram::dest_increment#1 = VERA_INC_1 - memcpy_in_vram::src_bank#1 = 0 - memcpy_in_vram::src#1 = (void *)(char *)$f800 - memcpy_in_vram::src_increment#1 = VERA_INC_1 - memcpy_in_vram::num#1 = $100*8 - call memcpy_in_vram - to:main::@17 -main::@17: scope:[main] from main - rem16u#87 = phi( main/rem16u#88 ) - rand_state#86 = phi( main/rand_state#87 ) - CONIO_SCREEN_TEXT#52 = phi( main/CONIO_SCREEN_TEXT#60 ) - CONIO_SCREEN_BANK#46 = phi( main/CONIO_SCREEN_BANK#53 ) - vera_layer_mode_tile::layer#1 = 1 - vera_layer_mode_tile::mapbase_address#2 = $14000 - vera_layer_mode_tile::tilebase_address#2 = $1f000 - vera_layer_mode_tile::mapwidth#1 = $80 - vera_layer_mode_tile::mapheight#1 = $40 - vera_layer_mode_tile::tilewidth#1 = 8 - vera_layer_mode_tile::tileheight#1 = 8 - vera_layer_mode_tile::color_depth#1 = 1 - call vera_layer_mode_tile - to:main::@18 -main::@18: scope:[main] from main::@17 - rem16u#86 = phi( main::@17/rem16u#87 ) - rand_state#85 = phi( main::@17/rand_state#86 ) - CONIO_SCREEN_TEXT#42 = phi( main::@17/CONIO_SCREEN_TEXT#52 ) - CONIO_SCREEN_BANK#37 = phi( main::@17/CONIO_SCREEN_BANK#46 ) - vera_layer_mode_bitmap::layer#0 = 0 - vera_layer_mode_bitmap::bitmap_address#1 = (unsigned long)0 - vera_layer_mode_bitmap::mapwidth#0 = $140 - vera_layer_mode_bitmap::color_depth#0 = 8 - call vera_layer_mode_bitmap - to:main::@19 -main::@19: scope:[main] from main::@18 - rem16u#85 = phi( main::@18/rem16u#86 ) - rand_state#83 = phi( main::@18/rand_state#85 ) - CONIO_SCREEN_TEXT#33 = phi( main::@18/CONIO_SCREEN_TEXT#42 ) - CONIO_SCREEN_BANK#27 = phi( main::@18/CONIO_SCREEN_BANK#37 ) - screenlayer::layer#1 = 1 - call screenlayer - to:main::@20 -main::@20: scope:[main] from main::@19 - rem16u#83 = phi( main::@19/rem16u#85 ) - rand_state#81 = phi( main::@19/rand_state#83 ) - CONIO_SCREEN_TEXT#18 = phi( main::@19/CONIO_SCREEN_TEXT#3 ) - CONIO_SCREEN_BANK#16 = phi( main::@19/CONIO_SCREEN_BANK#3 ) - CONIO_SCREEN_BANK#4 = CONIO_SCREEN_BANK#16 - CONIO_SCREEN_TEXT#4 = CONIO_SCREEN_TEXT#18 - main::textcolor1_color#0 = WHITE - to:main::textcolor1 -main::textcolor1: scope:[main] from main::@20 - rem16u#81 = phi( main::@20/rem16u#83 ) - rand_state#79 = phi( main::@20/rand_state#81 ) - CONIO_SCREEN_BANK#84 = phi( main::@20/CONIO_SCREEN_BANK#4 ) - CONIO_SCREEN_TEXT#78 = phi( main::@20/CONIO_SCREEN_TEXT#4 ) - main::textcolor1_color#1 = phi( main::@20/main::textcolor1_color#0 ) - vera_layer_set_textcolor::layer#1 = conio_screen_layer - vera_layer_set_textcolor::color#1 = main::textcolor1_color#1 - call vera_layer_set_textcolor - vera_layer_set_textcolor::return#3 = vera_layer_set_textcolor::return#1 - to:main::@21 -main::@21: scope:[main] from main::textcolor1 - rem16u#79 = phi( main::textcolor1/rem16u#81 ) - rand_state#77 = phi( main::textcolor1/rand_state#79 ) - CONIO_SCREEN_BANK#81 = phi( main::textcolor1/CONIO_SCREEN_BANK#84 ) - CONIO_SCREEN_TEXT#70 = phi( main::textcolor1/CONIO_SCREEN_TEXT#78 ) - to:main::@8 -main::@8: scope:[main] from main::@21 - rem16u#77 = phi( main::@21/rem16u#79 ) - rand_state#75 = phi( main::@21/rand_state#77 ) - CONIO_SCREEN_BANK#77 = phi( main::@21/CONIO_SCREEN_BANK#81 ) - CONIO_SCREEN_TEXT#61 = phi( main::@21/CONIO_SCREEN_TEXT#70 ) - main::bgcolor1_color#0 = BLACK - to:main::bgcolor1 -main::bgcolor1: scope:[main] from main::@8 - rem16u#75 = phi( main::@8/rem16u#77 ) - rand_state#73 = phi( main::@8/rand_state#75 ) - CONIO_SCREEN_BANK#72 = phi( main::@8/CONIO_SCREEN_BANK#77 ) - CONIO_SCREEN_TEXT#53 = phi( main::@8/CONIO_SCREEN_TEXT#61 ) - main::bgcolor1_color#1 = phi( main::@8/main::bgcolor1_color#0 ) - vera_layer_set_backcolor::layer#1 = conio_screen_layer - vera_layer_set_backcolor::color#1 = main::bgcolor1_color#1 - call vera_layer_set_backcolor - vera_layer_set_backcolor::return#3 = vera_layer_set_backcolor::return#1 - to:main::@22 -main::@22: scope:[main] from main::bgcolor1 - rem16u#73 = phi( main::bgcolor1/rem16u#75 ) - rand_state#71 = phi( main::bgcolor1/rand_state#73 ) - CONIO_SCREEN_BANK#67 = phi( main::bgcolor1/CONIO_SCREEN_BANK#72 ) - CONIO_SCREEN_TEXT#43 = phi( main::bgcolor1/CONIO_SCREEN_TEXT#53 ) - to:main::@9 -main::@9: scope:[main] from main::@22 - rem16u#71 = phi( main::@22/rem16u#73 ) - rand_state#69 = phi( main::@22/rand_state#71 ) - CONIO_SCREEN_BANK#59 = phi( main::@22/CONIO_SCREEN_BANK#67 ) - CONIO_SCREEN_TEXT#26 = phi( main::@22/CONIO_SCREEN_TEXT#43 ) - call clrscr - to:main::@23 -main::@23: scope:[main] from main::@9 - CONIO_SCREEN_BANK#116 = phi( main::@9/CONIO_SCREEN_BANK#59 ) - CONIO_SCREEN_TEXT#123 = phi( main::@9/CONIO_SCREEN_TEXT#26 ) - rem16u#69 = phi( main::@9/rem16u#71 ) - rand_state#67 = phi( main::@9/rand_state#69 ) - gotoxy::x#3 = 0 - gotoxy::y#3 = $19 - call gotoxy - to:main::@24 -main::@24: scope:[main] from main::@23 - CONIO_SCREEN_BANK#115 = phi( main::@23/CONIO_SCREEN_BANK#116 ) - CONIO_SCREEN_TEXT#122 = phi( main::@23/CONIO_SCREEN_TEXT#123 ) - rem16u#67 = phi( main::@23/rem16u#69 ) - rand_state#65 = phi( main::@23/rand_state#67 ) - printf_str::putc#0 = &cputc - printf_str::s#1 = main::s - call printf_str - to:main::@25 -main::@25: scope:[main] from main::@24 - CONIO_SCREEN_BANK#114 = phi( main::@24/CONIO_SCREEN_BANK#115 ) - CONIO_SCREEN_TEXT#121 = phi( main::@24/CONIO_SCREEN_TEXT#122 ) - rem16u#65 = phi( main::@24/rem16u#67 ) - rand_state#63 = phi( main::@24/rand_state#65 ) - printf_str::putc#1 = &cputc - printf_str::s#2 = main::s1 - call printf_str - to:main::@26 -main::@26: scope:[main] from main::@25 - CONIO_SCREEN_BANK#113 = phi( main::@25/CONIO_SCREEN_BANK#114 ) - CONIO_SCREEN_TEXT#120 = phi( main::@25/CONIO_SCREEN_TEXT#121 ) - rem16u#63 = phi( main::@25/rem16u#65 ) - rand_state#61 = phi( main::@25/rand_state#63 ) - printf_str::putc#2 = &cputc - printf_str::s#3 = main::s2 - call printf_str - to:main::@27 -main::@27: scope:[main] from main::@26 - CONIO_SCREEN_BANK#111 = phi( main::@26/CONIO_SCREEN_BANK#113 ) - CONIO_SCREEN_TEXT#118 = phi( main::@26/CONIO_SCREEN_TEXT#120 ) - rem16u#61 = phi( main::@26/rem16u#63 ) - rand_state#59 = phi( main::@26/rand_state#61 ) - printf_str::putc#3 = &cputc - printf_str::s#4 = main::s3 - call printf_str - to:main::@28 -main::@28: scope:[main] from main::@27 - CONIO_SCREEN_BANK#109 = phi( main::@27/CONIO_SCREEN_BANK#111 ) - CONIO_SCREEN_TEXT#116 = phi( main::@27/CONIO_SCREEN_TEXT#118 ) - rem16u#59 = phi( main::@27/rem16u#61 ) - rand_state#56 = phi( main::@27/rand_state#59 ) - main::vera_layer_show1_layer#0 = 0 - to:main::vera_layer_show1 -main::vera_layer_show1: scope:[main] from main::@28 - CONIO_SCREEN_BANK#107 = phi( main::@28/CONIO_SCREEN_BANK#109 ) - CONIO_SCREEN_TEXT#114 = phi( main::@28/CONIO_SCREEN_TEXT#116 ) - rem16u#56 = phi( main::@28/rem16u#59 ) - rand_state#52 = phi( main::@28/rand_state#56 ) - main::vera_layer_show1_layer#1 = phi( main::@28/main::vera_layer_show1_layer#0 ) - *VERA_DC_VIDEO = *VERA_DC_VIDEO | vera_layer_enable[main::vera_layer_show1_layer#1] - to:main::@10 -main::@10: scope:[main] from main::vera_layer_show1 - CONIO_SCREEN_BANK#105 = phi( main::vera_layer_show1/CONIO_SCREEN_BANK#107 ) - CONIO_SCREEN_TEXT#112 = phi( main::vera_layer_show1/CONIO_SCREEN_TEXT#114 ) - rem16u#52 = phi( main::vera_layer_show1/rem16u#56 ) - rand_state#50 = phi( main::vera_layer_show1/rand_state#52 ) - bitmap_init::layer#0 = 0 - bitmap_init::address#0 = 0 - call bitmap_init - to:main::@29 -main::@29: scope:[main] from main::@10 - CONIO_SCREEN_BANK#103 = phi( main::@10/CONIO_SCREEN_BANK#105 ) - CONIO_SCREEN_TEXT#110 = phi( main::@10/CONIO_SCREEN_TEXT#112 ) - rem16u#50 = phi( main::@10/rem16u#52 ) - rand_state#48 = phi( main::@10/rand_state#50 ) - call bitmap_clear - to:main::@30 -main::@30: scope:[main] from main::@29 - CONIO_SCREEN_BANK#101 = phi( main::@29/CONIO_SCREEN_BANK#103 ) - CONIO_SCREEN_TEXT#108 = phi( main::@29/CONIO_SCREEN_TEXT#110 ) - rem16u#48 = phi( main::@29/rem16u#50 ) - rand_state#46 = phi( main::@29/rand_state#48 ) - gotoxy::x#4 = 0 - gotoxy::y#4 = $1d - call gotoxy - to:main::@31 -main::@31: scope:[main] from main::@30 - CONIO_SCREEN_BANK#99 = phi( main::@30/CONIO_SCREEN_BANK#101 ) - CONIO_SCREEN_TEXT#106 = phi( main::@30/CONIO_SCREEN_TEXT#108 ) - rem16u#46 = phi( main::@30/rem16u#48 ) - rand_state#44 = phi( main::@30/rand_state#46 ) - main::textcolor2_color#0 = YELLOW - to:main::textcolor2 -main::textcolor2: scope:[main] from main::@31 - CONIO_SCREEN_BANK#97 = phi( main::@31/CONIO_SCREEN_BANK#99 ) - CONIO_SCREEN_TEXT#104 = phi( main::@31/CONIO_SCREEN_TEXT#106 ) - rem16u#44 = phi( main::@31/rem16u#46 ) - rand_state#42 = phi( main::@31/rand_state#44 ) - main::textcolor2_color#1 = phi( main::@31/main::textcolor2_color#0 ) - vera_layer_set_textcolor::layer#2 = conio_screen_layer - vera_layer_set_textcolor::color#2 = main::textcolor2_color#1 - call vera_layer_set_textcolor - vera_layer_set_textcolor::return#4 = vera_layer_set_textcolor::return#1 - to:main::@32 -main::@32: scope:[main] from main::textcolor2 - CONIO_SCREEN_BANK#95 = phi( main::textcolor2/CONIO_SCREEN_BANK#97 ) - CONIO_SCREEN_TEXT#102 = phi( main::textcolor2/CONIO_SCREEN_TEXT#104 ) - rem16u#42 = phi( main::textcolor2/rem16u#44 ) - rand_state#40 = phi( main::textcolor2/rand_state#42 ) - to:main::@11 -main::@11: scope:[main] from main::@32 - CONIO_SCREEN_BANK#93 = phi( main::@32/CONIO_SCREEN_BANK#95 ) - CONIO_SCREEN_TEXT#99 = phi( main::@32/CONIO_SCREEN_TEXT#102 ) - rem16u#39 = phi( main::@32/rem16u#42 ) - rand_state#38 = phi( main::@32/rand_state#40 ) - printf_str::putc#4 = &cputc - printf_str::s#5 = main::s4 - call printf_str - to:main::@33 -main::@33: scope:[main] from main::@11 - CONIO_SCREEN_BANK#91 = phi( main::@11/CONIO_SCREEN_BANK#93 ) - CONIO_SCREEN_TEXT#96 = phi( main::@11/CONIO_SCREEN_TEXT#99 ) - rem16u#36 = phi( main::@11/rem16u#39 ) - rand_state#35 = phi( main::@11/rand_state#38 ) - to:main::@1 -main::@1: scope:[main] from main::@33 main::@44 - CONIO_SCREEN_BANK#90 = phi( main::@33/CONIO_SCREEN_BANK#91, main::@44/CONIO_SCREEN_BANK#92 ) - CONIO_SCREEN_TEXT#94 = phi( main::@33/CONIO_SCREEN_TEXT#96, main::@44/CONIO_SCREEN_TEXT#97 ) - rem16u#34 = phi( main::@33/rem16u#36, main::@44/rem16u#37 ) - rand_state#33 = phi( main::@33/rand_state#35, main::@44/rand_state#36 ) - call kbhit - kbhit::return#2 = kbhit::return#1 - to:main::@34 -main::@34: scope:[main] from main::@1 - CONIO_SCREEN_BANK#89 = phi( main::@1/CONIO_SCREEN_BANK#90 ) - CONIO_SCREEN_TEXT#91 = phi( main::@1/CONIO_SCREEN_TEXT#94 ) - rem16u#32 = phi( main::@1/rem16u#34 ) - rand_state#30 = phi( main::@1/rand_state#33 ) - kbhit::return#5 = phi( main::@1/kbhit::return#2 ) - main::$30 = kbhit::return#5 - main::$48 = 0 != main::$30 - main::$31 = ! main::$48 - if(main::$31) goto main::@2 - to:main::@3 -main::@2: scope:[main] from main::@34 - CONIO_SCREEN_BANK#112 = phi( main::@34/CONIO_SCREEN_BANK#89 ) - CONIO_SCREEN_TEXT#119 = phi( main::@34/CONIO_SCREEN_TEXT#91 ) - rem16u#29 = phi( main::@34/rem16u#32 ) - rand_state#23 = phi( main::@34/rand_state#30 ) - call rand - rand::return#2 = rand::return#1 - to:main::@35 -main::@35: scope:[main] from main::@2 - CONIO_SCREEN_BANK#110 = phi( main::@2/CONIO_SCREEN_BANK#112 ) - CONIO_SCREEN_TEXT#117 = phi( main::@2/CONIO_SCREEN_TEXT#119 ) - rem16u#23 = phi( main::@2/rem16u#29 ) - rand_state#15 = phi( main::@2/rand_state#3 ) - rand::return#8 = phi( main::@2/rand::return#2 ) - main::$32 = rand::return#8 - rand_state#4 = rand_state#15 - modr16u::dividend#0 = main::$32 - modr16u::divisor#0 = $140 - modr16u::rem#0 = 0 - call modr16u - modr16u::return#2 = modr16u::return#1 - to:main::@36 -main::@36: scope:[main] from main::@35 - CONIO_SCREEN_BANK#108 = phi( main::@35/CONIO_SCREEN_BANK#110 ) - CONIO_SCREEN_TEXT#115 = phi( main::@35/CONIO_SCREEN_TEXT#117 ) - rand_state#24 = phi( main::@35/rand_state#4 ) - rem16u#15 = phi( main::@35/rem16u#3 ) - modr16u::return#7 = phi( main::@35/modr16u::return#2 ) - main::$33 = modr16u::return#7 - rem16u#4 = rem16u#15 - call rand - rand::return#3 = rand::return#1 - to:main::@37 -main::@37: scope:[main] from main::@36 - CONIO_SCREEN_BANK#106 = phi( main::@36/CONIO_SCREEN_BANK#108 ) - CONIO_SCREEN_TEXT#113 = phi( main::@36/CONIO_SCREEN_TEXT#115 ) - rem16u#24 = phi( main::@36/rem16u#4 ) - rand_state#16 = phi( main::@36/rand_state#3 ) - rand::return#9 = phi( main::@36/rand::return#3 ) - main::$34 = rand::return#9 - rand_state#5 = rand_state#16 - modr16u::dividend#1 = main::$34 - modr16u::divisor#1 = $140 - modr16u::rem#1 = 0 - call modr16u - modr16u::return#3 = modr16u::return#1 - to:main::@38 -main::@38: scope:[main] from main::@37 - CONIO_SCREEN_BANK#104 = phi( main::@37/CONIO_SCREEN_BANK#106 ) - CONIO_SCREEN_TEXT#111 = phi( main::@37/CONIO_SCREEN_TEXT#113 ) - rand_state#25 = phi( main::@37/rand_state#5 ) - rem16u#16 = phi( main::@37/rem16u#3 ) - modr16u::return#8 = phi( main::@37/modr16u::return#3 ) - main::$35 = modr16u::return#8 - rem16u#5 = rem16u#16 - call rand - rand::return#4 = rand::return#1 - to:main::@39 -main::@39: scope:[main] from main::@38 - CONIO_SCREEN_BANK#102 = phi( main::@38/CONIO_SCREEN_BANK#104 ) - CONIO_SCREEN_TEXT#109 = phi( main::@38/CONIO_SCREEN_TEXT#111 ) - rem16u#25 = phi( main::@38/rem16u#5 ) - rand_state#17 = phi( main::@38/rand_state#3 ) - rand::return#10 = phi( main::@38/rand::return#4 ) - main::$36 = rand::return#10 - rand_state#6 = rand_state#17 - modr16u::dividend#2 = main::$36 - modr16u::divisor#2 = $c8 - modr16u::rem#2 = 0 - call modr16u - modr16u::return#4 = modr16u::return#1 - to:main::@40 -main::@40: scope:[main] from main::@39 - CONIO_SCREEN_BANK#100 = phi( main::@39/CONIO_SCREEN_BANK#102 ) - CONIO_SCREEN_TEXT#107 = phi( main::@39/CONIO_SCREEN_TEXT#109 ) - rand_state#26 = phi( main::@39/rand_state#6 ) - rem16u#17 = phi( main::@39/rem16u#3 ) - modr16u::return#9 = phi( main::@39/modr16u::return#4 ) - main::$37 = modr16u::return#9 - rem16u#6 = rem16u#17 - call rand - rand::return#5 = rand::return#1 - to:main::@41 -main::@41: scope:[main] from main::@40 - CONIO_SCREEN_BANK#98 = phi( main::@40/CONIO_SCREEN_BANK#100 ) - CONIO_SCREEN_TEXT#105 = phi( main::@40/CONIO_SCREEN_TEXT#107 ) - rem16u#26 = phi( main::@40/rem16u#6 ) - rand_state#18 = phi( main::@40/rand_state#3 ) - rand::return#11 = phi( main::@40/rand::return#5 ) - main::$38 = rand::return#11 - rand_state#7 = rand_state#18 - modr16u::dividend#3 = main::$38 - modr16u::divisor#3 = $c8 - modr16u::rem#3 = 0 - call modr16u - modr16u::return#5 = modr16u::return#1 - to:main::@42 -main::@42: scope:[main] from main::@41 - CONIO_SCREEN_BANK#96 = phi( main::@41/CONIO_SCREEN_BANK#98 ) - CONIO_SCREEN_TEXT#103 = phi( main::@41/CONIO_SCREEN_TEXT#105 ) - rand_state#27 = phi( main::@41/rand_state#7 ) - rem16u#18 = phi( main::@41/rem16u#3 ) - modr16u::return#10 = phi( main::@41/modr16u::return#5 ) - main::$39 = modr16u::return#10 - rem16u#7 = rem16u#18 - call rand - rand::return#6 = rand::return#1 - to:main::@43 -main::@43: scope:[main] from main::@42 - CONIO_SCREEN_BANK#94 = phi( main::@42/CONIO_SCREEN_BANK#96 ) - CONIO_SCREEN_TEXT#100 = phi( main::@42/CONIO_SCREEN_TEXT#103 ) - rem16u#40 = phi( main::@42/rem16u#7 ) - rand_state#19 = phi( main::@42/rand_state#3 ) - rand::return#12 = phi( main::@42/rand::return#6 ) - main::$40 = rand::return#12 - rand_state#8 = rand_state#19 - main::$41 = main::$40 & $ff - bitmap_line::x0#0 = main::$33 - bitmap_line::x1#0 = main::$35 - bitmap_line::y0#0 = main::$37 - bitmap_line::y1#0 = main::$39 - bitmap_line::c#0 = main::$41 - call bitmap_line - to:main::@44 -main::@44: scope:[main] from main::@43 - CONIO_SCREEN_BANK#92 = phi( main::@43/CONIO_SCREEN_BANK#94 ) - CONIO_SCREEN_TEXT#97 = phi( main::@43/CONIO_SCREEN_TEXT#100 ) - rem16u#37 = phi( main::@43/rem16u#40 ) - rand_state#36 = phi( main::@43/rand_state#8 ) - to:main::@1 -main::@3: scope:[main] from main::@34 - rem16u#84 = phi( main::@34/rem16u#32 ) - rand_state#84 = phi( main::@34/rand_state#30 ) - CONIO_SCREEN_BANK#87 = phi( main::@34/CONIO_SCREEN_BANK#89 ) - CONIO_SCREEN_TEXT#86 = phi( main::@34/CONIO_SCREEN_TEXT#91 ) - main::textcolor3_color#0 = WHITE - to:main::textcolor3 -main::textcolor3: scope:[main] from main::@3 - rem16u#82 = phi( main::@3/rem16u#84 ) - rand_state#82 = phi( main::@3/rand_state#84 ) - CONIO_SCREEN_BANK#85 = phi( main::@3/CONIO_SCREEN_BANK#87 ) - CONIO_SCREEN_TEXT#79 = phi( main::@3/CONIO_SCREEN_TEXT#86 ) - main::textcolor3_color#1 = phi( main::@3/main::textcolor3_color#0 ) - vera_layer_set_textcolor::layer#3 = conio_screen_layer - vera_layer_set_textcolor::color#3 = main::textcolor3_color#1 - call vera_layer_set_textcolor - vera_layer_set_textcolor::return#5 = vera_layer_set_textcolor::return#1 - to:main::@45 -main::@45: scope:[main] from main::textcolor3 - rem16u#80 = phi( main::textcolor3/rem16u#82 ) - rand_state#80 = phi( main::textcolor3/rand_state#82 ) - CONIO_SCREEN_BANK#82 = phi( main::textcolor3/CONIO_SCREEN_BANK#85 ) - CONIO_SCREEN_TEXT#71 = phi( main::textcolor3/CONIO_SCREEN_TEXT#79 ) - to:main::@12 -main::@12: scope:[main] from main::@45 - rem16u#78 = phi( main::@45/rem16u#80 ) - rand_state#78 = phi( main::@45/rand_state#80 ) - CONIO_SCREEN_BANK#78 = phi( main::@45/CONIO_SCREEN_BANK#82 ) - CONIO_SCREEN_TEXT#62 = phi( main::@45/CONIO_SCREEN_TEXT#71 ) - main::bgcolor2_color#0 = BLACK - to:main::bgcolor2 -main::bgcolor2: scope:[main] from main::@12 - rem16u#76 = phi( main::@12/rem16u#78 ) - rand_state#76 = phi( main::@12/rand_state#78 ) - CONIO_SCREEN_BANK#73 = phi( main::@12/CONIO_SCREEN_BANK#78 ) - CONIO_SCREEN_TEXT#54 = phi( main::@12/CONIO_SCREEN_TEXT#62 ) - main::bgcolor2_color#1 = phi( main::@12/main::bgcolor2_color#0 ) - vera_layer_set_backcolor::layer#2 = conio_screen_layer - vera_layer_set_backcolor::color#2 = main::bgcolor2_color#1 - call vera_layer_set_backcolor - vera_layer_set_backcolor::return#4 = vera_layer_set_backcolor::return#1 - to:main::@46 -main::@46: scope:[main] from main::bgcolor2 - rem16u#74 = phi( main::bgcolor2/rem16u#76 ) - rand_state#74 = phi( main::bgcolor2/rand_state#76 ) - CONIO_SCREEN_BANK#68 = phi( main::bgcolor2/CONIO_SCREEN_BANK#73 ) - CONIO_SCREEN_TEXT#44 = phi( main::bgcolor2/CONIO_SCREEN_TEXT#54 ) - to:main::@13 -main::@13: scope:[main] from main::@46 - rem16u#72 = phi( main::@46/rem16u#74 ) - rand_state#72 = phi( main::@46/rand_state#74 ) - CONIO_SCREEN_BANK#58 = phi( main::@46/CONIO_SCREEN_BANK#68 ) - CONIO_SCREEN_TEXT#24 = phi( main::@46/CONIO_SCREEN_TEXT#44 ) - call clrscr - to:main::@47 -main::@47: scope:[main] from main::@13 - rem16u#70 = phi( main::@13/rem16u#72 ) - rand_state#70 = phi( main::@13/rand_state#72 ) - CONIO_SCREEN_TEXT#101 = phi( main::@13/CONIO_SCREEN_TEXT#24 ) - CONIO_SCREEN_BANK#88 = phi( main::@13/CONIO_SCREEN_BANK#58 ) - gotoxy::x#5 = 0 - gotoxy::y#5 = $1a - call gotoxy - to:main::@48 -main::@48: scope:[main] from main::@47 - rem16u#68 = phi( main::@47/rem16u#70 ) - rand_state#68 = phi( main::@47/rand_state#70 ) - CONIO_SCREEN_TEXT#98 = phi( main::@47/CONIO_SCREEN_TEXT#101 ) - CONIO_SCREEN_BANK#86 = phi( main::@47/CONIO_SCREEN_BANK#88 ) - printf_str::putc#5 = &cputc - printf_str::s#6 = main::s5 - call printf_str - to:main::@49 -main::@49: scope:[main] from main::@48 - rem16u#66 = phi( main::@48/rem16u#68 ) - rand_state#66 = phi( main::@48/rand_state#68 ) - CONIO_SCREEN_TEXT#95 = phi( main::@48/CONIO_SCREEN_TEXT#98 ) - CONIO_SCREEN_BANK#83 = phi( main::@48/CONIO_SCREEN_BANK#86 ) - gotoxy::x#6 = 0 - gotoxy::y#6 = $1d - call gotoxy - to:main::@50 -main::@50: scope:[main] from main::@49 - rem16u#64 = phi( main::@49/rem16u#66 ) - rand_state#64 = phi( main::@49/rand_state#66 ) - CONIO_SCREEN_TEXT#92 = phi( main::@49/CONIO_SCREEN_TEXT#95 ) - CONIO_SCREEN_BANK#79 = phi( main::@49/CONIO_SCREEN_BANK#83 ) - main::textcolor4_color#0 = YELLOW - to:main::textcolor4 -main::textcolor4: scope:[main] from main::@50 - rem16u#62 = phi( main::@50/rem16u#64 ) - rand_state#62 = phi( main::@50/rand_state#64 ) - CONIO_SCREEN_TEXT#87 = phi( main::@50/CONIO_SCREEN_TEXT#92 ) - CONIO_SCREEN_BANK#74 = phi( main::@50/CONIO_SCREEN_BANK#79 ) - main::textcolor4_color#1 = phi( main::@50/main::textcolor4_color#0 ) - vera_layer_set_textcolor::layer#4 = conio_screen_layer - vera_layer_set_textcolor::color#4 = main::textcolor4_color#1 - call vera_layer_set_textcolor - vera_layer_set_textcolor::return#6 = vera_layer_set_textcolor::return#1 - to:main::@51 -main::@51: scope:[main] from main::textcolor4 - rem16u#60 = phi( main::textcolor4/rem16u#62 ) - rand_state#60 = phi( main::textcolor4/rand_state#62 ) - CONIO_SCREEN_TEXT#80 = phi( main::textcolor4/CONIO_SCREEN_TEXT#87 ) - CONIO_SCREEN_BANK#69 = phi( main::textcolor4/CONIO_SCREEN_BANK#74 ) - to:main::@14 -main::@14: scope:[main] from main::@51 - rem16u#57 = phi( main::@51/rem16u#60 ) - rand_state#57 = phi( main::@51/rand_state#60 ) - CONIO_SCREEN_TEXT#72 = phi( main::@51/CONIO_SCREEN_TEXT#80 ) - CONIO_SCREEN_BANK#62 = phi( main::@51/CONIO_SCREEN_BANK#69 ) - printf_str::putc#6 = &cputc - printf_str::s#7 = main::s6 - call printf_str - to:main::@52 -main::@52: scope:[main] from main::@14 - rem16u#53 = phi( main::@14/rem16u#57 ) - rand_state#53 = phi( main::@14/rand_state#57 ) - CONIO_SCREEN_TEXT#63 = phi( main::@14/CONIO_SCREEN_TEXT#72 ) - CONIO_SCREEN_BANK#54 = phi( main::@14/CONIO_SCREEN_BANK#62 ) - main::x#0 = 0 - main::color#0 = 0 - to:main::@4 -main::@4: scope:[main] from main::@52 main::@54 main::@7 - rem16u#51 = phi( main::@52/rem16u#53, main::@54/rem16u#54, main::@7/rem16u#55 ) - rand_state#51 = phi( main::@52/rand_state#53, main::@54/rand_state#54, main::@7/rand_state#55 ) - CONIO_SCREEN_TEXT#55 = phi( main::@52/CONIO_SCREEN_TEXT#63, main::@54/CONIO_SCREEN_TEXT#64, main::@7/CONIO_SCREEN_TEXT#65 ) - CONIO_SCREEN_BANK#47 = phi( main::@52/CONIO_SCREEN_BANK#54, main::@54/CONIO_SCREEN_BANK#55, main::@7/CONIO_SCREEN_BANK#56 ) - main::color#5 = phi( main::@52/main::color#0, main::@54/main::color#1, main::@7/main::color#6 ) - main::x#6 = phi( main::@52/main::x#0, main::@54/main::x#1, main::@7/main::x#2 ) - call kbhit - kbhit::return#3 = kbhit::return#1 - to:main::@53 -main::@53: scope:[main] from main::@4 - rem16u#49 = phi( main::@4/rem16u#51 ) - rand_state#49 = phi( main::@4/rand_state#51 ) - CONIO_SCREEN_TEXT#45 = phi( main::@4/CONIO_SCREEN_TEXT#55 ) - CONIO_SCREEN_BANK#38 = phi( main::@4/CONIO_SCREEN_BANK#47 ) - main::color#4 = phi( main::@4/main::color#5 ) - main::x#5 = phi( main::@4/main::x#6 ) - kbhit::return#6 = phi( main::@4/kbhit::return#3 ) - main::$43 = kbhit::return#6 - main::$49 = 0 != main::$43 - main::$44 = ! main::$49 - if(main::$44) goto main::@5 - to:main::@6 -main::@5: scope:[main] from main::@53 - rem16u#58 = phi( main::@53/rem16u#49 ) - rand_state#58 = phi( main::@53/rand_state#49 ) - CONIO_SCREEN_TEXT#73 = phi( main::@53/CONIO_SCREEN_TEXT#45 ) - CONIO_SCREEN_BANK#63 = phi( main::@53/CONIO_SCREEN_BANK#38 ) - main::color#2 = phi( main::@53/main::color#4 ) - main::x#3 = phi( main::@53/main::x#5 ) - bitmap_line::x0#1 = main::x#3 - bitmap_line::x1#1 = main::x#3 - bitmap_line::y0#1 = 0 - bitmap_line::y1#1 = $c7 - bitmap_line::c#1 = main::color#2 - call bitmap_line - to:main::@54 -main::@54: scope:[main] from main::@5 - rem16u#54 = phi( main::@5/rem16u#58 ) - rand_state#54 = phi( main::@5/rand_state#58 ) - CONIO_SCREEN_TEXT#64 = phi( main::@5/CONIO_SCREEN_TEXT#73 ) - CONIO_SCREEN_BANK#55 = phi( main::@5/CONIO_SCREEN_BANK#63 ) - main::x#4 = phi( main::@5/main::x#3 ) - main::color#3 = phi( main::@5/main::color#2 ) - main::color#1 = ++ main::color#3 - main::x#1 = ++ main::x#4 - main::$46 = main::x#1 > $13f - main::$47 = ! main::$46 - if(main::$47) goto main::@4 - to:main::@7 -main::@6: scope:[main] from main::@53 - rem16u#47 = phi( main::@53/rem16u#49 ) - rand_state#47 = phi( main::@53/rand_state#49 ) - CONIO_SCREEN_TEXT#34 = phi( main::@53/CONIO_SCREEN_TEXT#45 ) - CONIO_SCREEN_BANK#28 = phi( main::@53/CONIO_SCREEN_BANK#38 ) - screenlayer::layer#2 = 1 - call screenlayer - to:main::@55 -main::@55: scope:[main] from main::@6 - rem16u#45 = phi( main::@6/rem16u#47 ) - rand_state#45 = phi( main::@6/rand_state#47 ) - CONIO_SCREEN_TEXT#19 = phi( main::@6/CONIO_SCREEN_TEXT#3 ) - CONIO_SCREEN_BANK#17 = phi( main::@6/CONIO_SCREEN_BANK#3 ) - CONIO_SCREEN_BANK#5 = CONIO_SCREEN_BANK#17 - CONIO_SCREEN_TEXT#5 = CONIO_SCREEN_TEXT#19 - main::textcolor5_color#0 = WHITE - to:main::textcolor5 -main::textcolor5: scope:[main] from main::@55 - rem16u#43 = phi( main::@55/rem16u#45 ) - rand_state#43 = phi( main::@55/rand_state#45 ) - CONIO_SCREEN_BANK#75 = phi( main::@55/CONIO_SCREEN_BANK#5 ) - CONIO_SCREEN_TEXT#81 = phi( main::@55/CONIO_SCREEN_TEXT#5 ) - main::textcolor5_color#1 = phi( main::@55/main::textcolor5_color#0 ) - vera_layer_set_textcolor::layer#5 = conio_screen_layer - vera_layer_set_textcolor::color#5 = main::textcolor5_color#1 - call vera_layer_set_textcolor - vera_layer_set_textcolor::return#7 = vera_layer_set_textcolor::return#1 - to:main::@56 -main::@56: scope:[main] from main::textcolor5 - rem16u#41 = phi( main::textcolor5/rem16u#43 ) - rand_state#41 = phi( main::textcolor5/rand_state#43 ) - CONIO_SCREEN_BANK#70 = phi( main::textcolor5/CONIO_SCREEN_BANK#75 ) - CONIO_SCREEN_TEXT#74 = phi( main::textcolor5/CONIO_SCREEN_TEXT#81 ) - to:main::@15 -main::@15: scope:[main] from main::@56 - rem16u#38 = phi( main::@56/rem16u#41 ) - rand_state#39 = phi( main::@56/rand_state#41 ) - CONIO_SCREEN_BANK#64 = phi( main::@56/CONIO_SCREEN_BANK#70 ) - CONIO_SCREEN_TEXT#66 = phi( main::@56/CONIO_SCREEN_TEXT#74 ) - main::bgcolor3_color#0 = BLUE - to:main::bgcolor3 -main::bgcolor3: scope:[main] from main::@15 - rem16u#35 = phi( main::@15/rem16u#38 ) - rand_state#37 = phi( main::@15/rand_state#39 ) - CONIO_SCREEN_BANK#57 = phi( main::@15/CONIO_SCREEN_BANK#64 ) - CONIO_SCREEN_TEXT#56 = phi( main::@15/CONIO_SCREEN_TEXT#66 ) - main::bgcolor3_color#1 = phi( main::@15/main::bgcolor3_color#0 ) - vera_layer_set_backcolor::layer#3 = conio_screen_layer - vera_layer_set_backcolor::color#3 = main::bgcolor3_color#1 - call vera_layer_set_backcolor - vera_layer_set_backcolor::return#5 = vera_layer_set_backcolor::return#1 - to:main::@57 -main::@57: scope:[main] from main::bgcolor3 - rem16u#33 = phi( main::bgcolor3/rem16u#35 ) - rand_state#34 = phi( main::bgcolor3/rand_state#37 ) - CONIO_SCREEN_BANK#48 = phi( main::bgcolor3/CONIO_SCREEN_BANK#57 ) - CONIO_SCREEN_TEXT#46 = phi( main::bgcolor3/CONIO_SCREEN_TEXT#56 ) - to:main::@16 -main::@16: scope:[main] from main::@57 - rem16u#30 = phi( main::@57/rem16u#33 ) - rand_state#31 = phi( main::@57/rand_state#34 ) - CONIO_SCREEN_BANK#39 = phi( main::@57/CONIO_SCREEN_BANK#48 ) - CONIO_SCREEN_TEXT#25 = phi( main::@57/CONIO_SCREEN_TEXT#46 ) - call clrscr - to:main::@58 -main::@58: scope:[main] from main::@16 - rem16u#27 = phi( main::@16/rem16u#30 ) - rand_state#28 = phi( main::@16/rand_state#31 ) - CONIO_SCREEN_TEXT#35 = phi( main::@16/CONIO_SCREEN_TEXT#25 ) - CONIO_SCREEN_BANK#29 = phi( main::@16/CONIO_SCREEN_BANK#39 ) - to:main::@return -main::@7: scope:[main] from main::@54 - rem16u#55 = phi( main::@54/rem16u#54 ) - rand_state#55 = phi( main::@54/rand_state#54 ) - CONIO_SCREEN_TEXT#65 = phi( main::@54/CONIO_SCREEN_TEXT#64 ) - CONIO_SCREEN_BANK#56 = phi( main::@54/CONIO_SCREEN_BANK#55 ) - main::color#6 = phi( main::@54/main::color#1 ) - main::x#2 = 0 - to:main::@4 -main::@return: scope:[main] from main::@58 - rem16u#19 = phi( main::@58/rem16u#27 ) - rand_state#20 = phi( main::@58/rand_state#28 ) - CONIO_SCREEN_TEXT#20 = phi( main::@58/CONIO_SCREEN_TEXT#35 ) - CONIO_SCREEN_BANK#18 = phi( main::@58/CONIO_SCREEN_BANK#29 ) - CONIO_SCREEN_BANK#6 = CONIO_SCREEN_BANK#18 - CONIO_SCREEN_TEXT#6 = CONIO_SCREEN_TEXT#20 - rand_state#9 = rand_state#20 - rem16u#8 = rem16u#19 - return - to:@return - -void __start() -__start: scope:[__start] from - to:__start::__init1 -__start::__init1: scope:[__start] from __start - CONIO_SCREEN_TEXT#7 = DEFAULT_SCREEN - CONIO_SCREEN_BANK#7 = 0 - conio_screen_width = 0 - conio_screen_height = 0 - conio_screen_layer = 1 - conio_width = 0 - conio_height = 0 - conio_rowshift = 0 - conio_rowskip = 0 - rand_state#10 = 1 - __bitmap_address = 0 - __bitmap_layer = 0 - __bitmap_hscale = 0 - __bitmap_vscale = 0 - __bitmap_color_depth = 0 - rem16u#9 = 0 - call conio_x16_init - to:__start::@2 -__start::@2: scope:[__start] from __start::__init1 - rem16u#31 = phi( __start::__init1/rem16u#9 ) - rand_state#32 = phi( __start::__init1/rand_state#10 ) - CONIO_SCREEN_TEXT#21 = phi( __start::__init1/CONIO_SCREEN_TEXT#1 ) - CONIO_SCREEN_BANK#19 = phi( __start::__init1/CONIO_SCREEN_BANK#1 ) - CONIO_SCREEN_BANK#8 = CONIO_SCREEN_BANK#19 - CONIO_SCREEN_TEXT#8 = CONIO_SCREEN_TEXT#21 - to:__start::@1 -__start::@1: scope:[__start] from __start::@2 - rem16u#28 = phi( __start::@2/rem16u#31 ) - rand_state#29 = phi( __start::@2/rand_state#32 ) - CONIO_SCREEN_TEXT#36 = phi( __start::@2/CONIO_SCREEN_TEXT#8 ) - CONIO_SCREEN_BANK#30 = phi( __start::@2/CONIO_SCREEN_BANK#8 ) - call main - to:__start::@3 -__start::@3: scope:[__start] from __start::@1 - rem16u#20 = phi( __start::@1/rem16u#8 ) - rand_state#21 = phi( __start::@1/rand_state#9 ) - CONIO_SCREEN_TEXT#22 = phi( __start::@1/CONIO_SCREEN_TEXT#6 ) - CONIO_SCREEN_BANK#20 = phi( __start::@1/CONIO_SCREEN_BANK#6 ) - CONIO_SCREEN_BANK#9 = CONIO_SCREEN_BANK#20 - CONIO_SCREEN_TEXT#9 = CONIO_SCREEN_TEXT#22 - rand_state#11 = rand_state#21 - rem16u#10 = rem16u#20 - to:__start::@return -__start::@return: scope:[__start] from __start::@3 - rem16u#21 = phi( __start::@3/rem16u#10 ) - rand_state#22 = phi( __start::@3/rand_state#11 ) - CONIO_SCREEN_BANK#21 = phi( __start::@3/CONIO_SCREEN_BANK#9 ) - CONIO_SCREEN_TEXT#23 = phi( __start::@3/CONIO_SCREEN_TEXT#9 ) - CONIO_SCREEN_TEXT#10 = CONIO_SCREEN_TEXT#23 - CONIO_SCREEN_BANK#10 = CONIO_SCREEN_BANK#21 - rand_state#12 = rand_state#22 - rem16u#11 = rem16u#21 - return - to:@return - -SYMBOL TABLE SSA -__constant const char BLACK = 0 -__constant const char BLUE = 6 -char CONIO_SCREEN_BANK -char CONIO_SCREEN_BANK#0 -char CONIO_SCREEN_BANK#1 -char CONIO_SCREEN_BANK#10 -char CONIO_SCREEN_BANK#100 -char CONIO_SCREEN_BANK#101 -char CONIO_SCREEN_BANK#102 -char CONIO_SCREEN_BANK#103 -char CONIO_SCREEN_BANK#104 -char CONIO_SCREEN_BANK#105 -char CONIO_SCREEN_BANK#106 -char CONIO_SCREEN_BANK#107 -char CONIO_SCREEN_BANK#108 -char CONIO_SCREEN_BANK#109 -char CONIO_SCREEN_BANK#11 -char CONIO_SCREEN_BANK#110 -char CONIO_SCREEN_BANK#111 -char CONIO_SCREEN_BANK#112 -char CONIO_SCREEN_BANK#113 -char CONIO_SCREEN_BANK#114 -char CONIO_SCREEN_BANK#115 -char CONIO_SCREEN_BANK#116 -char CONIO_SCREEN_BANK#12 -char CONIO_SCREEN_BANK#13 -char CONIO_SCREEN_BANK#14 -char CONIO_SCREEN_BANK#15 -char CONIO_SCREEN_BANK#16 -char CONIO_SCREEN_BANK#17 -char CONIO_SCREEN_BANK#18 -char CONIO_SCREEN_BANK#19 -char CONIO_SCREEN_BANK#2 -char CONIO_SCREEN_BANK#20 -char CONIO_SCREEN_BANK#21 -char CONIO_SCREEN_BANK#22 -char CONIO_SCREEN_BANK#23 -char CONIO_SCREEN_BANK#24 -char CONIO_SCREEN_BANK#25 -char CONIO_SCREEN_BANK#26 -char CONIO_SCREEN_BANK#27 -char CONIO_SCREEN_BANK#28 -char CONIO_SCREEN_BANK#29 -char CONIO_SCREEN_BANK#3 -char CONIO_SCREEN_BANK#30 -char CONIO_SCREEN_BANK#31 -char CONIO_SCREEN_BANK#32 -char CONIO_SCREEN_BANK#33 -char CONIO_SCREEN_BANK#34 -char CONIO_SCREEN_BANK#35 -char CONIO_SCREEN_BANK#36 -char CONIO_SCREEN_BANK#37 -char CONIO_SCREEN_BANK#38 -char CONIO_SCREEN_BANK#39 -char CONIO_SCREEN_BANK#4 -char CONIO_SCREEN_BANK#40 -char CONIO_SCREEN_BANK#41 -char CONIO_SCREEN_BANK#42 -char CONIO_SCREEN_BANK#43 -char CONIO_SCREEN_BANK#44 -char CONIO_SCREEN_BANK#45 -char CONIO_SCREEN_BANK#46 -char CONIO_SCREEN_BANK#47 -char CONIO_SCREEN_BANK#48 -char CONIO_SCREEN_BANK#49 -char CONIO_SCREEN_BANK#5 -char CONIO_SCREEN_BANK#50 -char CONIO_SCREEN_BANK#51 -char CONIO_SCREEN_BANK#52 -char CONIO_SCREEN_BANK#53 -char CONIO_SCREEN_BANK#54 -char CONIO_SCREEN_BANK#55 -char CONIO_SCREEN_BANK#56 -char CONIO_SCREEN_BANK#57 -char CONIO_SCREEN_BANK#58 -char CONIO_SCREEN_BANK#59 -char CONIO_SCREEN_BANK#6 -char CONIO_SCREEN_BANK#60 -char CONIO_SCREEN_BANK#61 -char CONIO_SCREEN_BANK#62 -char CONIO_SCREEN_BANK#63 -char CONIO_SCREEN_BANK#64 -char CONIO_SCREEN_BANK#65 -char CONIO_SCREEN_BANK#66 -char CONIO_SCREEN_BANK#67 -char CONIO_SCREEN_BANK#68 -char CONIO_SCREEN_BANK#69 -char CONIO_SCREEN_BANK#7 -char CONIO_SCREEN_BANK#70 -char CONIO_SCREEN_BANK#71 -char CONIO_SCREEN_BANK#72 -char CONIO_SCREEN_BANK#73 -char CONIO_SCREEN_BANK#74 -char CONIO_SCREEN_BANK#75 -char CONIO_SCREEN_BANK#76 -char CONIO_SCREEN_BANK#77 -char CONIO_SCREEN_BANK#78 -char CONIO_SCREEN_BANK#79 -char CONIO_SCREEN_BANK#8 -char CONIO_SCREEN_BANK#80 -char CONIO_SCREEN_BANK#81 -char CONIO_SCREEN_BANK#82 -char CONIO_SCREEN_BANK#83 -char CONIO_SCREEN_BANK#84 -char CONIO_SCREEN_BANK#85 -char CONIO_SCREEN_BANK#86 -char CONIO_SCREEN_BANK#87 -char CONIO_SCREEN_BANK#88 -char CONIO_SCREEN_BANK#89 -char CONIO_SCREEN_BANK#9 -char CONIO_SCREEN_BANK#90 -char CONIO_SCREEN_BANK#91 -char CONIO_SCREEN_BANK#92 -char CONIO_SCREEN_BANK#93 -char CONIO_SCREEN_BANK#94 -char CONIO_SCREEN_BANK#95 -char CONIO_SCREEN_BANK#96 -char CONIO_SCREEN_BANK#97 -char CONIO_SCREEN_BANK#98 -char CONIO_SCREEN_BANK#99 -char *CONIO_SCREEN_TEXT -char *CONIO_SCREEN_TEXT#0 -char *CONIO_SCREEN_TEXT#1 -char *CONIO_SCREEN_TEXT#10 -char *CONIO_SCREEN_TEXT#100 -char *CONIO_SCREEN_TEXT#101 -char *CONIO_SCREEN_TEXT#102 -char *CONIO_SCREEN_TEXT#103 -char *CONIO_SCREEN_TEXT#104 -char *CONIO_SCREEN_TEXT#105 -char *CONIO_SCREEN_TEXT#106 -char *CONIO_SCREEN_TEXT#107 -char *CONIO_SCREEN_TEXT#108 -char *CONIO_SCREEN_TEXT#109 -char *CONIO_SCREEN_TEXT#11 -char *CONIO_SCREEN_TEXT#110 -char *CONIO_SCREEN_TEXT#111 -char *CONIO_SCREEN_TEXT#112 -char *CONIO_SCREEN_TEXT#113 -char *CONIO_SCREEN_TEXT#114 -char *CONIO_SCREEN_TEXT#115 -char *CONIO_SCREEN_TEXT#116 -char *CONIO_SCREEN_TEXT#117 -char *CONIO_SCREEN_TEXT#118 -char *CONIO_SCREEN_TEXT#119 -char *CONIO_SCREEN_TEXT#12 -char *CONIO_SCREEN_TEXT#120 -char *CONIO_SCREEN_TEXT#121 -char *CONIO_SCREEN_TEXT#122 -char *CONIO_SCREEN_TEXT#123 -char *CONIO_SCREEN_TEXT#13 -char *CONIO_SCREEN_TEXT#14 -char *CONIO_SCREEN_TEXT#15 -char *CONIO_SCREEN_TEXT#16 -char *CONIO_SCREEN_TEXT#17 -char *CONIO_SCREEN_TEXT#18 -char *CONIO_SCREEN_TEXT#19 -char *CONIO_SCREEN_TEXT#2 -char *CONIO_SCREEN_TEXT#20 -char *CONIO_SCREEN_TEXT#21 -char *CONIO_SCREEN_TEXT#22 -char *CONIO_SCREEN_TEXT#23 -char *CONIO_SCREEN_TEXT#24 -char *CONIO_SCREEN_TEXT#25 -char *CONIO_SCREEN_TEXT#26 -char *CONIO_SCREEN_TEXT#27 -char *CONIO_SCREEN_TEXT#28 -char *CONIO_SCREEN_TEXT#29 -char *CONIO_SCREEN_TEXT#3 -char *CONIO_SCREEN_TEXT#30 -char *CONIO_SCREEN_TEXT#31 -char *CONIO_SCREEN_TEXT#32 -char *CONIO_SCREEN_TEXT#33 -char *CONIO_SCREEN_TEXT#34 -char *CONIO_SCREEN_TEXT#35 -char *CONIO_SCREEN_TEXT#36 -char *CONIO_SCREEN_TEXT#37 -char *CONIO_SCREEN_TEXT#38 -char *CONIO_SCREEN_TEXT#39 -char *CONIO_SCREEN_TEXT#4 -char *CONIO_SCREEN_TEXT#40 -char *CONIO_SCREEN_TEXT#41 -char *CONIO_SCREEN_TEXT#42 -char *CONIO_SCREEN_TEXT#43 -char *CONIO_SCREEN_TEXT#44 -char *CONIO_SCREEN_TEXT#45 -char *CONIO_SCREEN_TEXT#46 -char *CONIO_SCREEN_TEXT#47 -char *CONIO_SCREEN_TEXT#48 -char *CONIO_SCREEN_TEXT#49 -char *CONIO_SCREEN_TEXT#5 -char *CONIO_SCREEN_TEXT#50 -char *CONIO_SCREEN_TEXT#51 -char *CONIO_SCREEN_TEXT#52 -char *CONIO_SCREEN_TEXT#53 -char *CONIO_SCREEN_TEXT#54 -char *CONIO_SCREEN_TEXT#55 -char *CONIO_SCREEN_TEXT#56 -char *CONIO_SCREEN_TEXT#57 -char *CONIO_SCREEN_TEXT#58 -char *CONIO_SCREEN_TEXT#59 -char *CONIO_SCREEN_TEXT#6 -char *CONIO_SCREEN_TEXT#60 -char *CONIO_SCREEN_TEXT#61 -char *CONIO_SCREEN_TEXT#62 -char *CONIO_SCREEN_TEXT#63 -char *CONIO_SCREEN_TEXT#64 -char *CONIO_SCREEN_TEXT#65 -char *CONIO_SCREEN_TEXT#66 -char *CONIO_SCREEN_TEXT#67 -char *CONIO_SCREEN_TEXT#68 -char *CONIO_SCREEN_TEXT#69 -char *CONIO_SCREEN_TEXT#7 -char *CONIO_SCREEN_TEXT#70 -char *CONIO_SCREEN_TEXT#71 -char *CONIO_SCREEN_TEXT#72 -char *CONIO_SCREEN_TEXT#73 -char *CONIO_SCREEN_TEXT#74 -char *CONIO_SCREEN_TEXT#75 -char *CONIO_SCREEN_TEXT#76 -char *CONIO_SCREEN_TEXT#77 -char *CONIO_SCREEN_TEXT#78 -char *CONIO_SCREEN_TEXT#79 -char *CONIO_SCREEN_TEXT#8 -char *CONIO_SCREEN_TEXT#80 -char *CONIO_SCREEN_TEXT#81 -char *CONIO_SCREEN_TEXT#82 -char *CONIO_SCREEN_TEXT#83 -char *CONIO_SCREEN_TEXT#84 -char *CONIO_SCREEN_TEXT#85 -char *CONIO_SCREEN_TEXT#86 -char *CONIO_SCREEN_TEXT#87 -char *CONIO_SCREEN_TEXT#88 -char *CONIO_SCREEN_TEXT#89 -char *CONIO_SCREEN_TEXT#9 -char *CONIO_SCREEN_TEXT#90 -char *CONIO_SCREEN_TEXT#91 -char *CONIO_SCREEN_TEXT#92 -char *CONIO_SCREEN_TEXT#93 -char *CONIO_SCREEN_TEXT#94 -char *CONIO_SCREEN_TEXT#95 -char *CONIO_SCREEN_TEXT#96 -char *CONIO_SCREEN_TEXT#97 -char *CONIO_SCREEN_TEXT#98 -char *CONIO_SCREEN_TEXT#99 -__constant char * const DEFAULT_SCREEN = (char *)0 -__constant char RADIX::BINARY = 2 -__constant char RADIX::DECIMAL = $a -__constant char RADIX::HEXADECIMAL = $10 -__constant char RADIX::OCTAL = 8 -__constant char SIZEOF_POINTER = 2 -__constant char SIZEOF_UNSIGNED_INT = 2 -__constant char SIZEOF_UNSIGNED_LONG = 4 -__constant unsigned int STACK_BASE = $103 -__constant const char VERA_ADDRSEL = 1 -__constant char * const VERA_ADDRX_H = (char *)$9f22 -__constant char * const VERA_ADDRX_L = (char *)$9f20 -__constant char * const VERA_ADDRX_M = (char *)$9f21 -__constant char * const VERA_CTRL = (char *)$9f25 -__constant char * const VERA_DATA0 = (char *)$9f23 -__constant char * const VERA_DATA1 = (char *)$9f24 -__constant char * const VERA_DC_HSCALE = (char *)$9f2a -__constant char * const VERA_DC_VIDEO = (char *)$9f29 -__constant char * const VERA_DC_VSCALE = (char *)$9f2b -__constant const char VERA_INC_0 = 0 -__constant const char VERA_INC_1 = $10 -__constant char * const VERA_L0_CONFIG = (char *)$9f2d -__constant char * const VERA_L0_MAPBASE = (char *)$9f2e -__constant char * const VERA_L0_TILEBASE = (char *)$9f2f -__constant char * const VERA_L1_CONFIG = (char *)$9f34 -__constant char * const VERA_L1_MAPBASE = (char *)$9f35 -__constant char * const VERA_L1_TILEBASE = (char *)$9f36 -__constant const char VERA_LAYER0_ENABLE = $10 -__constant const char VERA_LAYER1_ENABLE = $20 -__constant const char VERA_LAYER_COLOR_DEPTH_1BPP = 0 -__constant const char VERA_LAYER_COLOR_DEPTH_2BPP = 1 -__constant const char VERA_LAYER_COLOR_DEPTH_4BPP = 2 -__constant const char VERA_LAYER_COLOR_DEPTH_8BPP = 3 -__constant const char VERA_LAYER_COLOR_DEPTH_MASK = 3 -__constant const char VERA_LAYER_CONFIG_16C = 0 -__constant const char VERA_LAYER_CONFIG_256C = 8 -__constant const char VERA_LAYER_CONFIG_MODE_BITMAP = 4 -__constant const unsigned int VERA_LAYER_HEIGHT[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_HEIGHT_128 = $80 -__constant const char VERA_LAYER_HEIGHT_256 = $c0 -__constant const char VERA_LAYER_HEIGHT_32 = 0 -__constant const char VERA_LAYER_HEIGHT_64 = $40 -__constant const char VERA_LAYER_HEIGHT_MASK = $c0 -__constant const char VERA_LAYER_TILEBASE_MASK = $fc -__constant const unsigned int VERA_LAYER_WIDTH[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_WIDTH_128 = $20 -__constant const char VERA_LAYER_WIDTH_256 = $30 -__constant const char VERA_LAYER_WIDTH_32 = 0 -__constant const char VERA_LAYER_WIDTH_64 = $10 -__constant const char VERA_LAYER_WIDTH_MASK = $30 -__constant const char VERA_TILEBASE_HEIGHT_16 = 2 -__constant const char VERA_TILEBASE_HEIGHT_8 = 0 -__constant const char VERA_TILEBASE_WIDTH_16 = 1 -__constant const char VERA_TILEBASE_WIDTH_8 = 0 -__constant const char WHITE = 1 -__constant const char YELLOW = 7 -__loadstore unsigned long __bitmap_address -__loadstore char __bitmap_color_depth -__loadstore char __bitmap_hscale -__loadstore char __bitmap_layer -__constant const char __bitmap_plot_bitmask[$280] = { fill( $280, 0) } -__constant const char __bitmap_plot_bitshift[$280] = { fill( $280, 0) } -__constant const unsigned int __bitmap_plot_x[$280] = { fill( $280, 0) } -__constant const unsigned long __bitmap_plot_y[$1e0] = { fill( $1e0, 0) } -__loadstore char __bitmap_vscale -void __start() -void bitmap_clear() -char bitmap_clear::$0 -char bitmap_clear::$1 -unsigned int bitmap_clear::$4 -char bitmap_clear::$6 -char bitmap_clear::$7 -unsigned long bitmap_clear::count -unsigned long bitmap_clear::count#0 -unsigned int bitmap_clear::hdelta -unsigned int bitmap_clear::hdelta#0 -char bitmap_clear::vbank -char bitmap_clear::vbank#0 -unsigned int bitmap_clear::vdelta -unsigned int bitmap_clear::vdelta#0 -void *bitmap_clear::vdest -void *bitmap_clear::vdest#0 -void bitmap_init(char layer , unsigned long address) -char bitmap_init::$0 -char bitmap_init::$1 -unsigned int bitmap_init::$10 -bool bitmap_init::$11 -bool bitmap_init::$12 -unsigned int bitmap_init::$13 -bool bitmap_init::$14 -bool bitmap_init::$15 -bool bitmap_init::$16 -bool bitmap_init::$17 -bool bitmap_init::$18 -bool bitmap_init::$19 -char bitmap_init::$2 -bool bitmap_init::$20 -unsigned long bitmap_init::$21 -bool bitmap_init::$22 -unsigned int bitmap_init::$23 -unsigned int bitmap_init::$24 -unsigned int bitmap_init::$25 -unsigned int bitmap_init::$26 -char bitmap_init::$27 -unsigned int bitmap_init::$28 -char bitmap_init::$3 -char bitmap_init::$4 -bool bitmap_init::$5 -bool bitmap_init::$6 -unsigned int bitmap_init::$7 -bool bitmap_init::$8 -bool bitmap_init::$9 -unsigned long bitmap_init::address -unsigned long bitmap_init::address#0 -unsigned long bitmap_init::address#1 -char bitmap_init::bitmask -char bitmap_init::bitmask#0 -char bitmap_init::bitmask#1 -char bitmap_init::bitmask#10 -char bitmap_init::bitmask#11 -char bitmap_init::bitmask#12 -char bitmap_init::bitmask#13 -char bitmap_init::bitmask#14 -char bitmap_init::bitmask#15 -char bitmap_init::bitmask#16 -char bitmap_init::bitmask#2 -char bitmap_init::bitmask#3 -char bitmap_init::bitmask#4 -char bitmap_init::bitmask#5 -char bitmap_init::bitmask#6 -char bitmap_init::bitmask#7 -char bitmap_init::bitmask#8 -char bitmap_init::bitmask#9 -signed char bitmap_init::bitshift -signed char bitmap_init::bitshift#0 -signed char bitmap_init::bitshift#1 -signed char bitmap_init::bitshift#10 -signed char bitmap_init::bitshift#11 -signed char bitmap_init::bitshift#12 -signed char bitmap_init::bitshift#13 -signed char bitmap_init::bitshift#14 -signed char bitmap_init::bitshift#15 -signed char bitmap_init::bitshift#16 -signed char bitmap_init::bitshift#2 -signed char bitmap_init::bitshift#3 -signed char bitmap_init::bitshift#4 -signed char bitmap_init::bitshift#5 -signed char bitmap_init::bitshift#6 -signed char bitmap_init::bitshift#7 -signed char bitmap_init::bitshift#8 -signed char bitmap_init::bitshift#9 -unsigned int bitmap_init::hdelta -unsigned int bitmap_init::hdelta#0 -unsigned int bitmap_init::hdelta#1 -char bitmap_init::layer -char bitmap_init::layer#0 -char bitmap_init::layer#1 -char bitmap_init::vera_layer_get_color_depth1_$0 -char bitmap_init::vera_layer_get_color_depth1_$1 -char *bitmap_init::vera_layer_get_color_depth1_config -char *bitmap_init::vera_layer_get_color_depth1_config#0 -char bitmap_init::vera_layer_get_color_depth1_layer -char bitmap_init::vera_layer_get_color_depth1_layer#0 -char bitmap_init::vera_layer_get_color_depth1_layer#1 -char bitmap_init::vera_layer_get_color_depth1_return -char bitmap_init::vera_layer_get_color_depth1_return#0 -char bitmap_init::vera_layer_get_color_depth1_return#1 -char bitmap_init::vera_layer_get_color_depth1_return#2 -char bitmap_init::vera_layer_get_color_depth1_return#3 -unsigned int bitmap_init::x -unsigned int bitmap_init::x#0 -unsigned int bitmap_init::x#1 -unsigned int bitmap_init::x#10 -unsigned int bitmap_init::x#11 -unsigned int bitmap_init::x#12 -unsigned int bitmap_init::x#13 -unsigned int bitmap_init::x#14 -unsigned int bitmap_init::x#2 -unsigned int bitmap_init::x#3 -unsigned int bitmap_init::x#4 -unsigned int bitmap_init::x#5 -unsigned int bitmap_init::x#6 -unsigned int bitmap_init::x#7 -unsigned int bitmap_init::x#8 -unsigned int bitmap_init::x#9 -unsigned int bitmap_init::y -unsigned int bitmap_init::y#0 -unsigned int bitmap_init::y#1 -unsigned int bitmap_init::y#2 -unsigned long bitmap_init::yoffs -unsigned long bitmap_init::yoffs#0 -unsigned long bitmap_init::yoffs#1 -unsigned long bitmap_init::yoffs#2 -void bitmap_line(unsigned int x0 , unsigned int x1 , unsigned int y0 , unsigned int y1 , char c) -bool bitmap_line::$0 -unsigned int bitmap_line::$1 -unsigned int bitmap_line::$11 -bool bitmap_line::$12 -unsigned int bitmap_line::$13 -bool bitmap_line::$14 -unsigned int bitmap_line::$17 -bool bitmap_line::$18 -bool bitmap_line::$2 -unsigned int bitmap_line::$3 -bool bitmap_line::$4 -unsigned int bitmap_line::$7 -bool bitmap_line::$8 -char bitmap_line::c -char bitmap_line::c#0 -char bitmap_line::c#1 -char bitmap_line::c#10 -char bitmap_line::c#11 -char bitmap_line::c#12 -char bitmap_line::c#13 -char bitmap_line::c#14 -char bitmap_line::c#15 -char bitmap_line::c#16 -char bitmap_line::c#2 -char bitmap_line::c#3 -char bitmap_line::c#4 -char bitmap_line::c#5 -char bitmap_line::c#6 -char bitmap_line::c#7 -char bitmap_line::c#8 -char bitmap_line::c#9 -unsigned int bitmap_line::x0 -unsigned int bitmap_line::x0#0 -unsigned int bitmap_line::x0#1 -unsigned int bitmap_line::x0#10 -unsigned int bitmap_line::x0#11 -unsigned int bitmap_line::x0#12 -unsigned int bitmap_line::x0#13 -unsigned int bitmap_line::x0#14 -unsigned int bitmap_line::x0#2 -unsigned int bitmap_line::x0#3 -unsigned int bitmap_line::x0#4 -unsigned int bitmap_line::x0#5 -unsigned int bitmap_line::x0#6 -unsigned int bitmap_line::x0#7 -unsigned int bitmap_line::x0#8 -unsigned int bitmap_line::x0#9 -unsigned int bitmap_line::x1 -unsigned int bitmap_line::x1#0 -unsigned int bitmap_line::x1#1 -unsigned int bitmap_line::x1#10 -unsigned int bitmap_line::x1#11 -unsigned int bitmap_line::x1#12 -unsigned int bitmap_line::x1#13 -unsigned int bitmap_line::x1#14 -unsigned int bitmap_line::x1#2 -unsigned int bitmap_line::x1#3 -unsigned int bitmap_line::x1#4 -unsigned int bitmap_line::x1#5 -unsigned int bitmap_line::x1#6 -unsigned int bitmap_line::x1#7 -unsigned int bitmap_line::x1#8 -unsigned int bitmap_line::x1#9 -unsigned int bitmap_line::xd -unsigned int bitmap_line::xd#0 -unsigned int bitmap_line::xd#1 -unsigned int bitmap_line::xd#10 -unsigned int bitmap_line::xd#11 -unsigned int bitmap_line::xd#12 -unsigned int bitmap_line::xd#13 -unsigned int bitmap_line::xd#14 -unsigned int bitmap_line::xd#2 -unsigned int bitmap_line::xd#3 -unsigned int bitmap_line::xd#4 -unsigned int bitmap_line::xd#5 -unsigned int bitmap_line::xd#6 -unsigned int bitmap_line::xd#7 -unsigned int bitmap_line::xd#8 -unsigned int bitmap_line::xd#9 -unsigned int bitmap_line::y0 -unsigned int bitmap_line::y0#0 -unsigned int bitmap_line::y0#1 -unsigned int bitmap_line::y0#10 -unsigned int bitmap_line::y0#11 -unsigned int bitmap_line::y0#12 -unsigned int bitmap_line::y0#13 -unsigned int bitmap_line::y0#14 -unsigned int bitmap_line::y0#2 -unsigned int bitmap_line::y0#3 -unsigned int bitmap_line::y0#4 -unsigned int bitmap_line::y0#5 -unsigned int bitmap_line::y0#6 -unsigned int bitmap_line::y0#7 -unsigned int bitmap_line::y0#8 -unsigned int bitmap_line::y0#9 -unsigned int bitmap_line::y1 -unsigned int bitmap_line::y1#0 -unsigned int bitmap_line::y1#1 -unsigned int bitmap_line::y1#10 -unsigned int bitmap_line::y1#11 -unsigned int bitmap_line::y1#12 -unsigned int bitmap_line::y1#13 -unsigned int bitmap_line::y1#14 -unsigned int bitmap_line::y1#2 -unsigned int bitmap_line::y1#3 -unsigned int bitmap_line::y1#4 -unsigned int bitmap_line::y1#5 -unsigned int bitmap_line::y1#6 -unsigned int bitmap_line::y1#7 -unsigned int bitmap_line::y1#8 -unsigned int bitmap_line::y1#9 -unsigned int bitmap_line::yd -unsigned int bitmap_line::yd#0 -unsigned int bitmap_line::yd#1 -unsigned int bitmap_line::yd#10 -unsigned int bitmap_line::yd#11 -unsigned int bitmap_line::yd#12 -unsigned int bitmap_line::yd#2 -unsigned int bitmap_line::yd#3 -unsigned int bitmap_line::yd#4 -unsigned int bitmap_line::yd#5 -unsigned int bitmap_line::yd#6 -unsigned int bitmap_line::yd#7 -unsigned int bitmap_line::yd#8 -unsigned int bitmap_line::yd#9 -void bitmap_line_xdyd(unsigned int x , unsigned int y , unsigned int x1 , unsigned int xd , unsigned int yd , char c) -unsigned int bitmap_line_xdyd::$2 -bool bitmap_line_xdyd::$3 -bool bitmap_line_xdyd::$4 -unsigned int bitmap_line_xdyd::$5 -number bitmap_line_xdyd::$6 -bool bitmap_line_xdyd::$7 -char bitmap_line_xdyd::c -char bitmap_line_xdyd::c#0 -char bitmap_line_xdyd::c#1 -char bitmap_line_xdyd::c#2 -char bitmap_line_xdyd::c#3 -char bitmap_line_xdyd::c#4 -char bitmap_line_xdyd::c#5 -char bitmap_line_xdyd::c#6 -unsigned int bitmap_line_xdyd::e -unsigned int bitmap_line_xdyd::e#0 -unsigned int bitmap_line_xdyd::e#1 -unsigned int bitmap_line_xdyd::e#2 -unsigned int bitmap_line_xdyd::e#3 -unsigned int bitmap_line_xdyd::e#4 -unsigned int bitmap_line_xdyd::e#5 -unsigned int bitmap_line_xdyd::e#6 -unsigned int bitmap_line_xdyd::x -unsigned int bitmap_line_xdyd::x#0 -unsigned int bitmap_line_xdyd::x#1 -unsigned int bitmap_line_xdyd::x#2 -unsigned int bitmap_line_xdyd::x#3 -unsigned int bitmap_line_xdyd::x#4 -unsigned int bitmap_line_xdyd::x#5 -unsigned int bitmap_line_xdyd::x#6 -unsigned int bitmap_line_xdyd::x#7 -unsigned int bitmap_line_xdyd::x1 -unsigned int bitmap_line_xdyd::x1#0 -unsigned int bitmap_line_xdyd::x1#1 -unsigned int bitmap_line_xdyd::x1#2 -unsigned int bitmap_line_xdyd::x1#3 -unsigned int bitmap_line_xdyd::x1#4 -unsigned int bitmap_line_xdyd::x1#5 -unsigned int bitmap_line_xdyd::x1#6 -unsigned int bitmap_line_xdyd::xd -unsigned int bitmap_line_xdyd::xd#0 -unsigned int bitmap_line_xdyd::xd#1 -unsigned int bitmap_line_xdyd::xd#2 -unsigned int bitmap_line_xdyd::xd#3 -unsigned int bitmap_line_xdyd::xd#4 -unsigned int bitmap_line_xdyd::xd#5 -unsigned int bitmap_line_xdyd::xd#6 -unsigned int bitmap_line_xdyd::y -unsigned int bitmap_line_xdyd::y#0 -unsigned int bitmap_line_xdyd::y#1 -unsigned int bitmap_line_xdyd::y#2 -unsigned int bitmap_line_xdyd::y#3 -unsigned int bitmap_line_xdyd::y#4 -unsigned int bitmap_line_xdyd::y#5 -unsigned int bitmap_line_xdyd::y#6 -unsigned int bitmap_line_xdyd::y#7 -unsigned int bitmap_line_xdyd::yd -unsigned int bitmap_line_xdyd::yd#0 -unsigned int bitmap_line_xdyd::yd#1 -unsigned int bitmap_line_xdyd::yd#2 -unsigned int bitmap_line_xdyd::yd#3 -unsigned int bitmap_line_xdyd::yd#4 -unsigned int bitmap_line_xdyd::yd#5 -unsigned int bitmap_line_xdyd::yd#6 -void bitmap_line_xdyi(unsigned int x , unsigned int y , unsigned int x1 , unsigned int xd , unsigned int yd , char c) -unsigned int bitmap_line_xdyi::$2 -bool bitmap_line_xdyi::$3 -bool bitmap_line_xdyi::$4 -unsigned int bitmap_line_xdyi::$5 -number bitmap_line_xdyi::$6 -bool bitmap_line_xdyi::$7 -char bitmap_line_xdyi::c -char bitmap_line_xdyi::c#0 -char bitmap_line_xdyi::c#1 -char bitmap_line_xdyi::c#2 -char bitmap_line_xdyi::c#3 -char bitmap_line_xdyi::c#4 -char bitmap_line_xdyi::c#5 -char bitmap_line_xdyi::c#6 -unsigned int bitmap_line_xdyi::e -unsigned int bitmap_line_xdyi::e#0 -unsigned int bitmap_line_xdyi::e#1 -unsigned int bitmap_line_xdyi::e#2 -unsigned int bitmap_line_xdyi::e#3 -unsigned int bitmap_line_xdyi::e#4 -unsigned int bitmap_line_xdyi::e#5 -unsigned int bitmap_line_xdyi::e#6 -unsigned int bitmap_line_xdyi::x -unsigned int bitmap_line_xdyi::x#0 -unsigned int bitmap_line_xdyi::x#1 -unsigned int bitmap_line_xdyi::x#2 -unsigned int bitmap_line_xdyi::x#3 -unsigned int bitmap_line_xdyi::x#4 -unsigned int bitmap_line_xdyi::x#5 -unsigned int bitmap_line_xdyi::x#6 -unsigned int bitmap_line_xdyi::x#7 -unsigned int bitmap_line_xdyi::x1 -unsigned int bitmap_line_xdyi::x1#0 -unsigned int bitmap_line_xdyi::x1#1 -unsigned int bitmap_line_xdyi::x1#2 -unsigned int bitmap_line_xdyi::x1#3 -unsigned int bitmap_line_xdyi::x1#4 -unsigned int bitmap_line_xdyi::x1#5 -unsigned int bitmap_line_xdyi::x1#6 -unsigned int bitmap_line_xdyi::xd -unsigned int bitmap_line_xdyi::xd#0 -unsigned int bitmap_line_xdyi::xd#1 -unsigned int bitmap_line_xdyi::xd#2 -unsigned int bitmap_line_xdyi::xd#3 -unsigned int bitmap_line_xdyi::xd#4 -unsigned int bitmap_line_xdyi::xd#5 -unsigned int bitmap_line_xdyi::xd#6 -unsigned int bitmap_line_xdyi::y -unsigned int bitmap_line_xdyi::y#0 -unsigned int bitmap_line_xdyi::y#1 -unsigned int bitmap_line_xdyi::y#2 -unsigned int bitmap_line_xdyi::y#3 -unsigned int bitmap_line_xdyi::y#4 -unsigned int bitmap_line_xdyi::y#5 -unsigned int bitmap_line_xdyi::y#6 -unsigned int bitmap_line_xdyi::y#7 -unsigned int bitmap_line_xdyi::yd -unsigned int bitmap_line_xdyi::yd#0 -unsigned int bitmap_line_xdyi::yd#1 -unsigned int bitmap_line_xdyi::yd#2 -unsigned int bitmap_line_xdyi::yd#3 -unsigned int bitmap_line_xdyi::yd#4 -unsigned int bitmap_line_xdyi::yd#5 -unsigned int bitmap_line_xdyi::yd#6 -void bitmap_line_ydxd(unsigned int y , unsigned int x , unsigned int y1 , unsigned int yd , unsigned int xd , char c) -unsigned int bitmap_line_ydxd::$2 -bool bitmap_line_ydxd::$3 -bool bitmap_line_ydxd::$4 -unsigned int bitmap_line_ydxd::$5 -number bitmap_line_ydxd::$6 -bool bitmap_line_ydxd::$7 -char bitmap_line_ydxd::c -char bitmap_line_ydxd::c#0 -char bitmap_line_ydxd::c#1 -char bitmap_line_ydxd::c#2 -char bitmap_line_ydxd::c#3 -char bitmap_line_ydxd::c#4 -char bitmap_line_ydxd::c#5 -char bitmap_line_ydxd::c#6 -unsigned int bitmap_line_ydxd::e -unsigned int bitmap_line_ydxd::e#0 -unsigned int bitmap_line_ydxd::e#1 -unsigned int bitmap_line_ydxd::e#2 -unsigned int bitmap_line_ydxd::e#3 -unsigned int bitmap_line_ydxd::e#4 -unsigned int bitmap_line_ydxd::e#5 -unsigned int bitmap_line_ydxd::e#6 -unsigned int bitmap_line_ydxd::x -unsigned int bitmap_line_ydxd::x#0 -unsigned int bitmap_line_ydxd::x#1 -unsigned int bitmap_line_ydxd::x#2 -unsigned int bitmap_line_ydxd::x#3 -unsigned int bitmap_line_ydxd::x#4 -unsigned int bitmap_line_ydxd::x#5 -unsigned int bitmap_line_ydxd::x#6 -unsigned int bitmap_line_ydxd::x#7 -unsigned int bitmap_line_ydxd::xd -unsigned int bitmap_line_ydxd::xd#0 -unsigned int bitmap_line_ydxd::xd#1 -unsigned int bitmap_line_ydxd::xd#2 -unsigned int bitmap_line_ydxd::xd#3 -unsigned int bitmap_line_ydxd::xd#4 -unsigned int bitmap_line_ydxd::xd#5 -unsigned int bitmap_line_ydxd::xd#6 -unsigned int bitmap_line_ydxd::y -unsigned int bitmap_line_ydxd::y#0 -unsigned int bitmap_line_ydxd::y#1 -unsigned int bitmap_line_ydxd::y#2 -unsigned int bitmap_line_ydxd::y#3 -unsigned int bitmap_line_ydxd::y#4 -unsigned int bitmap_line_ydxd::y#5 -unsigned int bitmap_line_ydxd::y#6 -unsigned int bitmap_line_ydxd::y#7 -unsigned int bitmap_line_ydxd::y#8 -unsigned int bitmap_line_ydxd::y1 -unsigned int bitmap_line_ydxd::y1#0 -unsigned int bitmap_line_ydxd::y1#1 -unsigned int bitmap_line_ydxd::y1#2 -unsigned int bitmap_line_ydxd::y1#3 -unsigned int bitmap_line_ydxd::y1#4 -unsigned int bitmap_line_ydxd::y1#5 -unsigned int bitmap_line_ydxd::y1#6 -unsigned int bitmap_line_ydxd::yd -unsigned int bitmap_line_ydxd::yd#0 -unsigned int bitmap_line_ydxd::yd#1 -unsigned int bitmap_line_ydxd::yd#2 -unsigned int bitmap_line_ydxd::yd#3 -unsigned int bitmap_line_ydxd::yd#4 -unsigned int bitmap_line_ydxd::yd#5 -unsigned int bitmap_line_ydxd::yd#6 -void bitmap_line_ydxi(unsigned int y , unsigned int x , unsigned int y1 , unsigned int yd , unsigned int xd , char c) -unsigned int bitmap_line_ydxi::$2 -bool bitmap_line_ydxi::$3 -bool bitmap_line_ydxi::$4 -unsigned int bitmap_line_ydxi::$5 -number bitmap_line_ydxi::$6 -bool bitmap_line_ydxi::$7 -char bitmap_line_ydxi::c -char bitmap_line_ydxi::c#0 -char bitmap_line_ydxi::c#1 -char bitmap_line_ydxi::c#2 -char bitmap_line_ydxi::c#3 -char bitmap_line_ydxi::c#4 -char bitmap_line_ydxi::c#5 -char bitmap_line_ydxi::c#6 -unsigned int bitmap_line_ydxi::e -unsigned int bitmap_line_ydxi::e#0 -unsigned int bitmap_line_ydxi::e#1 -unsigned int bitmap_line_ydxi::e#2 -unsigned int bitmap_line_ydxi::e#3 -unsigned int bitmap_line_ydxi::e#4 -unsigned int bitmap_line_ydxi::e#5 -unsigned int bitmap_line_ydxi::e#6 -unsigned int bitmap_line_ydxi::x -unsigned int bitmap_line_ydxi::x#0 -unsigned int bitmap_line_ydxi::x#1 -unsigned int bitmap_line_ydxi::x#2 -unsigned int bitmap_line_ydxi::x#3 -unsigned int bitmap_line_ydxi::x#4 -unsigned int bitmap_line_ydxi::x#5 -unsigned int bitmap_line_ydxi::x#6 -unsigned int bitmap_line_ydxi::x#7 -unsigned int bitmap_line_ydxi::xd -unsigned int bitmap_line_ydxi::xd#0 -unsigned int bitmap_line_ydxi::xd#1 -unsigned int bitmap_line_ydxi::xd#2 -unsigned int bitmap_line_ydxi::xd#3 -unsigned int bitmap_line_ydxi::xd#4 -unsigned int bitmap_line_ydxi::xd#5 -unsigned int bitmap_line_ydxi::xd#6 -unsigned int bitmap_line_ydxi::y -unsigned int bitmap_line_ydxi::y#0 -unsigned int bitmap_line_ydxi::y#1 -unsigned int bitmap_line_ydxi::y#2 -unsigned int bitmap_line_ydxi::y#3 -unsigned int bitmap_line_ydxi::y#4 -unsigned int bitmap_line_ydxi::y#5 -unsigned int bitmap_line_ydxi::y#6 -unsigned int bitmap_line_ydxi::y#7 -unsigned int bitmap_line_ydxi::y1 -unsigned int bitmap_line_ydxi::y1#0 -unsigned int bitmap_line_ydxi::y1#1 -unsigned int bitmap_line_ydxi::y1#2 -unsigned int bitmap_line_ydxi::y1#3 -unsigned int bitmap_line_ydxi::y1#4 -unsigned int bitmap_line_ydxi::y1#5 -unsigned int bitmap_line_ydxi::y1#6 -unsigned int bitmap_line_ydxi::yd -unsigned int bitmap_line_ydxi::yd#0 -unsigned int bitmap_line_ydxi::yd#1 -unsigned int bitmap_line_ydxi::yd#2 -unsigned int bitmap_line_ydxi::yd#3 -unsigned int bitmap_line_ydxi::yd#4 -unsigned int bitmap_line_ydxi::yd#5 -unsigned int bitmap_line_ydxi::yd#6 -void bitmap_plot(unsigned int x , unsigned int y , char c) -char bitmap_plot::$1 -unsigned int bitmap_plot::$10 -bool bitmap_plot::$11 -char bitmap_plot::$2 -char bitmap_plot::$3 -char bitmap_plot::$4 -char bitmap_plot::$6 -char bitmap_plot::$7 -char bitmap_plot::$8 -unsigned int bitmap_plot::$9 -char bitmap_plot::bitshift -char bitmap_plot::bitshift#0 -char bitmap_plot::bitshift#1 -char bitmap_plot::c -char bitmap_plot::c#0 -char bitmap_plot::c#1 -char bitmap_plot::c#2 -char bitmap_plot::c#3 -char bitmap_plot::c#4 -char bitmap_plot::c#5 -char bitmap_plot::c#6 -char bitmap_plot::c#7 -char bitmap_plot::c#8 -char bitmap_plot::c#9 -unsigned long bitmap_plot::plot_x -unsigned long bitmap_plot::plot_x#0 -unsigned long bitmap_plot::plot_y -unsigned long bitmap_plot::plot_y#0 -unsigned long bitmap_plot::plotter -unsigned long bitmap_plot::plotter#0 -unsigned long bitmap_plot::plotter#1 -unsigned long bitmap_plot::plotter#2 -unsigned long bitmap_plot::plotter#3 -char bitmap_plot::vera_vram_address01_$0 -char bitmap_plot::vera_vram_address01_$1 -char bitmap_plot::vera_vram_address01_$2 -char bitmap_plot::vera_vram_address01_$3 -unsigned long bitmap_plot::vera_vram_address01_bankaddr -unsigned long bitmap_plot::vera_vram_address01_bankaddr#0 -unsigned long bitmap_plot::vera_vram_address01_bankaddr#1 -char bitmap_plot::vera_vram_address01_incr -char bitmap_plot::vera_vram_address01_incr#0 -char bitmap_plot::vera_vram_address01_incr#1 -unsigned int bitmap_plot::x -unsigned int bitmap_plot::x#0 -unsigned int bitmap_plot::x#1 -unsigned int bitmap_plot::x#2 -unsigned int bitmap_plot::x#3 -unsigned int bitmap_plot::x#4 -unsigned int bitmap_plot::x#5 -unsigned int bitmap_plot::x#6 -unsigned int bitmap_plot::x#7 -unsigned int bitmap_plot::x#8 -unsigned int bitmap_plot::x#9 -unsigned int bitmap_plot::y -unsigned int bitmap_plot::y#0 -unsigned int bitmap_plot::y#1 -unsigned int bitmap_plot::y#2 -unsigned int bitmap_plot::y#3 -unsigned int bitmap_plot::y#4 -__constant const char bitmasks[5] = { $80, $c0, $f0, $ff } -__constant const signed char bitshifts[5] = { 7, 6, 4, 0 } -void clearline() -char clearline::$1 -char clearline::$2 -bool clearline::$4 -char clearline::$5 -char *clearline::addr -char *clearline::addr#0 -unsigned int clearline::c -unsigned int clearline::c#0 -unsigned int clearline::c#1 -unsigned int clearline::c#2 -unsigned int clearline::c#3 -char clearline::color -char clearline::color#0 -char clearline::color#1 -char clearline::color#2 -void clrscr() -char clrscr::$0 -char clrscr::$1 -char clrscr::$2 -bool clrscr::$4 -char clrscr::$5 -char clrscr::$6 -char clrscr::$7 -bool clrscr::$8 -char clrscr::$9 -char clrscr::c -char clrscr::c#0 -char clrscr::c#1 -char clrscr::c#2 -char clrscr::c#3 -char *clrscr::ch -char *clrscr::ch#0 -char clrscr::color -char clrscr::color#0 -char clrscr::color#1 -char clrscr::color#2 -char clrscr::color#3 -char clrscr::color#4 -char clrscr::color#5 -char clrscr::l -char clrscr::l#0 -char clrscr::l#1 -char clrscr::l#2 -char clrscr::l#3 -char clrscr::l#4 -char clrscr::l#5 -char clrscr::l#6 -char *clrscr::line_text -char *clrscr::line_text#0 -char *clrscr::line_text#1 -char *clrscr::line_text#2 -char *clrscr::line_text#3 -char *clrscr::line_text#4 -char *clrscr::line_text#5 -char *clrscr::line_text#6 -char *clrscr::line_text#7 -char *clrscr::line_text#8 -__constant char conio_cursor_x[2] = { 0, 0 } -__constant char conio_cursor_y[2] = { 0, 0 } -__loadstore unsigned int conio_height -__constant unsigned int conio_line_text[2] = { 0, 0 } -__loadstore char conio_rowshift -__loadstore unsigned int conio_rowskip -__loadstore volatile char conio_screen_height -__loadstore char conio_screen_layer -__loadstore volatile char conio_screen_width -__constant char conio_scroll_enable[2] = { 1, 1 } -__loadstore unsigned int conio_width -void conio_x16_init() -bool conio_x16_init::$7 -bool conio_x16_init::$8 -number conio_x16_init::$9 -__constant char * const conio_x16_init::BASIC_CURSOR_LINE = (char *)$d6 -char conio_x16_init::line -char conio_x16_init::line#0 -char conio_x16_init::line#1 -char conio_x16_init::line#2 -char conio_x16_init::line#3 -char conio_x16_init::line#4 -char conio_x16_init::line#5 -char conio_x16_init::line#6 -char conio_x16_init::line#7 -char conio_x16_init::line#8 -char conio_x16_init::line#9 -__stackcall void cputc(char c) -bool cputc::$11 -bool cputc::$12 -char cputc::$15 -unsigned int cputc::$16 -bool cputc::$17 -char cputc::$2 -bool cputc::$3 -char cputc::$4 -char cputc::$5 -char cputc::$6 -bool cputc::$8 -bool cputc::$9 -__constant char cputc::OFFSET_STACK_C = 0 -char cputc::c -char cputc::c#0 -char cputc::c#1 -char cputc::c#2 -char cputc::color -char cputc::color#0 -char cputc::color#1 -char *cputc::conio_addr -char *cputc::conio_addr#0 -char *cputc::conio_addr#1 -char *cputc::conio_addr#2 -char cputc::scroll_enable -char cputc::scroll_enable#0 -void cputln() -char cputln::$2 -char cputln::$3 -unsigned int cputln::temp -unsigned int cputln::temp#0 -unsigned int cputln::temp#1 -void cscroll() -bool cscroll::$0 -bool cscroll::$1 -bool cscroll::$2 -bool cscroll::$3 -number cscroll::$5 -bool cscroll::$7 -unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) -unsigned int divr16u::$0 -char divr16u::$1 -unsigned int divr16u::$10 -bool divr16u::$11 -number divr16u::$2 -bool divr16u::$3 -bool divr16u::$4 -number divr16u::$5 -unsigned int divr16u::$6 -unsigned int divr16u::$7 -bool divr16u::$8 -bool divr16u::$9 -unsigned int divr16u::dividend -unsigned int divr16u::dividend#0 -unsigned int divr16u::dividend#1 -unsigned int divr16u::dividend#2 -unsigned int divr16u::dividend#3 -unsigned int divr16u::dividend#4 -unsigned int divr16u::dividend#5 -unsigned int divr16u::dividend#6 -unsigned int divr16u::dividend#7 -unsigned int divr16u::divisor -unsigned int divr16u::divisor#0 -unsigned int divr16u::divisor#1 -unsigned int divr16u::divisor#2 -unsigned int divr16u::divisor#3 -unsigned int divr16u::divisor#4 -unsigned int divr16u::divisor#5 -unsigned int divr16u::divisor#6 -char divr16u::i -char divr16u::i#0 -char divr16u::i#1 -char divr16u::i#2 -char divr16u::i#3 -char divr16u::i#4 -char divr16u::i#5 -char divr16u::i#6 -unsigned int divr16u::quotient -unsigned int divr16u::quotient#0 -unsigned int divr16u::quotient#1 -unsigned int divr16u::quotient#2 -unsigned int divr16u::quotient#3 -unsigned int divr16u::quotient#4 -unsigned int divr16u::quotient#5 -unsigned int divr16u::quotient#6 -unsigned int divr16u::quotient#7 -unsigned int divr16u::quotient#8 -unsigned int divr16u::rem -unsigned int divr16u::rem#0 -unsigned int divr16u::rem#1 -unsigned int divr16u::rem#10 -unsigned int divr16u::rem#2 -unsigned int divr16u::rem#3 -unsigned int divr16u::rem#4 -unsigned int divr16u::rem#5 -unsigned int divr16u::rem#6 -unsigned int divr16u::rem#7 -unsigned int divr16u::rem#8 -unsigned int divr16u::rem#9 -unsigned int divr16u::return -unsigned int divr16u::return#0 -unsigned int divr16u::return#1 -unsigned int divr16u::return#2 -unsigned int divr16u::return#3 -void gotoxy(char x , char y) -bool gotoxy::$0 -bool gotoxy::$1 -bool gotoxy::$2 -bool gotoxy::$3 -char gotoxy::$5 -unsigned int gotoxy::$6 -unsigned int gotoxy::line_offset -unsigned int gotoxy::line_offset#0 -char gotoxy::x -char gotoxy::x#0 -char gotoxy::x#1 -char gotoxy::x#10 -char gotoxy::x#2 -char gotoxy::x#3 -char gotoxy::x#4 -char gotoxy::x#5 -char gotoxy::x#6 -char gotoxy::x#7 -char gotoxy::x#8 -char gotoxy::x#9 -char gotoxy::y -char gotoxy::y#0 -char gotoxy::y#1 -char gotoxy::y#10 -char gotoxy::y#2 -char gotoxy::y#3 -char gotoxy::y#4 -char gotoxy::y#5 -char gotoxy::y#6 -char gotoxy::y#7 -char gotoxy::y#8 -char gotoxy::y#9 -__constant unsigned int hdeltas[$10] = { 0, $50, $28, $14, 0, $a0, $50, $28, 0, $140, $a0, $50, 0, $280, $140, $a0 } -void insertup() -bool insertup::$2 -number insertup::$3 -char *insertup::$6 -char insertup::cy -char insertup::cy#0 -char insertup::cy#1 -char insertup::cy#2 -char insertup::cy#3 -char insertup::i -char insertup::i#0 -char insertup::i#1 -char insertup::i#2 -char insertup::i#3 -char insertup::i#4 -unsigned int insertup::line -unsigned int insertup::line#0 -char *insertup::start -char *insertup::start#0 -char insertup::width -char insertup::width#0 -char insertup::width#1 -char insertup::width#2 -char insertup::width#3 -char kbhit() -__constant char * const kbhit::GETIN = (char *)$ffe4 -__constant char * const kbhit::IN_DEV = (char *)$28a -__loadstore volatile char kbhit::ch -__constant char * const kbhit::chptr = &kbhit::ch -char kbhit::return -char kbhit::return#0 -char kbhit::return#1 -char kbhit::return#2 -char kbhit::return#3 -char kbhit::return#4 -char kbhit::return#5 -char kbhit::return#6 -void main() -char main::$30 -bool main::$31 -unsigned int main::$32 -unsigned int main::$33 -unsigned int main::$34 -unsigned int main::$35 -unsigned int main::$36 -unsigned int main::$37 -unsigned int main::$38 -unsigned int main::$39 -unsigned int main::$40 -number main::$41 -char main::$43 -bool main::$44 -bool main::$46 -bool main::$47 -bool main::$48 -bool main::$49 -char main::bgcolor1_color -char main::bgcolor1_color#0 -char main::bgcolor1_color#1 -char main::bgcolor2_color -char main::bgcolor2_color#0 -char main::bgcolor2_color#1 -char main::bgcolor3_color -char main::bgcolor3_color#0 -char main::bgcolor3_color#1 -char main::color -char main::color#0 -char main::color#1 -char main::color#2 -char main::color#3 -char main::color#4 -char main::color#5 -char main::color#6 -__constant char main::s[$16] = "vera in bitmap mode, -" -__constant char main::s1[$1f] = "color depth 8 bits per pixel. -" -__constant char main::s2[$29] = "in this mode, it is possible to display -" -__constant char main::s3[$19] = "graphics in 256 colors. -" -__constant char main::s4[$10] = "press a key ..." -__constant char main::s5[$27] = "here you see all the colors possible. -" -__constant char main::s6[$10] = "press a key ..." -char main::textcolor1_color -char main::textcolor1_color#0 -char main::textcolor1_color#1 -char main::textcolor2_color -char main::textcolor2_color#0 -char main::textcolor2_color#1 -char main::textcolor3_color -char main::textcolor3_color#0 -char main::textcolor3_color#1 -char main::textcolor4_color -char main::textcolor4_color#0 -char main::textcolor4_color#1 -char main::textcolor5_color -char main::textcolor5_color#0 -char main::textcolor5_color#1 -char main::vera_layer_show1_layer -char main::vera_layer_show1_layer#0 -char main::vera_layer_show1_layer#1 -unsigned int main::x -unsigned int main::x#0 -unsigned int main::x#1 -unsigned int main::x#2 -unsigned int main::x#3 -unsigned int main::x#4 -unsigned int main::x#5 -unsigned int main::x#6 -void memcpy_in_vram(char dest_bank , void *dest , char dest_increment , char src_bank , void *src , char src_increment , unsigned int num) -char memcpy_in_vram::$0 -char memcpy_in_vram::$1 -char memcpy_in_vram::$2 -char memcpy_in_vram::$3 -char memcpy_in_vram::$4 -char memcpy_in_vram::$5 -bool memcpy_in_vram::$6 -void *memcpy_in_vram::dest -void *memcpy_in_vram::dest#0 -void *memcpy_in_vram::dest#1 -void *memcpy_in_vram::dest#2 -char memcpy_in_vram::dest_bank -char memcpy_in_vram::dest_bank#0 -char memcpy_in_vram::dest_bank#1 -char memcpy_in_vram::dest_bank#2 -char memcpy_in_vram::dest_increment -char memcpy_in_vram::dest_increment#0 -char memcpy_in_vram::dest_increment#1 -char memcpy_in_vram::dest_increment#2 -unsigned int memcpy_in_vram::i -unsigned int memcpy_in_vram::i#0 -unsigned int memcpy_in_vram::i#1 -unsigned int memcpy_in_vram::i#2 -unsigned int memcpy_in_vram::i#3 -unsigned int memcpy_in_vram::num -unsigned int memcpy_in_vram::num#0 -unsigned int memcpy_in_vram::num#1 -unsigned int memcpy_in_vram::num#2 -unsigned int memcpy_in_vram::num#3 -unsigned int memcpy_in_vram::num#4 -void *memcpy_in_vram::src -void *memcpy_in_vram::src#0 -void *memcpy_in_vram::src#1 -void *memcpy_in_vram::src#2 -char memcpy_in_vram::src_bank -char memcpy_in_vram::src_bank#0 -char memcpy_in_vram::src_bank#1 -char memcpy_in_vram::src_bank#2 -char memcpy_in_vram::src_increment -char memcpy_in_vram::src_increment#0 -char memcpy_in_vram::src_increment#1 -char memcpy_in_vram::src_increment#2 -void memset_vram(char vbank , void *vdest , char data , unsigned long num) -char memset_vram::$0 -char memset_vram::$1 -char memset_vram::$2 -bool memset_vram::$3 -char memset_vram::data -char memset_vram::data#0 -char memset_vram::data#1 -char memset_vram::data#2 -char memset_vram::data#3 -unsigned long memset_vram::i -unsigned long memset_vram::i#0 -unsigned long memset_vram::i#1 -unsigned long memset_vram::i#2 -unsigned long memset_vram::i#3 -unsigned long memset_vram::num -unsigned long memset_vram::num#0 -unsigned long memset_vram::num#1 -unsigned long memset_vram::num#2 -unsigned long memset_vram::num#3 -char memset_vram::vbank -char memset_vram::vbank#0 -char memset_vram::vbank#1 -void *memset_vram::vdest -void *memset_vram::vdest#0 -void *memset_vram::vdest#1 -unsigned int modr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) -unsigned int modr16u::dividend -unsigned int modr16u::dividend#0 -unsigned int modr16u::dividend#1 -unsigned int modr16u::dividend#2 -unsigned int modr16u::dividend#3 -unsigned int modr16u::dividend#4 -unsigned int modr16u::divisor -unsigned int modr16u::divisor#0 -unsigned int modr16u::divisor#1 -unsigned int modr16u::divisor#2 -unsigned int modr16u::divisor#3 -unsigned int modr16u::divisor#4 -unsigned int modr16u::rem -unsigned int modr16u::rem#0 -unsigned int modr16u::rem#1 -unsigned int modr16u::rem#2 -unsigned int modr16u::rem#3 -unsigned int modr16u::rem#4 -unsigned int modr16u::return -unsigned int modr16u::return#0 -unsigned int modr16u::return#1 -unsigned int modr16u::return#10 -unsigned int modr16u::return#2 -unsigned int modr16u::return#3 -unsigned int modr16u::return#4 -unsigned int modr16u::return#5 -unsigned int modr16u::return#6 -unsigned int modr16u::return#7 -unsigned int modr16u::return#8 -unsigned int modr16u::return#9 -unsigned long mul16u(unsigned int a , unsigned int b) -bool mul16u::$0 -number mul16u::$1 -bool mul16u::$2 -bool mul16u::$3 -unsigned long mul16u::$4 -unsigned int mul16u::$5 -unsigned long mul16u::$6 -unsigned int mul16u::a -unsigned int mul16u::a#0 -unsigned int mul16u::a#1 -unsigned int mul16u::a#2 -unsigned int mul16u::a#3 -unsigned int mul16u::a#4 -unsigned int mul16u::a#5 -unsigned int mul16u::a#6 -unsigned int mul16u::b -unsigned int mul16u::b#0 -unsigned int mul16u::b#1 -unsigned long mul16u::mb -unsigned long mul16u::mb#0 -unsigned long mul16u::mb#1 -unsigned long mul16u::mb#2 -unsigned long mul16u::mb#3 -unsigned long mul16u::mb#4 -unsigned long mul16u::mb#5 -unsigned long mul16u::res -unsigned long mul16u::res#0 -unsigned long mul16u::res#1 -unsigned long mul16u::res#2 -unsigned long mul16u::res#3 -unsigned long mul16u::res#4 -unsigned long mul16u::res#5 -unsigned long mul16u::res#6 -unsigned long mul16u::return -unsigned long mul16u::return#0 -unsigned long mul16u::return#1 -unsigned long mul16u::return#2 -unsigned long mul16u::return#3 -unsigned long mul16u::return#4 -void printf_str(void (*putc)(char) , const char *s) -char printf_str::$0 -bool printf_str::$2 -char printf_str::c -char printf_str::c#0 -char printf_str::c#1 -char printf_str::c#2 -void (*printf_str::putc)(char) -void (*printf_str::putc#0)(char) -void (*printf_str::putc#1)(char) -void (*printf_str::putc#2)(char) -void (*printf_str::putc#3)(char) -void (*printf_str::putc#4)(char) -void (*printf_str::putc#5)(char) -void (*printf_str::putc#6)(char) -void (*printf_str::putc#7)(char) -void (*printf_str::putc#8)(char) -void (*printf_str::putc#9)(char) -const char *printf_str::s -const char *printf_str::s#0 -const char *printf_str::s#1 -const char *printf_str::s#10 -const char *printf_str::s#2 -const char *printf_str::s#3 -const char *printf_str::s#4 -const char *printf_str::s#5 -const char *printf_str::s#6 -const char *printf_str::s#7 -const char *printf_str::s#8 -const char *printf_str::s#9 -unsigned int rand() -unsigned int rand::$0 -unsigned int rand::$1 -unsigned int rand::$2 -unsigned int rand::return -unsigned int rand::return#0 -unsigned int rand::return#1 -unsigned int rand::return#10 -unsigned int rand::return#11 -unsigned int rand::return#12 -unsigned int rand::return#2 -unsigned int rand::return#3 -unsigned int rand::return#4 -unsigned int rand::return#5 -unsigned int rand::return#6 -unsigned int rand::return#7 -unsigned int rand::return#8 -unsigned int rand::return#9 -unsigned int rand_state -unsigned int rand_state#0 -unsigned int rand_state#1 -unsigned int rand_state#10 -unsigned int rand_state#11 -unsigned int rand_state#12 -unsigned int rand_state#13 -unsigned int rand_state#14 -unsigned int rand_state#15 -unsigned int rand_state#16 -unsigned int rand_state#17 -unsigned int rand_state#18 -unsigned int rand_state#19 -unsigned int rand_state#2 -unsigned int rand_state#20 -unsigned int rand_state#21 -unsigned int rand_state#22 -unsigned int rand_state#23 -unsigned int rand_state#24 -unsigned int rand_state#25 -unsigned int rand_state#26 -unsigned int rand_state#27 -unsigned int rand_state#28 -unsigned int rand_state#29 -unsigned int rand_state#3 -unsigned int rand_state#30 -unsigned int rand_state#31 -unsigned int rand_state#32 -unsigned int rand_state#33 -unsigned int rand_state#34 -unsigned int rand_state#35 -unsigned int rand_state#36 -unsigned int rand_state#37 -unsigned int rand_state#38 -unsigned int rand_state#39 -unsigned int rand_state#4 -unsigned int rand_state#40 -unsigned int rand_state#41 -unsigned int rand_state#42 -unsigned int rand_state#43 -unsigned int rand_state#44 -unsigned int rand_state#45 -unsigned int rand_state#46 -unsigned int rand_state#47 -unsigned int rand_state#48 -unsigned int rand_state#49 -unsigned int rand_state#5 -unsigned int rand_state#50 -unsigned int rand_state#51 -unsigned int rand_state#52 -unsigned int rand_state#53 -unsigned int rand_state#54 -unsigned int rand_state#55 -unsigned int rand_state#56 -unsigned int rand_state#57 -unsigned int rand_state#58 -unsigned int rand_state#59 -unsigned int rand_state#6 -unsigned int rand_state#60 -unsigned int rand_state#61 -unsigned int rand_state#62 -unsigned int rand_state#63 -unsigned int rand_state#64 -unsigned int rand_state#65 -unsigned int rand_state#66 -unsigned int rand_state#67 -unsigned int rand_state#68 -unsigned int rand_state#69 -unsigned int rand_state#7 -unsigned int rand_state#70 -unsigned int rand_state#71 -unsigned int rand_state#72 -unsigned int rand_state#73 -unsigned int rand_state#74 -unsigned int rand_state#75 -unsigned int rand_state#76 -unsigned int rand_state#77 -unsigned int rand_state#78 -unsigned int rand_state#79 -unsigned int rand_state#8 -unsigned int rand_state#80 -unsigned int rand_state#81 -unsigned int rand_state#82 -unsigned int rand_state#83 -unsigned int rand_state#84 -unsigned int rand_state#85 -unsigned int rand_state#86 -unsigned int rand_state#87 -unsigned int rand_state#9 -unsigned int rem16u -unsigned int rem16u#0 -unsigned int rem16u#1 -unsigned int rem16u#10 -unsigned int rem16u#11 -unsigned int rem16u#12 -unsigned int rem16u#13 -unsigned int rem16u#14 -unsigned int rem16u#15 -unsigned int rem16u#16 -unsigned int rem16u#17 -unsigned int rem16u#18 -unsigned int rem16u#19 -unsigned int rem16u#2 -unsigned int rem16u#20 -unsigned int rem16u#21 -unsigned int rem16u#22 -unsigned int rem16u#23 -unsigned int rem16u#24 -unsigned int rem16u#25 -unsigned int rem16u#26 -unsigned int rem16u#27 -unsigned int rem16u#28 -unsigned int rem16u#29 -unsigned int rem16u#3 -unsigned int rem16u#30 -unsigned int rem16u#31 -unsigned int rem16u#32 -unsigned int rem16u#33 -unsigned int rem16u#34 -unsigned int rem16u#35 -unsigned int rem16u#36 -unsigned int rem16u#37 -unsigned int rem16u#38 -unsigned int rem16u#39 -unsigned int rem16u#4 -unsigned int rem16u#40 -unsigned int rem16u#41 -unsigned int rem16u#42 -unsigned int rem16u#43 -unsigned int rem16u#44 -unsigned int rem16u#45 -unsigned int rem16u#46 -unsigned int rem16u#47 -unsigned int rem16u#48 -unsigned int rem16u#49 -unsigned int rem16u#5 -unsigned int rem16u#50 -unsigned int rem16u#51 -unsigned int rem16u#52 -unsigned int rem16u#53 -unsigned int rem16u#54 -unsigned int rem16u#55 -unsigned int rem16u#56 -unsigned int rem16u#57 -unsigned int rem16u#58 -unsigned int rem16u#59 -unsigned int rem16u#6 -unsigned int rem16u#60 -unsigned int rem16u#61 -unsigned int rem16u#62 -unsigned int rem16u#63 -unsigned int rem16u#64 -unsigned int rem16u#65 -unsigned int rem16u#66 -unsigned int rem16u#67 -unsigned int rem16u#68 -unsigned int rem16u#69 -unsigned int rem16u#7 -unsigned int rem16u#70 -unsigned int rem16u#71 -unsigned int rem16u#72 -unsigned int rem16u#73 -unsigned int rem16u#74 -unsigned int rem16u#75 -unsigned int rem16u#76 -unsigned int rem16u#77 -unsigned int rem16u#78 -unsigned int rem16u#79 -unsigned int rem16u#8 -unsigned int rem16u#80 -unsigned int rem16u#81 -unsigned int rem16u#82 -unsigned int rem16u#83 -unsigned int rem16u#84 -unsigned int rem16u#85 -unsigned int rem16u#86 -unsigned int rem16u#87 -unsigned int rem16u#88 -unsigned int rem16u#9 -void screenlayer(char layer) -char screenlayer::$0 -unsigned int screenlayer::$1 -unsigned int screenlayer::$2 -char screenlayer::$3 -unsigned int screenlayer::$4 -unsigned int screenlayer::$5 -char screenlayer::layer -char screenlayer::layer#0 -char screenlayer::layer#1 -char screenlayer::layer#2 -char screenlayer::layer#3 -char screenlayer::vera_layer_get_height1_$0 -char screenlayer::vera_layer_get_height1_$1 -char screenlayer::vera_layer_get_height1_$2 -char screenlayer::vera_layer_get_height1_$3 -char *screenlayer::vera_layer_get_height1_config -char *screenlayer::vera_layer_get_height1_config#0 -char screenlayer::vera_layer_get_height1_layer -char screenlayer::vera_layer_get_height1_layer#0 -char screenlayer::vera_layer_get_height1_layer#1 -unsigned int screenlayer::vera_layer_get_height1_return -unsigned int screenlayer::vera_layer_get_height1_return#0 -unsigned int screenlayer::vera_layer_get_height1_return#1 -unsigned int screenlayer::vera_layer_get_height1_return#2 -unsigned int screenlayer::vera_layer_get_height1_return#3 -char screenlayer::vera_layer_get_width1_$0 -char screenlayer::vera_layer_get_width1_$1 -char screenlayer::vera_layer_get_width1_$2 -char screenlayer::vera_layer_get_width1_$3 -char *screenlayer::vera_layer_get_width1_config -char *screenlayer::vera_layer_get_width1_config#0 -char screenlayer::vera_layer_get_width1_layer -char screenlayer::vera_layer_get_width1_layer#0 -char screenlayer::vera_layer_get_width1_layer#1 -unsigned int screenlayer::vera_layer_get_width1_return -unsigned int screenlayer::vera_layer_get_width1_return#0 -unsigned int screenlayer::vera_layer_get_width1_return#1 -unsigned int screenlayer::vera_layer_get_width1_return#2 -unsigned int screenlayer::vera_layer_get_width1_return#3 -void screensize(char *x , char *y) -number screensize::$1 -number screensize::$3 -char screensize::hscale -char screensize::hscale#0 -char screensize::vscale -char screensize::vscale#0 -char *screensize::x -char *screensize::x#0 -char *screensize::x#1 -char *screensize::y -char *screensize::y#0 -char *screensize::y#1 -__constant const unsigned int vdeltas[4] = { 0, $1e0, $f0, $a0 } -char vera_display_get_hscale() -bool vera_display_get_hscale::$0 -bool vera_display_get_hscale::$1 -bool vera_display_get_hscale::$2 -__constant char vera_display_get_hscale::hscale[4] = { 0, $80, $40, $20 } -char vera_display_get_hscale::return -char vera_display_get_hscale::return#0 -char vera_display_get_hscale::return#1 -char vera_display_get_hscale::return#2 -char vera_display_get_hscale::return#3 -char vera_display_get_hscale::return#4 -char vera_display_get_hscale::s -char vera_display_get_hscale::s#0 -char vera_display_get_hscale::s#1 -char vera_display_get_hscale::s#2 -char vera_display_get_hscale::s#3 -char vera_display_get_hscale::s#4 -char vera_display_get_hscale::scale -char vera_display_get_hscale::scale#0 -char vera_display_get_hscale::scale#1 -char vera_display_get_hscale::scale#2 -char vera_display_get_hscale::scale#3 -char vera_display_get_hscale::scale#4 -char vera_display_get_vscale() -bool vera_display_get_vscale::$0 -bool vera_display_get_vscale::$1 -bool vera_display_get_vscale::$2 -char vera_display_get_vscale::return -char vera_display_get_vscale::return#0 -char vera_display_get_vscale::return#1 -char vera_display_get_vscale::return#2 -char vera_display_get_vscale::return#3 -char vera_display_get_vscale::return#4 -char vera_display_get_vscale::s -char vera_display_get_vscale::s#0 -char vera_display_get_vscale::s#1 -char vera_display_get_vscale::s#2 -char vera_display_get_vscale::s#3 -char vera_display_get_vscale::s#4 -char vera_display_get_vscale::scale -char vera_display_get_vscale::scale#0 -char vera_display_get_vscale::scale#1 -char vera_display_get_vscale::scale#2 -char vera_display_get_vscale::scale#3 -char vera_display_get_vscale::scale#4 -__constant char vera_display_get_vscale::vscale[4] = { 0, $80, $40, $20 } -__constant char vera_layer_backcolor[2] = { BLUE, BLUE } -__constant char *vera_layer_config[2] = { VERA_L0_CONFIG, VERA_L1_CONFIG } -__constant char vera_layer_enable[2] = { VERA_LAYER0_ENABLE, VERA_LAYER1_ENABLE } -char vera_layer_get_backcolor(char layer) -char vera_layer_get_backcolor::layer -char vera_layer_get_backcolor::layer#0 -char vera_layer_get_backcolor::layer#1 -char vera_layer_get_backcolor::return -char vera_layer_get_backcolor::return#0 -char vera_layer_get_backcolor::return#1 -char vera_layer_get_backcolor::return#2 -char vera_layer_get_backcolor::return#3 -char vera_layer_get_backcolor::return#4 -char vera_layer_get_color(char layer) -char vera_layer_get_color::$0 -char vera_layer_get_color::$1 -char vera_layer_get_color::$2 -char vera_layer_get_color::$3 -bool vera_layer_get_color::$4 -char *vera_layer_get_color::addr -char *vera_layer_get_color::addr#0 -char vera_layer_get_color::layer -char vera_layer_get_color::layer#0 -char vera_layer_get_color::layer#1 -char vera_layer_get_color::layer#2 -char vera_layer_get_color::layer#3 -char vera_layer_get_color::layer#4 -char vera_layer_get_color::return -char vera_layer_get_color::return#0 -char vera_layer_get_color::return#1 -char vera_layer_get_color::return#2 -char vera_layer_get_color::return#3 -char vera_layer_get_color::return#4 -char vera_layer_get_color::return#5 -char vera_layer_get_color::return#6 -char vera_layer_get_color::return#7 -char vera_layer_get_mapbase_bank(char layer) -char vera_layer_get_mapbase_bank::layer -char vera_layer_get_mapbase_bank::layer#0 -char vera_layer_get_mapbase_bank::layer#1 -char vera_layer_get_mapbase_bank::return -char vera_layer_get_mapbase_bank::return#0 -char vera_layer_get_mapbase_bank::return#1 -char vera_layer_get_mapbase_bank::return#2 -char vera_layer_get_mapbase_bank::return#3 -char vera_layer_get_mapbase_bank::return#4 -unsigned int vera_layer_get_mapbase_offset(char layer) -char vera_layer_get_mapbase_offset::$0 -char vera_layer_get_mapbase_offset::layer -char vera_layer_get_mapbase_offset::layer#0 -char vera_layer_get_mapbase_offset::layer#1 -unsigned int vera_layer_get_mapbase_offset::return -unsigned int vera_layer_get_mapbase_offset::return#0 -unsigned int vera_layer_get_mapbase_offset::return#1 -unsigned int vera_layer_get_mapbase_offset::return#2 -unsigned int vera_layer_get_mapbase_offset::return#3 -unsigned int vera_layer_get_mapbase_offset::return#4 -char vera_layer_get_rowshift(char layer) -char vera_layer_get_rowshift::layer -char vera_layer_get_rowshift::layer#0 -char vera_layer_get_rowshift::layer#1 -char vera_layer_get_rowshift::return -char vera_layer_get_rowshift::return#0 -char vera_layer_get_rowshift::return#1 -char vera_layer_get_rowshift::return#2 -char vera_layer_get_rowshift::return#3 -char vera_layer_get_rowshift::return#4 -unsigned int vera_layer_get_rowskip(char layer) -char vera_layer_get_rowskip::$0 -char vera_layer_get_rowskip::layer -char vera_layer_get_rowskip::layer#0 -char vera_layer_get_rowskip::layer#1 -unsigned int vera_layer_get_rowskip::return -unsigned int vera_layer_get_rowskip::return#0 -unsigned int vera_layer_get_rowskip::return#1 -unsigned int vera_layer_get_rowskip::return#2 -unsigned int vera_layer_get_rowskip::return#3 -unsigned int vera_layer_get_rowskip::return#4 -char vera_layer_get_textcolor(char layer) -char vera_layer_get_textcolor::layer -char vera_layer_get_textcolor::layer#0 -char vera_layer_get_textcolor::layer#1 -char vera_layer_get_textcolor::return -char vera_layer_get_textcolor::return#0 -char vera_layer_get_textcolor::return#1 -char vera_layer_get_textcolor::return#2 -char vera_layer_get_textcolor::return#3 -char vera_layer_get_textcolor::return#4 -__constant char *vera_layer_mapbase[2] = { VERA_L0_MAPBASE, VERA_L1_MAPBASE } -void vera_layer_mode_bitmap(char layer , unsigned long bitmap_address , unsigned int mapwidth , unsigned int color_depth) -char vera_layer_mode_bitmap::$0 -unsigned int vera_layer_mode_bitmap::$1 -char vera_layer_mode_bitmap::$10 -char vera_layer_mode_bitmap::$2 -unsigned long vera_layer_mode_bitmap::$3 -char vera_layer_mode_bitmap::$9 -unsigned long vera_layer_mode_bitmap::bitmap_address -unsigned long vera_layer_mode_bitmap::bitmap_address#0 -unsigned long vera_layer_mode_bitmap::bitmap_address#1 -unsigned long vera_layer_mode_bitmap::bitmap_address#10 -unsigned long vera_layer_mode_bitmap::bitmap_address#2 -unsigned long vera_layer_mode_bitmap::bitmap_address#3 -unsigned long vera_layer_mode_bitmap::bitmap_address#4 -unsigned long vera_layer_mode_bitmap::bitmap_address#5 -unsigned long vera_layer_mode_bitmap::bitmap_address#6 -unsigned long vera_layer_mode_bitmap::bitmap_address#7 -unsigned long vera_layer_mode_bitmap::bitmap_address#8 -unsigned long vera_layer_mode_bitmap::bitmap_address#9 -unsigned int vera_layer_mode_bitmap::color_depth -unsigned int vera_layer_mode_bitmap::color_depth#0 -unsigned int vera_layer_mode_bitmap::color_depth#1 -unsigned int vera_layer_mode_bitmap::color_depth#2 -unsigned int vera_layer_mode_bitmap::color_depth#3 -unsigned int vera_layer_mode_bitmap::color_depth#4 -char vera_layer_mode_bitmap::config -char vera_layer_mode_bitmap::config#0 -char vera_layer_mode_bitmap::config#1 -char vera_layer_mode_bitmap::config#10 -char vera_layer_mode_bitmap::config#11 -char vera_layer_mode_bitmap::config#12 -char vera_layer_mode_bitmap::config#13 -char vera_layer_mode_bitmap::config#14 -char vera_layer_mode_bitmap::config#15 -char vera_layer_mode_bitmap::config#16 -char vera_layer_mode_bitmap::config#17 -char vera_layer_mode_bitmap::config#18 -char vera_layer_mode_bitmap::config#19 -char vera_layer_mode_bitmap::config#2 -char vera_layer_mode_bitmap::config#3 -char vera_layer_mode_bitmap::config#4 -char vera_layer_mode_bitmap::config#5 -char vera_layer_mode_bitmap::config#6 -char vera_layer_mode_bitmap::config#7 -char vera_layer_mode_bitmap::config#8 -char vera_layer_mode_bitmap::config#9 -char vera_layer_mode_bitmap::layer -char vera_layer_mode_bitmap::layer#0 -char vera_layer_mode_bitmap::layer#1 -char vera_layer_mode_bitmap::layer#10 -char vera_layer_mode_bitmap::layer#11 -char vera_layer_mode_bitmap::layer#12 -char vera_layer_mode_bitmap::layer#13 -char vera_layer_mode_bitmap::layer#14 -char vera_layer_mode_bitmap::layer#15 -char vera_layer_mode_bitmap::layer#16 -char vera_layer_mode_bitmap::layer#2 -char vera_layer_mode_bitmap::layer#3 -char vera_layer_mode_bitmap::layer#4 -char vera_layer_mode_bitmap::layer#5 -char vera_layer_mode_bitmap::layer#6 -char vera_layer_mode_bitmap::layer#7 -char vera_layer_mode_bitmap::layer#8 -char vera_layer_mode_bitmap::layer#9 -unsigned int vera_layer_mode_bitmap::mapwidth -unsigned int vera_layer_mode_bitmap::mapwidth#0 -unsigned int vera_layer_mode_bitmap::mapwidth#1 -unsigned int vera_layer_mode_bitmap::mapwidth#10 -unsigned int vera_layer_mode_bitmap::mapwidth#2 -unsigned int vera_layer_mode_bitmap::mapwidth#3 -unsigned int vera_layer_mode_bitmap::mapwidth#4 -unsigned int vera_layer_mode_bitmap::mapwidth#5 -unsigned int vera_layer_mode_bitmap::mapwidth#6 -unsigned int vera_layer_mode_bitmap::mapwidth#7 -unsigned int vera_layer_mode_bitmap::mapwidth#8 -unsigned int vera_layer_mode_bitmap::mapwidth#9 -char vera_layer_mode_bitmap::tilebase -char vera_layer_mode_bitmap::tilebase#0 -char vera_layer_mode_bitmap::tilebase#1 -char vera_layer_mode_bitmap::tilebase#10 -char vera_layer_mode_bitmap::tilebase#2 -char vera_layer_mode_bitmap::tilebase#3 -char vera_layer_mode_bitmap::tilebase#4 -char vera_layer_mode_bitmap::tilebase#5 -char vera_layer_mode_bitmap::tilebase#6 -char vera_layer_mode_bitmap::tilebase#7 -char vera_layer_mode_bitmap::tilebase#8 -char vera_layer_mode_bitmap::tilebase#9 -void vera_layer_mode_text(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , unsigned int color_mode) -unsigned int vera_layer_mode_text::color_mode -unsigned int vera_layer_mode_text::color_mode#0 -unsigned int vera_layer_mode_text::color_mode#1 -unsigned int vera_layer_mode_text::color_mode#2 -unsigned int vera_layer_mode_text::color_mode#3 -char vera_layer_mode_text::layer -char vera_layer_mode_text::layer#0 -char vera_layer_mode_text::layer#1 -char vera_layer_mode_text::layer#2 -char vera_layer_mode_text::layer#3 -char vera_layer_mode_text::layer#4 -char vera_layer_mode_text::layer#5 -unsigned long vera_layer_mode_text::mapbase_address -unsigned long vera_layer_mode_text::mapbase_address#0 -unsigned long vera_layer_mode_text::mapbase_address#1 -unsigned int vera_layer_mode_text::mapheight -unsigned int vera_layer_mode_text::mapheight#0 -unsigned int vera_layer_mode_text::mapheight#1 -unsigned int vera_layer_mode_text::mapwidth -unsigned int vera_layer_mode_text::mapwidth#0 -unsigned int vera_layer_mode_text::mapwidth#1 -unsigned long vera_layer_mode_text::tilebase_address -unsigned long vera_layer_mode_text::tilebase_address#0 -unsigned long vera_layer_mode_text::tilebase_address#1 -char vera_layer_mode_text::tileheight -char vera_layer_mode_text::tileheight#0 -char vera_layer_mode_text::tileheight#1 -char vera_layer_mode_text::tilewidth -char vera_layer_mode_text::tilewidth#0 -char vera_layer_mode_text::tilewidth#1 -void vera_layer_mode_tile(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , char color_depth) -unsigned int vera_layer_mode_tile::$1 -char vera_layer_mode_tile::$11 -char vera_layer_mode_tile::$12 -char vera_layer_mode_tile::$13 -char vera_layer_mode_tile::$14 -char vera_layer_mode_tile::$15 -char vera_layer_mode_tile::$16 -char vera_layer_mode_tile::$17 -char vera_layer_mode_tile::$18 -char vera_layer_mode_tile::$2 -unsigned long vera_layer_mode_tile::$3 -unsigned int vera_layer_mode_tile::$6 -char vera_layer_mode_tile::$7 -unsigned long vera_layer_mode_tile::$8 -char vera_layer_mode_tile::color_depth -char vera_layer_mode_tile::color_depth#0 -char vera_layer_mode_tile::color_depth#1 -char vera_layer_mode_tile::color_depth#2 -char vera_layer_mode_tile::color_depth#3 -char vera_layer_mode_tile::color_depth#4 -char vera_layer_mode_tile::color_depth#5 -char vera_layer_mode_tile::config -char vera_layer_mode_tile::config#0 -char vera_layer_mode_tile::config#1 -char vera_layer_mode_tile::config#10 -char vera_layer_mode_tile::config#11 -char vera_layer_mode_tile::config#12 -char vera_layer_mode_tile::config#13 -char vera_layer_mode_tile::config#14 -char vera_layer_mode_tile::config#15 -char vera_layer_mode_tile::config#16 -char vera_layer_mode_tile::config#17 -char vera_layer_mode_tile::config#18 -char vera_layer_mode_tile::config#19 -char vera_layer_mode_tile::config#2 -char vera_layer_mode_tile::config#20 -char vera_layer_mode_tile::config#21 -char vera_layer_mode_tile::config#22 -char vera_layer_mode_tile::config#23 -char vera_layer_mode_tile::config#24 -char vera_layer_mode_tile::config#25 -char vera_layer_mode_tile::config#26 -char vera_layer_mode_tile::config#27 -char vera_layer_mode_tile::config#28 -char vera_layer_mode_tile::config#29 -char vera_layer_mode_tile::config#3 -char vera_layer_mode_tile::config#30 -char vera_layer_mode_tile::config#31 -char vera_layer_mode_tile::config#32 -char vera_layer_mode_tile::config#33 -char vera_layer_mode_tile::config#34 -char vera_layer_mode_tile::config#35 -char vera_layer_mode_tile::config#36 -char vera_layer_mode_tile::config#4 -char vera_layer_mode_tile::config#5 -char vera_layer_mode_tile::config#6 -char vera_layer_mode_tile::config#7 -char vera_layer_mode_tile::config#8 -char vera_layer_mode_tile::config#9 -char vera_layer_mode_tile::layer -char vera_layer_mode_tile::layer#0 -char vera_layer_mode_tile::layer#1 -char vera_layer_mode_tile::layer#10 -char vera_layer_mode_tile::layer#11 -char vera_layer_mode_tile::layer#12 -char vera_layer_mode_tile::layer#13 -char vera_layer_mode_tile::layer#14 -char vera_layer_mode_tile::layer#15 -char vera_layer_mode_tile::layer#16 -char vera_layer_mode_tile::layer#17 -char vera_layer_mode_tile::layer#18 -char vera_layer_mode_tile::layer#19 -char vera_layer_mode_tile::layer#2 -char vera_layer_mode_tile::layer#20 -char vera_layer_mode_tile::layer#21 -char vera_layer_mode_tile::layer#22 -char vera_layer_mode_tile::layer#23 -char vera_layer_mode_tile::layer#24 -char vera_layer_mode_tile::layer#25 -char vera_layer_mode_tile::layer#26 -char vera_layer_mode_tile::layer#27 -char vera_layer_mode_tile::layer#28 -char vera_layer_mode_tile::layer#29 -char vera_layer_mode_tile::layer#3 -char vera_layer_mode_tile::layer#30 -char vera_layer_mode_tile::layer#31 -char vera_layer_mode_tile::layer#32 -char vera_layer_mode_tile::layer#33 -char vera_layer_mode_tile::layer#34 -char vera_layer_mode_tile::layer#35 -char vera_layer_mode_tile::layer#36 -char vera_layer_mode_tile::layer#4 -char vera_layer_mode_tile::layer#5 -char vera_layer_mode_tile::layer#6 -char vera_layer_mode_tile::layer#7 -char vera_layer_mode_tile::layer#8 -char vera_layer_mode_tile::layer#9 -char vera_layer_mode_tile::mapbase -char vera_layer_mode_tile::mapbase#0 -unsigned long vera_layer_mode_tile::mapbase_address -unsigned long vera_layer_mode_tile::mapbase_address#0 -unsigned long vera_layer_mode_tile::mapbase_address#1 -unsigned long vera_layer_mode_tile::mapbase_address#10 -unsigned long vera_layer_mode_tile::mapbase_address#11 -unsigned long vera_layer_mode_tile::mapbase_address#12 -unsigned long vera_layer_mode_tile::mapbase_address#13 -unsigned long vera_layer_mode_tile::mapbase_address#14 -unsigned long vera_layer_mode_tile::mapbase_address#15 -unsigned long vera_layer_mode_tile::mapbase_address#16 -unsigned long vera_layer_mode_tile::mapbase_address#17 -unsigned long vera_layer_mode_tile::mapbase_address#18 -unsigned long vera_layer_mode_tile::mapbase_address#19 -unsigned long vera_layer_mode_tile::mapbase_address#2 -unsigned long vera_layer_mode_tile::mapbase_address#20 -unsigned long vera_layer_mode_tile::mapbase_address#21 -unsigned long vera_layer_mode_tile::mapbase_address#22 -unsigned long vera_layer_mode_tile::mapbase_address#23 -unsigned long vera_layer_mode_tile::mapbase_address#24 -unsigned long vera_layer_mode_tile::mapbase_address#25 -unsigned long vera_layer_mode_tile::mapbase_address#26 -unsigned long vera_layer_mode_tile::mapbase_address#27 -unsigned long vera_layer_mode_tile::mapbase_address#28 -unsigned long vera_layer_mode_tile::mapbase_address#3 -unsigned long vera_layer_mode_tile::mapbase_address#4 -unsigned long vera_layer_mode_tile::mapbase_address#5 -unsigned long vera_layer_mode_tile::mapbase_address#6 -unsigned long vera_layer_mode_tile::mapbase_address#7 -unsigned long vera_layer_mode_tile::mapbase_address#8 -unsigned long vera_layer_mode_tile::mapbase_address#9 -unsigned int vera_layer_mode_tile::mapheight -unsigned int vera_layer_mode_tile::mapheight#0 -unsigned int vera_layer_mode_tile::mapheight#1 -unsigned int vera_layer_mode_tile::mapheight#10 -unsigned int vera_layer_mode_tile::mapheight#11 -unsigned int vera_layer_mode_tile::mapheight#12 -unsigned int vera_layer_mode_tile::mapheight#13 -unsigned int vera_layer_mode_tile::mapheight#14 -unsigned int vera_layer_mode_tile::mapheight#15 -unsigned int vera_layer_mode_tile::mapheight#16 -unsigned int vera_layer_mode_tile::mapheight#17 -unsigned int vera_layer_mode_tile::mapheight#18 -unsigned int vera_layer_mode_tile::mapheight#19 -unsigned int vera_layer_mode_tile::mapheight#2 -unsigned int vera_layer_mode_tile::mapheight#20 -unsigned int vera_layer_mode_tile::mapheight#21 -unsigned int vera_layer_mode_tile::mapheight#3 -unsigned int vera_layer_mode_tile::mapheight#4 -unsigned int vera_layer_mode_tile::mapheight#5 -unsigned int vera_layer_mode_tile::mapheight#6 -unsigned int vera_layer_mode_tile::mapheight#7 -unsigned int vera_layer_mode_tile::mapheight#8 -unsigned int vera_layer_mode_tile::mapheight#9 -unsigned int vera_layer_mode_tile::mapwidth -unsigned int vera_layer_mode_tile::mapwidth#0 -unsigned int vera_layer_mode_tile::mapwidth#1 -unsigned int vera_layer_mode_tile::mapwidth#10 -unsigned int vera_layer_mode_tile::mapwidth#11 -unsigned int vera_layer_mode_tile::mapwidth#12 -unsigned int vera_layer_mode_tile::mapwidth#13 -unsigned int vera_layer_mode_tile::mapwidth#2 -unsigned int vera_layer_mode_tile::mapwidth#3 -unsigned int vera_layer_mode_tile::mapwidth#4 -unsigned int vera_layer_mode_tile::mapwidth#5 -unsigned int vera_layer_mode_tile::mapwidth#6 -unsigned int vera_layer_mode_tile::mapwidth#7 -unsigned int vera_layer_mode_tile::mapwidth#8 -unsigned int vera_layer_mode_tile::mapwidth#9 -char vera_layer_mode_tile::tilebase -char vera_layer_mode_tile::tilebase#0 -char vera_layer_mode_tile::tilebase#1 -char vera_layer_mode_tile::tilebase#10 -char vera_layer_mode_tile::tilebase#11 -char vera_layer_mode_tile::tilebase#12 -char vera_layer_mode_tile::tilebase#13 -char vera_layer_mode_tile::tilebase#2 -char vera_layer_mode_tile::tilebase#3 -char vera_layer_mode_tile::tilebase#4 -char vera_layer_mode_tile::tilebase#5 -char vera_layer_mode_tile::tilebase#6 -char vera_layer_mode_tile::tilebase#7 -char vera_layer_mode_tile::tilebase#8 -char vera_layer_mode_tile::tilebase#9 -unsigned long vera_layer_mode_tile::tilebase_address -unsigned long vera_layer_mode_tile::tilebase_address#0 -unsigned long vera_layer_mode_tile::tilebase_address#1 -unsigned long vera_layer_mode_tile::tilebase_address#10 -unsigned long vera_layer_mode_tile::tilebase_address#11 -unsigned long vera_layer_mode_tile::tilebase_address#12 -unsigned long vera_layer_mode_tile::tilebase_address#13 -unsigned long vera_layer_mode_tile::tilebase_address#14 -unsigned long vera_layer_mode_tile::tilebase_address#15 -unsigned long vera_layer_mode_tile::tilebase_address#16 -unsigned long vera_layer_mode_tile::tilebase_address#17 -unsigned long vera_layer_mode_tile::tilebase_address#18 -unsigned long vera_layer_mode_tile::tilebase_address#19 -unsigned long vera_layer_mode_tile::tilebase_address#2 -unsigned long vera_layer_mode_tile::tilebase_address#20 -unsigned long vera_layer_mode_tile::tilebase_address#21 -unsigned long vera_layer_mode_tile::tilebase_address#22 -unsigned long vera_layer_mode_tile::tilebase_address#23 -unsigned long vera_layer_mode_tile::tilebase_address#24 -unsigned long vera_layer_mode_tile::tilebase_address#25 -unsigned long vera_layer_mode_tile::tilebase_address#26 -unsigned long vera_layer_mode_tile::tilebase_address#27 -unsigned long vera_layer_mode_tile::tilebase_address#28 -unsigned long vera_layer_mode_tile::tilebase_address#29 -unsigned long vera_layer_mode_tile::tilebase_address#3 -unsigned long vera_layer_mode_tile::tilebase_address#4 -unsigned long vera_layer_mode_tile::tilebase_address#5 -unsigned long vera_layer_mode_tile::tilebase_address#6 -unsigned long vera_layer_mode_tile::tilebase_address#7 -unsigned long vera_layer_mode_tile::tilebase_address#8 -unsigned long vera_layer_mode_tile::tilebase_address#9 -char vera_layer_mode_tile::tileheight -char vera_layer_mode_tile::tileheight#0 -char vera_layer_mode_tile::tileheight#1 -char vera_layer_mode_tile::tileheight#10 -char vera_layer_mode_tile::tileheight#11 -char vera_layer_mode_tile::tileheight#12 -char vera_layer_mode_tile::tileheight#13 -char vera_layer_mode_tile::tileheight#14 -char vera_layer_mode_tile::tileheight#15 -char vera_layer_mode_tile::tileheight#16 -char vera_layer_mode_tile::tileheight#17 -char vera_layer_mode_tile::tileheight#18 -char vera_layer_mode_tile::tileheight#19 -char vera_layer_mode_tile::tileheight#2 -char vera_layer_mode_tile::tileheight#20 -char vera_layer_mode_tile::tileheight#21 -char vera_layer_mode_tile::tileheight#22 -char vera_layer_mode_tile::tileheight#23 -char vera_layer_mode_tile::tileheight#24 -char vera_layer_mode_tile::tileheight#25 -char vera_layer_mode_tile::tileheight#26 -char vera_layer_mode_tile::tileheight#27 -char vera_layer_mode_tile::tileheight#28 -char vera_layer_mode_tile::tileheight#29 -char vera_layer_mode_tile::tileheight#3 -char vera_layer_mode_tile::tileheight#30 -char vera_layer_mode_tile::tileheight#31 -char vera_layer_mode_tile::tileheight#32 -char vera_layer_mode_tile::tileheight#33 -char vera_layer_mode_tile::tileheight#4 -char vera_layer_mode_tile::tileheight#5 -char vera_layer_mode_tile::tileheight#6 -char vera_layer_mode_tile::tileheight#7 -char vera_layer_mode_tile::tileheight#8 -char vera_layer_mode_tile::tileheight#9 -char vera_layer_mode_tile::tilewidth -char vera_layer_mode_tile::tilewidth#0 -char vera_layer_mode_tile::tilewidth#1 -char vera_layer_mode_tile::tilewidth#10 -char vera_layer_mode_tile::tilewidth#11 -char vera_layer_mode_tile::tilewidth#12 -char vera_layer_mode_tile::tilewidth#13 -char vera_layer_mode_tile::tilewidth#14 -char vera_layer_mode_tile::tilewidth#15 -char vera_layer_mode_tile::tilewidth#16 -char vera_layer_mode_tile::tilewidth#17 -char vera_layer_mode_tile::tilewidth#18 -char vera_layer_mode_tile::tilewidth#19 -char vera_layer_mode_tile::tilewidth#2 -char vera_layer_mode_tile::tilewidth#20 -char vera_layer_mode_tile::tilewidth#21 -char vera_layer_mode_tile::tilewidth#22 -char vera_layer_mode_tile::tilewidth#23 -char vera_layer_mode_tile::tilewidth#24 -char vera_layer_mode_tile::tilewidth#25 -char vera_layer_mode_tile::tilewidth#26 -char vera_layer_mode_tile::tilewidth#27 -char vera_layer_mode_tile::tilewidth#28 -char vera_layer_mode_tile::tilewidth#29 -char vera_layer_mode_tile::tilewidth#3 -char vera_layer_mode_tile::tilewidth#4 -char vera_layer_mode_tile::tilewidth#5 -char vera_layer_mode_tile::tilewidth#6 -char vera_layer_mode_tile::tilewidth#7 -char vera_layer_mode_tile::tilewidth#8 -char vera_layer_mode_tile::tilewidth#9 -__constant char vera_layer_rowshift[2] = { 0, 0 } -__constant unsigned int vera_layer_rowskip[2] = { 0, 0 } -char vera_layer_set_backcolor(char layer , char color) -char vera_layer_set_backcolor::color -char vera_layer_set_backcolor::color#0 -char vera_layer_set_backcolor::color#1 -char vera_layer_set_backcolor::color#2 -char vera_layer_set_backcolor::color#3 -char vera_layer_set_backcolor::color#4 -char vera_layer_set_backcolor::layer -char vera_layer_set_backcolor::layer#0 -char vera_layer_set_backcolor::layer#1 -char vera_layer_set_backcolor::layer#2 -char vera_layer_set_backcolor::layer#3 -char vera_layer_set_backcolor::layer#4 -char vera_layer_set_backcolor::old -char vera_layer_set_backcolor::old#0 -char vera_layer_set_backcolor::return -char vera_layer_set_backcolor::return#0 -char vera_layer_set_backcolor::return#1 -char vera_layer_set_backcolor::return#2 -char vera_layer_set_backcolor::return#3 -char vera_layer_set_backcolor::return#4 -char vera_layer_set_backcolor::return#5 -char vera_layer_set_backcolor::return#6 -void vera_layer_set_config(char layer , char config) -char vera_layer_set_config::$0 -char *vera_layer_set_config::addr -char *vera_layer_set_config::addr#0 -char vera_layer_set_config::config -char vera_layer_set_config::config#0 -char vera_layer_set_config::config#1 -char vera_layer_set_config::config#2 -char vera_layer_set_config::layer -char vera_layer_set_config::layer#0 -char vera_layer_set_config::layer#1 -char vera_layer_set_config::layer#2 -void vera_layer_set_mapbase(char layer , char mapbase) -char vera_layer_set_mapbase::$0 -char *vera_layer_set_mapbase::addr -char *vera_layer_set_mapbase::addr#0 -char vera_layer_set_mapbase::layer -char vera_layer_set_mapbase::layer#0 -char vera_layer_set_mapbase::layer#1 -char vera_layer_set_mapbase::layer#2 -char vera_layer_set_mapbase::layer#3 -char vera_layer_set_mapbase::mapbase -char vera_layer_set_mapbase::mapbase#0 -char vera_layer_set_mapbase::mapbase#1 -char vera_layer_set_mapbase::mapbase#2 -char vera_layer_set_mapbase::mapbase#3 -void vera_layer_set_text_color_mode(char layer , char color_mode) -char vera_layer_set_text_color_mode::$0 -char *vera_layer_set_text_color_mode::addr -char *vera_layer_set_text_color_mode::addr#0 -char vera_layer_set_text_color_mode::color_mode -char vera_layer_set_text_color_mode::color_mode#0 -char vera_layer_set_text_color_mode::color_mode#1 -char vera_layer_set_text_color_mode::color_mode#2 -char vera_layer_set_text_color_mode::layer -char vera_layer_set_text_color_mode::layer#0 -char vera_layer_set_text_color_mode::layer#1 -char vera_layer_set_text_color_mode::layer#2 -char vera_layer_set_textcolor(char layer , char color) -char vera_layer_set_textcolor::color -char vera_layer_set_textcolor::color#0 -char vera_layer_set_textcolor::color#1 -char vera_layer_set_textcolor::color#2 -char vera_layer_set_textcolor::color#3 -char vera_layer_set_textcolor::color#4 -char vera_layer_set_textcolor::color#5 -char vera_layer_set_textcolor::color#6 -char vera_layer_set_textcolor::layer -char vera_layer_set_textcolor::layer#0 -char vera_layer_set_textcolor::layer#1 -char vera_layer_set_textcolor::layer#2 -char vera_layer_set_textcolor::layer#3 -char vera_layer_set_textcolor::layer#4 -char vera_layer_set_textcolor::layer#5 -char vera_layer_set_textcolor::layer#6 -char vera_layer_set_textcolor::old -char vera_layer_set_textcolor::old#0 -char vera_layer_set_textcolor::return -char vera_layer_set_textcolor::return#0 -char vera_layer_set_textcolor::return#1 -char vera_layer_set_textcolor::return#2 -char vera_layer_set_textcolor::return#3 -char vera_layer_set_textcolor::return#4 -char vera_layer_set_textcolor::return#5 -char vera_layer_set_textcolor::return#6 -char vera_layer_set_textcolor::return#7 -char vera_layer_set_textcolor::return#8 -void vera_layer_set_tilebase(char layer , char tilebase) -char vera_layer_set_tilebase::$0 -char *vera_layer_set_tilebase::addr -char *vera_layer_set_tilebase::addr#0 -char vera_layer_set_tilebase::layer -char vera_layer_set_tilebase::layer#0 -char vera_layer_set_tilebase::layer#1 -char vera_layer_set_tilebase::layer#2 -char vera_layer_set_tilebase::tilebase -char vera_layer_set_tilebase::tilebase#0 -char vera_layer_set_tilebase::tilebase#1 -char vera_layer_set_tilebase::tilebase#2 -__constant char vera_layer_textcolor[2] = { WHITE, WHITE } -__constant char *vera_layer_tilebase[2] = { VERA_L0_TILEBASE, VERA_L1_TILEBASE } -__constant unsigned long vera_mapbase_address[2] = { 0, 0 } -__constant char vera_mapbase_bank[2] = { 0, 0 } -__constant unsigned int vera_mapbase_offset[2] = { 0, 0 } -__constant unsigned long vera_tilebase_address[2] = { 0, 0 } -__constant char vera_tilebase_bank[2] = { 0, 0 } -__constant unsigned int vera_tilebase_offset[2] = { 0, 0 } - -Adding number conversion cast (unumber) 4 in clrscr::$1 = clrscr::$0 << 4 -Adding number conversion cast (unumber) 0 in conio_cursor_x[conio_screen_layer] = 0 -Adding number conversion cast (unumber) 0 in conio_cursor_y[conio_screen_layer] = 0 -Adding number conversion cast (unumber) 0 in conio_line_text[clrscr::$9] = 0 -Adding number conversion cast (unumber) 0 in gotoxy::y#0 = 0 -Adding number conversion cast (unumber) 0 in gotoxy::x#0 = 0 -Adding number conversion cast (unumber) 7 in screensize::hscale#0 = *VERA_DC_HSCALE >> 7 -Adding number conversion cast (unumber) $28 in screensize::$1 = $28 << screensize::hscale#0 -Adding number conversion cast (unumber) screensize::$1 in screensize::$1 = (unumber)$28 << screensize::hscale#0 -Adding number conversion cast (unumber) 7 in screensize::vscale#0 = *VERA_DC_VSCALE >> 7 -Adding number conversion cast (unumber) $1e in screensize::$3 = $1e << screensize::vscale#0 -Adding number conversion cast (unumber) screensize::$3 in screensize::$3 = (unumber)$1e << screensize::vscale#0 -Adding number conversion cast (unumber) 1 in cputc::$2 = conio_cursor_x[conio_screen_layer] << 1 -Adding number conversion cast (unumber) 0 in cputc::$17 = 0 != cputc::scroll_enable#0 -Adding number conversion cast (unumber) 0 in conio_cursor_x[conio_screen_layer] = 0 -Adding number conversion cast (unumber) 0 in vera_layer_get_color::$4 = 0 != vera_layer_get_color::$0 -Adding number conversion cast (unumber) 4 in vera_layer_get_color::$1 = vera_layer_backcolor[vera_layer_get_color::layer#4] << 4 -Adding number conversion cast (unumber) 1 in if(vera_layer_mode_tile::color_depth#2==1) goto vera_layer_mode_tile::@4 -Adding number conversion cast (unumber) 2 in if(vera_layer_mode_tile::color_depth#3==2) goto vera_layer_mode_tile::@5 -Adding number conversion cast (unumber) 4 in if(vera_layer_mode_tile::color_depth#4==4) goto vera_layer_mode_tile::@6 -Adding number conversion cast (unumber) 8 in if(vera_layer_mode_tile::color_depth#5==8) goto vera_layer_mode_tile::@7 -Adding number conversion cast (unumber) $20 in if(vera_layer_mode_tile::mapwidth#2==$20) goto vera_layer_mode_tile::@12 -Adding number conversion cast (unumber) 6 in vera_layer_rowshift[vera_layer_mode_tile::layer#2] = 6 -Adding number conversion cast (unumber) $40 in vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 -Adding number conversion cast (unumber) $40 in if(vera_layer_mode_tile::mapwidth#3==$40) goto vera_layer_mode_tile::@13 -Adding number conversion cast (unumber) 7 in vera_layer_rowshift[vera_layer_mode_tile::layer#3] = 7 -Adding number conversion cast (unumber) $80 in vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 -Adding number conversion cast (unumber) $80 in if(vera_layer_mode_tile::mapwidth#4==$80) goto vera_layer_mode_tile::@14 -Adding number conversion cast (unumber) 8 in vera_layer_rowshift[vera_layer_mode_tile::layer#4] = 8 -Adding number conversion cast (unumber) $100 in vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 -Adding number conversion cast (unumber) $100 in if(vera_layer_mode_tile::mapwidth#5==$100) goto vera_layer_mode_tile::@15 -Adding number conversion cast (unumber) 9 in vera_layer_rowshift[vera_layer_mode_tile::layer#5] = 9 -Adding number conversion cast (unumber) $200 in vera_layer_rowskip[vera_layer_mode_tile::$14] = $200 -Adding number conversion cast (unumber) $20 in if(vera_layer_mode_tile::mapheight#2==$20) goto vera_layer_mode_tile::@20 -Adding number conversion cast (unumber) $40 in if(vera_layer_mode_tile::mapheight#3==$40) goto vera_layer_mode_tile::@21 -Adding number conversion cast (unumber) $80 in if(vera_layer_mode_tile::mapheight#4==$80) goto vera_layer_mode_tile::@22 -Adding number conversion cast (unumber) $100 in if(vera_layer_mode_tile::mapheight#5==$100) goto vera_layer_mode_tile::@23 -Adding number conversion cast (unumber) 1 in vera_layer_mode_tile::$3 = vera_layer_mode_tile::mapbase_address#3 >> 1 -Adding number conversion cast (unumber) 1 in vera_layer_mode_tile::$8 = vera_layer_mode_tile::tilebase_address#3 >> 1 -Adding number conversion cast (unumber) 8 in if(vera_layer_mode_tile::tilewidth#2==8) goto vera_layer_mode_tile::@26 -Adding number conversion cast (unumber) $10 in if(vera_layer_mode_tile::tilewidth#3==$10) goto vera_layer_mode_tile::@27 -Adding number conversion cast (unumber) 8 in if(vera_layer_mode_tile::tileheight#2==8) goto vera_layer_mode_tile::@30 -Adding number conversion cast (unumber) $10 in if(vera_layer_mode_tile::tileheight#3==$10) goto vera_layer_mode_tile::@31 -Adding number conversion cast (unumber) 1 in vera_layer_mode_tile::color_depth#0 = 1 -Adding number conversion cast (unumber) $10 in if(vera_layer_mode_text::color_mode#1==$10) goto vera_layer_mode_text::@2 -Adding number conversion cast (unumber) $100 in if(vera_layer_mode_text::color_mode#2==$100) goto vera_layer_mode_text::@3 -Adding number conversion cast (unumber) 1 in if(vera_layer_mode_bitmap::color_depth#1==1) goto vera_layer_mode_bitmap::@4 -Adding number conversion cast (unumber) 2 in if(vera_layer_mode_bitmap::color_depth#2==2) goto vera_layer_mode_bitmap::@5 -Adding number conversion cast (unumber) 4 in if(vera_layer_mode_bitmap::color_depth#3==4) goto vera_layer_mode_bitmap::@6 -Adding number conversion cast (unumber) 8 in if(vera_layer_mode_bitmap::color_depth#4==8) goto vera_layer_mode_bitmap::@7 -Adding number conversion cast (unumber) 1 in vera_layer_mode_bitmap::$3 = vera_layer_mode_bitmap::bitmap_address#2 >> 1 -Adding number conversion cast (unumber) $140 in if(vera_layer_mode_bitmap::mapwidth#1==$140) goto vera_layer_mode_bitmap::vera_display_set_scale_double1 -Adding number conversion cast (unumber) $40 in *VERA_DC_HSCALE = $40 -Adding number conversion cast (unumber) $40 in *VERA_DC_VSCALE = $40 -Adding number conversion cast (unumber) $280 in if(vera_layer_mode_bitmap::mapwidth#2==$280) goto vera_layer_mode_bitmap::vera_display_set_scale_none1 -Adding number conversion cast (unumber) $80 in *VERA_DC_HSCALE = $80 -Adding number conversion cast (unumber) $80 in *VERA_DC_VSCALE = $80 -Adding number conversion cast (unumber) 1 in vera_layer_mode_text::layer#0 = 1 -Adding number conversion cast (unumber) $80 in vera_layer_mode_text::mapwidth#0 = $80 -Adding number conversion cast (unumber) $40 in vera_layer_mode_text::mapheight#0 = $40 -Adding number conversion cast (unumber) 8 in vera_layer_mode_text::tilewidth#0 = 8 -Adding number conversion cast (unumber) 8 in vera_layer_mode_text::tileheight#0 = 8 -Adding number conversion cast (unumber) $10 in vera_layer_mode_text::color_mode#0 = $10 -Adding number conversion cast (unumber) 1 in screenlayer::layer#0 = 1 -Adding number conversion cast (unumber) 1 in vera_layer_set_textcolor::layer#0 = 1 -Adding number conversion cast (unumber) 1 in vera_layer_set_backcolor::layer#0 = 1 -Adding number conversion cast (unumber) 0 in vera_layer_set_mapbase::layer#1 = 0 -Adding number conversion cast (unumber) $20 in vera_layer_set_mapbase::mapbase#1 = $20 -Adding number conversion cast (unumber) 1 in vera_layer_set_mapbase::layer#2 = 1 -Adding number conversion cast (unumber) 0 in vera_layer_set_mapbase::mapbase#2 = 0 -Adding number conversion cast (unumber) 0 in gotoxy::x#1 = 0 -Adding number conversion cast (unumber) 1 in conio_x16_init::$9 = conio_screen_height - 1 -Adding number conversion cast (unumber) conio_x16_init::$9 in conio_x16_init::$9 = conio_screen_height - (unumber)1 -Adding number conversion cast (unumber) 0 in conio_cursor_x[conio_screen_layer] = 0 -Adding number conversion cast (unumber) 2 in insertup::width#0 = conio_screen_width * 2 -Adding number conversion cast (unumber) 1 in insertup::$3 = insertup::i#3 - 1 -Adding number conversion cast (unumber) insertup::$3 in insertup::$3 = insertup::i#3 - (unumber)1 -Adding number conversion cast (unumber) 0 in memcpy_in_vram::dest_bank#0 = 0 -Adding number conversion cast (unumber) 0 in memcpy_in_vram::src_bank#0 = 0 -Adding number conversion cast (unumber) 0 in cscroll::$7 = 0 != conio_scroll_enable[conio_screen_layer] -Adding number conversion cast (unumber) 1 in cscroll::$5 = conio_screen_height - 1 -Adding number conversion cast (unumber) cscroll::$5 in cscroll::$5 = conio_screen_height - (unumber)1 -Adding number conversion cast (unumber) 0 in gotoxy::x#2 = 0 -Adding number conversion cast (unumber) 4 in screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 -Adding number conversion cast (unumber) 6 in screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 -Adding number conversion cast (unumber) 7 in rand::$0 = rand_state#13 << 7 -Adding number conversion cast (unumber) 9 in rand::$1 = rand_state#0 >> 9 -Adding number conversion cast (unumber) 8 in rand::$2 = rand_state#1 << 8 -Adding number conversion cast (unumber) 0 in printf_str::$2 = 0 != printf_str::$0 -Adding number conversion cast (unumber) 0 in bitmap_init::$5 = __bitmap_color_depth == 0 -Adding number conversion cast (unumber) 1 in bitmap_init::$8 = __bitmap_color_depth == 1 -Adding number conversion cast (unumber) 3 in bitmap_init::$7 = bitmap_init::x#2 >> 3 -Adding number conversion cast (snumber) 1 in bitmap_init::bitshift#1 = bitmap_init::bitshift#5 - 1 -Adding number conversion cast (unumber) 1 in bitmap_init::bitmask#1 = bitmap_init::bitmask#5 >> 1 -Adding number conversion cast (unumber) 2 in bitmap_init::$11 = __bitmap_color_depth == 2 -Adding number conversion cast (unumber) 2 in bitmap_init::$10 = bitmap_init::x#3 >> 2 -Adding number conversion cast (snumber) 2 in bitmap_init::bitshift#2 = bitmap_init::bitshift#6 - 2 -Adding number conversion cast (unumber) 2 in bitmap_init::bitmask#2 = bitmap_init::bitmask#6 >> 2 -Adding number conversion cast (unumber) 3 in bitmap_init::$14 = __bitmap_color_depth == 3 -Adding number conversion cast (unumber) 1 in bitmap_init::$13 = bitmap_init::x#4 >> 1 -Adding number conversion cast (snumber) 4 in bitmap_init::bitshift#3 = bitmap_init::bitshift#7 - 4 -Adding number conversion cast (unumber) 4 in bitmap_init::bitmask#3 = bitmap_init::bitmask#7 >> 4 -Adding number conversion cast (snumber) 0 in bitmap_init::$16 = bitmap_init::bitshift#8 < 0 -Adding number conversion cast (unumber) 0 in bitmap_init::$18 = bitmap_init::bitmask#9 == 0 -Adding number conversion cast (unumber) 2 in bitmap_init::$3 = __bitmap_color_depth << 2 -Adding number conversion cast (unumber) 2 in bitmap_clear::$0 = __bitmap_color_depth << 2 -Adding number conversion cast (unumber) 0 in memset_vram::data#0 = 0 -Adding number conversion cast (unumber) 0 in bitmap_plot::$11 = 0 != bitmap_plot::bitshift#0 -Adding number conversion cast (unumber) 0 in mul16u::$0 = mul16u::a#2 != 0 -Adding number conversion cast (unumber) 1 in mul16u::$1 = mul16u::a#3 & 1 -Adding number conversion cast (unumber) mul16u::$1 in mul16u::$1 = mul16u::a#3 & (unumber)1 -Adding number conversion cast (unumber) 0 in mul16u::$2 = mul16u::$1 != 0 -Adding number conversion cast (unumber) 1 in mul16u::$5 = mul16u::a#4 >> 1 -Adding number conversion cast (unumber) 1 in mul16u::$6 = mul16u::mb#2 << 1 -Adding number conversion cast (unumber) 1 in bitmap_line_xdyi::e#0 = bitmap_line_xdyi::yd#2 >> 1 -Adding number conversion cast (unumber) 1 in bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#2 + 1 -Adding number conversion cast (unumber) bitmap_line_xdyi::$6 in bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#2 + (unumber)1 -Adding number conversion cast (unumber) 1 in bitmap_line_xdyd::e#0 = bitmap_line_xdyd::yd#2 >> 1 -Adding number conversion cast (unumber) 1 in bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#2 + 1 -Adding number conversion cast (unumber) bitmap_line_xdyd::$6 in bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#2 + (unumber)1 -Adding number conversion cast (unumber) 1 in bitmap_line_ydxi::e#0 = bitmap_line_ydxi::xd#2 >> 1 -Adding number conversion cast (unumber) 1 in bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#2 + 1 -Adding number conversion cast (unumber) bitmap_line_ydxi::$6 in bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#2 + (unumber)1 -Adding number conversion cast (unumber) 1 in bitmap_line_ydxd::e#0 = bitmap_line_ydxd::xd#2 >> 1 -Adding number conversion cast (unumber) 1 in bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#2 + 1 -Adding number conversion cast (unumber) bitmap_line_ydxd::$6 in bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#2 + (unumber)1 -Adding number conversion cast (unumber) 1 in divr16u::$0 = divr16u::rem#4 << 1 -Adding number conversion cast (unumber) $80 in divr16u::$2 = divr16u::$1 & $80 -Adding number conversion cast (unumber) divr16u::$2 in divr16u::$2 = divr16u::$1 & (unumber)$80 -Adding number conversion cast (unumber) 0 in divr16u::$3 = divr16u::$2 != 0 -Adding number conversion cast (unumber) 1 in divr16u::$6 = divr16u::dividend#3 << 1 -Adding number conversion cast (unumber) 1 in divr16u::$7 = divr16u::quotient#3 << 1 -Adding number conversion cast (unumber) 1 in divr16u::$5 = divr16u::rem#6 | 1 -Adding number conversion cast (unumber) divr16u::$5 in divr16u::$5 = divr16u::rem#6 | (unumber)1 -Adding number conversion cast (unumber) 1 in memcpy_in_vram::dest_bank#1 = 1 -Adding number conversion cast (unumber) 0 in memcpy_in_vram::src_bank#1 = 0 -Adding number conversion cast (unumber) $100*8 in memcpy_in_vram::num#1 = $100*8 -Adding number conversion cast (unumber) 1 in vera_layer_mode_tile::layer#1 = 1 -Adding number conversion cast (unumber) $14000 in vera_layer_mode_tile::mapbase_address#2 = $14000 -Adding number conversion cast (unumber) $1f000 in vera_layer_mode_tile::tilebase_address#2 = $1f000 -Adding number conversion cast (unumber) $80 in vera_layer_mode_tile::mapwidth#1 = $80 -Adding number conversion cast (unumber) $40 in vera_layer_mode_tile::mapheight#1 = $40 -Adding number conversion cast (unumber) 8 in vera_layer_mode_tile::tilewidth#1 = 8 -Adding number conversion cast (unumber) 8 in vera_layer_mode_tile::tileheight#1 = 8 -Adding number conversion cast (unumber) 1 in vera_layer_mode_tile::color_depth#1 = 1 -Adding number conversion cast (unumber) 0 in vera_layer_mode_bitmap::layer#0 = 0 -Adding number conversion cast (unumber) $140 in vera_layer_mode_bitmap::mapwidth#0 = $140 -Adding number conversion cast (unumber) 8 in vera_layer_mode_bitmap::color_depth#0 = 8 -Adding number conversion cast (unumber) 1 in screenlayer::layer#1 = 1 -Adding number conversion cast (unumber) 0 in gotoxy::x#3 = 0 -Adding number conversion cast (unumber) $19 in gotoxy::y#3 = $19 -Adding number conversion cast (unumber) 0 in main::vera_layer_show1_layer#0 = 0 -Adding number conversion cast (unumber) 0 in bitmap_init::layer#0 = 0 -Adding number conversion cast (unumber) 0 in bitmap_init::address#0 = 0 -Adding number conversion cast (unumber) 0 in gotoxy::x#4 = 0 -Adding number conversion cast (unumber) $1d in gotoxy::y#4 = $1d -Adding number conversion cast (unumber) 0 in main::$48 = 0 != main::$30 -Adding number conversion cast (unumber) $140 in modr16u::divisor#0 = $140 -Adding number conversion cast (unumber) 0 in modr16u::rem#0 = 0 -Adding number conversion cast (unumber) $140 in modr16u::divisor#1 = $140 -Adding number conversion cast (unumber) 0 in modr16u::rem#1 = 0 -Adding number conversion cast (unumber) $c8 in modr16u::divisor#2 = $c8 -Adding number conversion cast (unumber) 0 in modr16u::rem#2 = 0 -Adding number conversion cast (unumber) $c8 in modr16u::divisor#3 = $c8 -Adding number conversion cast (unumber) 0 in modr16u::rem#3 = 0 -Adding number conversion cast (unumber) $ff in main::$41 = main::$40 & $ff -Adding number conversion cast (unumber) main::$41 in main::$41 = main::$40 & (unumber)$ff -Adding number conversion cast (unumber) 0 in gotoxy::x#5 = 0 -Adding number conversion cast (unumber) $1a in gotoxy::y#5 = $1a -Adding number conversion cast (unumber) 0 in gotoxy::x#6 = 0 -Adding number conversion cast (unumber) $1d in gotoxy::y#6 = $1d -Adding number conversion cast (unumber) 0 in main::$49 = 0 != main::$43 -Adding number conversion cast (unumber) 0 in bitmap_line::y0#1 = 0 -Adding number conversion cast (unumber) $c7 in bitmap_line::y1#1 = $c7 -Adding number conversion cast (unumber) $13f in main::$46 = main::x#1 > $13f -Adding number conversion cast (unumber) 1 in screenlayer::layer#2 = 1 -Adding number conversion cast (unumber) 0 in main::x#2 = 0 -Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast conio_cursor_x[conio_screen_layer] = (unumber)0 -Inlining cast conio_cursor_y[conio_screen_layer] = (unumber)0 -Inlining cast conio_line_text[clrscr::$9] = (unumber)0 -Inlining cast gotoxy::y#0 = (unumber)0 -Inlining cast gotoxy::x#0 = (unumber)0 -Inlining cast conio_cursor_x[conio_screen_layer] = (unumber)0 -Inlining cast vera_layer_rowshift[vera_layer_mode_tile::layer#2] = (unumber)6 -Inlining cast vera_layer_rowskip[vera_layer_mode_tile::$11] = (unumber)$40 -Inlining cast vera_layer_rowshift[vera_layer_mode_tile::layer#3] = (unumber)7 -Inlining cast vera_layer_rowskip[vera_layer_mode_tile::$12] = (unumber)$80 -Inlining cast vera_layer_rowshift[vera_layer_mode_tile::layer#4] = (unumber)8 -Inlining cast vera_layer_rowskip[vera_layer_mode_tile::$13] = (unumber)$100 -Inlining cast vera_layer_rowshift[vera_layer_mode_tile::layer#5] = (unumber)9 -Inlining cast vera_layer_rowskip[vera_layer_mode_tile::$14] = (unumber)$200 -Inlining cast vera_layer_mode_tile::color_depth#0 = (unumber)1 -Inlining cast *VERA_DC_HSCALE = (unumber)$40 -Inlining cast *VERA_DC_VSCALE = (unumber)$40 -Inlining cast *VERA_DC_HSCALE = (unumber)$80 -Inlining cast *VERA_DC_VSCALE = (unumber)$80 -Inlining cast vera_layer_mode_text::layer#0 = (unumber)1 -Inlining cast vera_layer_mode_text::mapwidth#0 = (unumber)$80 -Inlining cast vera_layer_mode_text::mapheight#0 = (unumber)$40 -Inlining cast vera_layer_mode_text::tilewidth#0 = (unumber)8 -Inlining cast vera_layer_mode_text::tileheight#0 = (unumber)8 -Inlining cast vera_layer_mode_text::color_mode#0 = (unumber)$10 -Inlining cast screenlayer::layer#0 = (unumber)1 -Inlining cast vera_layer_set_textcolor::layer#0 = (unumber)1 -Inlining cast vera_layer_set_backcolor::layer#0 = (unumber)1 -Inlining cast vera_layer_set_mapbase::layer#1 = (unumber)0 -Inlining cast vera_layer_set_mapbase::mapbase#1 = (unumber)$20 -Inlining cast vera_layer_set_mapbase::layer#2 = (unumber)1 -Inlining cast vera_layer_set_mapbase::mapbase#2 = (unumber)0 -Inlining cast gotoxy::x#1 = (unumber)0 -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 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 -Inlining cast memcpy_in_vram::num#1 = (unumber)$100*8 -Inlining cast vera_layer_mode_tile::layer#1 = (unumber)1 -Inlining cast vera_layer_mode_tile::mapbase_address#2 = (unumber)$14000 -Inlining cast vera_layer_mode_tile::tilebase_address#2 = (unumber)$1f000 -Inlining cast vera_layer_mode_tile::mapwidth#1 = (unumber)$80 -Inlining cast vera_layer_mode_tile::mapheight#1 = (unumber)$40 -Inlining cast vera_layer_mode_tile::tilewidth#1 = (unumber)8 -Inlining cast vera_layer_mode_tile::tileheight#1 = (unumber)8 -Inlining cast vera_layer_mode_tile::color_depth#1 = (unumber)1 -Inlining cast vera_layer_mode_bitmap::layer#0 = (unumber)0 -Inlining cast vera_layer_mode_bitmap::mapwidth#0 = (unumber)$140 -Inlining cast vera_layer_mode_bitmap::color_depth#0 = (unumber)8 -Inlining cast screenlayer::layer#1 = (unumber)1 -Inlining cast gotoxy::x#3 = (unumber)0 -Inlining cast gotoxy::y#3 = (unumber)$19 -Inlining cast main::vera_layer_show1_layer#0 = (unumber)0 -Inlining cast bitmap_init::layer#0 = (unumber)0 -Inlining cast bitmap_init::address#0 = (unumber)0 -Inlining cast gotoxy::x#4 = (unumber)0 -Inlining cast gotoxy::y#4 = (unumber)$1d -Inlining cast modr16u::divisor#0 = (unumber)$140 -Inlining cast modr16u::rem#0 = (unumber)0 -Inlining cast modr16u::divisor#1 = (unumber)$140 -Inlining cast modr16u::rem#1 = (unumber)0 -Inlining cast modr16u::divisor#2 = (unumber)$c8 -Inlining cast modr16u::rem#2 = (unumber)0 -Inlining cast modr16u::divisor#3 = (unumber)$c8 -Inlining cast modr16u::rem#3 = (unumber)0 -Inlining cast gotoxy::x#5 = (unumber)0 -Inlining cast gotoxy::y#5 = (unumber)$1a -Inlining cast gotoxy::x#6 = (unumber)0 -Inlining cast gotoxy::y#6 = (unumber)$1d -Inlining cast bitmap_line::y0#1 = (unumber)0 -Inlining cast bitmap_line::y1#1 = (unumber)$c7 -Inlining cast screenlayer::layer#2 = (unumber)1 -Inlining cast main::x#2 = (unumber)0 -Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (char *) 40736 -Simplifying constant pointer cast (char *) 40737 -Simplifying constant pointer cast (char *) 40738 -Simplifying constant pointer cast (char *) 40739 -Simplifying constant pointer cast (char *) 40740 -Simplifying constant pointer cast (char *) 40741 -Simplifying constant pointer cast (char *) 40745 -Simplifying constant pointer cast (char *) 40746 -Simplifying constant pointer cast (char *) 40747 -Simplifying constant pointer cast (char *) 40749 -Simplifying constant pointer cast (char *) 40750 -Simplifying constant pointer cast (char *) 40751 -Simplifying constant pointer cast (char *) 40756 -Simplifying constant pointer cast (char *) 40757 -Simplifying constant pointer cast (char *) 40758 -Simplifying constant pointer cast (char *) 0 -Simplifying constant pointer cast (char *) 650 -Simplifying constant pointer cast (char *) 65508 -Simplifying constant pointer cast (char *) 214 -Simplifying constant integer cast 4 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 7 -Simplifying constant integer cast $28 -Simplifying constant integer cast 7 -Simplifying constant integer cast $1e -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 4 -Simplifying constant integer cast 1 -Simplifying constant integer cast 2 -Simplifying constant integer cast 4 -Simplifying constant integer cast 8 -Simplifying constant integer cast $20 -Simplifying constant integer cast 6 -Simplifying constant integer cast $40 -Simplifying constant integer cast $40 -Simplifying constant integer cast 7 -Simplifying constant integer cast $80 -Simplifying constant integer cast $80 -Simplifying constant integer cast 8 -Simplifying constant integer cast $100 -Simplifying constant integer cast $100 -Simplifying constant integer cast 9 -Simplifying constant integer cast $200 -Simplifying constant integer cast $20 -Simplifying constant integer cast $40 -Simplifying constant integer cast $80 -Simplifying constant integer cast $100 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 8 -Simplifying constant integer cast $10 -Simplifying constant integer cast 8 -Simplifying constant integer cast $10 -Simplifying constant integer cast 1 -Simplifying constant integer cast $10 -Simplifying constant integer cast $100 -Simplifying constant integer cast 1 -Simplifying constant integer cast 2 -Simplifying constant integer cast 4 -Simplifying constant integer cast 8 -Simplifying constant integer cast 1 -Simplifying constant integer cast $140 -Simplifying constant integer cast $40 -Simplifying constant integer cast $40 -Simplifying constant integer cast $280 -Simplifying constant integer cast $80 -Simplifying constant integer cast $80 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast $f800 -Simplifying constant integer cast $80 -Simplifying constant integer cast $40 -Simplifying constant integer cast 8 -Simplifying constant integer cast 8 -Simplifying constant integer cast $10 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast $20 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 2 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 4 -Simplifying constant integer cast 6 -Simplifying constant integer cast 7 -Simplifying constant integer cast 9 -Simplifying constant integer cast 8 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 1 -Simplifying constant integer cast 3 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 2 -Simplifying constant integer cast 2 -Simplifying constant integer cast 2 -Simplifying constant integer cast 2 -Simplifying constant integer cast 3 -Simplifying constant integer cast 1 -Simplifying constant integer cast 4 -Simplifying constant integer cast 4 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 2 -Simplifying constant integer cast 2 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast $80 -Simplifying constant integer cast 0 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant pointer cast (char *) 61440 -Simplifying constant integer cast 0 -Simplifying constant pointer cast (char *) 63488 -Simplifying constant integer cast 1 -Simplifying constant integer cast $14000 -Simplifying constant integer cast $1f000 -Simplifying constant integer cast $80 -Simplifying constant integer cast $40 -Simplifying constant integer cast 8 -Simplifying constant integer cast 8 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast $140 -Simplifying constant integer cast 8 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast $19 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast $1d -Simplifying constant integer cast 0 -Simplifying constant integer cast $140 -Simplifying constant integer cast 0 -Simplifying constant integer cast $140 -Simplifying constant integer cast 0 -Simplifying constant integer cast $c8 -Simplifying constant integer cast 0 -Simplifying constant integer cast $c8 -Simplifying constant integer cast 0 -Simplifying constant integer cast $ff -Simplifying constant integer cast 0 -Simplifying constant integer cast $1a -Simplifying constant integer cast 0 -Simplifying constant integer cast $1d -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast $c7 -Simplifying constant integer cast $13f -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 7 -Finalized unsigned number type (char) $28 -Finalized unsigned number type (char) 7 -Finalized unsigned number type (char) $1e -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) $20 -Finalized unsigned number type (char) 6 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) 7 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (char) 9 -Finalized unsigned number type (unsigned int) $200 -Finalized unsigned number type (char) $20 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) $10 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) $10 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) $10 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (unsigned int) $140 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (unsigned int) $280 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) $10 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $20 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 6 -Finalized unsigned number type (char) 7 -Finalized unsigned number type (char) 9 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 3 -Finalized signed number type (signed char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized signed number type (signed char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 3 -Finalized unsigned number type (char) 1 -Finalized signed number type (signed char) 4 -Finalized unsigned number type (char) 4 -Finalized signed number type (signed char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (unsigned long) $14000 -Finalized unsigned number type (unsigned long) $1f000 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (unsigned int) $140 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $19 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $1d -Finalized unsigned number type (char) 0 -Finalized unsigned number type (unsigned int) $140 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (unsigned int) $140 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $c8 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $c8 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $ff -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $1a -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $1d -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $c7 -Finalized unsigned number type (unsigned int) $13f -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to char in screensize::$1 = $28 << screensize::hscale#0 -Inferred type updated to char in screensize::$3 = $1e << screensize::vscale#0 -Inferred type updated to char in conio_x16_init::$9 = conio_screen_height - 1 -Inferred type updated to char in insertup::$3 = insertup::i#3 - 1 -Inferred type updated to char in cscroll::$5 = conio_screen_height - 1 -Inferred type updated to char in mul16u::$1 = mul16u::a#3 & 1 -Inferred type updated to unsigned int in bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#2 + 1 -Inferred type updated to unsigned int in bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#2 + 1 -Inferred type updated to unsigned int in bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#2 + 1 -Inferred type updated to unsigned int in bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#2 + 1 -Inferred type updated to char in divr16u::$2 = divr16u::$1 & $80 -Inferred type updated to unsigned int in divr16u::$5 = divr16u::rem#6 | 1 -Inferred type updated to char in main::$41 = main::$40 & $ff -Inversing boolean not [84] gotoxy::$1 = gotoxy::y#7 <= conio_screen_height from [83] gotoxy::$0 = gotoxy::y#7 > conio_screen_height -Inversing boolean not [88] gotoxy::$3 = gotoxy::x#7 < conio_screen_width from [87] gotoxy::$2 = gotoxy::x#7 >= conio_screen_width -Inversing boolean not [141] cputc::$12 = conio_cursor_x[conio_screen_layer] != conio_screen_width from [140] cputc::$11 = conio_cursor_x[conio_screen_layer] == conio_screen_width -Inversing boolean not [146] cputc::$9 = cputc::$16 != conio_width from [145] cputc::$8 = cputc::$16 == conio_width -Inversing boolean not [173] vera_display_get_hscale::$1 = *VERA_DC_HSCALE != vera_display_get_hscale::hscale[vera_display_get_hscale::s#2] from [172] vera_display_get_hscale::$0 = *VERA_DC_HSCALE == vera_display_get_hscale::hscale[vera_display_get_hscale::s#2] -Inversing boolean not [190] vera_display_get_vscale::$1 = *VERA_DC_VSCALE != vera_display_get_vscale::vscale[vera_display_get_vscale::s#2] from [189] vera_display_get_vscale::$0 = *VERA_DC_VSCALE == vera_display_get_vscale::vscale[vera_display_get_vscale::s#2] -Inversing boolean not [512] conio_x16_init::$8 = conio_x16_init::line#2 < conio_screen_height from [511] conio_x16_init::$7 = conio_x16_init::line#2 >= conio_screen_height -Inversing boolean not [577] cscroll::$1 = conio_cursor_y[conio_screen_layer] < conio_screen_height from [576] cscroll::$0 = conio_cursor_y[conio_screen_layer] >= conio_screen_height -Inversing boolean not [589] cscroll::$3 = conio_cursor_y[conio_screen_layer] < conio_height from [588] cscroll::$2 = conio_cursor_y[conio_screen_layer] >= conio_height -Inversing boolean not [702] bitmap_init::$6 = __bitmap_color_depth != 0 from [701] bitmap_init::$5 = __bitmap_color_depth == 0 -Inversing boolean not [706] bitmap_init::$9 = __bitmap_color_depth != 1 from [705] bitmap_init::$8 = __bitmap_color_depth == 1 -Inversing boolean not [718] bitmap_init::$12 = __bitmap_color_depth != 2 from [717] bitmap_init::$11 = __bitmap_color_depth == 2 -Inversing boolean not [730] bitmap_init::$15 = __bitmap_color_depth != 3 from [729] bitmap_init::$14 = __bitmap_color_depth == 3 -Inversing boolean not [742] bitmap_init::$17 = bitmap_init::bitshift#8 >= 0 from [741] bitmap_init::$16 = bitmap_init::bitshift#8 < 0 -Inversing boolean not [751] bitmap_init::$19 = bitmap_init::bitmask#9 != 0 from [750] bitmap_init::$18 = bitmap_init::bitmask#9 == 0 -Inversing boolean not [939] mul16u::$3 = mul16u::$1 == 0 from [938] mul16u::$2 = mul16u::$1 != 0 -Inversing boolean not [966] bitmap_line_xdyi::$4 = bitmap_line_xdyi::xd#2 >= bitmap_line_xdyi::e#1 from [965] bitmap_line_xdyi::$3 = bitmap_line_xdyi::xd#2 < bitmap_line_xdyi::e#1 -Inversing boolean not [989] bitmap_line_xdyd::$4 = bitmap_line_xdyd::xd#2 >= bitmap_line_xdyd::e#1 from [988] bitmap_line_xdyd::$3 = bitmap_line_xdyd::xd#2 < bitmap_line_xdyd::e#1 -Inversing boolean not [1012] bitmap_line_ydxi::$4 = bitmap_line_ydxi::yd#2 >= bitmap_line_ydxi::e#1 from [1011] bitmap_line_ydxi::$3 = bitmap_line_ydxi::yd#2 < bitmap_line_ydxi::e#1 -Inversing boolean not [1036] bitmap_line_ydxd::$4 = bitmap_line_ydxd::yd#2 >= bitmap_line_ydxd::e#1 from [1035] bitmap_line_ydxd::$3 = bitmap_line_ydxd::yd#2 < bitmap_line_ydxd::e#1 -Inversing boolean not [1056] divr16u::$4 = divr16u::$2 == 0 from [1055] divr16u::$3 = divr16u::$2 != 0 -Inversing boolean not [1064] divr16u::$9 = divr16u::rem#5 < divr16u::divisor#1 from [1063] divr16u::$8 = divr16u::rem#5 >= divr16u::divisor#1 -Inversing boolean not [1198] main::$31 = 0 == main::$30 from [1197] main::$48 = 0 != main::$30 -Inversing boolean not [1317] main::$44 = 0 == main::$43 from [1316] main::$49 = 0 != main::$43 -Inversing boolean not [1330] main::$47 = main::x#1 <= $13f from [1329] main::$46 = main::x#1 > $13f -Successful SSA optimization Pass2UnaryNotSimplification -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#4 kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#2 screenlayer::vera_layer_get_width1_return#1 screenlayer::vera_layer_get_width1_return#3 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#2 screenlayer::vera_layer_get_height1_return#1 screenlayer::vera_layer_get_height1_return#3 screenlayer::$5 conio_height -Alias candidate removed (volatile)bitmap_init::vera_layer_get_color_depth1_return#0 = bitmap_init::vera_layer_get_color_depth1_$0 bitmap_init::vera_layer_get_color_depth1_return#2 bitmap_init::vera_layer_get_color_depth1_return#1 bitmap_init::vera_layer_get_color_depth1_return#3 bitmap_init::$0 __bitmap_color_depth -Alias candidate removed (volatile)__bitmap_hscale = bitmap_init::$1 -Alias candidate removed (volatile)__bitmap_vscale = bitmap_init::$2 -Alias memcpy_in_vram::i#2 = memcpy_in_vram::i#3 -Alias memcpy_in_vram::num#2 = memcpy_in_vram::num#4 -Alias memset_vram::data#1 = memset_vram::data#2 -Alias memset_vram::i#2 = memset_vram::i#3 -Alias memset_vram::num#1 = memset_vram::num#3 -Alias vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#3 -Alias clrscr::line_text#0 = clrscr::line_text#8 clrscr::line_text#6 -Alias CONIO_SCREEN_BANK#32 = CONIO_SCREEN_BANK#40 CONIO_SCREEN_BANK#49 -Alias vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#3 -Alias clrscr::line_text#2 = clrscr::line_text#4 clrscr::ch#0 -Alias CONIO_SCREEN_BANK#11 = CONIO_SCREEN_BANK#22 -Alias clrscr::color#3 = clrscr::color#4 -Alias clrscr::l#2 = clrscr::l#5 -Alias clrscr::color#1 = clrscr::color#2 clrscr::color#5 -Alias clrscr::c#2 = clrscr::c#3 -Alias clrscr::line_text#3 = clrscr::line_text#7 clrscr::line_text#5 -Alias clrscr::l#3 = clrscr::l#6 clrscr::l#4 -Alias CONIO_SCREEN_BANK#31 = CONIO_SCREEN_BANK#50 CONIO_SCREEN_BANK#41 -Alias gotoxy::x#10 = gotoxy::x#9 -Alias gotoxy::y#10 = gotoxy::y#9 -Alias vera_layer_get_color::return#0 = vera_layer_get_color::return#5 -Alias CONIO_SCREEN_TEXT#12 = CONIO_SCREEN_TEXT#27 CONIO_SCREEN_TEXT#82 CONIO_SCREEN_TEXT#93 CONIO_SCREEN_TEXT#89 CONIO_SCREEN_TEXT#88 CONIO_SCREEN_TEXT#83 CONIO_SCREEN_TEXT#84 -Alias cputc::c#0 = cputc::c#1 cputc::c#2 -Alias CONIO_SCREEN_BANK#12 = CONIO_SCREEN_BANK#23 CONIO_SCREEN_BANK#33 -Alias cputc::conio_addr#1 = cputc::conio_addr#2 -Alias cputc::color#0 = cputc::color#1 -Alias vera_display_get_hscale::s#2 = vera_display_get_hscale::s#3 vera_display_get_hscale::s#4 vera_display_get_hscale::scale#1 -Alias vera_display_get_hscale::scale#3 = vera_display_get_hscale::scale#4 -Alias vera_display_get_hscale::return#0 = vera_display_get_hscale::scale#2 vera_display_get_hscale::return#3 vera_display_get_hscale::return#1 -Alias vera_display_get_vscale::s#2 = vera_display_get_vscale::s#3 vera_display_get_vscale::s#4 vera_display_get_vscale::scale#1 -Alias vera_display_get_vscale::scale#3 = vera_display_get_vscale::scale#4 -Alias vera_display_get_vscale::return#0 = vera_display_get_vscale::scale#2 vera_display_get_vscale::return#3 vera_display_get_vscale::return#1 -Alias vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#3 vera_layer_get_mapbase_bank::return#1 -Alias vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#3 vera_layer_get_mapbase_offset::return#1 -Alias vera_layer_set_textcolor::return#0 = vera_layer_set_textcolor::old#0 vera_layer_set_textcolor::return#8 vera_layer_set_textcolor::return#1 -Alias vera_layer_get_textcolor::return#1 = vera_layer_get_textcolor::return#4 vera_layer_get_textcolor::return#2 -Alias vera_layer_set_backcolor::return#0 = vera_layer_set_backcolor::old#0 vera_layer_set_backcolor::return#6 vera_layer_set_backcolor::return#1 -Alias vera_layer_get_backcolor::return#1 = vera_layer_get_backcolor::return#4 vera_layer_get_backcolor::return#2 -Alias vera_layer_get_color::layer#2 = vera_layer_get_color::layer#3 vera_layer_get_color::layer#4 -Alias vera_layer_get_color::return#2 = vera_layer_get_color::$2 -Alias vera_layer_get_color::return#3 = vera_layer_get_color::return#6 -Alias vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#3 vera_layer_get_rowshift::return#1 -Alias vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#3 vera_layer_get_rowskip::return#1 -Alias vera_layer_mode_tile::config#0 = vera_layer_mode_tile::config#13 vera_layer_mode_tile::config#26 vera_layer_mode_tile::config#14 vera_layer_mode_tile::config#27 vera_layer_mode_tile::config#15 vera_layer_mode_tile::config#28 vera_layer_mode_tile::config#16 -Alias vera_layer_mode_tile::mapwidth#10 = vera_layer_mode_tile::mapwidth#7 vera_layer_mode_tile::mapwidth#11 vera_layer_mode_tile::mapwidth#12 vera_layer_mode_tile::mapwidth#8 vera_layer_mode_tile::mapwidth#13 vera_layer_mode_tile::mapwidth#9 vera_layer_mode_tile::mapwidth#6 -Alias vera_layer_mode_tile::layer#22 = vera_layer_mode_tile::layer#23 vera_layer_mode_tile::layer#31 vera_layer_mode_tile::layer#32 vera_layer_mode_tile::layer#24 vera_layer_mode_tile::layer#33 vera_layer_mode_tile::layer#25 vera_layer_mode_tile::layer#26 -Alias vera_layer_mode_tile::mapheight#14 = vera_layer_mode_tile::mapheight#15 vera_layer_mode_tile::mapheight#19 vera_layer_mode_tile::mapheight#20 vera_layer_mode_tile::mapheight#16 vera_layer_mode_tile::mapheight#21 vera_layer_mode_tile::mapheight#17 vera_layer_mode_tile::mapheight#18 -Alias vera_layer_mode_tile::mapbase_address#21 = vera_layer_mode_tile::mapbase_address#22 vera_layer_mode_tile::mapbase_address#26 vera_layer_mode_tile::mapbase_address#27 vera_layer_mode_tile::mapbase_address#23 vera_layer_mode_tile::mapbase_address#28 vera_layer_mode_tile::mapbase_address#24 vera_layer_mode_tile::mapbase_address#25 -Alias vera_layer_mode_tile::tilebase_address#22 = vera_layer_mode_tile::tilebase_address#23 vera_layer_mode_tile::tilebase_address#27 vera_layer_mode_tile::tilebase_address#28 vera_layer_mode_tile::tilebase_address#24 vera_layer_mode_tile::tilebase_address#29 vera_layer_mode_tile::tilebase_address#25 vera_layer_mode_tile::tilebase_address#26 -Alias vera_layer_mode_tile::tilewidth#22 = vera_layer_mode_tile::tilewidth#23 vera_layer_mode_tile::tilewidth#27 vera_layer_mode_tile::tilewidth#28 vera_layer_mode_tile::tilewidth#24 vera_layer_mode_tile::tilewidth#29 vera_layer_mode_tile::tilewidth#25 vera_layer_mode_tile::tilewidth#26 -Alias vera_layer_mode_tile::tileheight#26 = vera_layer_mode_tile::tileheight#27 vera_layer_mode_tile::tileheight#31 vera_layer_mode_tile::tileheight#32 vera_layer_mode_tile::tileheight#28 vera_layer_mode_tile::tileheight#33 vera_layer_mode_tile::tileheight#29 vera_layer_mode_tile::tileheight#30 -Alias vera_layer_mode_tile::color_depth#2 = vera_layer_mode_tile::color_depth#3 vera_layer_mode_tile::color_depth#4 vera_layer_mode_tile::color_depth#5 -Alias vera_layer_mode_tile::config#17 = vera_layer_mode_tile::config#29 vera_layer_mode_tile::config#30 vera_layer_mode_tile::config#18 vera_layer_mode_tile::config#31 vera_layer_mode_tile::config#19 vera_layer_mode_tile::config#32 vera_layer_mode_tile::config#20 -Alias vera_layer_mode_tile::layer#10 = vera_layer_mode_tile::layer#2 vera_layer_mode_tile::layer#11 vera_layer_mode_tile::layer#3 vera_layer_mode_tile::layer#12 vera_layer_mode_tile::layer#4 vera_layer_mode_tile::layer#13 vera_layer_mode_tile::layer#5 -Alias vera_layer_mode_tile::mapheight#10 = vera_layer_mode_tile::mapheight#7 vera_layer_mode_tile::mapheight#11 vera_layer_mode_tile::mapheight#12 vera_layer_mode_tile::mapheight#8 vera_layer_mode_tile::mapheight#13 vera_layer_mode_tile::mapheight#9 vera_layer_mode_tile::mapheight#6 -Alias vera_layer_mode_tile::mapbase_address#13 = vera_layer_mode_tile::mapbase_address#14 vera_layer_mode_tile::mapbase_address#18 vera_layer_mode_tile::mapbase_address#19 vera_layer_mode_tile::mapbase_address#15 vera_layer_mode_tile::mapbase_address#20 vera_layer_mode_tile::mapbase_address#16 vera_layer_mode_tile::mapbase_address#17 -Alias vera_layer_mode_tile::tilebase_address#14 = vera_layer_mode_tile::tilebase_address#15 vera_layer_mode_tile::tilebase_address#19 vera_layer_mode_tile::tilebase_address#20 vera_layer_mode_tile::tilebase_address#16 vera_layer_mode_tile::tilebase_address#21 vera_layer_mode_tile::tilebase_address#17 vera_layer_mode_tile::tilebase_address#18 -Alias vera_layer_mode_tile::tilewidth#14 = vera_layer_mode_tile::tilewidth#15 vera_layer_mode_tile::tilewidth#19 vera_layer_mode_tile::tilewidth#20 vera_layer_mode_tile::tilewidth#16 vera_layer_mode_tile::tilewidth#21 vera_layer_mode_tile::tilewidth#17 vera_layer_mode_tile::tilewidth#18 -Alias vera_layer_mode_tile::tileheight#18 = vera_layer_mode_tile::tileheight#19 vera_layer_mode_tile::tileheight#23 vera_layer_mode_tile::tileheight#24 vera_layer_mode_tile::tileheight#20 vera_layer_mode_tile::tileheight#25 vera_layer_mode_tile::tileheight#21 vera_layer_mode_tile::tileheight#22 -Alias vera_layer_mode_tile::mapwidth#2 = vera_layer_mode_tile::mapwidth#3 vera_layer_mode_tile::mapwidth#4 vera_layer_mode_tile::mapwidth#5 -Alias vera_layer_mode_tile::config#21 = vera_layer_mode_tile::config#33 vera_layer_mode_tile::config#34 vera_layer_mode_tile::config#22 vera_layer_mode_tile::config#35 vera_layer_mode_tile::config#23 vera_layer_mode_tile::config#36 vera_layer_mode_tile::config#24 -Alias vera_layer_mode_tile::layer#14 = vera_layer_mode_tile::layer#15 vera_layer_mode_tile::layer#27 vera_layer_mode_tile::layer#28 vera_layer_mode_tile::layer#16 vera_layer_mode_tile::layer#29 vera_layer_mode_tile::layer#17 vera_layer_mode_tile::layer#18 -Alias vera_layer_mode_tile::mapbase_address#10 = vera_layer_mode_tile::mapbase_address#6 vera_layer_mode_tile::mapbase_address#11 vera_layer_mode_tile::mapbase_address#7 vera_layer_mode_tile::mapbase_address#12 vera_layer_mode_tile::mapbase_address#8 vera_layer_mode_tile::mapbase_address#5 vera_layer_mode_tile::mapbase_address#9 -Alias vera_layer_mode_tile::tilebase_address#10 = vera_layer_mode_tile::tilebase_address#7 vera_layer_mode_tile::tilebase_address#11 vera_layer_mode_tile::tilebase_address#12 vera_layer_mode_tile::tilebase_address#8 vera_layer_mode_tile::tilebase_address#13 vera_layer_mode_tile::tilebase_address#9 vera_layer_mode_tile::tilebase_address#6 -Alias vera_layer_mode_tile::tilewidth#10 = vera_layer_mode_tile::tilewidth#7 vera_layer_mode_tile::tilewidth#11 vera_layer_mode_tile::tilewidth#12 vera_layer_mode_tile::tilewidth#8 vera_layer_mode_tile::tilewidth#13 vera_layer_mode_tile::tilewidth#9 vera_layer_mode_tile::tilewidth#6 -Alias vera_layer_mode_tile::tileheight#10 = vera_layer_mode_tile::tileheight#11 vera_layer_mode_tile::tileheight#15 vera_layer_mode_tile::tileheight#16 vera_layer_mode_tile::tileheight#12 vera_layer_mode_tile::tileheight#17 vera_layer_mode_tile::tileheight#13 vera_layer_mode_tile::tileheight#14 -Alias vera_layer_mode_tile::mapheight#2 = vera_layer_mode_tile::mapheight#3 vera_layer_mode_tile::mapheight#4 vera_layer_mode_tile::mapheight#5 -Alias vera_layer_mode_tile::mapbase_address#3 = vera_layer_mode_tile::mapbase_address#4 -Alias vera_layer_mode_tile::layer#34 = vera_layer_mode_tile::layer#7 vera_layer_mode_tile::layer#6 vera_layer_mode_tile::layer#8 vera_layer_mode_tile::layer#35 vera_layer_mode_tile::layer#36 -Alias vera_layer_mode_tile::tilebase_address#3 = vera_layer_mode_tile::tilebase_address#4 vera_layer_mode_tile::tilebase_address#5 -Alias vera_layer_mode_tile::tilewidth#2 = vera_layer_mode_tile::tilewidth#4 vera_layer_mode_tile::tilewidth#5 vera_layer_mode_tile::tilewidth#3 -Alias vera_layer_mode_tile::tileheight#4 = vera_layer_mode_tile::tileheight#8 vera_layer_mode_tile::tileheight#9 vera_layer_mode_tile::tileheight#7 vera_layer_mode_tile::tileheight#5 vera_layer_mode_tile::tileheight#6 -Alias vera_layer_mode_tile::mapbase_address#0 = vera_layer_mode_tile::$3 -Alias vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::$8 -Alias vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#6 vera_layer_mode_tile::tilebase#11 vera_layer_mode_tile::tilebase#7 -Alias vera_layer_mode_tile::tilebase#12 = vera_layer_mode_tile::tilebase#8 vera_layer_mode_tile::tilebase#13 vera_layer_mode_tile::tilebase#9 -Alias vera_layer_mode_tile::layer#19 = vera_layer_mode_tile::layer#20 vera_layer_mode_tile::layer#30 vera_layer_mode_tile::layer#21 -Alias vera_layer_mode_tile::tileheight#2 = vera_layer_mode_tile::tileheight#3 -Alias vera_layer_mode_text::color_mode#1 = vera_layer_mode_text::color_mode#3 vera_layer_mode_text::color_mode#2 -Alias vera_layer_mode_text::layer#1 = vera_layer_mode_text::layer#4 vera_layer_mode_text::layer#2 vera_layer_mode_text::layer#5 vera_layer_mode_text::layer#3 -Alias vera_layer_mode_bitmap::config#0 = vera_layer_mode_bitmap::config#6 vera_layer_mode_bitmap::config#12 vera_layer_mode_bitmap::config#7 vera_layer_mode_bitmap::config#13 vera_layer_mode_bitmap::config#8 vera_layer_mode_bitmap::config#14 vera_layer_mode_bitmap::config#9 -Alias vera_layer_mode_bitmap::bitmap_address#10 = vera_layer_mode_bitmap::bitmap_address#4 vera_layer_mode_bitmap::bitmap_address#8 vera_layer_mode_bitmap::bitmap_address#9 vera_layer_mode_bitmap::bitmap_address#5 vera_layer_mode_bitmap::bitmap_address#6 vera_layer_mode_bitmap::bitmap_address#3 vera_layer_mode_bitmap::bitmap_address#7 -Alias vera_layer_mode_bitmap::layer#12 = vera_layer_mode_bitmap::layer#5 vera_layer_mode_bitmap::layer#13 vera_layer_mode_bitmap::layer#6 vera_layer_mode_bitmap::layer#14 vera_layer_mode_bitmap::layer#7 vera_layer_mode_bitmap::layer#4 vera_layer_mode_bitmap::layer#8 -Alias vera_layer_mode_bitmap::mapwidth#10 = vera_layer_mode_bitmap::mapwidth#4 vera_layer_mode_bitmap::mapwidth#8 vera_layer_mode_bitmap::mapwidth#9 vera_layer_mode_bitmap::mapwidth#5 vera_layer_mode_bitmap::mapwidth#6 vera_layer_mode_bitmap::mapwidth#3 vera_layer_mode_bitmap::mapwidth#7 -Alias vera_layer_mode_bitmap::color_depth#1 = vera_layer_mode_bitmap::color_depth#2 vera_layer_mode_bitmap::color_depth#3 vera_layer_mode_bitmap::color_depth#4 -Alias vera_layer_mode_bitmap::config#15 = vera_layer_mode_bitmap::config#5 vera_layer_mode_bitmap::$0 vera_layer_mode_bitmap::config#18 vera_layer_mode_bitmap::config#17 vera_layer_mode_bitmap::config#19 vera_layer_mode_bitmap::config#16 -Alias vera_layer_mode_bitmap::bitmap_address#0 = vera_layer_mode_bitmap::$3 -Alias vera_layer_mode_bitmap::tilebase#1 = vera_layer_mode_bitmap::tilebase#7 vera_layer_mode_bitmap::tilebase#4 vera_layer_mode_bitmap::tilebase#10 vera_layer_mode_bitmap::tilebase#8 vera_layer_mode_bitmap::tilebase#5 -Alias vera_layer_mode_bitmap::layer#1 = vera_layer_mode_bitmap::layer#15 vera_layer_mode_bitmap::layer#9 vera_layer_mode_bitmap::layer#11 vera_layer_mode_bitmap::layer#16 vera_layer_mode_bitmap::layer#10 -Alias vera_layer_mode_bitmap::mapwidth#1 = vera_layer_mode_bitmap::mapwidth#2 -Alias vera_layer_mode_bitmap::layer#2 = vera_layer_mode_bitmap::layer#3 -Alias vera_layer_mode_bitmap::tilebase#6 = vera_layer_mode_bitmap::tilebase#9 -Alias CONIO_SCREEN_BANK#24 = CONIO_SCREEN_BANK#34 CONIO_SCREEN_BANK#42 -Alias CONIO_SCREEN_TEXT#28 = CONIO_SCREEN_TEXT#37 CONIO_SCREEN_TEXT#47 -Alias conio_x16_init::line#0 = conio_x16_init::line#9 conio_x16_init::line#8 conio_x16_init::line#7 conio_x16_init::line#6 conio_x16_init::line#5 conio_x16_init::line#4 conio_x16_init::line#2 -Alias CONIO_SCREEN_BANK#0 = CONIO_SCREEN_BANK#13 CONIO_SCREEN_BANK#65 CONIO_SCREEN_BANK#60 CONIO_SCREEN_BANK#51 CONIO_SCREEN_BANK#44 CONIO_SCREEN_BANK#43 -Alias CONIO_SCREEN_TEXT#0 = CONIO_SCREEN_TEXT#13 CONIO_SCREEN_TEXT#75 CONIO_SCREEN_TEXT#67 CONIO_SCREEN_TEXT#57 CONIO_SCREEN_TEXT#49 CONIO_SCREEN_TEXT#48 -Alias CONIO_SCREEN_BANK#1 = CONIO_SCREEN_BANK#25 CONIO_SCREEN_BANK#35 CONIO_SCREEN_BANK#14 -Alias CONIO_SCREEN_TEXT#1 = CONIO_SCREEN_TEXT#29 CONIO_SCREEN_TEXT#38 CONIO_SCREEN_TEXT#14 -Alias conio_x16_init::line#1 = conio_x16_init::$9 -Alias vera_layer_get_color::return#4 = vera_layer_get_color::return#7 -Alias clearline::color#1 = clearline::color#2 -Alias clearline::c#2 = clearline::c#3 -Alias insertup::i#2 = insertup::i#3 insertup::i#4 -Alias CONIO_SCREEN_TEXT#16 = CONIO_SCREEN_TEXT#31 CONIO_SCREEN_TEXT#40 CONIO_SCREEN_TEXT#30 -Alias insertup::width#1 = insertup::width#2 insertup::width#3 -Alias insertup::cy#1 = insertup::cy#3 insertup::cy#2 -Alias CONIO_SCREEN_TEXT#50 = CONIO_SCREEN_TEXT#58 CONIO_SCREEN_TEXT#68 -Alias gotoxy::y#2 = cscroll::$5 -Alias vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#4 -Alias CONIO_SCREEN_BANK#15 = CONIO_SCREEN_BANK#2 screenlayer::$0 CONIO_SCREEN_BANK#80 CONIO_SCREEN_BANK#76 CONIO_SCREEN_BANK#71 CONIO_SCREEN_BANK#66 CONIO_SCREEN_BANK#61 CONIO_SCREEN_BANK#52 CONIO_SCREEN_BANK#45 CONIO_SCREEN_BANK#36 CONIO_SCREEN_BANK#26 CONIO_SCREEN_BANK#3 -Alias vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#4 -Alias screenlayer::vera_layer_get_width1_layer#0 = screenlayer::vera_layer_get_width1_layer#1 -Alias CONIO_SCREEN_TEXT#17 = CONIO_SCREEN_TEXT#90 CONIO_SCREEN_TEXT#2 CONIO_SCREEN_TEXT#85 CONIO_SCREEN_TEXT#77 CONIO_SCREEN_TEXT#69 CONIO_SCREEN_TEXT#59 CONIO_SCREEN_TEXT#51 CONIO_SCREEN_TEXT#41 CONIO_SCREEN_TEXT#32 CONIO_SCREEN_TEXT#3 -Alias vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#4 -Alias vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#4 -Alias screenlayer::vera_layer_get_height1_layer#0 = screenlayer::vera_layer_get_height1_layer#1 -Alias rand::return#0 = rand::return#7 rand::return#1 -Alias rand_state#14 = rand_state#2 rand_state#3 -Alias printf_str::c#1 = printf_str::$0 printf_str::c#2 -Alias printf_str::putc#7 = printf_str::putc#8 -Alias printf_str::s#0 = printf_str::s#10 -Alias bitmap_init::vera_layer_get_color_depth1_layer#0 = bitmap_init::vera_layer_get_color_depth1_layer#1 -Alias vera_display_get_hscale::return#2 = vera_display_get_hscale::return#4 -Alias vera_display_get_vscale::return#2 = vera_display_get_vscale::return#4 -Alias bitmap_init::x#2 = bitmap_init::x#7 -Alias bitmap_init::bitmask#10 = bitmap_init::bitmask#5 -Alias bitmap_init::bitshift#10 = bitmap_init::bitshift#5 -Alias bitmap_init::x#3 = bitmap_init::x#8 -Alias bitmap_init::bitmask#11 = bitmap_init::bitmask#6 -Alias bitmap_init::bitshift#11 = bitmap_init::bitshift#6 -Alias bitmap_init::x#4 = bitmap_init::x#9 -Alias bitmap_init::bitmask#12 = bitmap_init::bitmask#7 -Alias bitmap_init::bitshift#12 = bitmap_init::bitshift#7 -Alias bitmap_init::x#10 = bitmap_init::x#5 -Alias bitmap_init::bitmask#13 = bitmap_init::bitmask#8 -Alias bitmap_init::bitshift#13 = bitmap_init::bitshift#9 -Alias bitmap_init::bitmask#14 = bitmap_init::bitmask#15 -Alias bitmap_init::x#13 = bitmap_init::x#14 -Alias bitmap_init::x#11 = bitmap_init::x#12 -Alias bitmap_init::bitshift#15 = bitmap_init::bitshift#16 -Alias bitmap_init::yoffs#1 = bitmap_init::$21 -Alias mul16u::return#0 = mul16u::return#3 -Alias bitmap_plot::c#5 = bitmap_plot::c#8 bitmap_plot::c#6 bitmap_plot::$1 -Alias bitmap_plot::bitshift#0 = bitmap_plot::bitshift#1 -Alias bitmap_plot::plotter#0 = bitmap_plot::plotter#2 bitmap_plot::plotter#3 -Alias bitmap_plot::x#4 = bitmap_plot::x#8 bitmap_plot::x#9 -Alias bitmap_plot::$3 = bitmap_plot::$2 -Alias bitmap_plot::c#0 = bitmap_plot::$4 bitmap_plot::c#9 bitmap_plot::c#7 -Alias bitmap_plot::vera_vram_address01_bankaddr#0 = bitmap_plot::plotter#1 bitmap_plot::vera_vram_address01_bankaddr#1 -Alias bitmap_plot::vera_vram_address01_incr#0 = bitmap_plot::vera_vram_address01_incr#1 -Alias bitmap_plot::x#5 = bitmap_plot::x#6 bitmap_plot::x#7 -Alias bitmap_line::x1#10 = bitmap_line::x1#3 bitmap_line::x1#2 bitmap_line::x1#4 bitmap_line::x1#12 bitmap_line::x1#11 bitmap_line::x1#5 bitmap_line::x1#6 bitmap_line::x1#7 bitmap_line::x1#14 bitmap_line::x1#13 bitmap_line::x1#8 bitmap_line::x1#9 -Alias bitmap_line::x0#10 = bitmap_line::x0#3 bitmap_line::x0#2 bitmap_line::x0#4 bitmap_line::x0#12 bitmap_line::x0#11 bitmap_line::x0#5 bitmap_line::x0#6 bitmap_line::x0#7 bitmap_line::x0#14 bitmap_line::x0#13 bitmap_line::x0#8 bitmap_line::x0#9 -Alias bitmap_line::y0#10 = bitmap_line::y0#2 bitmap_line::y0#14 bitmap_line::y0#3 bitmap_line::y0#4 bitmap_line::y0#5 bitmap_line::y0#6 bitmap_line::y0#7 bitmap_line::y0#8 bitmap_line::y0#9 bitmap_line::y0#11 bitmap_line::y0#12 bitmap_line::y0#13 -Alias bitmap_line::y1#10 = bitmap_line::y1#2 bitmap_line::y1#14 bitmap_line::y1#3 bitmap_line::y1#4 bitmap_line::y1#5 bitmap_line::y1#6 bitmap_line::y1#7 bitmap_line::y1#8 bitmap_line::y1#9 bitmap_line::y1#11 bitmap_line::y1#12 bitmap_line::y1#13 -Alias bitmap_line::c#10 = bitmap_line::c#15 bitmap_line::c#16 bitmap_line::c#14 bitmap_line::c#11 bitmap_line::c#2 bitmap_line::c#3 bitmap_line::c#4 bitmap_line::c#5 bitmap_line::c#13 bitmap_line::c#12 bitmap_line::c#6 bitmap_line::c#7 bitmap_line::c#8 bitmap_line::c#9 -Alias bitmap_line::xd#1 = bitmap_line::$11 bitmap_line::xd#9 bitmap_line::xd#10 bitmap_line::xd#11 bitmap_line::xd#12 bitmap_line::xd#13 bitmap_line::xd#14 -Alias bitmap_line::xd#2 = bitmap_line::$1 bitmap_line::xd#3 bitmap_line::xd#4 bitmap_line::xd#5 bitmap_line::xd#6 bitmap_line::xd#7 bitmap_line::xd#8 -Alias bitmap_line::yd#1 = bitmap_line::$7 bitmap_line::yd#7 bitmap_line::yd#8 -Alias bitmap_line::yd#2 = bitmap_line::$3 bitmap_line::yd#5 bitmap_line::yd#6 -Alias bitmap_line::yd#11 = bitmap_line::yd#3 bitmap_line::$17 bitmap_line::yd#12 -Alias bitmap_line::yd#10 = bitmap_line::yd#4 bitmap_line::$13 bitmap_line::yd#9 -Alias mul16u::a#2 = mul16u::a#3 mul16u::a#6 -Alias mul16u::mb#3 = mul16u::mb#4 mul16u::mb#5 -Alias mul16u::res#2 = mul16u::res#5 mul16u::res#4 mul16u::return#1 mul16u::res#3 mul16u::return#4 mul16u::return#2 -Alias mul16u::a#1 = mul16u::$5 -Alias mul16u::mb#1 = mul16u::$6 -Alias mul16u::res#1 = mul16u::$4 -Alias bitmap_line_xdyi::x#3 = bitmap_line_xdyi::x#4 -Alias bitmap_line_xdyi::e#3 = bitmap_line_xdyi::e#5 -Alias bitmap_line_xdyi::yd#3 = bitmap_line_xdyi::yd#4 bitmap_line_xdyi::yd#6 -Alias bitmap_line_xdyi::xd#2 = bitmap_line_xdyi::xd#4 bitmap_line_xdyi::xd#3 -Alias bitmap_line_xdyi::x1#3 = bitmap_line_xdyi::x1#4 bitmap_line_xdyi::x1#5 -Alias bitmap_line_xdyi::y#3 = bitmap_line_xdyi::y#7 bitmap_line_xdyi::y#4 -Alias bitmap_line_xdyi::c#2 = bitmap_line_xdyi::c#6 bitmap_line_xdyi::c#5 -Alias bitmap_line_xdyi::e#1 = bitmap_line_xdyi::$2 bitmap_line_xdyi::e#4 -Alias bitmap_line_xdyi::x#2 = bitmap_line_xdyi::x#7 -Alias bitmap_line_xdyi::e#2 = bitmap_line_xdyi::$5 -Alias bitmap_line_xdyd::x#3 = bitmap_line_xdyd::x#4 -Alias bitmap_line_xdyd::e#3 = bitmap_line_xdyd::e#5 -Alias bitmap_line_xdyd::yd#3 = bitmap_line_xdyd::yd#4 bitmap_line_xdyd::yd#6 -Alias bitmap_line_xdyd::xd#2 = bitmap_line_xdyd::xd#4 bitmap_line_xdyd::xd#3 -Alias bitmap_line_xdyd::x1#3 = bitmap_line_xdyd::x1#4 bitmap_line_xdyd::x1#5 -Alias bitmap_line_xdyd::y#3 = bitmap_line_xdyd::y#7 bitmap_line_xdyd::y#4 -Alias bitmap_line_xdyd::c#2 = bitmap_line_xdyd::c#6 bitmap_line_xdyd::c#5 -Alias bitmap_line_xdyd::e#1 = bitmap_line_xdyd::$2 bitmap_line_xdyd::e#4 -Alias bitmap_line_xdyd::x#2 = bitmap_line_xdyd::x#7 -Alias bitmap_line_xdyd::e#2 = bitmap_line_xdyd::$5 -Alias bitmap_line_ydxi::y#3 = bitmap_line_ydxi::y#4 -Alias bitmap_line_ydxi::e#3 = bitmap_line_ydxi::e#5 -Alias bitmap_line_ydxi::xd#3 = bitmap_line_ydxi::xd#4 bitmap_line_ydxi::xd#6 -Alias bitmap_line_ydxi::yd#2 = bitmap_line_ydxi::yd#4 bitmap_line_ydxi::yd#3 -Alias bitmap_line_ydxi::y1#3 = bitmap_line_ydxi::y1#4 bitmap_line_ydxi::y1#5 -Alias bitmap_line_ydxi::x#3 = bitmap_line_ydxi::x#7 bitmap_line_ydxi::x#4 -Alias bitmap_line_ydxi::c#2 = bitmap_line_ydxi::c#6 bitmap_line_ydxi::c#5 -Alias bitmap_line_ydxi::e#1 = bitmap_line_ydxi::$2 bitmap_line_ydxi::e#4 -Alias bitmap_line_ydxi::y#2 = bitmap_line_ydxi::y#7 -Alias bitmap_line_ydxi::e#2 = bitmap_line_ydxi::$5 -Alias bitmap_line_ydxd::y#2 = bitmap_line_ydxd::y#5 bitmap_line_ydxd::y#4 -Alias bitmap_line_ydxd::e#3 = bitmap_line_ydxd::e#5 -Alias bitmap_line_ydxd::xd#3 = bitmap_line_ydxd::xd#4 bitmap_line_ydxd::xd#6 -Alias bitmap_line_ydxd::yd#2 = bitmap_line_ydxd::yd#4 bitmap_line_ydxd::yd#3 -Alias bitmap_line_ydxd::y1#3 = bitmap_line_ydxd::y1#4 bitmap_line_ydxd::y1#5 -Alias bitmap_line_ydxd::x#3 = bitmap_line_ydxd::x#7 bitmap_line_ydxd::x#4 -Alias bitmap_line_ydxd::c#2 = bitmap_line_ydxd::c#6 bitmap_line_ydxd::c#5 -Alias bitmap_line_ydxd::e#1 = bitmap_line_ydxd::$2 bitmap_line_ydxd::e#4 -Alias bitmap_line_ydxd::y#3 = bitmap_line_ydxd::y#8 -Alias bitmap_line_ydxd::e#2 = bitmap_line_ydxd::$5 -Alias divr16u::rem#0 = divr16u::$0 divr16u::rem#6 -Alias divr16u::dividend#0 = divr16u::$6 divr16u::dividend#7 -Alias divr16u::quotient#1 = divr16u::$7 divr16u::quotient#4 -Alias divr16u::dividend#2 = divr16u::dividend#6 -Alias divr16u::quotient#6 = divr16u::quotient#7 -Alias divr16u::divisor#3 = divr16u::divisor#4 -Alias divr16u::i#5 = divr16u::i#6 -Alias divr16u::rem#1 = divr16u::$5 -Alias divr16u::rem#5 = divr16u::rem#7 -Alias divr16u::divisor#1 = divr16u::divisor#2 -Alias divr16u::i#3 = divr16u::i#4 -Alias divr16u::rem#2 = divr16u::$10 -Alias divr16u::rem#10 = divr16u::rem#8 -Alias divr16u::return#0 = divr16u::quotient#5 divr16u::quotient#8 divr16u::return#3 divr16u::return#1 -Alias rem16u#0 = rem16u#12 rem16u#1 -Alias rem16u#13 = rem16u#2 rem16u#14 rem16u#3 -Alias modr16u::return#0 = modr16u::return#6 modr16u::return#1 -Alias CONIO_SCREEN_BANK#27 = CONIO_SCREEN_BANK#46 CONIO_SCREEN_BANK#53 CONIO_SCREEN_BANK#37 -Alias CONIO_SCREEN_TEXT#33 = CONIO_SCREEN_TEXT#52 CONIO_SCREEN_TEXT#60 CONIO_SCREEN_TEXT#42 -Alias rand_state#35 = rand_state#86 rand_state#87 rand_state#85 rand_state#83 rand_state#81 rand_state#79 rand_state#77 rand_state#75 rand_state#73 rand_state#71 rand_state#69 rand_state#67 rand_state#65 rand_state#63 rand_state#61 rand_state#59 rand_state#56 rand_state#52 rand_state#50 rand_state#48 rand_state#46 rand_state#44 rand_state#42 rand_state#40 rand_state#38 -Alias rem16u#36 = rem16u#87 rem16u#88 rem16u#86 rem16u#85 rem16u#83 rem16u#81 rem16u#79 rem16u#77 rem16u#75 rem16u#73 rem16u#71 rem16u#69 rem16u#67 rem16u#65 rem16u#63 rem16u#61 rem16u#59 rem16u#56 rem16u#52 rem16u#50 rem16u#48 rem16u#46 rem16u#44 rem16u#42 rem16u#39 -Alias CONIO_SCREEN_BANK#101 = CONIO_SCREEN_BANK#4 CONIO_SCREEN_BANK#16 CONIO_SCREEN_BANK#84 CONIO_SCREEN_BANK#81 CONIO_SCREEN_BANK#77 CONIO_SCREEN_BANK#72 CONIO_SCREEN_BANK#67 CONIO_SCREEN_BANK#59 CONIO_SCREEN_BANK#116 CONIO_SCREEN_BANK#115 CONIO_SCREEN_BANK#114 CONIO_SCREEN_BANK#113 CONIO_SCREEN_BANK#111 CONIO_SCREEN_BANK#109 CONIO_SCREEN_BANK#107 CONIO_SCREEN_BANK#105 CONIO_SCREEN_BANK#103 CONIO_SCREEN_BANK#99 CONIO_SCREEN_BANK#97 CONIO_SCREEN_BANK#95 CONIO_SCREEN_BANK#93 CONIO_SCREEN_BANK#91 -Alias CONIO_SCREEN_TEXT#102 = CONIO_SCREEN_TEXT#4 CONIO_SCREEN_TEXT#18 CONIO_SCREEN_TEXT#78 CONIO_SCREEN_TEXT#70 CONIO_SCREEN_TEXT#61 CONIO_SCREEN_TEXT#53 CONIO_SCREEN_TEXT#43 CONIO_SCREEN_TEXT#26 CONIO_SCREEN_TEXT#123 CONIO_SCREEN_TEXT#122 CONIO_SCREEN_TEXT#121 CONIO_SCREEN_TEXT#120 CONIO_SCREEN_TEXT#118 CONIO_SCREEN_TEXT#116 CONIO_SCREEN_TEXT#114 CONIO_SCREEN_TEXT#112 CONIO_SCREEN_TEXT#110 CONIO_SCREEN_TEXT#108 CONIO_SCREEN_TEXT#106 CONIO_SCREEN_TEXT#104 CONIO_SCREEN_TEXT#99 CONIO_SCREEN_TEXT#96 -Alias main::textcolor1_color#0 = main::textcolor1_color#1 -Alias main::bgcolor1_color#0 = main::bgcolor1_color#1 -Alias main::vera_layer_show1_layer#0 = main::vera_layer_show1_layer#1 -Alias main::textcolor2_color#0 = main::textcolor2_color#1 -Alias kbhit::return#2 = kbhit::return#5 -Alias rand_state#23 = rand_state#30 rand_state#33 rand_state#84 rand_state#82 rand_state#80 rand_state#78 rand_state#76 rand_state#74 rand_state#72 rand_state#70 rand_state#68 rand_state#66 rand_state#64 rand_state#62 rand_state#60 rand_state#57 rand_state#53 -Alias rem16u#23 = rem16u#32 rem16u#34 rem16u#29 rem16u#84 rem16u#82 rem16u#80 rem16u#78 rem16u#76 rem16u#74 rem16u#72 rem16u#70 rem16u#68 rem16u#66 rem16u#64 rem16u#62 rem16u#60 rem16u#57 rem16u#53 -Alias CONIO_SCREEN_TEXT#100 = CONIO_SCREEN_TEXT#91 CONIO_SCREEN_TEXT#94 CONIO_SCREEN_TEXT#119 CONIO_SCREEN_TEXT#117 CONIO_SCREEN_TEXT#115 CONIO_SCREEN_TEXT#113 CONIO_SCREEN_TEXT#111 CONIO_SCREEN_TEXT#109 CONIO_SCREEN_TEXT#107 CONIO_SCREEN_TEXT#105 CONIO_SCREEN_TEXT#103 CONIO_SCREEN_TEXT#97 CONIO_SCREEN_TEXT#86 CONIO_SCREEN_TEXT#79 CONIO_SCREEN_TEXT#71 CONIO_SCREEN_TEXT#62 CONIO_SCREEN_TEXT#54 CONIO_SCREEN_TEXT#44 CONIO_SCREEN_TEXT#24 CONIO_SCREEN_TEXT#101 CONIO_SCREEN_TEXT#98 CONIO_SCREEN_TEXT#95 CONIO_SCREEN_TEXT#92 CONIO_SCREEN_TEXT#87 CONIO_SCREEN_TEXT#80 CONIO_SCREEN_TEXT#72 CONIO_SCREEN_TEXT#63 -Alias CONIO_SCREEN_BANK#100 = CONIO_SCREEN_BANK#89 CONIO_SCREEN_BANK#90 CONIO_SCREEN_BANK#112 CONIO_SCREEN_BANK#110 CONIO_SCREEN_BANK#108 CONIO_SCREEN_BANK#106 CONIO_SCREEN_BANK#104 CONIO_SCREEN_BANK#102 CONIO_SCREEN_BANK#98 CONIO_SCREEN_BANK#96 CONIO_SCREEN_BANK#94 CONIO_SCREEN_BANK#92 CONIO_SCREEN_BANK#87 CONIO_SCREEN_BANK#85 CONIO_SCREEN_BANK#82 CONIO_SCREEN_BANK#78 CONIO_SCREEN_BANK#73 CONIO_SCREEN_BANK#68 CONIO_SCREEN_BANK#58 CONIO_SCREEN_BANK#88 CONIO_SCREEN_BANK#86 CONIO_SCREEN_BANK#83 CONIO_SCREEN_BANK#79 CONIO_SCREEN_BANK#74 CONIO_SCREEN_BANK#69 CONIO_SCREEN_BANK#62 CONIO_SCREEN_BANK#54 -Alias rand::return#2 = rand::return#8 -Alias rand_state#15 = rand_state#4 rand_state#24 -Alias modr16u::dividend#0 = main::$32 -Alias modr16u::return#2 = modr16u::return#7 -Alias rem16u#15 = rem16u#4 rem16u#24 -Alias rand::return#3 = rand::return#9 -Alias rand_state#16 = rand_state#5 rand_state#25 -Alias modr16u::dividend#1 = main::$34 -Alias modr16u::return#3 = modr16u::return#8 -Alias rem16u#16 = rem16u#5 rem16u#25 -Alias rand::return#10 = rand::return#4 -Alias rand_state#17 = rand_state#6 rand_state#26 -Alias modr16u::dividend#2 = main::$36 -Alias modr16u::return#4 = modr16u::return#9 -Alias rem16u#17 = rem16u#6 rem16u#26 -Alias rand::return#11 = rand::return#5 -Alias rand_state#18 = rand_state#7 rand_state#27 -Alias modr16u::dividend#3 = main::$38 -Alias modr16u::return#10 = modr16u::return#5 -Alias rem16u#18 = rem16u#7 rem16u#40 rem16u#37 -Alias rand::return#12 = rand::return#6 -Alias rand_state#19 = rand_state#8 rand_state#36 -Alias bitmap_line::x0#0 = main::$33 -Alias bitmap_line::x1#0 = main::$35 -Alias bitmap_line::y0#0 = main::$37 -Alias bitmap_line::y1#0 = main::$39 -Alias bitmap_line::c#0 = main::$41 -Alias main::textcolor3_color#0 = main::textcolor3_color#1 -Alias main::bgcolor2_color#0 = main::bgcolor2_color#1 -Alias main::textcolor4_color#0 = main::textcolor4_color#1 -Alias kbhit::return#3 = kbhit::return#6 -Alias main::x#3 = main::x#5 main::x#6 main::x#4 -Alias main::color#2 = main::color#4 main::color#5 main::color#3 -Alias CONIO_SCREEN_BANK#28 = CONIO_SCREEN_BANK#38 CONIO_SCREEN_BANK#47 CONIO_SCREEN_BANK#63 CONIO_SCREEN_BANK#55 CONIO_SCREEN_BANK#56 -Alias CONIO_SCREEN_TEXT#34 = CONIO_SCREEN_TEXT#45 CONIO_SCREEN_TEXT#55 CONIO_SCREEN_TEXT#73 CONIO_SCREEN_TEXT#64 CONIO_SCREEN_TEXT#65 -Alias rand_state#20 = rand_state#49 rand_state#51 rand_state#58 rand_state#54 rand_state#47 rand_state#45 rand_state#43 rand_state#41 rand_state#39 rand_state#37 rand_state#34 rand_state#31 rand_state#28 rand_state#55 rand_state#9 -Alias rem16u#19 = rem16u#49 rem16u#51 rem16u#58 rem16u#54 rem16u#47 rem16u#45 rem16u#43 rem16u#41 rem16u#38 rem16u#35 rem16u#33 rem16u#30 rem16u#27 rem16u#55 rem16u#8 -Alias CONIO_SCREEN_BANK#17 = CONIO_SCREEN_BANK#5 CONIO_SCREEN_BANK#75 CONIO_SCREEN_BANK#70 CONIO_SCREEN_BANK#64 CONIO_SCREEN_BANK#57 CONIO_SCREEN_BANK#48 CONIO_SCREEN_BANK#39 CONIO_SCREEN_BANK#29 CONIO_SCREEN_BANK#18 CONIO_SCREEN_BANK#6 -Alias CONIO_SCREEN_TEXT#19 = CONIO_SCREEN_TEXT#5 CONIO_SCREEN_TEXT#81 CONIO_SCREEN_TEXT#74 CONIO_SCREEN_TEXT#66 CONIO_SCREEN_TEXT#56 CONIO_SCREEN_TEXT#46 CONIO_SCREEN_TEXT#25 CONIO_SCREEN_TEXT#35 CONIO_SCREEN_TEXT#20 CONIO_SCREEN_TEXT#6 -Alias main::textcolor5_color#0 = main::textcolor5_color#1 -Alias main::bgcolor3_color#0 = main::bgcolor3_color#1 -Alias main::color#1 = main::color#6 -Alias rand_state#10 = rand_state#32 rand_state#29 -Alias rem16u#28 = rem16u#31 rem16u#9 -Alias CONIO_SCREEN_BANK#19 = CONIO_SCREEN_BANK#8 CONIO_SCREEN_BANK#30 -Alias CONIO_SCREEN_TEXT#21 = CONIO_SCREEN_TEXT#8 CONIO_SCREEN_TEXT#36 -Alias CONIO_SCREEN_BANK#10 = CONIO_SCREEN_BANK#9 CONIO_SCREEN_BANK#20 CONIO_SCREEN_BANK#21 -Alias CONIO_SCREEN_TEXT#10 = CONIO_SCREEN_TEXT#9 CONIO_SCREEN_TEXT#22 CONIO_SCREEN_TEXT#23 -Alias rand_state#11 = rand_state#21 rand_state#22 rand_state#12 -Alias rem16u#10 = rem16u#20 rem16u#21 rem16u#11 -Successful SSA optimization Pass2AliasElimination -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#4 kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#2 screenlayer::vera_layer_get_width1_return#1 screenlayer::vera_layer_get_width1_return#3 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#2 screenlayer::vera_layer_get_height1_return#1 screenlayer::vera_layer_get_height1_return#3 screenlayer::$5 conio_height -Alias candidate removed (volatile)bitmap_init::vera_layer_get_color_depth1_return#0 = bitmap_init::vera_layer_get_color_depth1_$0 bitmap_init::vera_layer_get_color_depth1_return#2 bitmap_init::vera_layer_get_color_depth1_return#1 bitmap_init::vera_layer_get_color_depth1_return#3 bitmap_init::$0 __bitmap_color_depth -Alias candidate removed (volatile)__bitmap_hscale = bitmap_init::$1 -Alias candidate removed (volatile)__bitmap_vscale = bitmap_init::$2 -Alias gotoxy::x#10 = gotoxy::x#7 -Alias gotoxy::y#10 = gotoxy::y#8 -Alias vera_layer_mode_tile::mapwidth#10 = vera_layer_mode_tile::mapwidth#2 -Alias vera_layer_mode_tile::layer#10 = vera_layer_mode_tile::layer#22 vera_layer_mode_tile::layer#14 vera_layer_mode_tile::layer#34 vera_layer_mode_tile::layer#19 vera_layer_mode_tile::layer#9 -Alias vera_layer_mode_tile::mapheight#10 = vera_layer_mode_tile::mapheight#14 vera_layer_mode_tile::mapheight#2 -Alias vera_layer_mode_tile::mapbase_address#10 = vera_layer_mode_tile::mapbase_address#13 vera_layer_mode_tile::mapbase_address#21 vera_layer_mode_tile::mapbase_address#3 -Alias vera_layer_mode_tile::tilebase_address#10 = vera_layer_mode_tile::tilebase_address#14 vera_layer_mode_tile::tilebase_address#22 vera_layer_mode_tile::tilebase_address#3 -Alias vera_layer_mode_tile::tilewidth#10 = vera_layer_mode_tile::tilewidth#14 vera_layer_mode_tile::tilewidth#22 vera_layer_mode_tile::tilewidth#2 -Alias vera_layer_mode_tile::tileheight#10 = vera_layer_mode_tile::tileheight#18 vera_layer_mode_tile::tileheight#26 vera_layer_mode_tile::tileheight#4 vera_layer_mode_tile::tileheight#2 -Alias vera_layer_mode_bitmap::bitmap_address#10 = vera_layer_mode_bitmap::bitmap_address#2 -Alias vera_layer_mode_bitmap::layer#1 = vera_layer_mode_bitmap::layer#12 vera_layer_mode_bitmap::layer#2 -Alias vera_layer_mode_bitmap::mapwidth#1 = vera_layer_mode_bitmap::mapwidth#10 -Alias vera_layer_mode_bitmap::config#11 = vera_layer_mode_bitmap::config#15 -Alias CONIO_SCREEN_BANK#0 = CONIO_SCREEN_BANK#1 -Alias CONIO_SCREEN_TEXT#0 = CONIO_SCREEN_TEXT#1 -Alias bitmap_init::x#10 = bitmap_init::x#3 bitmap_init::x#2 bitmap_init::x#4 bitmap_init::x#13 bitmap_init::x#11 bitmap_init::x#6 -Alias bitmap_init::bitshift#13 = bitmap_init::bitshift#8 -Alias bitmap_init::bitmask#13 = bitmap_init::bitmask#14 bitmap_init::bitmask#9 -Alias bitmap_init::bitshift#14 = bitmap_init::bitshift#15 -Alias bitmap_plot::vera_vram_address01_bankaddr#0 = bitmap_plot::plotter#0 -Alias bitmap_plot::x#4 = bitmap_plot::x#5 -Alias mul16u::a#2 = mul16u::a#4 -Alias mul16u::mb#2 = mul16u::mb#3 -Alias bitmap_line_xdyi::x1#2 = bitmap_line_xdyi::x1#3 -Alias bitmap_line_xdyi::x#2 = bitmap_line_xdyi::x#5 -Alias bitmap_line_xdyi::c#2 = bitmap_line_xdyi::c#4 -Alias bitmap_line_xdyi::yd#3 = bitmap_line_xdyi::yd#5 -Alias bitmap_line_xdyi::xd#2 = bitmap_line_xdyi::xd#6 -Alias bitmap_line_xdyd::x1#2 = bitmap_line_xdyd::x1#3 -Alias bitmap_line_xdyd::x#2 = bitmap_line_xdyd::x#5 -Alias bitmap_line_xdyd::c#2 = bitmap_line_xdyd::c#4 -Alias bitmap_line_xdyd::yd#3 = bitmap_line_xdyd::yd#5 -Alias bitmap_line_xdyd::xd#2 = bitmap_line_xdyd::xd#6 -Alias bitmap_line_ydxi::y1#2 = bitmap_line_ydxi::y1#3 -Alias bitmap_line_ydxi::y#2 = bitmap_line_ydxi::y#5 -Alias bitmap_line_ydxi::c#2 = bitmap_line_ydxi::c#4 -Alias bitmap_line_ydxi::xd#3 = bitmap_line_ydxi::xd#5 -Alias bitmap_line_ydxi::yd#2 = bitmap_line_ydxi::yd#6 -Alias bitmap_line_ydxd::y1#2 = bitmap_line_ydxd::y1#3 -Alias bitmap_line_ydxd::y#3 = bitmap_line_ydxd::y#6 -Alias bitmap_line_ydxd::c#2 = bitmap_line_ydxd::c#4 -Alias bitmap_line_ydxd::xd#3 = bitmap_line_ydxd::xd#5 -Alias bitmap_line_ydxd::yd#2 = bitmap_line_ydxd::yd#6 -Alias divr16u::dividend#2 = divr16u::dividend#3 -Alias divr16u::quotient#3 = divr16u::quotient#6 -Alias divr16u::divisor#1 = divr16u::divisor#3 divr16u::divisor#6 -Alias divr16u::i#2 = divr16u::i#3 divr16u::i#5 -Alias divr16u::dividend#0 = divr16u::dividend#5 -Successful SSA optimization Pass2AliasElimination -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#4 kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#2 screenlayer::vera_layer_get_width1_return#1 screenlayer::vera_layer_get_width1_return#3 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#2 screenlayer::vera_layer_get_height1_return#1 screenlayer::vera_layer_get_height1_return#3 screenlayer::$5 conio_height -Alias candidate removed (volatile)bitmap_init::vera_layer_get_color_depth1_return#0 = bitmap_init::vera_layer_get_color_depth1_$0 bitmap_init::vera_layer_get_color_depth1_return#2 bitmap_init::vera_layer_get_color_depth1_return#1 bitmap_init::vera_layer_get_color_depth1_return#3 bitmap_init::$0 __bitmap_color_depth -Alias candidate removed (volatile)__bitmap_hscale = bitmap_init::$1 -Alias candidate removed (volatile)__bitmap_vscale = bitmap_init::$2 -Identical Phi Values memcpy_in_vram::num#2 memcpy_in_vram::num#3 -Identical Phi Values memset_vram::vdest#1 memset_vram::vdest#0 -Identical Phi Values memset_vram::vbank#1 memset_vram::vbank#0 -Identical Phi Values memset_vram::num#2 memset_vram::num#0 -Identical Phi Values memset_vram::data#3 memset_vram::data#0 -Identical Phi Values memset_vram::num#1 memset_vram::num#2 -Identical Phi Values memset_vram::data#1 memset_vram::data#3 -Identical Phi Values clrscr::color#1 clrscr::color#3 -Identical Phi Values clrscr::line_text#3 clrscr::line_text#2 -Identical Phi Values clrscr::l#3 clrscr::l#2 -Identical Phi Values CONIO_SCREEN_BANK#31 CONIO_SCREEN_BANK#11 -Identical Phi Values screensize::x#1 screensize::x#0 -Identical Phi Values screensize::y#1 screensize::y#0 -Identical Phi Values CONIO_SCREEN_TEXT#76 CONIO_SCREEN_TEXT#12 -Identical Phi Values kbhit::return#4 kbhit::return#0 -Identical Phi Values vera_display_get_hscale::scale#3 vera_display_get_hscale::scale#0 -Identical Phi Values vera_display_get_vscale::scale#3 vera_display_get_vscale::scale#0 -Identical Phi Values vera_layer_get_mapbase_bank::layer#1 vera_layer_get_mapbase_bank::layer#0 -Identical Phi Values vera_layer_get_mapbase_offset::layer#1 vera_layer_get_mapbase_offset::layer#0 -Identical Phi Values vera_layer_get_textcolor::layer#1 vera_layer_get_textcolor::layer#0 -Identical Phi Values vera_layer_get_backcolor::layer#1 vera_layer_get_backcolor::layer#0 -Identical Phi Values vera_layer_get_rowshift::layer#1 vera_layer_get_rowshift::layer#0 -Identical Phi Values vera_layer_get_rowskip::layer#1 vera_layer_get_rowskip::layer#0 -Identical Phi Values vera_layer_mode_text::layer#1 vera_layer_mode_text::layer#0 -Identical Phi Values vera_layer_mode_text::mapbase_address#1 vera_layer_mode_text::mapbase_address#0 -Identical Phi Values vera_layer_mode_text::tilebase_address#1 vera_layer_mode_text::tilebase_address#0 -Identical Phi Values vera_layer_mode_text::mapwidth#1 vera_layer_mode_text::mapwidth#0 -Identical Phi Values vera_layer_mode_text::mapheight#1 vera_layer_mode_text::mapheight#0 -Identical Phi Values vera_layer_mode_text::tilewidth#1 vera_layer_mode_text::tilewidth#0 -Identical Phi Values vera_layer_mode_text::tileheight#1 vera_layer_mode_text::tileheight#0 -Identical Phi Values vera_layer_mode_text::color_mode#1 vera_layer_mode_text::color_mode#0 -Identical Phi Values vera_layer_mode_bitmap::color_depth#1 vera_layer_mode_bitmap::color_depth#0 -Identical Phi Values vera_layer_mode_bitmap::bitmap_address#10 vera_layer_mode_bitmap::bitmap_address#1 -Identical Phi Values vera_layer_mode_bitmap::layer#1 vera_layer_mode_bitmap::layer#0 -Identical Phi Values vera_layer_mode_bitmap::mapwidth#1 vera_layer_mode_bitmap::mapwidth#0 -Identical Phi Values CONIO_SCREEN_BANK#24 CONIO_SCREEN_BANK#7 -Identical Phi Values CONIO_SCREEN_TEXT#28 CONIO_SCREEN_TEXT#7 -Identical Phi Values CONIO_SCREEN_BANK#0 CONIO_SCREEN_BANK#15 -Identical Phi Values CONIO_SCREEN_TEXT#0 CONIO_SCREEN_TEXT#17 -Identical Phi Values CONIO_SCREEN_TEXT#15 CONIO_SCREEN_TEXT#16 -Identical Phi Values clearline::color#1 clearline::color#0 -Identical Phi Values CONIO_SCREEN_TEXT#39 CONIO_SCREEN_TEXT#50 -Identical Phi Values insertup::cy#1 insertup::cy#0 -Identical Phi Values CONIO_SCREEN_TEXT#16 CONIO_SCREEN_TEXT#39 -Identical Phi Values insertup::width#1 insertup::width#0 -Identical Phi Values CONIO_SCREEN_TEXT#50 CONIO_SCREEN_TEXT#76 -Identical Phi Values screenlayer::vera_layer_get_width1_return#2 screenlayer::vera_layer_get_width1_return#0 -Identical Phi Values screenlayer::vera_layer_get_width1_return#3 screenlayer::vera_layer_get_width1_return#1 -Identical Phi Values screenlayer::vera_layer_get_height1_return#2 screenlayer::vera_layer_get_height1_return#0 -Identical Phi Values screenlayer::vera_layer_get_height1_return#3 screenlayer::vera_layer_get_height1_return#1 -Identical Phi Values printf_str::putc#7 printf_str::putc#9 -Identical Phi Values bitmap_init::address#1 bitmap_init::address#0 -Identical Phi Values bitmap_init::layer#1 bitmap_init::layer#0 -Identical Phi Values bitmap_init::vera_layer_get_color_depth1_return#2 bitmap_init::vera_layer_get_color_depth1_return#0 -Identical Phi Values bitmap_init::vera_layer_get_color_depth1_return#3 bitmap_init::vera_layer_get_color_depth1_return#1 -Identical Phi Values bitmap_init::hdelta#1 bitmap_init::hdelta#0 -Identical Phi Values mul16u::b#1 mul16u::b#0 -Identical Phi Values mul16u::a#5 mul16u::a#0 -Identical Phi Values bitmap_line_xdyi::c#2 bitmap_line_xdyi::c#3 -Identical Phi Values bitmap_line_xdyi::yd#3 bitmap_line_xdyi::yd#2 -Identical Phi Values bitmap_line_xdyi::xd#2 bitmap_line_xdyi::xd#5 -Identical Phi Values bitmap_line_xdyi::x1#2 bitmap_line_xdyi::x1#6 -Identical Phi Values bitmap_line_xdyd::c#2 bitmap_line_xdyd::c#3 -Identical Phi Values bitmap_line_xdyd::yd#3 bitmap_line_xdyd::yd#2 -Identical Phi Values bitmap_line_xdyd::xd#2 bitmap_line_xdyd::xd#5 -Identical Phi Values bitmap_line_xdyd::x1#2 bitmap_line_xdyd::x1#6 -Identical Phi Values bitmap_line_ydxi::c#2 bitmap_line_ydxi::c#3 -Identical Phi Values bitmap_line_ydxi::xd#3 bitmap_line_ydxi::xd#2 -Identical Phi Values bitmap_line_ydxi::yd#2 bitmap_line_ydxi::yd#5 -Identical Phi Values bitmap_line_ydxi::y1#2 bitmap_line_ydxi::y1#6 -Identical Phi Values bitmap_line_ydxd::c#2 bitmap_line_ydxd::c#3 -Identical Phi Values bitmap_line_ydxd::xd#3 bitmap_line_ydxd::xd#2 -Identical Phi Values bitmap_line_ydxd::yd#2 bitmap_line_ydxd::yd#5 -Identical Phi Values bitmap_line_ydxd::y1#2 bitmap_line_ydxd::y1#6 -Identical Phi Values divr16u::rem#9 divr16u::rem#3 -Identical Phi Values divr16u::dividend#4 divr16u::dividend#1 -Identical Phi Values divr16u::divisor#5 divr16u::divisor#0 -Identical Phi Values divr16u::divisor#1 divr16u::divisor#5 -Identical Phi Values rem16u#13 rem16u#0 -Identical Phi Values CONIO_SCREEN_BANK#27 CONIO_SCREEN_BANK#19 -Identical Phi Values CONIO_SCREEN_TEXT#33 CONIO_SCREEN_TEXT#21 -Identical Phi Values rand_state#35 rand_state#10 -Identical Phi Values rem16u#36 rem16u#28 -Identical Phi Values CONIO_SCREEN_BANK#101 CONIO_SCREEN_BANK#15 -Identical Phi Values CONIO_SCREEN_TEXT#102 CONIO_SCREEN_TEXT#17 -Identical Phi Values CONIO_SCREEN_TEXT#100 CONIO_SCREEN_TEXT#102 -Identical Phi Values CONIO_SCREEN_BANK#100 CONIO_SCREEN_BANK#101 -Identical Phi Values rand_state#15 rand_state#14 -Identical Phi Values rem16u#15 rem16u#13 -Identical Phi Values rand_state#16 rand_state#14 -Identical Phi Values rem16u#16 rem16u#13 -Identical Phi Values rand_state#17 rand_state#14 -Identical Phi Values rem16u#17 rem16u#13 -Identical Phi Values rand_state#18 rand_state#14 -Identical Phi Values rem16u#18 rem16u#13 -Identical Phi Values rand_state#19 rand_state#14 -Identical Phi Values CONIO_SCREEN_BANK#28 CONIO_SCREEN_BANK#100 -Identical Phi Values CONIO_SCREEN_TEXT#34 CONIO_SCREEN_TEXT#100 -Identical Phi Values rand_state#20 rand_state#23 -Identical Phi Values rem16u#19 rem16u#23 -Identical Phi Values CONIO_SCREEN_BANK#17 CONIO_SCREEN_BANK#15 -Identical Phi Values CONIO_SCREEN_TEXT#19 CONIO_SCREEN_TEXT#17 -Identical Phi Values CONIO_SCREEN_BANK#19 CONIO_SCREEN_BANK#0 -Identical Phi Values CONIO_SCREEN_TEXT#21 CONIO_SCREEN_TEXT#0 -Identical Phi Values CONIO_SCREEN_BANK#10 CONIO_SCREEN_BANK#17 -Identical Phi Values CONIO_SCREEN_TEXT#10 CONIO_SCREEN_TEXT#19 -Identical Phi Values rand_state#11 rand_state#20 -Identical Phi Values rem16u#10 rem16u#19 -Successful SSA optimization Pass2IdenticalPhiElimination -Identical Phi Values CONIO_SCREEN_TEXT#11 CONIO_SCREEN_TEXT#17 -Identical Phi Values CONIO_SCREEN_BANK#32 CONIO_SCREEN_BANK#15 -Identical Phi Values CONIO_SCREEN_BANK#11 CONIO_SCREEN_BANK#32 -Identical Phi Values clrscr::color#3 clrscr::color#0 -Successful SSA optimization Pass2IdenticalPhiElimination -Simple Condition memcpy_in_vram::$6 [18] if(memcpy_in_vram::i#2=0) goto bitmap_init::@6 -Simple Condition bitmap_init::$19 [591] if(bitmap_init::bitmask#13!=0) goto bitmap_init::@7 -Simple Condition bitmap_init::$20 [596] if(bitmap_init::x#1!=rangelast(0,$27f)) goto bitmap_init::@1 -Simple Condition bitmap_init::$22 [610] if(bitmap_init::y#1!=rangelast(0,$1df)) goto bitmap_init::@15 -Simple Condition bitmap_plot::$11 [640] if(0!=bitmap_plot::bitshift#0) goto bitmap_plot::@1 -Simple Condition bitmap_line::$0 [661] if(bitmap_line::x0#10=bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 -Simple Condition bitmap_line_xdyi::$7 [765] if(bitmap_line_xdyi::x#2!=bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 -Simple Condition bitmap_line_xdyd::$4 [779] if(bitmap_line_xdyd::xd#5>=bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 -Simple Condition bitmap_line_xdyd::$7 [783] if(bitmap_line_xdyd::x#2!=bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1 -Simple Condition bitmap_line_ydxi::$4 [797] if(bitmap_line_ydxi::yd#5>=bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 -Simple Condition bitmap_line_ydxi::$7 [801] if(bitmap_line_ydxi::y#2!=bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1 -Simple Condition bitmap_line_ydxd::$4 [815] if(bitmap_line_ydxd::yd#5>=bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 -Simple Condition bitmap_line_ydxd::$7 [819] if(bitmap_line_ydxd::y#3!=bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1 -Simple Condition divr16u::$4 [831] if(divr16u::$2==0) goto divr16u::@2 -Simple Condition divr16u::$9 [836] if(divr16u::rem#5> 1 -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 vera_layer_mode_bitmap::config#10 = VERA_LAYER_COLOR_DEPTH_8BPP -Constant vera_layer_mode_bitmap::$1 = word0 vera_layer_mode_bitmap::bitmap_address#1 -Constant vera_layer_mode_bitmap::$9 = vera_layer_mode_bitmap::layer#0*SIZEOF_UNSIGNED_INT -Constant vera_layer_mode_bitmap::$2 = byte2 vera_layer_mode_bitmap::bitmap_address#1 -Constant vera_layer_mode_bitmap::$10 = vera_layer_mode_bitmap::layer#0*SIZEOF_UNSIGNED_LONG -Constant vera_layer_mode_bitmap::bitmap_address#0 = vera_layer_mode_bitmap::bitmap_address#1>>1 -Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero word0 vera_layer_mode_bitmap::bitmap_address#1 in -Simplifying constant evaluating to zero vera_layer_mode_bitmap::layer#0*SIZEOF_UNSIGNED_INT in -Simplifying constant evaluating to zero byte2 vera_layer_mode_bitmap::bitmap_address#1 in -Simplifying constant evaluating to zero vera_layer_mode_bitmap::layer#0*SIZEOF_UNSIGNED_LONG in -Simplifying constant evaluating to zero vera_layer_mode_bitmap::bitmap_address#1>>1 in -Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero *vera_layer_set_text_color_mode::addr#0 in [148] *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 -Simplifying expression containing zero vera_tilebase_offset in [272] vera_tilebase_offset[vera_layer_mode_bitmap::$9] = vera_layer_mode_bitmap::$1 -Simplifying expression containing zero vera_tilebase_address in [276] vera_tilebase_address[vera_layer_mode_bitmap::$10] = vera_layer_mode_bitmap::bitmap_address#1 -Successful SSA optimization PassNSimplifyExpressionWithZero -Eliminating unused constant vera_layer_set_text_color_mode::color_mode#0 -Eliminating unused constant vera_layer_mode_bitmap::$9 -Eliminating unused constant vera_layer_mode_bitmap::$10 -Successful SSA optimization PassNEliminateUnusedVars -Eliminating unused constant VERA_LAYER_CONFIG_16C -Successful SSA optimization PassNEliminateUnusedVars -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 conio_height -Alias candidate removed (volatile)bitmap_init::vera_layer_get_color_depth1_return#0 = bitmap_init::vera_layer_get_color_depth1_$0 bitmap_init::vera_layer_get_color_depth1_return#1 bitmap_init::$0 __bitmap_color_depth -Alias candidate removed (volatile)__bitmap_hscale = bitmap_init::$1 -Alias candidate removed (volatile)__bitmap_vscale = bitmap_init::$2 -Constant right-side identified [262] vera_layer_mode_bitmap::config#11 = vera_layer_mode_bitmap::config#10 | VERA_LAYER_CONFIG_MODE_BITMAP -Constant right-side identified [266] vera_layer_mode_bitmap::tilebase#0 = byte1 vera_layer_mode_bitmap::bitmap_address#0 -Successful SSA optimization Pass2ConstantRValueConsolidation -Constant vera_layer_mode_bitmap::config#11 = vera_layer_mode_bitmap::config#10|VERA_LAYER_CONFIG_MODE_BITMAP -Constant vera_layer_mode_bitmap::tilebase#0 = byte1 vera_layer_mode_bitmap::bitmap_address#0 -Successful SSA optimization Pass2ConstantIdentification -Constant vera_layer_set_config::config#1 = vera_layer_mode_bitmap::config#11 -Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero byte1 vera_layer_mode_bitmap::bitmap_address#0 in -Successful SSA optimization PassNSimplifyConstantZero -Eliminating unused constant vera_layer_mode_bitmap::bitmap_address#0 -Successful SSA optimization PassNEliminateUnusedVars -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 conio_height -Alias candidate removed (volatile)bitmap_init::vera_layer_get_color_depth1_return#0 = bitmap_init::vera_layer_get_color_depth1_$0 bitmap_init::vera_layer_get_color_depth1_return#1 bitmap_init::$0 __bitmap_color_depth -Alias candidate removed (volatile)__bitmap_hscale = bitmap_init::$1 -Alias candidate removed (volatile)__bitmap_vscale = bitmap_init::$2 -Constant right-side identified [265] vera_layer_mode_bitmap::tilebase#1 = vera_layer_mode_bitmap::tilebase#0 & VERA_LAYER_TILEBASE_MASK -Successful SSA optimization Pass2ConstantRValueConsolidation -Constant vera_layer_mode_bitmap::tilebase#1 = vera_layer_mode_bitmap::tilebase#0&VERA_LAYER_TILEBASE_MASK -Successful SSA optimization Pass2ConstantIdentification -Constant vera_layer_set_tilebase::tilebase#1 = vera_layer_mode_bitmap::tilebase#1 -Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero vera_layer_mode_bitmap::tilebase#0&VERA_LAYER_TILEBASE_MASK in -Successful SSA optimization PassNSimplifyConstantZero -Eliminating unused constant vera_layer_mode_bitmap::tilebase#0 -Successful SSA optimization PassNEliminateUnusedVars -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 conio_height -Alias candidate removed (volatile)bitmap_init::vera_layer_get_color_depth1_return#0 = bitmap_init::vera_layer_get_color_depth1_$0 bitmap_init::vera_layer_get_color_depth1_return#1 bitmap_init::$0 __bitmap_color_depth -Alias candidate removed (volatile)__bitmap_hscale = bitmap_init::$1 -Alias candidate removed (volatile)__bitmap_vscale = bitmap_init::$2 -Inlining Noop Cast [312] memcpy_in_vram::src#0 = (void *)insertup::$6 keeping memcpy_in_vram::src#0 -Inlining Noop Cast [335] CONIO_SCREEN_TEXT#17 = (char *)screenlayer::$1 keeping CONIO_SCREEN_TEXT#17 -Inlining Noop Cast [484] bitmap_clear::vdest#0 = (void *)bitmap_clear::$4 keeping bitmap_clear::vdest#0 -Successful SSA optimization Pass2NopCastInlining -Rewriting multiplication to use shift [54] clrscr::$9 = conio_screen_layer * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [73] gotoxy::$5 = conio_screen_layer * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [89] cputc::$15 = conio_screen_layer * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [113] cputln::$2 = conio_screen_layer * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [116] cputln::$3 = conio_screen_layer * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [140] vera_layer_set_config::$0 = vera_layer_set_config::layer#2 * SIZEOF_POINTER -Rewriting multiplication to use shift [149] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 * SIZEOF_POINTER -Rewriting multiplication to use shift [155] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [159] vera_layer_set_tilebase::$0 = vera_layer_set_tilebase::layer#2 * SIZEOF_POINTER -Rewriting multiplication to use shift [174] vera_layer_get_color::$3 = vera_layer_get_color::layer#2 * SIZEOF_POINTER -Rewriting multiplication to use shift [185] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [196] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [201] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [206] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [211] vera_layer_mode_tile::$14 = vera_layer_mode_tile::layer#10 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [226] vera_layer_mode_tile::$15 = vera_layer_mode_tile::layer#10 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [230] vera_layer_mode_tile::$16 = vera_layer_mode_tile::layer#10 * SIZEOF_UNSIGNED_LONG -Rewriting multiplication to use shift [238] vera_layer_mode_tile::$17 = vera_layer_mode_tile::layer#10 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [242] vera_layer_mode_tile::$18 = vera_layer_mode_tile::layer#10 * SIZEOF_UNSIGNED_LONG -Rewriting multiplication to use shift [285] clearline::$5 = conio_screen_layer * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [304] insertup::width#0 = conio_screen_width * 2 -Rewriting multiplication to use shift [337] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 * SIZEOF_POINTER -Rewriting multiplication to use shift [341] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [357] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 * SIZEOF_POINTER -Rewriting multiplication to use shift [361] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [388] bitmap_init::vera_layer_get_color_depth1_$1 = bitmap_init::vera_layer_get_color_depth1_layer#0 * SIZEOF_POINTER -Rewriting multiplication to use shift [410] bitmap_init::$23 = bitmap_init::x#10 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [422] bitmap_init::$24 = bitmap_init::x#10 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [434] bitmap_init::$25 = bitmap_init::x#10 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [444] bitmap_init::$26 = bitmap_init::x#10 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [460] bitmap_init::$27 = bitmap_init::$4 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [464] bitmap_init::$28 = bitmap_init::y#2 * SIZEOF_UNSIGNED_LONG -Rewriting multiplication to use shift [471] bitmap_clear::$6 = __bitmap_vscale * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [475] bitmap_clear::$7 = bitmap_clear::$1 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [491] bitmap_plot::$9 = bitmap_plot::x#4 * SIZEOF_UNSIGNED_INT -Rewriting multiplication to use shift [494] bitmap_plot::$10 = bitmap_plot::y#4 * SIZEOF_UNSIGNED_LONG -Successful SSA optimization Pass2MultiplyToShiftRewriting -Inlining constant with var siblings memcpy_in_vram::i#0 -Inlining constant with var siblings memcpy_in_vram::dest_bank#0 -Inlining constant with var siblings memcpy_in_vram::dest_increment#0 -Inlining constant with var siblings memcpy_in_vram::src_bank#0 -Inlining constant with var siblings memcpy_in_vram::src_increment#0 -Inlining constant with var siblings memcpy_in_vram::dest_bank#1 -Inlining constant with var siblings memcpy_in_vram::dest#1 -Inlining constant with var siblings memcpy_in_vram::dest_increment#1 -Inlining constant with var siblings memcpy_in_vram::src_bank#1 -Inlining constant with var siblings memcpy_in_vram::src#1 -Inlining constant with var siblings memcpy_in_vram::src_increment#1 -Inlining constant with var siblings memcpy_in_vram::num#1 -Inlining constant with var siblings memset_vram::i#0 -Inlining constant with var siblings clrscr::l#0 -Inlining constant with var siblings clrscr::c#0 -Inlining constant with var siblings gotoxy::y#0 -Inlining constant with var siblings gotoxy::x#0 -Inlining constant with var siblings gotoxy::x#1 -Inlining constant with var siblings gotoxy::x#2 -Inlining constant with var siblings gotoxy::x#3 -Inlining constant with var siblings gotoxy::y#3 -Inlining constant with var siblings gotoxy::x#4 -Inlining constant with var siblings gotoxy::y#4 -Inlining constant with var siblings gotoxy::x#5 -Inlining constant with var siblings gotoxy::y#5 -Inlining constant with var siblings gotoxy::x#6 -Inlining constant with var siblings gotoxy::y#6 -Inlining constant with var siblings vera_display_get_hscale::s#0 -Inlining constant with var siblings vera_display_get_vscale::s#0 -Inlining constant with var siblings vera_layer_set_config::layer#1 -Inlining constant with var siblings vera_layer_set_config::config#1 -Inlining constant with var siblings vera_layer_set_mapbase::layer#1 -Inlining constant with var siblings vera_layer_set_mapbase::mapbase#1 -Inlining constant with var siblings vera_layer_set_mapbase::layer#2 -Inlining constant with var siblings vera_layer_set_mapbase::mapbase#2 -Inlining constant with var siblings vera_layer_set_tilebase::layer#1 -Inlining constant with var siblings vera_layer_set_tilebase::tilebase#1 -Inlining constant with var siblings vera_layer_set_textcolor::layer#0 -Inlining constant with var siblings vera_layer_set_textcolor::color#0 -Inlining constant with var siblings vera_layer_set_textcolor::color#1 -Inlining constant with var siblings vera_layer_set_textcolor::color#2 -Inlining constant with var siblings vera_layer_set_textcolor::color#3 -Inlining constant with var siblings vera_layer_set_textcolor::color#4 -Inlining constant with var siblings vera_layer_set_textcolor::color#5 -Inlining constant with var siblings vera_layer_set_backcolor::layer#0 -Inlining constant with var siblings vera_layer_set_backcolor::color#0 -Inlining constant with var siblings vera_layer_set_backcolor::color#1 -Inlining constant with var siblings vera_layer_set_backcolor::color#2 -Inlining constant with var siblings vera_layer_set_backcolor::color#3 -Inlining constant with var siblings vera_layer_mode_tile::config#0 -Inlining constant with var siblings vera_layer_mode_tile::color_depth#0 -Inlining constant with var siblings vera_layer_mode_tile::layer#1 -Inlining constant with var siblings vera_layer_mode_tile::mapbase_address#2 -Inlining constant with var siblings vera_layer_mode_tile::tilebase_address#2 -Inlining constant with var siblings vera_layer_mode_tile::mapwidth#1 -Inlining constant with var siblings vera_layer_mode_tile::mapheight#1 -Inlining constant with var siblings vera_layer_mode_tile::tilewidth#1 -Inlining constant with var siblings vera_layer_mode_tile::tileheight#1 -Inlining constant with var siblings vera_layer_mode_tile::color_depth#1 -Inlining constant with var siblings vera_layer_mode_tile::layer#0 -Inlining constant with var siblings vera_layer_mode_tile::mapbase_address#1 -Inlining constant with var siblings vera_layer_mode_tile::tilebase_address#1 -Inlining constant with var siblings vera_layer_mode_tile::mapwidth#0 -Inlining constant with var siblings vera_layer_mode_tile::mapheight#0 -Inlining constant with var siblings vera_layer_mode_tile::tilewidth#0 -Inlining constant with var siblings vera_layer_mode_tile::tileheight#0 -Inlining constant with var siblings vera_layer_mode_tile::config#1 -Inlining constant with var siblings vera_layer_mode_tile::config#2 -Inlining constant with var siblings vera_layer_mode_tile::config#3 -Inlining constant with var siblings vera_layer_mode_tile::config#4 -Inlining constant with different constant siblings vera_layer_mode_bitmap::config#10 -Inlining constant with var siblings clearline::c#0 -Inlining constant with var siblings insertup::i#0 -Inlining constant with var siblings screenlayer::layer#0 -Inlining constant with var siblings screenlayer::layer#1 -Inlining constant with var siblings screenlayer::layer#2 -Inlining constant with var siblings printf_str::putc#0 -Inlining constant with var siblings printf_str::s#1 -Inlining constant with var siblings printf_str::putc#1 -Inlining constant with var siblings printf_str::s#2 -Inlining constant with var siblings printf_str::putc#2 -Inlining constant with var siblings printf_str::s#3 -Inlining constant with var siblings printf_str::putc#3 -Inlining constant with var siblings printf_str::s#4 -Inlining constant with var siblings printf_str::putc#4 -Inlining constant with var siblings printf_str::s#5 -Inlining constant with var siblings printf_str::putc#5 -Inlining constant with var siblings printf_str::s#6 -Inlining constant with var siblings printf_str::putc#6 -Inlining constant with var siblings printf_str::s#7 -Inlining constant with var siblings bitmap_init::x#0 -Inlining constant with var siblings bitmap_init::y#0 -Inlining constant with var siblings bitmap_line::y0#1 -Inlining constant with var siblings bitmap_line::y1#1 -Inlining constant with var siblings mul16u::res#0 -Inlining constant with var siblings divr16u::quotient#0 -Inlining constant with var siblings divr16u::i#0 -Inlining constant with var siblings modr16u::divisor#0 -Inlining constant with var siblings modr16u::rem#0 -Inlining constant with var siblings modr16u::divisor#1 -Inlining constant with var siblings modr16u::rem#1 -Inlining constant with var siblings modr16u::divisor#2 -Inlining constant with var siblings modr16u::rem#2 -Inlining constant with var siblings modr16u::divisor#3 -Inlining constant with var siblings modr16u::rem#3 -Inlining constant with var siblings main::x#0 -Inlining constant with var siblings main::color#0 -Inlining constant with var siblings main::x#2 -Inlining constant with var siblings rand_state#10 -Constant inlined vera_layer_set_config::layer#1 = vera_layer_mode_bitmap::layer#0 -Constant inlined vera_layer_set_textcolor::color#1 = WHITE -Constant inlined vera_layer_set_textcolor::color#0 = WHITE -Constant inlined main::textcolor5_color#0 = WHITE -Constant inlined vera_layer_set_textcolor::color#3 = WHITE -Constant inlined clrscr::l#0 = 0 -Constant inlined vera_layer_set_textcolor::color#2 = YELLOW -Constant inlined vera_layer_set_textcolor::color#5 = WHITE -Constant inlined vera_layer_set_textcolor::color#4 = YELLOW -Constant inlined modr16u::divisor#0 = $140 -Constant inlined printf_str::s#7 = main::s4 -Constant inlined printf_str::s#5 = main::s4 -Constant inlined printf_str::s#6 = main::s5 -Constant inlined modr16u::divisor#3 = $c8 -Constant inlined printf_str::s#3 = main::s2 -Constant inlined modr16u::divisor#2 = $c8 -Constant inlined printf_str::s#4 = main::s3 -Constant inlined modr16u::divisor#1 = $140 -Constant inlined vera_layer_set_tilebase::tilebase#1 = vera_layer_mode_bitmap::tilebase#1 -Constant inlined printf_str::s#1 = main::s -Constant inlined printf_str::s#2 = main::s1 -Constant inlined memcpy_in_vram::src_increment#1 = VERA_INC_1 -Constant inlined vera_layer_mode_tile::layer#0 = vera_layer_mode_text::layer#0 -Constant inlined memcpy_in_vram::src_increment#0 = VERA_INC_1 -Constant inlined insertup::i#0 = 1 -Constant inlined vera_layer_mode_tile::layer#1 = 1 -Constant inlined vera_layer_set_config::config#1 = vera_layer_mode_bitmap::config#11 -Constant inlined main::bgcolor2_color#0 = BLACK -Constant inlined bitmap_line::y0#1 = 0 -Constant inlined main::textcolor1_color#0 = WHITE -Constant inlined vera_layer_mode_tile::color_depth#0 = 1 -Constant inlined vera_layer_mode_tile::color_depth#1 = 1 -Constant inlined main::textcolor4_color#0 = YELLOW -Constant inlined divr16u::i#0 = 0 -Constant inlined vera_layer_mode_tile::tileheight#0 = vera_layer_mode_text::tileheight#0 -Constant inlined vera_layer_mode_tile::tileheight#1 = 8 -Constant inlined vera_layer_set_mapbase::mapbase#1 = $20 -Constant inlined vera_layer_set_mapbase::mapbase#2 = 0 -Constant inlined vera_layer_mode_tile::tilewidth#1 = 8 -Constant inlined vera_layer_mode_tile::tilewidth#0 = vera_layer_mode_text::tilewidth#0 -Constant inlined memset_vram::i#0 = 0 -Constant inlined memcpy_in_vram::i#0 = 0 -Constant inlined vera_layer_set_text_color_mode::$0 = vera_layer_mode_text::layer#0*SIZEOF_POINTER -Constant inlined vera_layer_mode_tile::mapbase_address#2 = $14000 -Constant inlined vera_layer_mode_tile::mapbase_address#1 = vera_layer_mode_text::mapbase_address#0 -Constant inlined main::x#2 = 0 -Constant inlined main::x#0 = 0 -Constant inlined vera_layer_set_backcolor::color#2 = BLACK -Constant inlined main::bgcolor3_color#0 = BLUE -Constant inlined vera_layer_set_backcolor::color#3 = BLUE -Constant inlined vera_layer_set_backcolor::color#0 = BLUE -Constant inlined vera_layer_set_backcolor::color#1 = BLACK -Constant inlined modr16u::rem#3 = 0 -Constant inlined gotoxy::y#3 = $19 -Constant inlined memcpy_in_vram::dest_bank#1 = 1 -Constant inlined gotoxy::y#4 = $1d -Constant inlined bitmap_line::y1#1 = $c7 -Constant inlined modr16u::rem#1 = 0 -Constant inlined memcpy_in_vram::dest_bank#0 = 0 -Constant inlined gotoxy::y#5 = $1a -Constant inlined modr16u::rem#2 = 0 -Constant inlined vera_layer_set_text_color_mode::layer#0 = vera_layer_mode_text::layer#0 -Constant inlined gotoxy::y#0 = 0 -Constant inlined bitmap_init::y#0 = 0 -Constant inlined gotoxy::y#6 = $1d -Constant inlined modr16u::rem#0 = 0 -Constant inlined main::textcolor3_color#0 = WHITE -Constant inlined vera_layer_set_tilebase::layer#1 = vera_layer_mode_bitmap::layer#0 -Constant inlined printf_str::putc#0 = &cputc -Constant inlined vera_layer_mode_tile::mapheight#0 = vera_layer_mode_text::mapheight#0 -Constant inlined printf_str::putc#1 = &cputc -Constant inlined vera_layer_mode_tile::mapheight#1 = $40 -Constant inlined printf_str::putc#2 = &cputc -Constant inlined printf_str::putc#3 = &cputc -Constant inlined memcpy_in_vram::dest#1 = (void *)(char *) 61440 -Constant inlined printf_str::putc#4 = &cputc -Constant inlined memcpy_in_vram::dest_increment#0 = VERA_INC_1 -Constant inlined printf_str::putc#5 = &cputc -Constant inlined memcpy_in_vram::dest_increment#1 = VERA_INC_1 -Constant inlined printf_str::putc#6 = &cputc -Constant inlined vera_layer_mode_bitmap::$1 = 0 -Constant inlined vera_layer_set_textcolor::layer#0 = 1 -Constant inlined vera_layer_mode_bitmap::$2 = 0 -Constant inlined memcpy_in_vram::num#1 = (unsigned int)$100*8 -Constant inlined vera_display_get_vscale::s#0 = 1 -Constant inlined vera_layer_mode_bitmap::config#10 = VERA_LAYER_COLOR_DEPTH_8BPP -Constant inlined memcpy_in_vram::src_bank#1 = 0 -Constant inlined main::color#0 = 0 -Constant inlined memcpy_in_vram::src_bank#0 = 0 -Constant inlined gotoxy::x#3 = 0 -Constant inlined gotoxy::x#4 = 0 -Constant inlined gotoxy::x#5 = 0 -Constant inlined vera_layer_set_mapbase::layer#2 = 1 -Constant inlined gotoxy::x#6 = 0 -Constant inlined vera_layer_set_mapbase::layer#1 = 0 -Constant inlined gotoxy::x#0 = 0 -Constant inlined gotoxy::x#1 = 0 -Constant inlined gotoxy::x#2 = 0 -Constant inlined rand_state#10 = 1 -Constant inlined vera_layer_mode_tile::tilebase_address#1 = vera_layer_mode_text::tilebase_address#0 -Constant inlined vera_layer_mode_tile::tilebase_address#2 = $1f000 -Constant inlined vera_layer_set_backcolor::layer#0 = 1 -Constant inlined bitmap_init::x#0 = 0 -Constant inlined main::textcolor2_color#0 = YELLOW -Constant inlined vera_layer_mode_tile::mapwidth#0 = vera_layer_mode_text::mapwidth#0 -Constant inlined divr16u::quotient#0 = 0 -Constant inlined vera_layer_mode_tile::mapwidth#1 = $80 -Constant inlined mul16u::res#0 = 0 -Constant inlined clearline::c#0 = 0 -Constant inlined vera_layer_mode_tile::config#0 = 0 -Constant inlined vera_layer_mode_tile::config#1 = VERA_LAYER_COLOR_DEPTH_1BPP -Constant inlined vera_layer_mode_tile::config#2 = VERA_LAYER_COLOR_DEPTH_2BPP -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 *)(char *) 63488 -Constant inlined screenlayer::layer#0 = 1 -Constant inlined screenlayer::layer#1 = 1 -Constant inlined screenlayer::layer#2 = 1 -Constant inlined main::bgcolor1_color#0 = BLACK -Constant inlined clrscr::c#0 = 0 -Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) -Successful SSA optimization Pass2ConstantAdditionElimination -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 conio_height -Alias candidate removed (volatile)bitmap_init::vera_layer_get_color_depth1_return#0 = bitmap_init::vera_layer_get_color_depth1_$0 bitmap_init::vera_layer_get_color_depth1_return#1 bitmap_init::$0 __bitmap_color_depth -Alias candidate removed (volatile)__bitmap_hscale = bitmap_init::$1 -Alias candidate removed (volatile)__bitmap_vscale = bitmap_init::$2 -Identical Phi Values memcpy_in_vram::src_increment#2 VERA_INC_1 -Identical Phi Values memcpy_in_vram::src_bank#2 0 -Identical Phi Values memcpy_in_vram::dest_increment#2 VERA_INC_1 -Identical Phi Values gotoxy::x#10 0 -Identical Phi Values vera_layer_mode_tile::color_depth#2 1 -Identical Phi Values screenlayer::layer#3 1 -Identical Phi Values printf_str::putc#9 &cputc -Identical Phi Values modr16u::rem#4 0 -Successful SSA optimization Pass2IdenticalPhiElimination -Identical Phi Values gotoxy::x#8 0 -Successful SSA optimization Pass2IdenticalPhiElimination -Identified duplicate assignment right side [238] vera_layer_mode_tile::$17 = vera_layer_mode_tile::layer#10 << 1 -Identified duplicate assignment right side [242] vera_layer_mode_tile::$18 = vera_layer_mode_tile::layer#10 << 2 -Successful SSA optimization Pass2DuplicateRValueIdentification -Constant right-side identified [6] memcpy_in_vram::$2 = VERA_INC_1 | 0 -Successful SSA optimization Pass2ConstantRValueConsolidation -Constant memcpy_in_vram::$2 = VERA_INC_1|0 -Constant divr16u::rem#3 = 0 -Successful SSA optimization Pass2ConstantIdentification -Replacing constant pointer function [380] callexecute cputc -Successful SSA optimization Pass2ConstantCallPointerIdentification -if() condition always true - replacing block destination [189] if(1==1) goto vera_layer_mode_tile::@4 -if() condition always false - eliminating [190] if(1==2) goto vera_layer_mode_tile::@5 -if() condition always false - eliminating [191] if(1==4) goto vera_layer_mode_tile::@6 -if() condition always true - replacing block destination [192] if(1!=8) goto vera_layer_mode_tile::@8 -Successful SSA optimization Pass2ConstantIfs -Simplifying expression containing zero VERA_INC_1 in -Successful SSA optimization PassNSimplifyExpressionWithZero -Removing unused block vera_layer_mode_tile::@1 -Removing PHI-reference to removed block (vera_layer_mode_tile::@5) in block vera_layer_mode_tile::@8 -Removing unused block vera_layer_mode_tile::@5 -Removing unused block vera_layer_mode_tile::@2 -Removing PHI-reference to removed block (vera_layer_mode_tile::@6) in block vera_layer_mode_tile::@8 -Removing unused block vera_layer_mode_tile::@6 -Removing PHI-reference to removed block (vera_layer_mode_tile::@3) in block vera_layer_mode_tile::@8 -Removing unused block vera_layer_mode_tile::@3 -Removing PHI-reference to removed block (vera_layer_mode_tile::@7) in block vera_layer_mode_tile::@8 -Removing unused block vera_layer_mode_tile::@7 -Successful SSA optimization Pass2EliminateUnusedBlocks -Eliminating unused constant VERA_LAYER_COLOR_DEPTH_2BPP -Eliminating unused constant VERA_LAYER_COLOR_DEPTH_4BPP -Eliminating unused constant SIZEOF_UNSIGNED_INT -Eliminating unused constant SIZEOF_UNSIGNED_LONG -Successful SSA optimization PassNEliminateUnusedVars -Inlining constant with var siblings divr16u::rem#3 -Constant inlined memcpy_in_vram::$2 = VERA_INC_1 -Constant inlined divr16u::rem#3 = 0 -Successful SSA optimization Pass2ConstantInlining -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 conio_height -Alias candidate removed (volatile)bitmap_init::vera_layer_get_color_depth1_return#0 = bitmap_init::vera_layer_get_color_depth1_$0 bitmap_init::vera_layer_get_color_depth1_return#1 bitmap_init::$0 __bitmap_color_depth -Alias candidate removed (volatile)__bitmap_hscale = bitmap_init::$1 -Alias candidate removed (volatile)__bitmap_vscale = bitmap_init::$2 -Alias vera_layer_mode_tile::$17 = vera_layer_mode_tile::$15 -Alias vera_layer_mode_tile::$18 = vera_layer_mode_tile::$16 -Successful SSA optimization Pass2AliasElimination -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 conio_height -Alias candidate removed (volatile)bitmap_init::vera_layer_get_color_depth1_return#0 = bitmap_init::vera_layer_get_color_depth1_$0 bitmap_init::vera_layer_get_color_depth1_return#1 bitmap_init::$0 __bitmap_color_depth -Alias candidate removed (volatile)__bitmap_hscale = bitmap_init::$1 -Alias candidate removed (volatile)__bitmap_vscale = bitmap_init::$2 -Identical Phi Values vera_layer_mode_tile::config#17 VERA_LAYER_COLOR_DEPTH_1BPP -Successful SSA optimization Pass2IdenticalPhiElimination -Constant right-side identified [193] vera_layer_mode_tile::config#6 = VERA_LAYER_COLOR_DEPTH_1BPP | VERA_LAYER_WIDTH_64 -Constant right-side identified [198] vera_layer_mode_tile::config#7 = VERA_LAYER_COLOR_DEPTH_1BPP | VERA_LAYER_WIDTH_128 -Constant right-side identified [203] vera_layer_mode_tile::config#8 = VERA_LAYER_COLOR_DEPTH_1BPP | VERA_LAYER_WIDTH_256 -Successful SSA optimization Pass2ConstantRValueConsolidation -Constant vera_layer_mode_tile::config#6 = VERA_LAYER_COLOR_DEPTH_1BPP|VERA_LAYER_WIDTH_64 -Constant vera_layer_mode_tile::config#7 = VERA_LAYER_COLOR_DEPTH_1BPP|VERA_LAYER_WIDTH_128 -Constant vera_layer_mode_tile::config#8 = VERA_LAYER_COLOR_DEPTH_1BPP|VERA_LAYER_WIDTH_256 -Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero VERA_LAYER_WIDTH_64 in -Simplifying expression containing zero VERA_LAYER_WIDTH_128 in -Simplifying expression containing zero VERA_LAYER_WIDTH_256 in -Successful SSA optimization PassNSimplifyExpressionWithZero -Inlining constant with var siblings vera_layer_mode_tile::config#6 -Inlining constant with var siblings vera_layer_mode_tile::config#7 -Inlining constant with var siblings vera_layer_mode_tile::config#8 -Constant inlined vera_layer_mode_tile::config#6 = VERA_LAYER_WIDTH_64 -Constant inlined vera_layer_mode_tile::config#7 = VERA_LAYER_WIDTH_128 -Constant inlined vera_layer_mode_tile::config#8 = VERA_LAYER_WIDTH_256 -Successful SSA optimization Pass2ConstantInlining -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 conio_height -Alias candidate removed (volatile)bitmap_init::vera_layer_get_color_depth1_return#0 = bitmap_init::vera_layer_get_color_depth1_$0 bitmap_init::vera_layer_get_color_depth1_return#1 bitmap_init::$0 __bitmap_color_depth -Alias candidate removed (volatile)__bitmap_hscale = bitmap_init::$1 -Alias candidate removed (volatile)__bitmap_vscale = bitmap_init::$2 -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 conio_height -Alias candidate removed (volatile)bitmap_init::vera_layer_get_color_depth1_return#0 = bitmap_init::vera_layer_get_color_depth1_$0 bitmap_init::vera_layer_get_color_depth1_return#1 bitmap_init::$0 __bitmap_color_depth -Alias candidate removed (volatile)__bitmap_hscale = bitmap_init::$1 -Alias candidate removed (volatile)__bitmap_vscale = bitmap_init::$2 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) $a -Finalized unsigned number type (char) $10 -Finalized unsigned number type (char) $b -Finalized unsigned number type (char) $b -Finalized unsigned number type (unsigned int) $280 -Finalized unsigned number type (unsigned int) $280 -Finalized unsigned number type (unsigned int) $1e0 -Finalized unsigned number type (unsigned int) $1e0 -Finalized unsigned number type (unsigned int) $280 -Finalized unsigned number type (unsigned int) $280 -Finalized unsigned number type (unsigned int) $280 -Finalized unsigned number type (unsigned int) $280 -Finalized unsigned number type (char) $10 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 5 -Finalized unsigned number type (char) 5 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 1 -Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying constant integer cast $100*8 -Successful SSA optimization PassNCastSimplification -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 conio_height -Alias candidate removed (volatile)bitmap_init::vera_layer_get_color_depth1_return#0 = bitmap_init::vera_layer_get_color_depth1_$0 bitmap_init::vera_layer_get_color_depth1_return#1 bitmap_init::$0 __bitmap_color_depth -Alias candidate removed (volatile)__bitmap_hscale = bitmap_init::$1 -Alias candidate removed (volatile)__bitmap_vscale = bitmap_init::$2 -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 conio_height -Alias candidate removed (volatile)bitmap_init::vera_layer_get_color_depth1_return#0 = bitmap_init::vera_layer_get_color_depth1_$0 bitmap_init::vera_layer_get_color_depth1_return#1 bitmap_init::$0 __bitmap_color_depth -Alias candidate removed (volatile)__bitmap_hscale = bitmap_init::$1 -Alias candidate removed (volatile)__bitmap_vscale = bitmap_init::$2 -Added new block during phi lifting gotoxy::@5(between gotoxy and gotoxy::@1) -Added new block during phi lifting vera_display_get_hscale::@5(between vera_display_get_hscale::@2 and vera_display_get_hscale::@1) -Added new block during phi lifting vera_display_get_vscale::@5(between vera_display_get_vscale::@2 and vera_display_get_vscale::@1) -Added new block during phi lifting vera_layer_mode_tile::@36(between vera_layer_mode_tile::@19 and vera_layer_mode_tile::@24) -Added new block during phi lifting vera_layer_mode_tile::@37(between vera_layer_mode_tile::@25 and vera_layer_mode_tile::@28) -Added new block during phi lifting vera_layer_mode_tile::@38(between vera_layer_mode_tile::@29 and vera_layer_mode_tile::@32) -Added new block during phi lifting conio_x16_init::@11(between conio_x16_init::@9 and conio_x16_init::@1) -Added new block during phi lifting bitmap_init::@19(between bitmap_init::@7 and bitmap_init::@1) -Added new block during phi lifting bitmap_init::@20(between bitmap_init::@1 and bitmap_init::@2) -Added new block during phi lifting bitmap_init::@21(between bitmap_init::@2 and bitmap_init::@3) -Added new block during phi lifting bitmap_init::@22(between bitmap_init::@3 and bitmap_init::@4) -Added new block during phi lifting bitmap_init::@23(between bitmap_init::@5 and bitmap_init::@6) -Added new block during phi lifting bitmap_init::@24(between bitmap_init::@6 and bitmap_init::@7) -Added new block during phi lifting bitmap_init::@25(between bitmap_init::@15 and bitmap_init::@15) -Added new block during phi lifting mul16u::@6(between mul16u::@2 and mul16u::@4) -Added new block during phi lifting bitmap_line_xdyi::@5(between bitmap_line_xdyi::@2 and bitmap_line_xdyi::@1) -Added new block during phi lifting bitmap_line_xdyi::@6(between bitmap_line_xdyi::@4 and bitmap_line_xdyi::@2) -Added new block during phi lifting bitmap_line_xdyd::@5(between bitmap_line_xdyd::@2 and bitmap_line_xdyd::@1) -Added new block during phi lifting bitmap_line_xdyd::@6(between bitmap_line_xdyd::@4 and bitmap_line_xdyd::@2) -Added new block during phi lifting bitmap_line_ydxi::@5(between bitmap_line_ydxi::@2 and bitmap_line_ydxi::@1) -Added new block during phi lifting bitmap_line_ydxi::@6(between bitmap_line_ydxi::@4 and bitmap_line_ydxi::@2) -Added new block during phi lifting bitmap_line_ydxd::@5(between bitmap_line_ydxd::@2 and bitmap_line_ydxd::@1) -Added new block during phi lifting bitmap_line_ydxd::@6(between bitmap_line_ydxd::@4 and bitmap_line_ydxd::@2) -Added new block during phi lifting divr16u::@7(between divr16u::@3 and divr16u::@1) -Added new block during phi lifting divr16u::@8(between divr16u::@1 and divr16u::@2) -Added new block during phi lifting divr16u::@9(between divr16u::@2 and divr16u::@3) -Added new block during phi lifting main::@59(between main::@54 and main::@4) -Adding NOP phi() at start of __start -Adding NOP phi() at start of __start::@2 -Adding NOP phi() at start of __start::@1 -Adding NOP phi() at start of __start::@3 -Adding NOP phi() at start of conio_x16_init::@3 -Adding NOP phi() at start of conio_x16_init::@4 -Adding NOP phi() at start of conio_x16_init::@5 -Adding NOP phi() at start of conio_x16_init::@6 -Adding NOP phi() at start of conio_x16_init::@7 -Adding NOP phi() at start of conio_x16_init::@8 -Adding NOP phi() at start of conio_x16_init::@10 -Adding NOP phi() at start of cputc::@4 -Adding NOP phi() at start of cputc::@9 -Adding NOP phi() at start of cputc::@6 -Adding NOP phi() at start of cputc::@10 -Adding NOP phi() at start of cputc::@1 -Adding NOP phi() at start of cputc::@8 -Adding NOP phi() at start of main -Adding NOP phi() at start of main::@17 -Adding NOP phi() at start of main::@18 -Adding NOP phi() at start of main::@19 -Adding NOP phi() at start of main::@20 -Adding NOP phi() at start of main::@21 -Adding NOP phi() at start of main::@8 -Adding NOP phi() at start of main::@22 -Adding NOP phi() at start of main::@9 -Adding NOP phi() at start of main::@23 -Adding NOP phi() at start of main::@24 -Adding NOP phi() at start of main::@25 -Adding NOP phi() at start of main::@26 -Adding NOP phi() at start of main::@27 -Adding NOP phi() at start of main::@28 -Adding NOP phi() at start of main::@10 -Adding NOP phi() at start of main::@29 -Adding NOP phi() at start of main::@30 -Adding NOP phi() at start of main::@31 -Adding NOP phi() at start of main::@32 -Adding NOP phi() at start of main::@11 -Adding NOP phi() at start of main::@33 -Adding NOP phi() at start of main::@3 -Adding NOP phi() at start of main::@45 -Adding NOP phi() at start of main::@12 -Adding NOP phi() at start of main::@46 -Adding NOP phi() at start of main::@13 -Adding NOP phi() at start of main::@47 -Adding NOP phi() at start of main::@48 -Adding NOP phi() at start of main::@49 -Adding NOP phi() at start of main::@50 -Adding NOP phi() at start of main::@51 -Adding NOP phi() at start of main::@14 -Adding NOP phi() at start of main::@52 -Adding NOP phi() at start of main::@6 -Adding NOP phi() at start of main::@55 -Adding NOP phi() at start of main::@56 -Adding NOP phi() at start of main::@15 -Adding NOP phi() at start of main::@57 -Adding NOP phi() at start of main::@16 -Adding NOP phi() at start of main::@58 -Adding NOP phi() at start of vera_layer_mode_text -Adding NOP phi() at start of vera_layer_mode_text::@4 -Adding NOP phi() at start of vera_layer_mode_text::@2 -Adding NOP phi() at start of vera_layer_mode_text::@5 -Adding NOP phi() at start of gotoxy::@3 -Adding NOP phi() at start of gotoxy::@4 -Adding NOP phi() at start of cputln::@1 -Adding NOP phi() at start of vera_layer_mode_tile::@4 -Adding NOP phi() at start of vera_layer_mode_tile::@35 -Adding NOP phi() at start of vera_layer_mode_bitmap -Adding NOP phi() at start of vera_layer_mode_bitmap::@1 -Adding NOP phi() at start of vera_layer_mode_bitmap::@2 -Adding NOP phi() at start of vera_layer_mode_bitmap::@3 -Adding NOP phi() at start of vera_layer_mode_bitmap::@7 -Adding NOP phi() at start of vera_layer_mode_bitmap::@11 -Adding NOP phi() at start of vera_layer_mode_bitmap::@10 -Adding NOP phi() at start of vera_layer_mode_bitmap::@13 -Adding NOP phi() at start of vera_layer_mode_bitmap::@14 -Adding NOP phi() at start of bitmap_clear::@2 -Adding NOP phi() at start of bitmap_line::@16 -Adding NOP phi() at start of bitmap_line::@15 -Adding NOP phi() at start of bitmap_line::@18 -Adding NOP phi() at start of bitmap_line::@17 -Adding NOP phi() at start of bitmap_line::@20 -Adding NOP phi() at start of bitmap_line::@19 -Adding NOP phi() at start of bitmap_line::@22 -Adding NOP phi() at start of bitmap_line::@21 -Adding NOP phi() at start of cscroll::@3 -Adding NOP phi() at start of cscroll::@4 -Adding NOP phi() at start of cscroll::@6 -Adding NOP phi() at start of vera_display_get_hscale -Adding NOP phi() at start of vera_display_get_vscale -Adding NOP phi() at start of mul16u::@3 -Adding NOP phi() at start of insertup::@3 -Adding NOP phi() at start of insertup::@5 -CALL GRAPH -Calls in [__start] to conio_x16_init:13 main:16 -Calls in [conio_x16_init] to vera_layer_mode_text:20 screensize:22 screenlayer:24 vera_layer_set_textcolor:26 vera_layer_set_backcolor:28 vera_layer_set_mapbase:30 vera_layer_set_mapbase:32 gotoxy:39 -Calls in [cputc] to vera_layer_get_color:47 cputln:70 cputln:75 cputln:78 -Calls in [main] to memcpy_in_vram:81 vera_layer_mode_tile:83 vera_layer_mode_bitmap:85 screenlayer:87 vera_layer_set_textcolor:91 vera_layer_set_backcolor:96 clrscr:99 gotoxy:101 printf_str:103 printf_str:105 printf_str:107 printf_str:109 bitmap_init:113 bitmap_clear:115 gotoxy:117 vera_layer_set_textcolor:121 printf_str:124 kbhit:127 vera_layer_set_textcolor:134 vera_layer_set_backcolor:139 clrscr:142 gotoxy:144 printf_str:146 gotoxy:148 vera_layer_set_textcolor:152 printf_str:155 kbhit:158 screenlayer:163 vera_layer_set_textcolor:167 vera_layer_set_backcolor:172 clrscr:175 bitmap_line:184 rand:192 modr16u:196 rand:200 modr16u:204 rand:208 modr16u:212 rand:216 modr16u:220 rand:224 bitmap_line:233 -Calls in [vera_layer_mode_text] to vera_layer_mode_tile:236 vera_layer_set_text_color_mode:239 -Calls in [screenlayer] to vera_layer_get_mapbase_bank:251 vera_layer_get_mapbase_offset:255 vera_layer_get_rowshift:269 vera_layer_get_rowskip:274 -Calls in [cputln] to cscroll:333 -Calls in [vera_layer_mode_tile] to vera_layer_set_config:377 vera_layer_set_mapbase:391 vera_layer_set_tilebase:414 -Calls in [vera_layer_mode_bitmap] to vera_layer_set_config:448 vera_layer_set_tilebase:450 -Calls in [clrscr] to vera_layer_get_backcolor:455 vera_layer_get_textcolor:460 -Calls in [printf_str] to cputc:497 -Calls in [bitmap_init] to vera_display_get_hscale:510 vera_display_get_vscale:514 -Calls in [bitmap_clear] to mul16u:618 memset_vram:626 -Calls in [bitmap_line] to bitmap_line_ydxi:652 bitmap_line_xdyi:667 bitmap_line_ydxd:683 bitmap_line_xdyd:697 bitmap_line_ydxd:715 bitmap_line_xdyd:729 bitmap_line_ydxi:745 bitmap_line_xdyi:759 -Calls in [modr16u] to divr16u:773 -Calls in [cscroll] to insertup:796 gotoxy:799 -Calls in [bitmap_line_ydxi] to bitmap_plot:876 -Calls in [bitmap_line_xdyi] to bitmap_plot:905 -Calls in [bitmap_line_ydxd] to bitmap_plot:934 -Calls in [bitmap_line_xdyd] to bitmap_plot:963 -Calls in [insertup] to clearline:1013 memcpy_in_vram:1025 -Calls in [clearline] to vera_layer_get_color:1066 - -Created 128 initial phi equivalence classes -Coalesced [35] conio_x16_init::line#10 = conio_x16_init::line#1 -Coalesced [38] gotoxy::y#11 = gotoxy::y#1 -Coalesced [42] conio_x16_init::line#11 = conio_x16_init::line#0 -Coalesced [46] vera_layer_get_color::layer#6 = vera_layer_get_color::layer#0 -Coalesced [90] vera_layer_set_textcolor::layer#7 = vera_layer_set_textcolor::layer#1 -Coalesced [95] vera_layer_set_backcolor::layer#5 = vera_layer_set_backcolor::layer#1 -Coalesced [120] vera_layer_set_textcolor::layer#8 = vera_layer_set_textcolor::layer#2 -Coalesced [133] vera_layer_set_textcolor::layer#9 = vera_layer_set_textcolor::layer#3 -Coalesced [138] vera_layer_set_backcolor::layer#6 = vera_layer_set_backcolor::layer#2 -Coalesced [151] vera_layer_set_textcolor::layer#10 = vera_layer_set_textcolor::layer#4 -Coalesced [166] vera_layer_set_textcolor::layer#11 = vera_layer_set_textcolor::layer#5 -Coalesced [171] vera_layer_set_backcolor::layer#7 = vera_layer_set_backcolor::layer#3 -Coalesced [181] bitmap_line::x0#16 = bitmap_line::x0#1 -Coalesced [182] bitmap_line::x1#16 = bitmap_line::x1#1 -Coalesced [183] bitmap_line::c#18 = bitmap_line::c#1 -Coalesced [188] main::color#8 = main::color#1 -Coalesced [189] main::x#7 = main::x#1 -Coalesced (already) [190] main::color#7 = main::color#1 -Coalesced [191] rand_state#88 = rand_state#23 -Coalesced [195] modr16u::dividend#5 = modr16u::dividend#0 -Coalesced [199] rand_state#89 = rand_state#14 -Coalesced [203] modr16u::dividend#6 = modr16u::dividend#1 -Coalesced (already) [207] rand_state#90 = rand_state#14 -Coalesced [211] modr16u::dividend#7 = modr16u::dividend#2 -Coalesced (already) [215] rand_state#91 = rand_state#14 -Coalesced [219] modr16u::dividend#8 = modr16u::dividend#3 -Coalesced (already) [223] rand_state#92 = rand_state#14 -Coalesced [228] bitmap_line::x0#15 = bitmap_line::x0#0 -Coalesced [229] bitmap_line::x1#15 = bitmap_line::x1#0 -Coalesced [230] bitmap_line::y0#15 = bitmap_line::y0#0 -Coalesced [231] bitmap_line::y1#15 = bitmap_line::y1#0 -Coalesced [232] bitmap_line::c#17 = bitmap_line::c#0 -Coalesced (already) [234] rand_state#93 = rand_state#14 -Coalesced [313] gotoxy::y#13 = gotoxy::y#7 -Coalesced [321] vera_layer_get_color::return#9 = vera_layer_get_color::return#2 -Coalesced [325] vera_layer_get_color::return#8 = vera_layer_get_color::return#1 -Coalesced [355] memcpy_in_vram::i#4 = memcpy_in_vram::i#1 -Coalesced [371] vera_layer_mode_tile::config#41 = vera_layer_mode_tile::config#12 -Coalesced [375] vera_layer_set_config::layer#3 = vera_layer_set_config::layer#0 -Coalesced [376] vera_layer_set_config::config#3 = vera_layer_set_config::config#0 -Coalesced [389] vera_layer_set_mapbase::layer#4 = vera_layer_set_mapbase::layer#0 -Coalesced [390] vera_layer_set_mapbase::mapbase#4 = vera_layer_set_mapbase::mapbase#0 -Coalesced [403] vera_layer_mode_tile::tilebase#16 = vera_layer_mode_tile::tilebase#3 -Coalesced [408] vera_layer_mode_tile::tilebase#19 = vera_layer_mode_tile::tilebase#5 -Coalesced [412] vera_layer_set_tilebase::layer#3 = vera_layer_set_tilebase::layer#0 -Coalesced [413] vera_layer_set_tilebase::tilebase#3 = vera_layer_set_tilebase::tilebase#0 -Coalesced [417] vera_layer_mode_tile::tilebase#17 = vera_layer_mode_tile::tilebase#12 -Coalesced (already) [418] vera_layer_mode_tile::tilebase#18 = vera_layer_mode_tile::tilebase#12 -Coalesced [419] vera_layer_mode_tile::tilebase#14 = vera_layer_mode_tile::tilebase#1 -Coalesced (already) [420] vera_layer_mode_tile::tilebase#15 = vera_layer_mode_tile::tilebase#1 -Coalesced [421] vera_layer_mode_tile::config#37 = vera_layer_mode_tile::config#21 -Coalesced [423] vera_layer_mode_tile::config#40 = vera_layer_mode_tile::config#11 -Coalesced [425] vera_layer_mode_tile::config#39 = vera_layer_mode_tile::config#10 -Coalesced (already) [426] vera_layer_mode_tile::config#38 = vera_layer_mode_tile::config#21 -Coalesced [464] clrscr::line_text#10 = clrscr::line_text#0 -Coalesced [483] clrscr::l#7 = clrscr::l#1 -Coalesced [484] clrscr::line_text#9 = clrscr::line_text#1 -Coalesced [488] clrscr::c#4 = clrscr::c#1 -Coalesced [490] printf_str::s#11 = printf_str::s#9 -Coalesced [499] printf_str::s#12 = printf_str::s#0 -Coalesced [520] bitmap_init::bitmask#17 = bitmap_init::bitmask#0 -Coalesced [521] bitmap_init::bitshift#17 = bitmap_init::bitshift#0 -Coalesced [534] bitmap_init::bitmask#20 = bitmap_init::bitmask#1 -Coalesced [535] bitmap_init::bitshift#20 = bitmap_init::bitshift#1 -Coalesced [548] bitmap_init::bitmask#22 = bitmap_init::bitmask#2 -Coalesced [549] bitmap_init::bitshift#22 = bitmap_init::bitshift#2 -Coalesced [562] bitmap_init::bitshift#23 = bitmap_init::bitshift#3 -Coalesced [563] bitmap_init::bitmask#23 = bitmap_init::bitmask#3 -Coalesced [575] bitmap_init::bitshift#25 = bitmap_init::bitshift#4 -Coalesced [579] bitmap_init::bitmask#25 = bitmap_init::bitmask#4 -Coalesced [588] bitmap_init::yoffs#3 = bitmap_init::yoffs#0 -Coalesced [597] bitmap_init::y#3 = bitmap_init::y#1 -Coalesced [598] bitmap_init::yoffs#4 = bitmap_init::yoffs#1 -Coalesced [599] bitmap_init::x#15 = bitmap_init::x#1 -Coalesced [600] bitmap_init::bitmask#18 = bitmap_init::bitmask#16 -Coalesced [601] bitmap_init::bitshift#18 = bitmap_init::bitshift#14 -Coalesced [602] bitmap_init::bitmask#26 = bitmap_init::bitmask#13 -Coalesced [603] bitmap_init::bitshift#26 = bitmap_init::bitshift#13 -Coalesced [604] bitmap_init::bitshift#24 = bitmap_init::bitshift#12 -Coalesced [605] bitmap_init::bitmask#24 = bitmap_init::bitmask#12 -Coalesced [606] bitmap_init::bitmask#21 = bitmap_init::bitmask#11 -Coalesced [607] bitmap_init::bitshift#21 = bitmap_init::bitshift#11 -Coalesced (already) [608] bitmap_init::bitmask#19 = bitmap_init::bitmask#10 -Coalesced (already) [609] bitmap_init::bitshift#19 = bitmap_init::bitshift#10 -Coalesced [646] bitmap_line_ydxi::xd#8 = bitmap_line_ydxi::xd#0 -Coalesced [647] bitmap_line_ydxi::x#9 = bitmap_line_ydxi::x#0 -Coalesced [648] bitmap_line_ydxi::y#9 = bitmap_line_ydxi::y#0 -Coalesced [649] bitmap_line_ydxi::c#8 = bitmap_line_ydxi::c#0 -Coalesced [650] bitmap_line_ydxi::yd#8 = bitmap_line_ydxi::yd#0 -Coalesced [651] bitmap_line_ydxi::y1#8 = bitmap_line_ydxi::y1#0 -Coalesced [661] bitmap_line_xdyi::yd#8 = bitmap_line_xdyi::yd#0 -Coalesced [662] bitmap_line_xdyi::x#9 = bitmap_line_xdyi::x#0 -Coalesced [663] bitmap_line_xdyi::y#9 = bitmap_line_xdyi::y#0 -Coalesced [664] bitmap_line_xdyi::c#8 = bitmap_line_xdyi::c#0 -Coalesced [665] bitmap_line_xdyi::xd#8 = bitmap_line_xdyi::xd#0 -Coalesced [666] bitmap_line_xdyi::x1#8 = bitmap_line_xdyi::x1#0 -Coalesced [677] bitmap_line_ydxd::xd#7 = bitmap_line_ydxd::xd#0 -Coalesced [678] bitmap_line_ydxd::x#8 = bitmap_line_ydxd::x#0 -Coalesced [679] bitmap_line_ydxd::y#9 = bitmap_line_ydxd::y#0 -Coalesced [680] bitmap_line_ydxd::c#7 = bitmap_line_ydxd::c#0 -Coalesced [681] bitmap_line_ydxd::yd#7 = bitmap_line_ydxd::yd#0 -Coalesced [682] bitmap_line_ydxd::y1#7 = bitmap_line_ydxd::y1#0 -Coalesced [691] bitmap_line_xdyd::yd#8 = bitmap_line_xdyd::yd#0 -Coalesced [692] bitmap_line_xdyd::x#9 = bitmap_line_xdyd::x#0 -Coalesced [693] bitmap_line_xdyd::y#9 = bitmap_line_xdyd::y#0 -Coalesced [694] bitmap_line_xdyd::c#8 = bitmap_line_xdyd::c#0 -Coalesced [695] bitmap_line_xdyd::xd#8 = bitmap_line_xdyd::xd#0 -Coalesced [696] bitmap_line_xdyd::x1#8 = bitmap_line_xdyd::x1#0 -Coalesced [709] bitmap_line_ydxd::xd#8 = bitmap_line_ydxd::xd#1 -Coalesced [710] bitmap_line_ydxd::x#9 = bitmap_line_ydxd::x#1 -Coalesced [711] bitmap_line_ydxd::y#10 = bitmap_line_ydxd::y#1 -Coalesced [712] bitmap_line_ydxd::c#8 = bitmap_line_ydxd::c#1 -Coalesced [713] bitmap_line_ydxd::yd#8 = bitmap_line_ydxd::yd#1 -Coalesced [714] bitmap_line_ydxd::y1#8 = bitmap_line_ydxd::y1#1 -Coalesced [723] bitmap_line_xdyd::yd#7 = bitmap_line_xdyd::yd#1 -Coalesced [724] bitmap_line_xdyd::x#8 = bitmap_line_xdyd::x#1 -Coalesced [725] bitmap_line_xdyd::y#8 = bitmap_line_xdyd::y#1 -Coalesced [726] bitmap_line_xdyd::c#7 = bitmap_line_xdyd::c#1 -Coalesced [727] bitmap_line_xdyd::xd#7 = bitmap_line_xdyd::xd#1 -Coalesced [728] bitmap_line_xdyd::x1#7 = bitmap_line_xdyd::x1#1 -Coalesced [739] bitmap_line_ydxi::xd#7 = bitmap_line_ydxi::xd#1 -Coalesced [740] bitmap_line_ydxi::x#8 = bitmap_line_ydxi::x#1 -Coalesced [741] bitmap_line_ydxi::y#8 = bitmap_line_ydxi::y#1 -Coalesced [742] bitmap_line_ydxi::c#7 = bitmap_line_ydxi::c#1 -Coalesced [743] bitmap_line_ydxi::yd#7 = bitmap_line_ydxi::yd#1 -Coalesced [744] bitmap_line_ydxi::y1#7 = bitmap_line_ydxi::y1#1 -Coalesced [753] bitmap_line_xdyi::yd#7 = bitmap_line_xdyi::yd#1 -Coalesced [754] bitmap_line_xdyi::x#8 = bitmap_line_xdyi::x#1 -Coalesced [755] bitmap_line_xdyi::y#8 = bitmap_line_xdyi::y#1 -Coalesced [756] bitmap_line_xdyi::c#7 = bitmap_line_xdyi::c#1 -Coalesced [757] bitmap_line_xdyi::xd#7 = bitmap_line_xdyi::xd#1 -Coalesced [758] bitmap_line_xdyi::x1#7 = bitmap_line_xdyi::x1#1 -Coalesced [798] gotoxy::y#12 = gotoxy::y#2 -Coalesced [818] vera_display_get_hscale::return#5 = vera_display_get_hscale::s#2 -Coalesced [823] vera_display_get_hscale::s#5 = vera_display_get_hscale::s#1 -Coalesced [827] vera_display_get_vscale::return#5 = vera_display_get_vscale::s#2 -Coalesced [832] vera_display_get_vscale::s#5 = vera_display_get_vscale::s#1 -Coalesced [834] mul16u::a#7 = mul16u::a#0 -Coalesced [835] mul16u::mb#6 = mul16u::mb#0 -Coalesced [843] mul16u::res#9 = mul16u::res#1 -Coalesced [847] mul16u::a#8 = mul16u::a#1 -Coalesced [848] mul16u::res#7 = mul16u::res#6 -Coalesced [849] mul16u::mb#7 = mul16u::mb#1 -Coalesced (already) [850] mul16u::res#8 = mul16u::res#2 -Coalesced [863] memset_vram::i#4 = memset_vram::i#1 -Coalesced [866] bitmap_line_ydxi::x#10 = bitmap_line_ydxi::x#5 -Coalesced [867] bitmap_line_ydxi::y#10 = bitmap_line_ydxi::y#6 -Coalesced [868] bitmap_line_ydxi::e#7 = bitmap_line_ydxi::e#0 -Coalesced [873] bitmap_plot::x#13 = bitmap_plot::x#2 -Coalesced [874] bitmap_plot::y#8 = bitmap_plot::y#2 -Coalesced [875] bitmap_plot::c#13 = bitmap_plot::c#3 -Coalesced [882] bitmap_line_ydxi::x#12 = bitmap_line_ydxi::x#2 -Coalesced [883] bitmap_line_ydxi::e#9 = bitmap_line_ydxi::e#2 -Coalesced [888] bitmap_line_ydxi::x#11 = bitmap_line_ydxi::x#6 -Coalesced [889] bitmap_line_ydxi::y#11 = bitmap_line_ydxi::y#2 -Coalesced [890] bitmap_line_ydxi::e#8 = bitmap_line_ydxi::e#6 -Coalesced (already) [891] bitmap_line_ydxi::x#13 = bitmap_line_ydxi::x#3 -Coalesced [892] bitmap_line_ydxi::e#10 = bitmap_line_ydxi::e#1 -Coalesced [895] bitmap_line_xdyi::x#10 = bitmap_line_xdyi::x#6 -Coalesced [896] bitmap_line_xdyi::y#10 = bitmap_line_xdyi::y#5 -Coalesced [897] bitmap_line_xdyi::e#7 = bitmap_line_xdyi::e#0 -Coalesced [902] bitmap_plot::x#11 = bitmap_plot::x#0 -Coalesced [903] bitmap_plot::y#6 = bitmap_plot::y#0 -Coalesced [904] bitmap_plot::c#11 = bitmap_plot::c#1 -Coalesced [911] bitmap_line_xdyi::y#12 = bitmap_line_xdyi::y#2 -Coalesced [912] bitmap_line_xdyi::e#9 = bitmap_line_xdyi::e#2 -Coalesced [917] bitmap_line_xdyi::x#11 = bitmap_line_xdyi::x#2 -Coalesced [918] bitmap_line_xdyi::y#11 = bitmap_line_xdyi::y#6 -Coalesced [919] bitmap_line_xdyi::e#8 = bitmap_line_xdyi::e#6 -Coalesced (already) [920] bitmap_line_xdyi::y#13 = bitmap_line_xdyi::y#3 -Coalesced [921] bitmap_line_xdyi::e#10 = bitmap_line_xdyi::e#1 -Coalesced [924] bitmap_line_ydxd::x#10 = bitmap_line_ydxd::x#5 -Coalesced [925] bitmap_line_ydxd::y#11 = bitmap_line_ydxd::y#7 -Coalesced [926] bitmap_line_ydxd::e#7 = bitmap_line_ydxd::e#0 -Coalesced [931] bitmap_plot::x#12 = bitmap_plot::x#3 -Coalesced [932] bitmap_plot::y#7 = bitmap_plot::y#3 -Coalesced [933] bitmap_plot::c#12 = bitmap_plot::c#4 -Coalesced [940] bitmap_line_ydxd::x#12 = bitmap_line_ydxd::x#2 -Coalesced [941] bitmap_line_ydxd::e#9 = bitmap_line_ydxd::e#2 -Coalesced [946] bitmap_line_ydxd::x#11 = bitmap_line_ydxd::x#6 -Coalesced [947] bitmap_line_ydxd::y#12 = bitmap_line_ydxd::y#3 -Coalesced [948] bitmap_line_ydxd::e#8 = bitmap_line_ydxd::e#6 -Coalesced (already) [949] bitmap_line_ydxd::x#13 = bitmap_line_ydxd::x#3 -Coalesced [950] bitmap_line_ydxd::e#10 = bitmap_line_ydxd::e#1 -Coalesced [953] bitmap_line_xdyd::x#10 = bitmap_line_xdyd::x#6 -Coalesced [954] bitmap_line_xdyd::y#10 = bitmap_line_xdyd::y#5 -Coalesced [955] bitmap_line_xdyd::e#7 = bitmap_line_xdyd::e#0 -Coalesced [960] bitmap_plot::x#10 = bitmap_plot::x#1 -Coalesced [961] bitmap_plot::y#5 = bitmap_plot::y#1 -Coalesced [962] bitmap_plot::c#10 = bitmap_plot::c#2 -Coalesced [969] bitmap_line_xdyd::y#12 = bitmap_line_xdyd::y#2 -Coalesced [970] bitmap_line_xdyd::e#9 = bitmap_line_xdyd::e#2 -Coalesced [975] bitmap_line_xdyd::x#11 = bitmap_line_xdyd::x#2 -Coalesced [976] bitmap_line_xdyd::y#11 = bitmap_line_xdyd::y#6 -Coalesced [977] bitmap_line_xdyd::e#8 = bitmap_line_xdyd::e#6 -Coalesced (already) [978] bitmap_line_xdyd::y#13 = bitmap_line_xdyd::y#3 -Coalesced [979] bitmap_line_xdyd::e#10 = bitmap_line_xdyd::e#1 -Coalesced [980] divr16u::dividend#8 = divr16u::dividend#1 -Coalesced [987] divr16u::rem#13 = divr16u::rem#1 -Coalesced [994] divr16u::rem#15 = divr16u::rem#2 -Coalesced [995] divr16u::return#5 = divr16u::quotient#2 -Coalesced [1001] divr16u::rem#11 = divr16u::rem#10 -Coalesced [1002] divr16u::dividend#9 = divr16u::dividend#0 -Coalesced [1003] divr16u::quotient#9 = divr16u::return#0 -Coalesced [1004] divr16u::i#7 = divr16u::i#1 -Coalesced [1005] divr16u::rem#14 = divr16u::rem#5 -Coalesced [1006] divr16u::return#4 = divr16u::quotient#1 -Coalesced [1007] divr16u::rem#12 = divr16u::rem#0 -Coalesced [1023] memcpy_in_vram::dest#3 = memcpy_in_vram::dest#0 -Coalesced [1024] memcpy_in_vram::num#5 = memcpy_in_vram::num#0 -Coalesced [1027] insertup::i#5 = insertup::i#1 -Coalesced [1039] bitmap_plot::c#15 = bitmap_plot::c#5 -Coalesced [1055] bitmap_plot::c#14 = bitmap_plot::$3 -Coalesced [1065] vera_layer_get_color::layer#5 = vera_layer_get_color::layer#1 -Coalesced [1076] clearline::c#4 = clearline::c#1 -Coalesced down to 92 phi equivalence classes -Culled Empty Block label __start::@2 -Culled Empty Block label __start::@3 -Culled Empty Block label conio_x16_init::@10 -Culled Empty Block label conio_x16_init::@11 -Culled Empty Block label cputc::@9 -Culled Empty Block label cputc::@10 -Culled Empty Block label cputc::@8 -Culled Empty Block label main::@20 -Culled Empty Block label main::@21 -Culled Empty Block label main::@8 -Culled Empty Block label main::@22 -Culled Empty Block label main::@28 -Culled Empty Block label main::@31 -Culled Empty Block label main::@32 -Culled Empty Block label main::@33 -Culled Empty Block label main::@3 -Culled Empty Block label main::@45 -Culled Empty Block label main::@12 -Culled Empty Block label main::@46 -Culled Empty Block label main::@50 -Culled Empty Block label main::@51 -Culled Empty Block label main::@52 -Culled Empty Block label main::@55 -Culled Empty Block label main::@56 -Culled Empty Block label main::@15 -Culled Empty Block label main::@57 -Culled Empty Block label main::@58 -Culled Empty Block label main::@7 -Culled Empty Block label main::@44 -Culled Empty Block label vera_layer_mode_text::@4 -Culled Empty Block label vera_layer_mode_text::@5 -Culled Empty Block label gotoxy::@3 -Culled Empty Block label cputln::@1 -Culled Empty Block label vera_layer_mode_tile::@4 -Culled Empty Block label vera_layer_mode_tile::@35 -Culled Empty Block label vera_layer_mode_tile::@38 -Culled Empty Block label vera_layer_mode_tile::@30 -Culled Empty Block label vera_layer_mode_tile::@37 -Culled Empty Block label vera_layer_mode_tile::@26 -Culled Empty Block label vera_layer_mode_tile::@36 -Culled Empty Block label vera_layer_mode_tile::@20 -Culled Empty Block label vera_layer_mode_bitmap::@1 -Culled Empty Block label vera_layer_mode_bitmap::@2 -Culled Empty Block label vera_layer_mode_bitmap::@3 -Culled Empty Block label vera_layer_mode_bitmap::@7 -Culled Empty Block label vera_layer_mode_bitmap::@11 -Culled Empty Block label vera_layer_mode_bitmap::@14 -Culled Empty Block label bitmap_init::@25 -Culled Empty Block label bitmap_init::@19 -Culled Empty Block label bitmap_init::@24 -Culled Empty Block label bitmap_init::@23 -Culled Empty Block label bitmap_init::@22 -Culled Empty Block label bitmap_init::@21 -Culled Empty Block label bitmap_init::@20 -Culled Empty Block label bitmap_clear::@2 -Culled Empty Block label bitmap_line::@16 -Culled Empty Block label bitmap_line::@15 -Culled Empty Block label bitmap_line::@18 -Culled Empty Block label bitmap_line::@17 -Culled Empty Block label bitmap_line::@20 -Culled Empty Block label bitmap_line::@19 -Culled Empty Block label bitmap_line::@22 -Culled Empty Block label bitmap_line::@21 -Culled Empty Block label cscroll::@6 -Culled Empty Block label vera_display_get_hscale::@4 -Culled Empty Block label vera_display_get_hscale::@5 -Culled Empty Block label vera_display_get_vscale::@4 -Culled Empty Block label vera_display_get_vscale::@5 -Culled Empty Block label mul16u::@3 -Culled Empty Block label mul16u::@6 -Culled Empty Block label bitmap_line_ydxi::@5 -Culled Empty Block label bitmap_line_ydxi::@6 -Culled Empty Block label bitmap_line_xdyi::@5 -Culled Empty Block label bitmap_line_xdyi::@6 -Culled Empty Block label bitmap_line_ydxd::@5 -Culled Empty Block label bitmap_line_ydxd::@6 -Culled Empty Block label bitmap_line_xdyd::@5 -Culled Empty Block label bitmap_line_xdyd::@6 -Culled Empty Block label divr16u::@7 -Culled Empty Block label divr16u::@9 -Culled Empty Block label divr16u::@8 -Culled Empty Block label insertup::@5 -Culled Empty Block label bitmap_plot::@2 -Renumbering block gotoxy::@4 to gotoxy::@3 -Renumbering block gotoxy::@5 to gotoxy::@4 -Renumbering block vera_layer_mode_tile::@8 to vera_layer_mode_tile::@1 -Renumbering block vera_layer_mode_tile::@9 to vera_layer_mode_tile::@2 -Renumbering block vera_layer_mode_tile::@10 to vera_layer_mode_tile::@3 -Renumbering block vera_layer_mode_tile::@11 to vera_layer_mode_tile::@4 -Renumbering block vera_layer_mode_tile::@12 to vera_layer_mode_tile::@5 -Renumbering block vera_layer_mode_tile::@13 to vera_layer_mode_tile::@6 -Renumbering block vera_layer_mode_tile::@14 to vera_layer_mode_tile::@7 -Renumbering block vera_layer_mode_tile::@15 to vera_layer_mode_tile::@8 -Renumbering block vera_layer_mode_tile::@16 to vera_layer_mode_tile::@9 -Renumbering block vera_layer_mode_tile::@17 to vera_layer_mode_tile::@10 -Renumbering block vera_layer_mode_tile::@18 to vera_layer_mode_tile::@11 -Renumbering block vera_layer_mode_tile::@19 to vera_layer_mode_tile::@12 -Renumbering block vera_layer_mode_tile::@21 to vera_layer_mode_tile::@13 -Renumbering block vera_layer_mode_tile::@22 to vera_layer_mode_tile::@14 -Renumbering block vera_layer_mode_tile::@23 to vera_layer_mode_tile::@15 -Renumbering block vera_layer_mode_tile::@24 to vera_layer_mode_tile::@16 -Renumbering block vera_layer_mode_tile::@25 to vera_layer_mode_tile::@17 -Renumbering block vera_layer_mode_tile::@27 to vera_layer_mode_tile::@18 -Renumbering block vera_layer_mode_tile::@28 to vera_layer_mode_tile::@19 -Renumbering block vera_layer_mode_tile::@29 to vera_layer_mode_tile::@20 -Renumbering block vera_layer_mode_tile::@31 to vera_layer_mode_tile::@21 -Renumbering block vera_layer_mode_tile::@32 to vera_layer_mode_tile::@22 -Renumbering block vera_layer_mode_tile::@33 to vera_layer_mode_tile::@23 -Renumbering block vera_layer_mode_tile::@34 to vera_layer_mode_tile::@24 -Renumbering block vera_layer_mode_text::@2 to vera_layer_mode_text::@1 -Renumbering block vera_layer_mode_bitmap::@8 to vera_layer_mode_bitmap::@1 -Renumbering block vera_layer_mode_bitmap::@10 to vera_layer_mode_bitmap::@2 -Renumbering block vera_layer_mode_bitmap::@13 to vera_layer_mode_bitmap::@3 -Renumbering block bitmap_plot::@3 to bitmap_plot::@2 -Renumbering block bitmap_plot::@4 to bitmap_plot::@3 -Renumbering block mul16u::@4 to mul16u::@3 -Renumbering block mul16u::@5 to mul16u::@4 -Renumbering block main::@4 to main::@3 -Renumbering block main::@5 to main::@4 -Renumbering block main::@6 to main::@5 -Renumbering block main::@9 to main::@6 -Renumbering block main::@10 to main::@7 -Renumbering block main::@11 to main::@8 -Renumbering block main::@13 to main::@9 -Renumbering block main::@14 to main::@10 -Renumbering block main::@16 to main::@11 -Renumbering block main::@17 to main::@12 -Renumbering block main::@18 to main::@13 -Renumbering block main::@19 to main::@14 -Renumbering block main::@23 to main::@15 -Renumbering block main::@24 to main::@16 -Renumbering block main::@25 to main::@17 -Renumbering block main::@26 to main::@18 -Renumbering block main::@27 to main::@19 -Renumbering block main::@29 to main::@20 -Renumbering block main::@30 to main::@21 -Renumbering block main::@34 to main::@22 -Renumbering block main::@35 to main::@23 -Renumbering block main::@36 to main::@24 -Renumbering block main::@37 to main::@25 -Renumbering block main::@38 to main::@26 -Renumbering block main::@39 to main::@27 -Renumbering block main::@40 to main::@28 -Renumbering block main::@41 to main::@29 -Renumbering block main::@42 to main::@30 -Renumbering block main::@43 to main::@31 -Renumbering block main::@47 to main::@32 -Renumbering block main::@48 to main::@33 -Renumbering block main::@49 to main::@34 -Renumbering block main::@53 to main::@35 -Renumbering block main::@54 to main::@36 -Renumbering block main::@59 to main::@37 -Adding NOP phi() at start of __start -Adding NOP phi() at start of __start::@1 -Adding NOP phi() at start of conio_x16_init::@3 -Adding NOP phi() at start of conio_x16_init::@4 -Adding NOP phi() at start of conio_x16_init::@5 -Adding NOP phi() at start of conio_x16_init::@6 -Adding NOP phi() at start of conio_x16_init::@7 -Adding NOP phi() at start of conio_x16_init::@8 -Adding NOP phi() at start of cputc::@4 -Adding NOP phi() at start of cputc::@6 -Adding NOP phi() at start of cputc::@1 -Adding NOP phi() at start of main -Adding NOP phi() at start of main::@12 -Adding NOP phi() at start of main::@13 -Adding NOP phi() at start of main::@14 -Adding NOP phi() at start of main::@6 -Adding NOP phi() at start of main::@15 -Adding NOP phi() at start of main::@16 -Adding NOP phi() at start of main::@17 -Adding NOP phi() at start of main::@18 -Adding NOP phi() at start of main::@19 -Adding NOP phi() at start of main::@7 -Adding NOP phi() at start of main::@20 -Adding NOP phi() at start of main::@21 -Adding NOP phi() at start of main::@8 -Adding NOP phi() at start of main::@9 -Adding NOP phi() at start of main::@32 -Adding NOP phi() at start of main::@33 -Adding NOP phi() at start of main::@34 -Adding NOP phi() at start of main::@10 -Adding NOP phi() at start of main::@5 -Adding NOP phi() at start of main::@11 -Adding NOP phi() at start of main::@37 -Adding NOP phi() at start of main::@2 -Adding NOP phi() at start of vera_layer_mode_text -Adding NOP phi() at start of vera_layer_mode_text::@1 -Adding NOP phi() at start of gotoxy::@4 -Adding NOP phi() at start of gotoxy::@3 -Adding NOP phi() at start of vera_layer_mode_bitmap -Adding NOP phi() at start of vera_layer_mode_bitmap::@2 -Adding NOP phi() at start of vera_layer_mode_bitmap::@3 -Adding NOP phi() at start of cscroll::@3 -Adding NOP phi() at start of cscroll::@4 -Adding NOP phi() at start of vera_display_get_hscale -Adding NOP phi() at start of vera_display_get_vscale -Adding NOP phi() at start of divr16u -Adding NOP phi() at start of insertup::@3 - -FINAL CONTROL FLOW GRAPH - -void __start() -__start: scope:[__start] from - [0] phi() - to:__start::__init1 -__start::__init1: scope:[__start] from __start - [1] conio_screen_width = 0 - [2] conio_screen_height = 0 - [3] conio_screen_layer = 1 - [4] conio_width = 0 - [5] conio_height = 0 - [6] conio_rowshift = 0 - [7] conio_rowskip = 0 - [8] __bitmap_address = 0 - [9] __bitmap_layer = 0 - [10] __bitmap_hscale = 0 - [11] __bitmap_vscale = 0 - [12] __bitmap_color_depth = 0 - [13] call conio_x16_init - to:__start::@1 -__start::@1: scope:[__start] from __start::__init1 - [14] phi() - [15] call main - to:__start::@return -__start::@return: scope:[__start] from __start::@1 - [16] return - to:@return - -void conio_x16_init() -conio_x16_init: scope:[conio_x16_init] from __start::__init1 - [17] conio_x16_init::line#0 = *conio_x16_init::BASIC_CURSOR_LINE - [18] call vera_layer_mode_text - to:conio_x16_init::@3 -conio_x16_init::@3: scope:[conio_x16_init] from conio_x16_init - [19] phi() - [20] call screensize - to:conio_x16_init::@4 -conio_x16_init::@4: scope:[conio_x16_init] from conio_x16_init::@3 - [21] phi() - [22] call screenlayer - to:conio_x16_init::@5 -conio_x16_init::@5: scope:[conio_x16_init] from conio_x16_init::@4 - [23] phi() - [24] call vera_layer_set_textcolor - to:conio_x16_init::@6 -conio_x16_init::@6: scope:[conio_x16_init] from conio_x16_init::@5 - [25] phi() - [26] call vera_layer_set_backcolor - to:conio_x16_init::@7 -conio_x16_init::@7: scope:[conio_x16_init] from conio_x16_init::@6 - [27] phi() - [28] call vera_layer_set_mapbase - to:conio_x16_init::@8 -conio_x16_init::@8: scope:[conio_x16_init] from conio_x16_init::@7 - [29] phi() - [30] call vera_layer_set_mapbase - to:conio_x16_init::@9 -conio_x16_init::@9: scope:[conio_x16_init] from conio_x16_init::@8 - [31] if(conio_x16_init::line#0> 7 - [184] screensize::$1 = $28 << screensize::hscale#0 - [185] *screensize::x#0 = screensize::$1 - [186] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 - [187] screensize::$3 = $1e << screensize::vscale#0 - [188] *screensize::y#0 = screensize::$3 - to:screensize::@return -screensize::@return: scope:[screensize] from screensize - [189] return - to:@return - -void screenlayer(char layer) -screenlayer: scope:[screenlayer] from conio_x16_init::@4 main::@14 main::@5 - [190] conio_screen_layer = 1 - [191] vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer - [192] call vera_layer_get_mapbase_bank - [193] vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#0 - to:screenlayer::@3 -screenlayer::@3: scope:[screenlayer] from screenlayer - [194] CONIO_SCREEN_BANK#15 = vera_layer_get_mapbase_bank::return#2 - [195] vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer - [196] call vera_layer_get_mapbase_offset - [197] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 - to:screenlayer::@4 -screenlayer::@4: scope:[screenlayer] from screenlayer::@3 - [198] CONIO_SCREEN_TEXT#17 = vera_layer_get_mapbase_offset::return#2 - [199] 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 - [200] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 - [201] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] - [202] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK - [203] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 - [204] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 - [205] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] - to:screenlayer::vera_layer_get_width1_@return -screenlayer::vera_layer_get_width1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_width1 - [206] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 - to:screenlayer::@1 -screenlayer::@1: scope:[screenlayer] from screenlayer::vera_layer_get_width1_@return - [207] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 - [208] conio_width = screenlayer::$2 - [209] vera_layer_get_rowshift::layer#0 = conio_screen_layer - [210] call vera_layer_get_rowshift - [211] vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#0 - to:screenlayer::@5 -screenlayer::@5: scope:[screenlayer] from screenlayer::@1 - [212] screenlayer::$3 = vera_layer_get_rowshift::return#2 - [213] conio_rowshift = screenlayer::$3 - [214] vera_layer_get_rowskip::layer#0 = conio_screen_layer - [215] call vera_layer_get_rowskip - [216] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 - to:screenlayer::@6 -screenlayer::@6: scope:[screenlayer] from screenlayer::@5 - [217] screenlayer::$4 = vera_layer_get_rowskip::return#2 - [218] conio_rowskip = screenlayer::$4 - [219] screenlayer::vera_layer_get_height1_layer#0 = conio_screen_layer - to:screenlayer::vera_layer_get_height1 -screenlayer::vera_layer_get_height1: scope:[screenlayer] from screenlayer::@6 - [220] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 - [221] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] - [222] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK - [223] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 - [224] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 - [225] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] - to:screenlayer::vera_layer_get_height1_@return -screenlayer::vera_layer_get_height1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_height1 - [226] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 - to:screenlayer::@2 -screenlayer::@2: scope:[screenlayer] from screenlayer::vera_layer_get_height1_@return - [227] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 - [228] conio_height = screenlayer::$5 - to:screenlayer::@return -screenlayer::@return: scope:[screenlayer] from screenlayer::@2 - [229] return - to:@return - -char vera_layer_set_textcolor(char layer , char color) -vera_layer_set_textcolor: scope:[vera_layer_set_textcolor] from conio_x16_init::@5 main::textcolor1 main::textcolor2 main::textcolor3 main::textcolor4 main::textcolor5 - [230] vera_layer_set_textcolor::color#6 = phi( conio_x16_init::@5/WHITE, main::textcolor1/WHITE, main::textcolor2/YELLOW, main::textcolor3/WHITE, main::textcolor4/YELLOW, main::textcolor5/WHITE ) - [230] vera_layer_set_textcolor::layer#6 = phi( conio_x16_init::@5/1, main::textcolor1/vera_layer_set_textcolor::layer#1, main::textcolor2/vera_layer_set_textcolor::layer#2, main::textcolor3/vera_layer_set_textcolor::layer#3, main::textcolor4/vera_layer_set_textcolor::layer#4, main::textcolor5/vera_layer_set_textcolor::layer#5 ) - [231] vera_layer_textcolor[vera_layer_set_textcolor::layer#6] = vera_layer_set_textcolor::color#6 - to:vera_layer_set_textcolor::@return -vera_layer_set_textcolor::@return: scope:[vera_layer_set_textcolor] from vera_layer_set_textcolor - [232] return - to:@return - -char vera_layer_set_backcolor(char layer , char color) -vera_layer_set_backcolor: scope:[vera_layer_set_backcolor] from conio_x16_init::@6 main::bgcolor1 main::bgcolor2 main::bgcolor3 - [233] vera_layer_set_backcolor::color#4 = phi( conio_x16_init::@6/BLUE, main::bgcolor1/BLACK, main::bgcolor2/BLACK, main::bgcolor3/BLUE ) - [233] vera_layer_set_backcolor::layer#4 = phi( conio_x16_init::@6/1, main::bgcolor1/vera_layer_set_backcolor::layer#1, main::bgcolor2/vera_layer_set_backcolor::layer#2, main::bgcolor3/vera_layer_set_backcolor::layer#3 ) - [234] vera_layer_backcolor[vera_layer_set_backcolor::layer#4] = vera_layer_set_backcolor::color#4 - to:vera_layer_set_backcolor::@return -vera_layer_set_backcolor::@return: scope:[vera_layer_set_backcolor] from vera_layer_set_backcolor - [235] return - to:@return - -void vera_layer_set_mapbase(char layer , char mapbase) -vera_layer_set_mapbase: scope:[vera_layer_set_mapbase] from conio_x16_init::@7 conio_x16_init::@8 vera_layer_mode_tile::@23 - [236] vera_layer_set_mapbase::mapbase#3 = phi( conio_x16_init::@7/$20, conio_x16_init::@8/0, vera_layer_mode_tile::@23/vera_layer_set_mapbase::mapbase#0 ) - [236] vera_layer_set_mapbase::layer#3 = phi( conio_x16_init::@7/0, conio_x16_init::@8/1, vera_layer_mode_tile::@23/vera_layer_set_mapbase::layer#0 ) - [237] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 - [238] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] - [239] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 - to:vera_layer_set_mapbase::@return -vera_layer_set_mapbase::@return: scope:[vera_layer_set_mapbase] from vera_layer_set_mapbase - [240] return - to:@return - -void gotoxy(char x , char y) -gotoxy: scope:[gotoxy] from conio_x16_init::@1 cscroll::@5 main::@15 main::@21 main::@32 main::@34 - [241] gotoxy::y#7 = phi( conio_x16_init::@1/gotoxy::y#1, cscroll::@5/gotoxy::y#2, main::@15/$19, main::@21/$1d, main::@32/$1a, main::@34/$1d ) - [242] if(gotoxy::y#7<=conio_screen_height) goto gotoxy::@4 - to:gotoxy::@1 -gotoxy::@4: scope:[gotoxy] from gotoxy - [243] phi() - to:gotoxy::@1 -gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@4 - [244] gotoxy::y#10 = phi( gotoxy::@4/gotoxy::y#7, gotoxy/0 ) - [245] if(0> 1 - [318] vera_layer_mode_tile::mapbase#0 = byte1 vera_layer_mode_tile::mapbase_address#0 - [319] vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#10 - [320] vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0 - [321] call vera_layer_set_mapbase - to:vera_layer_mode_tile::@24 -vera_layer_mode_tile::@24: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@23 - [322] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 - [323] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 - [324] vera_layer_mode_tile::$7 = byte2 vera_layer_mode_tile::tilebase_address#10 - [325] vera_tilebase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$7 - [326] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 - [327] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 - [328] vera_layer_mode_tile::tilebase#0 = byte1 vera_layer_mode_tile::tilebase_address#0 - [329] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK - [330] if(vera_layer_mode_tile::tilewidth#10==8) goto vera_layer_mode_tile::@19 - to:vera_layer_mode_tile::@17 -vera_layer_mode_tile::@17: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@24 - [331] if(vera_layer_mode_tile::tilewidth#10!=$10) goto vera_layer_mode_tile::@19 - to:vera_layer_mode_tile::@18 -vera_layer_mode_tile::@18: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@17 - [332] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 - to:vera_layer_mode_tile::@19 -vera_layer_mode_tile::@19: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@17 vera_layer_mode_tile::@18 vera_layer_mode_tile::@24 - [333] vera_layer_mode_tile::tilebase#12 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@24/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@18/vera_layer_mode_tile::tilebase#3 ) - [334] if(vera_layer_mode_tile::tileheight#10==8) goto vera_layer_mode_tile::@22 - to:vera_layer_mode_tile::@20 -vera_layer_mode_tile::@20: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@19 - [335] if(vera_layer_mode_tile::tileheight#10!=$10) goto vera_layer_mode_tile::@22 - to:vera_layer_mode_tile::@21 -vera_layer_mode_tile::@21: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@20 - [336] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 - to:vera_layer_mode_tile::@22 -vera_layer_mode_tile::@22: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@19 vera_layer_mode_tile::@20 vera_layer_mode_tile::@21 - [337] vera_layer_mode_tile::tilebase#10 = phi( vera_layer_mode_tile::@20/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@19/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@21/vera_layer_mode_tile::tilebase#5 ) - [338] vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#10 - [339] vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10 - [340] call vera_layer_set_tilebase - to:vera_layer_mode_tile::@return -vera_layer_mode_tile::@return: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@22 - [341] return - to:@return -vera_layer_mode_tile::@14: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@11 - [342] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 - to:vera_layer_mode_tile::@16 -vera_layer_mode_tile::@13: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@10 - [343] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 - to:vera_layer_mode_tile::@16 -vera_layer_mode_tile::@7: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@3 - [344] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 - [345] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 - [346] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 - to:vera_layer_mode_tile::@9 -vera_layer_mode_tile::@6: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@2 - [347] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 - [348] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 - [349] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 - to:vera_layer_mode_tile::@9 -vera_layer_mode_tile::@5: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@1 - [350] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 - [351] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 - [352] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 - to:vera_layer_mode_tile::@9 - -void vera_layer_mode_bitmap(char layer , unsigned long bitmap_address , unsigned int mapwidth , unsigned int color_depth) -vera_layer_mode_bitmap: scope:[vera_layer_mode_bitmap] from main::@13 - [353] phi() - to:vera_layer_mode_bitmap::@1 -vera_layer_mode_bitmap::@1: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap - [354] *vera_tilebase_offset = 0 - [355] *vera_tilebase_bank = 0 - [356] *vera_tilebase_address = vera_layer_mode_bitmap::bitmap_address#1 - to:vera_layer_mode_bitmap::vera_display_set_scale_double1 -vera_layer_mode_bitmap::vera_display_set_scale_double1: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@1 - [357] *VERA_DC_HSCALE = $40 - [358] *VERA_DC_VSCALE = $40 - to:vera_layer_mode_bitmap::@2 -vera_layer_mode_bitmap::@2: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::vera_display_set_scale_double1 - [359] phi() - [360] call vera_layer_set_config - to:vera_layer_mode_bitmap::@3 -vera_layer_mode_bitmap::@3: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@2 - [361] phi() - [362] call vera_layer_set_tilebase - to:vera_layer_mode_bitmap::@return -vera_layer_mode_bitmap::@return: scope:[vera_layer_mode_bitmap] from vera_layer_mode_bitmap::@3 - [363] return - to:@return - -void clrscr() -clrscr: scope:[clrscr] from main::@11 main::@6 main::@9 - [364] clrscr::line_text#0 = (char *)CONIO_SCREEN_TEXT#17 - [365] vera_layer_get_backcolor::layer#0 = conio_screen_layer - [366] call vera_layer_get_backcolor - [367] vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 - to:clrscr::@7 -clrscr::@7: scope:[clrscr] from clrscr - [368] clrscr::$0 = vera_layer_get_backcolor::return#0 - [369] clrscr::$1 = clrscr::$0 << 4 - [370] vera_layer_get_textcolor::layer#0 = conio_screen_layer - [371] call vera_layer_get_textcolor - [372] vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 - to:clrscr::@8 -clrscr::@8: scope:[clrscr] from clrscr::@7 - [373] clrscr::$2 = vera_layer_get_textcolor::return#0 - [374] clrscr::color#0 = clrscr::$1 | clrscr::$2 - to:clrscr::@1 -clrscr::@1: scope:[clrscr] from clrscr::@6 clrscr::@8 - [375] clrscr::line_text#2 = phi( clrscr::@6/clrscr::line_text#1, clrscr::@8/clrscr::line_text#0 ) - [375] clrscr::l#2 = phi( clrscr::@6/clrscr::l#1, clrscr::@8/0 ) - [376] if(clrscr::l#2> 3 - [428] bitmap_init::$23 = bitmap_init::x#10 << 1 - [429] bitmap_init::$29 = __bitmap_plot_x + bitmap_init::$23 - [430] *bitmap_init::$29 = bitmap_init::$7 - [431] bitmap_init::$30 = __bitmap_plot_bitmask + bitmap_init::x#10 - [432] *bitmap_init::$30 = bitmap_init::bitmask#10 - [433] bitmap_init::$31 = __bitmap_plot_bitshift + bitmap_init::x#10 - [434] *bitmap_init::$31 = (char)bitmap_init::bitshift#10 - [435] bitmap_init::bitshift#1 = bitmap_init::bitshift#10 - 1 - [436] bitmap_init::bitmask#1 = bitmap_init::bitmask#10 >> 1 - to:bitmap_init::@2 -bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@8 - [437] bitmap_init::bitshift#11 = phi( bitmap_init::@1/bitmap_init::bitshift#10, bitmap_init::@8/bitmap_init::bitshift#1 ) - [437] bitmap_init::bitmask#11 = phi( bitmap_init::@1/bitmap_init::bitmask#10, bitmap_init::@8/bitmap_init::bitmask#1 ) - [438] if(__bitmap_color_depth!=1) goto bitmap_init::@3 - to:bitmap_init::@9 -bitmap_init::@9: scope:[bitmap_init] from bitmap_init::@2 - [439] bitmap_init::$10 = bitmap_init::x#10 >> 2 - [440] bitmap_init::$24 = bitmap_init::x#10 << 1 - [441] bitmap_init::$32 = __bitmap_plot_x + bitmap_init::$24 - [442] *bitmap_init::$32 = bitmap_init::$10 - [443] bitmap_init::$33 = __bitmap_plot_bitmask + bitmap_init::x#10 - [444] *bitmap_init::$33 = bitmap_init::bitmask#11 - [445] bitmap_init::$34 = __bitmap_plot_bitshift + bitmap_init::x#10 - [446] *bitmap_init::$34 = (char)bitmap_init::bitshift#11 - [447] bitmap_init::bitshift#2 = bitmap_init::bitshift#11 - 2 - [448] bitmap_init::bitmask#2 = bitmap_init::bitmask#11 >> 2 - to:bitmap_init::@3 -bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@9 - [449] bitmap_init::bitshift#12 = phi( bitmap_init::@2/bitmap_init::bitshift#11, bitmap_init::@9/bitmap_init::bitshift#2 ) - [449] bitmap_init::bitmask#12 = phi( bitmap_init::@2/bitmap_init::bitmask#11, bitmap_init::@9/bitmap_init::bitmask#2 ) - [450] if(__bitmap_color_depth!=2) goto bitmap_init::@4 - to:bitmap_init::@10 -bitmap_init::@10: scope:[bitmap_init] from bitmap_init::@3 - [451] bitmap_init::$13 = bitmap_init::x#10 >> 1 - [452] bitmap_init::$25 = bitmap_init::x#10 << 1 - [453] bitmap_init::$35 = __bitmap_plot_x + bitmap_init::$25 - [454] *bitmap_init::$35 = bitmap_init::$13 - [455] bitmap_init::$36 = __bitmap_plot_bitmask + bitmap_init::x#10 - [456] *bitmap_init::$36 = bitmap_init::bitmask#12 - [457] bitmap_init::$37 = __bitmap_plot_bitshift + bitmap_init::x#10 - [458] *bitmap_init::$37 = (char)bitmap_init::bitshift#12 - [459] bitmap_init::bitshift#3 = bitmap_init::bitshift#12 - 4 - [460] bitmap_init::bitmask#3 = bitmap_init::bitmask#12 >> 4 - to:bitmap_init::@4 -bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@10 bitmap_init::@3 - [461] bitmap_init::bitmask#13 = phi( bitmap_init::@10/bitmap_init::bitmask#3, bitmap_init::@3/bitmap_init::bitmask#12 ) - [461] bitmap_init::bitshift#13 = phi( bitmap_init::@10/bitmap_init::bitshift#3, bitmap_init::@3/bitmap_init::bitshift#12 ) - [462] if(__bitmap_color_depth!=3) goto bitmap_init::@5 - to:bitmap_init::@11 -bitmap_init::@11: scope:[bitmap_init] from bitmap_init::@4 - [463] bitmap_init::$26 = bitmap_init::x#10 << 1 - [464] bitmap_init::$38 = __bitmap_plot_x + bitmap_init::$26 - [465] *bitmap_init::$38 = bitmap_init::x#10 - [466] bitmap_init::$39 = __bitmap_plot_bitmask + bitmap_init::x#10 - [467] *bitmap_init::$39 = bitmap_init::bitmask#13 - [468] bitmap_init::$40 = __bitmap_plot_bitshift + bitmap_init::x#10 - [469] *bitmap_init::$40 = (char)bitmap_init::bitshift#13 - to:bitmap_init::@5 -bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@11 bitmap_init::@4 - [470] if(bitmap_init::bitshift#13>=0) goto bitmap_init::@6 - to:bitmap_init::@12 -bitmap_init::@12: scope:[bitmap_init] from bitmap_init::@5 - [471] bitmap_init::bitshift#4 = bitshifts[__bitmap_color_depth] - to:bitmap_init::@6 -bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@12 bitmap_init::@5 - [472] bitmap_init::bitshift#14 = phi( bitmap_init::@12/bitmap_init::bitshift#4, bitmap_init::@5/bitmap_init::bitshift#13 ) - [473] if(bitmap_init::bitmask#13!=0) goto bitmap_init::@7 - to:bitmap_init::@13 -bitmap_init::@13: scope:[bitmap_init] from bitmap_init::@6 - [474] bitmap_init::bitmask#4 = bitmasks[__bitmap_color_depth] - to:bitmap_init::@7 -bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@13 bitmap_init::@6 - [475] bitmap_init::bitmask#16 = phi( bitmap_init::@13/bitmap_init::bitmask#4, bitmap_init::@6/bitmap_init::bitmask#13 ) - [476] bitmap_init::x#1 = ++ bitmap_init::x#10 - [477] if(bitmap_init::x#1!=$280) goto bitmap_init::@1 - to:bitmap_init::@14 -bitmap_init::@14: scope:[bitmap_init] from bitmap_init::@7 - [478] bitmap_init::$3 = __bitmap_color_depth << 2 - [479] bitmap_init::$4 = bitmap_init::$3 + __bitmap_hscale - [480] bitmap_init::$27 = bitmap_init::$4 << 1 - [481] bitmap_init::hdelta#0 = hdeltas[bitmap_init::$27] - [482] bitmap_init::yoffs#0 = __bitmap_address - to:bitmap_init::@15 -bitmap_init::@15: scope:[bitmap_init] from bitmap_init::@14 bitmap_init::@15 - [483] bitmap_init::yoffs#2 = phi( bitmap_init::@14/bitmap_init::yoffs#0, bitmap_init::@15/bitmap_init::yoffs#1 ) - [483] bitmap_init::y#2 = phi( bitmap_init::@14/0, bitmap_init::@15/bitmap_init::y#1 ) - [484] bitmap_init::$28 = bitmap_init::y#2 << 2 - [485] bitmap_init::$41 = __bitmap_plot_y + bitmap_init::$28 - [486] *bitmap_init::$41 = bitmap_init::yoffs#2 - [487] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + bitmap_init::hdelta#0 - [488] bitmap_init::y#1 = ++ bitmap_init::y#2 - [489] if(bitmap_init::y#1!=$1e0) goto bitmap_init::@15 - to:bitmap_init::@return -bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@15 - [490] return - to:@return - -void bitmap_clear() -bitmap_clear: scope:[bitmap_clear] from main::@20 - [491] bitmap_clear::$6 = __bitmap_vscale << 1 - [492] bitmap_clear::vdelta#0 = vdeltas[bitmap_clear::$6] - [493] bitmap_clear::$0 = __bitmap_color_depth << 2 - [494] bitmap_clear::$1 = bitmap_clear::$0 + __bitmap_hscale - [495] bitmap_clear::$7 = bitmap_clear::$1 << 1 - [496] bitmap_clear::hdelta#0 = hdeltas[bitmap_clear::$7] - [497] mul16u::a#0 = bitmap_clear::hdelta#0 - [498] mul16u::b#0 = bitmap_clear::vdelta#0 - [499] call mul16u - [500] mul16u::return#0 = mul16u::res#2 - to:bitmap_clear::@1 -bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear - [501] bitmap_clear::count#0 = mul16u::return#0 - [502] bitmap_clear::vbank#0 = byte2 __bitmap_address - [503] bitmap_clear::vdest#0 = word0 __bitmap_address - [504] memset_vram::vbank#0 = bitmap_clear::vbank#0 - [505] memset_vram::vdest#0 = (void *)bitmap_clear::vdest#0 - [506] memset_vram::num#0 = bitmap_clear::count#0 - [507] call memset_vram - to:bitmap_clear::@return -bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1 - [508] return - to:@return - -char kbhit() -kbhit: scope:[kbhit] from main::@1 main::@3 - [509] kbhit::ch = 0 - kickasm( uses kbhit::chptr uses kbhit::IN_DEV uses kbhit::GETIN) {{ jsr _kbhit - bne L3 - - jmp continue1 - - .var via1 = $9f60 //VIA#1 - .var d1pra = via1+1 - - _kbhit: - ldy d1pra // The count of keys pressed is stored in RAM bank 0. - stz d1pra // Set d1pra to zero to access RAM bank 0. - lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). - sty d1pra // Set d1pra to previous value. - rts - - L3: - ldy IN_DEV // Save current input device - stz IN_DEV // Keyboard - phy - jsr GETIN // Read char, and return in .A - ply - sta chptr // Store the character read in ch - sty IN_DEV // Restore input device - ldx #>$0000 - rts - - continue1: - nop - }} - [511] kbhit::return#0 = kbhit::ch - to:kbhit::@return -kbhit::@return: scope:[kbhit] from kbhit - [512] kbhit::return#1 = kbhit::return#0 - [513] return - to:@return - -void bitmap_line(unsigned int x0 , unsigned int x1 , unsigned int y0 , unsigned int y1 , char c) -bitmap_line: scope:[bitmap_line] from main::@31 main::@4 - [514] bitmap_line::c#10 = phi( main::@31/bitmap_line::c#0, main::@4/bitmap_line::c#1 ) - [514] bitmap_line::y1#10 = phi( main::@31/bitmap_line::y1#0, main::@4/$c7 ) - [514] bitmap_line::y0#10 = phi( main::@31/bitmap_line::y0#0, main::@4/0 ) - [514] bitmap_line::x1#10 = phi( main::@31/bitmap_line::x1#0, main::@4/bitmap_line::x1#1 ) - [514] bitmap_line::x0#10 = phi( main::@31/bitmap_line::x0#0, main::@4/bitmap_line::x0#1 ) - [515] if(bitmap_line::x0#10> 9 - [589] rand_state#1 = rand_state#0 ^ rand::$1 - [590] rand::$2 = rand_state#1 << 8 - [591] rand_state#14 = rand_state#1 ^ rand::$2 - [592] rand::return#0 = rand_state#14 - to:rand::@return -rand::@return: scope:[rand] from rand - [593] return - to:@return - -unsigned int modr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) -modr16u: scope:[modr16u] from main::@23 main::@25 main::@27 main::@29 - [594] modr16u::divisor#4 = phi( main::@23/$140, main::@25/$140, main::@27/$c8, main::@29/$c8 ) - [594] modr16u::dividend#4 = phi( main::@23/modr16u::dividend#0, main::@25/modr16u::dividend#1, main::@27/modr16u::dividend#2, main::@29/modr16u::dividend#3 ) - [595] divr16u::dividend#1 = modr16u::dividend#4 - [596] divr16u::divisor#0 = modr16u::divisor#4 - [597] call divr16u - to:modr16u::@1 -modr16u::@1: scope:[modr16u] from modr16u - [598] modr16u::return#0 = rem16u#0 - to:modr16u::@return -modr16u::@return: scope:[modr16u] from modr16u::@1 - [599] return - to:@return - -void vera_layer_set_text_color_mode(char layer , char color_mode) -vera_layer_set_text_color_mode: scope:[vera_layer_set_text_color_mode] from vera_layer_mode_text::@1 - [600] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) - [601] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C - [602] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 - to:vera_layer_set_text_color_mode::@return -vera_layer_set_text_color_mode::@return: scope:[vera_layer_set_text_color_mode] from vera_layer_set_text_color_mode - [603] return - to:@return - -char vera_layer_get_mapbase_bank(char layer) -vera_layer_get_mapbase_bank: scope:[vera_layer_get_mapbase_bank] from screenlayer - [604] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0] - to:vera_layer_get_mapbase_bank::@return -vera_layer_get_mapbase_bank::@return: scope:[vera_layer_get_mapbase_bank] from vera_layer_get_mapbase_bank - [605] return - to:@return - -unsigned int vera_layer_get_mapbase_offset(char layer) -vera_layer_get_mapbase_offset: scope:[vera_layer_get_mapbase_offset] from screenlayer::@3 - [606] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 - [607] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] - to:vera_layer_get_mapbase_offset::@return -vera_layer_get_mapbase_offset::@return: scope:[vera_layer_get_mapbase_offset] from vera_layer_get_mapbase_offset - [608] return - to:@return - -char vera_layer_get_rowshift(char layer) -vera_layer_get_rowshift: scope:[vera_layer_get_rowshift] from screenlayer::@1 - [609] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0] - to:vera_layer_get_rowshift::@return -vera_layer_get_rowshift::@return: scope:[vera_layer_get_rowshift] from vera_layer_get_rowshift - [610] return - to:@return - -unsigned int vera_layer_get_rowskip(char layer) -vera_layer_get_rowskip: scope:[vera_layer_get_rowskip] from screenlayer::@5 - [611] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 - [612] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] - to:vera_layer_get_rowskip::@return -vera_layer_get_rowskip::@return: scope:[vera_layer_get_rowskip] from vera_layer_get_rowskip - [613] return - to:@return - -void cscroll() -cscroll: scope:[cscroll] from cputln - [614] if(conio_cursor_y[conio_screen_layer]> 1 - [660] mul16u::mb#1 = mul16u::mb#2 << 1 - to:mul16u::@1 - -void memset_vram(char vbank , void *vdest , char data , unsigned long num) -memset_vram: scope:[memset_vram] from bitmap_clear::@1 - [661] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL - [662] memset_vram::$0 = byte0 memset_vram::vdest#0 - [663] *VERA_ADDRX_L = memset_vram::$0 - [664] memset_vram::$1 = byte1 memset_vram::vdest#0 - [665] *VERA_ADDRX_M = memset_vram::$1 - [666] memset_vram::$2 = VERA_INC_1 | memset_vram::vbank#0 - [667] *VERA_ADDRX_H = memset_vram::$2 - to:memset_vram::@1 -memset_vram::@1: scope:[memset_vram] from memset_vram memset_vram::@2 - [668] memset_vram::i#2 = phi( memset_vram/0, memset_vram::@2/memset_vram::i#1 ) - [669] if(memset_vram::i#2> 1 - to:bitmap_line_ydxi::@1 -bitmap_line_ydxi::@1: scope:[bitmap_line_ydxi] from bitmap_line_ydxi bitmap_line_ydxi::@2 - [675] bitmap_line_ydxi::e#3 = phi( bitmap_line_ydxi/bitmap_line_ydxi::e#0, bitmap_line_ydxi::@2/bitmap_line_ydxi::e#6 ) - [675] bitmap_line_ydxi::y#3 = phi( bitmap_line_ydxi/bitmap_line_ydxi::y#6, bitmap_line_ydxi::@2/bitmap_line_ydxi::y#2 ) - [675] bitmap_line_ydxi::x#3 = phi( bitmap_line_ydxi/bitmap_line_ydxi::x#5, bitmap_line_ydxi::@2/bitmap_line_ydxi::x#6 ) - [676] bitmap_plot::x#2 = bitmap_line_ydxi::x#3 - [677] bitmap_plot::y#2 = bitmap_line_ydxi::y#3 - [678] bitmap_plot::c#3 = bitmap_line_ydxi::c#3 - [679] call bitmap_plot - to:bitmap_line_ydxi::@4 -bitmap_line_ydxi::@4: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@1 - [680] bitmap_line_ydxi::y#2 = ++ bitmap_line_ydxi::y#3 - [681] bitmap_line_ydxi::e#1 = bitmap_line_ydxi::e#3 + bitmap_line_ydxi::xd#2 - [682] if(bitmap_line_ydxi::yd#5>=bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 - to:bitmap_line_ydxi::@3 -bitmap_line_ydxi::@3: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@4 - [683] bitmap_line_ydxi::x#2 = ++ bitmap_line_ydxi::x#3 - [684] bitmap_line_ydxi::e#2 = bitmap_line_ydxi::e#1 - bitmap_line_ydxi::yd#5 - to:bitmap_line_ydxi::@2 -bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap_line_ydxi::@4 - [685] bitmap_line_ydxi::e#6 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::e#2, bitmap_line_ydxi::@4/bitmap_line_ydxi::e#1 ) - [685] bitmap_line_ydxi::x#6 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::x#2, bitmap_line_ydxi::@4/bitmap_line_ydxi::x#3 ) - [686] bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#6 + 1 - [687] if(bitmap_line_ydxi::y#2!=bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1 - to:bitmap_line_ydxi::@return -bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2 - [688] return - to:@return - -void bitmap_line_xdyi(unsigned int x , unsigned int y , unsigned int x1 , unsigned int xd , unsigned int yd , char c) -bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@13 bitmap_line::@8 - [689] bitmap_line_xdyi::x1#6 = phi( bitmap_line::@13/bitmap_line_xdyi::x1#1, bitmap_line::@8/bitmap_line_xdyi::x1#0 ) - [689] bitmap_line_xdyi::xd#5 = phi( bitmap_line::@13/bitmap_line_xdyi::xd#1, bitmap_line::@8/bitmap_line_xdyi::xd#0 ) - [689] bitmap_line_xdyi::c#3 = phi( bitmap_line::@13/bitmap_line_xdyi::c#1, bitmap_line::@8/bitmap_line_xdyi::c#0 ) - [689] bitmap_line_xdyi::y#5 = phi( bitmap_line::@13/bitmap_line_xdyi::y#1, bitmap_line::@8/bitmap_line_xdyi::y#0 ) - [689] bitmap_line_xdyi::x#6 = phi( bitmap_line::@13/bitmap_line_xdyi::x#1, bitmap_line::@8/bitmap_line_xdyi::x#0 ) - [689] bitmap_line_xdyi::yd#2 = phi( bitmap_line::@13/bitmap_line_xdyi::yd#1, bitmap_line::@8/bitmap_line_xdyi::yd#0 ) - [690] bitmap_line_xdyi::e#0 = bitmap_line_xdyi::yd#2 >> 1 - to:bitmap_line_xdyi::@1 -bitmap_line_xdyi::@1: scope:[bitmap_line_xdyi] from bitmap_line_xdyi bitmap_line_xdyi::@2 - [691] bitmap_line_xdyi::e#3 = phi( bitmap_line_xdyi/bitmap_line_xdyi::e#0, bitmap_line_xdyi::@2/bitmap_line_xdyi::e#6 ) - [691] bitmap_line_xdyi::y#3 = phi( bitmap_line_xdyi/bitmap_line_xdyi::y#5, bitmap_line_xdyi::@2/bitmap_line_xdyi::y#6 ) - [691] bitmap_line_xdyi::x#3 = phi( bitmap_line_xdyi/bitmap_line_xdyi::x#6, bitmap_line_xdyi::@2/bitmap_line_xdyi::x#2 ) - [692] bitmap_plot::x#0 = bitmap_line_xdyi::x#3 - [693] bitmap_plot::y#0 = bitmap_line_xdyi::y#3 - [694] bitmap_plot::c#1 = bitmap_line_xdyi::c#3 - [695] call bitmap_plot - to:bitmap_line_xdyi::@4 -bitmap_line_xdyi::@4: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@1 - [696] bitmap_line_xdyi::x#2 = ++ bitmap_line_xdyi::x#3 - [697] bitmap_line_xdyi::e#1 = bitmap_line_xdyi::e#3 + bitmap_line_xdyi::yd#2 - [698] if(bitmap_line_xdyi::xd#5>=bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 - to:bitmap_line_xdyi::@3 -bitmap_line_xdyi::@3: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@4 - [699] bitmap_line_xdyi::y#2 = ++ bitmap_line_xdyi::y#3 - [700] bitmap_line_xdyi::e#2 = bitmap_line_xdyi::e#1 - bitmap_line_xdyi::xd#5 - to:bitmap_line_xdyi::@2 -bitmap_line_xdyi::@2: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@3 bitmap_line_xdyi::@4 - [701] bitmap_line_xdyi::e#6 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::e#2, bitmap_line_xdyi::@4/bitmap_line_xdyi::e#1 ) - [701] bitmap_line_xdyi::y#6 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::y#2, bitmap_line_xdyi::@4/bitmap_line_xdyi::y#3 ) - [702] bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#6 + 1 - [703] if(bitmap_line_xdyi::x#2!=bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 - to:bitmap_line_xdyi::@return -bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2 - [704] return - to:@return - -void bitmap_line_ydxd(unsigned int y , unsigned int x , unsigned int y1 , unsigned int yd , unsigned int xd , char c) -bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@10 bitmap_line::@6 - [705] bitmap_line_ydxd::y1#6 = phi( bitmap_line::@10/bitmap_line_ydxd::y1#0, bitmap_line::@6/bitmap_line_ydxd::y1#1 ) - [705] bitmap_line_ydxd::yd#5 = phi( bitmap_line::@10/bitmap_line_ydxd::yd#0, bitmap_line::@6/bitmap_line_ydxd::yd#1 ) - [705] bitmap_line_ydxd::c#3 = phi( bitmap_line::@10/bitmap_line_ydxd::c#0, bitmap_line::@6/bitmap_line_ydxd::c#1 ) - [705] bitmap_line_ydxd::y#7 = phi( bitmap_line::@10/bitmap_line_ydxd::y#0, bitmap_line::@6/bitmap_line_ydxd::y#1 ) - [705] bitmap_line_ydxd::x#5 = phi( bitmap_line::@10/bitmap_line_ydxd::x#0, bitmap_line::@6/bitmap_line_ydxd::x#1 ) - [705] bitmap_line_ydxd::xd#2 = phi( bitmap_line::@10/bitmap_line_ydxd::xd#0, bitmap_line::@6/bitmap_line_ydxd::xd#1 ) - [706] bitmap_line_ydxd::e#0 = bitmap_line_ydxd::xd#2 >> 1 - to:bitmap_line_ydxd::@1 -bitmap_line_ydxd::@1: scope:[bitmap_line_ydxd] from bitmap_line_ydxd bitmap_line_ydxd::@2 - [707] bitmap_line_ydxd::e#3 = phi( bitmap_line_ydxd/bitmap_line_ydxd::e#0, bitmap_line_ydxd::@2/bitmap_line_ydxd::e#6 ) - [707] bitmap_line_ydxd::y#2 = phi( bitmap_line_ydxd/bitmap_line_ydxd::y#7, bitmap_line_ydxd::@2/bitmap_line_ydxd::y#3 ) - [707] bitmap_line_ydxd::x#3 = phi( bitmap_line_ydxd/bitmap_line_ydxd::x#5, bitmap_line_ydxd::@2/bitmap_line_ydxd::x#6 ) - [708] bitmap_plot::x#3 = bitmap_line_ydxd::x#3 - [709] bitmap_plot::y#3 = bitmap_line_ydxd::y#2 - [710] bitmap_plot::c#4 = bitmap_line_ydxd::c#3 - [711] call bitmap_plot - to:bitmap_line_ydxd::@4 -bitmap_line_ydxd::@4: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@1 - [712] bitmap_line_ydxd::y#3 = ++ bitmap_line_ydxd::y#2 - [713] bitmap_line_ydxd::e#1 = bitmap_line_ydxd::e#3 + bitmap_line_ydxd::xd#2 - [714] if(bitmap_line_ydxd::yd#5>=bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 - to:bitmap_line_ydxd::@3 -bitmap_line_ydxd::@3: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@4 - [715] bitmap_line_ydxd::x#2 = -- bitmap_line_ydxd::x#3 - [716] bitmap_line_ydxd::e#2 = bitmap_line_ydxd::e#1 - bitmap_line_ydxd::yd#5 - to:bitmap_line_ydxd::@2 -bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap_line_ydxd::@4 - [717] bitmap_line_ydxd::e#6 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::e#2, bitmap_line_ydxd::@4/bitmap_line_ydxd::e#1 ) - [717] bitmap_line_ydxd::x#6 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::x#2, bitmap_line_ydxd::@4/bitmap_line_ydxd::x#3 ) - [718] bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#6 + 1 - [719] if(bitmap_line_ydxd::y#3!=bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1 - to:bitmap_line_ydxd::@return -bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2 - [720] return - to:@return - -void bitmap_line_xdyd(unsigned int x , unsigned int y , unsigned int x1 , unsigned int xd , unsigned int yd , char c) -bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@12 bitmap_line::@9 - [721] bitmap_line_xdyd::x1#6 = phi( bitmap_line::@12/bitmap_line_xdyd::x1#1, bitmap_line::@9/bitmap_line_xdyd::x1#0 ) - [721] bitmap_line_xdyd::xd#5 = phi( bitmap_line::@12/bitmap_line_xdyd::xd#1, bitmap_line::@9/bitmap_line_xdyd::xd#0 ) - [721] bitmap_line_xdyd::c#3 = phi( bitmap_line::@12/bitmap_line_xdyd::c#1, bitmap_line::@9/bitmap_line_xdyd::c#0 ) - [721] bitmap_line_xdyd::y#5 = phi( bitmap_line::@12/bitmap_line_xdyd::y#1, bitmap_line::@9/bitmap_line_xdyd::y#0 ) - [721] bitmap_line_xdyd::x#6 = phi( bitmap_line::@12/bitmap_line_xdyd::x#1, bitmap_line::@9/bitmap_line_xdyd::x#0 ) - [721] bitmap_line_xdyd::yd#2 = phi( bitmap_line::@12/bitmap_line_xdyd::yd#1, bitmap_line::@9/bitmap_line_xdyd::yd#0 ) - [722] bitmap_line_xdyd::e#0 = bitmap_line_xdyd::yd#2 >> 1 - to:bitmap_line_xdyd::@1 -bitmap_line_xdyd::@1: scope:[bitmap_line_xdyd] from bitmap_line_xdyd bitmap_line_xdyd::@2 - [723] bitmap_line_xdyd::e#3 = phi( bitmap_line_xdyd/bitmap_line_xdyd::e#0, bitmap_line_xdyd::@2/bitmap_line_xdyd::e#6 ) - [723] bitmap_line_xdyd::y#3 = phi( bitmap_line_xdyd/bitmap_line_xdyd::y#5, bitmap_line_xdyd::@2/bitmap_line_xdyd::y#6 ) - [723] bitmap_line_xdyd::x#3 = phi( bitmap_line_xdyd/bitmap_line_xdyd::x#6, bitmap_line_xdyd::@2/bitmap_line_xdyd::x#2 ) - [724] bitmap_plot::x#1 = bitmap_line_xdyd::x#3 - [725] bitmap_plot::y#1 = bitmap_line_xdyd::y#3 - [726] bitmap_plot::c#2 = bitmap_line_xdyd::c#3 - [727] call bitmap_plot - to:bitmap_line_xdyd::@4 -bitmap_line_xdyd::@4: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@1 - [728] bitmap_line_xdyd::x#2 = ++ bitmap_line_xdyd::x#3 - [729] bitmap_line_xdyd::e#1 = bitmap_line_xdyd::e#3 + bitmap_line_xdyd::yd#2 - [730] if(bitmap_line_xdyd::xd#5>=bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 - to:bitmap_line_xdyd::@3 -bitmap_line_xdyd::@3: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@4 - [731] bitmap_line_xdyd::y#2 = -- bitmap_line_xdyd::y#3 - [732] bitmap_line_xdyd::e#2 = bitmap_line_xdyd::e#1 - bitmap_line_xdyd::xd#5 - to:bitmap_line_xdyd::@2 -bitmap_line_xdyd::@2: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@3 bitmap_line_xdyd::@4 - [733] bitmap_line_xdyd::e#6 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::e#2, bitmap_line_xdyd::@4/bitmap_line_xdyd::e#1 ) - [733] bitmap_line_xdyd::y#6 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::y#2, bitmap_line_xdyd::@4/bitmap_line_xdyd::y#3 ) - [734] bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#6 + 1 - [735] if(bitmap_line_xdyd::x#2!=bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1 - to:bitmap_line_xdyd::@return -bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2 - [736] return - to:@return - -unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) -divr16u: scope:[divr16u] from modr16u - [737] phi() - to:divr16u::@1 -divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 - [738] divr16u::i#2 = phi( divr16u/0, divr16u::@3/divr16u::i#1 ) - [738] divr16u::quotient#3 = phi( divr16u/0, divr16u::@3/divr16u::return#0 ) - [738] divr16u::dividend#2 = phi( divr16u/divr16u::dividend#1, divr16u::@3/divr16u::dividend#0 ) - [738] divr16u::rem#4 = phi( divr16u/0, divr16u::@3/divr16u::rem#10 ) - [739] divr16u::rem#0 = divr16u::rem#4 << 1 - [740] divr16u::$1 = byte1 divr16u::dividend#2 - [741] divr16u::$2 = divr16u::$1 & $80 - [742] if(divr16u::$2==0) goto divr16u::@2 - to:divr16u::@4 -divr16u::@4: scope:[divr16u] from divr16u::@1 - [743] divr16u::rem#1 = divr16u::rem#0 | 1 - to:divr16u::@2 -divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4 - [744] divr16u::rem#5 = phi( divr16u::@1/divr16u::rem#0, divr16u::@4/divr16u::rem#1 ) - [745] divr16u::dividend#0 = divr16u::dividend#2 << 1 - [746] divr16u::quotient#1 = divr16u::quotient#3 << 1 - [747] if(divr16u::rem#5> 7 [ screensize::hscale#0 ] ( screensize:20 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::hscale#0 ] { } conio_x16_init:13::screensize:20 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::hscale#0 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for mem[1] [ conio_x16_init::line#3 conio_x16_init::line#1 conio_x16_init::line#0 ] -Statement [184] screensize::$1 = $28 << screensize::hscale#0 [ screensize::$1 ] ( screensize:20 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$1 ] { } conio_x16_init:13::screensize:20 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$1 ] { } ) always clobbers reg byte a -Statement [186] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 [ screensize::vscale#0 ] ( screensize:20 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::vscale#0 ] { } conio_x16_init:13::screensize:20 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::vscale#0 ] { } ) always clobbers reg byte a -Statement [187] screensize::$3 = $1e << screensize::vscale#0 [ screensize::$3 ] ( screensize:20 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$3 ] { } conio_x16_init:13::screensize:20 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$3 ] { } ) always clobbers reg byte a -Statement [190] conio_screen_layer = 1 [ conio_screen_layer ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } main:15::screenlayer:132 [ conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } ) always clobbers reg byte a -Statement [197] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 [ conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [198] CONIO_SCREEN_TEXT#17 = vera_layer_get_mapbase_offset::return#2 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } ) always clobbers reg byte a -Statement [200] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] { } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] { } ) always clobbers reg byte a -Statement [201] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] { } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] { } ) always clobbers reg byte a -Statement [202] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] { } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] { } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for mem[1] [ conio_x16_init::line#3 conio_x16_init::line#1 conio_x16_init::line#0 ] -Statement [203] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] { } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] { } ) always clobbers reg byte a -Statement [204] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] { } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] { } ) always clobbers reg byte a -Statement [205] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] { } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] { } ) always clobbers reg byte a -Statement [206] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] { } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] { } ) always clobbers reg byte a -Statement [207] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } ) always clobbers reg byte a -Statement [208] conio_width = screenlayer::$2 [ conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } main:15::screenlayer:132 [ conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } ) always clobbers reg byte a -Statement [216] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [217] screenlayer::$4 = vera_layer_get_rowskip::return#2 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] { } ) always clobbers reg byte a -Statement [218] conio_rowskip = screenlayer::$4 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } ) always clobbers reg byte a -Statement [220] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] { } ) always clobbers reg byte a -Statement [221] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] { } ) always clobbers reg byte a -Statement [222] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] { } ) always clobbers reg byte a reg byte y -Statement [223] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] { } ) always clobbers reg byte a -Statement [224] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] { } ) always clobbers reg byte a -Statement [225] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] { } ) always clobbers reg byte a -Statement [226] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] { } ) always clobbers reg byte a -Statement [227] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] { } ) always clobbers reg byte a -Statement [228] conio_height = screenlayer::$5 [ conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } ) always clobbers reg byte a -Statement [237] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] ( vera_layer_set_mapbase:28 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } conio_x16_init:13::vera_layer_set_mapbase:28 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } vera_layer_set_mapbase:30 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } conio_x16_init:13::vera_layer_set_mapbase:30 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } main:15::vera_layer_mode_tile:73::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:18::vera_layer_mode_tile:179::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:222 [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::mapbase#0 ] -Removing always clobbered register reg byte a as potential for mem[1] [ vera_layer_mode_tile::layer#10 ] -Removing always clobbered register reg byte a as potential for mem[1] [ vera_layer_mode_tile::tilewidth#10 ] -Removing always clobbered register reg byte a as potential for mem[1] [ vera_layer_mode_tile::tileheight#10 ] -Removing always clobbered register reg byte a as potential for mem[1] [ vera_layer_mode_tile::$17 ] -Removing always clobbered register reg byte a as potential for mem[1] [ vera_layer_mode_tile::$18 ] -Statement [238] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] ( vera_layer_set_mapbase:28 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } conio_x16_init:13::vera_layer_set_mapbase:28 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } vera_layer_set_mapbase:30 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } conio_x16_init:13::vera_layer_set_mapbase:30 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } main:15::vera_layer_mode_tile:73::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:18::vera_layer_mode_tile:179::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [239] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 [ ] ( vera_layer_set_mapbase:28 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } conio_x16_init:13::vera_layer_set_mapbase:28 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } vera_layer_set_mapbase:30 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } conio_x16_init:13::vera_layer_set_mapbase:30 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } main:15::vera_layer_mode_tile:73::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:18::vera_layer_mode_tile:179::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for mem[1] [ vera_layer_mode_tile::layer#10 ] -Removing always clobbered register reg byte y as potential for mem[1] [ vera_layer_mode_tile::tilewidth#10 ] -Removing always clobbered register reg byte y as potential for mem[1] [ vera_layer_mode_tile::tileheight#10 ] -Removing always clobbered register reg byte y as potential for mem[1] [ vera_layer_mode_tile::$17 ] -Removing always clobbered register reg byte y as potential for mem[1] [ vera_layer_mode_tile::$18 ] -Statement [245] if(0> 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [322] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } ) always clobbers reg byte a -Statement [323] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } ) always clobbers reg byte a -Statement [326] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [327] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } ) always clobbers reg byte a -Statement [329] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } ) always clobbers reg byte a -Statement [332] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } ) always clobbers reg byte a -Statement [336] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } ) always clobbers reg byte a -Statement [342] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } ) always clobbers reg byte a -Statement [343] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } ) always clobbers reg byte a -Statement [344] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [345] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$13 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$13 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$13 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$13 ] { } ) always clobbers reg byte a -Statement [346] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [347] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [348] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$12 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$12 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$12 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$12 ] { } ) always clobbers reg byte a -Statement [349] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [350] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [351] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$11 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$11 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$11 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$11 ] { } ) always clobbers reg byte a -Statement [352] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [354] *vera_tilebase_offset = 0 [ ] ( main:15::vera_layer_mode_bitmap:75 [ conio_screen_width conio_screen_height ] { } ) always clobbers reg byte a -Statement [355] *vera_tilebase_bank = 0 [ ] ( main:15::vera_layer_mode_bitmap:75 [ conio_screen_width conio_screen_height ] { } ) always clobbers reg byte a -Statement [356] *vera_tilebase_address = vera_layer_mode_bitmap::bitmap_address#1 [ ] ( main:15::vera_layer_mode_bitmap:75 [ conio_screen_width conio_screen_height ] { } ) always clobbers reg byte a -Statement [357] *VERA_DC_HSCALE = $40 [ ] ( main:15::vera_layer_mode_bitmap:75 [ conio_screen_width conio_screen_height ] { } ) always clobbers reg byte a -Statement [358] *VERA_DC_VSCALE = $40 [ ] ( main:15::vera_layer_mode_bitmap:75 [ conio_screen_width conio_screen_height ] { } ) always clobbers reg byte a -Statement [364] clrscr::line_text#0 = (char *)CONIO_SCREEN_TEXT#17 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::line_text#0 ] ( main:15::clrscr:83 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::line_text#0 ] { { vera_layer_get_backcolor::layer#0 = conio_screen_layer } { vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 } } main:15::clrscr:115 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::line_text#0 ] { { vera_layer_get_backcolor::layer#0 = conio_screen_layer } { vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 } } main:15::clrscr:138 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::line_text#0 ] { { vera_layer_get_backcolor::layer#0 = conio_screen_layer } { vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 } } ) always clobbers reg byte a -Statement [369] clrscr::$1 = clrscr::$0 << 4 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::line_text#0 clrscr::$1 ] ( main:15::clrscr:83 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::line_text#0 clrscr::$1 ] { { vera_layer_get_textcolor::layer#0 = conio_screen_layer } { vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 } } main:15::clrscr:115 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::line_text#0 clrscr::$1 ] { { vera_layer_get_textcolor::layer#0 = conio_screen_layer } { vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 } } main:15::clrscr:138 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::line_text#0 clrscr::$1 ] { { vera_layer_get_textcolor::layer#0 = conio_screen_layer } { vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 } } ) always clobbers reg byte a -Statement [377] conio_cursor_x[conio_screen_layer] = 0 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( main:15::clrscr:83 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::clrscr:115 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::clrscr:138 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } ) always clobbers reg byte a reg byte y -Statement [378] conio_cursor_y[conio_screen_layer] = 0 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( main:15::clrscr:83 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::clrscr:115 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::clrscr:138 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } ) always clobbers reg byte a reg byte y -Statement [379] clrscr::$9 = conio_screen_layer << 1 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::$9 ] ( main:15::clrscr:83 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::$9 ] { } main:15::clrscr:115 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::$9 ] { } main:15::clrscr:138 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::$9 ] { } ) always clobbers reg byte a -Statement [380] conio_line_text[clrscr::$9] = 0 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( main:15::clrscr:83 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::clrscr:115 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::clrscr:138 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } ) always clobbers reg byte a -Statement [382] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 ] ( main:15::clrscr:83 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 ] { } main:15::clrscr:115 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 ] { } main:15::clrscr:138 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for mem[1] [ clrscr::color#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:251 [ clrscr::l#2 clrscr::l#1 ] -Statement [387] clrscr::$7 = CONIO_SCREEN_BANK#15 | VERA_INC_1 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 clrscr::$7 ] ( main:15::clrscr:83 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 clrscr::$7 ] { } main:15::clrscr:115 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 clrscr::$7 ] { } main:15::clrscr:138 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 clrscr::$7 ] { } ) always clobbers reg byte a -Statement [391] clrscr::line_text#1 = clrscr::line_text#2 + conio_rowskip [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::color#0 clrscr::l#2 clrscr::line_text#1 ] ( main:15::clrscr:83 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::color#0 clrscr::l#2 clrscr::line_text#1 ] { } main:15::clrscr:115 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::color#0 clrscr::l#2 clrscr::line_text#1 ] { } main:15::clrscr:138 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::color#0 clrscr::l#2 clrscr::line_text#1 ] { } ) always clobbers reg byte a -Statement [393] *VERA_DATA0 = ' ' [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 clrscr::c#2 ] ( main:15::clrscr:83 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 clrscr::c#2 ] { } main:15::clrscr:115 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 clrscr::c#2 ] { } main:15::clrscr:138 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 clrscr::c#2 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:179 [ clrscr::c#2 clrscr::c#1 ] -Statement [398] printf_str::c#1 = *printf_str::s#8 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#8 printf_str::c#1 ] ( main:15::printf_str:87 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#8 printf_str::c#1 ] { } main:15::printf_str:89 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#8 printf_str::c#1 ] { } main:15::printf_str:91 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#8 printf_str::c#1 ] { } main:15::printf_str:93 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#8 printf_str::c#1 ] { } main:15::printf_str:104 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#8 printf_str::c#1 ] { } main:15::printf_str:119 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#8 printf_str::c#1 ] { } main:15::printf_str:125 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#8 printf_str::c#1 ] { } ) always clobbers reg byte a reg byte y -Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [405] __bitmap_address = bitmap_init::address#0 [ __bitmap_address ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address ] { } ) always clobbers reg byte a -Statement [406] __bitmap_layer = bitmap_init::layer#0 [ __bitmap_address __bitmap_layer ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_layer ] { } ) always clobbers reg byte a -Statement [408] bitmap_init::vera_layer_get_color_depth1_$1 = bitmap_init::vera_layer_get_color_depth1_layer#0 << 1 [ __bitmap_address bitmap_init::vera_layer_get_color_depth1_$1 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address bitmap_init::vera_layer_get_color_depth1_$1 ] { } ) always clobbers reg byte a -Statement [409] bitmap_init::vera_layer_get_color_depth1_config#0 = vera_layer_config[bitmap_init::vera_layer_get_color_depth1_$1] [ __bitmap_address bitmap_init::vera_layer_get_color_depth1_config#0 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address bitmap_init::vera_layer_get_color_depth1_config#0 ] { } ) always clobbers reg byte a -Statement [410] bitmap_init::vera_layer_get_color_depth1_$0 = *bitmap_init::vera_layer_get_color_depth1_config#0 & VERA_LAYER_COLOR_DEPTH_MASK [ __bitmap_address bitmap_init::vera_layer_get_color_depth1_$0 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address bitmap_init::vera_layer_get_color_depth1_$0 ] { } ) always clobbers reg byte a reg byte y -Statement [423] bitmap_init::bitmask#0 = bitmasks[__bitmap_color_depth] [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::bitmask#0 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::bitmask#0 ] { } ) always clobbers reg byte y -Statement [424] bitmap_init::bitshift#0 = bitshifts[__bitmap_color_depth] [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::bitmask#0 bitmap_init::bitshift#0 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::bitmask#0 bitmap_init::bitshift#0 ] { } ) always clobbers reg byte y -Removing always clobbered register reg byte y as potential for zp[1]:209 [ bitmap_init::bitmask#13 bitmap_init::bitmask#3 bitmap_init::bitmask#12 bitmap_init::bitmask#11 bitmap_init::bitmask#10 bitmap_init::bitmask#0 bitmap_init::bitmask#16 bitmap_init::bitmask#1 bitmap_init::bitmask#2 bitmap_init::bitmask#4 ] -Statement [426] if(__bitmap_color_depth!=0) goto bitmap_init::@2 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:209 [ bitmap_init::bitmask#13 bitmap_init::bitmask#3 bitmap_init::bitmask#12 bitmap_init::bitmask#11 bitmap_init::bitmask#10 bitmap_init::bitmask#0 bitmap_init::bitmask#16 bitmap_init::bitmask#1 bitmap_init::bitmask#2 bitmap_init::bitmask#4 ] -Removing always clobbered register reg byte a as potential for zp[1]:215 [ bitmap_init::bitshift#13 bitmap_init::bitshift#3 bitmap_init::bitshift#12 bitmap_init::bitshift#11 bitmap_init::bitshift#10 bitmap_init::bitshift#0 bitmap_init::bitshift#14 bitmap_init::bitshift#1 bitmap_init::bitshift#2 bitmap_init::bitshift#4 ] -Statement [427] bitmap_init::$7 = bitmap_init::x#10 >> 3 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$7 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$7 ] { } ) always clobbers reg byte a -Statement [428] bitmap_init::$23 = bitmap_init::x#10 << 1 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$7 bitmap_init::$23 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$7 bitmap_init::$23 ] { } ) always clobbers reg byte a -Statement [429] bitmap_init::$29 = __bitmap_plot_x + bitmap_init::$23 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$7 bitmap_init::$29 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$7 bitmap_init::$29 ] { } ) always clobbers reg byte a -Potential register analysis [430] *bitmap_init::$29 = bitmap_init::$7 missing fragment Fragment not found _deref_pwum1=vwum2. Attempted variations _deref_pwum1=vwum2 allocation: mem[2] [ bitmap_init::$29 ] mem[2] [ bitmap_init::$7 ] -MISSING FRAGMENTS - Fragment not found _deref_pwum1=vwum2. Attempted variations _deref_pwum1=vwum2 -Statement [430] *bitmap_init::$29 = bitmap_init::$7 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 ] { } ) always clobbers reg byte a reg byte x reg byte y -Removing always clobbered register reg byte x as potential for zp[1]:209 [ bitmap_init::bitmask#13 bitmap_init::bitmask#3 bitmap_init::bitmask#12 bitmap_init::bitmask#11 bitmap_init::bitmask#10 bitmap_init::bitmask#0 bitmap_init::bitmask#16 bitmap_init::bitmask#1 bitmap_init::bitmask#2 bitmap_init::bitmask#4 ] -Removing always clobbered register reg byte x as potential for zp[1]:215 [ bitmap_init::bitshift#13 bitmap_init::bitshift#3 bitmap_init::bitshift#12 bitmap_init::bitshift#11 bitmap_init::bitshift#10 bitmap_init::bitshift#0 bitmap_init::bitshift#14 bitmap_init::bitshift#1 bitmap_init::bitshift#2 bitmap_init::bitshift#4 ] -Removing always clobbered register reg byte y as potential for zp[1]:215 [ bitmap_init::bitshift#13 bitmap_init::bitshift#3 bitmap_init::bitshift#12 bitmap_init::bitshift#11 bitmap_init::bitshift#10 bitmap_init::bitshift#0 bitmap_init::bitshift#14 bitmap_init::bitshift#1 bitmap_init::bitshift#2 bitmap_init::bitshift#4 ] -Statement [431] bitmap_init::$30 = __bitmap_plot_bitmask + bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$30 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$30 ] { } ) always clobbers reg byte a -Statement [432] *bitmap_init::$30 = bitmap_init::bitmask#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 ] { } ) always clobbers reg byte a reg byte y -Statement [433] bitmap_init::$31 = __bitmap_plot_bitshift + bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$31 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$31 ] { } ) always clobbers reg byte a -Statement [434] *bitmap_init::$31 = (char)bitmap_init::bitshift#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 ] { } ) always clobbers reg byte a reg byte y -Statement [438] if(__bitmap_color_depth!=1) goto bitmap_init::@3 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 ] { } ) always clobbers reg byte a -Statement [439] bitmap_init::$10 = bitmap_init::x#10 >> 2 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$10 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$10 ] { } ) always clobbers reg byte a -Statement [440] bitmap_init::$24 = bitmap_init::x#10 << 1 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$10 bitmap_init::$24 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$10 bitmap_init::$24 ] { } ) always clobbers reg byte a -Statement [441] bitmap_init::$32 = __bitmap_plot_x + bitmap_init::$24 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$10 bitmap_init::$32 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$10 bitmap_init::$32 ] { } ) always clobbers reg byte a -Potential register analysis [442] *bitmap_init::$32 = bitmap_init::$10 missing fragment Fragment not found _deref_pwum1=vwum2. Attempted variations _deref_pwum1=vwum2 allocation: mem[2] [ bitmap_init::$32 ] mem[2] [ bitmap_init::$10 ] -MISSING FRAGMENTS - Fragment not found _deref_pwum1=vwum2. Attempted variations _deref_pwum1=vwum2 -Statement [442] *bitmap_init::$32 = bitmap_init::$10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [443] bitmap_init::$33 = __bitmap_plot_bitmask + bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$33 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$33 ] { } ) always clobbers reg byte a -Statement [444] *bitmap_init::$33 = bitmap_init::bitmask#11 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 ] { } ) always clobbers reg byte a reg byte y -Statement [445] bitmap_init::$34 = __bitmap_plot_bitshift + bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$34 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$34 ] { } ) always clobbers reg byte a -Statement [446] *bitmap_init::$34 = (char)bitmap_init::bitshift#11 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 ] { } ) always clobbers reg byte a reg byte y -Statement [448] bitmap_init::bitmask#2 = bitmap_init::bitmask#11 >> 2 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#2 bitmap_init::bitmask#2 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#2 bitmap_init::bitmask#2 ] { } ) always clobbers reg byte a -Statement [450] if(__bitmap_color_depth!=2) goto bitmap_init::@4 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 ] { } ) always clobbers reg byte a -Statement [451] bitmap_init::$13 = bitmap_init::x#10 >> 1 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$13 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$13 ] { } ) always clobbers reg byte a -Statement [452] bitmap_init::$25 = bitmap_init::x#10 << 1 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$13 bitmap_init::$25 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$13 bitmap_init::$25 ] { } ) always clobbers reg byte a -Statement [453] bitmap_init::$35 = __bitmap_plot_x + bitmap_init::$25 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$13 bitmap_init::$35 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$13 bitmap_init::$35 ] { } ) always clobbers reg byte a -Potential register analysis [454] *bitmap_init::$35 = bitmap_init::$13 missing fragment Fragment not found _deref_pwum1=vwum2. Attempted variations _deref_pwum1=vwum2 allocation: mem[2] [ bitmap_init::$13 ] mem[2] [ bitmap_init::$35 ] -MISSING FRAGMENTS - Fragment not found _deref_pwum1=vwum2. Attempted variations _deref_pwum1=vwum2 -Statement [454] *bitmap_init::$35 = bitmap_init::$13 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [455] bitmap_init::$36 = __bitmap_plot_bitmask + bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$36 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$36 ] { } ) always clobbers reg byte a -Statement [456] *bitmap_init::$36 = bitmap_init::bitmask#12 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 ] { } ) always clobbers reg byte a reg byte y -Statement [457] bitmap_init::$37 = __bitmap_plot_bitshift + bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$37 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$37 ] { } ) always clobbers reg byte a -Statement [458] *bitmap_init::$37 = (char)bitmap_init::bitshift#12 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 ] { } ) always clobbers reg byte a reg byte y -Statement [459] bitmap_init::bitshift#3 = bitmap_init::bitshift#12 - 4 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#3 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#3 ] { } ) always clobbers reg byte a -Statement [460] bitmap_init::bitmask#3 = bitmap_init::bitmask#12 >> 4 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#3 bitmap_init::bitmask#3 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#3 bitmap_init::bitmask#3 ] { } ) always clobbers reg byte a -Statement [462] if(__bitmap_color_depth!=3) goto bitmap_init::@5 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] { } ) always clobbers reg byte a -Statement [463] bitmap_init::$26 = bitmap_init::x#10 << 1 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 bitmap_init::$26 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 bitmap_init::$26 ] { } ) always clobbers reg byte a -Statement [464] bitmap_init::$38 = __bitmap_plot_x + bitmap_init::$26 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 bitmap_init::$38 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 bitmap_init::$38 ] { } ) always clobbers reg byte a -Potential register analysis [465] *bitmap_init::$38 = bitmap_init::x#10 missing fragment Fragment not found _deref_pwum1=vwum2. Attempted variations _deref_pwum1=vwum2 allocation: mem[2] [ bitmap_init::x#10 bitmap_init::x#1 ] mem[2] [ bitmap_init::$38 ] -MISSING FRAGMENTS - Fragment not found _deref_pwum1=vwum2. Attempted variations _deref_pwum1=vwum2 -Statement [465] *bitmap_init::$38 = bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [466] bitmap_init::$39 = __bitmap_plot_bitmask + bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 bitmap_init::$39 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 bitmap_init::$39 ] { } ) always clobbers reg byte a -Statement [467] *bitmap_init::$39 = bitmap_init::bitmask#13 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] { } ) always clobbers reg byte a reg byte y -Statement [468] bitmap_init::$40 = __bitmap_plot_bitshift + bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 bitmap_init::$40 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 bitmap_init::$40 ] { } ) always clobbers reg byte a -Statement [469] *bitmap_init::$40 = (char)bitmap_init::bitshift#13 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] { } ) always clobbers reg byte a reg byte y -Statement [470] if(bitmap_init::bitshift#13>=0) goto bitmap_init::@6 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] { } ) always clobbers reg byte a -Statement [471] bitmap_init::bitshift#4 = bitshifts[__bitmap_color_depth] [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#13 bitmap_init::bitshift#4 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#13 bitmap_init::bitshift#4 ] { } ) always clobbers reg byte a reg byte y -Statement [473] if(bitmap_init::bitmask#13!=0) goto bitmap_init::@7 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#14 bitmap_init::bitmask#13 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#14 bitmap_init::bitmask#13 ] { } ) always clobbers reg byte a -Statement [474] bitmap_init::bitmask#4 = bitmasks[__bitmap_color_depth] [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#14 bitmap_init::bitmask#4 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#14 bitmap_init::bitmask#4 ] { } ) always clobbers reg byte a reg byte y -Statement [477] if(bitmap_init::x#1!=$280) goto bitmap_init::@1 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#1 bitmap_init::bitmask#16 bitmap_init::bitshift#14 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#1 bitmap_init::bitmask#16 bitmap_init::bitshift#14 ] { } ) always clobbers reg byte a -Statement [478] bitmap_init::$3 = __bitmap_color_depth << 2 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::$3 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::$3 ] { } ) always clobbers reg byte a -Statement [479] bitmap_init::$4 = bitmap_init::$3 + __bitmap_hscale [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::$4 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::$4 ] { } ) always clobbers reg byte a -Statement [480] bitmap_init::$27 = bitmap_init::$4 << 1 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::$27 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::$27 ] { } ) always clobbers reg byte a -Statement [481] bitmap_init::hdelta#0 = hdeltas[bitmap_init::$27] [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 ] { } ) always clobbers reg byte a -Statement [482] bitmap_init::yoffs#0 = __bitmap_address [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::yoffs#0 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::yoffs#0 ] { } ) always clobbers reg byte a -Statement [484] bitmap_init::$28 = bitmap_init::y#2 << 2 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$28 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$28 ] { } ) always clobbers reg byte a -Statement [485] bitmap_init::$41 = __bitmap_plot_y + bitmap_init::$28 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$41 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$41 ] { } ) always clobbers reg byte a -Potential register analysis [486] *bitmap_init::$41 = bitmap_init::yoffs#2 missing fragment Fragment not found _deref_pdum1=vdum2. Attempted variations _deref_pdum1=vdum2 allocation: mem[4] [ bitmap_init::yoffs#2 bitmap_init::yoffs#0 bitmap_init::yoffs#1 ] mem[2] [ bitmap_init::$41 ] -MISSING FRAGMENTS - Fragment not found _deref_pdum1=vdum2. Attempted variations _deref_pdum1=vdum2 -Statement [486] *bitmap_init::$41 = bitmap_init::yoffs#2 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#2 bitmap_init::yoffs#2 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#2 bitmap_init::yoffs#2 ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [487] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + bitmap_init::hdelta#0 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a -Statement [489] if(bitmap_init::y#1!=$1e0) goto bitmap_init::@15 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#1 bitmap_init::yoffs#1 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#1 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a -Statement [491] bitmap_clear::$6 = __bitmap_vscale << 1 [ __bitmap_address __bitmap_hscale __bitmap_color_depth bitmap_clear::$6 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_color_depth bitmap_clear::$6 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [492] bitmap_clear::vdelta#0 = vdeltas[bitmap_clear::$6] [ __bitmap_address __bitmap_hscale __bitmap_color_depth bitmap_clear::vdelta#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_color_depth bitmap_clear::vdelta#0 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [493] bitmap_clear::$0 = __bitmap_color_depth << 2 [ __bitmap_address __bitmap_hscale bitmap_clear::vdelta#0 bitmap_clear::$0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale bitmap_clear::vdelta#0 bitmap_clear::$0 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [494] bitmap_clear::$1 = bitmap_clear::$0 + __bitmap_hscale [ __bitmap_address bitmap_clear::vdelta#0 bitmap_clear::$1 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address bitmap_clear::vdelta#0 bitmap_clear::$1 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [495] bitmap_clear::$7 = bitmap_clear::$1 << 1 [ __bitmap_address bitmap_clear::vdelta#0 bitmap_clear::$7 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address bitmap_clear::vdelta#0 bitmap_clear::$7 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [496] bitmap_clear::hdelta#0 = hdeltas[bitmap_clear::$7] [ __bitmap_address bitmap_clear::vdelta#0 bitmap_clear::hdelta#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address bitmap_clear::vdelta#0 bitmap_clear::hdelta#0 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [497] mul16u::a#0 = bitmap_clear::hdelta#0 [ __bitmap_address bitmap_clear::vdelta#0 mul16u::a#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address bitmap_clear::vdelta#0 mul16u::a#0 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [498] mul16u::b#0 = bitmap_clear::vdelta#0 [ __bitmap_address mul16u::a#0 mul16u::b#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address mul16u::a#0 mul16u::b#0 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [500] mul16u::return#0 = mul16u::res#2 [ __bitmap_address mul16u::return#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address mul16u::return#0 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [501] bitmap_clear::count#0 = mul16u::return#0 [ __bitmap_address bitmap_clear::count#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address bitmap_clear::count#0 ] { { memset_vram::vbank#0 = bitmap_clear::vbank#0 } { memset_vram::num#0 = bitmap_clear::count#0 } } ) always clobbers reg byte a -Statement [503] bitmap_clear::vdest#0 = word0 __bitmap_address [ bitmap_clear::count#0 bitmap_clear::vbank#0 bitmap_clear::vdest#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_clear::count#0 bitmap_clear::vbank#0 bitmap_clear::vdest#0 ] { { memset_vram::vbank#0 = bitmap_clear::vbank#0 } { memset_vram::num#0 = bitmap_clear::count#0 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for mem[1] [ bitmap_clear::vbank#0 ] -Statement [505] memset_vram::vdest#0 = (void *)bitmap_clear::vdest#0 [ bitmap_clear::count#0 memset_vram::vbank#0 memset_vram::vdest#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_clear::count#0 memset_vram::vbank#0 memset_vram::vdest#0 ] { { memset_vram::vbank#0 = bitmap_clear::vbank#0 } { memset_vram::num#0 = bitmap_clear::count#0 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for mem[1] [ memset_vram::vbank#0 ] -Statement [506] memset_vram::num#0 = bitmap_clear::count#0 [ memset_vram::vbank#0 memset_vram::vdest#0 memset_vram::num#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 memset_vram::vbank#0 memset_vram::vdest#0 memset_vram::num#0 ] { { memset_vram::vbank#0 = bitmap_clear::vbank#0 } { memset_vram::num#0 = bitmap_clear::count#0 } } ) always clobbers reg byte a -Statement [509] kbhit::ch = 0 [ kbhit::ch ] ( main:15::kbhit:106 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#23 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 kbhit::ch ] { { kbhit::return#1 = kbhit::return#2 } } main:15::kbhit:127 [ main::x#3 main::color#2 kbhit::ch ] { { kbhit::return#1 = kbhit::return#3 } } ) always clobbers reg byte a -Statement [515] if(bitmap_line::x0#10> 9 [ rand_state#0 rand::$1 ] ( main:15::rand:149 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#0 rand::$1 ] { { rand_state#13 = rand_state#23 } { rand::return#0 = rand::return#2 } } main:15::rand:155 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#0 rand::$1 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#3 } } main:15::rand:161 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#0 rand::$1 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#10 } } main:15::rand:167 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#0 rand::$1 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#11 } } main:15::rand:173 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#0 rand::$1 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#12 } } ) always clobbers reg byte a -Statement [589] rand_state#1 = rand_state#0 ^ rand::$1 [ rand_state#1 ] ( main:15::rand:149 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 ] { { rand_state#13 = rand_state#23 } { rand::return#0 = rand::return#2 } } main:15::rand:155 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#3 } } main:15::rand:161 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#10 } } main:15::rand:167 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#11 } } main:15::rand:173 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#12 } } ) always clobbers reg byte a -Statement [590] rand::$2 = rand_state#1 << 8 [ rand_state#1 rand::$2 ] ( main:15::rand:149 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 rand::$2 ] { { rand_state#13 = rand_state#23 } { rand::return#0 = rand::return#2 } } main:15::rand:155 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 rand::$2 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#3 } } main:15::rand:161 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 rand::$2 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#10 } } main:15::rand:167 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 rand::$2 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#11 } } main:15::rand:173 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 rand::$2 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#12 } } ) always clobbers reg byte a -Statement [591] rand_state#14 = rand_state#1 ^ rand::$2 [ rand_state#14 ] ( main:15::rand:149 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 ] { { rand_state#13 = rand_state#23 } { rand::return#0 = rand::return#2 } } main:15::rand:155 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#3 } } main:15::rand:161 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#10 } } main:15::rand:167 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#11 } } main:15::rand:173 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#12 } } ) always clobbers reg byte a -Statement [592] rand::return#0 = rand_state#14 [ rand_state#14 rand::return#0 ] ( main:15::rand:149 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 rand::return#0 ] { { rand_state#13 = rand_state#23 } { rand::return#0 = rand::return#2 } } main:15::rand:155 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 rand::return#0 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#3 } } main:15::rand:161 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 rand::return#0 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#10 } } main:15::rand:167 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 rand::return#0 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#11 } } main:15::rand:173 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 rand::return#0 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#12 } } ) always clobbers reg byte a -Statement [595] divr16u::dividend#1 = modr16u::dividend#4 [ modr16u::divisor#4 divr16u::dividend#1 ] ( main:15::modr16u:152 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 modr16u::divisor#4 divr16u::dividend#1 ] { { modr16u::dividend#0 = modr16u::dividend#4 rand::return#2 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#2 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:158 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 modr16u::divisor#4 divr16u::dividend#1 ] { { modr16u::dividend#1 = modr16u::dividend#4 rand::return#3 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#3 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:164 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 modr16u::divisor#4 divr16u::dividend#1 ] { { modr16u::dividend#2 = modr16u::dividend#4 rand::return#10 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#4 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:170 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 modr16u::divisor#4 divr16u::dividend#1 ] { { modr16u::dividend#3 = modr16u::dividend#4 rand::return#11 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#10 } { divr16u::divisor#0 = modr16u::divisor#4 } } ) always clobbers reg byte a -Statement [596] divr16u::divisor#0 = modr16u::divisor#4 [ divr16u::dividend#1 divr16u::divisor#0 ] ( main:15::modr16u:152 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::dividend#1 divr16u::divisor#0 ] { { modr16u::dividend#0 = modr16u::dividend#4 rand::return#2 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#2 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:158 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::dividend#1 divr16u::divisor#0 ] { { modr16u::dividend#1 = modr16u::dividend#4 rand::return#3 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#3 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:164 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::dividend#1 divr16u::divisor#0 ] { { modr16u::dividend#2 = modr16u::dividend#4 rand::return#10 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#4 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:170 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::dividend#1 divr16u::divisor#0 ] { { modr16u::dividend#3 = modr16u::dividend#4 rand::return#11 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#10 } { divr16u::divisor#0 = modr16u::divisor#4 } } ) always clobbers reg byte a -Statement [598] modr16u::return#0 = rem16u#0 [ modr16u::return#0 ] ( main:15::modr16u:152 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 modr16u::return#0 ] { { modr16u::dividend#0 = modr16u::dividend#4 rand::return#2 } { modr16u::return#0 = modr16u::return#2 } } main:15::modr16u:158 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 modr16u::return#0 ] { { modr16u::dividend#1 = modr16u::dividend#4 rand::return#3 } { modr16u::return#0 = modr16u::return#3 } } main:15::modr16u:164 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 modr16u::return#0 ] { { modr16u::dividend#2 = modr16u::dividend#4 rand::return#10 } { modr16u::return#0 = modr16u::return#4 } } main:15::modr16u:170 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 modr16u::return#0 ] { { modr16u::dividend#3 = modr16u::dividend#4 rand::return#11 } { modr16u::return#0 = modr16u::return#10 } } ) always clobbers reg byte a -Statement [600] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) [ vera_layer_set_text_color_mode::addr#0 ] ( vera_layer_mode_text:18::vera_layer_set_text_color_mode:181 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_set_text_color_mode:181 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } ) always clobbers reg byte a -Statement [601] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C [ vera_layer_set_text_color_mode::addr#0 ] ( vera_layer_mode_text:18::vera_layer_set_text_color_mode:181 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_set_text_color_mode:181 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } ) always clobbers reg byte a reg byte y -Statement [602] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 [ ] ( vera_layer_mode_text:18::vera_layer_set_text_color_mode:181 [ conio_screen_width conio_screen_height conio_x16_init::line#0 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_set_text_color_mode:181 [ conio_screen_width conio_screen_height conio_x16_init::line#0 ] { } ) always clobbers reg byte a reg byte y -Statement [606] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 [ vera_layer_get_mapbase_offset::$0 ] ( screenlayer:22::vera_layer_get_mapbase_offset:196 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:13::screenlayer:22::vera_layer_get_mapbase_offset:196 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:15::screenlayer:77::vera_layer_get_mapbase_offset:196 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:15::screenlayer:132::vera_layer_get_mapbase_offset:196 [ conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [607] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] [ vera_layer_get_mapbase_offset::return#0 ] ( screenlayer:22::vera_layer_get_mapbase_offset:196 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:13::screenlayer:22::vera_layer_get_mapbase_offset:196 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:15::screenlayer:77::vera_layer_get_mapbase_offset:196 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:15::screenlayer:132::vera_layer_get_mapbase_offset:196 [ conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [611] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 [ vera_layer_get_rowskip::$0 ] ( screenlayer:22::vera_layer_get_rowskip:215 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:13::screenlayer:22::vera_layer_get_rowskip:215 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:15::screenlayer:77::vera_layer_get_rowskip:215 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:15::screenlayer:132::vera_layer_get_rowskip:215 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [612] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] [ vera_layer_get_rowskip::return#0 ] ( screenlayer:22::vera_layer_get_rowskip:215 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:13::screenlayer:22::vera_layer_get_rowskip:215 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:15::screenlayer:77::vera_layer_get_rowskip:215 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:15::screenlayer:132::vera_layer_get_rowskip:215 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [614] if(conio_cursor_y[conio_screen_layer]> 1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] ( main:15::bitmap_line:143::bitmap_line_ydxi:526 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] { { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:526 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } main:15::bitmap_line:143::bitmap_line_ydxi:577 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] { { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:577 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:129 [ bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#1 bitmap_line_ydxi::c#0 ] -Statement [676] bitmap_plot::x#2 = bitmap_line_ydxi::x#3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 ] ( main:15::bitmap_line:143::bitmap_line_ydxi:526 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 ] { { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } { bitmap_plot::c#3 = bitmap_plot::c#5 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#0 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_ydxi:526 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } { bitmap_plot::c#3 = bitmap_plot::c#5 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#0 bitmap_line::c#10 bitmap_line::c#0 } } main:15::bitmap_line:143::bitmap_line_ydxi:577 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 ] { { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } { bitmap_plot::c#3 = bitmap_plot::c#5 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#1 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_ydxi:577 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } { bitmap_plot::c#3 = bitmap_plot::c#5 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#1 bitmap_line::c#10 bitmap_line::c#0 } } ) always clobbers reg byte a -Statement [677] bitmap_plot::y#2 = bitmap_line_ydxi::y#3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 bitmap_plot::y#2 ] ( main:15::bitmap_line:143::bitmap_line_ydxi:526 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 bitmap_plot::y#2 ] { { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } { bitmap_plot::c#3 = bitmap_plot::c#5 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#0 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_ydxi:526 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 bitmap_plot::y#2 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } { bitmap_plot::c#3 = bitmap_plot::c#5 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#0 bitmap_line::c#10 bitmap_line::c#0 } } main:15::bitmap_line:143::bitmap_line_ydxi:577 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 bitmap_plot::y#2 ] { { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } { bitmap_plot::c#3 = bitmap_plot::c#5 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#1 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_ydxi:577 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 bitmap_plot::y#2 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } { bitmap_plot::c#3 = bitmap_plot::c#5 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#1 bitmap_line::c#10 bitmap_line::c#0 } } ) always clobbers reg byte a -Statement [681] bitmap_line_ydxi::e#1 = bitmap_line_ydxi::e#3 + bitmap_line_ydxi::xd#2 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( main:15::bitmap_line:143::bitmap_line_ydxi:526 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:526 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } main:15::bitmap_line:143::bitmap_line_ydxi:577 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:577 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } ) always clobbers reg byte a -Statement [682] if(bitmap_line_ydxi::yd#5>=bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( main:15::bitmap_line:143::bitmap_line_ydxi:526 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:526 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } main:15::bitmap_line:143::bitmap_line_ydxi:577 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:577 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } ) always clobbers reg byte a -Statement [684] bitmap_line_ydxi::e#2 = bitmap_line_ydxi::e#1 - bitmap_line_ydxi::yd#5 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] ( main:15::bitmap_line:143::bitmap_line_ydxi:526 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] { { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:526 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } main:15::bitmap_line:143::bitmap_line_ydxi:577 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] { { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:577 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } ) always clobbers reg byte a -Statement [686] bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#6 + 1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] ( main:15::bitmap_line:143::bitmap_line_ydxi:526 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] { { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:526 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } main:15::bitmap_line:143::bitmap_line_ydxi:577 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] { { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:577 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } ) always clobbers reg byte a -Statement [687] if(bitmap_line_ydxi::y#2!=bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( main:15::bitmap_line:143::bitmap_line_ydxi:526 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] { { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:526 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } main:15::bitmap_line:143::bitmap_line_ydxi:577 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] { { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:577 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } ) always clobbers reg byte a -Statement [690] bitmap_line_xdyi::e#0 = bitmap_line_xdyi::yd#2 >> 1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] ( main:15::bitmap_line:143::bitmap_line_xdyi:534 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] { { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:534 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::x#0 = bitmap_line_xdyi::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyi:584 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] { { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:584 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::x#1 = bitmap_line_xdyi::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:130 [ bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#1 bitmap_line_xdyi::c#0 ] -Statement [692] bitmap_plot::x#0 = bitmap_line_xdyi::x#3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 ] ( main:15::bitmap_line:143::bitmap_line_xdyi:534 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 ] { { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } { bitmap_plot::c#1 = bitmap_plot::c#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#0 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_xdyi:534 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::x#0 = bitmap_line_xdyi::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } { bitmap_plot::c#1 = bitmap_plot::c#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#0 bitmap_line::c#10 bitmap_line::c#0 } } main:15::bitmap_line:143::bitmap_line_xdyi:584 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 ] { { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } { bitmap_plot::c#1 = bitmap_plot::c#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#1 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_xdyi:584 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::x#1 = bitmap_line_xdyi::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } { bitmap_plot::c#1 = bitmap_plot::c#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#1 bitmap_line::c#10 bitmap_line::c#0 } } ) always clobbers reg byte a -Statement [693] bitmap_plot::y#0 = bitmap_line_xdyi::y#3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 bitmap_plot::y#0 ] ( main:15::bitmap_line:143::bitmap_line_xdyi:534 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 bitmap_plot::y#0 ] { { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } { bitmap_plot::c#1 = bitmap_plot::c#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#0 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_xdyi:534 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 bitmap_plot::y#0 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::x#0 = bitmap_line_xdyi::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } { bitmap_plot::c#1 = bitmap_plot::c#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#0 bitmap_line::c#10 bitmap_line::c#0 } } main:15::bitmap_line:143::bitmap_line_xdyi:584 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 bitmap_plot::y#0 ] { { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } { bitmap_plot::c#1 = bitmap_plot::c#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#1 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_xdyi:584 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 bitmap_plot::y#0 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::x#1 = bitmap_line_xdyi::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } { bitmap_plot::c#1 = bitmap_plot::c#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#1 bitmap_line::c#10 bitmap_line::c#0 } } ) always clobbers reg byte a -Statement [697] bitmap_line_xdyi::e#1 = bitmap_line_xdyi::e#3 + bitmap_line_xdyi::yd#2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:15::bitmap_line:143::bitmap_line_xdyi:534 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:534 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::x#0 = bitmap_line_xdyi::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyi:584 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:584 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::x#1 = bitmap_line_xdyi::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [698] if(bitmap_line_xdyi::xd#5>=bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:15::bitmap_line:143::bitmap_line_xdyi:534 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:534 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::x#0 = bitmap_line_xdyi::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyi:584 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:584 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::x#1 = bitmap_line_xdyi::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [700] bitmap_line_xdyi::e#2 = bitmap_line_xdyi::e#1 - bitmap_line_xdyi::xd#5 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( main:15::bitmap_line:143::bitmap_line_xdyi:534 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] { { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:534 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::x#0 = bitmap_line_xdyi::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyi:584 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] { { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:584 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::x#1 = bitmap_line_xdyi::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [702] bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#6 + 1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] ( main:15::bitmap_line:143::bitmap_line_xdyi:534 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] { { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:534 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::x#0 = bitmap_line_xdyi::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyi:584 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] { { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:584 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::x#1 = bitmap_line_xdyi::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [703] if(bitmap_line_xdyi::x#2!=bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] ( main:15::bitmap_line:143::bitmap_line_xdyi:534 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] { { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:534 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::x#0 = bitmap_line_xdyi::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyi:584 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] { { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:584 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::x#1 = bitmap_line_xdyi::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [706] bitmap_line_ydxd::e#0 = bitmap_line_ydxd::xd#2 >> 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:131 [ bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#0 bitmap_line_ydxd::c#1 ] -Statement [708] bitmap_plot::x#3 = bitmap_line_ydxd::x#3 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } { bitmap_plot::c#4 = bitmap_plot::c#5 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#0 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } { bitmap_plot::c#4 = bitmap_plot::c#5 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#0 bitmap_line::c#10 bitmap_line::c#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } { bitmap_plot::c#4 = bitmap_plot::c#5 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#1 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } { bitmap_plot::c#4 = bitmap_plot::c#5 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#1 bitmap_line::c#10 bitmap_line::c#0 } } ) always clobbers reg byte a -Statement [709] bitmap_plot::y#3 = bitmap_line_ydxd::y#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 bitmap_plot::y#3 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 bitmap_plot::y#3 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } { bitmap_plot::c#4 = bitmap_plot::c#5 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#0 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 bitmap_plot::y#3 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } { bitmap_plot::c#4 = bitmap_plot::c#5 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#0 bitmap_line::c#10 bitmap_line::c#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 bitmap_plot::y#3 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } { bitmap_plot::c#4 = bitmap_plot::c#5 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#1 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 bitmap_plot::y#3 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } { bitmap_plot::c#4 = bitmap_plot::c#5 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#1 bitmap_line::c#10 bitmap_line::c#0 } } ) always clobbers reg byte a -Statement [713] bitmap_line_ydxd::e#1 = bitmap_line_ydxd::e#3 + bitmap_line_ydxd::xd#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } ) always clobbers reg byte a -Statement [714] if(bitmap_line_ydxd::yd#5>=bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } ) always clobbers reg byte a -Statement [715] bitmap_line_ydxd::x#2 = -- bitmap_line_ydxd::x#3 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } ) always clobbers reg byte a -Statement [716] bitmap_line_ydxd::e#2 = bitmap_line_ydxd::e#1 - bitmap_line_ydxd::yd#5 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } ) always clobbers reg byte a -Statement [718] bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#6 + 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } ) always clobbers reg byte a -Statement [719] if(bitmap_line_ydxd::y#3!=bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } ) always clobbers reg byte a -Statement [722] bitmap_line_xdyd::e#0 = bitmap_line_xdyd::yd#2 >> 1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:132 [ bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#1 bitmap_line_xdyd::c#0 ] -Statement [724] bitmap_plot::x#1 = bitmap_line_xdyd::x#3 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } { bitmap_plot::c#2 = bitmap_plot::c#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#0 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } { bitmap_plot::c#2 = bitmap_plot::c#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#0 bitmap_line::c#10 bitmap_line::c#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } { bitmap_plot::c#2 = bitmap_plot::c#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#1 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } { bitmap_plot::c#2 = bitmap_plot::c#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#1 bitmap_line::c#10 bitmap_line::c#0 } } ) always clobbers reg byte a -Statement [725] bitmap_plot::y#1 = bitmap_line_xdyd::y#3 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 bitmap_plot::y#1 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 bitmap_plot::y#1 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } { bitmap_plot::c#2 = bitmap_plot::c#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#0 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 bitmap_plot::y#1 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } { bitmap_plot::c#2 = bitmap_plot::c#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#0 bitmap_line::c#10 bitmap_line::c#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 bitmap_plot::y#1 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } { bitmap_plot::c#2 = bitmap_plot::c#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#1 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 bitmap_plot::y#1 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } { bitmap_plot::c#2 = bitmap_plot::c#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#1 bitmap_line::c#10 bitmap_line::c#0 } } ) always clobbers reg byte a -Statement [729] bitmap_line_xdyd::e#1 = bitmap_line_xdyd::e#3 + bitmap_line_xdyd::yd#2 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [730] if(bitmap_line_xdyd::xd#5>=bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [731] bitmap_line_xdyd::y#2 = -- bitmap_line_xdyd::y#3 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [732] bitmap_line_xdyd::e#2 = bitmap_line_xdyd::e#1 - bitmap_line_xdyd::xd#5 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [734] bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#6 + 1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [735] if(bitmap_line_xdyd::x#2!=bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [741] divr16u::$2 = divr16u::$1 & $80 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:15::modr16u:152::divr16u:597 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] { { modr16u::dividend#0 = modr16u::dividend#4 rand::return#2 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#2 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:158::divr16u:597 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] { { modr16u::dividend#1 = modr16u::dividend#4 rand::return#3 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#3 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:164::divr16u:597 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] { { modr16u::dividend#2 = modr16u::dividend#4 rand::return#10 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#4 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:170::divr16u:597 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] { { modr16u::dividend#3 = modr16u::dividend#4 rand::return#11 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#10 } { divr16u::divisor#0 = modr16u::divisor#4 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:156 [ divr16u::i#2 divr16u::i#1 ] -Statement [743] divr16u::rem#1 = divr16u::rem#0 | 1 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:15::modr16u:152::divr16u:597 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] { { modr16u::dividend#0 = modr16u::dividend#4 rand::return#2 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#2 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:158::divr16u:597 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] { { modr16u::dividend#1 = modr16u::dividend#4 rand::return#3 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#3 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:164::divr16u:597 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] { { modr16u::dividend#2 = modr16u::dividend#4 rand::return#10 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#4 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:170::divr16u:597 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] { { modr16u::dividend#3 = modr16u::dividend#4 rand::return#11 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#10 } { divr16u::divisor#0 = modr16u::divisor#4 } } ) always clobbers reg byte a -Statement [747] if(divr16u::rem#5> 7 [ screensize::hscale#0 ] ( screensize:20 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::hscale#0 ] { } conio_x16_init:13::screensize:20 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::hscale#0 ] { } ) always clobbers reg byte a -Statement [184] screensize::$1 = $28 << screensize::hscale#0 [ screensize::$1 ] ( screensize:20 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$1 ] { } conio_x16_init:13::screensize:20 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$1 ] { } ) always clobbers reg byte a -Statement [186] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 [ screensize::vscale#0 ] ( screensize:20 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::vscale#0 ] { } conio_x16_init:13::screensize:20 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::vscale#0 ] { } ) always clobbers reg byte a -Statement [187] screensize::$3 = $1e << screensize::vscale#0 [ screensize::$3 ] ( screensize:20 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$3 ] { } conio_x16_init:13::screensize:20 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$3 ] { } ) always clobbers reg byte a -Statement [190] conio_screen_layer = 1 [ conio_screen_layer ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } main:15::screenlayer:132 [ conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } ) always clobbers reg byte a -Statement [197] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 [ conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [198] CONIO_SCREEN_TEXT#17 = vera_layer_get_mapbase_offset::return#2 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } ) always clobbers reg byte a -Statement [200] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] { } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] { } ) always clobbers reg byte a -Statement [201] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] { } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] { } ) always clobbers reg byte a -Statement [202] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] { } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] { } ) always clobbers reg byte a reg byte y -Statement [203] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] { } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] { } ) always clobbers reg byte a -Statement [204] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] { } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] { } ) always clobbers reg byte a -Statement [205] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] { } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] { } ) always clobbers reg byte a -Statement [206] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] { } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] { } ) always clobbers reg byte a -Statement [207] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } main:15::screenlayer:132 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } ) always clobbers reg byte a -Statement [208] conio_width = screenlayer::$2 [ conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } main:15::screenlayer:132 [ conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } ) always clobbers reg byte a -Statement [216] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [217] screenlayer::$4 = vera_layer_get_rowskip::return#2 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] { } ) always clobbers reg byte a -Statement [218] conio_rowskip = screenlayer::$4 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } ) always clobbers reg byte a -Statement [220] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] { } ) always clobbers reg byte a -Statement [221] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] { } ) always clobbers reg byte a -Statement [222] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] { } ) always clobbers reg byte a reg byte y -Statement [223] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] { } ) always clobbers reg byte a -Statement [224] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] { } ) always clobbers reg byte a -Statement [225] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] { } ) always clobbers reg byte a -Statement [226] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] { } ) always clobbers reg byte a -Statement [227] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] { } ) always clobbers reg byte a -Statement [228] conio_height = screenlayer::$5 [ conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } conio_x16_init:13::screenlayer:22 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::screenlayer:77 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:15::screenlayer:132 [ conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } ) always clobbers reg byte a -Statement [237] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] ( vera_layer_set_mapbase:28 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } conio_x16_init:13::vera_layer_set_mapbase:28 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } vera_layer_set_mapbase:30 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } conio_x16_init:13::vera_layer_set_mapbase:30 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } main:15::vera_layer_mode_tile:73::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:18::vera_layer_mode_tile:179::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [238] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] ( vera_layer_set_mapbase:28 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } conio_x16_init:13::vera_layer_set_mapbase:28 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } vera_layer_set_mapbase:30 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } conio_x16_init:13::vera_layer_set_mapbase:30 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } main:15::vera_layer_mode_tile:73::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:18::vera_layer_mode_tile:179::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [239] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 [ ] ( vera_layer_set_mapbase:28 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } conio_x16_init:13::vera_layer_set_mapbase:28 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } vera_layer_set_mapbase:30 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } conio_x16_init:13::vera_layer_set_mapbase:30 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } main:15::vera_layer_mode_tile:73::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:18::vera_layer_mode_tile:179::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179::vera_layer_set_mapbase:321 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a reg byte y -Statement [242] if(gotoxy::y#7<=conio_screen_height) goto gotoxy::@4 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] ( gotoxy:35 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#1 = gotoxy::y#7 conio_x16_init::line#3 } } conio_x16_init:13::gotoxy:35 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#1 = gotoxy::y#7 conio_x16_init::line#3 } } main:15::gotoxy:85 [ conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { } main:15::gotoxy:100 [ conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { } main:15::gotoxy:117 [ conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { } main:15::gotoxy:121 [ conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { } main:15::printf_str:87::cputc:403::cputln:63::cscroll:271::gotoxy:622 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:89::cputc:403::cputln:63::cscroll:271::gotoxy:622 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:91::cputc:403::cputln:63::cscroll:271::gotoxy:622 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:93::cputc:403::cputln:63::cscroll:271::gotoxy:622 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:104::cputc:403::cputln:63::cscroll:271::gotoxy:622 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:119::cputc:403::cputln:63::cscroll:271::gotoxy:622 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:125::cputc:403::cputln:63::cscroll:271::gotoxy:622 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:87::cputc:403::cputln:67::cscroll:271::gotoxy:622 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:89::cputc:403::cputln:67::cscroll:271::gotoxy:622 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:91::cputc:403::cputln:67::cscroll:271::gotoxy:622 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:93::cputc:403::cputln:67::cscroll:271::gotoxy:622 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:104::cputc:403::cputln:67::cscroll:271::gotoxy:622 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:119::cputc:403::cputln:67::cscroll:271::gotoxy:622 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:125::cputc:403::cputln:67::cscroll:271::gotoxy:622 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:87::cputc:403::cputln:69::cscroll:271::gotoxy:622 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:89::cputc:403::cputln:69::cscroll:271::gotoxy:622 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:91::cputc:403::cputln:69::cscroll:271::gotoxy:622 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:93::cputc:403::cputln:69::cscroll:271::gotoxy:622 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:104::cputc:403::cputln:69::cscroll:271::gotoxy:622 [ CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:119::cputc:403::cputln:69::cscroll:271::gotoxy:622 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } main:15::printf_str:125::cputc:403::cputln:69::cscroll:271::gotoxy:622 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#7 ] { { gotoxy::y#2 = gotoxy::y#7 } } ) always clobbers reg byte a -Statement [245] if(0> 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [322] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } ) always clobbers reg byte a -Statement [323] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } ) always clobbers reg byte a -Statement [326] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [327] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } ) always clobbers reg byte a -Statement [329] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } ) always clobbers reg byte a -Statement [332] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } ) always clobbers reg byte a -Statement [336] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } ) always clobbers reg byte a -Statement [342] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } ) always clobbers reg byte a -Statement [343] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } ) always clobbers reg byte a -Statement [344] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [345] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$13 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$13 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$13 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$13 ] { } ) always clobbers reg byte a -Statement [346] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [347] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [348] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$12 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$12 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$12 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$12 ] { } ) always clobbers reg byte a -Statement [349] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [350] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [351] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$11 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$11 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$11 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$11 ] { } ) always clobbers reg byte a -Statement [352] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:15::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_mode_tile:179 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [354] *vera_tilebase_offset = 0 [ ] ( main:15::vera_layer_mode_bitmap:75 [ conio_screen_width conio_screen_height ] { } ) always clobbers reg byte a -Statement [355] *vera_tilebase_bank = 0 [ ] ( main:15::vera_layer_mode_bitmap:75 [ conio_screen_width conio_screen_height ] { } ) always clobbers reg byte a -Statement [356] *vera_tilebase_address = vera_layer_mode_bitmap::bitmap_address#1 [ ] ( main:15::vera_layer_mode_bitmap:75 [ conio_screen_width conio_screen_height ] { } ) always clobbers reg byte a -Statement [357] *VERA_DC_HSCALE = $40 [ ] ( main:15::vera_layer_mode_bitmap:75 [ conio_screen_width conio_screen_height ] { } ) always clobbers reg byte a -Statement [358] *VERA_DC_VSCALE = $40 [ ] ( main:15::vera_layer_mode_bitmap:75 [ conio_screen_width conio_screen_height ] { } ) always clobbers reg byte a -Statement [364] clrscr::line_text#0 = (char *)CONIO_SCREEN_TEXT#17 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::line_text#0 ] ( main:15::clrscr:83 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::line_text#0 ] { { vera_layer_get_backcolor::layer#0 = conio_screen_layer } { vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 } } main:15::clrscr:115 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::line_text#0 ] { { vera_layer_get_backcolor::layer#0 = conio_screen_layer } { vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 } } main:15::clrscr:138 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::line_text#0 ] { { vera_layer_get_backcolor::layer#0 = conio_screen_layer } { vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 } } ) always clobbers reg byte a -Statement [369] clrscr::$1 = clrscr::$0 << 4 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::line_text#0 clrscr::$1 ] ( main:15::clrscr:83 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::line_text#0 clrscr::$1 ] { { vera_layer_get_textcolor::layer#0 = conio_screen_layer } { vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 } } main:15::clrscr:115 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::line_text#0 clrscr::$1 ] { { vera_layer_get_textcolor::layer#0 = conio_screen_layer } { vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 } } main:15::clrscr:138 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 clrscr::line_text#0 clrscr::$1 ] { { vera_layer_get_textcolor::layer#0 = conio_screen_layer } { vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 } } ) always clobbers reg byte a -Statement [376] if(clrscr::l#2> 3 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$7 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$7 ] { } ) always clobbers reg byte a -Statement [428] bitmap_init::$23 = bitmap_init::x#10 << 1 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$7 bitmap_init::$23 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$7 bitmap_init::$23 ] { } ) always clobbers reg byte a -Statement [429] bitmap_init::$29 = __bitmap_plot_x + bitmap_init::$23 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$7 bitmap_init::$29 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$7 bitmap_init::$29 ] { } ) always clobbers reg byte a -Potential register analysis [430] *bitmap_init::$29 = bitmap_init::$7 missing fragment Fragment not found _deref_pwum1=vwum2. Attempted variations _deref_pwum1=vwum2 allocation: mem[2] [ bitmap_init::$29 ] mem[2] [ bitmap_init::$7 ] -MISSING FRAGMENTS - Fragment not found _deref_pwum1=vwum2. Attempted variations _deref_pwum1=vwum2 -Statement [430] *bitmap_init::$29 = bitmap_init::$7 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [431] bitmap_init::$30 = __bitmap_plot_bitmask + bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$30 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$30 ] { } ) always clobbers reg byte a -Statement [432] *bitmap_init::$30 = bitmap_init::bitmask#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 ] { } ) always clobbers reg byte a reg byte y -Statement [433] bitmap_init::$31 = __bitmap_plot_bitshift + bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$31 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 bitmap_init::$31 ] { } ) always clobbers reg byte a -Statement [434] *bitmap_init::$31 = (char)bitmap_init::bitshift#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#10 bitmap_init::bitshift#10 ] { } ) always clobbers reg byte a reg byte y -Statement [438] if(__bitmap_color_depth!=1) goto bitmap_init::@3 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 ] { } ) always clobbers reg byte a -Statement [439] bitmap_init::$10 = bitmap_init::x#10 >> 2 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$10 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$10 ] { } ) always clobbers reg byte a -Statement [440] bitmap_init::$24 = bitmap_init::x#10 << 1 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$10 bitmap_init::$24 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$10 bitmap_init::$24 ] { } ) always clobbers reg byte a -Statement [441] bitmap_init::$32 = __bitmap_plot_x + bitmap_init::$24 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$10 bitmap_init::$32 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$10 bitmap_init::$32 ] { } ) always clobbers reg byte a -Potential register analysis [442] *bitmap_init::$32 = bitmap_init::$10 missing fragment Fragment not found _deref_pwum1=vwum2. Attempted variations _deref_pwum1=vwum2 allocation: mem[2] [ bitmap_init::$32 ] mem[2] [ bitmap_init::$10 ] -MISSING FRAGMENTS - Fragment not found _deref_pwum1=vwum2. Attempted variations _deref_pwum1=vwum2 -Statement [442] *bitmap_init::$32 = bitmap_init::$10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [443] bitmap_init::$33 = __bitmap_plot_bitmask + bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$33 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$33 ] { } ) always clobbers reg byte a -Statement [444] *bitmap_init::$33 = bitmap_init::bitmask#11 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 ] { } ) always clobbers reg byte a reg byte y -Statement [445] bitmap_init::$34 = __bitmap_plot_bitshift + bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$34 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 bitmap_init::$34 ] { } ) always clobbers reg byte a -Statement [446] *bitmap_init::$34 = (char)bitmap_init::bitshift#11 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#11 bitmap_init::bitshift#11 ] { } ) always clobbers reg byte a reg byte y -Statement [448] bitmap_init::bitmask#2 = bitmap_init::bitmask#11 >> 2 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#2 bitmap_init::bitmask#2 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#2 bitmap_init::bitmask#2 ] { } ) always clobbers reg byte a -Statement [450] if(__bitmap_color_depth!=2) goto bitmap_init::@4 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 ] { } ) always clobbers reg byte a -Statement [451] bitmap_init::$13 = bitmap_init::x#10 >> 1 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$13 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$13 ] { } ) always clobbers reg byte a -Statement [452] bitmap_init::$25 = bitmap_init::x#10 << 1 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$13 bitmap_init::$25 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$13 bitmap_init::$25 ] { } ) always clobbers reg byte a -Statement [453] bitmap_init::$35 = __bitmap_plot_x + bitmap_init::$25 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$13 bitmap_init::$35 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$13 bitmap_init::$35 ] { } ) always clobbers reg byte a -Potential register analysis [454] *bitmap_init::$35 = bitmap_init::$13 missing fragment Fragment not found _deref_pwum1=vwum2. Attempted variations _deref_pwum1=vwum2 allocation: mem[2] [ bitmap_init::$13 ] mem[2] [ bitmap_init::$35 ] -MISSING FRAGMENTS - Fragment not found _deref_pwum1=vwum2. Attempted variations _deref_pwum1=vwum2 -Statement [454] *bitmap_init::$35 = bitmap_init::$13 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [455] bitmap_init::$36 = __bitmap_plot_bitmask + bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$36 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$36 ] { } ) always clobbers reg byte a -Statement [456] *bitmap_init::$36 = bitmap_init::bitmask#12 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 ] { } ) always clobbers reg byte a reg byte y -Statement [457] bitmap_init::$37 = __bitmap_plot_bitshift + bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$37 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 bitmap_init::$37 ] { } ) always clobbers reg byte a -Statement [458] *bitmap_init::$37 = (char)bitmap_init::bitshift#12 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#12 ] { } ) always clobbers reg byte a reg byte y -Statement [459] bitmap_init::bitshift#3 = bitmap_init::bitshift#12 - 4 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#3 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#12 bitmap_init::bitshift#3 ] { } ) always clobbers reg byte a -Statement [460] bitmap_init::bitmask#3 = bitmap_init::bitmask#12 >> 4 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#3 bitmap_init::bitmask#3 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#3 bitmap_init::bitmask#3 ] { } ) always clobbers reg byte a -Statement [462] if(__bitmap_color_depth!=3) goto bitmap_init::@5 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] { } ) always clobbers reg byte a -Statement [463] bitmap_init::$26 = bitmap_init::x#10 << 1 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 bitmap_init::$26 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 bitmap_init::$26 ] { } ) always clobbers reg byte a -Statement [464] bitmap_init::$38 = __bitmap_plot_x + bitmap_init::$26 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 bitmap_init::$38 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 bitmap_init::$38 ] { } ) always clobbers reg byte a -Potential register analysis [465] *bitmap_init::$38 = bitmap_init::x#10 missing fragment Fragment not found _deref_pwum1=vwum2. Attempted variations _deref_pwum1=vwum2 allocation: mem[2] [ bitmap_init::x#10 bitmap_init::x#1 ] mem[2] [ bitmap_init::$38 ] -MISSING FRAGMENTS - Fragment not found _deref_pwum1=vwum2. Attempted variations _deref_pwum1=vwum2 -Statement [465] *bitmap_init::$38 = bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [466] bitmap_init::$39 = __bitmap_plot_bitmask + bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 bitmap_init::$39 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 bitmap_init::$39 ] { } ) always clobbers reg byte a -Statement [467] *bitmap_init::$39 = bitmap_init::bitmask#13 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] { } ) always clobbers reg byte a reg byte y -Statement [468] bitmap_init::$40 = __bitmap_plot_bitshift + bitmap_init::x#10 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 bitmap_init::$40 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 bitmap_init::$40 ] { } ) always clobbers reg byte a -Statement [469] *bitmap_init::$40 = (char)bitmap_init::bitshift#13 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] { } ) always clobbers reg byte a reg byte y -Statement [470] if(bitmap_init::bitshift#13>=0) goto bitmap_init::@6 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#13 bitmap_init::bitmask#13 ] { } ) always clobbers reg byte a -Statement [471] bitmap_init::bitshift#4 = bitshifts[__bitmap_color_depth] [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#13 bitmap_init::bitshift#4 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitmask#13 bitmap_init::bitshift#4 ] { } ) always clobbers reg byte a reg byte y -Statement [473] if(bitmap_init::bitmask#13!=0) goto bitmap_init::@7 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#14 bitmap_init::bitmask#13 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#14 bitmap_init::bitmask#13 ] { } ) always clobbers reg byte a -Statement [474] bitmap_init::bitmask#4 = bitmasks[__bitmap_color_depth] [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#14 bitmap_init::bitmask#4 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#10 bitmap_init::bitshift#14 bitmap_init::bitmask#4 ] { } ) always clobbers reg byte a reg byte y -Statement [477] if(bitmap_init::x#1!=$280) goto bitmap_init::@1 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#1 bitmap_init::bitmask#16 bitmap_init::bitshift#14 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::x#1 bitmap_init::bitmask#16 bitmap_init::bitshift#14 ] { } ) always clobbers reg byte a -Statement [478] bitmap_init::$3 = __bitmap_color_depth << 2 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::$3 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::$3 ] { } ) always clobbers reg byte a -Statement [479] bitmap_init::$4 = bitmap_init::$3 + __bitmap_hscale [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::$4 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::$4 ] { } ) always clobbers reg byte a -Statement [480] bitmap_init::$27 = bitmap_init::$4 << 1 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::$27 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::$27 ] { } ) always clobbers reg byte a -Statement [481] bitmap_init::hdelta#0 = hdeltas[bitmap_init::$27] [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 ] { } ) always clobbers reg byte a -Statement [482] bitmap_init::yoffs#0 = __bitmap_address [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::yoffs#0 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::yoffs#0 ] { } ) always clobbers reg byte a -Statement [484] bitmap_init::$28 = bitmap_init::y#2 << 2 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$28 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$28 ] { } ) always clobbers reg byte a -Statement [485] bitmap_init::$41 = __bitmap_plot_y + bitmap_init::$28 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$41 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$41 ] { } ) always clobbers reg byte a -Potential register analysis [486] *bitmap_init::$41 = bitmap_init::yoffs#2 missing fragment Fragment not found _deref_pdum1=vdum2. Attempted variations _deref_pdum1=vdum2 allocation: mem[4] [ bitmap_init::yoffs#2 bitmap_init::yoffs#0 bitmap_init::yoffs#1 ] mem[2] [ bitmap_init::$41 ] -MISSING FRAGMENTS - Fragment not found _deref_pdum1=vdum2. Attempted variations _deref_pdum1=vdum2 -Statement [486] *bitmap_init::$41 = bitmap_init::yoffs#2 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#2 bitmap_init::yoffs#2 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#2 bitmap_init::yoffs#2 ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [487] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + bitmap_init::hdelta#0 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a -Statement [489] if(bitmap_init::y#1!=$1e0) goto bitmap_init::@15 [ __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#1 bitmap_init::yoffs#1 ] ( main:15::bitmap_init:96 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_vscale __bitmap_color_depth bitmap_init::hdelta#0 bitmap_init::y#1 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a -Statement [491] bitmap_clear::$6 = __bitmap_vscale << 1 [ __bitmap_address __bitmap_hscale __bitmap_color_depth bitmap_clear::$6 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_color_depth bitmap_clear::$6 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [492] bitmap_clear::vdelta#0 = vdeltas[bitmap_clear::$6] [ __bitmap_address __bitmap_hscale __bitmap_color_depth bitmap_clear::vdelta#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale __bitmap_color_depth bitmap_clear::vdelta#0 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [493] bitmap_clear::$0 = __bitmap_color_depth << 2 [ __bitmap_address __bitmap_hscale bitmap_clear::vdelta#0 bitmap_clear::$0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address __bitmap_hscale bitmap_clear::vdelta#0 bitmap_clear::$0 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [494] bitmap_clear::$1 = bitmap_clear::$0 + __bitmap_hscale [ __bitmap_address bitmap_clear::vdelta#0 bitmap_clear::$1 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address bitmap_clear::vdelta#0 bitmap_clear::$1 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [495] bitmap_clear::$7 = bitmap_clear::$1 << 1 [ __bitmap_address bitmap_clear::vdelta#0 bitmap_clear::$7 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address bitmap_clear::vdelta#0 bitmap_clear::$7 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [496] bitmap_clear::hdelta#0 = hdeltas[bitmap_clear::$7] [ __bitmap_address bitmap_clear::vdelta#0 bitmap_clear::hdelta#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address bitmap_clear::vdelta#0 bitmap_clear::hdelta#0 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [497] mul16u::a#0 = bitmap_clear::hdelta#0 [ __bitmap_address bitmap_clear::vdelta#0 mul16u::a#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address bitmap_clear::vdelta#0 mul16u::a#0 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [498] mul16u::b#0 = bitmap_clear::vdelta#0 [ __bitmap_address mul16u::a#0 mul16u::b#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address mul16u::a#0 mul16u::b#0 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [500] mul16u::return#0 = mul16u::res#2 [ __bitmap_address mul16u::return#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address mul16u::return#0 ] { { mul16u::a#0 = bitmap_clear::hdelta#0 } { mul16u::b#0 = bitmap_clear::vdelta#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [501] bitmap_clear::count#0 = mul16u::return#0 [ __bitmap_address bitmap_clear::count#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 __bitmap_address bitmap_clear::count#0 ] { { memset_vram::vbank#0 = bitmap_clear::vbank#0 } { memset_vram::num#0 = bitmap_clear::count#0 } } ) always clobbers reg byte a -Statement [503] bitmap_clear::vdest#0 = word0 __bitmap_address [ bitmap_clear::count#0 bitmap_clear::vbank#0 bitmap_clear::vdest#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_clear::count#0 bitmap_clear::vbank#0 bitmap_clear::vdest#0 ] { { memset_vram::vbank#0 = bitmap_clear::vbank#0 } { memset_vram::num#0 = bitmap_clear::count#0 } } ) always clobbers reg byte a -Statement [505] memset_vram::vdest#0 = (void *)bitmap_clear::vdest#0 [ bitmap_clear::count#0 memset_vram::vbank#0 memset_vram::vdest#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_clear::count#0 memset_vram::vbank#0 memset_vram::vdest#0 ] { { memset_vram::vbank#0 = bitmap_clear::vbank#0 } { memset_vram::num#0 = bitmap_clear::count#0 } } ) always clobbers reg byte a -Statement [506] memset_vram::num#0 = bitmap_clear::count#0 [ memset_vram::vbank#0 memset_vram::vdest#0 memset_vram::num#0 ] ( main:15::bitmap_clear:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 memset_vram::vbank#0 memset_vram::vdest#0 memset_vram::num#0 ] { { memset_vram::vbank#0 = bitmap_clear::vbank#0 } { memset_vram::num#0 = bitmap_clear::count#0 } } ) always clobbers reg byte a -Statement [509] kbhit::ch = 0 [ kbhit::ch ] ( main:15::kbhit:106 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#23 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 kbhit::ch ] { { kbhit::return#1 = kbhit::return#2 } } main:15::kbhit:127 [ main::x#3 main::color#2 kbhit::ch ] { { kbhit::return#1 = kbhit::return#3 } } ) always clobbers reg byte a -Statement [515] if(bitmap_line::x0#10> 9 [ rand_state#0 rand::$1 ] ( main:15::rand:149 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#0 rand::$1 ] { { rand_state#13 = rand_state#23 } { rand::return#0 = rand::return#2 } } main:15::rand:155 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#0 rand::$1 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#3 } } main:15::rand:161 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#0 rand::$1 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#10 } } main:15::rand:167 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#0 rand::$1 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#11 } } main:15::rand:173 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#0 rand::$1 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#12 } } ) always clobbers reg byte a -Statement [589] rand_state#1 = rand_state#0 ^ rand::$1 [ rand_state#1 ] ( main:15::rand:149 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 ] { { rand_state#13 = rand_state#23 } { rand::return#0 = rand::return#2 } } main:15::rand:155 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#3 } } main:15::rand:161 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#10 } } main:15::rand:167 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#11 } } main:15::rand:173 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#12 } } ) always clobbers reg byte a -Statement [590] rand::$2 = rand_state#1 << 8 [ rand_state#1 rand::$2 ] ( main:15::rand:149 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 rand::$2 ] { { rand_state#13 = rand_state#23 } { rand::return#0 = rand::return#2 } } main:15::rand:155 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 rand::$2 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#3 } } main:15::rand:161 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 rand::$2 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#10 } } main:15::rand:167 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 rand::$2 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#11 } } main:15::rand:173 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#1 rand::$2 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#12 } } ) always clobbers reg byte a -Statement [591] rand_state#14 = rand_state#1 ^ rand::$2 [ rand_state#14 ] ( main:15::rand:149 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 ] { { rand_state#13 = rand_state#23 } { rand::return#0 = rand::return#2 } } main:15::rand:155 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#3 } } main:15::rand:161 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#10 } } main:15::rand:167 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#11 } } main:15::rand:173 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#12 } } ) always clobbers reg byte a -Statement [592] rand::return#0 = rand_state#14 [ rand_state#14 rand::return#0 ] ( main:15::rand:149 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 rand::return#0 ] { { rand_state#13 = rand_state#23 } { rand::return#0 = rand::return#2 } } main:15::rand:155 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 rand::return#0 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#3 } } main:15::rand:161 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 rand::return#0 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#10 } } main:15::rand:167 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 rand::return#0 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#11 } } main:15::rand:173 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 rand_state#14 rand::return#0 ] { { rand_state#13 = rand_state#14 } { rand::return#0 = rand::return#12 } } ) always clobbers reg byte a -Statement [595] divr16u::dividend#1 = modr16u::dividend#4 [ modr16u::divisor#4 divr16u::dividend#1 ] ( main:15::modr16u:152 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 modr16u::divisor#4 divr16u::dividend#1 ] { { modr16u::dividend#0 = modr16u::dividend#4 rand::return#2 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#2 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:158 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 modr16u::divisor#4 divr16u::dividend#1 ] { { modr16u::dividend#1 = modr16u::dividend#4 rand::return#3 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#3 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:164 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 modr16u::divisor#4 divr16u::dividend#1 ] { { modr16u::dividend#2 = modr16u::dividend#4 rand::return#10 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#4 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:170 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 modr16u::divisor#4 divr16u::dividend#1 ] { { modr16u::dividend#3 = modr16u::dividend#4 rand::return#11 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#10 } { divr16u::divisor#0 = modr16u::divisor#4 } } ) always clobbers reg byte a -Statement [596] divr16u::divisor#0 = modr16u::divisor#4 [ divr16u::dividend#1 divr16u::divisor#0 ] ( main:15::modr16u:152 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::dividend#1 divr16u::divisor#0 ] { { modr16u::dividend#0 = modr16u::dividend#4 rand::return#2 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#2 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:158 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::dividend#1 divr16u::divisor#0 ] { { modr16u::dividend#1 = modr16u::dividend#4 rand::return#3 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#3 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:164 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::dividend#1 divr16u::divisor#0 ] { { modr16u::dividend#2 = modr16u::dividend#4 rand::return#10 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#4 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:170 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::dividend#1 divr16u::divisor#0 ] { { modr16u::dividend#3 = modr16u::dividend#4 rand::return#11 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#10 } { divr16u::divisor#0 = modr16u::divisor#4 } } ) always clobbers reg byte a -Statement [598] modr16u::return#0 = rem16u#0 [ modr16u::return#0 ] ( main:15::modr16u:152 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 modr16u::return#0 ] { { modr16u::dividend#0 = modr16u::dividend#4 rand::return#2 } { modr16u::return#0 = modr16u::return#2 } } main:15::modr16u:158 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 modr16u::return#0 ] { { modr16u::dividend#1 = modr16u::dividend#4 rand::return#3 } { modr16u::return#0 = modr16u::return#3 } } main:15::modr16u:164 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 modr16u::return#0 ] { { modr16u::dividend#2 = modr16u::dividend#4 rand::return#10 } { modr16u::return#0 = modr16u::return#4 } } main:15::modr16u:170 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 modr16u::return#0 ] { { modr16u::dividend#3 = modr16u::dividend#4 rand::return#11 } { modr16u::return#0 = modr16u::return#10 } } ) always clobbers reg byte a -Statement [600] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) [ vera_layer_set_text_color_mode::addr#0 ] ( vera_layer_mode_text:18::vera_layer_set_text_color_mode:181 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_set_text_color_mode:181 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } ) always clobbers reg byte a -Statement [601] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C [ vera_layer_set_text_color_mode::addr#0 ] ( vera_layer_mode_text:18::vera_layer_set_text_color_mode:181 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_set_text_color_mode:181 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } ) always clobbers reg byte a reg byte y -Statement [602] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 [ ] ( vera_layer_mode_text:18::vera_layer_set_text_color_mode:181 [ conio_screen_width conio_screen_height conio_x16_init::line#0 ] { } conio_x16_init:13::vera_layer_mode_text:18::vera_layer_set_text_color_mode:181 [ conio_screen_width conio_screen_height conio_x16_init::line#0 ] { } ) always clobbers reg byte a reg byte y -Statement [606] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 [ vera_layer_get_mapbase_offset::$0 ] ( screenlayer:22::vera_layer_get_mapbase_offset:196 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:13::screenlayer:22::vera_layer_get_mapbase_offset:196 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:15::screenlayer:77::vera_layer_get_mapbase_offset:196 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:15::screenlayer:132::vera_layer_get_mapbase_offset:196 [ conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [607] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] [ vera_layer_get_mapbase_offset::return#0 ] ( screenlayer:22::vera_layer_get_mapbase_offset:196 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:13::screenlayer:22::vera_layer_get_mapbase_offset:196 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:15::screenlayer:77::vera_layer_get_mapbase_offset:196 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:15::screenlayer:132::vera_layer_get_mapbase_offset:196 [ conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [611] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 [ vera_layer_get_rowskip::$0 ] ( screenlayer:22::vera_layer_get_rowskip:215 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:13::screenlayer:22::vera_layer_get_rowskip:215 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:15::screenlayer:77::vera_layer_get_rowskip:215 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:15::screenlayer:132::vera_layer_get_rowskip:215 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [612] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] [ vera_layer_get_rowskip::return#0 ] ( screenlayer:22::vera_layer_get_rowskip:215 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:13::screenlayer:22::vera_layer_get_rowskip:215 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:15::screenlayer:77::vera_layer_get_rowskip:215 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:15::screenlayer:132::vera_layer_get_rowskip:215 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [614] if(conio_cursor_y[conio_screen_layer]> 1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] ( main:15::bitmap_line:143::bitmap_line_ydxi:526 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] { { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:526 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } main:15::bitmap_line:143::bitmap_line_ydxi:577 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] { { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:577 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } ) always clobbers reg byte a -Statement [676] bitmap_plot::x#2 = bitmap_line_ydxi::x#3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 ] ( main:15::bitmap_line:143::bitmap_line_ydxi:526 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 ] { { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } { bitmap_plot::c#3 = bitmap_plot::c#5 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#0 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_ydxi:526 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } { bitmap_plot::c#3 = bitmap_plot::c#5 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#0 bitmap_line::c#10 bitmap_line::c#0 } } main:15::bitmap_line:143::bitmap_line_ydxi:577 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 ] { { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } { bitmap_plot::c#3 = bitmap_plot::c#5 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#1 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_ydxi:577 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } { bitmap_plot::c#3 = bitmap_plot::c#5 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#1 bitmap_line::c#10 bitmap_line::c#0 } } ) always clobbers reg byte a -Statement [677] bitmap_plot::y#2 = bitmap_line_ydxi::y#3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 bitmap_plot::y#2 ] ( main:15::bitmap_line:143::bitmap_line_ydxi:526 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 bitmap_plot::y#2 ] { { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } { bitmap_plot::c#3 = bitmap_plot::c#5 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#0 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_ydxi:526 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 bitmap_plot::y#2 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } { bitmap_plot::c#3 = bitmap_plot::c#5 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#0 bitmap_line::c#10 bitmap_line::c#0 } } main:15::bitmap_line:143::bitmap_line_ydxi:577 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 bitmap_plot::y#2 ] { { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } { bitmap_plot::c#3 = bitmap_plot::c#5 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#1 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_ydxi:577 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 bitmap_plot::y#2 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } { bitmap_plot::c#3 = bitmap_plot::c#5 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#1 bitmap_line::c#10 bitmap_line::c#0 } } ) always clobbers reg byte a -Statement [681] bitmap_line_ydxi::e#1 = bitmap_line_ydxi::e#3 + bitmap_line_ydxi::xd#2 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( main:15::bitmap_line:143::bitmap_line_ydxi:526 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:526 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } main:15::bitmap_line:143::bitmap_line_ydxi:577 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:577 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } ) always clobbers reg byte a -Statement [682] if(bitmap_line_ydxi::yd#5>=bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( main:15::bitmap_line:143::bitmap_line_ydxi:526 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:526 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } main:15::bitmap_line:143::bitmap_line_ydxi:577 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:577 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } ) always clobbers reg byte a -Statement [684] bitmap_line_ydxi::e#2 = bitmap_line_ydxi::e#1 - bitmap_line_ydxi::yd#5 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] ( main:15::bitmap_line:143::bitmap_line_ydxi:526 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] { { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:526 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } main:15::bitmap_line:143::bitmap_line_ydxi:577 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] { { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:577 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } ) always clobbers reg byte a -Statement [686] bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#6 + 1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] ( main:15::bitmap_line:143::bitmap_line_ydxi:526 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] { { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:526 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } main:15::bitmap_line:143::bitmap_line_ydxi:577 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] { { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:577 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } ) always clobbers reg byte a -Statement [687] if(bitmap_line_ydxi::y#2!=bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( main:15::bitmap_line:143::bitmap_line_ydxi:526 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] { { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:526 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxi::xd#0 = bitmap_line_ydxi::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxi::x#0 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxi::y#0 = bitmap_line_ydxi::y#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxi::c#0 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#0 = bitmap_line_ydxi::yd#5 bitmap_line::yd#2 } { bitmap_line_ydxi::y1#0 = bitmap_line_ydxi::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } main:15::bitmap_line:143::bitmap_line_ydxi:577 [ main::x#3 main::color#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] { { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxi:577 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::c#3 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxi::xd#1 = bitmap_line_ydxi::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxi::x#1 = bitmap_line_ydxi::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxi::y#1 = bitmap_line_ydxi::y#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxi::c#1 = bitmap_line_ydxi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxi::yd#1 = bitmap_line_ydxi::yd#5 bitmap_line::yd#11 } { bitmap_line_ydxi::y1#1 = bitmap_line_ydxi::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } ) always clobbers reg byte a -Statement [690] bitmap_line_xdyi::e#0 = bitmap_line_xdyi::yd#2 >> 1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] ( main:15::bitmap_line:143::bitmap_line_xdyi:534 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] { { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:534 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::x#0 = bitmap_line_xdyi::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyi:584 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] { { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:584 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::x#1 = bitmap_line_xdyi::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [692] bitmap_plot::x#0 = bitmap_line_xdyi::x#3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 ] ( main:15::bitmap_line:143::bitmap_line_xdyi:534 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 ] { { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } { bitmap_plot::c#1 = bitmap_plot::c#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#0 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_xdyi:534 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::x#0 = bitmap_line_xdyi::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } { bitmap_plot::c#1 = bitmap_plot::c#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#0 bitmap_line::c#10 bitmap_line::c#0 } } main:15::bitmap_line:143::bitmap_line_xdyi:584 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 ] { { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } { bitmap_plot::c#1 = bitmap_plot::c#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#1 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_xdyi:584 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::x#1 = bitmap_line_xdyi::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } { bitmap_plot::c#1 = bitmap_plot::c#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#1 bitmap_line::c#10 bitmap_line::c#0 } } ) always clobbers reg byte a -Statement [693] bitmap_plot::y#0 = bitmap_line_xdyi::y#3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 bitmap_plot::y#0 ] ( main:15::bitmap_line:143::bitmap_line_xdyi:534 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 bitmap_plot::y#0 ] { { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } { bitmap_plot::c#1 = bitmap_plot::c#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#0 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_xdyi:534 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 bitmap_plot::y#0 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::x#0 = bitmap_line_xdyi::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } { bitmap_plot::c#1 = bitmap_plot::c#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#0 bitmap_line::c#10 bitmap_line::c#0 } } main:15::bitmap_line:143::bitmap_line_xdyi:584 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 bitmap_plot::y#0 ] { { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } { bitmap_plot::c#1 = bitmap_plot::c#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#1 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_xdyi:584 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 bitmap_plot::y#0 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::x#1 = bitmap_line_xdyi::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } { bitmap_plot::c#1 = bitmap_plot::c#5 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#1 bitmap_line::c#10 bitmap_line::c#0 } } ) always clobbers reg byte a -Statement [697] bitmap_line_xdyi::e#1 = bitmap_line_xdyi::e#3 + bitmap_line_xdyi::yd#2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:15::bitmap_line:143::bitmap_line_xdyi:534 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:534 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::x#0 = bitmap_line_xdyi::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyi:584 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:584 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::x#1 = bitmap_line_xdyi::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [698] if(bitmap_line_xdyi::xd#5>=bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:15::bitmap_line:143::bitmap_line_xdyi:534 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:534 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::x#0 = bitmap_line_xdyi::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyi:584 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:584 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::x#1 = bitmap_line_xdyi::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [700] bitmap_line_xdyi::e#2 = bitmap_line_xdyi::e#1 - bitmap_line_xdyi::xd#5 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( main:15::bitmap_line:143::bitmap_line_xdyi:534 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] { { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:534 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::x#0 = bitmap_line_xdyi::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyi:584 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] { { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:584 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::x#1 = bitmap_line_xdyi::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [702] bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#6 + 1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] ( main:15::bitmap_line:143::bitmap_line_xdyi:534 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] { { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:534 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::x#0 = bitmap_line_xdyi::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyi:584 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] { { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:584 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::x#1 = bitmap_line_xdyi::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [703] if(bitmap_line_xdyi::x#2!=bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] ( main:15::bitmap_line:143::bitmap_line_xdyi:534 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] { { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:534 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyi::yd#0 = bitmap_line_xdyi::yd#2 bitmap_line::yd#2 } { bitmap_line_xdyi::x#0 = bitmap_line_xdyi::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyi::y#0 = bitmap_line_xdyi::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyi::c#0 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#0 = bitmap_line_xdyi::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyi::x1#0 = bitmap_line_xdyi::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyi:584 [ main::x#3 main::color#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] { { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyi:584 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::c#3 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyi::yd#1 = bitmap_line_xdyi::yd#2 bitmap_line::yd#11 } { bitmap_line_xdyi::x#1 = bitmap_line_xdyi::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyi::y#1 = bitmap_line_xdyi::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyi::c#1 = bitmap_line_xdyi::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyi::xd#1 = bitmap_line_xdyi::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyi::x1#1 = bitmap_line_xdyi::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [706] bitmap_line_ydxd::e#0 = bitmap_line_ydxd::xd#2 >> 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } ) always clobbers reg byte a -Statement [708] bitmap_plot::x#3 = bitmap_line_ydxd::x#3 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } { bitmap_plot::c#4 = bitmap_plot::c#5 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#0 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } { bitmap_plot::c#4 = bitmap_plot::c#5 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#0 bitmap_line::c#10 bitmap_line::c#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } { bitmap_plot::c#4 = bitmap_plot::c#5 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#1 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } { bitmap_plot::c#4 = bitmap_plot::c#5 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#1 bitmap_line::c#10 bitmap_line::c#0 } } ) always clobbers reg byte a -Statement [709] bitmap_plot::y#3 = bitmap_line_ydxd::y#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 bitmap_plot::y#3 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 bitmap_plot::y#3 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } { bitmap_plot::c#4 = bitmap_plot::c#5 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#0 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 bitmap_plot::y#3 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } { bitmap_plot::c#4 = bitmap_plot::c#5 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#0 bitmap_line::c#10 bitmap_line::c#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 bitmap_plot::y#3 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } { bitmap_plot::c#4 = bitmap_plot::c#5 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#1 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#3 bitmap_plot::y#3 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } { bitmap_plot::c#4 = bitmap_plot::c#5 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#1 bitmap_line::c#10 bitmap_line::c#0 } } ) always clobbers reg byte a -Statement [713] bitmap_line_ydxd::e#1 = bitmap_line_ydxd::e#3 + bitmap_line_ydxd::xd#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } ) always clobbers reg byte a -Statement [714] if(bitmap_line_ydxd::yd#5>=bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } ) always clobbers reg byte a -Statement [715] bitmap_line_ydxd::x#2 = -- bitmap_line_ydxd::x#3 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } ) always clobbers reg byte a -Statement [716] bitmap_line_ydxd::e#2 = bitmap_line_ydxd::e#1 - bitmap_line_ydxd::yd#5 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } ) always clobbers reg byte a -Statement [718] bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#6 + 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } ) always clobbers reg byte a -Statement [719] if(bitmap_line_ydxd::y#3!=bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( main:15::bitmap_line:143::bitmap_line_ydxd:543 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] { { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:543 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] { { bitmap_line::x1#0 = bitmap_line::x1#10 } { bitmap_line_ydxd::xd#0 = bitmap_line_ydxd::xd#2 bitmap_line::xd#2 } { bitmap_line_ydxd::x#0 = bitmap_line_ydxd::x#5 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_ydxd::y#0 = bitmap_line_ydxd::y#7 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_ydxd::c#0 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#0 = bitmap_line_ydxd::yd#5 bitmap_line::yd#1 } { bitmap_line_ydxd::y1#0 = bitmap_line_ydxd::y1#6 bitmap_line::y1#10 bitmap_line::y1#0 } } main:15::bitmap_line:143::bitmap_line_ydxd:561 [ main::x#3 main::color#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] { { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 } } main:15::bitmap_line:177::bitmap_line_ydxd:561 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::c#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] { { bitmap_line::x0#0 = bitmap_line::x0#10 } { bitmap_line_ydxd::xd#1 = bitmap_line_ydxd::xd#2 bitmap_line::xd#1 } { bitmap_line_ydxd::x#1 = bitmap_line_ydxd::x#5 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_ydxd::y#1 = bitmap_line_ydxd::y#7 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_ydxd::c#1 = bitmap_line_ydxd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_ydxd::yd#1 = bitmap_line_ydxd::yd#5 bitmap_line::yd#10 } { bitmap_line_ydxd::y1#1 = bitmap_line_ydxd::y1#6 bitmap_line::y0#10 bitmap_line::y0#0 } } ) always clobbers reg byte a -Statement [722] bitmap_line_xdyd::e#0 = bitmap_line_xdyd::yd#2 >> 1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [724] bitmap_plot::x#1 = bitmap_line_xdyd::x#3 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } { bitmap_plot::c#2 = bitmap_plot::c#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#0 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } { bitmap_plot::c#2 = bitmap_plot::c#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#0 bitmap_line::c#10 bitmap_line::c#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } { bitmap_plot::c#2 = bitmap_plot::c#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#1 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } { bitmap_plot::c#2 = bitmap_plot::c#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#1 bitmap_line::c#10 bitmap_line::c#0 } } ) always clobbers reg byte a -Statement [725] bitmap_plot::y#1 = bitmap_line_xdyd::y#3 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 bitmap_plot::y#1 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 bitmap_plot::y#1 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } { bitmap_plot::c#2 = bitmap_plot::c#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#0 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 bitmap_plot::y#1 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } { bitmap_plot::c#2 = bitmap_plot::c#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#0 bitmap_line::c#10 bitmap_line::c#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 bitmap_plot::y#1 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } { bitmap_plot::c#2 = bitmap_plot::c#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#1 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#1 bitmap_plot::y#1 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } { bitmap_plot::c#2 = bitmap_plot::c#5 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#1 bitmap_line::c#10 bitmap_line::c#0 } } ) always clobbers reg byte a -Statement [729] bitmap_line_xdyd::e#1 = bitmap_line_xdyd::e#3 + bitmap_line_xdyd::yd#2 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [730] if(bitmap_line_xdyd::xd#5>=bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [731] bitmap_line_xdyd::y#2 = -- bitmap_line_xdyd::y#3 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [732] bitmap_line_xdyd::e#2 = bitmap_line_xdyd::e#1 - bitmap_line_xdyd::xd#5 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [734] bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#6 + 1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [735] if(bitmap_line_xdyd::x#2!=bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( main:15::bitmap_line:143::bitmap_line_xdyd:550 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] { { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:550 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] { { bitmap_line::y0#0 = bitmap_line::y0#10 } { bitmap_line_xdyd::yd#0 = bitmap_line_xdyd::yd#2 bitmap_line::yd#1 } { bitmap_line_xdyd::x#0 = bitmap_line_xdyd::x#6 bitmap_line::x1#10 bitmap_line::x1#0 } { bitmap_line_xdyd::y#0 = bitmap_line_xdyd::y#5 bitmap_line::y1#10 bitmap_line::y1#0 } { bitmap_line_xdyd::c#0 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#0 = bitmap_line_xdyd::xd#5 bitmap_line::xd#2 } { bitmap_line_xdyd::x1#0 = bitmap_line_xdyd::x1#6 bitmap_line::x0#10 bitmap_line::x0#0 } } main:15::bitmap_line:143::bitmap_line_xdyd:568 [ main::x#3 main::color#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] { { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#1 main::color#2 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line::x1#10 bitmap_line::x1#1 bitmap_line::x0#10 bitmap_line::x0#1 main::x#3 } } main:15::bitmap_line:177::bitmap_line_xdyd:568 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::c#3 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] { { bitmap_line::y1#0 = bitmap_line::y1#10 } { bitmap_line_xdyd::yd#1 = bitmap_line_xdyd::yd#2 bitmap_line::yd#10 } { bitmap_line_xdyd::x#1 = bitmap_line_xdyd::x#6 bitmap_line::x0#10 bitmap_line::x0#0 } { bitmap_line_xdyd::y#1 = bitmap_line_xdyd::y#5 bitmap_line::y0#10 bitmap_line::y0#0 } { bitmap_line_xdyd::c#1 = bitmap_line_xdyd::c#3 bitmap_line::c#10 bitmap_line::c#0 } { bitmap_line_xdyd::xd#1 = bitmap_line_xdyd::xd#5 bitmap_line::xd#1 } { bitmap_line_xdyd::x1#1 = bitmap_line_xdyd::x1#6 bitmap_line::x1#10 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [741] divr16u::$2 = divr16u::$1 & $80 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:15::modr16u:152::divr16u:597 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] { { modr16u::dividend#0 = modr16u::dividend#4 rand::return#2 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#2 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:158::divr16u:597 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] { { modr16u::dividend#1 = modr16u::dividend#4 rand::return#3 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#3 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:164::divr16u:597 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] { { modr16u::dividend#2 = modr16u::dividend#4 rand::return#10 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#4 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:170::divr16u:597 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] { { modr16u::dividend#3 = modr16u::dividend#4 rand::return#11 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#10 } { divr16u::divisor#0 = modr16u::divisor#4 } } ) always clobbers reg byte a -Statement [743] divr16u::rem#1 = divr16u::rem#0 | 1 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:15::modr16u:152::divr16u:597 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] { { modr16u::dividend#0 = modr16u::dividend#4 rand::return#2 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#2 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:158::divr16u:597 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] { { modr16u::dividend#1 = modr16u::dividend#4 rand::return#3 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#3 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:164::divr16u:597 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] { { modr16u::dividend#2 = modr16u::dividend#4 rand::return#10 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#4 } { divr16u::divisor#0 = modr16u::divisor#4 } } main:15::modr16u:170::divr16u:597 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip rand_state#14 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] { { modr16u::dividend#3 = modr16u::dividend#4 rand::return#11 divr16u::dividend#1 } { modr16u::return#0 = modr16u::return#10 } { divr16u::divisor#0 = modr16u::divisor#4 } } ) always clobbers reg byte a -Statement [747] if(divr16u::rem#50 - sta.z conio_width+1 - // [5] conio_height = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z conio_height - lda #>0 - sta.z conio_height+1 - // [6] conio_rowshift = 0 -- vbuz1=vbuc1 - lda #0 - sta.z conio_rowshift - // [7] conio_rowskip = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z conio_rowskip - lda #>0 - sta.z conio_rowskip+1 - // [8] __bitmap_address = 0 -- vduz1=vduc1 - lda #<0 - sta.z __bitmap_address - lda #>0 - sta.z __bitmap_address+1 - lda #<0>>$10 - sta.z __bitmap_address+2 - lda #>0>>$10 - sta.z __bitmap_address+3 - // [9] __bitmap_layer = 0 -- vbuz1=vbuc1 - lda #0 - sta.z __bitmap_layer - // [10] __bitmap_hscale = 0 -- vbuz1=vbuc1 - lda #0 - sta.z __bitmap_hscale - // [11] __bitmap_vscale = 0 -- vbuz1=vbuc1 - lda #0 - sta.z __bitmap_vscale - // [12] __bitmap_color_depth = 0 -- vbuz1=vbuc1 - lda #0 - sta.z __bitmap_color_depth - // [13] call conio_x16_init - jsr conio_x16_init - // [14] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] - __b1_from___init1: - jmp __b1 - // __start::@1 - __b1: - // [15] call main - // [70] phi from __start::@1 to main [phi:__start::@1->main] - main_from___b1: - jsr main - jmp __breturn - // __start::@return - __breturn: - // [16] return - rts -} - // conio_x16_init -// Set initial cursor position -conio_x16_init: { - // Position cursor at current line - .label BASIC_CURSOR_LINE = $d6 - .label line = $a8 - // [17] conio_x16_init::line#0 = *conio_x16_init::BASIC_CURSOR_LINE -- vbuz1=_deref_pbuc1 - lda.z BASIC_CURSOR_LINE - sta.z line - // [18] call vera_layer_mode_text - // [178] phi from conio_x16_init to vera_layer_mode_text [phi:conio_x16_init->vera_layer_mode_text] - vera_layer_mode_text_from_conio_x16_init: - jsr vera_layer_mode_text - // [19] phi from conio_x16_init to conio_x16_init::@3 [phi:conio_x16_init->conio_x16_init::@3] - __b3_from_conio_x16_init: - jmp __b3 - // conio_x16_init::@3 - __b3: - // [20] call screensize - jsr screensize - // [21] phi from conio_x16_init::@3 to conio_x16_init::@4 [phi:conio_x16_init::@3->conio_x16_init::@4] - __b4_from___b3: - jmp __b4 - // conio_x16_init::@4 - __b4: - // [22] call screenlayer - jsr screenlayer - // [23] phi from conio_x16_init::@4 to conio_x16_init::@5 [phi:conio_x16_init::@4->conio_x16_init::@5] - __b5_from___b4: - jmp __b5 - // conio_x16_init::@5 - __b5: - // [24] call vera_layer_set_textcolor - // [230] phi from conio_x16_init::@5 to vera_layer_set_textcolor [phi:conio_x16_init::@5->vera_layer_set_textcolor] - vera_layer_set_textcolor_from___b5: - // [230] phi vera_layer_set_textcolor::color#6 = WHITE [phi:conio_x16_init::@5->vera_layer_set_textcolor#0] -- vbuaa=vbuc1 - lda #WHITE - // [230] phi vera_layer_set_textcolor::layer#6 = 1 [phi:conio_x16_init::@5->vera_layer_set_textcolor#1] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_set_textcolor - // [25] phi from conio_x16_init::@5 to conio_x16_init::@6 [phi:conio_x16_init::@5->conio_x16_init::@6] - __b6_from___b5: - jmp __b6 - // conio_x16_init::@6 - __b6: - // [26] call vera_layer_set_backcolor - // [233] phi from conio_x16_init::@6 to vera_layer_set_backcolor [phi:conio_x16_init::@6->vera_layer_set_backcolor] - vera_layer_set_backcolor_from___b6: - // [233] phi vera_layer_set_backcolor::color#4 = BLUE [phi:conio_x16_init::@6->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLUE - // [233] phi vera_layer_set_backcolor::layer#4 = 1 [phi:conio_x16_init::@6->vera_layer_set_backcolor#1] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_set_backcolor - // [27] phi from conio_x16_init::@6 to conio_x16_init::@7 [phi:conio_x16_init::@6->conio_x16_init::@7] - __b7_from___b6: - jmp __b7 - // conio_x16_init::@7 - __b7: - // [28] call vera_layer_set_mapbase - // [236] phi from conio_x16_init::@7 to vera_layer_set_mapbase [phi:conio_x16_init::@7->vera_layer_set_mapbase] - vera_layer_set_mapbase_from___b7: - // [236] phi vera_layer_set_mapbase::mapbase#3 = $20 [phi:conio_x16_init::@7->vera_layer_set_mapbase#0] -- vbuxx=vbuc1 - ldx #$20 - // [236] phi vera_layer_set_mapbase::layer#3 = 0 [phi:conio_x16_init::@7->vera_layer_set_mapbase#1] -- vbuaa=vbuc1 - lda #0 - jsr vera_layer_set_mapbase - // [29] phi from conio_x16_init::@7 to conio_x16_init::@8 [phi:conio_x16_init::@7->conio_x16_init::@8] - __b8_from___b7: - jmp __b8 - // conio_x16_init::@8 - __b8: - // [30] call vera_layer_set_mapbase - // [236] phi from conio_x16_init::@8 to vera_layer_set_mapbase [phi:conio_x16_init::@8->vera_layer_set_mapbase] - vera_layer_set_mapbase_from___b8: - // [236] phi vera_layer_set_mapbase::mapbase#3 = 0 [phi:conio_x16_init::@8->vera_layer_set_mapbase#0] -- vbuxx=vbuc1 - ldx #0 - // [236] phi vera_layer_set_mapbase::layer#3 = 1 [phi:conio_x16_init::@8->vera_layer_set_mapbase#1] -- vbuaa=vbuc1 - lda #1 - jsr vera_layer_set_mapbase - jmp __b9 - // conio_x16_init::@9 - __b9: - // [31] if(conio_x16_init::line#0conio_x16_init::@1] - __b1_from___b2: - __b1_from___b9: - // [33] phi conio_x16_init::line#3 = conio_x16_init::line#1 [phi:conio_x16_init::@2/conio_x16_init::@9->conio_x16_init::@1#0] -- register_copy - jmp __b1 - // conio_x16_init::@1 - __b1: - // [34] gotoxy::y#1 = conio_x16_init::line#3 -- vbuxx=vbuz1 - ldx.z line - // [35] call gotoxy - // [241] phi from conio_x16_init::@1 to gotoxy [phi:conio_x16_init::@1->gotoxy] - gotoxy_from___b1: - // [241] phi gotoxy::y#7 = gotoxy::y#1 [phi:conio_x16_init::@1->gotoxy#0] -- register_copy - jsr gotoxy - jmp __breturn - // conio_x16_init::@return - __breturn: - // [36] return - rts -} - // cputc -// Output one character at the current cursor position -// Moves the cursor forward. Scrolls the entire screen if needed -// void cputc(__zp($69) char c) -cputc: { - .const OFFSET_STACK_C = 0 - .label __16 = $29 - .label c = $69 - .label conio_addr = $1e - // [38] cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C) -- vbuz1=_stackidxbyte_vbuc1 - tsx - lda STACK_BASE+OFFSET_STACK_C,x - sta.z c - // [39] vera_layer_get_color::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [40] call vera_layer_get_color - // [254] phi from cputc to vera_layer_get_color [phi:cputc->vera_layer_get_color] - vera_layer_get_color_from_cputc: - // [254] phi vera_layer_get_color::layer#2 = vera_layer_get_color::layer#0 [phi:cputc->vera_layer_get_color#0] -- register_copy - jsr vera_layer_get_color - // [41] vera_layer_get_color::return#0 = vera_layer_get_color::return#3 - jmp __b7 - // cputc::@7 - __b7: - // [42] cputc::color#0 = vera_layer_get_color::return#0 -- vbuxx=vbuaa - tax - // [43] cputc::$15 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [44] cputc::conio_addr#0 = CONIO_SCREEN_TEXT#12 + conio_line_text[cputc::$15] -- pbuz1=pbuz2_plus_pwuc1_derefidx_vbuaa - tay - clc - lda.z CONIO_SCREEN_TEXT - adc conio_line_text,y - sta.z conio_addr - lda.z CONIO_SCREEN_TEXT+1 - adc conio_line_text+1,y - sta.z conio_addr+1 - // [45] cputc::$2 = conio_cursor_x[conio_screen_layer] << 1 -- vbuaa=pbuc1_derefidx_vbuz1_rol_1 - ldy.z conio_screen_layer - lda conio_cursor_x,y - asl - // [46] cputc::conio_addr#1 = cputc::conio_addr#0 + cputc::$2 -- pbuz1=pbuz1_plus_vbuaa - clc - adc.z conio_addr - sta.z conio_addr - bcc !+ - inc.z conio_addr+1 - !: - // [47] if(cputc::c#0==' ') goto cputc::@1 -- vbuz1_eq_vbuc1_then_la1 - lda #'\n' - cmp.z c - beq __b1_from___b7 - jmp __b2 - // cputc::@2 - __b2: - // [48] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // [49] cputc::$4 = byte0 cputc::conio_addr#1 -- vbuaa=_byte0_pbuz1 - lda.z conio_addr - // [50] *VERA_ADDRX_L = cputc::$4 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // [51] cputc::$5 = byte1 cputc::conio_addr#1 -- vbuaa=_byte1_pbuz1 - lda.z conio_addr+1 - // [52] *VERA_ADDRX_M = cputc::$5 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // [53] cputc::$6 = CONIO_SCREEN_BANK#12 | VERA_INC_1 -- vbuaa=vbuz1_bor_vbuc1 - lda #VERA_INC_1 - ora.z CONIO_SCREEN_BANK - // [54] *VERA_ADDRX_H = cputc::$6 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_H - // [55] *VERA_DATA0 = cputc::c#0 -- _deref_pbuc1=vbuz1 - lda.z c - sta VERA_DATA0 - // [56] *VERA_DATA0 = cputc::color#0 -- _deref_pbuc1=vbuxx - stx VERA_DATA0 - // [57] conio_cursor_x[conio_screen_layer] = ++ conio_cursor_x[conio_screen_layer] -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 - ldx.z conio_screen_layer - inc conio_cursor_x,x - // [58] cputc::scroll_enable#0 = conio_scroll_enable[conio_screen_layer] -- vbuaa=pbuc1_derefidx_vbuz1 - ldy.z conio_screen_layer - lda conio_scroll_enable,y - // [59] if(0!=cputc::scroll_enable#0) goto cputc::@5 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b5 - jmp __b3 - // cputc::@3 - __b3: - // [60] cputc::$16 = (unsigned int)conio_cursor_x[conio_screen_layer] -- vwuz1=_word_pbuc1_derefidx_vbuz2 - ldy.z conio_screen_layer - lda conio_cursor_x,y - sta.z __16 - lda #0 - sta.z __16+1 - // [61] if(cputc::$16!=conio_width) goto cputc::@return -- vwuz1_neq_vwuz2_then_la1 - lda.z __16+1 - cmp.z conio_width+1 - bne __breturn - lda.z __16 - cmp.z conio_width - bne __breturn - // [62] phi from cputc::@3 to cputc::@4 [phi:cputc::@3->cputc::@4] - __b4_from___b3: - jmp __b4 - // cputc::@4 - __b4: - // [63] call cputln - jsr cputln - jmp __breturn - // cputc::@return - __breturn: - // [64] return - rts - // cputc::@5 - __b5: - // [65] if(conio_cursor_x[conio_screen_layer]!=conio_screen_width) goto cputc::@return -- pbuc1_derefidx_vbuz1_neq_vbuz2_then_la1 - lda.z conio_screen_width - ldy.z conio_screen_layer - cmp conio_cursor_x,y - bne __breturn - // [66] phi from cputc::@5 to cputc::@6 [phi:cputc::@5->cputc::@6] - __b6_from___b5: - jmp __b6 - // cputc::@6 - __b6: - // [67] call cputln - jsr cputln - jmp __breturn - // [68] phi from cputc::@7 to cputc::@1 [phi:cputc::@7->cputc::@1] - __b1_from___b7: - jmp __b1 - // cputc::@1 - __b1: - // [69] call cputln - jsr cputln - jmp __breturn -} - // main -main: { - .label __40 = $6e - .label color = $7e - .label x = $78 - // [71] 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. - // So the default CX16 character set is located in bank 0, at address 0xF800. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x14000. - // This is now all easily done with a few statements in the new kickc vera lib ... - // [273] phi from main to memcpy_in_vram [phi:main->memcpy_in_vram] - memcpy_in_vram_from_main: - // [273] phi memcpy_in_vram::num#3 = $100*8 [phi:main->memcpy_in_vram#0] -- vwuz1=vwuc1 - lda #<$100*8 - sta.z memcpy_in_vram.num - lda #>$100*8 - sta.z memcpy_in_vram.num+1 - // [273] phi memcpy_in_vram::dest_bank#2 = 1 [phi:main->memcpy_in_vram#1] -- vbuyy=vbuc1 - ldy #1 - // [273] phi memcpy_in_vram::dest#2 = (void *)(char *) 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 - // [273] phi memcpy_in_vram::src#2 = (void *)(char *) 63488 [phi:main->memcpy_in_vram#3] -- pvoz1=pvoc1 - lda #<$f800 - sta.z memcpy_in_vram.src - lda #>$f800 - sta.z memcpy_in_vram.src+1 - jsr memcpy_in_vram - // [72] phi from main to main::@12 [phi:main->main::@12] - __b12_from_main: - jmp __b12 - // main::@12 - __b12: - // [73] call vera_layer_mode_tile - // We copy the 128 character set of 8 bytes each. - // [292] phi from main::@12 to vera_layer_mode_tile [phi:main::@12->vera_layer_mode_tile] - vera_layer_mode_tile_from___b12: - // [292] phi vera_layer_mode_tile::tileheight#10 = 8 [phi:main::@12->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #8 - sta.z vera_layer_mode_tile.tileheight - // [292] phi vera_layer_mode_tile::tilewidth#10 = 8 [phi:main::@12->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - lda #8 - sta.z vera_layer_mode_tile.tilewidth - // [292] phi vera_layer_mode_tile::tilebase_address#10 = $1f000 [phi:main::@12->vera_layer_mode_tile#2] -- vduz1=vduc1 - lda #<$1f000 - sta.z vera_layer_mode_tile.tilebase_address - lda #>$1f000 - sta.z vera_layer_mode_tile.tilebase_address+1 - lda #<$1f000>>$10 - sta.z vera_layer_mode_tile.tilebase_address+2 - lda #>$1f000>>$10 - sta.z vera_layer_mode_tile.tilebase_address+3 - // [292] phi vera_layer_mode_tile::mapbase_address#10 = $14000 [phi:main::@12->vera_layer_mode_tile#3] -- vduz1=vduc1 - lda #<$14000 - sta.z vera_layer_mode_tile.mapbase_address - lda #>$14000 - sta.z vera_layer_mode_tile.mapbase_address+1 - lda #<$14000>>$10 - sta.z vera_layer_mode_tile.mapbase_address+2 - lda #>$14000>>$10 - sta.z vera_layer_mode_tile.mapbase_address+3 - // [292] phi vera_layer_mode_tile::mapheight#10 = $40 [phi:main::@12->vera_layer_mode_tile#4] -- vwuz1=vbuc1 - lda #<$40 - sta.z vera_layer_mode_tile.mapheight - lda #>$40 - sta.z vera_layer_mode_tile.mapheight+1 - // [292] phi vera_layer_mode_tile::layer#10 = 1 [phi:main::@12->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #1 - sta.z vera_layer_mode_tile.layer - // [292] phi vera_layer_mode_tile::mapwidth#10 = $80 [phi:main::@12->vera_layer_mode_tile#6] -- vwuz1=vbuc1 - lda #<$80 - sta.z vera_layer_mode_tile.mapwidth - lda #>$80 - sta.z vera_layer_mode_tile.mapwidth+1 - jsr vera_layer_mode_tile - // [74] phi from main::@12 to main::@13 [phi:main::@12->main::@13] - __b13_from___b12: - jmp __b13 - // main::@13 - __b13: - // [75] call vera_layer_mode_bitmap - // [353] phi from main::@13 to vera_layer_mode_bitmap [phi:main::@13->vera_layer_mode_bitmap] - vera_layer_mode_bitmap_from___b13: - jsr vera_layer_mode_bitmap - // [76] phi from main::@13 to main::@14 [phi:main::@13->main::@14] - __b14_from___b13: - jmp __b14 - // main::@14 - __b14: - // [77] call screenlayer - jsr screenlayer - jmp textcolor1 - // main::textcolor1 - textcolor1: - // [78] vera_layer_set_textcolor::layer#1 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [79] call vera_layer_set_textcolor - // [230] phi from main::textcolor1 to vera_layer_set_textcolor [phi:main::textcolor1->vera_layer_set_textcolor] - vera_layer_set_textcolor_from_textcolor1: - // [230] phi vera_layer_set_textcolor::color#6 = WHITE [phi:main::textcolor1->vera_layer_set_textcolor#0] -- vbuaa=vbuc1 - lda #WHITE - // [230] phi vera_layer_set_textcolor::layer#6 = vera_layer_set_textcolor::layer#1 [phi:main::textcolor1->vera_layer_set_textcolor#1] -- register_copy - jsr vera_layer_set_textcolor - jmp bgcolor1 - // main::bgcolor1 - bgcolor1: - // [80] vera_layer_set_backcolor::layer#1 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [81] call vera_layer_set_backcolor - // [233] phi from main::bgcolor1 to vera_layer_set_backcolor [phi:main::bgcolor1->vera_layer_set_backcolor] - vera_layer_set_backcolor_from_bgcolor1: - // [233] phi vera_layer_set_backcolor::color#4 = BLACK [phi:main::bgcolor1->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLACK - // [233] phi vera_layer_set_backcolor::layer#4 = vera_layer_set_backcolor::layer#1 [phi:main::bgcolor1->vera_layer_set_backcolor#1] -- register_copy - jsr vera_layer_set_backcolor - // [82] phi from main::bgcolor1 to main::@6 [phi:main::bgcolor1->main::@6] - __b6_from_bgcolor1: - jmp __b6 - // main::@6 - __b6: - // [83] call clrscr - jsr clrscr - // [84] phi from main::@6 to main::@15 [phi:main::@6->main::@15] - __b15_from___b6: - jmp __b15 - // main::@15 - __b15: - // [85] call gotoxy - // [241] phi from main::@15 to gotoxy [phi:main::@15->gotoxy] - gotoxy_from___b15: - // [241] phi gotoxy::y#7 = $19 [phi:main::@15->gotoxy#0] -- vbuxx=vbuc1 - ldx #$19 - jsr gotoxy - // [86] phi from main::@15 to main::@16 [phi:main::@15->main::@16] - __b16_from___b15: - jmp __b16 - // main::@16 - __b16: - // [87] call printf_str - // [396] phi from main::@16 to printf_str [phi:main::@16->printf_str] - printf_str_from___b16: - // [396] phi printf_str::s#9 = main::s [phi:main::@16->printf_str#0] -- pbuz1=pbuc1 - lda #s - sta.z printf_str.s+1 - jsr printf_str - // [88] phi from main::@16 to main::@17 [phi:main::@16->main::@17] - __b17_from___b16: - jmp __b17 - // main::@17 - __b17: - // [89] call printf_str - // [396] phi from main::@17 to printf_str [phi:main::@17->printf_str] - printf_str_from___b17: - // [396] phi printf_str::s#9 = main::s1 [phi:main::@17->printf_str#0] -- pbuz1=pbuc1 - lda #s1 - sta.z printf_str.s+1 - jsr printf_str - // [90] phi from main::@17 to main::@18 [phi:main::@17->main::@18] - __b18_from___b17: - jmp __b18 - // main::@18 - __b18: - // [91] call printf_str - // [396] phi from main::@18 to printf_str [phi:main::@18->printf_str] - printf_str_from___b18: - // [396] phi printf_str::s#9 = main::s2 [phi:main::@18->printf_str#0] -- pbuz1=pbuc1 - lda #s2 - sta.z printf_str.s+1 - jsr printf_str - // [92] phi from main::@18 to main::@19 [phi:main::@18->main::@19] - __b19_from___b18: - jmp __b19 - // main::@19 - __b19: - // [93] call printf_str - // [396] phi from main::@19 to printf_str [phi:main::@19->printf_str] - printf_str_from___b19: - // [396] phi printf_str::s#9 = main::s3 [phi:main::@19->printf_str#0] -- pbuz1=pbuc1 - lda #s3 - sta.z printf_str.s+1 - jsr printf_str - jmp vera_layer_show1 - // main::vera_layer_show1 - vera_layer_show1: - // [94] *VERA_DC_VIDEO = *VERA_DC_VIDEO | *vera_layer_enable -- _deref_pbuc1=_deref_pbuc1_bor__deref_pbuc2 - lda VERA_DC_VIDEO - ora vera_layer_enable - sta VERA_DC_VIDEO - // [95] phi from main::vera_layer_show1 to main::@7 [phi:main::vera_layer_show1->main::@7] - __b7_from_vera_layer_show1: - jmp __b7 - // main::@7 - __b7: - // [96] call bitmap_init - jsr bitmap_init - // [97] phi from main::@7 to main::@20 [phi:main::@7->main::@20] - __b20_from___b7: - jmp __b20 - // main::@20 - __b20: - // [98] call bitmap_clear - jsr bitmap_clear - // [99] phi from main::@20 to main::@21 [phi:main::@20->main::@21] - __b21_from___b20: - jmp __b21 - // main::@21 - __b21: - // [100] call gotoxy - // [241] phi from main::@21 to gotoxy [phi:main::@21->gotoxy] - gotoxy_from___b21: - // [241] phi gotoxy::y#7 = $1d [phi:main::@21->gotoxy#0] -- vbuxx=vbuc1 - ldx #$1d - jsr gotoxy - jmp textcolor2 - // main::textcolor2 - textcolor2: - // [101] vera_layer_set_textcolor::layer#2 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [102] call vera_layer_set_textcolor - // [230] phi from main::textcolor2 to vera_layer_set_textcolor [phi:main::textcolor2->vera_layer_set_textcolor] - vera_layer_set_textcolor_from_textcolor2: - // [230] phi vera_layer_set_textcolor::color#6 = YELLOW [phi:main::textcolor2->vera_layer_set_textcolor#0] -- vbuaa=vbuc1 - lda #YELLOW - // [230] phi vera_layer_set_textcolor::layer#6 = vera_layer_set_textcolor::layer#2 [phi:main::textcolor2->vera_layer_set_textcolor#1] -- register_copy - jsr vera_layer_set_textcolor - // [103] phi from main::textcolor2 to main::@8 [phi:main::textcolor2->main::@8] - __b8_from_textcolor2: - jmp __b8 - // main::@8 - __b8: - // [104] call printf_str - // [396] phi from main::@8 to printf_str [phi:main::@8->printf_str] - printf_str_from___b8: - // [396] phi printf_str::s#9 = main::s4 [phi:main::@8->printf_str#0] -- pbuz1=pbuc1 - lda #s4 - sta.z printf_str.s+1 - jsr printf_str - // [105] phi from main::@8 to main::@1 [phi:main::@8->main::@1] - __b1_from___b8: - // [105] phi rand_state#23 = 1 [phi:main::@8->main::@1#0] -- vwuz1=vwuc1 - lda #<1 - sta.z rand_state - lda #>1 - sta.z rand_state+1 - jmp __b1 - // main::@1 - __b1: - // [106] call kbhit - jsr kbhit - // [107] kbhit::return#2 = kbhit::return#1 - jmp __b22 - // main::@22 - __b22: - // [108] main::$30 = kbhit::return#2 - // [109] if(0==main::$30) goto main::@2 -- 0_eq_vbuaa_then_la1 - cmp #0 - beq __b2_from___b22 - jmp textcolor3 - // main::textcolor3 - textcolor3: - // [110] vera_layer_set_textcolor::layer#3 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [111] call vera_layer_set_textcolor - // [230] phi from main::textcolor3 to vera_layer_set_textcolor [phi:main::textcolor3->vera_layer_set_textcolor] - vera_layer_set_textcolor_from_textcolor3: - // [230] phi vera_layer_set_textcolor::color#6 = WHITE [phi:main::textcolor3->vera_layer_set_textcolor#0] -- vbuaa=vbuc1 - lda #WHITE - // [230] phi vera_layer_set_textcolor::layer#6 = vera_layer_set_textcolor::layer#3 [phi:main::textcolor3->vera_layer_set_textcolor#1] -- register_copy - jsr vera_layer_set_textcolor - jmp bgcolor2 - // main::bgcolor2 - bgcolor2: - // [112] vera_layer_set_backcolor::layer#2 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [113] call vera_layer_set_backcolor - // [233] phi from main::bgcolor2 to vera_layer_set_backcolor [phi:main::bgcolor2->vera_layer_set_backcolor] - vera_layer_set_backcolor_from_bgcolor2: - // [233] phi vera_layer_set_backcolor::color#4 = BLACK [phi:main::bgcolor2->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLACK - // [233] phi vera_layer_set_backcolor::layer#4 = vera_layer_set_backcolor::layer#2 [phi:main::bgcolor2->vera_layer_set_backcolor#1] -- register_copy - jsr vera_layer_set_backcolor - // [114] phi from main::bgcolor2 to main::@9 [phi:main::bgcolor2->main::@9] - __b9_from_bgcolor2: - jmp __b9 - // main::@9 - __b9: - // [115] call clrscr - jsr clrscr - // [116] phi from main::@9 to main::@32 [phi:main::@9->main::@32] - __b32_from___b9: - jmp __b32 - // main::@32 - __b32: - // [117] call gotoxy - // [241] phi from main::@32 to gotoxy [phi:main::@32->gotoxy] - gotoxy_from___b32: - // [241] phi gotoxy::y#7 = $1a [phi:main::@32->gotoxy#0] -- vbuxx=vbuc1 - ldx #$1a - jsr gotoxy - // [118] phi from main::@32 to main::@33 [phi:main::@32->main::@33] - __b33_from___b32: - jmp __b33 - // main::@33 - __b33: - // [119] call printf_str - // [396] phi from main::@33 to printf_str [phi:main::@33->printf_str] - printf_str_from___b33: - // [396] phi printf_str::s#9 = main::s5 [phi:main::@33->printf_str#0] -- pbuz1=pbuc1 - lda #s5 - sta.z printf_str.s+1 - jsr printf_str - // [120] phi from main::@33 to main::@34 [phi:main::@33->main::@34] - __b34_from___b33: - jmp __b34 - // main::@34 - __b34: - // [121] call gotoxy - // [241] phi from main::@34 to gotoxy [phi:main::@34->gotoxy] - gotoxy_from___b34: - // [241] phi gotoxy::y#7 = $1d [phi:main::@34->gotoxy#0] -- vbuxx=vbuc1 - ldx #$1d - jsr gotoxy - jmp textcolor4 - // main::textcolor4 - textcolor4: - // [122] vera_layer_set_textcolor::layer#4 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [123] call vera_layer_set_textcolor - // [230] phi from main::textcolor4 to vera_layer_set_textcolor [phi:main::textcolor4->vera_layer_set_textcolor] - vera_layer_set_textcolor_from_textcolor4: - // [230] phi vera_layer_set_textcolor::color#6 = YELLOW [phi:main::textcolor4->vera_layer_set_textcolor#0] -- vbuaa=vbuc1 - lda #YELLOW - // [230] phi vera_layer_set_textcolor::layer#6 = vera_layer_set_textcolor::layer#4 [phi:main::textcolor4->vera_layer_set_textcolor#1] -- register_copy - jsr vera_layer_set_textcolor - // [124] phi from main::textcolor4 to main::@10 [phi:main::textcolor4->main::@10] - __b10_from_textcolor4: - jmp __b10 - // main::@10 - __b10: - // [125] call printf_str - // [396] phi from main::@10 to printf_str [phi:main::@10->printf_str] - printf_str_from___b10: - // [396] phi printf_str::s#9 = main::s4 [phi:main::@10->printf_str#0] -- pbuz1=pbuc1 - lda #s4 - sta.z printf_str.s+1 - jsr printf_str - // [126] phi from main::@10 to main::@3 [phi:main::@10->main::@3] - __b3_from___b10: - // [126] phi main::color#2 = 0 [phi:main::@10->main::@3#0] -- vbuz1=vbuc1 - lda #0 - sta.z color - // [126] phi main::x#3 = 0 [phi:main::@10->main::@3#1] -- vwuz1=vwuc1 - lda #<0 - sta.z x - lda #>0 - sta.z x+1 - jmp __b3 - // main::@3 - __b3: - // [127] call kbhit - jsr kbhit - // [128] kbhit::return#3 = kbhit::return#1 - jmp __b35 - // main::@35 - __b35: - // [129] main::$43 = kbhit::return#3 - // [130] if(0==main::$43) goto main::@4 -- 0_eq_vbuaa_then_la1 - cmp #0 - beq __b4 - // [131] phi from main::@35 to main::@5 [phi:main::@35->main::@5] - __b5_from___b35: - jmp __b5 - // main::@5 - __b5: - // [132] call screenlayer - jsr screenlayer - jmp textcolor5 - // main::textcolor5 - textcolor5: - // [133] vera_layer_set_textcolor::layer#5 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [134] call vera_layer_set_textcolor - // [230] phi from main::textcolor5 to vera_layer_set_textcolor [phi:main::textcolor5->vera_layer_set_textcolor] - vera_layer_set_textcolor_from_textcolor5: - // [230] phi vera_layer_set_textcolor::color#6 = WHITE [phi:main::textcolor5->vera_layer_set_textcolor#0] -- vbuaa=vbuc1 - lda #WHITE - // [230] phi vera_layer_set_textcolor::layer#6 = vera_layer_set_textcolor::layer#5 [phi:main::textcolor5->vera_layer_set_textcolor#1] -- register_copy - jsr vera_layer_set_textcolor - jmp bgcolor3 - // main::bgcolor3 - bgcolor3: - // [135] vera_layer_set_backcolor::layer#3 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [136] call vera_layer_set_backcolor - // [233] phi from main::bgcolor3 to vera_layer_set_backcolor [phi:main::bgcolor3->vera_layer_set_backcolor] - vera_layer_set_backcolor_from_bgcolor3: - // [233] phi vera_layer_set_backcolor::color#4 = BLUE [phi:main::bgcolor3->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLUE - // [233] phi vera_layer_set_backcolor::layer#4 = vera_layer_set_backcolor::layer#3 [phi:main::bgcolor3->vera_layer_set_backcolor#1] -- register_copy - jsr vera_layer_set_backcolor - // [137] phi from main::bgcolor3 to main::@11 [phi:main::bgcolor3->main::@11] - __b11_from_bgcolor3: - jmp __b11 - // main::@11 - __b11: - // [138] call clrscr - jsr clrscr - jmp __breturn - // main::@return - __breturn: - // [139] return - rts - // main::@4 - __b4: - // [140] bitmap_line::x0#1 = main::x#3 -- vwuz1=vwuz2 - lda.z x - sta.z bitmap_line.x0 - lda.z x+1 - sta.z bitmap_line.x0+1 - // [141] bitmap_line::x1#1 = main::x#3 -- vwuz1=vwuz2 - lda.z x - sta.z bitmap_line.x1 - lda.z x+1 - sta.z bitmap_line.x1+1 - // [142] bitmap_line::c#1 = main::color#2 -- vbuxx=vbuz1 - ldx.z color - // [143] call bitmap_line - // [514] phi from main::@4 to bitmap_line [phi:main::@4->bitmap_line] - bitmap_line_from___b4: - // [514] phi bitmap_line::c#10 = bitmap_line::c#1 [phi:main::@4->bitmap_line#0] -- register_copy - // [514] phi bitmap_line::y1#10 = $c7 [phi:main::@4->bitmap_line#1] -- vwuz1=vbuc1 - lda #<$c7 - sta.z bitmap_line.y1 - lda #>$c7 - sta.z bitmap_line.y1+1 - // [514] phi bitmap_line::y0#10 = 0 [phi:main::@4->bitmap_line#2] -- vwuz1=vbuc1 - lda #<0 - sta.z bitmap_line.y0 - lda #>0 - sta.z bitmap_line.y0+1 - // [514] phi bitmap_line::x1#10 = bitmap_line::x1#1 [phi:main::@4->bitmap_line#3] -- register_copy - // [514] phi bitmap_line::x0#10 = bitmap_line::x0#1 [phi:main::@4->bitmap_line#4] -- register_copy - jsr bitmap_line - jmp __b36 - // main::@36 - __b36: - // [144] main::color#1 = ++ main::color#2 -- vbuz1=_inc_vbuz1 - inc.z color - // [145] main::x#1 = ++ main::x#3 -- vwuz1=_inc_vwuz1 - inc.z x - bne !+ - inc.z x+1 - !: - // [146] if(main::x#1<=$13f) goto main::@37 -- vwuz1_le_vwuc1_then_la1 - lda.z x+1 - cmp #>$13f - bne !+ - lda.z x - cmp #<$13f - !: - bcc __b37_from___b36 - beq __b37_from___b36 - // [126] phi from main::@36 to main::@3 [phi:main::@36->main::@3] - __b3_from___b36: - // [126] phi main::color#2 = main::color#1 [phi:main::@36->main::@3#0] -- register_copy - // [126] phi main::x#3 = 0 [phi:main::@36->main::@3#1] -- vwuz1=vbuc1 - lda #<0 - sta.z x - lda #>0 - sta.z x+1 - jmp __b3 - // [147] phi from main::@36 to main::@37 [phi:main::@36->main::@37] - __b37_from___b36: - jmp __b37 - // main::@37 - __b37: - // [126] phi from main::@37 to main::@3 [phi:main::@37->main::@3] - __b3_from___b37: - // [126] phi main::color#2 = main::color#1 [phi:main::@37->main::@3#0] -- register_copy - // [126] phi main::x#3 = main::x#1 [phi:main::@37->main::@3#1] -- register_copy - jmp __b3 - // [148] phi from main::@22 to main::@2 [phi:main::@22->main::@2] - __b2_from___b22: - jmp __b2 - // main::@2 - __b2: - // [149] call rand - // [585] phi from main::@2 to rand [phi:main::@2->rand] - rand_from___b2: - // [585] phi rand_state#13 = rand_state#23 [phi:main::@2->rand#0] -- register_copy - jsr rand - // [150] rand::return#2 = rand::return#0 - jmp __b23 - // main::@23 - __b23: - // [151] modr16u::dividend#0 = rand::return#2 -- vwuz1=vwuz2 - lda.z rand.return - sta.z modr16u.dividend - lda.z rand.return+1 - sta.z modr16u.dividend+1 - // [152] call modr16u - // [594] phi from main::@23 to modr16u [phi:main::@23->modr16u] - modr16u_from___b23: - // [594] phi modr16u::divisor#4 = $140 [phi:main::@23->modr16u#0] -- vwuz1=vwuc1 - lda #<$140 - sta.z modr16u.divisor - lda #>$140 - sta.z modr16u.divisor+1 - // [594] phi modr16u::dividend#4 = modr16u::dividend#0 [phi:main::@23->modr16u#1] -- register_copy - jsr modr16u - // [153] modr16u::return#2 = modr16u::return#0 - jmp __b24 - // main::@24 - __b24: - // [154] bitmap_line::x0#0 = modr16u::return#2 -- vwuz1=vwuz2 - lda.z modr16u.return - sta.z bitmap_line.x0 - lda.z modr16u.return+1 - sta.z bitmap_line.x0+1 - // [155] call rand - // [585] phi from main::@24 to rand [phi:main::@24->rand] - rand_from___b24: - // [585] phi rand_state#13 = rand_state#14 [phi:main::@24->rand#0] -- register_copy - jsr rand - // [156] rand::return#3 = rand::return#0 - jmp __b25 - // main::@25 - __b25: - // [157] modr16u::dividend#1 = rand::return#3 -- vwuz1=vwuz2 - lda.z rand.return - sta.z modr16u.dividend - lda.z rand.return+1 - sta.z modr16u.dividend+1 - // [158] call modr16u - // [594] phi from main::@25 to modr16u [phi:main::@25->modr16u] - modr16u_from___b25: - // [594] phi modr16u::divisor#4 = $140 [phi:main::@25->modr16u#0] -- vwuz1=vwuc1 - lda #<$140 - sta.z modr16u.divisor - lda #>$140 - sta.z modr16u.divisor+1 - // [594] phi modr16u::dividend#4 = modr16u::dividend#1 [phi:main::@25->modr16u#1] -- register_copy - jsr modr16u - // [159] modr16u::return#3 = modr16u::return#0 - jmp __b26 - // main::@26 - __b26: - // [160] bitmap_line::x1#0 = modr16u::return#3 -- vwuz1=vwuz2 - lda.z modr16u.return - sta.z bitmap_line.x1 - lda.z modr16u.return+1 - sta.z bitmap_line.x1+1 - // [161] call rand - // [585] phi from main::@26 to rand [phi:main::@26->rand] - rand_from___b26: - // [585] phi rand_state#13 = rand_state#14 [phi:main::@26->rand#0] -- register_copy - jsr rand - // [162] rand::return#10 = rand::return#0 - jmp __b27 - // main::@27 - __b27: - // [163] modr16u::dividend#2 = rand::return#10 -- vwuz1=vwuz2 - lda.z rand.return - sta.z modr16u.dividend - lda.z rand.return+1 - sta.z modr16u.dividend+1 - // [164] call modr16u - // [594] phi from main::@27 to modr16u [phi:main::@27->modr16u] - modr16u_from___b27: - // [594] phi modr16u::divisor#4 = $c8 [phi:main::@27->modr16u#0] -- vwuz1=vbuc1 - lda #<$c8 - sta.z modr16u.divisor - lda #>$c8 - sta.z modr16u.divisor+1 - // [594] phi modr16u::dividend#4 = modr16u::dividend#2 [phi:main::@27->modr16u#1] -- register_copy - jsr modr16u - // [165] modr16u::return#4 = modr16u::return#0 - jmp __b28 - // main::@28 - __b28: - // [166] bitmap_line::y0#0 = modr16u::return#4 -- vwuz1=vwuz2 - lda.z modr16u.return - sta.z bitmap_line.y0 - lda.z modr16u.return+1 - sta.z bitmap_line.y0+1 - // [167] call rand - // [585] phi from main::@28 to rand [phi:main::@28->rand] - rand_from___b28: - // [585] phi rand_state#13 = rand_state#14 [phi:main::@28->rand#0] -- register_copy - jsr rand - // [168] rand::return#11 = rand::return#0 - jmp __b29 - // main::@29 - __b29: - // [169] modr16u::dividend#3 = rand::return#11 -- vwuz1=vwuz2 - lda.z rand.return - sta.z modr16u.dividend - lda.z rand.return+1 - sta.z modr16u.dividend+1 - // [170] call modr16u - // [594] phi from main::@29 to modr16u [phi:main::@29->modr16u] - modr16u_from___b29: - // [594] phi modr16u::divisor#4 = $c8 [phi:main::@29->modr16u#0] -- vwuz1=vbuc1 - lda #<$c8 - sta.z modr16u.divisor - lda #>$c8 - sta.z modr16u.divisor+1 - // [594] phi modr16u::dividend#4 = modr16u::dividend#3 [phi:main::@29->modr16u#1] -- register_copy - jsr modr16u - // [171] modr16u::return#10 = modr16u::return#0 - jmp __b30 - // main::@30 - __b30: - // [172] bitmap_line::y1#0 = modr16u::return#10 -- vwuz1=vwuz2 - lda.z modr16u.return - sta.z bitmap_line.y1 - lda.z modr16u.return+1 - sta.z bitmap_line.y1+1 - // [173] call rand - // [585] phi from main::@30 to rand [phi:main::@30->rand] - rand_from___b30: - // [585] phi rand_state#13 = rand_state#14 [phi:main::@30->rand#0] -- register_copy - jsr rand - // [174] rand::return#12 = rand::return#0 - jmp __b31 - // main::@31 - __b31: - // [175] main::$40 = rand::return#12 - // [176] bitmap_line::c#0 = main::$40 & $ff -- vbuxx=vwuz1_band_vbuc1 - lda #$ff - and.z __40 - tax - // [177] call bitmap_line - // [514] phi from main::@31 to bitmap_line [phi:main::@31->bitmap_line] - bitmap_line_from___b31: - // [514] phi bitmap_line::c#10 = bitmap_line::c#0 [phi:main::@31->bitmap_line#0] -- register_copy - // [514] phi bitmap_line::y1#10 = bitmap_line::y1#0 [phi:main::@31->bitmap_line#1] -- register_copy - // [514] phi bitmap_line::y0#10 = bitmap_line::y0#0 [phi:main::@31->bitmap_line#2] -- register_copy - // [514] phi bitmap_line::x1#10 = bitmap_line::x1#0 [phi:main::@31->bitmap_line#3] -- register_copy - // [514] phi bitmap_line::x0#10 = bitmap_line::x0#0 [phi:main::@31->bitmap_line#4] -- register_copy - jsr bitmap_line - // [105] phi from main::@31 to main::@1 [phi:main::@31->main::@1] - __b1_from___b31: - // [105] phi rand_state#23 = rand_state#14 [phi:main::@31->main::@1#0] -- register_copy - jmp __b1 - .segment Data - s: .text @"vera in bitmap mode,\n" - .byte 0 - s1: .text @"color depth 8 bits per pixel.\n" - .byte 0 - s2: .text @"in this mode, it is possible to display\n" - .byte 0 - s3: .text @"graphics in 256 colors.\n" - .byte 0 - s4: .text "press a key ..." - .byte 0 - s5: .text @"here you see all the colors possible.\n" - .byte 0 -} -.segment Code - // vera_layer_mode_text -// Set a vera layer in text mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_mode: The color mode, which can be 16 or 256. -// void vera_layer_mode_text(char layer, unsigned long mapbase_address, unsigned long tilebase_address, unsigned int mapwidth, unsigned int mapheight, char tilewidth, char tileheight, unsigned int color_mode) -vera_layer_mode_text: { - .const mapbase_address = 0 - .const tilebase_address = $f800 - .const mapwidth = $80 - .const mapheight = $40 - .const tilewidth = 8 - .const tileheight = 8 - .label layer = 1 - // [179] call vera_layer_mode_tile - // [292] phi from vera_layer_mode_text to vera_layer_mode_tile [phi:vera_layer_mode_text->vera_layer_mode_tile] - vera_layer_mode_tile_from_vera_layer_mode_text: - // [292] phi vera_layer_mode_tile::tileheight#10 = vera_layer_mode_text::tileheight#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #tileheight - sta.z vera_layer_mode_tile.tileheight - // [292] phi vera_layer_mode_tile::tilewidth#10 = vera_layer_mode_text::tilewidth#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - lda #tilewidth - sta.z vera_layer_mode_tile.tilewidth - // [292] phi vera_layer_mode_tile::tilebase_address#10 = vera_layer_mode_text::tilebase_address#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#2] -- vduz1=vduc1 - lda #tilebase_address - sta.z vera_layer_mode_tile.tilebase_address+1 - lda #>$10 - sta.z vera_layer_mode_tile.tilebase_address+2 - lda #>tilebase_address>>$10 - sta.z vera_layer_mode_tile.tilebase_address+3 - // [292] phi vera_layer_mode_tile::mapbase_address#10 = vera_layer_mode_text::mapbase_address#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#3] -- vduz1=vduc1 - lda #mapbase_address - sta.z vera_layer_mode_tile.mapbase_address+1 - lda #>$10 - sta.z vera_layer_mode_tile.mapbase_address+2 - lda #>mapbase_address>>$10 - sta.z vera_layer_mode_tile.mapbase_address+3 - // [292] phi vera_layer_mode_tile::mapheight#10 = vera_layer_mode_text::mapheight#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#4] -- vwuz1=vwuc1 - lda #mapheight - sta.z vera_layer_mode_tile.mapheight+1 - // [292] phi vera_layer_mode_tile::layer#10 = vera_layer_mode_text::layer#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #layer - sta.z vera_layer_mode_tile.layer - // [292] phi vera_layer_mode_tile::mapwidth#10 = vera_layer_mode_text::mapwidth#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#6] -- vwuz1=vwuc1 - lda #mapwidth - sta.z vera_layer_mode_tile.mapwidth+1 - jsr vera_layer_mode_tile - // [180] phi from vera_layer_mode_text to vera_layer_mode_text::@1 [phi:vera_layer_mode_text->vera_layer_mode_text::@1] - __b1_from_vera_layer_mode_text: - jmp __b1 - // vera_layer_mode_text::@1 - __b1: - // [181] call vera_layer_set_text_color_mode - jsr vera_layer_set_text_color_mode - jmp __breturn - // vera_layer_mode_text::@return - __breturn: - // [182] return - rts -} - // screensize -// Return the current screen size. -// void screensize(char *x, char *y) -screensize: { - .label x = conio_screen_width - .label y = conio_screen_height - // [183] screensize::hscale#0 = *VERA_DC_HSCALE >> 7 -- vbuaa=_deref_pbuc1_ror_7 - // VERA returns in VERA_DC_HSCALE the value of 128 when 80 columns is used in text mode, - // and the value of 64 when 40 columns is used in text mode. - // Basically, 40 columns mode in the VERA is a double scan mode. - // Same for the VERA_DC_VSCALE mode, but then the subdivision is 60 or 30 rows. - // I still need to test the other modes, but this will suffice for now for the pure text modes. - lda VERA_DC_HSCALE - rol - rol - and #1 - // [184] screensize::$1 = $28 << screensize::hscale#0 -- vbuaa=vbuc1_rol_vbuaa - tay - lda #$28 - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // [185] *screensize::x#0 = screensize::$1 -- _deref_pbuc1=vbuaa - sta.z x - // [186] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 -- vbuaa=_deref_pbuc1_ror_7 - lda VERA_DC_VSCALE - rol - rol - and #1 - // [187] screensize::$3 = $1e << screensize::vscale#0 -- vbuaa=vbuc1_rol_vbuaa - tay - lda #$1e - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // [188] *screensize::y#0 = screensize::$3 -- _deref_pbuc1=vbuaa - sta.z y - jmp __breturn - // screensize::@return - __breturn: - // [189] return - rts -} - // screenlayer -// Set the layer with which the conio will interact. -// - layer: value of 0 or 1. -// void screenlayer(char layer) -screenlayer: { - .label __2 = $89 - .label __4 = $7f - .label __5 = $8b - .label vera_layer_get_width1_config = $97 - .label vera_layer_get_width1_return = $89 - .label vera_layer_get_height1_config = $99 - .label vera_layer_get_height1_return = $8b - // [190] conio_screen_layer = 1 -- vbuz1=vbuc1 - lda #1 - sta.z conio_screen_layer - // [191] vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [192] call vera_layer_get_mapbase_bank - jsr vera_layer_get_mapbase_bank - // [193] vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#0 - jmp __b3 - // screenlayer::@3 - __b3: - // [194] CONIO_SCREEN_BANK#15 = vera_layer_get_mapbase_bank::return#2 -- vbuz1=vbuaa - sta.z CONIO_SCREEN_BANK_1 - // [195] vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // [196] call vera_layer_get_mapbase_offset - jsr vera_layer_get_mapbase_offset - // [197] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 - jmp __b4 - // screenlayer::@4 - __b4: - // [198] CONIO_SCREEN_TEXT#17 = vera_layer_get_mapbase_offset::return#2 -- vwuz1=vwuz2 - lda.z vera_layer_get_mapbase_offset.return - sta.z CONIO_SCREEN_TEXT_1 - lda.z vera_layer_get_mapbase_offset.return+1 - sta.z CONIO_SCREEN_TEXT_1+1 - // [199] screenlayer::vera_layer_get_width1_layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - jmp vera_layer_get_width1 - // screenlayer::vera_layer_get_width1 - vera_layer_get_width1: - // [200] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [201] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z vera_layer_get_width1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_width1_config+1 - // [202] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_WIDTH_MASK - ldy #0 - and (vera_layer_get_width1_config),y - // [203] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 -- vbuaa=vbuaa_ror_4 - lsr - lsr - lsr - lsr - // [204] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [205] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda VERA_LAYER_WIDTH,y - sta.z vera_layer_get_width1_return - lda VERA_LAYER_WIDTH+1,y - sta.z vera_layer_get_width1_return+1 - jmp vera_layer_get_width1___breturn - // screenlayer::vera_layer_get_width1_@return - vera_layer_get_width1___breturn: - // [206] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 - jmp __b1 - // screenlayer::@1 - __b1: - // [207] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 - // [208] conio_width = screenlayer::$2 -- vwuz1=vwuz2 - lda.z __2 - sta.z conio_width - lda.z __2+1 - sta.z conio_width+1 - // [209] vera_layer_get_rowshift::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [210] call vera_layer_get_rowshift - jsr vera_layer_get_rowshift - // [211] vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#0 - jmp __b5 - // screenlayer::@5 - __b5: - // [212] screenlayer::$3 = vera_layer_get_rowshift::return#2 - // [213] conio_rowshift = screenlayer::$3 -- vbuz1=vbuaa - sta.z conio_rowshift - // [214] vera_layer_get_rowskip::layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // [215] call vera_layer_get_rowskip - jsr vera_layer_get_rowskip - // [216] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 - jmp __b6 - // screenlayer::@6 - __b6: - // [217] screenlayer::$4 = vera_layer_get_rowskip::return#2 - // [218] conio_rowskip = screenlayer::$4 -- vwuz1=vwuz2 - lda.z __4 - sta.z conio_rowskip - lda.z __4+1 - sta.z conio_rowskip+1 - // [219] screenlayer::vera_layer_get_height1_layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - jmp vera_layer_get_height1 - // screenlayer::vera_layer_get_height1 - vera_layer_get_height1: - // [220] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [221] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z vera_layer_get_height1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_height1_config+1 - // [222] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_HEIGHT_MASK - ldy #0 - and (vera_layer_get_height1_config),y - // [223] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 -- vbuaa=vbuaa_ror_6 - rol - rol - rol - and #3 - // [224] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [225] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda VERA_LAYER_HEIGHT,y - sta.z vera_layer_get_height1_return - lda VERA_LAYER_HEIGHT+1,y - sta.z vera_layer_get_height1_return+1 - jmp vera_layer_get_height1___breturn - // screenlayer::vera_layer_get_height1_@return - vera_layer_get_height1___breturn: - // [226] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 - jmp __b2 - // screenlayer::@2 - __b2: - // [227] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 - // [228] conio_height = screenlayer::$5 -- vwuz1=vwuz2 - lda.z __5 - sta.z conio_height - lda.z __5+1 - sta.z conio_height+1 - jmp __breturn - // screenlayer::@return - __breturn: - // [229] return - rts -} - // vera_layer_set_textcolor -// Set the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15) when the VERA works in 16x16 color text mode. -// An 8 bit value (decimal between 0 and 255) when the VERA works in 256 text mode. -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_textcolor(__register(X) char layer, __register(A) char color) -vera_layer_set_textcolor: { - // [231] vera_layer_textcolor[vera_layer_set_textcolor::layer#6] = vera_layer_set_textcolor::color#6 -- pbuc1_derefidx_vbuxx=vbuaa - sta vera_layer_textcolor,x - jmp __breturn - // vera_layer_set_textcolor::@return - __breturn: - // [232] return - rts -} - // vera_layer_set_backcolor -// Set the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_backcolor(__register(X) char layer, __register(A) char color) -vera_layer_set_backcolor: { - // [234] vera_layer_backcolor[vera_layer_set_backcolor::layer#4] = vera_layer_set_backcolor::color#4 -- pbuc1_derefidx_vbuxx=vbuaa - sta vera_layer_backcolor,x - jmp __breturn - // vera_layer_set_backcolor::@return - __breturn: - // [235] return - rts -} - // vera_layer_set_mapbase -// Set the base of the map layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - mapbase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// void vera_layer_set_mapbase(__register(A) char layer, __register(X) char mapbase) -vera_layer_set_mapbase: { - .label addr = $25 - // [237] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [238] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_mapbase,y - sta.z addr - lda vera_layer_mapbase+1,y - sta.z addr+1 - // [239] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - jmp __breturn - // vera_layer_set_mapbase::@return - __breturn: - // [240] return - rts -} - // gotoxy -// Set the cursor to the specified position -// void gotoxy(char x, __register(X) char y) -gotoxy: { - .label __6 = $25 - .label line_offset = $25 - // [242] if(gotoxy::y#7<=conio_screen_height) goto gotoxy::@4 -- vbuxx_le_vbuz1_then_la1 - lda.z conio_screen_height - stx.z $ff - cmp.z $ff - bcs __b4_from_gotoxy - // [244] phi from gotoxy to gotoxy::@1 [phi:gotoxy->gotoxy::@1] - __b1_from_gotoxy: - // [244] phi gotoxy::y#10 = 0 [phi:gotoxy->gotoxy::@1#0] -- vbuxx=vbuc1 - ldx #0 - jmp __b1 - // [243] phi from gotoxy to gotoxy::@4 [phi:gotoxy->gotoxy::@4] - __b4_from_gotoxy: - jmp __b4 - // gotoxy::@4 - __b4: - // [244] phi from gotoxy::@4 to gotoxy::@1 [phi:gotoxy::@4->gotoxy::@1] - __b1_from___b4: - // [244] phi gotoxy::y#10 = gotoxy::y#7 [phi:gotoxy::@4->gotoxy::@1#0] -- register_copy - jmp __b1 - // gotoxy::@1 - __b1: - // [245] if(0gotoxy::@3] - __b3_from___b1: - jmp __b3 - // gotoxy::@3 - __b3: - jmp __b2 - // gotoxy::@2 - __b2: - // [247] conio_cursor_x[conio_screen_layer] = 0 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // [248] conio_cursor_y[conio_screen_layer] = gotoxy::y#10 -- pbuc1_derefidx_vbuz1=vbuxx - ldy.z conio_screen_layer - txa - sta conio_cursor_y,y - // [249] gotoxy::$6 = (unsigned int)gotoxy::y#10 -- vwuz1=_word_vbuxx - txa - sta.z __6 - lda #0 - sta.z __6+1 - // [250] gotoxy::line_offset#0 = gotoxy::$6 << conio_rowshift -- vwuz1=vwuz1_rol_vbuz2 - ldy.z conio_rowshift - beq !e+ - !: - asl.z line_offset - rol.z line_offset+1 - dey - bne !- - !e: - // [251] gotoxy::$5 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [252] conio_line_text[gotoxy::$5] = gotoxy::line_offset#0 -- pwuc1_derefidx_vbuaa=vwuz1 - tay - lda.z line_offset - sta conio_line_text,y - lda.z line_offset+1 - sta conio_line_text+1,y - jmp __breturn - // gotoxy::@return - __breturn: - // [253] return - rts -} - // vera_layer_get_color -// Get the text and back color for text output in 16 color mode. -// - layer: Value of 0 or 1. -// - return: an 8 bit value with bit 7:4 containing the back color and bit 3:0 containing the front color. -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_color(__register(X) char layer) -vera_layer_get_color: { - .label addr = 6 - // [255] vera_layer_get_color::$3 = vera_layer_get_color::layer#2 << 1 -- vbuaa=vbuxx_rol_1 - txa - asl - // [256] vera_layer_get_color::addr#0 = vera_layer_config[vera_layer_get_color::$3] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // [257] vera_layer_get_color::$0 = *vera_layer_get_color::addr#0 & VERA_LAYER_CONFIG_256C -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_CONFIG_256C - ldy #0 - and (addr),y - // [258] if(0!=vera_layer_get_color::$0) goto vera_layer_get_color::@1 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b1 - jmp __b2 - // vera_layer_get_color::@2 - __b2: - // [259] vera_layer_get_color::$1 = vera_layer_backcolor[vera_layer_get_color::layer#2] << 4 -- vbuaa=pbuc1_derefidx_vbuxx_rol_4 - lda vera_layer_backcolor,x - asl - asl - asl - asl - // [260] vera_layer_get_color::return#2 = vera_layer_get_color::$1 | vera_layer_textcolor[vera_layer_get_color::layer#2] -- vbuaa=vbuaa_bor_pbuc1_derefidx_vbuxx - ora vera_layer_textcolor,x - // [261] phi from vera_layer_get_color::@1 vera_layer_get_color::@2 to vera_layer_get_color::@return [phi:vera_layer_get_color::@1/vera_layer_get_color::@2->vera_layer_get_color::@return] - __breturn_from___b1: - __breturn_from___b2: - // [261] phi vera_layer_get_color::return#3 = vera_layer_get_color::return#1 [phi:vera_layer_get_color::@1/vera_layer_get_color::@2->vera_layer_get_color::@return#0] -- register_copy - jmp __breturn - // vera_layer_get_color::@return - __breturn: - // [262] return - rts - // vera_layer_get_color::@1 - __b1: - // [263] vera_layer_get_color::return#1 = vera_layer_textcolor[vera_layer_get_color::layer#2] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_textcolor,x - jmp __breturn_from___b1 -} - // cputln -// Print a newline -cputln: { - .label temp = 6 - // [264] cputln::$2 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [265] cputln::temp#0 = conio_line_text[cputln::$2] -- vwuz1=pwuc1_derefidx_vbuaa - // TODO: This needs to be optimized! other variations don't compile because of sections not available! - tay - lda conio_line_text,y - sta.z temp - lda conio_line_text+1,y - sta.z temp+1 - // [266] cputln::temp#1 = cputln::temp#0 + conio_rowskip -- vwuz1=vwuz1_plus_vwuz2 - clc - lda.z temp - adc.z conio_rowskip - sta.z temp - lda.z temp+1 - adc.z conio_rowskip+1 - sta.z temp+1 - // [267] cputln::$3 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [268] conio_line_text[cputln::$3] = cputln::temp#1 -- pwuc1_derefidx_vbuaa=vwuz1 - tay - lda.z temp - sta conio_line_text,y - lda.z temp+1 - sta conio_line_text+1,y - // [269] conio_cursor_x[conio_screen_layer] = 0 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // [270] conio_cursor_y[conio_screen_layer] = ++ conio_cursor_y[conio_screen_layer] -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 - ldx.z conio_screen_layer - inc conio_cursor_y,x - // [271] call cscroll - jsr cscroll - jmp __breturn - // cputln::@return - __breturn: - // [272] return - rts -} - // memcpy_in_vram -// Copy block of memory (from VRAM to VRAM) -// Copies the values from the location pointed by src to the location pointed by dest. -// The method uses the VERA access ports 0 and 1 to copy data from and to in VRAM. -// - src_bank: 64K VRAM bank number to copy from (0/1). -// - src: pointer to the location to copy from. Note that the address is a 16 bit value! -// - src_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -// - dest_bank: 64K VRAM bank number to copy to (0/1). -// - dest: pointer to the location to copy to. Note that the address is a 16 bit value! -// - dest_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -// - num: The number of bytes to copy -// void memcpy_in_vram(__register(Y) char dest_bank, __zp($a) void *dest, char dest_increment, char src_bank, __zp(6) char *src, char src_increment, __zp(8) unsigned int num) -memcpy_in_vram: { - .label i = 2 - .label dest = $a - .label src = 6 - .label num = 8 - // [274] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // [275] memcpy_in_vram::$0 = byte0 memcpy_in_vram::src#2 -- vbuaa=_byte0_pvoz1 - lda.z src - // [276] *VERA_ADDRX_L = memcpy_in_vram::$0 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // [277] memcpy_in_vram::$1 = byte1 memcpy_in_vram::src#2 -- vbuaa=_byte1_pvoz1 - lda.z src+1 - // [278] *VERA_ADDRX_M = memcpy_in_vram::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // [279] *VERA_ADDRX_H = VERA_INC_1 -- _deref_pbuc1=vbuc2 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // [280] *VERA_CTRL = *VERA_CTRL | VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 - // Select DATA1 - lda #VERA_ADDRSEL - ora VERA_CTRL - sta VERA_CTRL - // [281] memcpy_in_vram::$3 = byte0 memcpy_in_vram::dest#2 -- vbuaa=_byte0_pvoz1 - lda.z dest - // [282] *VERA_ADDRX_L = memcpy_in_vram::$3 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // [283] memcpy_in_vram::$4 = byte1 memcpy_in_vram::dest#2 -- vbuaa=_byte1_pvoz1 - lda.z dest+1 - // [284] *VERA_ADDRX_M = memcpy_in_vram::$4 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // [285] memcpy_in_vram::$5 = VERA_INC_1 | memcpy_in_vram::dest_bank#2 -- vbuaa=vbuc1_bor_vbuyy - tya - ora #VERA_INC_1 - // [286] *VERA_ADDRX_H = memcpy_in_vram::$5 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_H - // [287] phi from memcpy_in_vram to memcpy_in_vram::@1 [phi:memcpy_in_vram->memcpy_in_vram::@1] - __b1_from_memcpy_in_vram: - // [287] phi memcpy_in_vram::i#2 = 0 [phi:memcpy_in_vram->memcpy_in_vram::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z i - lda #>0 - sta.z i+1 - jmp __b1 - // Transfer the data - // memcpy_in_vram::@1 - __b1: - // [288] if(memcpy_in_vram::i#2memcpy_in_vram::@1] - __b1_from___b2: - // [287] phi memcpy_in_vram::i#2 = memcpy_in_vram::i#1 [phi:memcpy_in_vram::@2->memcpy_in_vram::@1#0] -- register_copy - jmp __b1 -} - // vera_layer_mode_tile -// Set a vera layer in tile mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_depth: The color depth in bits per pixel (BPP), which can be 1, 2, 4 or 8. -// void vera_layer_mode_tile(__zp($94) char layer, __zp($43) unsigned long mapbase_address, __zp($49) unsigned long tilebase_address, __zp($7a) unsigned int mapwidth, __zp($9f) unsigned int mapheight, __zp($a9) char tilewidth, __zp($aa) char tileheight, char color_depth) -vera_layer_mode_tile: { - .label __1 = $7c - .label __6 = $4f - .label __17 = $95 - .label __18 = $93 - .label mapbase_address = $43 - .label tilebase_address = $49 - .label mapwidth = $7a - .label layer = $94 - .label mapheight = $9f - .label tilewidth = $a9 - .label tileheight = $aa - jmp __b1 - // vera_layer_mode_tile::@1 - __b1: - // [293] if(vera_layer_mode_tile::mapwidth#10==$20) goto vera_layer_mode_tile::@5 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$20 - beq __b5 - !: - jmp __b2 - // vera_layer_mode_tile::@2 - __b2: - // [294] if(vera_layer_mode_tile::mapwidth#10==$40) goto vera_layer_mode_tile::@6 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$40 - beq __b6 - !: - jmp __b3 - // vera_layer_mode_tile::@3 - __b3: - // [295] if(vera_layer_mode_tile::mapwidth#10==$80) goto vera_layer_mode_tile::@7 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$80 - beq __b7 - !: - jmp __b4 - // vera_layer_mode_tile::@4 - __b4: - // [296] if(vera_layer_mode_tile::mapwidth#10!=$100) goto vera_layer_mode_tile::@9 -- vwuz1_neq_vwuc1_then_la1 - lda.z mapwidth+1 - cmp #>$100 - bne __b9_from___b4 - lda.z mapwidth - cmp #<$100 - bne __b9_from___b4 - jmp __b8 - // vera_layer_mode_tile::@8 - __b8: - // [297] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 9 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #9 - ldy.z layer - sta vera_layer_rowshift,y - // [298] vera_layer_mode_tile::$14 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - lda.z layer - asl - // [299] vera_layer_rowskip[vera_layer_mode_tile::$14] = $200 -- pwuc1_derefidx_vbuaa=vwuc2 - tay - lda #<$200 - sta vera_layer_rowskip,y - lda #>$200 - sta vera_layer_rowskip+1,y - // [300] phi from vera_layer_mode_tile::@8 to vera_layer_mode_tile::@9 [phi:vera_layer_mode_tile::@8->vera_layer_mode_tile::@9] - __b9_from___b8: - // [300] phi vera_layer_mode_tile::config#21 = VERA_LAYER_WIDTH_256 [phi:vera_layer_mode_tile::@8->vera_layer_mode_tile::@9#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_WIDTH_256 - jmp __b9 - // [300] phi from vera_layer_mode_tile::@4 vera_layer_mode_tile::@5 to vera_layer_mode_tile::@9 [phi:vera_layer_mode_tile::@4/vera_layer_mode_tile::@5->vera_layer_mode_tile::@9] - __b9_from___b4: - __b9_from___b5: - // [300] phi vera_layer_mode_tile::config#21 = VERA_LAYER_COLOR_DEPTH_1BPP [phi:vera_layer_mode_tile::@4/vera_layer_mode_tile::@5->vera_layer_mode_tile::@9#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_1BPP - jmp __b9 - // vera_layer_mode_tile::@9 - __b9: - // [301] if(vera_layer_mode_tile::mapheight#10==$20) goto vera_layer_mode_tile::@16 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$20 - beq __b16_from___b9 - !: - jmp __b10 - // vera_layer_mode_tile::@10 - __b10: - // [302] if(vera_layer_mode_tile::mapheight#10==$40) goto vera_layer_mode_tile::@13 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$40 - beq __b13 - !: - jmp __b11 - // vera_layer_mode_tile::@11 - __b11: - // [303] if(vera_layer_mode_tile::mapheight#10==$80) goto vera_layer_mode_tile::@14 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$80 - beq __b14 - !: - jmp __b12 - // vera_layer_mode_tile::@12 - __b12: - // [304] if(vera_layer_mode_tile::mapheight#10!=$100) goto vera_layer_mode_tile::@16 -- vwuz1_neq_vwuc1_then_la1 - lda.z mapheight+1 - cmp #>$100 - bne __b16_from___b12 - lda.z mapheight - cmp #<$100 - bne __b16_from___b12 - jmp __b15 - // vera_layer_mode_tile::@15 - __b15: - // [305] vera_layer_mode_tile::config#12 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_256 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_256 - tax - // [306] phi from vera_layer_mode_tile::@12 vera_layer_mode_tile::@13 vera_layer_mode_tile::@14 vera_layer_mode_tile::@15 vera_layer_mode_tile::@9 to vera_layer_mode_tile::@16 [phi:vera_layer_mode_tile::@12/vera_layer_mode_tile::@13/vera_layer_mode_tile::@14/vera_layer_mode_tile::@15/vera_layer_mode_tile::@9->vera_layer_mode_tile::@16] - __b16_from___b12: - __b16_from___b13: - __b16_from___b14: - __b16_from___b15: - __b16_from___b9: - // [306] phi vera_layer_mode_tile::config#25 = vera_layer_mode_tile::config#21 [phi:vera_layer_mode_tile::@12/vera_layer_mode_tile::@13/vera_layer_mode_tile::@14/vera_layer_mode_tile::@15/vera_layer_mode_tile::@9->vera_layer_mode_tile::@16#0] -- register_copy - jmp __b16 - // vera_layer_mode_tile::@16 - __b16: - // [307] vera_layer_set_config::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [308] vera_layer_set_config::config#0 = vera_layer_mode_tile::config#25 - // [309] call vera_layer_set_config - // [623] phi from vera_layer_mode_tile::@16 to vera_layer_set_config [phi:vera_layer_mode_tile::@16->vera_layer_set_config] - vera_layer_set_config_from___b16: - // [623] phi vera_layer_set_config::config#2 = vera_layer_set_config::config#0 [phi:vera_layer_mode_tile::@16->vera_layer_set_config#0] -- register_copy - // [623] phi vera_layer_set_config::layer#2 = vera_layer_set_config::layer#0 [phi:vera_layer_mode_tile::@16->vera_layer_set_config#1] -- register_copy - jsr vera_layer_set_config - jmp __b23 - // vera_layer_mode_tile::@23 - __b23: - // [310] vera_layer_mode_tile::$1 = word0 vera_layer_mode_tile::mapbase_address#10 -- vwuz1=_word0_vduz2 - lda.z mapbase_address - sta.z __1 - lda.z mapbase_address+1 - sta.z __1+1 - // [311] vera_layer_mode_tile::$17 = vera_layer_mode_tile::layer#10 << 1 -- vbuz1=vbuz2_rol_1 - lda.z layer - asl - sta.z __17 - // [312] vera_mapbase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$1 -- pwuc1_derefidx_vbuz1=vwuz2 - // mapbase - ldy.z __17 - lda.z __1 - sta vera_mapbase_offset,y - lda.z __1+1 - sta vera_mapbase_offset+1,y - // [313] vera_layer_mode_tile::$2 = byte2 vera_layer_mode_tile::mapbase_address#10 -- vbuaa=_byte2_vduz1 - lda.z mapbase_address+2 - // [314] vera_mapbase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$2 -- pbuc1_derefidx_vbuz1=vbuaa - ldy.z layer - sta vera_mapbase_bank,y - // [315] vera_layer_mode_tile::$18 = vera_layer_mode_tile::layer#10 << 2 -- vbuz1=vbuz2_rol_2 - lda.z layer - asl - asl - sta.z __18 - // [316] vera_mapbase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::mapbase_address#10 -- pduc1_derefidx_vbuz1=vduz2 - ldy.z __18 - lda.z mapbase_address - sta vera_mapbase_address,y - lda.z mapbase_address+1 - sta vera_mapbase_address+1,y - lda.z mapbase_address+2 - sta vera_mapbase_address+2,y - lda.z mapbase_address+3 - sta vera_mapbase_address+3,y - // [317] vera_layer_mode_tile::mapbase_address#0 = vera_layer_mode_tile::mapbase_address#10 >> 1 -- vduz1=vduz1_ror_1 - lsr.z mapbase_address+3 - ror.z mapbase_address+2 - ror.z mapbase_address+1 - ror.z mapbase_address - // [318] vera_layer_mode_tile::mapbase#0 = byte1 vera_layer_mode_tile::mapbase_address#0 -- vbuxx=_byte1_vduz1 - ldx.z mapbase_address+1 - // [319] vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [320] vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0 - // [321] call vera_layer_set_mapbase - // [236] phi from vera_layer_mode_tile::@23 to vera_layer_set_mapbase [phi:vera_layer_mode_tile::@23->vera_layer_set_mapbase] - vera_layer_set_mapbase_from___b23: - // [236] phi vera_layer_set_mapbase::mapbase#3 = vera_layer_set_mapbase::mapbase#0 [phi:vera_layer_mode_tile::@23->vera_layer_set_mapbase#0] -- register_copy - // [236] phi vera_layer_set_mapbase::layer#3 = vera_layer_set_mapbase::layer#0 [phi:vera_layer_mode_tile::@23->vera_layer_set_mapbase#1] -- register_copy - jsr vera_layer_set_mapbase - jmp __b24 - // vera_layer_mode_tile::@24 - __b24: - // [322] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 -- vwuz1=_word0_vduz2 - lda.z tilebase_address - sta.z __6 - lda.z tilebase_address+1 - sta.z __6+1 - // [323] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 -- pwuc1_derefidx_vbuz1=vwuz2 - // tilebase - ldy.z __17 - lda.z __6 - sta vera_tilebase_offset,y - lda.z __6+1 - sta vera_tilebase_offset+1,y - // [324] vera_layer_mode_tile::$7 = byte2 vera_layer_mode_tile::tilebase_address#10 -- vbuaa=_byte2_vduz1 - lda.z tilebase_address+2 - // [325] vera_tilebase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$7 -- pbuc1_derefidx_vbuz1=vbuaa - ldy.z layer - sta vera_tilebase_bank,y - // [326] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 -- pduc1_derefidx_vbuz1=vduz2 - ldy.z __18 - lda.z tilebase_address - sta vera_tilebase_address,y - lda.z tilebase_address+1 - sta vera_tilebase_address+1,y - lda.z tilebase_address+2 - sta vera_tilebase_address+2,y - lda.z tilebase_address+3 - sta vera_tilebase_address+3,y - // [327] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 -- vduz1=vduz1_ror_1 - lsr.z tilebase_address+3 - ror.z tilebase_address+2 - ror.z tilebase_address+1 - ror.z tilebase_address - // [328] vera_layer_mode_tile::tilebase#0 = byte1 vera_layer_mode_tile::tilebase_address#0 -- vbuaa=_byte1_vduz1 - lda.z tilebase_address+1 - // [329] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK -- vbuxx=vbuaa_band_vbuc1 - and #VERA_LAYER_TILEBASE_MASK - tax - // [330] if(vera_layer_mode_tile::tilewidth#10==8) goto vera_layer_mode_tile::@19 -- vbuz1_eq_vbuc1_then_la1 - lda #8 - cmp.z tilewidth - beq __b19_from___b24 - jmp __b17 - // vera_layer_mode_tile::@17 - __b17: - // [331] if(vera_layer_mode_tile::tilewidth#10!=$10) goto vera_layer_mode_tile::@19 -- vbuz1_neq_vbuc1_then_la1 - lda #$10 - cmp.z tilewidth - bne __b19_from___b17 - jmp __b18 - // vera_layer_mode_tile::@18 - __b18: - // [332] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_TILEBASE_WIDTH_16 - tax - // [333] phi from vera_layer_mode_tile::@17 vera_layer_mode_tile::@18 vera_layer_mode_tile::@24 to vera_layer_mode_tile::@19 [phi:vera_layer_mode_tile::@17/vera_layer_mode_tile::@18/vera_layer_mode_tile::@24->vera_layer_mode_tile::@19] - __b19_from___b17: - __b19_from___b18: - __b19_from___b24: - // [333] phi vera_layer_mode_tile::tilebase#12 = vera_layer_mode_tile::tilebase#1 [phi:vera_layer_mode_tile::@17/vera_layer_mode_tile::@18/vera_layer_mode_tile::@24->vera_layer_mode_tile::@19#0] -- register_copy - jmp __b19 - // vera_layer_mode_tile::@19 - __b19: - // [334] if(vera_layer_mode_tile::tileheight#10==8) goto vera_layer_mode_tile::@22 -- vbuz1_eq_vbuc1_then_la1 - lda #8 - cmp.z tileheight - beq __b22_from___b19 - jmp __b20 - // vera_layer_mode_tile::@20 - __b20: - // [335] if(vera_layer_mode_tile::tileheight#10!=$10) goto vera_layer_mode_tile::@22 -- vbuz1_neq_vbuc1_then_la1 - lda #$10 - cmp.z tileheight - bne __b22_from___b20 - jmp __b21 - // vera_layer_mode_tile::@21 - __b21: - // [336] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_TILEBASE_HEIGHT_16 - tax - // [337] phi from vera_layer_mode_tile::@19 vera_layer_mode_tile::@20 vera_layer_mode_tile::@21 to vera_layer_mode_tile::@22 [phi:vera_layer_mode_tile::@19/vera_layer_mode_tile::@20/vera_layer_mode_tile::@21->vera_layer_mode_tile::@22] - __b22_from___b19: - __b22_from___b20: - __b22_from___b21: - // [337] phi vera_layer_mode_tile::tilebase#10 = vera_layer_mode_tile::tilebase#12 [phi:vera_layer_mode_tile::@19/vera_layer_mode_tile::@20/vera_layer_mode_tile::@21->vera_layer_mode_tile::@22#0] -- register_copy - jmp __b22 - // vera_layer_mode_tile::@22 - __b22: - // [338] vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [339] vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10 - // [340] call vera_layer_set_tilebase - // [628] phi from vera_layer_mode_tile::@22 to vera_layer_set_tilebase [phi:vera_layer_mode_tile::@22->vera_layer_set_tilebase] - vera_layer_set_tilebase_from___b22: - // [628] phi vera_layer_set_tilebase::tilebase#2 = vera_layer_set_tilebase::tilebase#0 [phi:vera_layer_mode_tile::@22->vera_layer_set_tilebase#0] -- register_copy - // [628] phi vera_layer_set_tilebase::layer#2 = vera_layer_set_tilebase::layer#0 [phi:vera_layer_mode_tile::@22->vera_layer_set_tilebase#1] -- register_copy - jsr vera_layer_set_tilebase - jmp __breturn - // vera_layer_mode_tile::@return - __breturn: - // [341] return - rts - // vera_layer_mode_tile::@14 - __b14: - // [342] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_128 - tax - jmp __b16_from___b14 - // vera_layer_mode_tile::@13 - __b13: - // [343] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_64 - tax - jmp __b16_from___b13 - // vera_layer_mode_tile::@7 - __b7: - // [344] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #8 - ldy.z layer - sta vera_layer_rowshift,y - // [345] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - lda.z layer - asl - // [346] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 -- pwuc1_derefidx_vbuaa=vwuc2 - tay - lda #<$100 - sta vera_layer_rowskip,y - lda #>$100 - sta vera_layer_rowskip+1,y - // [300] phi from vera_layer_mode_tile::@7 to vera_layer_mode_tile::@9 [phi:vera_layer_mode_tile::@7->vera_layer_mode_tile::@9] - __b9_from___b7: - // [300] phi vera_layer_mode_tile::config#21 = VERA_LAYER_WIDTH_128 [phi:vera_layer_mode_tile::@7->vera_layer_mode_tile::@9#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_WIDTH_128 - jmp __b9 - // vera_layer_mode_tile::@6 - __b6: - // [347] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #7 - ldy.z layer - sta vera_layer_rowshift,y - // [348] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - lda.z layer - asl - // [349] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 -- pwuc1_derefidx_vbuaa=vbuc2 - tay - lda #$80 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - // [300] phi from vera_layer_mode_tile::@6 to vera_layer_mode_tile::@9 [phi:vera_layer_mode_tile::@6->vera_layer_mode_tile::@9] - __b9_from___b6: - // [300] phi vera_layer_mode_tile::config#21 = VERA_LAYER_WIDTH_64 [phi:vera_layer_mode_tile::@6->vera_layer_mode_tile::@9#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_WIDTH_64 - jmp __b9 - // vera_layer_mode_tile::@5 - __b5: - // [350] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #6 - ldy.z layer - sta vera_layer_rowshift,y - // [351] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - lda.z layer - asl - // [352] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 -- pwuc1_derefidx_vbuaa=vbuc2 - tay - lda #$40 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - jmp __b9_from___b5 -} - // vera_layer_mode_bitmap -// Set a vera layer in bitmap mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_mode: The color mode, which can be 16 or 256. -// void vera_layer_mode_bitmap(char layer, unsigned long bitmap_address, unsigned int mapwidth, unsigned int color_depth) -vera_layer_mode_bitmap: { - .const layer = 0 - .const bitmap_address = 0 - // config - .const config = VERA_LAYER_COLOR_DEPTH_8BPP|VERA_LAYER_CONFIG_MODE_BITMAP - .const tilebase = 0 - jmp __b1 - // vera_layer_mode_bitmap::@1 - __b1: - // [354] *vera_tilebase_offset = 0 -- _deref_pwuc1=vwuc2 - // tilebase - lda #<0 - sta vera_tilebase_offset - lda #>0 - sta vera_tilebase_offset+1 - // [355] *vera_tilebase_bank = 0 -- _deref_pbuc1=vbuc2 - lda #0 - sta vera_tilebase_bank - // [356] *vera_tilebase_address = vera_layer_mode_bitmap::bitmap_address#1 -- _deref_pduc1=vduc2 - lda #bitmap_address - sta vera_tilebase_address+1 - lda #>$10 - sta vera_tilebase_address+2 - lda #>bitmap_address>>$10 - sta vera_tilebase_address+3 - jmp vera_display_set_scale_double1 - // vera_layer_mode_bitmap::vera_display_set_scale_double1 - vera_display_set_scale_double1: - // [357] *VERA_DC_HSCALE = $40 -- _deref_pbuc1=vbuc2 - lda #$40 - sta VERA_DC_HSCALE - // [358] *VERA_DC_VSCALE = $40 -- _deref_pbuc1=vbuc2 - lda #$40 - sta VERA_DC_VSCALE - // [359] phi from vera_layer_mode_bitmap::vera_display_set_scale_double1 to vera_layer_mode_bitmap::@2 [phi:vera_layer_mode_bitmap::vera_display_set_scale_double1->vera_layer_mode_bitmap::@2] - __b2_from_vera_display_set_scale_double1: - jmp __b2 - // vera_layer_mode_bitmap::@2 - __b2: - // [360] call vera_layer_set_config - // [623] phi from vera_layer_mode_bitmap::@2 to vera_layer_set_config [phi:vera_layer_mode_bitmap::@2->vera_layer_set_config] - vera_layer_set_config_from___b2: - // [623] phi vera_layer_set_config::config#2 = vera_layer_mode_bitmap::config#11 [phi:vera_layer_mode_bitmap::@2->vera_layer_set_config#0] -- vbuxx=vbuc1 - ldx #config - // [623] phi vera_layer_set_config::layer#2 = vera_layer_mode_bitmap::layer#0 [phi:vera_layer_mode_bitmap::@2->vera_layer_set_config#1] -- vbuaa=vbuc1 - lda #layer - jsr vera_layer_set_config - // [361] phi from vera_layer_mode_bitmap::@2 to vera_layer_mode_bitmap::@3 [phi:vera_layer_mode_bitmap::@2->vera_layer_mode_bitmap::@3] - __b3_from___b2: - jmp __b3 - // vera_layer_mode_bitmap::@3 - __b3: - // [362] call vera_layer_set_tilebase - // [628] phi from vera_layer_mode_bitmap::@3 to vera_layer_set_tilebase [phi:vera_layer_mode_bitmap::@3->vera_layer_set_tilebase] - vera_layer_set_tilebase_from___b3: - // [628] phi vera_layer_set_tilebase::tilebase#2 = vera_layer_mode_bitmap::tilebase#1 [phi:vera_layer_mode_bitmap::@3->vera_layer_set_tilebase#0] -- vbuxx=vbuc1 - ldx #tilebase - // [628] phi vera_layer_set_tilebase::layer#2 = vera_layer_mode_bitmap::layer#0 [phi:vera_layer_mode_bitmap::@3->vera_layer_set_tilebase#1] -- vbuaa=vbuc1 - lda #layer - jsr vera_layer_set_tilebase - jmp __breturn - // vera_layer_mode_bitmap::@return - __breturn: - // [363] return - rts -} - // clrscr -// clears the screen and moves the cursor to the upper left-hand corner of the screen. -clrscr: { - .label __1 = $87 - .label line_text = $70 - .label color = $87 - // [364] clrscr::line_text#0 = (char *)CONIO_SCREEN_TEXT#17 -- pbuz1=pbuz2 - lda.z CONIO_SCREEN_TEXT_1 - sta.z line_text - lda.z CONIO_SCREEN_TEXT_1+1 - sta.z line_text+1 - // [365] vera_layer_get_backcolor::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [366] call vera_layer_get_backcolor - jsr vera_layer_get_backcolor - // [367] vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 - jmp __b7 - // clrscr::@7 - __b7: - // [368] clrscr::$0 = vera_layer_get_backcolor::return#0 - // [369] clrscr::$1 = clrscr::$0 << 4 -- vbuz1=vbuaa_rol_4 - asl - asl - asl - asl - sta.z __1 - // [370] vera_layer_get_textcolor::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [371] call vera_layer_get_textcolor - jsr vera_layer_get_textcolor - // [372] vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 - jmp __b8 - // clrscr::@8 - __b8: - // [373] clrscr::$2 = vera_layer_get_textcolor::return#0 - // [374] clrscr::color#0 = clrscr::$1 | clrscr::$2 -- vbuz1=vbuz1_bor_vbuaa - ora.z color - sta.z color - // [375] phi from clrscr::@8 to clrscr::@1 [phi:clrscr::@8->clrscr::@1] - __b1_from___b8: - // [375] phi clrscr::line_text#2 = clrscr::line_text#0 [phi:clrscr::@8->clrscr::@1#0] -- register_copy - // [375] phi clrscr::l#2 = 0 [phi:clrscr::@8->clrscr::@1#1] -- vbuxx=vbuc1 - ldx #0 - jmp __b1 - // clrscr::@1 - __b1: - // [376] if(clrscr::l#2clrscr::@4] - __b4_from___b2: - // [389] phi clrscr::c#2 = 0 [phi:clrscr::@2->clrscr::@4#0] -- vbuyy=vbuc1 - ldy #0 - jmp __b4 - // clrscr::@4 - __b4: - // [390] if(clrscr::c#2clrscr::@1] - __b1_from___b6: - // [375] phi clrscr::line_text#2 = clrscr::line_text#1 [phi:clrscr::@6->clrscr::@1#0] -- register_copy - // [375] phi clrscr::l#2 = clrscr::l#1 [phi:clrscr::@6->clrscr::@1#1] -- register_copy - jmp __b1 - // clrscr::@5 - __b5: - // [393] *VERA_DATA0 = ' ' -- _deref_pbuc1=vbuc2 - lda #' ' - sta VERA_DATA0 - // [394] *VERA_DATA0 = clrscr::color#0 -- _deref_pbuc1=vbuz1 - lda.z color - sta VERA_DATA0 - // [395] clrscr::c#1 = ++ clrscr::c#2 -- vbuyy=_inc_vbuyy - iny - // [389] phi from clrscr::@5 to clrscr::@4 [phi:clrscr::@5->clrscr::@4] - __b4_from___b5: - // [389] phi clrscr::c#2 = clrscr::c#1 [phi:clrscr::@5->clrscr::@4#0] -- register_copy - jmp __b4 -} - // printf_str -/// Print a NUL-terminated string -// void printf_str(void (*putc)(char), __zp($4d) const char *s) -printf_str: { - .label s = $4d - // [397] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] - __b1_from_printf_str: - __b1_from___b2: - // [397] phi printf_str::s#8 = printf_str::s#9 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy - jmp __b1 - // printf_str::@1 - __b1: - // [398] printf_str::c#1 = *printf_str::s#8 -- vbuaa=_deref_pbuz1 - ldy #0 - lda (s),y - // [399] printf_str::s#0 = ++ printf_str::s#8 -- pbuz1=_inc_pbuz1 - inc.z s - bne !+ - inc.z s+1 - !: - // [400] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b2 - jmp __breturn - // printf_str::@return - __breturn: - // [401] return - rts - // printf_str::@2 - __b2: - // [402] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa - pha - // [403] callexecute cputc -- call_vprc1 - jsr cputc - // sideeffect stackpullpadding(1) -- _stackpullpadding_1 - pla - jmp __b1_from___b2 -} - // bitmap_init -// Initialize the bitmap plotter tables for a specific bitmap -// void bitmap_init(char layer, unsigned long address) -bitmap_init: { - .const layer = 0 - .const address = 0 - .label __7 = $81 - .label __10 = $83 - .label __13 = $85 - .label __23 = $37 - .label __24 = $39 - .label __25 = $3b - .label __26 = $3d - .label __28 = $3f - .label vera_layer_get_color_depth1_config = $9b - .label bitmask = $21 - .label bitshift = $20 - .label x = $67 - .label hdelta = $a3 - .label yoffs = $6a - .label y = $47 - .label __29 = $37 - .label __30 = $51 - .label __31 = $53 - .label __32 = $39 - .label __33 = $55 - .label __34 = $57 - .label __35 = $3b - .label __36 = $59 - .label __37 = $5b - .label __38 = $3d - .label __39 = $5d - .label __40 = $5f - .label __41 = $3f - // [405] __bitmap_address = bitmap_init::address#0 -- vduz1=vduc1 - lda #
address - sta.z __bitmap_address+1 - lda #
>$10 - sta.z __bitmap_address+2 - lda #>address>>$10 - sta.z __bitmap_address+3 - // [406] __bitmap_layer = bitmap_init::layer#0 -- vbuz1=vbuc1 - lda #layer - sta.z __bitmap_layer - // [407] bitmap_init::vera_layer_get_color_depth1_layer#0 = __bitmap_layer -- vbuaa=vbuz1 - lda.z __bitmap_layer - jmp vera_layer_get_color_depth1 - // bitmap_init::vera_layer_get_color_depth1 - vera_layer_get_color_depth1: - // [408] bitmap_init::vera_layer_get_color_depth1_$1 = bitmap_init::vera_layer_get_color_depth1_layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [409] bitmap_init::vera_layer_get_color_depth1_config#0 = vera_layer_config[bitmap_init::vera_layer_get_color_depth1_$1] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z vera_layer_get_color_depth1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_color_depth1_config+1 - // [410] bitmap_init::vera_layer_get_color_depth1_$0 = *bitmap_init::vera_layer_get_color_depth1_config#0 & VERA_LAYER_COLOR_DEPTH_MASK -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_COLOR_DEPTH_MASK - ldy #0 - and (vera_layer_get_color_depth1_config),y - // [411] bitmap_init::vera_layer_get_color_depth1_return#0 = bitmap_init::vera_layer_get_color_depth1_$0 - jmp vera_layer_get_color_depth1___breturn - // bitmap_init::vera_layer_get_color_depth1_@return - vera_layer_get_color_depth1___breturn: - // [412] bitmap_init::vera_layer_get_color_depth1_return#1 = bitmap_init::vera_layer_get_color_depth1_return#0 - jmp __b16 - // bitmap_init::@16 - __b16: - // [413] bitmap_init::$0 = bitmap_init::vera_layer_get_color_depth1_return#1 - // [414] __bitmap_color_depth = bitmap_init::$0 -- vbuz1=vbuaa - sta.z __bitmap_color_depth - // [415] call vera_display_get_hscale - // [637] phi from bitmap_init::@16 to vera_display_get_hscale [phi:bitmap_init::@16->vera_display_get_hscale] - vera_display_get_hscale_from___b16: - jsr vera_display_get_hscale - // [416] vera_display_get_hscale::return#2 = vera_display_get_hscale::return#0 - jmp __b17 - // bitmap_init::@17 - __b17: - // [417] bitmap_init::$1 = vera_display_get_hscale::return#2 - // [418] __bitmap_hscale = bitmap_init::$1 -- vbuz1=vbuxx - stx.z __bitmap_hscale - // [419] call vera_display_get_vscale - // [644] phi from bitmap_init::@17 to vera_display_get_vscale [phi:bitmap_init::@17->vera_display_get_vscale] - vera_display_get_vscale_from___b17: - jsr vera_display_get_vscale - // [420] vera_display_get_vscale::return#2 = vera_display_get_vscale::return#0 - jmp __b18 - // bitmap_init::@18 - __b18: - // [421] bitmap_init::$2 = vera_display_get_vscale::return#2 - // [422] __bitmap_vscale = bitmap_init::$2 -- vbuz1=vbuxx - // Returns 1 when 640 and 2 when 320. - stx.z __bitmap_vscale - // [423] bitmap_init::bitmask#0 = bitmasks[__bitmap_color_depth] -- vbuz1=pbuc1_derefidx_vbuz2 - // Returns 1 when 480 and 2 when 240. - ldy.z __bitmap_color_depth - lda bitmasks,y - sta.z bitmask - // [424] bitmap_init::bitshift#0 = bitshifts[__bitmap_color_depth] -- vbsz1=pbsc1_derefidx_vbuz2 - ldy.z __bitmap_color_depth - lda bitshifts,y - sta.z bitshift - // [425] phi from bitmap_init::@18 to bitmap_init::@1 [phi:bitmap_init::@18->bitmap_init::@1] - __b1_from___b18: - // [425] phi bitmap_init::bitshift#10 = bitmap_init::bitshift#0 [phi:bitmap_init::@18->bitmap_init::@1#0] -- register_copy - // [425] phi bitmap_init::bitmask#10 = bitmap_init::bitmask#0 [phi:bitmap_init::@18->bitmap_init::@1#1] -- register_copy - // [425] phi bitmap_init::x#10 = 0 [phi:bitmap_init::@18->bitmap_init::@1#2] -- vwuz1=vwuc1 - lda #<0 - sta.z x - lda #>0 - sta.z x+1 - jmp __b1 - // [425] phi from bitmap_init::@7 to bitmap_init::@1 [phi:bitmap_init::@7->bitmap_init::@1] - __b1_from___b7: - // [425] phi bitmap_init::bitshift#10 = bitmap_init::bitshift#14 [phi:bitmap_init::@7->bitmap_init::@1#0] -- register_copy - // [425] phi bitmap_init::bitmask#10 = bitmap_init::bitmask#16 [phi:bitmap_init::@7->bitmap_init::@1#1] -- register_copy - // [425] phi bitmap_init::x#10 = bitmap_init::x#1 [phi:bitmap_init::@7->bitmap_init::@1#2] -- register_copy - jmp __b1 - // bitmap_init::@1 - __b1: - // [426] if(__bitmap_color_depth!=0) goto bitmap_init::@2 -- vbuz1_neq_0_then_la1 - lda.z __bitmap_color_depth - bne __b2_from___b1 - jmp __b8 - // bitmap_init::@8 - __b8: - // [427] bitmap_init::$7 = bitmap_init::x#10 >> 3 -- vwuz1=vwuz2_ror_3 - lda.z x+1 - lsr - sta.z __7+1 - lda.z x - ror - sta.z __7 - lsr.z __7+1 - ror.z __7 - lsr.z __7+1 - ror.z __7 - // [428] bitmap_init::$23 = bitmap_init::x#10 << 1 -- vwuz1=vwuz2_rol_1 - lda.z x - asl - sta.z __23 - lda.z x+1 - rol - sta.z __23+1 - // [429] bitmap_init::$29 = __bitmap_plot_x + bitmap_init::$23 -- pwuz1=pwuc1_plus_vwuz1 - lda.z __29 - clc - adc #<__bitmap_plot_x - sta.z __29 - lda.z __29+1 - adc #>__bitmap_plot_x - sta.z __29+1 - // [430] *bitmap_init::$29 = bitmap_init::$7 -- _deref_pwuz1=vwuz2 - ldy #0 - lda.z __7 - sta (__29),y - iny - lda.z __7+1 - sta (__29),y - // [431] bitmap_init::$30 = __bitmap_plot_bitmask + bitmap_init::x#10 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitmask - sta.z __30 - lda.z x+1 - adc #>__bitmap_plot_bitmask - sta.z __30+1 - // [432] *bitmap_init::$30 = bitmap_init::bitmask#10 -- _deref_pbuz1=vbuz2 - lda.z bitmask - ldy #0 - sta (__30),y - // [433] bitmap_init::$31 = __bitmap_plot_bitshift + bitmap_init::x#10 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitshift - sta.z __31 - lda.z x+1 - adc #>__bitmap_plot_bitshift - sta.z __31+1 - // [434] *bitmap_init::$31 = (char)bitmap_init::bitshift#10 -- _deref_pbuz1=vbuz2 - lda.z bitshift - ldy #0 - sta (__31),y - // [435] bitmap_init::bitshift#1 = bitmap_init::bitshift#10 - 1 -- vbsz1=vbsz1_minus_1 - dec.z bitshift - // [436] bitmap_init::bitmask#1 = bitmap_init::bitmask#10 >> 1 -- vbuz1=vbuz1_ror_1 - lsr.z bitmask - // [437] phi from bitmap_init::@1 bitmap_init::@8 to bitmap_init::@2 [phi:bitmap_init::@1/bitmap_init::@8->bitmap_init::@2] - __b2_from___b1: - __b2_from___b8: - // [437] phi bitmap_init::bitshift#11 = bitmap_init::bitshift#10 [phi:bitmap_init::@1/bitmap_init::@8->bitmap_init::@2#0] -- register_copy - // [437] phi bitmap_init::bitmask#11 = bitmap_init::bitmask#10 [phi:bitmap_init::@1/bitmap_init::@8->bitmap_init::@2#1] -- register_copy - jmp __b2 - // bitmap_init::@2 - __b2: - // [438] if(__bitmap_color_depth!=1) goto bitmap_init::@3 -- vbuz1_neq_vbuc1_then_la1 - lda #1 - cmp.z __bitmap_color_depth - bne __b3_from___b2 - jmp __b9 - // bitmap_init::@9 - __b9: - // [439] bitmap_init::$10 = bitmap_init::x#10 >> 2 -- vwuz1=vwuz2_ror_2 - lda.z x+1 - lsr - sta.z __10+1 - lda.z x - ror - sta.z __10 - lsr.z __10+1 - ror.z __10 - // [440] bitmap_init::$24 = bitmap_init::x#10 << 1 -- vwuz1=vwuz2_rol_1 - lda.z x - asl - sta.z __24 - lda.z x+1 - rol - sta.z __24+1 - // [441] bitmap_init::$32 = __bitmap_plot_x + bitmap_init::$24 -- pwuz1=pwuc1_plus_vwuz1 - lda.z __32 - clc - adc #<__bitmap_plot_x - sta.z __32 - lda.z __32+1 - adc #>__bitmap_plot_x - sta.z __32+1 - // [442] *bitmap_init::$32 = bitmap_init::$10 -- _deref_pwuz1=vwuz2 - ldy #0 - lda.z __10 - sta (__32),y - iny - lda.z __10+1 - sta (__32),y - // [443] bitmap_init::$33 = __bitmap_plot_bitmask + bitmap_init::x#10 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitmask - sta.z __33 - lda.z x+1 - adc #>__bitmap_plot_bitmask - sta.z __33+1 - // [444] *bitmap_init::$33 = bitmap_init::bitmask#11 -- _deref_pbuz1=vbuz2 - lda.z bitmask - ldy #0 - sta (__33),y - // [445] bitmap_init::$34 = __bitmap_plot_bitshift + bitmap_init::x#10 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitshift - sta.z __34 - lda.z x+1 - adc #>__bitmap_plot_bitshift - sta.z __34+1 - // [446] *bitmap_init::$34 = (char)bitmap_init::bitshift#11 -- _deref_pbuz1=vbuz2 - lda.z bitshift - ldy #0 - sta (__34),y - // [447] bitmap_init::bitshift#2 = bitmap_init::bitshift#11 - 2 -- vbsz1=vbsz1_minus_2 - dec.z bitshift - dec.z bitshift - // [448] bitmap_init::bitmask#2 = bitmap_init::bitmask#11 >> 2 -- vbuz1=vbuz1_ror_2 - lda.z bitmask - lsr - lsr - sta.z bitmask - // [449] phi from bitmap_init::@2 bitmap_init::@9 to bitmap_init::@3 [phi:bitmap_init::@2/bitmap_init::@9->bitmap_init::@3] - __b3_from___b2: - __b3_from___b9: - // [449] phi bitmap_init::bitshift#12 = bitmap_init::bitshift#11 [phi:bitmap_init::@2/bitmap_init::@9->bitmap_init::@3#0] -- register_copy - // [449] phi bitmap_init::bitmask#12 = bitmap_init::bitmask#11 [phi:bitmap_init::@2/bitmap_init::@9->bitmap_init::@3#1] -- register_copy - jmp __b3 - // bitmap_init::@3 - __b3: - // [450] if(__bitmap_color_depth!=2) goto bitmap_init::@4 -- vbuz1_neq_vbuc1_then_la1 - lda #2 - cmp.z __bitmap_color_depth - bne __b4_from___b3 - jmp __b10 - // bitmap_init::@10 - __b10: - // [451] bitmap_init::$13 = bitmap_init::x#10 >> 1 -- vwuz1=vwuz2_ror_1 - lda.z x+1 - lsr - sta.z __13+1 - lda.z x - ror - sta.z __13 - // [452] bitmap_init::$25 = bitmap_init::x#10 << 1 -- vwuz1=vwuz2_rol_1 - lda.z x - asl - sta.z __25 - lda.z x+1 - rol - sta.z __25+1 - // [453] bitmap_init::$35 = __bitmap_plot_x + bitmap_init::$25 -- pwuz1=pwuc1_plus_vwuz1 - lda.z __35 - clc - adc #<__bitmap_plot_x - sta.z __35 - lda.z __35+1 - adc #>__bitmap_plot_x - sta.z __35+1 - // [454] *bitmap_init::$35 = bitmap_init::$13 -- _deref_pwuz1=vwuz2 - ldy #0 - lda.z __13 - sta (__35),y - iny - lda.z __13+1 - sta (__35),y - // [455] bitmap_init::$36 = __bitmap_plot_bitmask + bitmap_init::x#10 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitmask - sta.z __36 - lda.z x+1 - adc #>__bitmap_plot_bitmask - sta.z __36+1 - // [456] *bitmap_init::$36 = bitmap_init::bitmask#12 -- _deref_pbuz1=vbuz2 - lda.z bitmask - ldy #0 - sta (__36),y - // [457] bitmap_init::$37 = __bitmap_plot_bitshift + bitmap_init::x#10 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitshift - sta.z __37 - lda.z x+1 - adc #>__bitmap_plot_bitshift - sta.z __37+1 - // [458] *bitmap_init::$37 = (char)bitmap_init::bitshift#12 -- _deref_pbuz1=vbuz2 - lda.z bitshift - ldy #0 - sta (__37),y - // [459] bitmap_init::bitshift#3 = bitmap_init::bitshift#12 - 4 -- vbsz1=vbsz1_minus_vbsc1 - lda.z bitshift - sec - sbc #4 - sta.z bitshift - // [460] bitmap_init::bitmask#3 = bitmap_init::bitmask#12 >> 4 -- vbuz1=vbuz1_ror_4 - lda.z bitmask - lsr - lsr - lsr - lsr - sta.z bitmask - // [461] phi from bitmap_init::@10 bitmap_init::@3 to bitmap_init::@4 [phi:bitmap_init::@10/bitmap_init::@3->bitmap_init::@4] - __b4_from___b10: - __b4_from___b3: - // [461] phi bitmap_init::bitmask#13 = bitmap_init::bitmask#3 [phi:bitmap_init::@10/bitmap_init::@3->bitmap_init::@4#0] -- register_copy - // [461] phi bitmap_init::bitshift#13 = bitmap_init::bitshift#3 [phi:bitmap_init::@10/bitmap_init::@3->bitmap_init::@4#1] -- register_copy - jmp __b4 - // bitmap_init::@4 - __b4: - // [462] if(__bitmap_color_depth!=3) goto bitmap_init::@5 -- vbuz1_neq_vbuc1_then_la1 - lda #3 - cmp.z __bitmap_color_depth - bne __b5 - jmp __b11 - // bitmap_init::@11 - __b11: - // [463] bitmap_init::$26 = bitmap_init::x#10 << 1 -- vwuz1=vwuz2_rol_1 - lda.z x - asl - sta.z __26 - lda.z x+1 - rol - sta.z __26+1 - // [464] bitmap_init::$38 = __bitmap_plot_x + bitmap_init::$26 -- pwuz1=pwuc1_plus_vwuz1 - lda.z __38 - clc - adc #<__bitmap_plot_x - sta.z __38 - lda.z __38+1 - adc #>__bitmap_plot_x - sta.z __38+1 - // [465] *bitmap_init::$38 = bitmap_init::x#10 -- _deref_pwuz1=vwuz2 - ldy #0 - lda.z x - sta (__38),y - iny - lda.z x+1 - sta (__38),y - // [466] bitmap_init::$39 = __bitmap_plot_bitmask + bitmap_init::x#10 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitmask - sta.z __39 - lda.z x+1 - adc #>__bitmap_plot_bitmask - sta.z __39+1 - // [467] *bitmap_init::$39 = bitmap_init::bitmask#13 -- _deref_pbuz1=vbuz2 - lda.z bitmask - ldy #0 - sta (__39),y - // [468] bitmap_init::$40 = __bitmap_plot_bitshift + bitmap_init::x#10 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitshift - sta.z __40 - lda.z x+1 - adc #>__bitmap_plot_bitshift - sta.z __40+1 - // [469] *bitmap_init::$40 = (char)bitmap_init::bitshift#13 -- _deref_pbuz1=vbuz2 - lda.z bitshift - ldy #0 - sta (__40),y - jmp __b5 - // bitmap_init::@5 - __b5: - // [470] if(bitmap_init::bitshift#13>=0) goto bitmap_init::@6 -- vbsz1_ge_0_then_la1 - lda.z bitshift - cmp #0 - bpl __b6_from___b5 - jmp __b12 - // bitmap_init::@12 - __b12: - // [471] bitmap_init::bitshift#4 = bitshifts[__bitmap_color_depth] -- vbsz1=pbsc1_derefidx_vbuz2 - ldy.z __bitmap_color_depth - lda bitshifts,y - sta.z bitshift - // [472] phi from bitmap_init::@12 bitmap_init::@5 to bitmap_init::@6 [phi:bitmap_init::@12/bitmap_init::@5->bitmap_init::@6] - __b6_from___b12: - __b6_from___b5: - // [472] phi bitmap_init::bitshift#14 = bitmap_init::bitshift#4 [phi:bitmap_init::@12/bitmap_init::@5->bitmap_init::@6#0] -- register_copy - jmp __b6 - // bitmap_init::@6 - __b6: - // [473] if(bitmap_init::bitmask#13!=0) goto bitmap_init::@7 -- vbuz1_neq_0_then_la1 - lda.z bitmask - bne __b7_from___b6 - jmp __b13 - // bitmap_init::@13 - __b13: - // [474] bitmap_init::bitmask#4 = bitmasks[__bitmap_color_depth] -- vbuz1=pbuc1_derefidx_vbuz2 - ldy.z __bitmap_color_depth - lda bitmasks,y - sta.z bitmask - // [475] phi from bitmap_init::@13 bitmap_init::@6 to bitmap_init::@7 [phi:bitmap_init::@13/bitmap_init::@6->bitmap_init::@7] - __b7_from___b13: - __b7_from___b6: - // [475] phi bitmap_init::bitmask#16 = bitmap_init::bitmask#4 [phi:bitmap_init::@13/bitmap_init::@6->bitmap_init::@7#0] -- register_copy - jmp __b7 - // bitmap_init::@7 - __b7: - // [476] bitmap_init::x#1 = ++ bitmap_init::x#10 -- vwuz1=_inc_vwuz1 - inc.z x - bne !+ - inc.z x+1 - !: - // [477] if(bitmap_init::x#1!=$280) goto bitmap_init::@1 -- vwuz1_neq_vwuc1_then_la1 - lda.z x+1 - cmp #>$280 - bne __b1_from___b7 - lda.z x - cmp #<$280 - bne __b1_from___b7 - jmp __b14 - // bitmap_init::@14 - __b14: - // [478] bitmap_init::$3 = __bitmap_color_depth << 2 -- vbuaa=vbuz1_rol_2 - lda.z __bitmap_color_depth - asl - asl - // [479] bitmap_init::$4 = bitmap_init::$3 + __bitmap_hscale -- vbuaa=vbuaa_plus_vbuz1 - clc - adc.z __bitmap_hscale - // [480] bitmap_init::$27 = bitmap_init::$4 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [481] bitmap_init::hdelta#0 = hdeltas[bitmap_init::$27] -- vwuz1=pwuc1_derefidx_vbuaa - // This sets the right delta to skip a whole line based on the scale, depending on the color depth. - tay - lda hdeltas,y - sta.z hdelta - lda hdeltas+1,y - sta.z hdelta+1 - // [482] bitmap_init::yoffs#0 = __bitmap_address -- vduz1=vduz2 - // We start at the bitmap address; The plot_y contains the bitmap address embedded so we know where a line starts. - lda.z __bitmap_address - sta.z yoffs - lda.z __bitmap_address+1 - sta.z yoffs+1 - lda.z __bitmap_address+2 - sta.z yoffs+2 - lda.z __bitmap_address+3 - sta.z yoffs+3 - // [483] phi from bitmap_init::@14 to bitmap_init::@15 [phi:bitmap_init::@14->bitmap_init::@15] - __b15_from___b14: - // [483] phi bitmap_init::yoffs#2 = bitmap_init::yoffs#0 [phi:bitmap_init::@14->bitmap_init::@15#0] -- register_copy - // [483] phi bitmap_init::y#2 = 0 [phi:bitmap_init::@14->bitmap_init::@15#1] -- vwuz1=vwuc1 - lda #<0 - sta.z y - lda #>0 - sta.z y+1 - jmp __b15 - // [483] phi from bitmap_init::@15 to bitmap_init::@15 [phi:bitmap_init::@15->bitmap_init::@15] - __b15_from___b15: - // [483] phi bitmap_init::yoffs#2 = bitmap_init::yoffs#1 [phi:bitmap_init::@15->bitmap_init::@15#0] -- register_copy - // [483] phi bitmap_init::y#2 = bitmap_init::y#1 [phi:bitmap_init::@15->bitmap_init::@15#1] -- register_copy - jmp __b15 - // bitmap_init::@15 - __b15: - // [484] bitmap_init::$28 = bitmap_init::y#2 << 2 -- vwuz1=vwuz2_rol_2 - lda.z y - asl - sta.z __28 - lda.z y+1 - rol - sta.z __28+1 - asl.z __28 - rol.z __28+1 - // [485] bitmap_init::$41 = __bitmap_plot_y + bitmap_init::$28 -- pduz1=pduc1_plus_vwuz1 - lda.z __41 - clc - adc #<__bitmap_plot_y - sta.z __41 - lda.z __41+1 - adc #>__bitmap_plot_y - sta.z __41+1 - // [486] *bitmap_init::$41 = bitmap_init::yoffs#2 -- _deref_pduz1=vduz2 - ldy #0 - lda.z yoffs - sta (__41),y - iny - lda.z yoffs+1 - sta (__41),y - iny - lda.z yoffs+2 - sta (__41),y - iny - lda.z yoffs+3 - sta (__41),y - // [487] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + bitmap_init::hdelta#0 -- vduz1=vduz1_plus_vwuz2 - lda.z yoffs - clc - adc.z hdelta - sta.z yoffs - lda.z yoffs+1 - adc.z hdelta+1 - sta.z yoffs+1 - lda.z yoffs+2 - adc #0 - sta.z yoffs+2 - lda.z yoffs+3 - adc #0 - sta.z yoffs+3 - // [488] bitmap_init::y#1 = ++ bitmap_init::y#2 -- vwuz1=_inc_vwuz1 - inc.z y - bne !+ - inc.z y+1 - !: - // [489] if(bitmap_init::y#1!=$1e0) goto bitmap_init::@15 -- vwuz1_neq_vwuc1_then_la1 - lda.z y+1 - cmp #>$1e0 - bne __b15_from___b15 - lda.z y - cmp #<$1e0 - bne __b15_from___b15 - jmp __breturn - // bitmap_init::@return - __breturn: - // [490] return - rts -} - // bitmap_clear -// Clear all graphics on the bitmap -bitmap_clear: { - .label vdelta = $a1 - .label hdelta = $9d - .label count = $72 - .label vdest = $91 - // [491] bitmap_clear::$6 = __bitmap_vscale << 1 -- vbuaa=vbuz1_rol_1 - lda.z __bitmap_vscale - asl - // [492] bitmap_clear::vdelta#0 = vdeltas[bitmap_clear::$6] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda vdeltas,y - sta.z vdelta - lda vdeltas+1,y - sta.z vdelta+1 - // [493] bitmap_clear::$0 = __bitmap_color_depth << 2 -- vbuaa=vbuz1_rol_2 - lda.z __bitmap_color_depth - asl - asl - // [494] bitmap_clear::$1 = bitmap_clear::$0 + __bitmap_hscale -- vbuaa=vbuaa_plus_vbuz1 - clc - adc.z __bitmap_hscale - // [495] bitmap_clear::$7 = bitmap_clear::$1 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [496] bitmap_clear::hdelta#0 = hdeltas[bitmap_clear::$7] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda hdeltas,y - sta.z hdelta - lda hdeltas+1,y - sta.z hdelta+1 - // [497] mul16u::a#0 = bitmap_clear::hdelta#0 -- vwuz1=vwuz2 - lda.z hdelta - sta.z mul16u.a - lda.z hdelta+1 - sta.z mul16u.a+1 - // [498] mul16u::b#0 = bitmap_clear::vdelta#0 - // [499] call mul16u - jsr mul16u - // [500] mul16u::return#0 = mul16u::res#2 -- vduz1=vduz2 - lda.z mul16u.res - sta.z mul16u.return - lda.z mul16u.res+1 - sta.z mul16u.return+1 - lda.z mul16u.res+2 - sta.z mul16u.return+2 - lda.z mul16u.res+3 - sta.z mul16u.return+3 - jmp __b1 - // bitmap_clear::@1 - __b1: - // [501] bitmap_clear::count#0 = mul16u::return#0 - // [502] bitmap_clear::vbank#0 = byte2 __bitmap_address -- vbuxx=_byte2_vduz1 - ldx.z __bitmap_address+2 - // [503] bitmap_clear::vdest#0 = word0 __bitmap_address -- vwuz1=_word0_vduz2 - lda.z __bitmap_address - sta.z vdest - lda.z __bitmap_address+1 - sta.z vdest+1 - // [504] memset_vram::vbank#0 = bitmap_clear::vbank#0 - // [505] memset_vram::vdest#0 = (void *)bitmap_clear::vdest#0 - // [506] memset_vram::num#0 = bitmap_clear::count#0 - // [507] call memset_vram - jsr memset_vram - jmp __breturn - // bitmap_clear::@return - __breturn: - // [508] return - rts -} - // kbhit -// Return true if there's a key waiting, return false if not -kbhit: { - .label chptr = ch - .label IN_DEV = $28a - // Current input device number - .label GETIN = $ffe4 - .label ch = $32 - // [509] kbhit::ch = 0 -- vbuz1=vbuc1 - lda #0 - sta.z ch - // kickasm( uses kbhit::chptr uses kbhit::IN_DEV uses kbhit::GETIN) {{ jsr _kbhit bne L3 jmp continue1 .var via1 = $9f60 //VIA#1 .var d1pra = via1+1 _kbhit: ldy d1pra // The count of keys pressed is stored in RAM bank 0. stz d1pra // Set d1pra to zero to access RAM bank 0. lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). sty d1pra // Set d1pra to previous value. rts L3: ldy IN_DEV // Save current input device stz IN_DEV // Keyboard phy jsr GETIN // Read char, and return in .A ply sta chptr // Store the character read in ch sty IN_DEV // Restore input device ldx #>$0000 rts continue1: nop }} - // CBM GETIN API - jsr _kbhit - bne L3 - - jmp continue1 - - .var via1 = $9f60 //VIA#1 - .var d1pra = via1+1 - - _kbhit: - ldy d1pra // The count of keys pressed is stored in RAM bank 0. - stz d1pra // Set d1pra to zero to access RAM bank 0. - lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). - sty d1pra // Set d1pra to previous value. - rts - - L3: - ldy IN_DEV // Save current input device - stz IN_DEV // Keyboard - phy - jsr GETIN // Read char, and return in .A - ply - sta chptr // Store the character read in ch - sty IN_DEV // Restore input device - ldx #>$0000 - rts - - continue1: - nop - - // [511] kbhit::return#0 = kbhit::ch -- vbuaa=vbuz1 - lda.z ch - jmp __breturn - // kbhit::@return - __breturn: - // [512] kbhit::return#1 = kbhit::return#0 - // [513] return - rts -} - // bitmap_line -// Draw a line on the bitmap -// void bitmap_line(__zp(6) unsigned int x0, __zp($a) unsigned int x1, __zp(8) unsigned int y0, __zp(2) unsigned int y1, __register(X) char c) -bitmap_line: { - .label xd = $22 - .label yd = $29 - .label yd_1 = $27 - .label x0 = 6 - .label x1 = $a - .label y0 = 8 - .label y1 = 2 - // [515] if(bitmap_line::x0#10bitmap_line_ydxi] - bitmap_line_ydxi_from___b4: - // [673] phi bitmap_line_ydxi::y1#6 = bitmap_line_ydxi::y1#0 [phi:bitmap_line::@4->bitmap_line_ydxi#0] -- register_copy - // [673] phi bitmap_line_ydxi::yd#5 = bitmap_line_ydxi::yd#0 [phi:bitmap_line::@4->bitmap_line_ydxi#1] -- register_copy - // [673] phi bitmap_line_ydxi::c#3 = bitmap_line_ydxi::c#0 [phi:bitmap_line::@4->bitmap_line_ydxi#2] -- register_copy - // [673] phi bitmap_line_ydxi::y#6 = bitmap_line_ydxi::y#0 [phi:bitmap_line::@4->bitmap_line_ydxi#3] -- register_copy - // [673] phi bitmap_line_ydxi::x#5 = bitmap_line_ydxi::x#0 [phi:bitmap_line::@4->bitmap_line_ydxi#4] -- register_copy - // [673] phi bitmap_line_ydxi::xd#2 = bitmap_line_ydxi::xd#0 [phi:bitmap_line::@4->bitmap_line_ydxi#5] -- register_copy - jsr bitmap_line_ydxi - jmp __breturn - // bitmap_line::@return - __breturn: - // [527] return - rts - // bitmap_line::@8 - __b8: - // [528] bitmap_line_xdyi::x#0 = bitmap_line::x1#10 -- vwuz1=vwuz2 - lda.z x1 - sta.z bitmap_line_xdyi.x - lda.z x1+1 - sta.z bitmap_line_xdyi.x+1 - // [529] bitmap_line_xdyi::y#0 = bitmap_line::y1#10 -- vwuz1=vwuz2 - lda.z y1 - sta.z bitmap_line_xdyi.y - lda.z y1+1 - sta.z bitmap_line_xdyi.y+1 - // [530] bitmap_line_xdyi::x1#0 = bitmap_line::x0#10 - // [531] bitmap_line_xdyi::xd#0 = bitmap_line::xd#2 - // [532] bitmap_line_xdyi::yd#0 = bitmap_line::yd#2 - // [533] bitmap_line_xdyi::c#0 = bitmap_line::c#10 -- vbuz1=vbuxx - stx.z bitmap_line_xdyi.c - // [534] call bitmap_line_xdyi - // [689] phi from bitmap_line::@8 to bitmap_line_xdyi [phi:bitmap_line::@8->bitmap_line_xdyi] - bitmap_line_xdyi_from___b8: - // [689] phi bitmap_line_xdyi::x1#6 = bitmap_line_xdyi::x1#0 [phi:bitmap_line::@8->bitmap_line_xdyi#0] -- register_copy - // [689] phi bitmap_line_xdyi::xd#5 = bitmap_line_xdyi::xd#0 [phi:bitmap_line::@8->bitmap_line_xdyi#1] -- register_copy - // [689] phi bitmap_line_xdyi::c#3 = bitmap_line_xdyi::c#0 [phi:bitmap_line::@8->bitmap_line_xdyi#2] -- register_copy - // [689] phi bitmap_line_xdyi::y#5 = bitmap_line_xdyi::y#0 [phi:bitmap_line::@8->bitmap_line_xdyi#3] -- register_copy - // [689] phi bitmap_line_xdyi::x#6 = bitmap_line_xdyi::x#0 [phi:bitmap_line::@8->bitmap_line_xdyi#4] -- register_copy - // [689] phi bitmap_line_xdyi::yd#2 = bitmap_line_xdyi::yd#0 [phi:bitmap_line::@8->bitmap_line_xdyi#5] -- register_copy - jsr bitmap_line_xdyi - jmp __breturn - // bitmap_line::@7 - __b7: - // [535] bitmap_line::yd#1 = bitmap_line::y1#10 - bitmap_line::y0#10 -- vwuz1=vwuz2_minus_vwuz3 - lda.z y1 - sec - sbc.z y0 - sta.z yd - lda.z y1+1 - sbc.z y0+1 - sta.z yd+1 - // [536] if(bitmap_line::yd#1bitmap_line_ydxd] - bitmap_line_ydxd_from___b10: - // [705] phi bitmap_line_ydxd::y1#6 = bitmap_line_ydxd::y1#0 [phi:bitmap_line::@10->bitmap_line_ydxd#0] -- register_copy - // [705] phi bitmap_line_ydxd::yd#5 = bitmap_line_ydxd::yd#0 [phi:bitmap_line::@10->bitmap_line_ydxd#1] -- register_copy - // [705] phi bitmap_line_ydxd::c#3 = bitmap_line_ydxd::c#0 [phi:bitmap_line::@10->bitmap_line_ydxd#2] -- register_copy - // [705] phi bitmap_line_ydxd::y#7 = bitmap_line_ydxd::y#0 [phi:bitmap_line::@10->bitmap_line_ydxd#3] -- register_copy - // [705] phi bitmap_line_ydxd::x#5 = bitmap_line_ydxd::x#0 [phi:bitmap_line::@10->bitmap_line_ydxd#4] -- register_copy - // [705] phi bitmap_line_ydxd::xd#2 = bitmap_line_ydxd::xd#0 [phi:bitmap_line::@10->bitmap_line_ydxd#5] -- register_copy - jsr bitmap_line_ydxd - jmp __breturn - // bitmap_line::@9 - __b9: - // [544] bitmap_line_xdyd::x#0 = bitmap_line::x1#10 -- vwuz1=vwuz2 - lda.z x1 - sta.z bitmap_line_xdyd.x - lda.z x1+1 - sta.z bitmap_line_xdyd.x+1 - // [545] bitmap_line_xdyd::y#0 = bitmap_line::y1#10 -- vwuz1=vwuz2 - lda.z y1 - sta.z bitmap_line_xdyd.y - lda.z y1+1 - sta.z bitmap_line_xdyd.y+1 - // [546] bitmap_line_xdyd::x1#0 = bitmap_line::x0#10 - // [547] bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 - // [548] bitmap_line_xdyd::yd#0 = bitmap_line::yd#1 - // [549] bitmap_line_xdyd::c#0 = bitmap_line::c#10 -- vbuz1=vbuxx - stx.z bitmap_line_xdyd.c - // [550] call bitmap_line_xdyd - // [721] phi from bitmap_line::@9 to bitmap_line_xdyd [phi:bitmap_line::@9->bitmap_line_xdyd] - bitmap_line_xdyd_from___b9: - // [721] phi bitmap_line_xdyd::x1#6 = bitmap_line_xdyd::x1#0 [phi:bitmap_line::@9->bitmap_line_xdyd#0] -- register_copy - // [721] phi bitmap_line_xdyd::xd#5 = bitmap_line_xdyd::xd#0 [phi:bitmap_line::@9->bitmap_line_xdyd#1] -- register_copy - // [721] phi bitmap_line_xdyd::c#3 = bitmap_line_xdyd::c#0 [phi:bitmap_line::@9->bitmap_line_xdyd#2] -- register_copy - // [721] phi bitmap_line_xdyd::y#5 = bitmap_line_xdyd::y#0 [phi:bitmap_line::@9->bitmap_line_xdyd#3] -- register_copy - // [721] phi bitmap_line_xdyd::x#6 = bitmap_line_xdyd::x#0 [phi:bitmap_line::@9->bitmap_line_xdyd#4] -- register_copy - // [721] phi bitmap_line_xdyd::yd#2 = bitmap_line_xdyd::yd#0 [phi:bitmap_line::@9->bitmap_line_xdyd#5] -- register_copy - jsr bitmap_line_xdyd - jmp __breturn - // bitmap_line::@1 - __b1: - // [551] bitmap_line::xd#1 = bitmap_line::x1#10 - bitmap_line::x0#10 -- vwuz1=vwuz2_minus_vwuz3 - lda.z x1 - sec - sbc.z x0 - sta.z xd - lda.z x1+1 - sbc.z x0+1 - sta.z xd+1 - // [552] if(bitmap_line::y0#10bitmap_line_ydxd] - bitmap_line_ydxd_from___b6: - // [705] phi bitmap_line_ydxd::y1#6 = bitmap_line_ydxd::y1#1 [phi:bitmap_line::@6->bitmap_line_ydxd#0] -- register_copy - // [705] phi bitmap_line_ydxd::yd#5 = bitmap_line_ydxd::yd#1 [phi:bitmap_line::@6->bitmap_line_ydxd#1] -- register_copy - // [705] phi bitmap_line_ydxd::c#3 = bitmap_line_ydxd::c#1 [phi:bitmap_line::@6->bitmap_line_ydxd#2] -- register_copy - // [705] phi bitmap_line_ydxd::y#7 = bitmap_line_ydxd::y#1 [phi:bitmap_line::@6->bitmap_line_ydxd#3] -- register_copy - // [705] phi bitmap_line_ydxd::x#5 = bitmap_line_ydxd::x#1 [phi:bitmap_line::@6->bitmap_line_ydxd#4] -- register_copy - // [705] phi bitmap_line_ydxd::xd#2 = bitmap_line_ydxd::xd#1 [phi:bitmap_line::@6->bitmap_line_ydxd#5] -- register_copy - jsr bitmap_line_ydxd - jmp __breturn - // bitmap_line::@12 - __b12: - // [562] bitmap_line_xdyd::x#1 = bitmap_line::x0#10 -- vwuz1=vwuz2 - lda.z x0 - sta.z bitmap_line_xdyd.x - lda.z x0+1 - sta.z bitmap_line_xdyd.x+1 - // [563] bitmap_line_xdyd::y#1 = bitmap_line::y0#10 - // [564] bitmap_line_xdyd::x1#1 = bitmap_line::x1#10 -- vwuz1=vwuz2 - lda.z x1 - sta.z bitmap_line_xdyd.x1 - lda.z x1+1 - sta.z bitmap_line_xdyd.x1+1 - // [565] bitmap_line_xdyd::xd#1 = bitmap_line::xd#1 - // [566] bitmap_line_xdyd::yd#1 = bitmap_line::yd#10 - // [567] bitmap_line_xdyd::c#1 = bitmap_line::c#10 -- vbuz1=vbuxx - stx.z bitmap_line_xdyd.c - // [568] call bitmap_line_xdyd - // [721] phi from bitmap_line::@12 to bitmap_line_xdyd [phi:bitmap_line::@12->bitmap_line_xdyd] - bitmap_line_xdyd_from___b12: - // [721] phi bitmap_line_xdyd::x1#6 = bitmap_line_xdyd::x1#1 [phi:bitmap_line::@12->bitmap_line_xdyd#0] -- register_copy - // [721] phi bitmap_line_xdyd::xd#5 = bitmap_line_xdyd::xd#1 [phi:bitmap_line::@12->bitmap_line_xdyd#1] -- register_copy - // [721] phi bitmap_line_xdyd::c#3 = bitmap_line_xdyd::c#1 [phi:bitmap_line::@12->bitmap_line_xdyd#2] -- register_copy - // [721] phi bitmap_line_xdyd::y#5 = bitmap_line_xdyd::y#1 [phi:bitmap_line::@12->bitmap_line_xdyd#3] -- register_copy - // [721] phi bitmap_line_xdyd::x#6 = bitmap_line_xdyd::x#1 [phi:bitmap_line::@12->bitmap_line_xdyd#4] -- register_copy - // [721] phi bitmap_line_xdyd::yd#2 = bitmap_line_xdyd::yd#1 [phi:bitmap_line::@12->bitmap_line_xdyd#5] -- register_copy - jsr bitmap_line_xdyd - jmp __breturn - // bitmap_line::@11 - __b11: - // [569] bitmap_line::yd#11 = bitmap_line::y1#10 - bitmap_line::y0#10 -- vwuz1=vwuz2_minus_vwuz3 - lda.z y1 - sec - sbc.z y0 - sta.z yd_1 - lda.z y1+1 - sbc.z y0+1 - sta.z yd_1+1 - // [570] if(bitmap_line::yd#11bitmap_line_ydxi] - bitmap_line_ydxi_from___b14: - // [673] phi bitmap_line_ydxi::y1#6 = bitmap_line_ydxi::y1#1 [phi:bitmap_line::@14->bitmap_line_ydxi#0] -- register_copy - // [673] phi bitmap_line_ydxi::yd#5 = bitmap_line_ydxi::yd#1 [phi:bitmap_line::@14->bitmap_line_ydxi#1] -- register_copy - // [673] phi bitmap_line_ydxi::c#3 = bitmap_line_ydxi::c#1 [phi:bitmap_line::@14->bitmap_line_ydxi#2] -- register_copy - // [673] phi bitmap_line_ydxi::y#6 = bitmap_line_ydxi::y#1 [phi:bitmap_line::@14->bitmap_line_ydxi#3] -- register_copy - // [673] phi bitmap_line_ydxi::x#5 = bitmap_line_ydxi::x#1 [phi:bitmap_line::@14->bitmap_line_ydxi#4] -- register_copy - // [673] phi bitmap_line_ydxi::xd#2 = bitmap_line_ydxi::xd#1 [phi:bitmap_line::@14->bitmap_line_ydxi#5] -- register_copy - jsr bitmap_line_ydxi - jmp __breturn - // bitmap_line::@13 - __b13: - // [578] bitmap_line_xdyi::x#1 = bitmap_line::x0#10 -- vwuz1=vwuz2 - lda.z x0 - sta.z bitmap_line_xdyi.x - lda.z x0+1 - sta.z bitmap_line_xdyi.x+1 - // [579] bitmap_line_xdyi::y#1 = bitmap_line::y0#10 - // [580] bitmap_line_xdyi::x1#1 = bitmap_line::x1#10 -- vwuz1=vwuz2 - lda.z x1 - sta.z bitmap_line_xdyi.x1 - lda.z x1+1 - sta.z bitmap_line_xdyi.x1+1 - // [581] bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 - // [582] bitmap_line_xdyi::yd#1 = bitmap_line::yd#11 - // [583] bitmap_line_xdyi::c#1 = bitmap_line::c#10 -- vbuz1=vbuxx - stx.z bitmap_line_xdyi.c - // [584] call bitmap_line_xdyi - // [689] phi from bitmap_line::@13 to bitmap_line_xdyi [phi:bitmap_line::@13->bitmap_line_xdyi] - bitmap_line_xdyi_from___b13: - // [689] phi bitmap_line_xdyi::x1#6 = bitmap_line_xdyi::x1#1 [phi:bitmap_line::@13->bitmap_line_xdyi#0] -- register_copy - // [689] phi bitmap_line_xdyi::xd#5 = bitmap_line_xdyi::xd#1 [phi:bitmap_line::@13->bitmap_line_xdyi#1] -- register_copy - // [689] phi bitmap_line_xdyi::c#3 = bitmap_line_xdyi::c#1 [phi:bitmap_line::@13->bitmap_line_xdyi#2] -- register_copy - // [689] phi bitmap_line_xdyi::y#5 = bitmap_line_xdyi::y#1 [phi:bitmap_line::@13->bitmap_line_xdyi#3] -- register_copy - // [689] phi bitmap_line_xdyi::x#6 = bitmap_line_xdyi::x#1 [phi:bitmap_line::@13->bitmap_line_xdyi#4] -- register_copy - // [689] phi bitmap_line_xdyi::yd#2 = bitmap_line_xdyi::yd#1 [phi:bitmap_line::@13->bitmap_line_xdyi#5] -- register_copy - jsr bitmap_line_xdyi - jmp __breturn -} - // rand -// Returns a pseudo-random number in the range of 0 to RAND_MAX (65535) -// Uses an xorshift pseudorandom number generator that hits all different values -// Information https://en.wikipedia.org/wiki/Xorshift -// Source http://www.retroprogramming.com/2017/07/xorshift-pseudorandom-numbers-in-z80.html -rand: { - .label __0 = $61 - .label __1 = $63 - .label __2 = $65 - .label return = $6e - // [586] rand::$0 = rand_state#13 << 7 -- vwuz1=vwuz2_rol_7 - lda.z rand_state+1 - lsr - lda.z rand_state - ror - sta.z __0+1 - lda #0 - ror - sta.z __0 - // [587] rand_state#0 = rand_state#13 ^ rand::$0 -- vwuz1=vwuz1_bxor_vwuz2 - lda.z rand_state - eor.z __0 - sta.z rand_state - lda.z rand_state+1 - eor.z __0+1 - sta.z rand_state+1 - // [588] rand::$1 = rand_state#0 >> 9 -- vwuz1=vwuz2_ror_9 - lda.z rand_state+1 - lsr - sta.z __1 - lda #0 - sta.z __1+1 - // [589] rand_state#1 = rand_state#0 ^ rand::$1 -- vwuz1=vwuz1_bxor_vwuz2 - lda.z rand_state - eor.z __1 - sta.z rand_state - lda.z rand_state+1 - eor.z __1+1 - sta.z rand_state+1 - // [590] rand::$2 = rand_state#1 << 8 -- vwuz1=vwuz2_rol_8 - lda.z rand_state - sta.z __2+1 - lda #0 - sta.z __2 - // [591] rand_state#14 = rand_state#1 ^ rand::$2 -- vwuz1=vwuz1_bxor_vwuz2 - lda.z rand_state - eor.z __2 - sta.z rand_state - lda.z rand_state+1 - eor.z __2+1 - sta.z rand_state+1 - // [592] rand::return#0 = rand_state#14 -- vwuz1=vwuz2 - lda.z rand_state - sta.z return - lda.z rand_state+1 - sta.z return+1 - jmp __breturn - // rand::@return - __breturn: - // [593] return - rts -} - // modr16u -// Performs modulo on two 16 bit unsigned ints and an initial remainder -// Returns the remainder. -// Implemented using simple binary division -// __zp($76) unsigned int modr16u(__zp(2) unsigned int dividend, __zp($8f) unsigned int divisor, unsigned int rem) -modr16u: { - .label return = $76 - .label dividend = 2 - .label divisor = $8f - // [595] divr16u::dividend#1 = modr16u::dividend#4 - // [596] divr16u::divisor#0 = modr16u::divisor#4 -- vwuz1=vwuz2 - lda.z divisor - sta.z divr16u.divisor - lda.z divisor+1 - sta.z divr16u.divisor+1 - // [597] call divr16u - // [737] phi from modr16u to divr16u [phi:modr16u->divr16u] - divr16u_from_modr16u: - jsr divr16u - jmp __b1 - // modr16u::@1 - __b1: - // [598] modr16u::return#0 = rem16u#0 -- vwuz1=vwuz2 - lda.z rem16u - sta.z return - lda.z rem16u+1 - sta.z return+1 - jmp __breturn - // modr16u::@return - __breturn: - // [599] return - rts -} - // vera_layer_set_text_color_mode -// Set the configuration of the layer text color mode. -// - layer: Value of 0 or 1. -// - color_mode: Specifies the color mode to be VERA_LAYER_CONFIG_16 or VERA_LAYER_CONFIG_256 for text mode. -// void vera_layer_set_text_color_mode(char layer, char color_mode) -vera_layer_set_text_color_mode: { - .label addr = $25 - // [600] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) -- pbuz1=_deref_qbuc1 - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER - sta.z addr - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER+1 - sta.z addr+1 - // [601] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C -- _deref_pbuz1=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_CONFIG_256C^$ff - ldy #0 - and (addr),y - ldy #0 - sta (addr),y - // [602] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 -- _deref_pbuz1=_deref_pbuz1 - ldy #0 - lda (addr),y - ldy #0 - sta (addr),y - jmp __breturn - // vera_layer_set_text_color_mode::@return - __breturn: - // [603] return - rts -} - // vera_layer_get_mapbase_bank -// Get the map base bank of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Bank in vera vram. -// __register(A) char vera_layer_get_mapbase_bank(__register(X) char layer) -vera_layer_get_mapbase_bank: { - // [604] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_mapbase_bank,x - jmp __breturn - // vera_layer_get_mapbase_bank::@return - __breturn: - // [605] return - rts -} - // vera_layer_get_mapbase_offset -// Get the map base lower 16-bit address (offset) of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Offset in vera vram of the specified bank. -// __zp($8d) unsigned int vera_layer_get_mapbase_offset(__register(A) char layer) -vera_layer_get_mapbase_offset: { - .label return = $8d - // [606] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [607] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda vera_mapbase_offset,y - sta.z return - lda vera_mapbase_offset+1,y - sta.z return+1 - jmp __breturn - // vera_layer_get_mapbase_offset::@return - __breturn: - // [608] return - rts -} - // vera_layer_get_rowshift -// Get the bit shift value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Rowshift value to calculate fast from a y value to line offset in tile mode. -// __register(A) char vera_layer_get_rowshift(__register(X) char layer) -vera_layer_get_rowshift: { - // [609] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_rowshift,x - jmp __breturn - // vera_layer_get_rowshift::@return - __breturn: - // [610] return - rts -} - // vera_layer_get_rowskip -// Get the value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Skip value to calculate fast from a y value to line offset in tile mode. -// __zp($7f) unsigned int vera_layer_get_rowskip(__register(A) char layer) -vera_layer_get_rowskip: { - .label return = $7f - // [611] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [612] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda vera_layer_rowskip,y - sta.z return - lda vera_layer_rowskip+1,y - sta.z return+1 - jmp __breturn - // vera_layer_get_rowskip::@return - __breturn: - // [613] return - rts -} - // cscroll -// Scroll the entire screen if the cursor is beyond the last line -cscroll: { - // [614] if(conio_cursor_y[conio_screen_layer]cscroll::@3] - __b3_from___b2: - jmp __b3 - // cscroll::@3 - __b3: - jmp __breturn - // cscroll::@return - __breturn: - // [618] return - rts - // [619] phi from cscroll::@1 to cscroll::@4 [phi:cscroll::@1->cscroll::@4] - __b4_from___b1: - jmp __b4 - // cscroll::@4 - __b4: - // [620] call insertup - jsr insertup - jmp __b5 - // cscroll::@5 - __b5: - // [621] gotoxy::y#2 = conio_screen_height - 1 -- vbuxx=vbuz1_minus_1 - ldx.z conio_screen_height - dex - // [622] call gotoxy - // [241] phi from cscroll::@5 to gotoxy [phi:cscroll::@5->gotoxy] - gotoxy_from___b5: - // [241] phi gotoxy::y#7 = gotoxy::y#2 [phi:cscroll::@5->gotoxy#0] -- register_copy - jsr gotoxy - jmp __breturn -} - // vera_layer_set_config -// Set the configuration of the layer. -// - layer: Value of 0 or 1. -// - config: Specifies the modes which are specified using T256C / 'Bitmap Mode' / 'Color Depth'. -// void vera_layer_set_config(__register(A) char layer, __register(X) char config) -vera_layer_set_config: { - .label addr = $25 - // [624] vera_layer_set_config::$0 = vera_layer_set_config::layer#2 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [625] vera_layer_set_config::addr#0 = vera_layer_config[vera_layer_set_config::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // [626] *vera_layer_set_config::addr#0 = vera_layer_set_config::config#2 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - jmp __breturn - // vera_layer_set_config::@return - __breturn: - // [627] return - rts -} - // vera_layer_set_tilebase -// Set the base of the tiles for the layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - tilebase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// void vera_layer_set_tilebase(__register(A) char layer, __register(X) char tilebase) -vera_layer_set_tilebase: { - .label addr = $25 - // [629] vera_layer_set_tilebase::$0 = vera_layer_set_tilebase::layer#2 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [630] vera_layer_set_tilebase::addr#0 = vera_layer_tilebase[vera_layer_set_tilebase::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_tilebase,y - sta.z addr - lda vera_layer_tilebase+1,y - sta.z addr+1 - // [631] *vera_layer_set_tilebase::addr#0 = vera_layer_set_tilebase::tilebase#2 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - jmp __breturn - // vera_layer_set_tilebase::@return - __breturn: - // [632] return - rts -} - // vera_layer_get_backcolor -// Get the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_backcolor(__register(X) char layer) -vera_layer_get_backcolor: { - // [633] vera_layer_get_backcolor::return#1 = vera_layer_backcolor[vera_layer_get_backcolor::layer#0] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_backcolor,x - jmp __breturn - // vera_layer_get_backcolor::@return - __breturn: - // [634] return - rts -} - // vera_layer_get_textcolor -// Get the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_textcolor(__register(X) char layer) -vera_layer_get_textcolor: { - // [635] vera_layer_get_textcolor::return#1 = vera_layer_textcolor[vera_layer_get_textcolor::layer#0] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_textcolor,x - jmp __breturn - // vera_layer_get_textcolor::@return - __breturn: - // [636] return - rts -} - // vera_display_get_hscale -vera_display_get_hscale: { - .const scale = 0 - // [638] phi from vera_display_get_hscale to vera_display_get_hscale::@1 [phi:vera_display_get_hscale->vera_display_get_hscale::@1] - __b1_from_vera_display_get_hscale: - // [638] phi vera_display_get_hscale::s#2 = 1 [phi:vera_display_get_hscale->vera_display_get_hscale::@1#0] -- vbuxx=vbuc1 - ldx #1 - jmp __b1 - // [638] phi from vera_display_get_hscale::@2 to vera_display_get_hscale::@1 [phi:vera_display_get_hscale::@2->vera_display_get_hscale::@1] - __b1_from___b2: - // [638] phi vera_display_get_hscale::s#2 = vera_display_get_hscale::s#1 [phi:vera_display_get_hscale::@2->vera_display_get_hscale::@1#0] -- register_copy - jmp __b1 - // vera_display_get_hscale::@1 - __b1: - // [639] if(*VERA_DC_HSCALE!=vera_display_get_hscale::hscale[vera_display_get_hscale::s#2]) goto vera_display_get_hscale::@2 -- _deref_pbuc1_neq_pbuc2_derefidx_vbuxx_then_la1 - lda hscale,x - cmp VERA_DC_HSCALE - bne __b2 - // [642] phi from vera_display_get_hscale::@1 to vera_display_get_hscale::@3 [phi:vera_display_get_hscale::@1->vera_display_get_hscale::@3] - __b3_from___b1: - // [642] phi vera_display_get_hscale::return#0 = vera_display_get_hscale::s#2 [phi:vera_display_get_hscale::@1->vera_display_get_hscale::@3#0] -- register_copy - jmp __b3 - // vera_display_get_hscale::@2 - __b2: - // [640] vera_display_get_hscale::s#1 = ++ vera_display_get_hscale::s#2 -- vbuxx=_inc_vbuxx - inx - // [641] if(vera_display_get_hscale::s#1!=4) goto vera_display_get_hscale::@1 -- vbuxx_neq_vbuc1_then_la1 - cpx #4 - bne __b1_from___b2 - // [642] phi from vera_display_get_hscale::@2 to vera_display_get_hscale::@3 [phi:vera_display_get_hscale::@2->vera_display_get_hscale::@3] - __b3_from___b2: - // [642] phi vera_display_get_hscale::return#0 = vera_display_get_hscale::scale#0 [phi:vera_display_get_hscale::@2->vera_display_get_hscale::@3#0] -- vbuxx=vbuc1 - ldx #scale - jmp __b3 - // vera_display_get_hscale::@3 - __b3: - jmp __breturn - // vera_display_get_hscale::@return - __breturn: - // [643] return - rts - .segment Data - hscale: .byte 0, $80, $40, $20 -} -.segment Code - // vera_display_get_vscale -vera_display_get_vscale: { - .const scale = 0 - // [645] phi from vera_display_get_vscale to vera_display_get_vscale::@1 [phi:vera_display_get_vscale->vera_display_get_vscale::@1] - __b1_from_vera_display_get_vscale: - // [645] phi vera_display_get_vscale::s#2 = 1 [phi:vera_display_get_vscale->vera_display_get_vscale::@1#0] -- vbuxx=vbuc1 - ldx #1 - jmp __b1 - // [645] phi from vera_display_get_vscale::@2 to vera_display_get_vscale::@1 [phi:vera_display_get_vscale::@2->vera_display_get_vscale::@1] - __b1_from___b2: - // [645] phi vera_display_get_vscale::s#2 = vera_display_get_vscale::s#1 [phi:vera_display_get_vscale::@2->vera_display_get_vscale::@1#0] -- register_copy - jmp __b1 - // vera_display_get_vscale::@1 - __b1: - // [646] if(*VERA_DC_VSCALE!=vera_display_get_vscale::vscale[vera_display_get_vscale::s#2]) goto vera_display_get_vscale::@2 -- _deref_pbuc1_neq_pbuc2_derefidx_vbuxx_then_la1 - lda vscale,x - cmp VERA_DC_VSCALE - bne __b2 - // [649] phi from vera_display_get_vscale::@1 to vera_display_get_vscale::@3 [phi:vera_display_get_vscale::@1->vera_display_get_vscale::@3] - __b3_from___b1: - // [649] phi vera_display_get_vscale::return#0 = vera_display_get_vscale::s#2 [phi:vera_display_get_vscale::@1->vera_display_get_vscale::@3#0] -- register_copy - jmp __b3 - // vera_display_get_vscale::@2 - __b2: - // [647] vera_display_get_vscale::s#1 = ++ vera_display_get_vscale::s#2 -- vbuxx=_inc_vbuxx - inx - // [648] if(vera_display_get_vscale::s#1!=4) goto vera_display_get_vscale::@1 -- vbuxx_neq_vbuc1_then_la1 - cpx #4 - bne __b1_from___b2 - // [649] phi from vera_display_get_vscale::@2 to vera_display_get_vscale::@3 [phi:vera_display_get_vscale::@2->vera_display_get_vscale::@3] - __b3_from___b2: - // [649] phi vera_display_get_vscale::return#0 = vera_display_get_vscale::scale#0 [phi:vera_display_get_vscale::@2->vera_display_get_vscale::@3#0] -- vbuxx=vbuc1 - ldx #scale - jmp __b3 - // vera_display_get_vscale::@3 - __b3: - jmp __breturn - // vera_display_get_vscale::@return - __breturn: - // [650] return - rts - .segment Data - vscale: .byte 0, $80, $40, $20 -} -.segment Code - // mul16u -// Perform binary multiplication of two unsigned 16-bit unsigned ints into a 32-bit unsigned long -// __zp($72) unsigned long mul16u(__zp(2) unsigned int a, __zp($a1) unsigned int b) -mul16u: { - .label a = 2 - .label b = $a1 - .label return = $72 - .label mb = $1a - .label res = $10 - // [651] mul16u::mb#0 = (unsigned long)mul16u::b#0 -- vduz1=_dword_vwuz2 - lda.z b - sta.z mb - lda.z b+1 - sta.z mb+1 - lda #0 - sta.z mb+2 - sta.z mb+3 - // [652] phi from mul16u to mul16u::@1 [phi:mul16u->mul16u::@1] - __b1_from_mul16u: - // [652] phi mul16u::mb#2 = mul16u::mb#0 [phi:mul16u->mul16u::@1#0] -- register_copy - // [652] phi mul16u::res#2 = 0 [phi:mul16u->mul16u::@1#1] -- vduz1=vduc1 - lda #<0 - sta.z res - lda #>0 - sta.z res+1 - lda #<0>>$10 - sta.z res+2 - lda #>0>>$10 - sta.z res+3 - // [652] phi mul16u::a#2 = mul16u::a#0 [phi:mul16u->mul16u::@1#2] -- register_copy - jmp __b1 - // mul16u::@1 - __b1: - // [653] if(mul16u::a#2!=0) goto mul16u::@2 -- vwuz1_neq_0_then_la1 - lda.z a - ora.z a+1 - bne __b2 - jmp __breturn - // mul16u::@return - __breturn: - // [654] return - rts - // mul16u::@2 - __b2: - // [655] mul16u::$1 = mul16u::a#2 & 1 -- vbuaa=vwuz1_band_vbuc1 - lda #1 - and.z a - // [656] if(mul16u::$1==0) goto mul16u::@3 -- vbuaa_eq_0_then_la1 - cmp #0 - beq __b3_from___b2 - jmp __b4 - // mul16u::@4 - __b4: - // [657] mul16u::res#1 = mul16u::res#2 + mul16u::mb#2 -- vduz1=vduz1_plus_vduz2 - clc - lda.z res - adc.z mb - sta.z res - lda.z res+1 - adc.z mb+1 - sta.z res+1 - lda.z res+2 - adc.z mb+2 - sta.z res+2 - lda.z res+3 - adc.z mb+3 - sta.z res+3 - // [658] phi from mul16u::@2 mul16u::@4 to mul16u::@3 [phi:mul16u::@2/mul16u::@4->mul16u::@3] - __b3_from___b2: - __b3_from___b4: - // [658] phi mul16u::res#6 = mul16u::res#2 [phi:mul16u::@2/mul16u::@4->mul16u::@3#0] -- register_copy - jmp __b3 - // mul16u::@3 - __b3: - // [659] mul16u::a#1 = mul16u::a#2 >> 1 -- vwuz1=vwuz1_ror_1 - lsr.z a+1 - ror.z a - // [660] mul16u::mb#1 = mul16u::mb#2 << 1 -- vduz1=vduz1_rol_1 - asl.z mb - rol.z mb+1 - rol.z mb+2 - rol.z mb+3 - // [652] phi from mul16u::@3 to mul16u::@1 [phi:mul16u::@3->mul16u::@1] - __b1_from___b3: - // [652] phi mul16u::mb#2 = mul16u::mb#1 [phi:mul16u::@3->mul16u::@1#0] -- register_copy - // [652] phi mul16u::res#2 = mul16u::res#6 [phi:mul16u::@3->mul16u::@1#1] -- register_copy - // [652] phi mul16u::a#2 = mul16u::a#1 [phi:mul16u::@3->mul16u::@1#2] -- register_copy - jmp __b1 -} - // memset_vram -// Set block of memory to a value in VRAM. -// Sets num bytes to a value to the memory block pointed to by destination in VRAM. -// - vbank: Which 64K VRAM bank to put data into (0/1) -// - vdest: The destination address in VRAM -// - data: The value to set the vram with. -// - num: The number of bytes to set -// void memset_vram(__register(X) char vbank, __zp($91) void *vdest, char data, __zp($72) unsigned long num) -memset_vram: { - .const data = 0 - .label i = $10 - .label vdest = $91 - .label num = $72 - // [661] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // [662] memset_vram::$0 = byte0 memset_vram::vdest#0 -- vbuaa=_byte0_pvoz1 - lda.z vdest - // [663] *VERA_ADDRX_L = memset_vram::$0 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // [664] memset_vram::$1 = byte1 memset_vram::vdest#0 -- vbuaa=_byte1_pvoz1 - lda.z vdest+1 - // [665] *VERA_ADDRX_M = memset_vram::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // [666] memset_vram::$2 = VERA_INC_1 | memset_vram::vbank#0 -- vbuaa=vbuc1_bor_vbuxx - txa - ora #VERA_INC_1 - // [667] *VERA_ADDRX_H = memset_vram::$2 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_H - // [668] phi from memset_vram to memset_vram::@1 [phi:memset_vram->memset_vram::@1] - __b1_from_memset_vram: - // [668] phi memset_vram::i#2 = 0 [phi:memset_vram->memset_vram::@1#0] -- vduz1=vduc1 - lda #<0 - sta.z i - lda #>0 - sta.z i+1 - lda #<0>>$10 - sta.z i+2 - lda #>0>>$10 - sta.z i+3 - jmp __b1 - // Transfer the data - // memset_vram::@1 - __b1: - // [669] if(memset_vram::i#2memset_vram::@1] - __b1_from___b2: - // [668] phi memset_vram::i#2 = memset_vram::i#1 [phi:memset_vram::@2->memset_vram::@1#0] -- register_copy - jmp __b1 -} - // bitmap_line_ydxi -// void bitmap_line_ydxi(__zp(4) unsigned int y, __zp(6) unsigned int x, __zp(8) unsigned int y1, __zp($27) unsigned int yd, __zp($22) unsigned int xd, __zp($20) char c) -bitmap_line_ydxi: { - .label __6 = $1e - .label y = 4 - .label x = 6 - .label y1 = 8 - .label yd = $27 - .label xd = $22 - .label c = $20 - .label e = $18 - // [674] bitmap_line_ydxi::e#0 = bitmap_line_ydxi::xd#2 >> 1 -- vwuz1=vwuz2_ror_1 - lda.z xd+1 - lsr - sta.z e+1 - lda.z xd - ror - sta.z e - // [675] phi from bitmap_line_ydxi bitmap_line_ydxi::@2 to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi/bitmap_line_ydxi::@2->bitmap_line_ydxi::@1] - __b1_from_bitmap_line_ydxi: - __b1_from___b2: - // [675] phi bitmap_line_ydxi::e#3 = bitmap_line_ydxi::e#0 [phi:bitmap_line_ydxi/bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#0] -- register_copy - // [675] phi bitmap_line_ydxi::y#3 = bitmap_line_ydxi::y#6 [phi:bitmap_line_ydxi/bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#1] -- register_copy - // [675] phi bitmap_line_ydxi::x#3 = bitmap_line_ydxi::x#5 [phi:bitmap_line_ydxi/bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#2] -- register_copy - jmp __b1 - // bitmap_line_ydxi::@1 - __b1: - // [676] bitmap_plot::x#2 = bitmap_line_ydxi::x#3 -- vwuz1=vwuz2 - lda.z x - sta.z bitmap_plot.x - lda.z x+1 - sta.z bitmap_plot.x+1 - // [677] bitmap_plot::y#2 = bitmap_line_ydxi::y#3 - // [678] bitmap_plot::c#3 = bitmap_line_ydxi::c#3 -- vbuxx=vbuz1 - ldx.z c - // [679] call bitmap_plot - // [771] phi from bitmap_line_ydxi::@1 to bitmap_plot [phi:bitmap_line_ydxi::@1->bitmap_plot] - bitmap_plot_from___b1: - // [771] phi bitmap_plot::c#5 = bitmap_plot::c#3 [phi:bitmap_line_ydxi::@1->bitmap_plot#0] -- register_copy - // [771] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#1] -- register_copy - // [771] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#2] -- register_copy - jsr bitmap_plot - jmp __b4 - // bitmap_line_ydxi::@4 - __b4: - // [680] bitmap_line_ydxi::y#2 = ++ bitmap_line_ydxi::y#3 -- vwuz1=_inc_vwuz1 - inc.z y - bne !+ - inc.z y+1 - !: - // [681] bitmap_line_ydxi::e#1 = bitmap_line_ydxi::e#3 + bitmap_line_ydxi::xd#2 -- vwuz1=vwuz1_plus_vwuz2 - clc - lda.z e - adc.z xd - sta.z e - lda.z e+1 - adc.z xd+1 - sta.z e+1 - // [682] if(bitmap_line_ydxi::yd#5>=bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 -- vwuz1_ge_vwuz2_then_la1 - lda.z e+1 - cmp.z yd+1 - bne !+ - lda.z e - cmp.z yd - beq __b2_from___b4 - !: - bcc __b2_from___b4 - jmp __b3 - // bitmap_line_ydxi::@3 - __b3: - // [683] bitmap_line_ydxi::x#2 = ++ bitmap_line_ydxi::x#3 -- vwuz1=_inc_vwuz1 - inc.z x - bne !+ - inc.z x+1 - !: - // [684] bitmap_line_ydxi::e#2 = bitmap_line_ydxi::e#1 - bitmap_line_ydxi::yd#5 -- vwuz1=vwuz1_minus_vwuz2 - lda.z e - sec - sbc.z yd - sta.z e - lda.z e+1 - sbc.z yd+1 - sta.z e+1 - // [685] phi from bitmap_line_ydxi::@3 bitmap_line_ydxi::@4 to bitmap_line_ydxi::@2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2] - __b2_from___b3: - __b2_from___b4: - // [685] phi bitmap_line_ydxi::e#6 = bitmap_line_ydxi::e#2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2#0] -- register_copy - // [685] phi bitmap_line_ydxi::x#6 = bitmap_line_ydxi::x#2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2#1] -- register_copy - jmp __b2 - // bitmap_line_ydxi::@2 - __b2: - // [686] bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#6 + 1 -- vwuz1=vwuz2_plus_1 - clc - lda.z y1 - adc #1 - sta.z __6 - lda.z y1+1 - adc #0 - sta.z __6+1 - // [687] if(bitmap_line_ydxi::y#2!=bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1 -- vwuz1_neq_vwuz2_then_la1 - lda.z y+1 - cmp.z __6+1 - bne __b1_from___b2 - lda.z y - cmp.z __6 - bne __b1_from___b2 - jmp __breturn - // bitmap_line_ydxi::@return - __breturn: - // [688] return - rts -} - // bitmap_line_xdyi -// void bitmap_line_xdyi(__zp($1e) unsigned int x, __zp(8) unsigned int y, __zp(6) unsigned int x1, __zp($22) unsigned int xd, __zp($27) unsigned int yd, __zp($21) char c) -bitmap_line_xdyi: { - .label __6 = $e - .label x = $1e - .label y = 8 - .label x1 = 6 - .label xd = $22 - .label yd = $27 - .label c = $21 - .label e = $18 - // [690] bitmap_line_xdyi::e#0 = bitmap_line_xdyi::yd#2 >> 1 -- vwuz1=vwuz2_ror_1 - lda.z yd+1 - lsr - sta.z e+1 - lda.z yd - ror - sta.z e - // [691] phi from bitmap_line_xdyi bitmap_line_xdyi::@2 to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi/bitmap_line_xdyi::@2->bitmap_line_xdyi::@1] - __b1_from_bitmap_line_xdyi: - __b1_from___b2: - // [691] phi bitmap_line_xdyi::e#3 = bitmap_line_xdyi::e#0 [phi:bitmap_line_xdyi/bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#0] -- register_copy - // [691] phi bitmap_line_xdyi::y#3 = bitmap_line_xdyi::y#5 [phi:bitmap_line_xdyi/bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#1] -- register_copy - // [691] phi bitmap_line_xdyi::x#3 = bitmap_line_xdyi::x#6 [phi:bitmap_line_xdyi/bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#2] -- register_copy - jmp __b1 - // bitmap_line_xdyi::@1 - __b1: - // [692] bitmap_plot::x#0 = bitmap_line_xdyi::x#3 - // [693] bitmap_plot::y#0 = bitmap_line_xdyi::y#3 -- vwuz1=vwuz2 - lda.z y - sta.z bitmap_plot.y - lda.z y+1 - sta.z bitmap_plot.y+1 - // [694] bitmap_plot::c#1 = bitmap_line_xdyi::c#3 -- vbuxx=vbuz1 - ldx.z c - // [695] call bitmap_plot - // [771] phi from bitmap_line_xdyi::@1 to bitmap_plot [phi:bitmap_line_xdyi::@1->bitmap_plot] - bitmap_plot_from___b1: - // [771] phi bitmap_plot::c#5 = bitmap_plot::c#1 [phi:bitmap_line_xdyi::@1->bitmap_plot#0] -- register_copy - // [771] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#1] -- register_copy - // [771] phi bitmap_plot::x#4 = bitmap_plot::x#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#2] -- register_copy - jsr bitmap_plot - jmp __b4 - // bitmap_line_xdyi::@4 - __b4: - // [696] bitmap_line_xdyi::x#2 = ++ bitmap_line_xdyi::x#3 -- vwuz1=_inc_vwuz1 - inc.z x - bne !+ - inc.z x+1 - !: - // [697] bitmap_line_xdyi::e#1 = bitmap_line_xdyi::e#3 + bitmap_line_xdyi::yd#2 -- vwuz1=vwuz1_plus_vwuz2 - clc - lda.z e - adc.z yd - sta.z e - lda.z e+1 - adc.z yd+1 - sta.z e+1 - // [698] if(bitmap_line_xdyi::xd#5>=bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 -- vwuz1_ge_vwuz2_then_la1 - lda.z e+1 - cmp.z xd+1 - bne !+ - lda.z e - cmp.z xd - beq __b2_from___b4 - !: - bcc __b2_from___b4 - jmp __b3 - // bitmap_line_xdyi::@3 - __b3: - // [699] bitmap_line_xdyi::y#2 = ++ bitmap_line_xdyi::y#3 -- vwuz1=_inc_vwuz1 - inc.z y - bne !+ - inc.z y+1 - !: - // [700] bitmap_line_xdyi::e#2 = bitmap_line_xdyi::e#1 - bitmap_line_xdyi::xd#5 -- vwuz1=vwuz1_minus_vwuz2 - lda.z e - sec - sbc.z xd - sta.z e - lda.z e+1 - sbc.z xd+1 - sta.z e+1 - // [701] phi from bitmap_line_xdyi::@3 bitmap_line_xdyi::@4 to bitmap_line_xdyi::@2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2] - __b2_from___b3: - __b2_from___b4: - // [701] phi bitmap_line_xdyi::e#6 = bitmap_line_xdyi::e#2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2#0] -- register_copy - // [701] phi bitmap_line_xdyi::y#6 = bitmap_line_xdyi::y#2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2#1] -- register_copy - jmp __b2 - // bitmap_line_xdyi::@2 - __b2: - // [702] bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#6 + 1 -- vwuz1=vwuz2_plus_1 - clc - lda.z x1 - adc #1 - sta.z __6 - lda.z x1+1 - adc #0 - sta.z __6+1 - // [703] if(bitmap_line_xdyi::x#2!=bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 -- vwuz1_neq_vwuz2_then_la1 - lda.z x+1 - cmp.z __6+1 - bne __b1_from___b2 - lda.z x - cmp.z __6 - bne __b1_from___b2 - jmp __breturn - // bitmap_line_xdyi::@return - __breturn: - // [704] return - rts -} - // bitmap_line_ydxd -// void bitmap_line_ydxd(__zp(4) unsigned int y, __zp(6) unsigned int x, __zp(8) unsigned int y1, __zp($29) unsigned int yd, __zp($22) unsigned int xd, __zp($20) char c) -bitmap_line_ydxd: { - .label __6 = $e - .label y = 4 - .label x = 6 - .label y1 = 8 - .label yd = $29 - .label xd = $22 - .label c = $20 - .label e = $18 - // [706] bitmap_line_ydxd::e#0 = bitmap_line_ydxd::xd#2 >> 1 -- vwuz1=vwuz2_ror_1 - lda.z xd+1 - lsr - sta.z e+1 - lda.z xd - ror - sta.z e - // [707] phi from bitmap_line_ydxd bitmap_line_ydxd::@2 to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd/bitmap_line_ydxd::@2->bitmap_line_ydxd::@1] - __b1_from_bitmap_line_ydxd: - __b1_from___b2: - // [707] phi bitmap_line_ydxd::e#3 = bitmap_line_ydxd::e#0 [phi:bitmap_line_ydxd/bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#0] -- register_copy - // [707] phi bitmap_line_ydxd::y#2 = bitmap_line_ydxd::y#7 [phi:bitmap_line_ydxd/bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#1] -- register_copy - // [707] phi bitmap_line_ydxd::x#3 = bitmap_line_ydxd::x#5 [phi:bitmap_line_ydxd/bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#2] -- register_copy - jmp __b1 - // bitmap_line_ydxd::@1 - __b1: - // [708] bitmap_plot::x#3 = bitmap_line_ydxd::x#3 -- vwuz1=vwuz2 - lda.z x - sta.z bitmap_plot.x - lda.z x+1 - sta.z bitmap_plot.x+1 - // [709] bitmap_plot::y#3 = bitmap_line_ydxd::y#2 - // [710] bitmap_plot::c#4 = bitmap_line_ydxd::c#3 -- vbuxx=vbuz1 - ldx.z c - // [711] call bitmap_plot - // [771] phi from bitmap_line_ydxd::@1 to bitmap_plot [phi:bitmap_line_ydxd::@1->bitmap_plot] - bitmap_plot_from___b1: - // [771] phi bitmap_plot::c#5 = bitmap_plot::c#4 [phi:bitmap_line_ydxd::@1->bitmap_plot#0] -- register_copy - // [771] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#1] -- register_copy - // [771] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#2] -- register_copy - jsr bitmap_plot - jmp __b4 - // bitmap_line_ydxd::@4 - __b4: - // [712] bitmap_line_ydxd::y#3 = ++ bitmap_line_ydxd::y#2 -- vwuz1=_inc_vwuz1 - inc.z y - bne !+ - inc.z y+1 - !: - // [713] bitmap_line_ydxd::e#1 = bitmap_line_ydxd::e#3 + bitmap_line_ydxd::xd#2 -- vwuz1=vwuz1_plus_vwuz2 - clc - lda.z e - adc.z xd - sta.z e - lda.z e+1 - adc.z xd+1 - sta.z e+1 - // [714] if(bitmap_line_ydxd::yd#5>=bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 -- vwuz1_ge_vwuz2_then_la1 - lda.z e+1 - cmp.z yd+1 - bne !+ - lda.z e - cmp.z yd - beq __b2_from___b4 - !: - bcc __b2_from___b4 - jmp __b3 - // bitmap_line_ydxd::@3 - __b3: - // [715] bitmap_line_ydxd::x#2 = -- bitmap_line_ydxd::x#3 -- vwuz1=_dec_vwuz1 - lda.z x - bne !+ - dec.z x+1 - !: - dec.z x - // [716] bitmap_line_ydxd::e#2 = bitmap_line_ydxd::e#1 - bitmap_line_ydxd::yd#5 -- vwuz1=vwuz1_minus_vwuz2 - lda.z e - sec - sbc.z yd - sta.z e - lda.z e+1 - sbc.z yd+1 - sta.z e+1 - // [717] phi from bitmap_line_ydxd::@3 bitmap_line_ydxd::@4 to bitmap_line_ydxd::@2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2] - __b2_from___b3: - __b2_from___b4: - // [717] phi bitmap_line_ydxd::e#6 = bitmap_line_ydxd::e#2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2#0] -- register_copy - // [717] phi bitmap_line_ydxd::x#6 = bitmap_line_ydxd::x#2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2#1] -- register_copy - jmp __b2 - // bitmap_line_ydxd::@2 - __b2: - // [718] bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#6 + 1 -- vwuz1=vwuz2_plus_1 - clc - lda.z y1 - adc #1 - sta.z __6 - lda.z y1+1 - adc #0 - sta.z __6+1 - // [719] if(bitmap_line_ydxd::y#3!=bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1 -- vwuz1_neq_vwuz2_then_la1 - lda.z y+1 - cmp.z __6+1 - bne __b1_from___b2 - lda.z y - cmp.z __6 - bne __b1_from___b2 - jmp __breturn - // bitmap_line_ydxd::@return - __breturn: - // [720] return - rts -} - // bitmap_line_xdyd -// void bitmap_line_xdyd(__zp($1e) unsigned int x, __zp(8) unsigned int y, __zp(6) unsigned int x1, __zp($22) unsigned int xd, __zp($29) unsigned int yd, __zp($20) char c) -bitmap_line_xdyd: { - .label __6 = $e - .label x = $1e - .label y = 8 - .label x1 = 6 - .label xd = $22 - .label yd = $29 - .label c = $20 - .label e = $18 - // [722] bitmap_line_xdyd::e#0 = bitmap_line_xdyd::yd#2 >> 1 -- vwuz1=vwuz2_ror_1 - lda.z yd+1 - lsr - sta.z e+1 - lda.z yd - ror - sta.z e - // [723] phi from bitmap_line_xdyd bitmap_line_xdyd::@2 to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd/bitmap_line_xdyd::@2->bitmap_line_xdyd::@1] - __b1_from_bitmap_line_xdyd: - __b1_from___b2: - // [723] phi bitmap_line_xdyd::e#3 = bitmap_line_xdyd::e#0 [phi:bitmap_line_xdyd/bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#0] -- register_copy - // [723] phi bitmap_line_xdyd::y#3 = bitmap_line_xdyd::y#5 [phi:bitmap_line_xdyd/bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#1] -- register_copy - // [723] phi bitmap_line_xdyd::x#3 = bitmap_line_xdyd::x#6 [phi:bitmap_line_xdyd/bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#2] -- register_copy - jmp __b1 - // bitmap_line_xdyd::@1 - __b1: - // [724] bitmap_plot::x#1 = bitmap_line_xdyd::x#3 - // [725] bitmap_plot::y#1 = bitmap_line_xdyd::y#3 -- vwuz1=vwuz2 - lda.z y - sta.z bitmap_plot.y - lda.z y+1 - sta.z bitmap_plot.y+1 - // [726] bitmap_plot::c#2 = bitmap_line_xdyd::c#3 -- vbuxx=vbuz1 - ldx.z c - // [727] call bitmap_plot - // [771] phi from bitmap_line_xdyd::@1 to bitmap_plot [phi:bitmap_line_xdyd::@1->bitmap_plot] - bitmap_plot_from___b1: - // [771] phi bitmap_plot::c#5 = bitmap_plot::c#2 [phi:bitmap_line_xdyd::@1->bitmap_plot#0] -- register_copy - // [771] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#1] -- register_copy - // [771] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#2] -- register_copy - jsr bitmap_plot - jmp __b4 - // bitmap_line_xdyd::@4 - __b4: - // [728] bitmap_line_xdyd::x#2 = ++ bitmap_line_xdyd::x#3 -- vwuz1=_inc_vwuz1 - inc.z x - bne !+ - inc.z x+1 - !: - // [729] bitmap_line_xdyd::e#1 = bitmap_line_xdyd::e#3 + bitmap_line_xdyd::yd#2 -- vwuz1=vwuz1_plus_vwuz2 - clc - lda.z e - adc.z yd - sta.z e - lda.z e+1 - adc.z yd+1 - sta.z e+1 - // [730] if(bitmap_line_xdyd::xd#5>=bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 -- vwuz1_ge_vwuz2_then_la1 - lda.z e+1 - cmp.z xd+1 - bne !+ - lda.z e - cmp.z xd - beq __b2_from___b4 - !: - bcc __b2_from___b4 - jmp __b3 - // bitmap_line_xdyd::@3 - __b3: - // [731] bitmap_line_xdyd::y#2 = -- bitmap_line_xdyd::y#3 -- vwuz1=_dec_vwuz1 - lda.z y - bne !+ - dec.z y+1 - !: - dec.z y - // [732] bitmap_line_xdyd::e#2 = bitmap_line_xdyd::e#1 - bitmap_line_xdyd::xd#5 -- vwuz1=vwuz1_minus_vwuz2 - lda.z e - sec - sbc.z xd - sta.z e - lda.z e+1 - sbc.z xd+1 - sta.z e+1 - // [733] phi from bitmap_line_xdyd::@3 bitmap_line_xdyd::@4 to bitmap_line_xdyd::@2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2] - __b2_from___b3: - __b2_from___b4: - // [733] phi bitmap_line_xdyd::e#6 = bitmap_line_xdyd::e#2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2#0] -- register_copy - // [733] phi bitmap_line_xdyd::y#6 = bitmap_line_xdyd::y#2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2#1] -- register_copy - jmp __b2 - // bitmap_line_xdyd::@2 - __b2: - // [734] bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#6 + 1 -- vwuz1=vwuz2_plus_1 - clc - lda.z x1 - adc #1 - sta.z __6 - lda.z x1+1 - adc #0 - sta.z __6+1 - // [735] if(bitmap_line_xdyd::x#2!=bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1 -- vwuz1_neq_vwuz2_then_la1 - lda.z x+1 - cmp.z __6+1 - bne __b1_from___b2 - lda.z x - cmp.z __6 - bne __b1_from___b2 - jmp __breturn - // bitmap_line_xdyd::@return - __breturn: - // [736] return - rts -} - // divr16u -// Performs division on two 16 bit unsigned ints and an initial remainder -// Returns the quotient dividend/divisor. -// The final remainder will be set into the global variable rem16u -// Implemented using simple binary division -// __zp($27) unsigned int divr16u(__zp(2) unsigned int dividend, __zp($1e) unsigned int divisor, __zp($22) unsigned int rem) -divr16u: { - .label rem = $22 - .label dividend = 2 - .label quotient = $27 - .label return = $27 - .label divisor = $1e - // [738] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1] - __b1_from_divr16u: - // [738] phi divr16u::i#2 = 0 [phi:divr16u->divr16u::@1#0] -- vbuxx=vbuc1 - ldx #0 - // [738] phi divr16u::quotient#3 = 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vwuc1 - lda #<0 - sta.z quotient - lda #>0 - sta.z quotient+1 - // [738] phi divr16u::dividend#2 = divr16u::dividend#1 [phi:divr16u->divr16u::@1#2] -- register_copy - // [738] phi divr16u::rem#4 = 0 [phi:divr16u->divr16u::@1#3] -- vwuz1=vbuc1 - lda #<0 - sta.z rem - lda #>0 - sta.z rem+1 - jmp __b1 - // [738] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1] - __b1_from___b3: - // [738] phi divr16u::i#2 = divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy - // [738] phi divr16u::quotient#3 = divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy - // [738] phi divr16u::dividend#2 = divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy - // [738] phi divr16u::rem#4 = divr16u::rem#10 [phi:divr16u::@3->divr16u::@1#3] -- register_copy - jmp __b1 - // divr16u::@1 - __b1: - // [739] divr16u::rem#0 = divr16u::rem#4 << 1 -- vwuz1=vwuz1_rol_1 - asl.z rem - rol.z rem+1 - // [740] divr16u::$1 = byte1 divr16u::dividend#2 -- vbuaa=_byte1_vwuz1 - lda.z dividend+1 - // [741] divr16u::$2 = divr16u::$1 & $80 -- vbuaa=vbuaa_band_vbuc1 - and #$80 - // [742] if(divr16u::$2==0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 - cmp #0 - beq __b2_from___b1 - jmp __b4 - // divr16u::@4 - __b4: - // [743] divr16u::rem#1 = divr16u::rem#0 | 1 -- vwuz1=vwuz1_bor_vbuc1 - lda #1 - ora.z rem - sta.z rem - // [744] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2] - __b2_from___b1: - __b2_from___b4: - // [744] phi divr16u::rem#5 = divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy - jmp __b2 - // divr16u::@2 - __b2: - // [745] divr16u::dividend#0 = divr16u::dividend#2 << 1 -- vwuz1=vwuz1_rol_1 - asl.z dividend - rol.z dividend+1 - // [746] divr16u::quotient#1 = divr16u::quotient#3 << 1 -- vwuz1=vwuz1_rol_1 - asl.z quotient - rol.z quotient+1 - // [747] if(divr16u::rem#5divr16u::@3] - __b3_from___b2: - __b3_from___b5: - // [750] phi divr16u::return#0 = divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy - // [750] phi divr16u::rem#10 = divr16u::rem#5 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy - jmp __b3 - // divr16u::@3 - __b3: - // [751] divr16u::i#1 = ++ divr16u::i#2 -- vbuxx=_inc_vbuxx - inx - // [752] if(divr16u::i#1!=$10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 - cpx #$10 - bne __b1_from___b3 - jmp __b6 - // divr16u::@6 - __b6: - // [753] rem16u#0 = divr16u::rem#10 -- vwuz1=vwuz2 - lda.z rem - sta.z rem16u - lda.z rem+1 - sta.z rem16u+1 - jmp __breturn - // divr16u::@return - __breturn: - // [754] return - rts -} - // insertup -// Insert a new line, and scroll the upper part of the screen up. -insertup: { - .label cy = $21 - .label width = $20 - .label line = $a - .label start = $a - // [755] insertup::cy#0 = conio_cursor_y[conio_screen_layer] -- vbuz1=pbuc1_derefidx_vbuz2 - ldy.z conio_screen_layer - lda conio_cursor_y,y - sta.z cy - // [756] insertup::width#0 = conio_screen_width << 1 -- vbuz1=vbuz2_rol_1 - lda.z conio_screen_width - asl - sta.z width - // [757] phi from insertup to insertup::@1 [phi:insertup->insertup::@1] - __b1_from_insertup: - // [757] phi insertup::i#2 = 1 [phi:insertup->insertup::@1#0] -- vbuxx=vbuc1 - ldx #1 - jmp __b1 - // insertup::@1 - __b1: - // [758] if(insertup::i#2<=insertup::cy#0) goto insertup::@2 -- vbuxx_le_vbuz1_then_la1 - lda.z cy - stx.z $ff - cmp.z $ff - bcs __b2 - // [759] phi from insertup::@1 to insertup::@3 [phi:insertup::@1->insertup::@3] - __b3_from___b1: - jmp __b3 - // insertup::@3 - __b3: - // [760] call clearline - jsr clearline - jmp __breturn - // insertup::@return - __breturn: - // [761] return - rts - // insertup::@2 - __b2: - // [762] insertup::$3 = insertup::i#2 - 1 -- vbuaa=vbuxx_minus_1 - txa - sec - sbc #1 - // [763] insertup::line#0 = insertup::$3 << conio_rowshift -- vwuz1=vbuaa_rol_vbuz2 - ldy.z conio_rowshift - sta.z line - lda #0 - sta.z line+1 - cpy #0 - beq !e+ - !: - asl.z line - rol.z line+1 - dey - bne !- - !e: - // [764] insertup::start#0 = CONIO_SCREEN_TEXT#12 + insertup::line#0 -- pbuz1=pbuz2_plus_vwuz1 - clc - lda.z start - adc.z CONIO_SCREEN_TEXT - sta.z start - lda.z start+1 - adc.z CONIO_SCREEN_TEXT+1 - sta.z start+1 - // [765] memcpy_in_vram::src#0 = insertup::start#0 + conio_rowskip -- pbuz1=pbuz2_plus_vwuz3 - lda.z start - clc - adc.z conio_rowskip - sta.z memcpy_in_vram.src - lda.z start+1 - adc.z conio_rowskip+1 - sta.z memcpy_in_vram.src+1 - // [766] memcpy_in_vram::dest#0 = (void *)insertup::start#0 - // [767] memcpy_in_vram::num#0 = insertup::width#0 -- vwuz1=vbuz2 - lda.z width - sta.z memcpy_in_vram.num - lda #0 - sta.z memcpy_in_vram.num+1 - // [768] memcpy_in_vram::src#3 = (void *)memcpy_in_vram::src#0 - // [769] call memcpy_in_vram - // [273] phi from insertup::@2 to memcpy_in_vram [phi:insertup::@2->memcpy_in_vram] - memcpy_in_vram_from___b2: - // [273] phi memcpy_in_vram::num#3 = memcpy_in_vram::num#0 [phi:insertup::@2->memcpy_in_vram#0] -- register_copy - // [273] phi memcpy_in_vram::dest_bank#2 = 0 [phi:insertup::@2->memcpy_in_vram#1] -- vbuyy=vbuc1 - ldy #0 - // [273] phi memcpy_in_vram::dest#2 = memcpy_in_vram::dest#0 [phi:insertup::@2->memcpy_in_vram#2] -- register_copy - // [273] phi memcpy_in_vram::src#2 = memcpy_in_vram::src#3 [phi:insertup::@2->memcpy_in_vram#3] -- register_copy - jsr memcpy_in_vram - jmp __b4 - // insertup::@4 - __b4: - // [770] insertup::i#1 = ++ insertup::i#2 -- vbuxx=_inc_vbuxx - inx - // [757] phi from insertup::@4 to insertup::@1 [phi:insertup::@4->insertup::@1] - __b1_from___b4: - // [757] phi insertup::i#2 = insertup::i#1 [phi:insertup::@4->insertup::@1#0] -- register_copy - jmp __b1 -} - // bitmap_plot -// void bitmap_plot(__zp($1e) unsigned int x, __zp(4) unsigned int y, __register(X) char c) -bitmap_plot: { - .label __9 = $e - .label __10 = $c - .label plot_x = $1a - .label plot_y = $10 - .label vera_vram_address01_bankaddr = $1a - .label x = $1e - .label y = 4 - .label __12 = $e - .label __13 = $c - .label __14 = $14 - .label __15 = $16 - // [772] bitmap_plot::$9 = bitmap_plot::x#4 << 1 -- vwuz1=vwuz2_rol_1 - lda.z x - asl - sta.z __9 - lda.z x+1 - rol - sta.z __9+1 - // [773] bitmap_plot::$12 = __bitmap_plot_x + bitmap_plot::$9 -- pwuz1=pwuc1_plus_vwuz1 - lda.z __12 - clc - adc #<__bitmap_plot_x - sta.z __12 - lda.z __12+1 - adc #>__bitmap_plot_x - sta.z __12+1 - // [774] bitmap_plot::plot_x#0 = (unsigned long)*bitmap_plot::$12 -- vduz1=_dword__deref_pwuz2 - // Needs unsigned int arrays arranged as two underlying char arrays to allow char* plotter_x = plot_x[x]; - and eventually - char* plotter = plot_x[x] + plot_y[y]; - ldy #0 - sty.z plot_x+2 - sty.z plot_x+3 - lda (__12),y - sta.z plot_x - iny - lda (__12),y - sta.z plot_x+1 - // [775] bitmap_plot::$10 = bitmap_plot::y#4 << 2 -- vwuz1=vwuz2_rol_2 - lda.z y - asl - sta.z __10 - lda.z y+1 - rol - sta.z __10+1 - asl.z __10 - rol.z __10+1 - // [776] bitmap_plot::$13 = __bitmap_plot_y + bitmap_plot::$10 -- pduz1=pduc1_plus_vwuz1 - lda.z __13 - clc - adc #<__bitmap_plot_y - sta.z __13 - lda.z __13+1 - adc #>__bitmap_plot_y - sta.z __13+1 - // [777] bitmap_plot::plot_y#0 = *bitmap_plot::$13 -- vduz1=_deref_pduz2 - ldy #0 - lda (__13),y - sta.z plot_y - iny - lda (__13),y - sta.z plot_y+1 - iny - lda (__13),y - sta.z plot_y+2 - iny - lda (__13),y - sta.z plot_y+3 - // [778] bitmap_plot::vera_vram_address01_bankaddr#0 = bitmap_plot::plot_x#0 + bitmap_plot::plot_y#0 -- vduz1=vduz1_plus_vduz2 - clc - lda.z vera_vram_address01_bankaddr - adc.z plot_y - sta.z vera_vram_address01_bankaddr - lda.z vera_vram_address01_bankaddr+1 - adc.z plot_y+1 - sta.z vera_vram_address01_bankaddr+1 - lda.z vera_vram_address01_bankaddr+2 - adc.z plot_y+2 - sta.z vera_vram_address01_bankaddr+2 - lda.z vera_vram_address01_bankaddr+3 - adc.z plot_y+3 - sta.z vera_vram_address01_bankaddr+3 - // [779] bitmap_plot::$14 = __bitmap_plot_bitshift + bitmap_plot::x#4 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitshift - sta.z __14 - lda.z x+1 - adc #>__bitmap_plot_bitshift - sta.z __14+1 - // [780] bitmap_plot::bitshift#0 = *bitmap_plot::$14 -- vbuaa=_deref_pbuz1 - ldy #0 - lda (__14),y - // [781] if(0!=bitmap_plot::bitshift#0) goto bitmap_plot::@1 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b1 - // [783] phi from bitmap_plot bitmap_plot::@1 to bitmap_plot::@2 [phi:bitmap_plot/bitmap_plot::@1->bitmap_plot::@2] - __b2_from_bitmap_plot: - __b2_from___b1: - // [783] phi bitmap_plot::c#0 = bitmap_plot::c#5 [phi:bitmap_plot/bitmap_plot::@1->bitmap_plot::@2#0] -- register_copy - jmp __b2 - // bitmap_plot::@1 - __b1: - // [782] bitmap_plot::$3 = bitmap_plot::c#5 << bitmap_plot::bitshift#0 -- vbuxx=vbuxx_rol_vbuaa - tay - txa - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - tax - jmp __b2_from___b1 - // bitmap_plot::@2 - __b2: - jmp vera_vram_address01 - // bitmap_plot::vera_vram_address01 - vera_vram_address01: - // [784] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // [785] bitmap_plot::vera_vram_address01_$0 = byte0 bitmap_plot::vera_vram_address01_bankaddr#0 -- vbuaa=_byte0_vduz1 - lda.z vera_vram_address01_bankaddr - // [786] *VERA_ADDRX_L = bitmap_plot::vera_vram_address01_$0 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_L - // [787] bitmap_plot::vera_vram_address01_$1 = byte1 bitmap_plot::vera_vram_address01_bankaddr#0 -- vbuaa=_byte1_vduz1 - lda.z vera_vram_address01_bankaddr+1 - // [788] *VERA_ADDRX_M = bitmap_plot::vera_vram_address01_$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // [789] bitmap_plot::vera_vram_address01_$3 = byte2 bitmap_plot::vera_vram_address01_bankaddr#0 -- vbuaa=_byte2_vduz1 - lda.z vera_vram_address01_bankaddr+2 - // [790] *VERA_ADDRX_H = bitmap_plot::vera_vram_address01_$3 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_H - jmp __b3 - // bitmap_plot::@3 - __b3: - // [791] bitmap_plot::$15 = __bitmap_plot_bitmask + bitmap_plot::x#4 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitmask - sta.z __15 - lda.z x+1 - adc #>__bitmap_plot_bitmask - sta.z __15+1 - // [792] bitmap_plot::$6 = ~ *bitmap_plot::$15 -- vbuaa=_bnot__deref_pbuz1 - ldy #0 - lda (__15),y - eor #$ff - // [793] bitmap_plot::$7 = *VERA_DATA0 & bitmap_plot::$6 -- vbuaa=_deref_pbuc1_band_vbuaa - and VERA_DATA0 - // [794] bitmap_plot::$8 = bitmap_plot::$7 | bitmap_plot::c#0 -- vbuaa=vbuaa_bor_vbuxx - stx.z $ff - ora.z $ff - // [795] *VERA_DATA0 = bitmap_plot::$8 -- _deref_pbuc1=vbuaa - sta VERA_DATA0 - jmp __breturn - // bitmap_plot::@return - __breturn: - // [796] return - rts -} - // clearline -clearline: { - .label addr = $e - .label c = 4 - // [797] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // [798] clearline::$5 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [799] clearline::addr#0 = CONIO_SCREEN_TEXT#12 + conio_line_text[clearline::$5] -- pbuz1=pbuz2_plus_pwuc1_derefidx_vbuaa - // Set address - tay - clc - lda.z CONIO_SCREEN_TEXT - adc conio_line_text,y - sta.z addr - lda.z CONIO_SCREEN_TEXT+1 - adc conio_line_text+1,y - sta.z addr+1 - // [800] clearline::$1 = byte0 clearline::addr#0 -- vbuaa=_byte0_pbuz1 - lda.z addr - // [801] *VERA_ADDRX_L = clearline::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_L - // [802] clearline::$2 = byte1 clearline::addr#0 -- vbuaa=_byte1_pbuz1 - lda.z addr+1 - // [803] *VERA_ADDRX_M = clearline::$2 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // [804] *VERA_ADDRX_H = VERA_INC_1 -- _deref_pbuc1=vbuc2 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // [805] vera_layer_get_color::layer#1 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [806] call vera_layer_get_color - // [254] phi from clearline to vera_layer_get_color [phi:clearline->vera_layer_get_color] - vera_layer_get_color_from_clearline: - // [254] phi vera_layer_get_color::layer#2 = vera_layer_get_color::layer#1 [phi:clearline->vera_layer_get_color#0] -- register_copy - jsr vera_layer_get_color - // [807] vera_layer_get_color::return#4 = vera_layer_get_color::return#3 - jmp __b4 - // clearline::@4 - __b4: - // [808] clearline::color#0 = vera_layer_get_color::return#4 -- vbuxx=vbuaa - tax - // [809] phi from clearline::@4 to clearline::@1 [phi:clearline::@4->clearline::@1] - __b1_from___b4: - // [809] phi clearline::c#2 = 0 [phi:clearline::@4->clearline::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z c - lda #>0 - sta.z c+1 - jmp __b1 - // clearline::@1 - __b1: - // [810] if(clearline::c#2clearline::@1] - __b1_from___b2: - // [809] phi clearline::c#2 = clearline::c#1 [phi:clearline::@2->clearline::@1#0] -- register_copy - jmp __b1 -} - // File Data -.segment Data - VERA_LAYER_WIDTH: .word $20, $40, $80, $100 - VERA_LAYER_HEIGHT: .word $20, $40, $80, $100 - /// --- VERA function encapsulation --- - vera_mapbase_offset: .word 0, 0 - vera_mapbase_bank: .byte 0, 0 - vera_mapbase_address: .dword 0, 0 - vera_tilebase_offset: .word 0, 0 - vera_tilebase_bank: .byte 0, 0 - vera_tilebase_address: .dword 0, 0 - vera_layer_rowshift: .byte 0, 0 - vera_layer_rowskip: .word 0, 0 - vera_layer_config: .word VERA_L0_CONFIG, VERA_L1_CONFIG - vera_layer_enable: .byte VERA_LAYER0_ENABLE, VERA_LAYER1_ENABLE - vera_layer_mapbase: .word VERA_L0_MAPBASE, VERA_L1_MAPBASE - vera_layer_tilebase: .word VERA_L0_TILEBASE, VERA_L1_TILEBASE - vera_layer_textcolor: .byte WHITE, WHITE - vera_layer_backcolor: .byte BLUE, BLUE - // The number of bytes on the screen - // The current cursor x-position - conio_cursor_x: .byte 0, 0 - // The current cursor y-position - conio_cursor_y: .byte 0, 0 - // The current text cursor line start - conio_line_text: .word 0, 0 - // Is scrolling enabled when outputting beyond the end of the screen (1: yes, 0: no). - // If disabled the cursor just moves back to (0,0) instead - conio_scroll_enable: .byte 1, 1 - // Tables for the plotter - initialized by calling bitmap_draw_init(); - __bitmap_plot_x: .fill 2*$280, 0 - __bitmap_plot_y: .fill 4*$1e0, 0 - __bitmap_plot_bitmask: .fill $280, 0 - __bitmap_plot_bitshift: .fill $280, 0 - hdeltas: .word 0, $50, $28, $14, 0, $a0, $50, $28, 0, $140, $a0, $50, 0, $280, $140, $a0 - vdeltas: .word 0, $1e0, $f0, $a0 - bitmasks: .byte $80, $c0, $f0, $ff - .fill 1, 0 - bitshifts: .byte 7, 6, 4, 0 - .fill 1, 0 - -ASSEMBLER OPTIMIZATIONS -Removing instruction jmp __init1 -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b3 -Removing instruction jmp __b4 -Removing instruction jmp __b5 -Removing instruction jmp __b6 -Removing instruction jmp __b7 -Removing instruction jmp __b8 -Removing instruction jmp __b9 -Removing instruction jmp __b2 -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b7 -Removing instruction jmp __b2 -Removing instruction jmp __b3 -Removing instruction jmp __b4 -Removing instruction jmp __breturn -Removing instruction jmp __b6 -Removing instruction jmp __b1 -Removing instruction jmp __b12 -Removing instruction jmp __b13 -Removing instruction jmp __b14 -Removing instruction jmp textcolor1 -Removing instruction jmp bgcolor1 -Removing instruction jmp __b6 -Removing instruction jmp __b15 -Removing instruction jmp __b16 -Removing instruction jmp __b17 -Removing instruction jmp __b18 -Removing instruction jmp __b19 -Removing instruction jmp vera_layer_show1 -Removing instruction jmp __b7 -Removing instruction jmp __b20 -Removing instruction jmp __b21 -Removing instruction jmp textcolor2 -Removing instruction jmp __b8 -Removing instruction jmp __b1 -Removing instruction jmp __b22 -Removing instruction jmp textcolor3 -Removing instruction jmp bgcolor2 -Removing instruction jmp __b9 -Removing instruction jmp __b32 -Removing instruction jmp __b33 -Removing instruction jmp __b34 -Removing instruction jmp textcolor4 -Removing instruction jmp __b10 -Removing instruction jmp __b3 -Removing instruction jmp __b35 -Removing instruction jmp __b5 -Removing instruction jmp textcolor5 -Removing instruction jmp bgcolor3 -Removing instruction jmp __b11 -Removing instruction jmp __breturn -Removing instruction jmp __b36 -Removing instruction jmp __b37 -Removing instruction jmp __b2 -Removing instruction jmp __b23 -Removing instruction jmp __b24 -Removing instruction jmp __b25 -Removing instruction jmp __b26 -Removing instruction jmp __b27 -Removing instruction jmp __b28 -Removing instruction jmp __b29 -Removing instruction jmp __b30 -Removing instruction jmp __b31 -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b3 -Removing instruction jmp __b4 -Removing instruction jmp vera_layer_get_width1 -Removing instruction jmp vera_layer_get_width1___breturn -Removing instruction jmp __b1 -Removing instruction jmp __b5 -Removing instruction jmp __b6 -Removing instruction jmp vera_layer_get_height1 -Removing instruction jmp vera_layer_get_height1___breturn -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b4 -Removing instruction jmp __b1 -Removing instruction jmp __b3 -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __b3 -Removing instruction jmp __b4 -Removing instruction jmp __b8 -Removing instruction jmp __b9 -Removing instruction jmp __b10 -Removing instruction jmp __b11 -Removing instruction jmp __b12 -Removing instruction jmp __b15 -Removing instruction jmp __b16 -Removing instruction jmp __b23 -Removing instruction jmp __b24 -Removing instruction jmp __b17 -Removing instruction jmp __b18 -Removing instruction jmp __b19 -Removing instruction jmp __b20 -Removing instruction jmp __b21 -Removing instruction jmp __b22 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp vera_display_set_scale_double1 -Removing instruction jmp __b2 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b7 -Removing instruction jmp __b8 -Removing instruction jmp __b1 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b4 -Removing instruction jmp __b6 -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp vera_layer_get_color_depth1 -Removing instruction jmp vera_layer_get_color_depth1___breturn -Removing instruction jmp __b16 -Removing instruction jmp __b17 -Removing instruction jmp __b18 -Removing instruction jmp __b1 -Removing instruction jmp __b8 -Removing instruction jmp __b2 -Removing instruction jmp __b9 -Removing instruction jmp __b3 -Removing instruction jmp __b10 -Removing instruction jmp __b4 -Removing instruction jmp __b11 -Removing instruction jmp __b5 -Removing instruction jmp __b12 -Removing instruction jmp __b6 -Removing instruction jmp __b13 -Removing instruction jmp __b7 -Removing instruction jmp __b14 -Removing instruction jmp __b15 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b2 -Removing instruction jmp __b3 -Removing instruction jmp __b4 -Removing instruction jmp __breturn -Removing instruction jmp __b10 -Removing instruction jmp __b5 -Removing instruction jmp __b6 -Removing instruction jmp __b14 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b4 -Removing instruction jmp __b5 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b4 -Removing instruction jmp __b3 -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b4 -Removing instruction jmp __b3 -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b4 -Removing instruction jmp __b3 -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b4 -Removing instruction jmp __b3 -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b4 -Removing instruction jmp __b3 -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b4 -Removing instruction jmp __b2 -Removing instruction jmp __b5 -Removing instruction jmp __b3 -Removing instruction jmp __b6 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b4 -Removing instruction jmp vera_vram_address01 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b4 -Removing instruction jmp __b1 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Succesful ASM optimization Pass5NextJumpElimination -Removing instruction lda #0 -Removing instruction lda #>0 -Removing instruction lda #<0 -Removing instruction lda #>0 -Removing instruction lda #0 -Removing instruction lda #<0 -Removing instruction lda #>0 -Removing instruction lda #<0 -Removing instruction lda #>0 -Removing instruction lda #0 -Removing instruction lda #0 -Removing instruction lda #0 -Removing instruction lda.z __16+1 -Removing instruction lda #8 -Removing instruction lda #<0 -Removing instruction lda #>0 -Removing instruction lda #>0 -Removing instruction lda #>0 -Replacing instruction ldx.z conio_screen_layer with TAX -Removing instruction ldy.z conio_screen_layer -Removing instruction lda #>0 -Replacing instruction lda.z layer with TYA -Replacing instruction ldy.z __17 with TAY -Replacing instruction lda.z layer with TYA -Replacing instruction ldy.z __18 with TAY -Replacing instruction lda.z layer with TYA -Replacing instruction lda.z layer with TYA -Replacing instruction lda.z layer with TYA -Removing instruction lda #>0 -Removing instruction lda #0 -Removing instruction lda #$40 -Removing instruction lda #0 -Removing instruction ldy.z conio_screen_layer -Replacing instruction lda.z conio_screen_layer with TYA -Removing instruction lda #0 -Removing instruction lda.z __bitmap_layer -Removing instruction ldy.z __bitmap_color_depth -Removing instruction lda #>0 -Removing instruction ldy #0 -Removing instruction ldy #0 -Removing instruction ldy #0 -Removing instruction lda.z bitshift -Removing instruction ldy #0 -Removing instruction lda #>0 -Removing instruction lda.z yd_1+1 -Removing instruction lda.z yd+1 -Removing instruction lda.z yd+1 -Removing instruction lda.z yd_1+1 -Removing instruction lda.z rand_state+1 -Removing instruction ldy #0 -Removing instruction ldy #0 -Removing instruction ldy #0 -Removing instruction lda #>0 -Removing instruction lda #>0 -Removing instruction lda.z e+1 -Removing instruction lda.z e+1 -Removing instruction lda.z e+1 -Removing instruction lda.z e+1 -Replacing instruction lda #<0 with TXA -Removing instruction lda #>0 -Removing instruction lda #<0 -Removing instruction lda #>0 -Removing instruction lda #>0 -Succesful ASM optimization Pass5UnnecesaryLoadElimination -Replacing label __b1_from___b9 with __b1 -Replacing label __b1_from___b7 with __b1 -Replacing label __b2_from___b22 with __b2 -Replacing label __b37_from___b36 with __b37 -Replacing label __b37_from___b36 with __b37 -Replacing label __b4_from_gotoxy with __b1 -Replacing label __breturn_from___b1 with __breturn -Replacing label __b9_from___b4 with __b9_from___b5 -Replacing label __b9_from___b4 with __b9_from___b5 -Replacing label __b16_from___b9 with __b16 -Replacing label __b16_from___b12 with __b16 -Replacing label __b16_from___b12 with __b16 -Replacing label __b19_from___b24 with __b19 -Replacing label __b19_from___b17 with __b19 -Replacing label __b22_from___b19 with __b22 -Replacing label __b22_from___b20 with __b22 -Replacing label __b16_from___b14 with __b16 -Replacing label __b16_from___b13 with __b16 -Replacing label __b1_from___b2 with __b1 -Replacing label __b2_from___b1 with __b2 -Replacing label __b3_from___b2 with __b3 -Replacing label __b4_from___b3 with __b4 -Replacing label __b6_from___b5 with __b6 -Replacing label __b7_from___b6 with __b7 -Replacing label __b1_from___b7 with __b1 -Replacing label __b1_from___b7 with __b1 -Replacing label __b15_from___b15 with __b15 -Replacing label __b15_from___b15 with __b15 -Replacing label __breturn with __b3 -Replacing label __b4_from___b1 with __b4 -Replacing label __breturn with __b3 -Replacing label __breturn with __b3 -Replacing label __breturn with __b3 -Replacing label __b1_from___b2 with __b1 -Replacing label __b1_from___b2 with __b1 -Replacing label __b3_from___b2 with __b3 -Replacing label __b2_from___b4 with __b2 -Replacing label __b2_from___b4 with __b2 -Replacing label __b1_from___b2 with __b1 -Replacing label __b1_from___b2 with __b1 -Replacing label __b2_from___b4 with __b2 -Replacing label __b2_from___b4 with __b2 -Replacing label __b1_from___b2 with __b1 -Replacing label __b1_from___b2 with __b1 -Replacing label __b2_from___b4 with __b2 -Replacing label __b2_from___b4 with __b2 -Replacing label __b1_from___b2 with __b1 -Replacing label __b1_from___b2 with __b1 -Replacing label __b2_from___b4 with __b2 -Replacing label __b2_from___b4 with __b2 -Replacing label __b1_from___b2 with __b1 -Replacing label __b1_from___b2 with __b1 -Replacing label __b2_from___b1 with __b2 -Replacing label __b3_from___b2 with __b3 -Replacing label __b3_from___b2 with __b3 -Replacing label __b1_from___b3 with __b1 -Removing instruction __b1_from___init1: -Removing instruction main_from___b1: -Removing instruction __b3_from_conio_x16_init: -Removing instruction __b4_from___b3: -Removing instruction __b5_from___b4: -Removing instruction vera_layer_set_textcolor_from___b5: -Removing instruction __b6_from___b5: -Removing instruction vera_layer_set_backcolor_from___b6: -Removing instruction __b7_from___b6: -Removing instruction vera_layer_set_mapbase_from___b7: -Removing instruction __b8_from___b7: -Removing instruction vera_layer_set_mapbase_from___b8: -Removing instruction __b1_from___b2: -Removing instruction __b1_from___b9: -Removing instruction __b4_from___b3: -Removing instruction __b6_from___b5: -Removing instruction __b1_from___b7: -Removing instruction __b12_from_main: -Removing instruction __b13_from___b12: -Removing instruction vera_layer_mode_bitmap_from___b13: -Removing instruction __b14_from___b13: -Removing instruction __b6_from_bgcolor1: -Removing instruction __b15_from___b6: -Removing instruction gotoxy_from___b15: -Removing instruction __b16_from___b15: -Removing instruction printf_str_from___b16: -Removing instruction __b17_from___b16: -Removing instruction printf_str_from___b17: -Removing instruction __b18_from___b17: -Removing instruction printf_str_from___b18: -Removing instruction __b19_from___b18: -Removing instruction printf_str_from___b19: -Removing instruction __b7_from_vera_layer_show1: -Removing instruction __b20_from___b7: -Removing instruction __b21_from___b20: -Removing instruction gotoxy_from___b21: -Removing instruction __b8_from_textcolor2: -Removing instruction printf_str_from___b8: -Removing instruction __b9_from_bgcolor2: -Removing instruction __b32_from___b9: -Removing instruction gotoxy_from___b32: -Removing instruction __b33_from___b32: -Removing instruction printf_str_from___b33: -Removing instruction __b34_from___b33: -Removing instruction gotoxy_from___b34: -Removing instruction __b10_from_textcolor4: -Removing instruction printf_str_from___b10: -Removing instruction __b5_from___b35: -Removing instruction __b11_from_bgcolor3: -Removing instruction __b37_from___b36: -Removing instruction __b3_from___b37: -Removing instruction __b2_from___b22: -Removing instruction rand_from___b2: -Removing instruction __b1_from_vera_layer_mode_text: -Removing instruction vera_layer_get_width1___breturn: -Removing instruction vera_layer_get_height1___breturn: -Removing instruction __b4_from_gotoxy: -Removing instruction __b4: -Removing instruction __b1_from___b4: -Removing instruction __b3_from___b1: -Removing instruction __b3: -Removing instruction __breturn_from___b1: -Removing instruction __breturn_from___b2: -Removing instruction __b9_from___b4: -Removing instruction __b16_from___b12: -Removing instruction __b16_from___b13: -Removing instruction __b16_from___b14: -Removing instruction __b16_from___b15: -Removing instruction __b16_from___b9: -Removing instruction __b19_from___b17: -Removing instruction __b19_from___b18: -Removing instruction __b19_from___b24: -Removing instruction __b22_from___b19: -Removing instruction __b22_from___b20: -Removing instruction __b22_from___b21: -Removing instruction __b2_from_vera_display_set_scale_double1: -Removing instruction vera_layer_set_config_from___b2: -Removing instruction __b3_from___b2: -Removing instruction vera_layer_set_tilebase_from___b3: -Removing instruction __b1_from_printf_str: -Removing instruction __b1_from___b2: -Removing instruction vera_layer_get_color_depth1___breturn: -Removing instruction __b1_from___b7: -Removing instruction __b2_from___b1: -Removing instruction __b2_from___b8: -Removing instruction __b3_from___b2: -Removing instruction __b3_from___b9: -Removing instruction __b4_from___b10: -Removing instruction __b4_from___b3: -Removing instruction __b6_from___b12: -Removing instruction __b6_from___b5: -Removing instruction __b7_from___b13: -Removing instruction __b7_from___b6: -Removing instruction __b15_from___b15: -Removing instruction __b3_from___b2: -Removing instruction __breturn: -Removing instruction __b4_from___b1: -Removing instruction __b1_from___b2: -Removing instruction __breturn: -Removing instruction __b1_from___b2: -Removing instruction __breturn: -Removing instruction __b3_from___b2: -Removing instruction __b3_from___b4: -Removing instruction __b1_from_bitmap_line_ydxi: -Removing instruction __b1_from___b2: -Removing instruction __b2_from___b3: -Removing instruction __b2_from___b4: -Removing instruction __b1_from_bitmap_line_xdyi: -Removing instruction __b1_from___b2: -Removing instruction __b2_from___b3: -Removing instruction __b2_from___b4: -Removing instruction __b1_from_bitmap_line_ydxd: -Removing instruction __b1_from___b2: -Removing instruction __b2_from___b3: -Removing instruction __b2_from___b4: -Removing instruction __b1_from_bitmap_line_xdyd: -Removing instruction __b1_from___b2: -Removing instruction __b2_from___b3: -Removing instruction __b2_from___b4: -Removing instruction __b1_from___b3: -Removing instruction __b2_from___b1: -Removing instruction __b2_from___b4: -Removing instruction __b3_from___b2: -Removing instruction __b3_from___b5: -Removing instruction __b3_from___b1: -Removing instruction __b2_from_bitmap_plot: -Removing instruction vera_vram_address01: -Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction __init1: -Removing instruction __b1: -Removing instruction __breturn: -Removing instruction vera_layer_mode_text_from_conio_x16_init: -Removing instruction __b3: -Removing instruction __b4: -Removing instruction __b5: -Removing instruction __b6: -Removing instruction __b7: -Removing instruction __b8: -Removing instruction __b9: -Removing instruction __b2: -Removing instruction gotoxy_from___b1: -Removing instruction __breturn: -Removing instruction vera_layer_get_color_from_cputc: -Removing instruction __b7: -Removing instruction __b2: -Removing instruction __b3: -Removing instruction __b4: -Removing instruction __b6: -Removing instruction memcpy_in_vram_from_main: -Removing instruction __b12: -Removing instruction vera_layer_mode_tile_from___b12: -Removing instruction __b13: -Removing instruction __b14: -Removing instruction textcolor1: -Removing instruction vera_layer_set_textcolor_from_textcolor1: -Removing instruction bgcolor1: -Removing instruction vera_layer_set_backcolor_from_bgcolor1: -Removing instruction __b6: -Removing instruction __b15: -Removing instruction __b16: -Removing instruction __b17: -Removing instruction __b18: -Removing instruction __b19: -Removing instruction vera_layer_show1: -Removing instruction __b7: -Removing instruction __b20: -Removing instruction __b21: -Removing instruction textcolor2: -Removing instruction vera_layer_set_textcolor_from_textcolor2: -Removing instruction __b8: -Removing instruction __b1_from___b8: -Removing instruction __b22: -Removing instruction textcolor3: -Removing instruction vera_layer_set_textcolor_from_textcolor3: -Removing instruction bgcolor2: -Removing instruction vera_layer_set_backcolor_from_bgcolor2: -Removing instruction __b9: -Removing instruction __b32: -Removing instruction __b33: -Removing instruction __b34: -Removing instruction textcolor4: -Removing instruction vera_layer_set_textcolor_from_textcolor4: -Removing instruction __b10: -Removing instruction __b3_from___b10: -Removing instruction __b35: -Removing instruction __b5: -Removing instruction textcolor5: -Removing instruction vera_layer_set_textcolor_from_textcolor5: -Removing instruction bgcolor3: -Removing instruction vera_layer_set_backcolor_from_bgcolor3: -Removing instruction __b11: -Removing instruction __breturn: -Removing instruction bitmap_line_from___b4: -Removing instruction __b36: -Removing instruction __b3_from___b36: -Removing instruction __b23: -Removing instruction modr16u_from___b23: -Removing instruction __b24: -Removing instruction rand_from___b24: -Removing instruction __b25: -Removing instruction modr16u_from___b25: -Removing instruction __b26: -Removing instruction rand_from___b26: -Removing instruction __b27: -Removing instruction modr16u_from___b27: -Removing instruction __b28: -Removing instruction rand_from___b28: -Removing instruction __b29: -Removing instruction modr16u_from___b29: -Removing instruction __b30: -Removing instruction rand_from___b30: -Removing instruction __b31: -Removing instruction bitmap_line_from___b31: -Removing instruction __b1_from___b31: -Removing instruction vera_layer_mode_tile_from_vera_layer_mode_text: -Removing instruction __b1: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __b3: -Removing instruction __b4: -Removing instruction vera_layer_get_width1: -Removing instruction __b1: -Removing instruction __b5: -Removing instruction __b6: -Removing instruction vera_layer_get_height1: -Removing instruction __b2: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __b1_from_gotoxy: -Removing instruction __breturn: -Removing instruction __b2: -Removing instruction __breturn: -Removing instruction __b1_from_memcpy_in_vram: -Removing instruction __breturn: -Removing instruction __b1_from___b2: -Removing instruction __b1: -Removing instruction __b2: -Removing instruction __b3: -Removing instruction __b4: -Removing instruction __b8: -Removing instruction __b9_from___b8: -Removing instruction __b10: -Removing instruction __b11: -Removing instruction __b12: -Removing instruction __b15: -Removing instruction vera_layer_set_config_from___b16: -Removing instruction __b23: -Removing instruction vera_layer_set_mapbase_from___b23: -Removing instruction __b24: -Removing instruction __b17: -Removing instruction __b18: -Removing instruction __b20: -Removing instruction __b21: -Removing instruction vera_layer_set_tilebase_from___b22: -Removing instruction __breturn: -Removing instruction __b9_from___b7: -Removing instruction __b9_from___b6: -Removing instruction __b1: -Removing instruction vera_display_set_scale_double1: -Removing instruction __b2: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b7: -Removing instruction __b8: -Removing instruction __b1_from___b8: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b4_from___b2: -Removing instruction __b6: -Removing instruction __b1_from___b6: -Removing instruction __b4_from___b5: -Removing instruction __breturn: -Removing instruction vera_layer_get_color_depth1: -Removing instruction __b16: -Removing instruction vera_display_get_hscale_from___b16: -Removing instruction __b17: -Removing instruction vera_display_get_vscale_from___b17: -Removing instruction __b18: -Removing instruction __b1_from___b18: -Removing instruction __b8: -Removing instruction __b9: -Removing instruction __b10: -Removing instruction __b11: -Removing instruction __b12: -Removing instruction __b13: -Removing instruction __b14: -Removing instruction __b15_from___b14: -Removing instruction __breturn: -Removing instruction __b1: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __b2: -Removing instruction __b3: -Removing instruction __b4: -Removing instruction bitmap_line_ydxi_from___b4: -Removing instruction bitmap_line_xdyi_from___b8: -Removing instruction __b10: -Removing instruction bitmap_line_ydxd_from___b10: -Removing instruction bitmap_line_xdyd_from___b9: -Removing instruction __b5: -Removing instruction __b6: -Removing instruction bitmap_line_ydxd_from___b6: -Removing instruction bitmap_line_xdyd_from___b12: -Removing instruction __b14: -Removing instruction bitmap_line_ydxi_from___b14: -Removing instruction bitmap_line_xdyi_from___b13: -Removing instruction __breturn: -Removing instruction divr16u_from_modr16u: -Removing instruction __b1: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __b1: -Removing instruction __b2: -Removing instruction __b5: -Removing instruction gotoxy_from___b5: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __b1_from_vera_display_get_hscale: -Removing instruction __b3_from___b1: -Removing instruction __b3_from___b2: -Removing instruction __b1_from_vera_display_get_vscale: -Removing instruction __b3_from___b1: -Removing instruction __b3_from___b2: -Removing instruction __b1_from_mul16u: -Removing instruction __breturn: -Removing instruction __b4: -Removing instruction __b1_from___b3: -Removing instruction __b1_from_memset_vram: -Removing instruction __breturn: -Removing instruction __b1_from___b2: -Removing instruction bitmap_plot_from___b1: -Removing instruction __b4: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction bitmap_plot_from___b1: -Removing instruction __b4: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction bitmap_plot_from___b1: -Removing instruction __b4: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction bitmap_plot_from___b1: -Removing instruction __b4: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b1_from_divr16u: -Removing instruction __b4: -Removing instruction __b5: -Removing instruction __b6: -Removing instruction __breturn: -Removing instruction __b1_from_insertup: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction memcpy_in_vram_from___b2: -Removing instruction __b4: -Removing instruction __b1_from___b4: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction vera_layer_get_color_from_clearline: -Removing instruction __b4: -Removing instruction __b1_from___b4: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b1_from___b2: -Succesful ASM optimization Pass5UnusedLabelElimination -Replacing jump to rts with rts in jmp __breturn -Replacing jump to rts with rts in jmp __breturn -Skipping double jump to __b3 in bcc __b37 -Skipping double jump to __b3 in beq __b37 -Replacing jump to rts with rts in jmp __breturn -Replacing jump to rts with rts in jmp __breturn -Replacing jump to rts with rts in jmp __breturn -Replacing jump to rts with rts in jmp __breturn -Replacing jump to rts with rts in jmp __breturn -Replacing jump to rts with rts in jmp __breturn -Replacing jump to rts with rts in jmp __breturn -Replacing jump to rts with rts in jmp __breturn -Replacing jump to rts with rts in jmp __b3 -Replacing jump to rts with rts in jmp __b3 -Replacing jump to rts with rts in jmp __b3 -Skipping double jump to __b2 in jmp __b2_from___b1 -Succesful ASM optimization Pass5DoubleJumpElimination -Relabelling long label __b9_from___b5 to __b1 -Relabelling long label __b2_from___b1 to __b3 -Succesful ASM optimization Pass5RelabelLongLabels -Removing instruction jmp __b1 -Removing instruction bne __b2 -Removing instruction jmp __b1 -Removing instruction jmp __b15 -Removing instruction bcc __b3 -Removing instruction jmp __b1 -Removing instruction jmp __b1 -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Succesful ASM optimization Pass5NextJumpElimination -Removing instruction ldy.z conio_screen_layer -Removing instruction ldy.z conio_screen_layer -Removing instruction ldy.z conio_screen_layer -Removing instruction lda #<0 -Replacing instruction ldy #0 with TAY -Succesful ASM optimization Pass5UnnecesaryLoadElimination -Removing instruction __b37: -Removing instruction __b2: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __b3: -Removing instruction __b3: -Removing instruction __b3: -Succesful ASM optimization Pass5UnusedLabelElimination -Removing unreachable instruction jmp __b3 -Succesful ASM optimization Pass5UnreachableCodeElimination -Fixing long branch [1601] bne __b1 to beq -Fixing long branch [1606] bne __b1 to beq -Fixing long branch [390] beq __b2 to bne -Fixing long branch [965] beq __b5 to bne -Fixing long branch [973] beq __b6 to bne -Fixing long branch [981] beq __b7 to bne -Fixing long branch [1016] beq __b13 to bne -Fixing long branch [1024] beq __b14 to bne -Fixing long branch [1797] bcc __b1 to bcs -Fixing long branch [1803] bcc __b1 to bcs - -FINAL SYMBOL TABLE -__constant const char BLACK = 0 -__constant const char BLUE = 6 -char CONIO_SCREEN_BANK -char CONIO_SCREEN_BANK#12 // CONIO_SCREEN_BANK zp[1]:136 625.0625 -char CONIO_SCREEN_BANK#15 // CONIO_SCREEN_BANK_1 zp[1]:171 7.76056338028169 -char *CONIO_SCREEN_TEXT -char *CONIO_SCREEN_TEXT#12 // CONIO_SCREEN_TEXT zp[2]:43 2.000018187272727E7 -unsigned int CONIO_SCREEN_TEXT#17 // CONIO_SCREEN_TEXT_1 zp[2]:178 0.7318840579710145 -__constant char RADIX::BINARY = 2 -__constant char RADIX::DECIMAL = $a -__constant char RADIX::HEXADECIMAL = $10 -__constant char RADIX::OCTAL = 8 -__constant char SIZEOF_POINTER = 2 -__constant unsigned int STACK_BASE = $103 -__constant const char VERA_ADDRSEL = 1 -__constant char * const VERA_ADDRX_H = (char *) 40738 -__constant char * const VERA_ADDRX_L = (char *) 40736 -__constant char * const VERA_ADDRX_M = (char *) 40737 -__constant char * const VERA_CTRL = (char *) 40741 -__constant char * const VERA_DATA0 = (char *) 40739 -__constant char * const VERA_DATA1 = (char *) 40740 -__constant char * const VERA_DC_HSCALE = (char *) 40746 -__constant char * const VERA_DC_VIDEO = (char *) 40745 -__constant char * const VERA_DC_VSCALE = (char *) 40747 -__constant const char VERA_INC_1 = $10 -__constant char * const VERA_L0_CONFIG = (char *) 40749 -__constant char * const VERA_L0_MAPBASE = (char *) 40750 -__constant char * const VERA_L0_TILEBASE = (char *) 40751 -__constant char * const VERA_L1_CONFIG = (char *) 40756 -__constant char * const VERA_L1_MAPBASE = (char *) 40757 -__constant char * const VERA_L1_TILEBASE = (char *) 40758 -__constant const char VERA_LAYER0_ENABLE = $10 -__constant const char VERA_LAYER1_ENABLE = $20 -__constant const char VERA_LAYER_COLOR_DEPTH_1BPP = 0 -__constant const char VERA_LAYER_COLOR_DEPTH_8BPP = 3 -__constant const char VERA_LAYER_COLOR_DEPTH_MASK = 3 -__constant const char VERA_LAYER_CONFIG_256C = 8 -__constant const char VERA_LAYER_CONFIG_MODE_BITMAP = 4 -__constant const unsigned int VERA_LAYER_HEIGHT[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_HEIGHT_128 = $80 -__constant const char VERA_LAYER_HEIGHT_256 = $c0 -__constant const char VERA_LAYER_HEIGHT_64 = $40 -__constant const char VERA_LAYER_HEIGHT_MASK = $c0 -__constant const char VERA_LAYER_TILEBASE_MASK = $fc -__constant const unsigned int VERA_LAYER_WIDTH[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_WIDTH_128 = $20 -__constant const char VERA_LAYER_WIDTH_256 = $30 -__constant const char VERA_LAYER_WIDTH_64 = $10 -__constant const char VERA_LAYER_WIDTH_MASK = $30 -__constant const char VERA_TILEBASE_HEIGHT_16 = 2 -__constant const char VERA_TILEBASE_WIDTH_16 = 1 -__constant const char WHITE = 1 -__constant const char YELLOW = 7 -__loadstore unsigned long __bitmap_address // zp[4]:172 4.06 -__loadstore char __bitmap_color_depth // zp[1]:167 80.4074074074074 -__loadstore char __bitmap_hscale // zp[1]:176 3.9102564102564106 -__loadstore char __bitmap_layer // zp[1]:150 204.0 -__constant const char __bitmap_plot_bitmask[$280] = { fill( $280, 0) } -__constant const char __bitmap_plot_bitshift[$280] = { fill( $280, 0) } -__constant const unsigned int __bitmap_plot_x[$280] = { fill( $280, 0) } -__constant const unsigned long __bitmap_plot_y[$1e0] = { fill( $1e0, 0) } -__loadstore char __bitmap_vscale // zp[1]:177 2.8732394366197185 -void __start() -void bitmap_clear() -char bitmap_clear::$0 // reg byte a 202.0 -char bitmap_clear::$1 // reg byte a 202.0 -char bitmap_clear::$6 // reg byte a 202.0 -char bitmap_clear::$7 // reg byte a 202.0 -unsigned long bitmap_clear::count -unsigned long bitmap_clear::count#0 // count zp[4]:114 40.4 -unsigned int bitmap_clear::hdelta -unsigned int bitmap_clear::hdelta#0 // hdelta zp[2]:157 202.0 -char bitmap_clear::vbank -char bitmap_clear::vbank#0 // reg byte x 101.0 -unsigned int bitmap_clear::vdelta -unsigned int bitmap_clear::vdelta#0 // vdelta zp[2]:161 33.666666666666664 -void *bitmap_clear::vdest -unsigned int bitmap_clear::vdest#0 // vdest zp[2]:145 50.5 -void bitmap_init(char layer , unsigned long address) -char bitmap_init::$0 // reg byte a 202.0 -char bitmap_init::$1 // reg byte x 202.0 -unsigned int bitmap_init::$10 // zp[2]:131 667.3333333333334 -unsigned int bitmap_init::$13 // zp[2]:133 667.3333333333334 -char bitmap_init::$2 // reg byte x 202.0 -unsigned int bitmap_init::$23 // zp[2]:55 2002.0 -unsigned int bitmap_init::$24 // zp[2]:57 2002.0 -unsigned int bitmap_init::$25 // zp[2]:59 2002.0 -unsigned int bitmap_init::$26 // zp[2]:61 2002.0 -char bitmap_init::$27 // reg byte a 202.0 -unsigned int bitmap_init::$28 // zp[2]:63 2002.0 -const unsigned int *bitmap_init::$29 // zp[2]:55 2002.0 -char bitmap_init::$3 // reg byte a 202.0 -const char *bitmap_init::$30 // zp[2]:81 2002.0 -const char *bitmap_init::$31 // zp[2]:83 2002.0 -const unsigned int *bitmap_init::$32 // zp[2]:57 2002.0 -const char *bitmap_init::$33 // zp[2]:85 2002.0 -const char *bitmap_init::$34 // zp[2]:87 2002.0 -const unsigned int *bitmap_init::$35 // zp[2]:59 2002.0 -const char *bitmap_init::$36 // zp[2]:89 2002.0 -const char *bitmap_init::$37 // zp[2]:91 2002.0 -const unsigned int *bitmap_init::$38 // zp[2]:61 2002.0 -const char *bitmap_init::$39 // zp[2]:93 2002.0 -char bitmap_init::$4 // reg byte a 202.0 -const char *bitmap_init::$40 // zp[2]:95 2002.0 -const unsigned long *bitmap_init::$41 // zp[2]:63 2002.0 -unsigned int bitmap_init::$7 // zp[2]:129 667.3333333333334 -unsigned long bitmap_init::address -__constant unsigned long bitmap_init::address#0 = 0 // address -char bitmap_init::bitmask -char bitmap_init::bitmask#0 // bitmask zp[1]:33 101.0 -char bitmap_init::bitmask#1 // bitmask zp[1]:33 2002.0 -char bitmap_init::bitmask#10 // bitmask zp[1]:33 373.1818181818182 -char bitmap_init::bitmask#11 // bitmask zp[1]:33 455.0 -char bitmap_init::bitmask#12 // bitmask zp[1]:33 455.0 -char bitmap_init::bitmask#13 // bitmask zp[1]:33 385.0 -char bitmap_init::bitmask#16 // bitmask zp[1]:33 1001.0 -char bitmap_init::bitmask#2 // bitmask zp[1]:33 2002.0 -char bitmap_init::bitmask#3 // bitmask zp[1]:33 2002.0 -char bitmap_init::bitmask#4 // bitmask zp[1]:33 2002.0 -signed char bitmap_init::bitshift -signed char bitmap_init::bitshift#0 // bitshift zp[1]:32 202.0 -signed char bitmap_init::bitshift#1 // bitshift zp[1]:32 1001.0 -signed char bitmap_init::bitshift#10 // bitshift zp[1]:32 310.4 -signed char bitmap_init::bitshift#11 // bitshift zp[1]:32 400.4 -signed char bitmap_init::bitshift#12 // bitshift zp[1]:32 400.4 -signed char bitmap_init::bitshift#13 // bitshift zp[1]:32 400.4 -signed char bitmap_init::bitshift#14 // bitshift zp[1]:32 500.5 -signed char bitmap_init::bitshift#2 // bitshift zp[1]:32 1001.0 -signed char bitmap_init::bitshift#3 // bitshift zp[1]:32 1001.0 -signed char bitmap_init::bitshift#4 // bitshift zp[1]:32 2002.0 -unsigned int bitmap_init::hdelta -unsigned int bitmap_init::hdelta#0 // hdelta zp[2]:163 122.44444444444446 -char bitmap_init::layer -__constant char bitmap_init::layer#0 = 0 // layer -char bitmap_init::vera_layer_get_color_depth1_$0 // reg byte a 202.0 -char bitmap_init::vera_layer_get_color_depth1_$1 // reg byte a 202.0 -char *bitmap_init::vera_layer_get_color_depth1_config -char *bitmap_init::vera_layer_get_color_depth1_config#0 // vera_layer_get_color_depth1_config zp[2]:155 202.0 -char bitmap_init::vera_layer_get_color_depth1_layer -char bitmap_init::vera_layer_get_color_depth1_layer#0 // reg byte a 202.0 -char bitmap_init::vera_layer_get_color_depth1_return -char bitmap_init::vera_layer_get_color_depth1_return#0 // reg byte a 202.0 -char bitmap_init::vera_layer_get_color_depth1_return#1 // reg byte a 202.0 -unsigned int bitmap_init::x -unsigned int bitmap_init::x#1 // x zp[2]:103 1501.5 -unsigned int bitmap_init::x#10 // x zp[2]:103 353.29411764705884 -unsigned int bitmap_init::y -unsigned int bitmap_init::y#1 // y zp[2]:71 1501.5 -unsigned int bitmap_init::y#2 // y zp[2]:71 600.5999999999999 -unsigned long bitmap_init::yoffs -unsigned long bitmap_init::yoffs#0 // yoffs zp[4]:106 202.0 -unsigned long bitmap_init::yoffs#1 // yoffs zp[4]:106 667.3333333333334 -unsigned long bitmap_init::yoffs#2 // yoffs zp[4]:106 776.0 -void bitmap_line(unsigned int x0 , unsigned int x1 , unsigned int y0 , unsigned int y1 , char c) -char bitmap_line::c -char bitmap_line::c#0 // reg byte x 202.0 -char bitmap_line::c#1 // reg byte x 2002.0 -char bitmap_line::c#10 // reg byte x 1502.037037037037 -unsigned int bitmap_line::x0 -unsigned int bitmap_line::x0#0 // x0 zp[2]:6 8.782608695652174 -unsigned int bitmap_line::x0#1 // x0 zp[2]:6 667.3333333333334 -unsigned int bitmap_line::x0#10 // x0 zp[2]:6 4555.550000000001 -unsigned int bitmap_line::x1 -unsigned int bitmap_line::x1#0 // x1 zp[2]:10 11.882352941176471 -unsigned int bitmap_line::x1#1 // x1 zp[2]:10 1001.0 -unsigned int bitmap_line::x1#10 // x1 zp[2]:10 4555.550000000001 -unsigned int bitmap_line::xd -unsigned int bitmap_line::xd#1 // xd zp[2]:34 3500.3500000000004 -unsigned int bitmap_line::xd#2 // xd zp[2]:34 3500.3500000000004 -unsigned int bitmap_line::y0 -unsigned int bitmap_line::y0#0 // y0 zp[2]:8 18.363636363636363 -unsigned int bitmap_line::y0#10 // y0 zp[2]:8 6005.6500000000015 -unsigned int bitmap_line::y1 -unsigned int bitmap_line::y1#0 // y1 zp[2]:2 40.4 -unsigned int bitmap_line::y1#10 // y1 zp[2]:2 6005.6500000000015 -unsigned int bitmap_line::yd -unsigned int bitmap_line::yd#1 // yd zp[2]:41 4444.888888888889 -unsigned int bitmap_line::yd#10 // yd zp[2]:41 4444.888888888889 -unsigned int bitmap_line::yd#11 // yd_1 zp[2]:39 4444.888888888889 -unsigned int bitmap_line::yd#2 // yd_1 zp[2]:39 4444.888888888889 -void bitmap_line_xdyd(unsigned int x , unsigned int y , unsigned int x1 , unsigned int xd , unsigned int yd , char c) -unsigned int bitmap_line_xdyd::$6 // zp[2]:14 2.00000002E8 -char bitmap_line_xdyd::c -char bitmap_line_xdyd::c#0 // c zp[1]:32 20002.0 -char bitmap_line_xdyd::c#1 // c zp[1]:32 20002.0 -char bitmap_line_xdyd::c#3 // c zp[1]:32 6668000.2 -unsigned int bitmap_line_xdyd::e -unsigned int bitmap_line_xdyd::e#0 // e zp[2]:24 200002.0 -unsigned int bitmap_line_xdyd::e#1 // e zp[2]:24 1.3333333466666667E8 -unsigned int bitmap_line_xdyd::e#2 // e zp[2]:24 2.00000002E8 -unsigned int bitmap_line_xdyd::e#3 // e zp[2]:24 3.33500005E7 -unsigned int bitmap_line_xdyd::e#6 // e zp[2]:24 1.00000001E8 -unsigned int bitmap_line_xdyd::x -unsigned int bitmap_line_xdyd::x#0 // x zp[2]:30 3333.6666666666665 -unsigned int bitmap_line_xdyd::x#1 // x zp[2]:30 3333.6666666666665 -unsigned int bitmap_line_xdyd::x#2 // x zp[2]:30 3.7500000375E7 -unsigned int bitmap_line_xdyd::x#3 // x zp[2]:30 6.00200008E7 -unsigned int bitmap_line_xdyd::x#6 // x zp[2]:30 60001.5 -unsigned int bitmap_line_xdyd::x1 -unsigned int bitmap_line_xdyd::x1#0 // x1 zp[2]:6 5000.5 -unsigned int bitmap_line_xdyd::x1#1 // x1 zp[2]:6 5000.5 -unsigned int bitmap_line_xdyd::x1#6 // x1 zp[2]:6 6668000.2 -unsigned int bitmap_line_xdyd::xd -unsigned int bitmap_line_xdyd::xd#0 // xd zp[2]:34 6667.333333333333 -unsigned int bitmap_line_xdyd::xd#1 // xd zp[2]:34 6667.333333333333 -unsigned int bitmap_line_xdyd::xd#5 // xd zp[2]:34 1.3334666933333334E7 -unsigned int bitmap_line_xdyd::y -unsigned int bitmap_line_xdyd::y#0 // y zp[2]:8 4000.4 -unsigned int bitmap_line_xdyd::y#1 // y zp[2]:8 4000.4 -unsigned int bitmap_line_xdyd::y#2 // y zp[2]:8 1.00000001E8 -unsigned int bitmap_line_xdyd::y#3 // y zp[2]:8 5.0012500625E7 -unsigned int bitmap_line_xdyd::y#5 // y zp[2]:8 60001.5 -unsigned int bitmap_line_xdyd::y#6 // y zp[2]:8 1.00000001E8 -unsigned int bitmap_line_xdyd::yd -unsigned int bitmap_line_xdyd::yd#0 // yd zp[2]:41 10001.0 -unsigned int bitmap_line_xdyd::yd#1 // yd zp[2]:41 10001.0 -unsigned int bitmap_line_xdyd::yd#2 // yd zp[2]:41 6674666.933333334 -void bitmap_line_xdyi(unsigned int x , unsigned int y , unsigned int x1 , unsigned int xd , unsigned int yd , char c) -unsigned int bitmap_line_xdyi::$6 // zp[2]:14 2.00000002E8 -char bitmap_line_xdyi::c -char bitmap_line_xdyi::c#0 // c zp[1]:33 20002.0 -char bitmap_line_xdyi::c#1 // c zp[1]:33 20002.0 -char bitmap_line_xdyi::c#3 // c zp[1]:33 6668000.2 -unsigned int bitmap_line_xdyi::e -unsigned int bitmap_line_xdyi::e#0 // e zp[2]:24 200002.0 -unsigned int bitmap_line_xdyi::e#1 // e zp[2]:24 1.3333333466666667E8 -unsigned int bitmap_line_xdyi::e#2 // e zp[2]:24 2.00000002E8 -unsigned int bitmap_line_xdyi::e#3 // e zp[2]:24 3.33500005E7 -unsigned int bitmap_line_xdyi::e#6 // e zp[2]:24 1.00000001E8 -unsigned int bitmap_line_xdyi::x -unsigned int bitmap_line_xdyi::x#0 // x zp[2]:30 3333.6666666666665 -unsigned int bitmap_line_xdyi::x#1 // x zp[2]:30 3333.6666666666665 -unsigned int bitmap_line_xdyi::x#2 // x zp[2]:30 3.7500000375E7 -unsigned int bitmap_line_xdyi::x#3 // x zp[2]:30 6.00200008E7 -unsigned int bitmap_line_xdyi::x#6 // x zp[2]:30 60001.5 -unsigned int bitmap_line_xdyi::x1 -unsigned int bitmap_line_xdyi::x1#0 // x1 zp[2]:6 5000.5 -unsigned int bitmap_line_xdyi::x1#1 // x1 zp[2]:6 5000.5 -unsigned int bitmap_line_xdyi::x1#6 // x1 zp[2]:6 6668000.2 -unsigned int bitmap_line_xdyi::xd -unsigned int bitmap_line_xdyi::xd#0 // xd zp[2]:34 6667.333333333333 -unsigned int bitmap_line_xdyi::xd#1 // xd zp[2]:34 6667.333333333333 -unsigned int bitmap_line_xdyi::xd#5 // xd zp[2]:34 1.3334666933333334E7 -unsigned int bitmap_line_xdyi::y -unsigned int bitmap_line_xdyi::y#0 // y zp[2]:8 4000.4 -unsigned int bitmap_line_xdyi::y#1 // y zp[2]:8 4000.4 -unsigned int bitmap_line_xdyi::y#2 // y zp[2]:8 1.00000001E8 -unsigned int bitmap_line_xdyi::y#3 // y zp[2]:8 5.0012500625E7 -unsigned int bitmap_line_xdyi::y#5 // y zp[2]:8 60001.5 -unsigned int bitmap_line_xdyi::y#6 // y zp[2]:8 1.00000001E8 -unsigned int bitmap_line_xdyi::yd -unsigned int bitmap_line_xdyi::yd#0 // yd zp[2]:39 10001.0 -unsigned int bitmap_line_xdyi::yd#1 // yd zp[2]:39 10001.0 -unsigned int bitmap_line_xdyi::yd#2 // yd zp[2]:39 6674666.933333334 -void bitmap_line_ydxd(unsigned int y , unsigned int x , unsigned int y1 , unsigned int yd , unsigned int xd , char c) -unsigned int bitmap_line_ydxd::$6 // zp[2]:14 2.00000002E8 -char bitmap_line_ydxd::c -char bitmap_line_ydxd::c#0 // c zp[1]:32 20002.0 -char bitmap_line_ydxd::c#1 // c zp[1]:32 20002.0 -char bitmap_line_ydxd::c#3 // c zp[1]:32 6668000.2 -unsigned int bitmap_line_ydxd::e -unsigned int bitmap_line_ydxd::e#0 // e zp[2]:24 200002.0 -unsigned int bitmap_line_ydxd::e#1 // e zp[2]:24 1.3333333466666667E8 -unsigned int bitmap_line_ydxd::e#2 // e zp[2]:24 2.00000002E8 -unsigned int bitmap_line_ydxd::e#3 // e zp[2]:24 3.33500005E7 -unsigned int bitmap_line_ydxd::e#6 // e zp[2]:24 1.00000001E8 -unsigned int bitmap_line_ydxd::x -unsigned int bitmap_line_ydxd::x#0 // x zp[2]:6 4000.4 -unsigned int bitmap_line_ydxd::x#1 // x zp[2]:6 4000.4 -unsigned int bitmap_line_ydxd::x#2 // x zp[2]:6 1.00000001E8 -unsigned int bitmap_line_ydxd::x#3 // x zp[2]:6 5.0012500625E7 -unsigned int bitmap_line_ydxd::x#5 // x zp[2]:6 60001.5 -unsigned int bitmap_line_ydxd::x#6 // x zp[2]:6 1.00000001E8 -unsigned int bitmap_line_ydxd::xd -unsigned int bitmap_line_ydxd::xd#0 // xd zp[2]:34 10001.0 -unsigned int bitmap_line_ydxd::xd#1 // xd zp[2]:34 10001.0 -unsigned int bitmap_line_ydxd::xd#2 // xd zp[2]:34 6674666.933333334 -unsigned int bitmap_line_ydxd::y -unsigned int bitmap_line_ydxd::y#0 // y zp[2]:4 3333.6666666666665 -unsigned int bitmap_line_ydxd::y#1 // y zp[2]:4 3333.6666666666665 -unsigned int bitmap_line_ydxd::y#2 // y zp[2]:4 6.00200008E7 -unsigned int bitmap_line_ydxd::y#3 // y zp[2]:4 3.7500000375E7 -unsigned int bitmap_line_ydxd::y#7 // y zp[2]:4 60001.5 -unsigned int bitmap_line_ydxd::y1 -unsigned int bitmap_line_ydxd::y1#0 // y1 zp[2]:8 5000.5 -unsigned int bitmap_line_ydxd::y1#1 // y1 zp[2]:8 5000.5 -unsigned int bitmap_line_ydxd::y1#6 // y1 zp[2]:8 6668000.2 -unsigned int bitmap_line_ydxd::yd -unsigned int bitmap_line_ydxd::yd#0 // yd zp[2]:41 6667.333333333333 -unsigned int bitmap_line_ydxd::yd#1 // yd zp[2]:41 6667.333333333333 -unsigned int bitmap_line_ydxd::yd#5 // yd zp[2]:41 1.3334666933333334E7 -void bitmap_line_ydxi(unsigned int y , unsigned int x , unsigned int y1 , unsigned int yd , unsigned int xd , char c) -unsigned int bitmap_line_ydxi::$6 // zp[2]:30 2.00000002E8 -char bitmap_line_ydxi::c -char bitmap_line_ydxi::c#0 // c zp[1]:32 20002.0 -char bitmap_line_ydxi::c#1 // c zp[1]:32 20002.0 -char bitmap_line_ydxi::c#3 // c zp[1]:32 6668000.2 -unsigned int bitmap_line_ydxi::e -unsigned int bitmap_line_ydxi::e#0 // e zp[2]:24 200002.0 -unsigned int bitmap_line_ydxi::e#1 // e zp[2]:24 1.3333333466666667E8 -unsigned int bitmap_line_ydxi::e#2 // e zp[2]:24 2.00000002E8 -unsigned int bitmap_line_ydxi::e#3 // e zp[2]:24 3.33500005E7 -unsigned int bitmap_line_ydxi::e#6 // e zp[2]:24 1.00000001E8 -unsigned int bitmap_line_ydxi::x -unsigned int bitmap_line_ydxi::x#0 // x zp[2]:6 4000.4 -unsigned int bitmap_line_ydxi::x#1 // x zp[2]:6 4000.4 -unsigned int bitmap_line_ydxi::x#2 // x zp[2]:6 1.00000001E8 -unsigned int bitmap_line_ydxi::x#3 // x zp[2]:6 5.0012500625E7 -unsigned int bitmap_line_ydxi::x#5 // x zp[2]:6 60001.5 -unsigned int bitmap_line_ydxi::x#6 // x zp[2]:6 1.00000001E8 -unsigned int bitmap_line_ydxi::xd -unsigned int bitmap_line_ydxi::xd#0 // xd zp[2]:34 10001.0 -unsigned int bitmap_line_ydxi::xd#1 // xd zp[2]:34 10001.0 -unsigned int bitmap_line_ydxi::xd#2 // xd zp[2]:34 6674666.933333334 -unsigned int bitmap_line_ydxi::y -unsigned int bitmap_line_ydxi::y#0 // y zp[2]:4 3333.6666666666665 -unsigned int bitmap_line_ydxi::y#1 // y zp[2]:4 3333.6666666666665 -unsigned int bitmap_line_ydxi::y#2 // y zp[2]:4 3.7500000375E7 -unsigned int bitmap_line_ydxi::y#3 // y zp[2]:4 6.00200008E7 -unsigned int bitmap_line_ydxi::y#6 // y zp[2]:4 60001.5 -unsigned int bitmap_line_ydxi::y1 -unsigned int bitmap_line_ydxi::y1#0 // y1 zp[2]:8 5000.5 -unsigned int bitmap_line_ydxi::y1#1 // y1 zp[2]:8 5000.5 -unsigned int bitmap_line_ydxi::y1#6 // y1 zp[2]:8 6668000.2 -unsigned int bitmap_line_ydxi::yd -unsigned int bitmap_line_ydxi::yd#0 // yd zp[2]:39 6667.333333333333 -unsigned int bitmap_line_ydxi::yd#1 // yd zp[2]:39 6667.333333333333 -unsigned int bitmap_line_ydxi::yd#5 // yd zp[2]:39 1.3334666933333334E7 -void bitmap_plot(unsigned int x , unsigned int y , char c) -unsigned int bitmap_plot::$10 // zp[2]:12 2.000000002E9 -const unsigned int *bitmap_plot::$12 // zp[2]:14 1.000000001E9 -const unsigned long *bitmap_plot::$13 // zp[2]:12 2.000000002E9 -const char *bitmap_plot::$14 // zp[2]:20 2.000000002E9 -const char *bitmap_plot::$15 // zp[2]:22 2.000000002E9 -char bitmap_plot::$3 // reg byte x 2.000000002E9 -char bitmap_plot::$6 // reg byte a 2.000000002E9 -char bitmap_plot::$7 // reg byte a 2.000000002E9 -char bitmap_plot::$8 // reg byte a 2.000000002E9 -unsigned int bitmap_plot::$9 // zp[2]:14 2.000000002E9 -char bitmap_plot::bitshift -char bitmap_plot::bitshift#0 // reg byte a 1.5000000015E9 -char bitmap_plot::c -char bitmap_plot::c#0 // reg byte x 2.72727273E8 -char bitmap_plot::c#1 // reg byte x 2.00000002E8 -char bitmap_plot::c#2 // reg byte x 2.00000002E8 -char bitmap_plot::c#3 // reg byte x 2.00000002E8 -char bitmap_plot::c#4 // reg byte x 2.00000002E8 -char bitmap_plot::c#5 // reg byte x 2.1818181872727272E8 -unsigned long bitmap_plot::plot_x -unsigned long bitmap_plot::plot_x#0 // plot_x zp[4]:26 5.000000005E8 -unsigned long bitmap_plot::plot_y -unsigned long bitmap_plot::plot_y#0 // plot_y zp[4]:16 2.000000002E9 -unsigned long bitmap_plot::plotter -char bitmap_plot::vera_vram_address01_$0 // reg byte a 2.000000002E9 -char bitmap_plot::vera_vram_address01_$1 // reg byte a 2.000000002E9 -char bitmap_plot::vera_vram_address01_$3 // reg byte a 2.000000002E9 -unsigned long bitmap_plot::vera_vram_address01_bankaddr -unsigned long bitmap_plot::vera_vram_address01_bankaddr#0 // vera_vram_address01_bankaddr zp[4]:26 3.63636364E8 -char bitmap_plot::vera_vram_address01_incr -unsigned int bitmap_plot::x -unsigned int bitmap_plot::x#0 // x zp[2]:30 6.6666667333333336E7 -unsigned int bitmap_plot::x#1 // x zp[2]:30 6.6666667333333336E7 -unsigned int bitmap_plot::x#2 // x zp[2]:30 6.6666667333333336E7 -unsigned int bitmap_plot::x#3 // x zp[2]:30 6.6666667333333336E7 -unsigned int bitmap_plot::x#4 // x zp[2]:30 1.7000000035E8 -unsigned int bitmap_plot::y -unsigned int bitmap_plot::y#0 // y zp[2]:4 1.00000001E8 -unsigned int bitmap_plot::y#1 // y zp[2]:4 1.00000001E8 -unsigned int bitmap_plot::y#2 // y zp[2]:4 1.00000001E8 -unsigned int bitmap_plot::y#3 // y zp[2]:4 1.00000001E8 -unsigned int bitmap_plot::y#4 // y zp[2]:4 3.5000000125E8 -__constant const char bitmasks[5] = { $80, $c0, $f0, $ff } -__constant const signed char bitshifts[5] = { 7, 6, 4, 0 } -void clearline() -char clearline::$1 // reg byte a 2.00000002E8 -char clearline::$2 // reg byte a 2.00000002E8 -char clearline::$5 // reg byte a 2.00000002E8 -char *clearline::addr -char *clearline::addr#0 // addr zp[2]:14 1.00000001E8 -unsigned int clearline::c -unsigned int clearline::c#1 // c zp[2]:4 2.0000000002E10 -unsigned int clearline::c#2 // c zp[2]:4 7.50000000075E9 -char clearline::color -char clearline::color#0 // reg byte x 1.6833333336666665E9 -void clrscr() -char clrscr::$0 // reg byte a 202.0 -char clrscr::$1 // zp[1]:135 40.4 -char clrscr::$2 // reg byte a 202.0 -char clrscr::$5 // reg byte a 2002.0 -char clrscr::$6 // reg byte a 2002.0 -char clrscr::$7 // reg byte a 2002.0 -char clrscr::$9 // reg byte a 202.0 -char clrscr::c -char clrscr::c#1 // reg byte y 20002.0 -char clrscr::c#2 // reg byte y 7500.75 -char *clrscr::ch -char clrscr::color -char clrscr::color#0 // color zp[1]:135 594.2352941176471 -char clrscr::l -char clrscr::l#1 // reg byte x 2002.0 -char clrscr::l#2 // reg byte x 200.2 -char *clrscr::line_text -char *clrscr::line_text#0 // line_text zp[2]:112 18.363636363636363 -char *clrscr::line_text#1 // line_text zp[2]:112 1001.0 -char *clrscr::line_text#2 // line_text zp[2]:112 293.2142857142857 -__constant char conio_cursor_x[2] = { 0, 0 } -__constant char conio_cursor_y[2] = { 0, 0 } -__loadstore unsigned int conio_height // zp[2]:51 5624.185393258427 -__constant unsigned int conio_line_text[2] = { 0, 0 } -__loadstore char conio_rowshift // zp[1]:45 5126904.086294416 -__loadstore unsigned int conio_rowskip // zp[2]:46 4902456.401960785 -__loadstore volatile char conio_screen_height // zp[1]:49 62827.3664921466 -__loadstore char conio_screen_layer // zp[1]:48 1240329.689530686 -__loadstore volatile char conio_screen_width // zp[1]:36 4.414101324229074E7 -__constant char conio_scroll_enable[2] = { 1, 1 } -__loadstore unsigned int conio_width // zp[2]:165 111.69444444444444 -void conio_x16_init() -__constant char * const conio_x16_init::BASIC_CURSOR_LINE = (char *) 214 -char conio_x16_init::line -char conio_x16_init::line#0 // line zp[1]:168 2.1999999999999997 -char conio_x16_init::line#1 // line zp[1]:168 22.0 -char conio_x16_init::line#3 // line zp[1]:168 33.0 -__stackcall void cputc(char c) -char cputc::$15 // reg byte a 20002.0 -unsigned int cputc::$16 // zp[2]:41 20002.0 -char cputc::$2 // reg byte a 20002.0 -char cputc::$4 // reg byte a 20002.0 -char cputc::$5 // reg byte a 20002.0 -char cputc::$6 // reg byte a 20002.0 -__constant char cputc::OFFSET_STACK_C = 0 -char cputc::c -char cputc::c#0 // c zp[1]:105 1764.8823529411764 -char cputc::color -char cputc::color#0 // reg byte x 1428.7142857142858 -char *cputc::conio_addr -char *cputc::conio_addr#0 // conio_addr zp[2]:30 10001.0 -char *cputc::conio_addr#1 // conio_addr zp[2]:30 6000.6 -char cputc::scroll_enable -char cputc::scroll_enable#0 // reg byte a 20002.0 -void cputln() -char cputln::$2 // reg byte a 200002.0 -char cputln::$3 // reg byte a 200002.0 -unsigned int cputln::temp -unsigned int cputln::temp#0 // temp zp[2]:6 200002.0 -unsigned int cputln::temp#1 // temp zp[2]:6 100001.0 -void cscroll() -unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) -char divr16u::$1 // reg byte a 2000002.0 -char divr16u::$2 // reg byte a 2000002.0 -unsigned int divr16u::dividend -unsigned int divr16u::dividend#0 // dividend zp[2]:2 250000.25 -unsigned int divr16u::dividend#1 // dividend zp[2]:2 3667.333333333333 -unsigned int divr16u::dividend#2 // dividend zp[2]:2 430000.57142857136 -unsigned int divr16u::divisor -unsigned int divr16u::divisor#0 // divisor zp[2]:30 117706.05882352941 -char divr16u::i -char divr16u::i#1 // reg byte x 1500001.5 -char divr16u::i#2 // reg byte x 153846.3076923077 -unsigned int divr16u::quotient -unsigned int divr16u::quotient#1 // quotient zp[2]:39 1500001.5 -unsigned int divr16u::quotient#2 // quotient zp[2]:39 1000001.0 -unsigned int divr16u::quotient#3 // quotient zp[2]:39 250000.25 -unsigned int divr16u::rem -unsigned int divr16u::rem#0 // rem zp[2]:34 750000.75 -unsigned int divr16u::rem#1 // rem zp[2]:34 2000002.0 -unsigned int divr16u::rem#10 // rem zp[2]:34 1003334.6666666666 -unsigned int divr16u::rem#2 // rem zp[2]:34 2000002.0 -unsigned int divr16u::rem#4 // rem zp[2]:34 2000002.0 -unsigned int divr16u::rem#5 // rem zp[2]:34 1000001.0 -unsigned int divr16u::return -unsigned int divr16u::return#0 // return zp[2]:39 1000001.0 -void gotoxy(char x , char y) -char gotoxy::$5 // reg byte a 2.0000002E7 -unsigned int gotoxy::$6 // zp[2]:37 2.0000002E7 -unsigned int gotoxy::line_offset -unsigned int gotoxy::line_offset#0 // line_offset zp[2]:37 1.0000001E7 -char gotoxy::x -char gotoxy::y -char gotoxy::y#1 // reg byte x 22.0 -char gotoxy::y#10 // reg byte x 4000000.4 -char gotoxy::y#2 // reg byte x 2000002.0 -char gotoxy::y#7 // reg byte x 7000004.666666666 -__constant unsigned int hdeltas[$10] = { 0, $50, $28, $14, 0, $a0, $50, $28, 0, $140, $a0, $50, 0, $280, $140, $a0 } -void insertup() -char insertup::$3 // reg byte a 2.000000002E9 -char insertup::cy -char insertup::cy#0 // cy zp[1]:33 7.769230784615384E7 -char insertup::i -char insertup::i#1 // reg byte x 2.000000002E9 -char insertup::i#2 // reg byte x 4.000000004E8 -unsigned int insertup::line -unsigned int insertup::line#0 // line zp[2]:10 2.000000002E9 -char *insertup::start -char *insertup::start#0 // start zp[2]:10 1.000000001E9 -char insertup::width -char insertup::width#0 // width zp[1]:32 8.416666683333334E7 -char kbhit() -__constant char * const kbhit::GETIN = (char *) 65508 -__constant char * const kbhit::IN_DEV = (char *) 650 -__loadstore volatile char kbhit::ch // zp[1]:50 10001.0 -__constant char * const kbhit::chptr = &kbhit::ch -char kbhit::return -char kbhit::return#0 // reg byte a 20002.0 -char kbhit::return#1 // reg byte a 2775.75 -char kbhit::return#2 // reg byte a 202.0 -char kbhit::return#3 // reg byte a 2002.0 -void main() -char main::$30 // reg byte a 202.0 -unsigned int main::$40 // zp[2]:110 202.0 -char main::$43 // reg byte a 2002.0 -char main::bgcolor1_color -char main::bgcolor2_color -char main::bgcolor3_color -char main::color -char main::color#1 // color zp[1]:126 525.75 -char main::color#2 // color zp[1]:126 344.8888888888889 -__constant char main::s[$16] = "vera in bitmap mode, -" -__constant char main::s1[$1f] = "color depth 8 bits per pixel. -" -__constant char main::s2[$29] = "in this mode, it is possible to display -" -__constant char main::s3[$19] = "graphics in 256 colors. -" -__constant char main::s4[$10] = "press a key ..." -__constant char main::s5[$27] = "here you see all the colors possible. -" -char main::textcolor1_color -char main::textcolor2_color -char main::textcolor3_color -char main::textcolor4_color -char main::textcolor5_color -char main::vera_layer_show1_layer -unsigned int main::x -unsigned int main::x#1 // x zp[2]:120 701.0 -unsigned int main::x#3 // x zp[2]:120 310.4 -void memcpy_in_vram(char dest_bank , void *dest , char dest_increment , char src_bank , void *src , char src_increment , unsigned int num) -char memcpy_in_vram::$0 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$1 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$3 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$4 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$5 // reg byte a 2.0000000002E10 -void *memcpy_in_vram::dest -void *memcpy_in_vram::dest#0 // dest zp[2]:10 6.666666673333334E8 -void *memcpy_in_vram::dest#2 // dest zp[2]:10 2.1000000003000002E9 -char memcpy_in_vram::dest_bank -char memcpy_in_vram::dest_bank#2 // reg byte y 8.333333334166666E8 -char memcpy_in_vram::dest_increment -unsigned int memcpy_in_vram::i -unsigned int memcpy_in_vram::i#1 // i zp[2]:2 2.00000000002E11 -unsigned int memcpy_in_vram::i#2 // i zp[2]:2 1.00000000001E11 -unsigned int memcpy_in_vram::num -unsigned int memcpy_in_vram::num#0 // num zp[2]:8 1.000000001E9 -unsigned int memcpy_in_vram::num#3 // num zp[2]:8 5.611111111222221E9 -void *memcpy_in_vram::src -char *memcpy_in_vram::src#0 // src zp[2]:6 3.333333336666667E8 -void *memcpy_in_vram::src#2 // src zp[2]:6 5.25000000075E9 -void *memcpy_in_vram::src#3 // src zp[2]:6 2.000000002E9 -char memcpy_in_vram::src_bank -char memcpy_in_vram::src_increment -void memset_vram(char vbank , void *vdest , char data , unsigned long num) -char memset_vram::$0 // reg byte a 2002.0 -char memset_vram::$1 // reg byte a 2002.0 -char memset_vram::$2 // reg byte a 2002.0 -char memset_vram::data -__constant char memset_vram::data#0 = 0 // data -unsigned long memset_vram::i -unsigned long memset_vram::i#1 // i zp[4]:16 20002.0 -unsigned long memset_vram::i#2 // i zp[4]:16 10001.0 -unsigned long memset_vram::num -unsigned long memset_vram::num#0 // num zp[4]:114 841.8333333333333 -char memset_vram::vbank -char memset_vram::vbank#0 // reg byte x 137.75 -void *memset_vram::vdest -void *memset_vram::vdest#0 // vdest zp[2]:145 420.59999999999997 -unsigned int modr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) -unsigned int modr16u::dividend -unsigned int modr16u::dividend#0 // dividend zp[2]:2 202.0 -unsigned int modr16u::dividend#1 // dividend zp[2]:2 202.0 -unsigned int modr16u::dividend#2 // dividend zp[2]:2 202.0 -unsigned int modr16u::dividend#3 // dividend zp[2]:2 202.0 -unsigned int modr16u::dividend#4 // dividend zp[2]:2 1405.0 -unsigned int modr16u::divisor -unsigned int modr16u::divisor#4 // divisor zp[2]:143 500.5 -unsigned int modr16u::rem -unsigned int modr16u::return -unsigned int modr16u::return#0 // return zp[2]:118 234.16666666666669 -unsigned int modr16u::return#10 // return zp[2]:118 202.0 -unsigned int modr16u::return#2 // return zp[2]:118 202.0 -unsigned int modr16u::return#3 // return zp[2]:118 202.0 -unsigned int modr16u::return#4 // return zp[2]:118 202.0 -unsigned long mul16u(unsigned int a , unsigned int b) -char mul16u::$1 // reg byte a 20002.0 -unsigned int mul16u::a -unsigned int mul16u::a#0 // a zp[2]:2 367.33333333333337 -unsigned int mul16u::a#1 // a zp[2]:2 10001.0 -unsigned int mul16u::a#2 // a zp[2]:2 6834.166666666666 -unsigned int mul16u::b -unsigned int mul16u::b#0 // b zp[2]:161 101.0 -unsigned long mul16u::mb -unsigned long mul16u::mb#0 // mb zp[4]:26 2002.0 -unsigned long mul16u::mb#1 // mb zp[4]:26 20002.0 -unsigned long mul16u::mb#2 // mb zp[4]:26 4429.142857142857 -unsigned long mul16u::res -unsigned long mul16u::res#1 // res zp[4]:16 20002.0 -unsigned long mul16u::res#2 // res zp[4]:16 5017.333333333333 -unsigned long mul16u::res#6 // res zp[4]:16 10001.0 -unsigned long mul16u::return -unsigned long mul16u::return#0 // return zp[4]:114 202.0 -void printf_str(void (*putc)(char) , const char *s) -char printf_str::c -char printf_str::c#1 // reg byte a 1001.0 -void (*printf_str::putc)(char) -const char *printf_str::s -const char *printf_str::s#0 // s zp[2]:77 400.4 -const char *printf_str::s#8 // s zp[2]:77 1552.0 -const char *printf_str::s#9 // s zp[2]:77 101.0 -unsigned int rand() -unsigned int rand::$0 // zp[2]:97 2002.0 -unsigned int rand::$1 // zp[2]:99 2002.0 -unsigned int rand::$2 // zp[2]:101 2002.0 -unsigned int rand::return -unsigned int rand::return#0 // return zp[2]:110 215.14285714285714 -unsigned int rand::return#10 // return zp[2]:110 202.0 -unsigned int rand::return#11 // return zp[2]:110 202.0 -unsigned int rand::return#12 // return zp[2]:110 202.0 -unsigned int rand::return#2 // return zp[2]:110 202.0 -unsigned int rand::return#3 // return zp[2]:110 202.0 -unsigned int rand_state -unsigned int rand_state#0 // rand_state zp[2]:53 1501.5 -unsigned int rand_state#1 // rand_state zp[2]:53 1501.5 -unsigned int rand_state#13 // rand_state zp[2]:53 1253.5 -unsigned int rand_state#14 // rand_state zp[2]:53 78.34375 -unsigned int rand_state#23 // rand_state zp[2]:53 33.666666666666664 -unsigned int rem16u -unsigned int rem16u#0 // rem16u zp[2]:65 3667.333333333333 -void screenlayer(char layer) -unsigned int screenlayer::$2 // zp[2]:137 202.0 -char screenlayer::$3 // reg byte a 202.0 -unsigned int screenlayer::$4 // zp[2]:127 202.0 -unsigned int screenlayer::$5 // zp[2]:139 202.0 -char screenlayer::layer -char screenlayer::vera_layer_get_height1_$0 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$1 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$2 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$3 // reg byte a 202.0 -char *screenlayer::vera_layer_get_height1_config -char *screenlayer::vera_layer_get_height1_config#0 // vera_layer_get_height1_config zp[2]:153 202.0 -char screenlayer::vera_layer_get_height1_layer -char screenlayer::vera_layer_get_height1_layer#0 // reg byte a 202.0 -unsigned int screenlayer::vera_layer_get_height1_return -unsigned int screenlayer::vera_layer_get_height1_return#0 // vera_layer_get_height1_return zp[2]:139 202.0 -unsigned int screenlayer::vera_layer_get_height1_return#1 // vera_layer_get_height1_return zp[2]:139 202.0 -char screenlayer::vera_layer_get_width1_$0 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$1 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$2 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$3 // reg byte a 202.0 -char *screenlayer::vera_layer_get_width1_config -char *screenlayer::vera_layer_get_width1_config#0 // vera_layer_get_width1_config zp[2]:151 202.0 -char screenlayer::vera_layer_get_width1_layer -char screenlayer::vera_layer_get_width1_layer#0 // reg byte a 202.0 -unsigned int screenlayer::vera_layer_get_width1_return -unsigned int screenlayer::vera_layer_get_width1_return#0 // vera_layer_get_width1_return zp[2]:137 202.0 -unsigned int screenlayer::vera_layer_get_width1_return#1 // vera_layer_get_width1_return zp[2]:137 202.0 -void screensize(char *x , char *y) -char screensize::$1 // reg byte a 202.0 -char screensize::$3 // reg byte a 202.0 -char screensize::hscale -char screensize::hscale#0 // reg byte a 202.0 -char screensize::vscale -char screensize::vscale#0 // reg byte a 202.0 -char *screensize::x -__constant char *screensize::x#0 = &conio_screen_width // x -char *screensize::y -__constant char *screensize::y#0 = &conio_screen_height // y -__constant const unsigned int vdeltas[4] = { 0, $1e0, $f0, $a0 } -char vera_display_get_hscale() -__constant char vera_display_get_hscale::hscale[4] = { 0, $80, $40, $20 } -char vera_display_get_hscale::return -char vera_display_get_hscale::return#0 // reg byte x 3367.333333333333 -char vera_display_get_hscale::return#2 // reg byte x 202.0 -char vera_display_get_hscale::s -char vera_display_get_hscale::s#1 // reg byte x 15001.5 -char vera_display_get_hscale::s#2 // reg byte x 20002.0 -char vera_display_get_hscale::scale -__constant char vera_display_get_hscale::scale#0 = 0 // scale -char vera_display_get_vscale() -char vera_display_get_vscale::return -char vera_display_get_vscale::return#0 // reg byte x 3367.333333333333 -char vera_display_get_vscale::return#2 // reg byte x 202.0 -char vera_display_get_vscale::s -char vera_display_get_vscale::s#1 // reg byte x 15001.5 -char vera_display_get_vscale::s#2 // reg byte x 20002.0 -char vera_display_get_vscale::scale -__constant char vera_display_get_vscale::scale#0 = 0 // scale -__constant char vera_display_get_vscale::vscale[4] = { 0, $80, $40, $20 } -__constant char vera_layer_backcolor[2] = { BLUE, BLUE } -__constant char *vera_layer_config[2] = { VERA_L0_CONFIG, VERA_L1_CONFIG } -__constant char vera_layer_enable[2] = { VERA_LAYER0_ENABLE, VERA_LAYER1_ENABLE } -char vera_layer_get_backcolor(char layer) -char vera_layer_get_backcolor::layer -char vera_layer_get_backcolor::layer#0 // reg byte x 1102.0 -char vera_layer_get_backcolor::return -char vera_layer_get_backcolor::return#0 // reg byte a 202.0 -char vera_layer_get_backcolor::return#1 // reg byte a 367.33333333333337 -char vera_layer_get_color(char layer) -char vera_layer_get_color::$0 // reg byte a 2.000000002E9 -char vera_layer_get_color::$1 // reg byte a 2.000000002E9 -char vera_layer_get_color::$3 // reg byte a 2.000000002E9 -char *vera_layer_get_color::addr -char *vera_layer_get_color::addr#0 // addr zp[2]:6 2.000000002E9 -char vera_layer_get_color::layer -char vera_layer_get_color::layer#0 // reg byte x 20002.0 -char vera_layer_get_color::layer#1 // reg byte x 2.00000002E8 -char vera_layer_get_color::layer#2 // reg byte x 6.833350010000001E8 -char vera_layer_get_color::return -char vera_layer_get_color::return#0 // reg byte a 20002.0 -char vera_layer_get_color::return#1 // reg byte a 2.000000002E9 -char vera_layer_get_color::return#2 // reg byte a 2.000000002E9 -char vera_layer_get_color::return#3 // reg byte a 5.25002501E8 -char vera_layer_get_color::return#4 // reg byte a 2.00000002E8 -char vera_layer_get_mapbase_bank(char layer) -char vera_layer_get_mapbase_bank::layer -char vera_layer_get_mapbase_bank::layer#0 // reg byte x 1102.0 -char vera_layer_get_mapbase_bank::return -char vera_layer_get_mapbase_bank::return#0 // reg byte a 367.33333333333337 -char vera_layer_get_mapbase_bank::return#2 // reg byte a 202.0 -unsigned int vera_layer_get_mapbase_offset(char layer) -char vera_layer_get_mapbase_offset::$0 // reg byte a 2002.0 -char vera_layer_get_mapbase_offset::layer -char vera_layer_get_mapbase_offset::layer#0 // reg byte a 1102.0 -unsigned int vera_layer_get_mapbase_offset::return -unsigned int vera_layer_get_mapbase_offset::return#0 // return zp[2]:141 367.33333333333337 -unsigned int vera_layer_get_mapbase_offset::return#2 // return zp[2]:141 202.0 -char vera_layer_get_rowshift(char layer) -char vera_layer_get_rowshift::layer -char vera_layer_get_rowshift::layer#0 // reg byte x 1102.0 -char vera_layer_get_rowshift::return -char vera_layer_get_rowshift::return#0 // reg byte a 367.33333333333337 -char vera_layer_get_rowshift::return#2 // reg byte a 202.0 -unsigned int vera_layer_get_rowskip(char layer) -char vera_layer_get_rowskip::$0 // reg byte a 2002.0 -char vera_layer_get_rowskip::layer -char vera_layer_get_rowskip::layer#0 // reg byte a 1102.0 -unsigned int vera_layer_get_rowskip::return -unsigned int vera_layer_get_rowskip::return#0 // return zp[2]:127 367.33333333333337 -unsigned int vera_layer_get_rowskip::return#2 // return zp[2]:127 202.0 -char vera_layer_get_textcolor(char layer) -char vera_layer_get_textcolor::layer -char vera_layer_get_textcolor::layer#0 // reg byte x 1102.0 -char vera_layer_get_textcolor::return -char vera_layer_get_textcolor::return#0 // reg byte a 202.0 -char vera_layer_get_textcolor::return#1 // reg byte a 367.33333333333337 -__constant char *vera_layer_mapbase[2] = { VERA_L0_MAPBASE, VERA_L1_MAPBASE } -void vera_layer_mode_bitmap(char layer , unsigned long bitmap_address , unsigned int mapwidth , unsigned int color_depth) -unsigned long vera_layer_mode_bitmap::bitmap_address -__constant unsigned long vera_layer_mode_bitmap::bitmap_address#1 = 0 // bitmap_address -unsigned int vera_layer_mode_bitmap::color_depth -char vera_layer_mode_bitmap::config -__constant char vera_layer_mode_bitmap::config#11 = VERA_LAYER_COLOR_DEPTH_8BPP|VERA_LAYER_CONFIG_MODE_BITMAP // config -char vera_layer_mode_bitmap::layer -__constant char vera_layer_mode_bitmap::layer#0 = 0 // layer -unsigned int vera_layer_mode_bitmap::mapwidth -char vera_layer_mode_bitmap::tilebase -__constant char vera_layer_mode_bitmap::tilebase#1 = 0 // tilebase -void vera_layer_mode_text(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , unsigned int color_mode) -unsigned int vera_layer_mode_text::color_mode -char vera_layer_mode_text::layer -__constant char vera_layer_mode_text::layer#0 = 1 // layer -unsigned long vera_layer_mode_text::mapbase_address -__constant unsigned long vera_layer_mode_text::mapbase_address#0 = 0 // mapbase_address -unsigned int vera_layer_mode_text::mapheight -__constant unsigned int vera_layer_mode_text::mapheight#0 = $40 // mapheight -unsigned int vera_layer_mode_text::mapwidth -__constant unsigned int vera_layer_mode_text::mapwidth#0 = $80 // mapwidth -unsigned long vera_layer_mode_text::tilebase_address -__constant unsigned long vera_layer_mode_text::tilebase_address#0 = $f800 // tilebase_address -char vera_layer_mode_text::tileheight -__constant char vera_layer_mode_text::tileheight#0 = 8 // tileheight -char vera_layer_mode_text::tilewidth -__constant char vera_layer_mode_text::tilewidth#0 = 8 // tilewidth -void vera_layer_mode_tile(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , char color_depth) -unsigned int vera_layer_mode_tile::$1 // zp[2]:124 1001.0 -char vera_layer_mode_tile::$11 // reg byte a 2002.0 -char vera_layer_mode_tile::$12 // reg byte a 2002.0 -char vera_layer_mode_tile::$13 // reg byte a 2002.0 -char vera_layer_mode_tile::$14 // reg byte a 2002.0 -char vera_layer_mode_tile::$17 // zp[1]:149 250.25 -char vera_layer_mode_tile::$18 // zp[1]:147 273.0 -char vera_layer_mode_tile::$2 // reg byte a 2002.0 -unsigned int vera_layer_mode_tile::$6 // zp[2]:79 2002.0 -char vera_layer_mode_tile::$7 // reg byte a 2002.0 -char vera_layer_mode_tile::color_depth -char vera_layer_mode_tile::config -char vera_layer_mode_tile::config#10 // reg byte x 2002.0 -char vera_layer_mode_tile::config#11 // reg byte x 2002.0 -char vera_layer_mode_tile::config#12 // reg byte x 2002.0 -char vera_layer_mode_tile::config#21 // reg byte x 1001.0 -char vera_layer_mode_tile::config#25 // reg byte x 3003.0 -char vera_layer_mode_tile::layer -char vera_layer_mode_tile::layer#10 // layer zp[1]:148 263.4210526315791 -char vera_layer_mode_tile::mapbase -char vera_layer_mode_tile::mapbase#0 // reg byte x 1001.0 -unsigned long vera_layer_mode_tile::mapbase_address -unsigned long vera_layer_mode_tile::mapbase_address#0 // mapbase_address zp[4]:67 2002.0 -unsigned long vera_layer_mode_tile::mapbase_address#10 // mapbase_address zp[4]:67 111.22222222222223 -unsigned int vera_layer_mode_tile::mapheight -unsigned int vera_layer_mode_tile::mapheight#10 // mapheight zp[2]:159 190.66666666666666 -unsigned int vera_layer_mode_tile::mapwidth -unsigned int vera_layer_mode_tile::mapwidth#10 // mapwidth zp[2]:122 1001.0 -char vera_layer_mode_tile::tilebase -char vera_layer_mode_tile::tilebase#0 // reg byte a 2002.0 -char vera_layer_mode_tile::tilebase#1 // reg byte x 1334.6666666666667 -char vera_layer_mode_tile::tilebase#10 // reg byte x 2002.0 -char vera_layer_mode_tile::tilebase#12 // reg byte x 2002.0000000000002 -char vera_layer_mode_tile::tilebase#3 // reg byte x 2002.0 -char vera_layer_mode_tile::tilebase#5 // reg byte x 2002.0 -unsigned long vera_layer_mode_tile::tilebase_address -unsigned long vera_layer_mode_tile::tilebase_address#0 // tilebase_address zp[4]:73 2002.0 -unsigned long vera_layer_mode_tile::tilebase_address#10 // tilebase_address zp[4]:73 87.04347826086956 -char vera_layer_mode_tile::tileheight -char vera_layer_mode_tile::tileheight#10 // tileheight zp[1]:170 37.074074074074076 -char vera_layer_mode_tile::tilewidth -char vera_layer_mode_tile::tilewidth#10 // tilewidth zp[1]:169 40.04 -__constant char vera_layer_rowshift[2] = { 0, 0 } -__constant unsigned int vera_layer_rowskip[2] = { 0, 0 } -char vera_layer_set_backcolor(char layer , char color) -char vera_layer_set_backcolor::color -char vera_layer_set_backcolor::color#4 // reg byte a 101.0 -char vera_layer_set_backcolor::layer -char vera_layer_set_backcolor::layer#1 // reg byte x 22.0 -char vera_layer_set_backcolor::layer#2 // reg byte x 22.0 -char vera_layer_set_backcolor::layer#3 // reg byte x 22.0 -char vera_layer_set_backcolor::layer#4 // reg byte x 134.0 -char vera_layer_set_backcolor::old -char vera_layer_set_backcolor::return -void vera_layer_set_config(char layer , char config) -char vera_layer_set_config::$0 // reg byte a 20002.0 -char *vera_layer_set_config::addr -char *vera_layer_set_config::addr#0 // addr zp[2]:37 20002.0 -char vera_layer_set_config::config -char vera_layer_set_config::config#0 // reg byte x 2002.0 -char vera_layer_set_config::config#2 // reg byte x 3667.333333333333 -char vera_layer_set_config::layer -char vera_layer_set_config::layer#0 // reg byte a 1001.0 -char vera_layer_set_config::layer#2 // reg byte a 11002.0 -void vera_layer_set_mapbase(char layer , char mapbase) -char vera_layer_set_mapbase::$0 // reg byte a 20002.0 -char *vera_layer_set_mapbase::addr -char *vera_layer_set_mapbase::addr#0 // addr zp[2]:37 20002.0 -char vera_layer_set_mapbase::layer -char vera_layer_set_mapbase::layer#0 // reg byte a 1001.0 -char vera_layer_set_mapbase::layer#3 // reg byte a 11002.0 -char vera_layer_set_mapbase::mapbase -char vera_layer_set_mapbase::mapbase#0 // reg byte x 2002.0 -char vera_layer_set_mapbase::mapbase#3 // reg byte x 3667.333333333333 -void vera_layer_set_text_color_mode(char layer , char color_mode) -char *vera_layer_set_text_color_mode::addr -char *vera_layer_set_text_color_mode::addr#0 // addr zp[2]:37 2502.5 -char vera_layer_set_text_color_mode::color_mode -char vera_layer_set_text_color_mode::layer -char vera_layer_set_textcolor(char layer , char color) -char vera_layer_set_textcolor::color -char vera_layer_set_textcolor::color#6 // reg byte a 101.0 -char vera_layer_set_textcolor::layer -char vera_layer_set_textcolor::layer#1 // reg byte x 22.0 -char vera_layer_set_textcolor::layer#2 // reg byte x 22.0 -char vera_layer_set_textcolor::layer#3 // reg byte x 22.0 -char vera_layer_set_textcolor::layer#4 // reg byte x 22.0 -char vera_layer_set_textcolor::layer#5 // reg byte x 22.0 -char vera_layer_set_textcolor::layer#6 // reg byte x 156.0 -char vera_layer_set_textcolor::old -char vera_layer_set_textcolor::return -void vera_layer_set_tilebase(char layer , char tilebase) -char vera_layer_set_tilebase::$0 // reg byte a 20002.0 -char *vera_layer_set_tilebase::addr -char *vera_layer_set_tilebase::addr#0 // addr zp[2]:37 20002.0 -char vera_layer_set_tilebase::layer -char vera_layer_set_tilebase::layer#0 // reg byte a 1001.0 -char vera_layer_set_tilebase::layer#2 // reg byte a 11002.0 -char vera_layer_set_tilebase::tilebase -char vera_layer_set_tilebase::tilebase#0 // reg byte x 2002.0 -char vera_layer_set_tilebase::tilebase#2 // reg byte x 3667.333333333333 -__constant char vera_layer_textcolor[2] = { WHITE, WHITE } -__constant char *vera_layer_tilebase[2] = { VERA_L0_TILEBASE, VERA_L1_TILEBASE } -__constant unsigned long vera_mapbase_address[2] = { 0, 0 } -__constant char vera_mapbase_bank[2] = { 0, 0 } -__constant unsigned int vera_mapbase_offset[2] = { 0, 0 } -__constant unsigned long vera_tilebase_address[2] = { 0, 0 } -__constant char vera_tilebase_bank[2] = { 0, 0 } -__constant unsigned int vera_tilebase_offset[2] = { 0, 0 } - -zp[1]:168 [ conio_x16_init::line#3 conio_x16_init::line#1 conio_x16_init::line#0 ] -zp[2]:43 [ CONIO_SCREEN_TEXT#12 ] -zp[1]:136 [ CONIO_SCREEN_BANK#12 ] -zp[2]:120 [ main::x#3 main::x#1 ] -zp[1]:126 [ main::color#2 main::color#1 ] -reg byte x [ vera_layer_set_textcolor::layer#6 vera_layer_set_textcolor::layer#1 vera_layer_set_textcolor::layer#2 vera_layer_set_textcolor::layer#3 vera_layer_set_textcolor::layer#4 vera_layer_set_textcolor::layer#5 ] -reg byte a [ vera_layer_set_textcolor::color#6 ] -reg byte x [ vera_layer_set_backcolor::layer#4 vera_layer_set_backcolor::layer#1 vera_layer_set_backcolor::layer#2 vera_layer_set_backcolor::layer#3 ] -reg byte a [ vera_layer_set_backcolor::color#4 ] -reg byte a [ vera_layer_set_mapbase::layer#3 vera_layer_set_mapbase::layer#0 ] -reg byte x [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::mapbase#0 ] -reg byte x [ gotoxy::y#10 gotoxy::y#7 gotoxy::y#1 gotoxy::y#2 ] -reg byte x [ vera_layer_get_color::layer#2 vera_layer_get_color::layer#1 vera_layer_get_color::layer#0 ] -reg byte a [ vera_layer_get_color::return#3 vera_layer_get_color::return#1 vera_layer_get_color::return#2 ] -reg byte y [ memcpy_in_vram::dest_bank#2 ] -zp[2]:122 [ vera_layer_mode_tile::mapwidth#10 ] -zp[1]:148 [ vera_layer_mode_tile::layer#10 ] -zp[2]:159 [ vera_layer_mode_tile::mapheight#10 ] -zp[4]:67 [ vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::mapbase_address#0 ] -zp[4]:73 [ vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilebase_address#0 ] -zp[1]:169 [ vera_layer_mode_tile::tilewidth#10 ] -zp[1]:170 [ vera_layer_mode_tile::tileheight#10 ] -reg byte x [ vera_layer_mode_tile::config#25 vera_layer_mode_tile::config#21 vera_layer_mode_tile::config#10 vera_layer_mode_tile::config#11 vera_layer_mode_tile::config#12 ] -reg byte x [ vera_layer_mode_tile::tilebase#10 vera_layer_mode_tile::tilebase#12 vera_layer_mode_tile::tilebase#1 vera_layer_mode_tile::tilebase#3 vera_layer_mode_tile::tilebase#5 ] -reg byte x [ clrscr::l#2 clrscr::l#1 ] -zp[2]:112 [ clrscr::line_text#2 clrscr::line_text#1 clrscr::line_text#0 ] -reg byte y [ clrscr::c#2 clrscr::c#1 ] -zp[2]:77 [ printf_str::s#8 printf_str::s#9 printf_str::s#0 ] -zp[2]:103 [ bitmap_init::x#10 bitmap_init::x#1 ] -zp[2]:71 [ bitmap_init::y#2 bitmap_init::y#1 ] -zp[4]:106 [ bitmap_init::yoffs#2 bitmap_init::yoffs#0 bitmap_init::yoffs#1 ] -zp[2]:10 [ bitmap_line::x1#10 bitmap_line::x1#0 bitmap_line::x1#1 memcpy_in_vram::dest#2 memcpy_in_vram::dest#0 insertup::start#0 insertup::line#0 ] -zp[2]:8 [ bitmap_line::y0#10 bitmap_line::y0#0 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::y1#0 bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 memcpy_in_vram::num#3 memcpy_in_vram::num#0 ] -reg byte x [ bitmap_line::c#10 bitmap_line::c#0 bitmap_line::c#1 ] -zp[2]:53 [ rand_state#13 rand_state#23 rand_state#14 rand_state#0 rand_state#1 ] -zp[2]:143 [ modr16u::divisor#4 ] -reg byte a [ vera_layer_set_config::layer#2 vera_layer_set_config::layer#0 ] -reg byte x [ vera_layer_set_config::config#2 vera_layer_set_config::config#0 ] -reg byte a [ vera_layer_set_tilebase::layer#2 vera_layer_set_tilebase::layer#0 ] -reg byte x [ vera_layer_set_tilebase::tilebase#2 vera_layer_set_tilebase::tilebase#0 ] -reg byte x [ vera_display_get_hscale::return#0 vera_display_get_hscale::s#2 vera_display_get_hscale::s#1 ] -reg byte x [ vera_display_get_vscale::return#0 vera_display_get_vscale::s#2 vera_display_get_vscale::s#1 ] -zp[2]:2 [ mul16u::a#2 mul16u::a#0 mul16u::a#1 modr16u::dividend#4 modr16u::dividend#0 modr16u::dividend#1 modr16u::dividend#2 modr16u::dividend#3 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 bitmap_line::y1#10 bitmap_line::y1#0 memcpy_in_vram::i#2 memcpy_in_vram::i#1 ] -zp[2]:24 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] -zp[2]:34 [ divr16u::rem#4 divr16u::rem#10 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::xd#0 bitmap_line::xd#2 bitmap_line::xd#1 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] -zp[2]:39 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::yd#0 bitmap_line::yd#2 bitmap_line::yd#11 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] -reg byte x [ divr16u::i#2 divr16u::i#1 ] -reg byte x [ insertup::i#2 insertup::i#1 ] -reg byte x [ bitmap_plot::c#0 bitmap_plot::$3 bitmap_plot::c#5 bitmap_plot::c#2 bitmap_plot::c#1 bitmap_plot::c#4 bitmap_plot::c#3 ] -zp[2]:4 [ clearline::c#2 clearline::c#1 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#2 bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ] -zp[1]:36 [ conio_screen_width ] -zp[1]:49 [ conio_screen_height ] -zp[1]:48 [ conio_screen_layer ] -zp[2]:165 [ conio_width ] -zp[2]:51 [ conio_height ] -zp[1]:45 [ conio_rowshift ] -zp[2]:46 [ conio_rowskip ] -zp[4]:172 [ __bitmap_address ] -zp[1]:150 [ __bitmap_layer ] -zp[1]:176 [ __bitmap_hscale ] -zp[1]:177 [ __bitmap_vscale ] -zp[1]:167 [ __bitmap_color_depth ] -zp[1]:105 [ cputc::c#0 ] -reg byte a [ vera_layer_get_color::return#0 ] -reg byte x [ cputc::color#0 ] -reg byte a [ cputc::$15 ] -reg byte a [ cputc::$2 ] -reg byte a [ cputc::$4 ] -reg byte a [ cputc::$5 ] -reg byte a [ cputc::$6 ] -reg byte a [ cputc::scroll_enable#0 ] -zp[2]:41 [ cputc::$16 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 bitmap_line::yd#1 bitmap_line::yd#10 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] -reg byte a [ kbhit::return#2 ] -reg byte a [ main::$30 ] -reg byte a [ kbhit::return#3 ] -reg byte a [ main::$43 ] -zp[2]:110 [ rand::return#2 rand::return#0 rand::return#3 rand::return#10 rand::return#11 rand::return#12 main::$40 ] -zp[2]:118 [ modr16u::return#2 modr16u::return#0 modr16u::return#3 modr16u::return#4 modr16u::return#10 ] -reg byte a [ screensize::hscale#0 ] -reg byte a [ screensize::$1 ] -reg byte a [ screensize::vscale#0 ] -reg byte a [ screensize::$3 ] -reg byte x [ vera_layer_get_mapbase_bank::layer#0 ] -reg byte a [ vera_layer_get_mapbase_bank::return#2 ] -zp[1]:171 [ CONIO_SCREEN_BANK#15 ] -reg byte a [ vera_layer_get_mapbase_offset::layer#0 ] -zp[2]:141 [ vera_layer_get_mapbase_offset::return#2 vera_layer_get_mapbase_offset::return#0 ] -zp[2]:178 [ CONIO_SCREEN_TEXT#17 ] -reg byte a [ screenlayer::vera_layer_get_width1_layer#0 ] -reg byte a [ screenlayer::vera_layer_get_width1_$2 ] -zp[2]:151 [ screenlayer::vera_layer_get_width1_config#0 ] -reg byte a [ screenlayer::vera_layer_get_width1_$0 ] -reg byte a [ screenlayer::vera_layer_get_width1_$1 ] -reg byte a [ screenlayer::vera_layer_get_width1_$3 ] -zp[2]:137 [ screenlayer::vera_layer_get_width1_return#0 screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 ] -reg byte x [ vera_layer_get_rowshift::layer#0 ] -reg byte a [ vera_layer_get_rowshift::return#2 ] -reg byte a [ screenlayer::$3 ] -reg byte a [ vera_layer_get_rowskip::layer#0 ] -zp[2]:127 [ vera_layer_get_rowskip::return#2 screenlayer::$4 vera_layer_get_rowskip::return#0 ] -reg byte a [ screenlayer::vera_layer_get_height1_layer#0 ] -reg byte a [ screenlayer::vera_layer_get_height1_$2 ] -zp[2]:153 [ screenlayer::vera_layer_get_height1_config#0 ] -reg byte a [ screenlayer::vera_layer_get_height1_$0 ] -reg byte a [ screenlayer::vera_layer_get_height1_$1 ] -reg byte a [ screenlayer::vera_layer_get_height1_$3 ] -zp[2]:139 [ screenlayer::vera_layer_get_height1_return#0 screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 ] -reg byte a [ vera_layer_set_mapbase::$0 ] -reg byte a [ gotoxy::$5 ] -reg byte a [ vera_layer_get_color::$3 ] -reg byte a [ vera_layer_get_color::$0 ] -reg byte a [ vera_layer_get_color::$1 ] -reg byte a [ cputln::$2 ] -zp[2]:6 [ cputln::temp#0 cputln::temp#1 vera_layer_get_color::addr#0 bitmap_line::x0#10 bitmap_line::x0#0 bitmap_line::x0#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 memcpy_in_vram::src#2 memcpy_in_vram::src#3 memcpy_in_vram::src#0 ] -reg byte a [ cputln::$3 ] -reg byte a [ memcpy_in_vram::$0 ] -reg byte a [ memcpy_in_vram::$1 ] -reg byte a [ memcpy_in_vram::$3 ] -reg byte a [ memcpy_in_vram::$4 ] -reg byte a [ memcpy_in_vram::$5 ] -reg byte a [ vera_layer_mode_tile::$14 ] -zp[2]:124 [ vera_layer_mode_tile::$1 ] -zp[1]:149 [ vera_layer_mode_tile::$17 ] -reg byte a [ vera_layer_mode_tile::$2 ] -zp[1]:147 [ vera_layer_mode_tile::$18 ] -reg byte x [ vera_layer_mode_tile::mapbase#0 ] -zp[2]:79 [ vera_layer_mode_tile::$6 ] -reg byte a [ vera_layer_mode_tile::$7 ] -reg byte a [ vera_layer_mode_tile::tilebase#0 ] -reg byte a [ vera_layer_mode_tile::$13 ] -reg byte a [ vera_layer_mode_tile::$12 ] -reg byte a [ vera_layer_mode_tile::$11 ] -reg byte x [ vera_layer_get_backcolor::layer#0 ] -reg byte a [ vera_layer_get_backcolor::return#0 ] -reg byte a [ clrscr::$0 ] -zp[1]:135 [ clrscr::$1 clrscr::color#0 ] -reg byte x [ vera_layer_get_textcolor::layer#0 ] -reg byte a [ vera_layer_get_textcolor::return#0 ] -reg byte a [ clrscr::$2 ] -reg byte a [ clrscr::$9 ] -reg byte a [ clrscr::$5 ] -reg byte a [ clrscr::$6 ] -reg byte a [ clrscr::$7 ] -reg byte a [ printf_str::c#1 ] -reg byte a [ bitmap_init::vera_layer_get_color_depth1_layer#0 ] -reg byte a [ bitmap_init::vera_layer_get_color_depth1_$1 ] -zp[2]:155 [ bitmap_init::vera_layer_get_color_depth1_config#0 ] -reg byte a [ bitmap_init::vera_layer_get_color_depth1_$0 ] -reg byte a [ bitmap_init::vera_layer_get_color_depth1_return#0 ] -reg byte a [ bitmap_init::vera_layer_get_color_depth1_return#1 ] -reg byte a [ bitmap_init::$0 ] -reg byte x [ vera_display_get_hscale::return#2 ] -reg byte x [ bitmap_init::$1 ] -reg byte x [ vera_display_get_vscale::return#2 ] -reg byte x [ bitmap_init::$2 ] -zp[2]:129 [ bitmap_init::$7 ] -zp[2]:55 [ bitmap_init::$23 bitmap_init::$29 ] -zp[2]:81 [ bitmap_init::$30 ] -zp[2]:83 [ bitmap_init::$31 ] -zp[2]:131 [ bitmap_init::$10 ] -zp[2]:57 [ bitmap_init::$24 bitmap_init::$32 ] -zp[2]:85 [ bitmap_init::$33 ] -zp[2]:87 [ bitmap_init::$34 ] -zp[2]:133 [ bitmap_init::$13 ] -zp[2]:59 [ bitmap_init::$25 bitmap_init::$35 ] -zp[2]:89 [ bitmap_init::$36 ] -zp[2]:91 [ bitmap_init::$37 ] -zp[2]:61 [ bitmap_init::$26 bitmap_init::$38 ] -zp[2]:93 [ bitmap_init::$39 ] -zp[2]:95 [ bitmap_init::$40 ] -reg byte a [ bitmap_init::$3 ] -reg byte a [ bitmap_init::$4 ] -reg byte a [ bitmap_init::$27 ] -zp[2]:163 [ bitmap_init::hdelta#0 ] -zp[2]:63 [ bitmap_init::$28 bitmap_init::$41 ] -reg byte a [ bitmap_clear::$6 ] -zp[2]:161 [ bitmap_clear::vdelta#0 mul16u::b#0 ] -reg byte a [ bitmap_clear::$0 ] -reg byte a [ bitmap_clear::$1 ] -reg byte a [ bitmap_clear::$7 ] -zp[2]:157 [ bitmap_clear::hdelta#0 ] -zp[4]:114 [ mul16u::return#0 bitmap_clear::count#0 memset_vram::num#0 ] -reg byte x [ bitmap_clear::vbank#0 ] -zp[2]:145 [ bitmap_clear::vdest#0 memset_vram::vdest#0 ] -reg byte x [ memset_vram::vbank#0 ] -zp[1]:50 [ kbhit::ch ] -reg byte a [ kbhit::return#0 ] -reg byte a [ kbhit::return#1 ] -zp[2]:97 [ rand::$0 ] -zp[2]:99 [ rand::$1 ] -zp[2]:101 [ rand::$2 ] -reg byte a [ vera_layer_get_mapbase_bank::return#0 ] -reg byte a [ vera_layer_get_mapbase_offset::$0 ] -reg byte a [ vera_layer_get_rowshift::return#0 ] -reg byte a [ vera_layer_get_rowskip::$0 ] -reg byte a [ vera_layer_set_config::$0 ] -reg byte a [ vera_layer_set_tilebase::$0 ] -zp[2]:37 [ vera_layer_set_tilebase::addr#0 vera_layer_set_config::addr#0 vera_layer_set_text_color_mode::addr#0 gotoxy::$6 gotoxy::line_offset#0 vera_layer_set_mapbase::addr#0 ] -reg byte a [ vera_layer_get_backcolor::return#1 ] -reg byte a [ vera_layer_get_textcolor::return#1 ] -reg byte a [ mul16u::$1 ] -reg byte a [ memset_vram::$0 ] -reg byte a [ memset_vram::$1 ] -reg byte a [ memset_vram::$2 ] -zp[2]:30 [ bitmap_line_ydxi::$6 divr16u::divisor#0 cputc::conio_addr#0 cputc::conio_addr#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] -reg byte a [ divr16u::$1 ] -reg byte a [ divr16u::$2 ] -zp[2]:65 [ rem16u#0 ] -zp[1]:33 [ insertup::cy#0 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#1 bitmap_line_xdyi::c#0 bitmap_init::bitmask#13 bitmap_init::bitmask#3 bitmap_init::bitmask#12 bitmap_init::bitmask#11 bitmap_init::bitmask#10 bitmap_init::bitmask#0 bitmap_init::bitmask#16 bitmap_init::bitmask#1 bitmap_init::bitmask#2 bitmap_init::bitmask#4 ] -zp[1]:32 [ insertup::width#0 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#1 bitmap_line_xdyd::c#0 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#0 bitmap_line_ydxd::c#1 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#1 bitmap_line_ydxi::c#0 bitmap_init::bitshift#13 bitmap_init::bitshift#3 bitmap_init::bitshift#12 bitmap_init::bitshift#11 bitmap_init::bitshift#10 bitmap_init::bitshift#0 bitmap_init::bitshift#14 bitmap_init::bitshift#1 bitmap_init::bitshift#2 bitmap_init::bitshift#4 ] -reg byte a [ insertup::$3 ] -zp[4]:26 [ bitmap_plot::plot_x#0 bitmap_plot::vera_vram_address01_bankaddr#0 mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] -zp[2]:12 [ bitmap_plot::$10 bitmap_plot::$13 ] -zp[4]:16 [ bitmap_plot::plot_y#0 memset_vram::i#2 memset_vram::i#1 mul16u::res#2 mul16u::res#6 mul16u::res#1 ] -zp[2]:20 [ bitmap_plot::$14 ] -reg byte a [ bitmap_plot::bitshift#0 ] -reg byte a [ bitmap_plot::vera_vram_address01_$0 ] -reg byte a [ bitmap_plot::vera_vram_address01_$1 ] -reg byte a [ bitmap_plot::vera_vram_address01_$3 ] -zp[2]:22 [ bitmap_plot::$15 ] -reg byte a [ bitmap_plot::$6 ] -reg byte a [ bitmap_plot::$7 ] -reg byte a [ bitmap_plot::$8 ] -reg byte a [ clearline::$5 ] -zp[2]:14 [ clearline::addr#0 bitmap_line_xdyd::$6 bitmap_line_ydxd::$6 bitmap_line_xdyi::$6 bitmap_plot::$9 bitmap_plot::$12 ] -reg byte a [ clearline::$1 ] -reg byte a [ clearline::$2 ] -reg byte a [ vera_layer_get_color::return#4 ] -reg byte x [ clearline::color#0 ] - - -FINAL ASSEMBLER -Score: 590386 - - // File Comments -// Example program for the Commander X16. -// Demonstrates the usage of the VERA tile map modes and layering. - // Upstart -.cpu _65c02 - // Commodore 64 PRG executable file -.file [name="bitmap_8bpp_320_x_240.prg", type="prg", segments="Program"] -.segmentdef Program [segments="Basic, Code, Data"] -.segmentdef Basic [start=$0801] -.segmentdef Code [start=$80d] -.segmentdef Data [startAfter="Code"] -.segment Basic -:BasicUpstart(__start) - // Global Constants & labels - /// The colors of the CX16 - .const BLACK = 0 - .const WHITE = 1 - .const BLUE = 6 - .const YELLOW = 7 - .const VERA_INC_1 = $10 - .const VERA_ADDRSEL = 1 - .const VERA_LAYER1_ENABLE = $20 - .const VERA_LAYER0_ENABLE = $10 - .const VERA_LAYER_WIDTH_64 = $10 - .const VERA_LAYER_WIDTH_128 = $20 - .const VERA_LAYER_WIDTH_256 = $30 - .const VERA_LAYER_WIDTH_MASK = $30 - .const VERA_LAYER_HEIGHT_64 = $40 - .const VERA_LAYER_HEIGHT_128 = $80 - .const VERA_LAYER_HEIGHT_256 = $c0 - .const VERA_LAYER_HEIGHT_MASK = $c0 - /// Bit 0-1: Color Depth (0: 1 bpp, 1: 2 bpp, 2: 4 bpp, 3: 8 bpp) - .const VERA_LAYER_COLOR_DEPTH_1BPP = 0 - .const VERA_LAYER_COLOR_DEPTH_8BPP = 3 - .const VERA_LAYER_COLOR_DEPTH_MASK = 3 - .const VERA_LAYER_CONFIG_MODE_BITMAP = 4 - .const VERA_LAYER_CONFIG_256C = 8 - .const VERA_TILEBASE_WIDTH_16 = 1 - .const VERA_TILEBASE_HEIGHT_16 = 2 - .const VERA_LAYER_TILEBASE_MASK = $fc - .const SIZEOF_POINTER = 2 - .const STACK_BASE = $103 - /// $9F20 VRAM Address (7:0) - .label VERA_ADDRX_L = $9f20 - /// $9F21 VRAM Address (15:8) - .label VERA_ADDRX_M = $9f21 - /// $9F22 VRAM Address (7:0) - /// Bit 4-7: Address Increment The following is the amount incremented per value value:increment - /// 0:0, 1:1, 2:2, 3:4, 4:8, 5:16, 6:32, 7:64, 8:128, 9:256, 10:512, 11:40, 12:80, 13:160, 14:320, 15:640 - /// Bit 3: DECR Setting the DECR bit, will decrement instead of increment by the value set by the 'Address Increment' field. - /// Bit 0: VRAM Address (16) - .label VERA_ADDRX_H = $9f22 - /// $9F23 DATA0 VRAM Data port 0 - .label VERA_DATA0 = $9f23 - /// $9F24 DATA1 VRAM Data port 1 - .label VERA_DATA1 = $9f24 - /// $9F25 CTRL Control - /// Bit 7: Reset - /// Bit 1: DCSEL - /// Bit 2: ADDRSEL - .label VERA_CTRL = $9f25 - /// $9F29 DC_VIDEO (DCSEL=0) - /// Bit 7: Current Field Read-only bit which reflects the active interlaced field in composite and RGB modes. (0: even, 1: odd) - /// Bit 6: Sprites Enable Enable output from the Sprites renderer - /// Bit 5: Layer1 Enable Enable output from the Layer1 renderer - /// Bit 4: Layer0 Enable Enable output from the Layer0 renderer - /// Bit 2: Chroma Disable Setting 'Chroma Disable' disables output of chroma in NTSC composite mode and will give a better picture on a monochrome display. (Setting this bit will also disable the chroma output on the S-video output.) - /// Bit 0-1: Output Mode 0: Video disabled, 1: VGA output, 2: NTSC composite, 3: RGB interlaced, composite sync (via VGA connector) - .label VERA_DC_VIDEO = $9f29 - /// $9F2A DC_HSCALE (DCSEL=0) Active Display H-Scale - .label VERA_DC_HSCALE = $9f2a - /// $9F2B DC_VSCALE (DCSEL=0) Active Display V-Scale - .label VERA_DC_VSCALE = $9f2b - /// $9F2D L0_CONFIG Layer 0 Configuration - .label VERA_L0_CONFIG = $9f2d - /// $9F2E L0_MAPBASE Layer 0 Map Base Address (16:9) - .label VERA_L0_MAPBASE = $9f2e - /// Bit 0: Tile Width (0:8 pixels, 1:16 pixels) - .label VERA_L0_TILEBASE = $9f2f - /// $9F34 L1_CONFIG Layer 1 Configuration - .label VERA_L1_CONFIG = $9f34 - /// $9F35 L1_MAPBASE Layer 1 Map Base Address (16:9) - .label VERA_L1_MAPBASE = $9f35 - /// $9F36 L1_TILEBASE Layer 1 Tile Base - /// Bit 2-7: Tile Base Address (16:11) - /// Bit 1: Tile Height (0:8 pixels, 1:16 pixels) - /// Bit 0: Tile Width (0:8 pixels, 1:16 pixels) - .label VERA_L1_TILEBASE = $9f36 - // Variable holding the screen width; - .label conio_screen_width = $24 - // Variable holding the screen height; - .label conio_screen_height = $31 - // Variable holding the screen layer on the VERA card with which conio interacts; - .label conio_screen_layer = $30 - // Variables holding the current map width and map height of the layer. - .label conio_width = $a5 - .label conio_height = $33 - .label conio_rowshift = $2d - .label conio_rowskip = $2e - .label __bitmap_address = $ac - .label __bitmap_layer = $96 - .label __bitmap_hscale = $b0 - .label __bitmap_vscale = $b1 - .label __bitmap_color_depth = $a7 - // The random state variable - .label rand_state = $35 - // Remainder after unsigned 16-bit division - .label rem16u = $41 - // The screen width - // The screen height - // The text screen base address, which is a 16:0 bit value in VERA VRAM. - // That is 128KB addressable space, thus 17 bits in total. - // CONIO_SCREEN_TEXT contains bits 15:0 of the address. - // CONIO_SCREEN_BANK contains bit 16, the the 64K memory bank in VERA VRAM (the upper 17th bit). - // !!! note that these values are not const for the cx16! - // This conio implements the two layers of VERA, which can be layer 0 or layer 1. - // Configuring conio to output to a different layer, will change these fields to the address base - // configured using VERA_L0_MAPBASE = 0x9f2e or VERA_L1_MAPBASE = 0x9f35. - // Using the function setscreenlayer(layer) will re-calculate using CONIO_SCREEN_TEXT and CONIO_SCREEN_BASE - // based on the values of VERA_L0_MAPBASE or VERA_L1_MAPBASE, mapping the base address of the selected layer. - // The function setscreenlayermapbase(layer,mapbase) allows to configure bit 16:9 of the - // mapbase address of the time map in VRAM of the selected layer VERA_L0_MAPBASE or VERA_L1_MAPBASE. - .label CONIO_SCREEN_TEXT = $2b - .label CONIO_SCREEN_BANK = $88 - .label CONIO_SCREEN_BANK_1 = $ab - // The screen width - // The screen height - // The text screen base address, which is a 16:0 bit value in VERA VRAM. - // That is 128KB addressable space, thus 17 bits in total. - // CONIO_SCREEN_TEXT contains bits 15:0 of the address. - // CONIO_SCREEN_BANK contains bit 16, the the 64K memory bank in VERA VRAM (the upper 17th bit). - // !!! note that these values are not const for the cx16! - // This conio implements the two layers of VERA, which can be layer 0 or layer 1. - // Configuring conio to output to a different layer, will change these fields to the address base - // configured using VERA_L0_MAPBASE = 0x9f2e or VERA_L1_MAPBASE = 0x9f35. - // Using the function setscreenlayer(layer) will re-calculate using CONIO_SCREEN_TEXT and CONIO_SCREEN_BASE - // based on the values of VERA_L0_MAPBASE or VERA_L1_MAPBASE, mapping the base address of the selected layer. - // The function setscreenlayermapbase(layer,mapbase) allows to configure bit 16:9 of the - // mapbase address of the time map in VRAM of the selected layer VERA_L0_MAPBASE or VERA_L1_MAPBASE. - .label CONIO_SCREEN_TEXT_1 = $b2 -.segment Code - // __start -__start: { - // __start::__init1 - // __ma unsigned byte conio_screen_width = 0 - // [1] conio_screen_width = 0 -- vbuz1=vbuc1 - lda #0 - sta.z conio_screen_width - // __ma unsigned byte conio_screen_height = 0 - // [2] conio_screen_height = 0 -- vbuz1=vbuc1 - sta.z conio_screen_height - // __ma unsigned byte conio_screen_layer = 1 - // [3] conio_screen_layer = 1 -- vbuz1=vbuc1 - lda #1 - sta.z conio_screen_layer - // __ma word conio_width = 0 - // [4] conio_width = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z conio_width - sta.z conio_width+1 - // __ma word conio_height = 0 - // [5] conio_height = 0 -- vwuz1=vwuc1 - sta.z conio_height - sta.z conio_height+1 - // __ma byte conio_rowshift = 0 - // [6] conio_rowshift = 0 -- vbuz1=vbuc1 - sta.z conio_rowshift - // __ma word conio_rowskip = 0 - // [7] conio_rowskip = 0 -- vwuz1=vwuc1 - sta.z conio_rowskip - sta.z conio_rowskip+1 - // __ma dword __bitmap_address = 0 - // [8] __bitmap_address = 0 -- vduz1=vduc1 - sta.z __bitmap_address - sta.z __bitmap_address+1 - lda #<0>>$10 - sta.z __bitmap_address+2 - lda #>0>>$10 - sta.z __bitmap_address+3 - // __ma byte __bitmap_layer = 0 - // [9] __bitmap_layer = 0 -- vbuz1=vbuc1 - lda #0 - sta.z __bitmap_layer - // __ma byte __bitmap_hscale = 0 - // [10] __bitmap_hscale = 0 -- vbuz1=vbuc1 - sta.z __bitmap_hscale - // __ma byte __bitmap_vscale = 0 - // [11] __bitmap_vscale = 0 -- vbuz1=vbuc1 - sta.z __bitmap_vscale - // __ma byte __bitmap_color_depth = 0 - // [12] __bitmap_color_depth = 0 -- vbuz1=vbuc1 - sta.z __bitmap_color_depth - // #pragma constructor_for(conio_x16_init, cputc, clrscr, cscroll) - // [13] call conio_x16_init - jsr conio_x16_init - // [14] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] - // __start::@1 - // [15] call main - // [70] phi from __start::@1 to main [phi:__start::@1->main] - jsr main - // __start::@return - // [16] return - rts -} - // conio_x16_init -// Set initial cursor position -conio_x16_init: { - // Position cursor at current line - .label BASIC_CURSOR_LINE = $d6 - .label line = $a8 - // char line = *BASIC_CURSOR_LINE - // [17] conio_x16_init::line#0 = *conio_x16_init::BASIC_CURSOR_LINE -- vbuz1=_deref_pbuc1 - lda.z BASIC_CURSOR_LINE - sta.z line - // vera_layer_mode_text(1,(dword)0x00000,(dword)0x0F800,128,64,8,8,16) - // [18] call vera_layer_mode_text - // [178] phi from conio_x16_init to vera_layer_mode_text [phi:conio_x16_init->vera_layer_mode_text] - jsr vera_layer_mode_text - // [19] phi from conio_x16_init to conio_x16_init::@3 [phi:conio_x16_init->conio_x16_init::@3] - // conio_x16_init::@3 - // screensize(&conio_screen_width, &conio_screen_height) - // [20] call screensize - jsr screensize - // [21] phi from conio_x16_init::@3 to conio_x16_init::@4 [phi:conio_x16_init::@3->conio_x16_init::@4] - // conio_x16_init::@4 - // screenlayer(1) - // [22] call screenlayer - jsr screenlayer - // [23] phi from conio_x16_init::@4 to conio_x16_init::@5 [phi:conio_x16_init::@4->conio_x16_init::@5] - // conio_x16_init::@5 - // vera_layer_set_textcolor(1, WHITE) - // [24] call vera_layer_set_textcolor - // [230] phi from conio_x16_init::@5 to vera_layer_set_textcolor [phi:conio_x16_init::@5->vera_layer_set_textcolor] - // [230] phi vera_layer_set_textcolor::color#6 = WHITE [phi:conio_x16_init::@5->vera_layer_set_textcolor#0] -- vbuaa=vbuc1 - lda #WHITE - // [230] phi vera_layer_set_textcolor::layer#6 = 1 [phi:conio_x16_init::@5->vera_layer_set_textcolor#1] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_set_textcolor - // [25] phi from conio_x16_init::@5 to conio_x16_init::@6 [phi:conio_x16_init::@5->conio_x16_init::@6] - // conio_x16_init::@6 - // vera_layer_set_backcolor(1, BLUE) - // [26] call vera_layer_set_backcolor - // [233] phi from conio_x16_init::@6 to vera_layer_set_backcolor [phi:conio_x16_init::@6->vera_layer_set_backcolor] - // [233] phi vera_layer_set_backcolor::color#4 = BLUE [phi:conio_x16_init::@6->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLUE - // [233] phi vera_layer_set_backcolor::layer#4 = 1 [phi:conio_x16_init::@6->vera_layer_set_backcolor#1] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_set_backcolor - // [27] phi from conio_x16_init::@6 to conio_x16_init::@7 [phi:conio_x16_init::@6->conio_x16_init::@7] - // conio_x16_init::@7 - // vera_layer_set_mapbase(0,0x20) - // [28] call vera_layer_set_mapbase - // [236] phi from conio_x16_init::@7 to vera_layer_set_mapbase [phi:conio_x16_init::@7->vera_layer_set_mapbase] - // [236] phi vera_layer_set_mapbase::mapbase#3 = $20 [phi:conio_x16_init::@7->vera_layer_set_mapbase#0] -- vbuxx=vbuc1 - ldx #$20 - // [236] phi vera_layer_set_mapbase::layer#3 = 0 [phi:conio_x16_init::@7->vera_layer_set_mapbase#1] -- vbuaa=vbuc1 - lda #0 - jsr vera_layer_set_mapbase - // [29] phi from conio_x16_init::@7 to conio_x16_init::@8 [phi:conio_x16_init::@7->conio_x16_init::@8] - // conio_x16_init::@8 - // vera_layer_set_mapbase(1,0x00) - // [30] call vera_layer_set_mapbase - // [236] phi from conio_x16_init::@8 to vera_layer_set_mapbase [phi:conio_x16_init::@8->vera_layer_set_mapbase] - // [236] phi vera_layer_set_mapbase::mapbase#3 = 0 [phi:conio_x16_init::@8->vera_layer_set_mapbase#0] -- vbuxx=vbuc1 - ldx #0 - // [236] phi vera_layer_set_mapbase::layer#3 = 1 [phi:conio_x16_init::@8->vera_layer_set_mapbase#1] -- vbuaa=vbuc1 - lda #1 - jsr vera_layer_set_mapbase - // conio_x16_init::@9 - // if(line>=CONIO_HEIGHT) - // [31] if(conio_x16_init::line#0conio_x16_init::@1] - // [33] phi conio_x16_init::line#3 = conio_x16_init::line#1 [phi:conio_x16_init::@2/conio_x16_init::@9->conio_x16_init::@1#0] -- register_copy - // conio_x16_init::@1 - __b1: - // gotoxy(0, line) - // [34] gotoxy::y#1 = conio_x16_init::line#3 -- vbuxx=vbuz1 - ldx.z line - // [35] call gotoxy - // [241] phi from conio_x16_init::@1 to gotoxy [phi:conio_x16_init::@1->gotoxy] - // [241] phi gotoxy::y#7 = gotoxy::y#1 [phi:conio_x16_init::@1->gotoxy#0] -- register_copy - jsr gotoxy - // conio_x16_init::@return - // } - // [36] return - rts -} - // cputc -// Output one character at the current cursor position -// Moves the cursor forward. Scrolls the entire screen if needed -// void cputc(__zp($69) char c) -cputc: { - .const OFFSET_STACK_C = 0 - .label __16 = $29 - .label c = $69 - .label conio_addr = $1e - // [38] cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C) -- vbuz1=_stackidxbyte_vbuc1 - tsx - lda STACK_BASE+OFFSET_STACK_C,x - sta.z c - // char color = vera_layer_get_color( conio_screen_layer) - // [39] vera_layer_get_color::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [40] call vera_layer_get_color - // [254] phi from cputc to vera_layer_get_color [phi:cputc->vera_layer_get_color] - // [254] phi vera_layer_get_color::layer#2 = vera_layer_get_color::layer#0 [phi:cputc->vera_layer_get_color#0] -- register_copy - jsr vera_layer_get_color - // char color = vera_layer_get_color( conio_screen_layer) - // [41] vera_layer_get_color::return#0 = vera_layer_get_color::return#3 - // cputc::@7 - // [42] cputc::color#0 = vera_layer_get_color::return#0 -- vbuxx=vbuaa - tax - // char* conio_addr = CONIO_SCREEN_TEXT + conio_line_text[conio_screen_layer] - // [43] cputc::$15 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [44] cputc::conio_addr#0 = CONIO_SCREEN_TEXT#12 + conio_line_text[cputc::$15] -- pbuz1=pbuz2_plus_pwuc1_derefidx_vbuaa - tay - clc - lda.z CONIO_SCREEN_TEXT - adc conio_line_text,y - sta.z conio_addr - lda.z CONIO_SCREEN_TEXT+1 - adc conio_line_text+1,y - sta.z conio_addr+1 - // conio_cursor_x[conio_screen_layer] << 1 - // [45] cputc::$2 = conio_cursor_x[conio_screen_layer] << 1 -- vbuaa=pbuc1_derefidx_vbuz1_rol_1 - ldy.z conio_screen_layer - lda conio_cursor_x,y - asl - // conio_addr += conio_cursor_x[conio_screen_layer] << 1 - // [46] cputc::conio_addr#1 = cputc::conio_addr#0 + cputc::$2 -- pbuz1=pbuz1_plus_vbuaa - clc - adc.z conio_addr - sta.z conio_addr - bcc !+ - inc.z conio_addr+1 - !: - // if(c=='\n') - // [47] if(cputc::c#0==' ') goto cputc::@1 -- vbuz1_eq_vbuc1_then_la1 - lda #'\n' - cmp.z c - beq __b1 - // cputc::@2 - // *VERA_CTRL &= ~VERA_ADDRSEL - // [48] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(conio_addr) - // [49] cputc::$4 = byte0 cputc::conio_addr#1 -- vbuaa=_byte0_pbuz1 - lda.z conio_addr - // *VERA_ADDRX_L = BYTE0(conio_addr) - // [50] *VERA_ADDRX_L = cputc::$4 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // BYTE1(conio_addr) - // [51] cputc::$5 = byte1 cputc::conio_addr#1 -- vbuaa=_byte1_pbuz1 - lda.z conio_addr+1 - // *VERA_ADDRX_M = BYTE1(conio_addr) - // [52] *VERA_ADDRX_M = cputc::$5 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // CONIO_SCREEN_BANK | VERA_INC_1 - // [53] cputc::$6 = CONIO_SCREEN_BANK#12 | VERA_INC_1 -- vbuaa=vbuz1_bor_vbuc1 - lda #VERA_INC_1 - ora.z CONIO_SCREEN_BANK - // *VERA_ADDRX_H = CONIO_SCREEN_BANK | VERA_INC_1 - // [54] *VERA_ADDRX_H = cputc::$6 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_H - // *VERA_DATA0 = c - // [55] *VERA_DATA0 = cputc::c#0 -- _deref_pbuc1=vbuz1 - lda.z c - sta VERA_DATA0 - // *VERA_DATA0 = color - // [56] *VERA_DATA0 = cputc::color#0 -- _deref_pbuc1=vbuxx - stx VERA_DATA0 - // conio_cursor_x[conio_screen_layer]++; - // [57] conio_cursor_x[conio_screen_layer] = ++ conio_cursor_x[conio_screen_layer] -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 - ldx.z conio_screen_layer - inc conio_cursor_x,x - // byte scroll_enable = conio_scroll_enable[conio_screen_layer] - // [58] cputc::scroll_enable#0 = conio_scroll_enable[conio_screen_layer] -- vbuaa=pbuc1_derefidx_vbuz1 - ldy.z conio_screen_layer - lda conio_scroll_enable,y - // if(scroll_enable) - // [59] if(0!=cputc::scroll_enable#0) goto cputc::@5 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b5 - // cputc::@3 - // (unsigned int)conio_cursor_x[conio_screen_layer] == conio_width - // [60] cputc::$16 = (unsigned int)conio_cursor_x[conio_screen_layer] -- vwuz1=_word_pbuc1_derefidx_vbuz2 - lda conio_cursor_x,y - sta.z __16 - lda #0 - sta.z __16+1 - // if((unsigned int)conio_cursor_x[conio_screen_layer] == conio_width) - // [61] if(cputc::$16!=conio_width) goto cputc::@return -- vwuz1_neq_vwuz2_then_la1 - cmp.z conio_width+1 - bne __breturn - lda.z __16 - cmp.z conio_width - bne __breturn - // [62] phi from cputc::@3 to cputc::@4 [phi:cputc::@3->cputc::@4] - // cputc::@4 - // cputln() - // [63] call cputln - jsr cputln - // cputc::@return - __breturn: - // } - // [64] return - rts - // cputc::@5 - __b5: - // if(conio_cursor_x[conio_screen_layer] == CONIO_WIDTH) - // [65] if(conio_cursor_x[conio_screen_layer]!=conio_screen_width) goto cputc::@return -- pbuc1_derefidx_vbuz1_neq_vbuz2_then_la1 - lda.z conio_screen_width - ldy.z conio_screen_layer - cmp conio_cursor_x,y - bne __breturn - // [66] phi from cputc::@5 to cputc::@6 [phi:cputc::@5->cputc::@6] - // cputc::@6 - // cputln() - // [67] call cputln - jsr cputln - rts - // [68] phi from cputc::@7 to cputc::@1 [phi:cputc::@7->cputc::@1] - // cputc::@1 - __b1: - // cputln() - // [69] call cputln - jsr cputln - rts -} - // main -main: { - .label __40 = $6e - .label color = $7e - .label x = $78 - // memcpy_in_vram(1, (char*)0xF000, VERA_INC_1, 0, (char*)0xF800, VERA_INC_1, 256*8) - // [71] 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. - // So the default CX16 character set is located in bank 0, at address 0xF800. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x14000. - // This is now all easily done with a few statements in the new kickc vera lib ... - // [273] phi from main to memcpy_in_vram [phi:main->memcpy_in_vram] - // [273] phi memcpy_in_vram::num#3 = $100*8 [phi:main->memcpy_in_vram#0] -- vwuz1=vwuc1 - lda #<$100*8 - sta.z memcpy_in_vram.num - lda #>$100*8 - sta.z memcpy_in_vram.num+1 - // [273] phi memcpy_in_vram::dest_bank#2 = 1 [phi:main->memcpy_in_vram#1] -- vbuyy=vbuc1 - ldy #1 - // [273] phi memcpy_in_vram::dest#2 = (void *)(char *) 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 - // [273] phi memcpy_in_vram::src#2 = (void *)(char *) 63488 [phi:main->memcpy_in_vram#3] -- pvoz1=pvoc1 - lda #<$f800 - sta.z memcpy_in_vram.src - lda #>$f800 - sta.z memcpy_in_vram.src+1 - jsr memcpy_in_vram - // [72] phi from main to main::@12 [phi:main->main::@12] - // main::@12 - // vera_layer_mode_tile(1, 0x14000, 0x1F000, 128, 64, 8, 8, 1) - // [73] call vera_layer_mode_tile - // We copy the 128 character set of 8 bytes each. - // [292] phi from main::@12 to vera_layer_mode_tile [phi:main::@12->vera_layer_mode_tile] - // [292] phi vera_layer_mode_tile::tileheight#10 = 8 [phi:main::@12->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #8 - sta.z vera_layer_mode_tile.tileheight - // [292] phi vera_layer_mode_tile::tilewidth#10 = 8 [phi:main::@12->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - sta.z vera_layer_mode_tile.tilewidth - // [292] phi vera_layer_mode_tile::tilebase_address#10 = $1f000 [phi:main::@12->vera_layer_mode_tile#2] -- vduz1=vduc1 - lda #<$1f000 - sta.z vera_layer_mode_tile.tilebase_address - lda #>$1f000 - sta.z vera_layer_mode_tile.tilebase_address+1 - lda #<$1f000>>$10 - sta.z vera_layer_mode_tile.tilebase_address+2 - lda #>$1f000>>$10 - sta.z vera_layer_mode_tile.tilebase_address+3 - // [292] phi vera_layer_mode_tile::mapbase_address#10 = $14000 [phi:main::@12->vera_layer_mode_tile#3] -- vduz1=vduc1 - lda #<$14000 - sta.z vera_layer_mode_tile.mapbase_address - lda #>$14000 - sta.z vera_layer_mode_tile.mapbase_address+1 - lda #<$14000>>$10 - sta.z vera_layer_mode_tile.mapbase_address+2 - lda #>$14000>>$10 - sta.z vera_layer_mode_tile.mapbase_address+3 - // [292] phi vera_layer_mode_tile::mapheight#10 = $40 [phi:main::@12->vera_layer_mode_tile#4] -- vwuz1=vbuc1 - lda #<$40 - sta.z vera_layer_mode_tile.mapheight - lda #>$40 - sta.z vera_layer_mode_tile.mapheight+1 - // [292] phi vera_layer_mode_tile::layer#10 = 1 [phi:main::@12->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #1 - sta.z vera_layer_mode_tile.layer - // [292] phi vera_layer_mode_tile::mapwidth#10 = $80 [phi:main::@12->vera_layer_mode_tile#6] -- vwuz1=vbuc1 - lda #<$80 - sta.z vera_layer_mode_tile.mapwidth - lda #>$80 - sta.z vera_layer_mode_tile.mapwidth+1 - jsr vera_layer_mode_tile - // [74] phi from main::@12 to main::@13 [phi:main::@12->main::@13] - // main::@13 - // vera_layer_mode_bitmap(0, (dword)0x00000, 320, 8) - // [75] call vera_layer_mode_bitmap - // [353] phi from main::@13 to vera_layer_mode_bitmap [phi:main::@13->vera_layer_mode_bitmap] - jsr vera_layer_mode_bitmap - // [76] phi from main::@13 to main::@14 [phi:main::@13->main::@14] - // main::@14 - // screenlayer(1) - // [77] call screenlayer - jsr screenlayer - // main::textcolor1 - // vera_layer_set_textcolor(conio_screen_layer, color) - // [78] vera_layer_set_textcolor::layer#1 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [79] call vera_layer_set_textcolor - // [230] phi from main::textcolor1 to vera_layer_set_textcolor [phi:main::textcolor1->vera_layer_set_textcolor] - // [230] phi vera_layer_set_textcolor::color#6 = WHITE [phi:main::textcolor1->vera_layer_set_textcolor#0] -- vbuaa=vbuc1 - lda #WHITE - // [230] phi vera_layer_set_textcolor::layer#6 = vera_layer_set_textcolor::layer#1 [phi:main::textcolor1->vera_layer_set_textcolor#1] -- register_copy - jsr vera_layer_set_textcolor - // main::bgcolor1 - // vera_layer_set_backcolor(conio_screen_layer, color) - // [80] vera_layer_set_backcolor::layer#1 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [81] call vera_layer_set_backcolor - // [233] phi from main::bgcolor1 to vera_layer_set_backcolor [phi:main::bgcolor1->vera_layer_set_backcolor] - // [233] phi vera_layer_set_backcolor::color#4 = BLACK [phi:main::bgcolor1->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLACK - // [233] phi vera_layer_set_backcolor::layer#4 = vera_layer_set_backcolor::layer#1 [phi:main::bgcolor1->vera_layer_set_backcolor#1] -- register_copy - jsr vera_layer_set_backcolor - // [82] phi from main::bgcolor1 to main::@6 [phi:main::bgcolor1->main::@6] - // main::@6 - // clrscr() - // [83] call clrscr - jsr clrscr - // [84] phi from main::@6 to main::@15 [phi:main::@6->main::@15] - // main::@15 - // gotoxy(0,25) - // [85] call gotoxy - // [241] phi from main::@15 to gotoxy [phi:main::@15->gotoxy] - // [241] phi gotoxy::y#7 = $19 [phi:main::@15->gotoxy#0] -- vbuxx=vbuc1 - ldx #$19 - jsr gotoxy - // [86] phi from main::@15 to main::@16 [phi:main::@15->main::@16] - // main::@16 - // printf("vera in bitmap mode,\n") - // [87] call printf_str - // [396] phi from main::@16 to printf_str [phi:main::@16->printf_str] - // [396] phi printf_str::s#9 = main::s [phi:main::@16->printf_str#0] -- pbuz1=pbuc1 - lda #s - sta.z printf_str.s+1 - jsr printf_str - // [88] phi from main::@16 to main::@17 [phi:main::@16->main::@17] - // main::@17 - // printf("color depth 8 bits per pixel.\n") - // [89] call printf_str - // [396] phi from main::@17 to printf_str [phi:main::@17->printf_str] - // [396] phi printf_str::s#9 = main::s1 [phi:main::@17->printf_str#0] -- pbuz1=pbuc1 - lda #s1 - sta.z printf_str.s+1 - jsr printf_str - // [90] phi from main::@17 to main::@18 [phi:main::@17->main::@18] - // main::@18 - // printf("in this mode, it is possible to display\n") - // [91] call printf_str - // [396] phi from main::@18 to printf_str [phi:main::@18->printf_str] - // [396] phi printf_str::s#9 = main::s2 [phi:main::@18->printf_str#0] -- pbuz1=pbuc1 - lda #s2 - sta.z printf_str.s+1 - jsr printf_str - // [92] phi from main::@18 to main::@19 [phi:main::@18->main::@19] - // main::@19 - // printf("graphics in 256 colors.\n") - // [93] call printf_str - // [396] phi from main::@19 to printf_str [phi:main::@19->printf_str] - // [396] phi printf_str::s#9 = main::s3 [phi:main::@19->printf_str#0] -- pbuz1=pbuc1 - lda #s3 - sta.z printf_str.s+1 - jsr printf_str - // main::vera_layer_show1 - // *VERA_DC_VIDEO |= vera_layer_enable[layer] - // [94] *VERA_DC_VIDEO = *VERA_DC_VIDEO | *vera_layer_enable -- _deref_pbuc1=_deref_pbuc1_bor__deref_pbuc2 - lda VERA_DC_VIDEO - ora vera_layer_enable - sta VERA_DC_VIDEO - // [95] phi from main::vera_layer_show1 to main::@7 [phi:main::vera_layer_show1->main::@7] - // main::@7 - // bitmap_init(0, 0x00000) - // [96] call bitmap_init - jsr bitmap_init - // [97] phi from main::@7 to main::@20 [phi:main::@7->main::@20] - // main::@20 - // bitmap_clear() - // [98] call bitmap_clear - jsr bitmap_clear - // [99] phi from main::@20 to main::@21 [phi:main::@20->main::@21] - // main::@21 - // gotoxy(0,29) - // [100] call gotoxy - // [241] phi from main::@21 to gotoxy [phi:main::@21->gotoxy] - // [241] phi gotoxy::y#7 = $1d [phi:main::@21->gotoxy#0] -- vbuxx=vbuc1 - ldx #$1d - jsr gotoxy - // main::textcolor2 - // vera_layer_set_textcolor(conio_screen_layer, color) - // [101] vera_layer_set_textcolor::layer#2 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [102] call vera_layer_set_textcolor - // [230] phi from main::textcolor2 to vera_layer_set_textcolor [phi:main::textcolor2->vera_layer_set_textcolor] - // [230] phi vera_layer_set_textcolor::color#6 = YELLOW [phi:main::textcolor2->vera_layer_set_textcolor#0] -- vbuaa=vbuc1 - lda #YELLOW - // [230] phi vera_layer_set_textcolor::layer#6 = vera_layer_set_textcolor::layer#2 [phi:main::textcolor2->vera_layer_set_textcolor#1] -- register_copy - jsr vera_layer_set_textcolor - // [103] phi from main::textcolor2 to main::@8 [phi:main::textcolor2->main::@8] - // main::@8 - // printf("press a key ...") - // [104] call printf_str - // [396] phi from main::@8 to printf_str [phi:main::@8->printf_str] - // [396] phi printf_str::s#9 = main::s4 [phi:main::@8->printf_str#0] -- pbuz1=pbuc1 - lda #s4 - sta.z printf_str.s+1 - jsr printf_str - // [105] phi from main::@8 to main::@1 [phi:main::@8->main::@1] - // [105] phi rand_state#23 = 1 [phi:main::@8->main::@1#0] -- vwuz1=vwuc1 - lda #<1 - sta.z rand_state - lda #>1 - sta.z rand_state+1 - // main::@1 - __b1: - // kbhit() - // [106] call kbhit - jsr kbhit - // [107] kbhit::return#2 = kbhit::return#1 - // main::@22 - // [108] main::$30 = kbhit::return#2 - // while(!kbhit()) - // [109] if(0==main::$30) goto main::@2 -- 0_eq_vbuaa_then_la1 - cmp #0 - bne !__b2+ - jmp __b2 - !__b2: - // main::textcolor3 - // vera_layer_set_textcolor(conio_screen_layer, color) - // [110] vera_layer_set_textcolor::layer#3 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [111] call vera_layer_set_textcolor - // [230] phi from main::textcolor3 to vera_layer_set_textcolor [phi:main::textcolor3->vera_layer_set_textcolor] - // [230] phi vera_layer_set_textcolor::color#6 = WHITE [phi:main::textcolor3->vera_layer_set_textcolor#0] -- vbuaa=vbuc1 - lda #WHITE - // [230] phi vera_layer_set_textcolor::layer#6 = vera_layer_set_textcolor::layer#3 [phi:main::textcolor3->vera_layer_set_textcolor#1] -- register_copy - jsr vera_layer_set_textcolor - // main::bgcolor2 - // vera_layer_set_backcolor(conio_screen_layer, color) - // [112] vera_layer_set_backcolor::layer#2 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [113] call vera_layer_set_backcolor - // [233] phi from main::bgcolor2 to vera_layer_set_backcolor [phi:main::bgcolor2->vera_layer_set_backcolor] - // [233] phi vera_layer_set_backcolor::color#4 = BLACK [phi:main::bgcolor2->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLACK - // [233] phi vera_layer_set_backcolor::layer#4 = vera_layer_set_backcolor::layer#2 [phi:main::bgcolor2->vera_layer_set_backcolor#1] -- register_copy - jsr vera_layer_set_backcolor - // [114] phi from main::bgcolor2 to main::@9 [phi:main::bgcolor2->main::@9] - // main::@9 - // clrscr() - // [115] call clrscr - jsr clrscr - // [116] phi from main::@9 to main::@32 [phi:main::@9->main::@32] - // main::@32 - // gotoxy(0,26) - // [117] call gotoxy - // [241] phi from main::@32 to gotoxy [phi:main::@32->gotoxy] - // [241] phi gotoxy::y#7 = $1a [phi:main::@32->gotoxy#0] -- vbuxx=vbuc1 - ldx #$1a - jsr gotoxy - // [118] phi from main::@32 to main::@33 [phi:main::@32->main::@33] - // main::@33 - // printf("here you see all the colors possible.\n") - // [119] call printf_str - // [396] phi from main::@33 to printf_str [phi:main::@33->printf_str] - // [396] phi printf_str::s#9 = main::s5 [phi:main::@33->printf_str#0] -- pbuz1=pbuc1 - lda #s5 - sta.z printf_str.s+1 - jsr printf_str - // [120] phi from main::@33 to main::@34 [phi:main::@33->main::@34] - // main::@34 - // gotoxy(0,29) - // [121] call gotoxy - // [241] phi from main::@34 to gotoxy [phi:main::@34->gotoxy] - // [241] phi gotoxy::y#7 = $1d [phi:main::@34->gotoxy#0] -- vbuxx=vbuc1 - ldx #$1d - jsr gotoxy - // main::textcolor4 - // vera_layer_set_textcolor(conio_screen_layer, color) - // [122] vera_layer_set_textcolor::layer#4 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [123] call vera_layer_set_textcolor - // [230] phi from main::textcolor4 to vera_layer_set_textcolor [phi:main::textcolor4->vera_layer_set_textcolor] - // [230] phi vera_layer_set_textcolor::color#6 = YELLOW [phi:main::textcolor4->vera_layer_set_textcolor#0] -- vbuaa=vbuc1 - lda #YELLOW - // [230] phi vera_layer_set_textcolor::layer#6 = vera_layer_set_textcolor::layer#4 [phi:main::textcolor4->vera_layer_set_textcolor#1] -- register_copy - jsr vera_layer_set_textcolor - // [124] phi from main::textcolor4 to main::@10 [phi:main::textcolor4->main::@10] - // main::@10 - // printf("press a key ...") - // [125] call printf_str - // [396] phi from main::@10 to printf_str [phi:main::@10->printf_str] - // [396] phi printf_str::s#9 = main::s4 [phi:main::@10->printf_str#0] -- pbuz1=pbuc1 - lda #s4 - sta.z printf_str.s+1 - jsr printf_str - // [126] phi from main::@10 to main::@3 [phi:main::@10->main::@3] - // [126] phi main::color#2 = 0 [phi:main::@10->main::@3#0] -- vbuz1=vbuc1 - lda #0 - sta.z color - // [126] phi main::x#3 = 0 [phi:main::@10->main::@3#1] -- vwuz1=vwuc1 - sta.z x - sta.z x+1 - // main::@3 - __b3: - // kbhit() - // [127] call kbhit - jsr kbhit - // [128] kbhit::return#3 = kbhit::return#1 - // main::@35 - // [129] main::$43 = kbhit::return#3 - // while(!kbhit()) - // [130] if(0==main::$43) goto main::@4 -- 0_eq_vbuaa_then_la1 - cmp #0 - beq __b4 - // [131] phi from main::@35 to main::@5 [phi:main::@35->main::@5] - // main::@5 - // screenlayer(1) - // [132] call screenlayer - jsr screenlayer - // main::textcolor5 - // vera_layer_set_textcolor(conio_screen_layer, color) - // [133] vera_layer_set_textcolor::layer#5 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [134] call vera_layer_set_textcolor - // [230] phi from main::textcolor5 to vera_layer_set_textcolor [phi:main::textcolor5->vera_layer_set_textcolor] - // [230] phi vera_layer_set_textcolor::color#6 = WHITE [phi:main::textcolor5->vera_layer_set_textcolor#0] -- vbuaa=vbuc1 - lda #WHITE - // [230] phi vera_layer_set_textcolor::layer#6 = vera_layer_set_textcolor::layer#5 [phi:main::textcolor5->vera_layer_set_textcolor#1] -- register_copy - jsr vera_layer_set_textcolor - // main::bgcolor3 - // vera_layer_set_backcolor(conio_screen_layer, color) - // [135] vera_layer_set_backcolor::layer#3 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [136] call vera_layer_set_backcolor - // [233] phi from main::bgcolor3 to vera_layer_set_backcolor [phi:main::bgcolor3->vera_layer_set_backcolor] - // [233] phi vera_layer_set_backcolor::color#4 = BLUE [phi:main::bgcolor3->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLUE - // [233] phi vera_layer_set_backcolor::layer#4 = vera_layer_set_backcolor::layer#3 [phi:main::bgcolor3->vera_layer_set_backcolor#1] -- register_copy - jsr vera_layer_set_backcolor - // [137] phi from main::bgcolor3 to main::@11 [phi:main::bgcolor3->main::@11] - // main::@11 - // clrscr() - // [138] call clrscr - jsr clrscr - // main::@return - // } - // [139] return - rts - // main::@4 - __b4: - // bitmap_line(x, x, 0, 199, color) - // [140] bitmap_line::x0#1 = main::x#3 -- vwuz1=vwuz2 - lda.z x - sta.z bitmap_line.x0 - lda.z x+1 - sta.z bitmap_line.x0+1 - // [141] bitmap_line::x1#1 = main::x#3 -- vwuz1=vwuz2 - lda.z x - sta.z bitmap_line.x1 - lda.z x+1 - sta.z bitmap_line.x1+1 - // [142] bitmap_line::c#1 = main::color#2 -- vbuxx=vbuz1 - ldx.z color - // [143] call bitmap_line - // [514] phi from main::@4 to bitmap_line [phi:main::@4->bitmap_line] - // [514] phi bitmap_line::c#10 = bitmap_line::c#1 [phi:main::@4->bitmap_line#0] -- register_copy - // [514] phi bitmap_line::y1#10 = $c7 [phi:main::@4->bitmap_line#1] -- vwuz1=vbuc1 - lda #<$c7 - sta.z bitmap_line.y1 - lda #>$c7 - sta.z bitmap_line.y1+1 - // [514] phi bitmap_line::y0#10 = 0 [phi:main::@4->bitmap_line#2] -- vwuz1=vbuc1 - lda #<0 - sta.z bitmap_line.y0 - sta.z bitmap_line.y0+1 - // [514] phi bitmap_line::x1#10 = bitmap_line::x1#1 [phi:main::@4->bitmap_line#3] -- register_copy - // [514] phi bitmap_line::x0#10 = bitmap_line::x0#1 [phi:main::@4->bitmap_line#4] -- register_copy - jsr bitmap_line - // main::@36 - // color++; - // [144] main::color#1 = ++ main::color#2 -- vbuz1=_inc_vbuz1 - inc.z color - // x++; - // [145] main::x#1 = ++ main::x#3 -- vwuz1=_inc_vwuz1 - inc.z x - bne !+ - inc.z x+1 - !: - // if(x>319) - // [146] if(main::x#1<=$13f) goto main::@37 -- vwuz1_le_vwuc1_then_la1 - lda.z x+1 - cmp #>$13f - bne !+ - lda.z x - cmp #<$13f - !: - bcc __b3 - beq __b3 - // [126] phi from main::@36 to main::@3 [phi:main::@36->main::@3] - // [126] phi main::color#2 = main::color#1 [phi:main::@36->main::@3#0] -- register_copy - // [126] phi main::x#3 = 0 [phi:main::@36->main::@3#1] -- vwuz1=vbuc1 - lda #<0 - sta.z x - sta.z x+1 - jmp __b3 - // [147] phi from main::@36 to main::@37 [phi:main::@36->main::@37] - // main::@37 - // [126] phi from main::@37 to main::@3 [phi:main::@37->main::@3] - // [126] phi main::color#2 = main::color#1 [phi:main::@37->main::@3#0] -- register_copy - // [126] phi main::x#3 = main::x#1 [phi:main::@37->main::@3#1] -- register_copy - // [148] phi from main::@22 to main::@2 [phi:main::@22->main::@2] - // main::@2 - __b2: - // rand() - // [149] call rand - // [585] phi from main::@2 to rand [phi:main::@2->rand] - // [585] phi rand_state#13 = rand_state#23 [phi:main::@2->rand#0] -- register_copy - jsr rand - // rand() - // [150] rand::return#2 = rand::return#0 - // main::@23 - // modr16u(rand(),320,0) - // [151] modr16u::dividend#0 = rand::return#2 -- vwuz1=vwuz2 - lda.z rand.return - sta.z modr16u.dividend - lda.z rand.return+1 - sta.z modr16u.dividend+1 - // [152] call modr16u - // [594] phi from main::@23 to modr16u [phi:main::@23->modr16u] - // [594] phi modr16u::divisor#4 = $140 [phi:main::@23->modr16u#0] -- vwuz1=vwuc1 - lda #<$140 - sta.z modr16u.divisor - lda #>$140 - sta.z modr16u.divisor+1 - // [594] phi modr16u::dividend#4 = modr16u::dividend#0 [phi:main::@23->modr16u#1] -- register_copy - jsr modr16u - // modr16u(rand(),320,0) - // [153] modr16u::return#2 = modr16u::return#0 - // main::@24 - // bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&255) - // [154] bitmap_line::x0#0 = modr16u::return#2 -- vwuz1=vwuz2 - lda.z modr16u.return - sta.z bitmap_line.x0 - lda.z modr16u.return+1 - sta.z bitmap_line.x0+1 - // rand() - // [155] call rand - // [585] phi from main::@24 to rand [phi:main::@24->rand] - // [585] phi rand_state#13 = rand_state#14 [phi:main::@24->rand#0] -- register_copy - jsr rand - // rand() - // [156] rand::return#3 = rand::return#0 - // main::@25 - // modr16u(rand(),320,0) - // [157] modr16u::dividend#1 = rand::return#3 -- vwuz1=vwuz2 - lda.z rand.return - sta.z modr16u.dividend - lda.z rand.return+1 - sta.z modr16u.dividend+1 - // [158] call modr16u - // [594] phi from main::@25 to modr16u [phi:main::@25->modr16u] - // [594] phi modr16u::divisor#4 = $140 [phi:main::@25->modr16u#0] -- vwuz1=vwuc1 - lda #<$140 - sta.z modr16u.divisor - lda #>$140 - sta.z modr16u.divisor+1 - // [594] phi modr16u::dividend#4 = modr16u::dividend#1 [phi:main::@25->modr16u#1] -- register_copy - jsr modr16u - // modr16u(rand(),320,0) - // [159] modr16u::return#3 = modr16u::return#0 - // main::@26 - // bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&255) - // [160] bitmap_line::x1#0 = modr16u::return#3 -- vwuz1=vwuz2 - lda.z modr16u.return - sta.z bitmap_line.x1 - lda.z modr16u.return+1 - sta.z bitmap_line.x1+1 - // rand() - // [161] call rand - // [585] phi from main::@26 to rand [phi:main::@26->rand] - // [585] phi rand_state#13 = rand_state#14 [phi:main::@26->rand#0] -- register_copy - jsr rand - // rand() - // [162] rand::return#10 = rand::return#0 - // main::@27 - // modr16u(rand(),200,0) - // [163] modr16u::dividend#2 = rand::return#10 -- vwuz1=vwuz2 - lda.z rand.return - sta.z modr16u.dividend - lda.z rand.return+1 - sta.z modr16u.dividend+1 - // [164] call modr16u - // [594] phi from main::@27 to modr16u [phi:main::@27->modr16u] - // [594] phi modr16u::divisor#4 = $c8 [phi:main::@27->modr16u#0] -- vwuz1=vbuc1 - lda #<$c8 - sta.z modr16u.divisor - lda #>$c8 - sta.z modr16u.divisor+1 - // [594] phi modr16u::dividend#4 = modr16u::dividend#2 [phi:main::@27->modr16u#1] -- register_copy - jsr modr16u - // modr16u(rand(),200,0) - // [165] modr16u::return#4 = modr16u::return#0 - // main::@28 - // bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&255) - // [166] bitmap_line::y0#0 = modr16u::return#4 -- vwuz1=vwuz2 - lda.z modr16u.return - sta.z bitmap_line.y0 - lda.z modr16u.return+1 - sta.z bitmap_line.y0+1 - // rand() - // [167] call rand - // [585] phi from main::@28 to rand [phi:main::@28->rand] - // [585] phi rand_state#13 = rand_state#14 [phi:main::@28->rand#0] -- register_copy - jsr rand - // rand() - // [168] rand::return#11 = rand::return#0 - // main::@29 - // modr16u(rand(),200,0) - // [169] modr16u::dividend#3 = rand::return#11 -- vwuz1=vwuz2 - lda.z rand.return - sta.z modr16u.dividend - lda.z rand.return+1 - sta.z modr16u.dividend+1 - // [170] call modr16u - // [594] phi from main::@29 to modr16u [phi:main::@29->modr16u] - // [594] phi modr16u::divisor#4 = $c8 [phi:main::@29->modr16u#0] -- vwuz1=vbuc1 - lda #<$c8 - sta.z modr16u.divisor - lda #>$c8 - sta.z modr16u.divisor+1 - // [594] phi modr16u::dividend#4 = modr16u::dividend#3 [phi:main::@29->modr16u#1] -- register_copy - jsr modr16u - // modr16u(rand(),200,0) - // [171] modr16u::return#10 = modr16u::return#0 - // main::@30 - // bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&255) - // [172] bitmap_line::y1#0 = modr16u::return#10 -- vwuz1=vwuz2 - lda.z modr16u.return - sta.z bitmap_line.y1 - lda.z modr16u.return+1 - sta.z bitmap_line.y1+1 - // rand() - // [173] call rand - // [585] phi from main::@30 to rand [phi:main::@30->rand] - // [585] phi rand_state#13 = rand_state#14 [phi:main::@30->rand#0] -- register_copy - jsr rand - // rand() - // [174] rand::return#12 = rand::return#0 - // main::@31 - // [175] main::$40 = rand::return#12 - // bitmap_line(modr16u(rand(),320,0), modr16u(rand(),320,0), modr16u(rand(),200,0), modr16u(rand(),200,0), rand()&255) - // [176] bitmap_line::c#0 = main::$40 & $ff -- vbuxx=vwuz1_band_vbuc1 - lda #$ff - and.z __40 - tax - // [177] call bitmap_line - // [514] phi from main::@31 to bitmap_line [phi:main::@31->bitmap_line] - // [514] phi bitmap_line::c#10 = bitmap_line::c#0 [phi:main::@31->bitmap_line#0] -- register_copy - // [514] phi bitmap_line::y1#10 = bitmap_line::y1#0 [phi:main::@31->bitmap_line#1] -- register_copy - // [514] phi bitmap_line::y0#10 = bitmap_line::y0#0 [phi:main::@31->bitmap_line#2] -- register_copy - // [514] phi bitmap_line::x1#10 = bitmap_line::x1#0 [phi:main::@31->bitmap_line#3] -- register_copy - // [514] phi bitmap_line::x0#10 = bitmap_line::x0#0 [phi:main::@31->bitmap_line#4] -- register_copy - jsr bitmap_line - // [105] phi from main::@31 to main::@1 [phi:main::@31->main::@1] - // [105] phi rand_state#23 = rand_state#14 [phi:main::@31->main::@1#0] -- register_copy - jmp __b1 - .segment Data - s: .text @"vera in bitmap mode,\n" - .byte 0 - s1: .text @"color depth 8 bits per pixel.\n" - .byte 0 - s2: .text @"in this mode, it is possible to display\n" - .byte 0 - s3: .text @"graphics in 256 colors.\n" - .byte 0 - s4: .text "press a key ..." - .byte 0 - s5: .text @"here you see all the colors possible.\n" - .byte 0 -} -.segment Code - // vera_layer_mode_text -// Set a vera layer in text mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_mode: The color mode, which can be 16 or 256. -// void vera_layer_mode_text(char layer, unsigned long mapbase_address, unsigned long tilebase_address, unsigned int mapwidth, unsigned int mapheight, char tilewidth, char tileheight, unsigned int color_mode) -vera_layer_mode_text: { - .const mapbase_address = 0 - .const tilebase_address = $f800 - .const mapwidth = $80 - .const mapheight = $40 - .const tilewidth = 8 - .const tileheight = 8 - .label layer = 1 - // vera_layer_mode_tile( layer, mapbase_address, tilebase_address, mapwidth, mapheight, tilewidth, tileheight, 1 ) - // [179] call vera_layer_mode_tile - // [292] phi from vera_layer_mode_text to vera_layer_mode_tile [phi:vera_layer_mode_text->vera_layer_mode_tile] - // [292] phi vera_layer_mode_tile::tileheight#10 = vera_layer_mode_text::tileheight#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #tileheight - sta.z vera_layer_mode_tile.tileheight - // [292] phi vera_layer_mode_tile::tilewidth#10 = vera_layer_mode_text::tilewidth#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - lda #tilewidth - sta.z vera_layer_mode_tile.tilewidth - // [292] phi vera_layer_mode_tile::tilebase_address#10 = vera_layer_mode_text::tilebase_address#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#2] -- vduz1=vduc1 - lda #tilebase_address - sta.z vera_layer_mode_tile.tilebase_address+1 - lda #>$10 - sta.z vera_layer_mode_tile.tilebase_address+2 - lda #>tilebase_address>>$10 - sta.z vera_layer_mode_tile.tilebase_address+3 - // [292] phi vera_layer_mode_tile::mapbase_address#10 = vera_layer_mode_text::mapbase_address#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#3] -- vduz1=vduc1 - lda #mapbase_address - sta.z vera_layer_mode_tile.mapbase_address+1 - lda #>$10 - sta.z vera_layer_mode_tile.mapbase_address+2 - lda #>mapbase_address>>$10 - sta.z vera_layer_mode_tile.mapbase_address+3 - // [292] phi vera_layer_mode_tile::mapheight#10 = vera_layer_mode_text::mapheight#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#4] -- vwuz1=vwuc1 - lda #mapheight - sta.z vera_layer_mode_tile.mapheight+1 - // [292] phi vera_layer_mode_tile::layer#10 = vera_layer_mode_text::layer#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #layer - sta.z vera_layer_mode_tile.layer - // [292] phi vera_layer_mode_tile::mapwidth#10 = vera_layer_mode_text::mapwidth#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#6] -- vwuz1=vwuc1 - lda #mapwidth - sta.z vera_layer_mode_tile.mapwidth+1 - jsr vera_layer_mode_tile - // [180] phi from vera_layer_mode_text to vera_layer_mode_text::@1 [phi:vera_layer_mode_text->vera_layer_mode_text::@1] - // vera_layer_mode_text::@1 - // vera_layer_set_text_color_mode( layer, VERA_LAYER_CONFIG_16C ) - // [181] call vera_layer_set_text_color_mode - jsr vera_layer_set_text_color_mode - // vera_layer_mode_text::@return - // } - // [182] return - rts -} - // screensize -// Return the current screen size. -// void screensize(char *x, char *y) -screensize: { - .label x = conio_screen_width - .label y = conio_screen_height - // char hscale = (*VERA_DC_HSCALE) >> 7 - // [183] screensize::hscale#0 = *VERA_DC_HSCALE >> 7 -- vbuaa=_deref_pbuc1_ror_7 - // VERA returns in VERA_DC_HSCALE the value of 128 when 80 columns is used in text mode, - // and the value of 64 when 40 columns is used in text mode. - // Basically, 40 columns mode in the VERA is a double scan mode. - // Same for the VERA_DC_VSCALE mode, but then the subdivision is 60 or 30 rows. - // I still need to test the other modes, but this will suffice for now for the pure text modes. - lda VERA_DC_HSCALE - rol - rol - and #1 - // 40 << hscale - // [184] screensize::$1 = $28 << screensize::hscale#0 -- vbuaa=vbuc1_rol_vbuaa - tay - lda #$28 - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // *x = 40 << hscale - // [185] *screensize::x#0 = screensize::$1 -- _deref_pbuc1=vbuaa - sta.z x - // char vscale = (*VERA_DC_VSCALE) >> 7 - // [186] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 -- vbuaa=_deref_pbuc1_ror_7 - lda VERA_DC_VSCALE - rol - rol - and #1 - // 30 << vscale - // [187] screensize::$3 = $1e << screensize::vscale#0 -- vbuaa=vbuc1_rol_vbuaa - tay - lda #$1e - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // *y = 30 << vscale - // [188] *screensize::y#0 = screensize::$3 -- _deref_pbuc1=vbuaa - sta.z y - // screensize::@return - // } - // [189] return - rts -} - // screenlayer -// Set the layer with which the conio will interact. -// - layer: value of 0 or 1. -// void screenlayer(char layer) -screenlayer: { - .label __2 = $89 - .label __4 = $7f - .label __5 = $8b - .label vera_layer_get_width1_config = $97 - .label vera_layer_get_width1_return = $89 - .label vera_layer_get_height1_config = $99 - .label vera_layer_get_height1_return = $8b - // conio_screen_layer = layer - // [190] conio_screen_layer = 1 -- vbuz1=vbuc1 - lda #1 - sta.z conio_screen_layer - // vera_layer_get_mapbase_bank(conio_screen_layer) - // [191] vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - tax - // [192] call vera_layer_get_mapbase_bank - jsr vera_layer_get_mapbase_bank - // [193] vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#0 - // screenlayer::@3 - // [194] CONIO_SCREEN_BANK#15 = vera_layer_get_mapbase_bank::return#2 -- vbuz1=vbuaa - sta.z CONIO_SCREEN_BANK_1 - // vera_layer_get_mapbase_offset(conio_screen_layer) - // [195] vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // [196] call vera_layer_get_mapbase_offset - jsr vera_layer_get_mapbase_offset - // [197] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 - // screenlayer::@4 - // [198] CONIO_SCREEN_TEXT#17 = vera_layer_get_mapbase_offset::return#2 -- vwuz1=vwuz2 - lda.z vera_layer_get_mapbase_offset.return - sta.z CONIO_SCREEN_TEXT_1 - lda.z vera_layer_get_mapbase_offset.return+1 - sta.z CONIO_SCREEN_TEXT_1+1 - // vera_layer_get_width(conio_screen_layer) - // [199] screenlayer::vera_layer_get_width1_layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // screenlayer::vera_layer_get_width1 - // byte* config = vera_layer_config[layer] - // [200] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [201] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z vera_layer_get_width1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_width1_config+1 - // *config & VERA_LAYER_WIDTH_MASK - // [202] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_WIDTH_MASK - ldy #0 - and (vera_layer_get_width1_config),y - // (*config & VERA_LAYER_WIDTH_MASK) >> 4 - // [203] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 -- vbuaa=vbuaa_ror_4 - lsr - lsr - lsr - lsr - // return VERA_LAYER_WIDTH[ (*config & VERA_LAYER_WIDTH_MASK) >> 4]; - // [204] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [205] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda VERA_LAYER_WIDTH,y - sta.z vera_layer_get_width1_return - lda VERA_LAYER_WIDTH+1,y - sta.z vera_layer_get_width1_return+1 - // screenlayer::vera_layer_get_width1_@return - // } - // [206] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 - // screenlayer::@1 - // vera_layer_get_width(conio_screen_layer) - // [207] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 - // conio_width = vera_layer_get_width(conio_screen_layer) - // [208] conio_width = screenlayer::$2 -- vwuz1=vwuz2 - lda.z __2 - sta.z conio_width - lda.z __2+1 - sta.z conio_width+1 - // vera_layer_get_rowshift(conio_screen_layer) - // [209] vera_layer_get_rowshift::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [210] call vera_layer_get_rowshift - jsr vera_layer_get_rowshift - // [211] vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#0 - // screenlayer::@5 - // [212] screenlayer::$3 = vera_layer_get_rowshift::return#2 - // conio_rowshift = vera_layer_get_rowshift(conio_screen_layer) - // [213] conio_rowshift = screenlayer::$3 -- vbuz1=vbuaa - sta.z conio_rowshift - // vera_layer_get_rowskip(conio_screen_layer) - // [214] vera_layer_get_rowskip::layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // [215] call vera_layer_get_rowskip - jsr vera_layer_get_rowskip - // [216] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 - // screenlayer::@6 - // [217] screenlayer::$4 = vera_layer_get_rowskip::return#2 - // conio_rowskip = vera_layer_get_rowskip(conio_screen_layer) - // [218] conio_rowskip = screenlayer::$4 -- vwuz1=vwuz2 - lda.z __4 - sta.z conio_rowskip - lda.z __4+1 - sta.z conio_rowskip+1 - // vera_layer_get_height(conio_screen_layer) - // [219] screenlayer::vera_layer_get_height1_layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // screenlayer::vera_layer_get_height1 - // byte* config = vera_layer_config[layer] - // [220] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [221] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z vera_layer_get_height1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_height1_config+1 - // *config & VERA_LAYER_HEIGHT_MASK - // [222] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_HEIGHT_MASK - ldy #0 - and (vera_layer_get_height1_config),y - // (*config & VERA_LAYER_HEIGHT_MASK) >> 6 - // [223] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 -- vbuaa=vbuaa_ror_6 - rol - rol - rol - and #3 - // return VERA_LAYER_HEIGHT[ (*config & VERA_LAYER_HEIGHT_MASK) >> 6]; - // [224] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [225] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda VERA_LAYER_HEIGHT,y - sta.z vera_layer_get_height1_return - lda VERA_LAYER_HEIGHT+1,y - sta.z vera_layer_get_height1_return+1 - // screenlayer::vera_layer_get_height1_@return - // } - // [226] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 - // screenlayer::@2 - // vera_layer_get_height(conio_screen_layer) - // [227] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 - // conio_height = vera_layer_get_height(conio_screen_layer) - // [228] conio_height = screenlayer::$5 -- vwuz1=vwuz2 - lda.z __5 - sta.z conio_height - lda.z __5+1 - sta.z conio_height+1 - // screenlayer::@return - // } - // [229] return - rts -} - // vera_layer_set_textcolor -// Set the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15) when the VERA works in 16x16 color text mode. -// An 8 bit value (decimal between 0 and 255) when the VERA works in 256 text mode. -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_textcolor(__register(X) char layer, __register(A) char color) -vera_layer_set_textcolor: { - // vera_layer_textcolor[layer] = color - // [231] vera_layer_textcolor[vera_layer_set_textcolor::layer#6] = vera_layer_set_textcolor::color#6 -- pbuc1_derefidx_vbuxx=vbuaa - sta vera_layer_textcolor,x - // vera_layer_set_textcolor::@return - // } - // [232] return - rts -} - // vera_layer_set_backcolor -// Set the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_backcolor(__register(X) char layer, __register(A) char color) -vera_layer_set_backcolor: { - // vera_layer_backcolor[layer] = color - // [234] vera_layer_backcolor[vera_layer_set_backcolor::layer#4] = vera_layer_set_backcolor::color#4 -- pbuc1_derefidx_vbuxx=vbuaa - sta vera_layer_backcolor,x - // vera_layer_set_backcolor::@return - // } - // [235] return - rts -} - // vera_layer_set_mapbase -// Set the base of the map layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - mapbase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// void vera_layer_set_mapbase(__register(A) char layer, __register(X) char mapbase) -vera_layer_set_mapbase: { - .label addr = $25 - // byte* addr = vera_layer_mapbase[layer] - // [237] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [238] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_mapbase,y - sta.z addr - lda vera_layer_mapbase+1,y - sta.z addr+1 - // *addr = mapbase - // [239] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - // vera_layer_set_mapbase::@return - // } - // [240] return - rts -} - // gotoxy -// Set the cursor to the specified position -// void gotoxy(char x, __register(X) char y) -gotoxy: { - .label __6 = $25 - .label line_offset = $25 - // if(y>CONIO_HEIGHT) - // [242] if(gotoxy::y#7<=conio_screen_height) goto gotoxy::@4 -- vbuxx_le_vbuz1_then_la1 - lda.z conio_screen_height - stx.z $ff - cmp.z $ff - bcs __b1 - // [244] phi from gotoxy to gotoxy::@1 [phi:gotoxy->gotoxy::@1] - // [244] phi gotoxy::y#10 = 0 [phi:gotoxy->gotoxy::@1#0] -- vbuxx=vbuc1 - ldx #0 - // [243] phi from gotoxy to gotoxy::@4 [phi:gotoxy->gotoxy::@4] - // gotoxy::@4 - // [244] phi from gotoxy::@4 to gotoxy::@1 [phi:gotoxy::@4->gotoxy::@1] - // [244] phi gotoxy::y#10 = gotoxy::y#7 [phi:gotoxy::@4->gotoxy::@1#0] -- register_copy - // gotoxy::@1 - __b1: - // if(x>=CONIO_WIDTH) - // [245] if(0gotoxy::@3] - // gotoxy::@3 - // gotoxy::@2 - // conio_cursor_x[conio_screen_layer] = x - // [247] conio_cursor_x[conio_screen_layer] = 0 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // conio_cursor_y[conio_screen_layer] = y - // [248] conio_cursor_y[conio_screen_layer] = gotoxy::y#10 -- pbuc1_derefidx_vbuz1=vbuxx - txa - sta conio_cursor_y,y - // unsigned int line_offset = (unsigned int)y << conio_rowshift - // [249] gotoxy::$6 = (unsigned int)gotoxy::y#10 -- vwuz1=_word_vbuxx - txa - sta.z __6 - lda #0 - sta.z __6+1 - // [250] gotoxy::line_offset#0 = gotoxy::$6 << conio_rowshift -- vwuz1=vwuz1_rol_vbuz2 - ldy.z conio_rowshift - beq !e+ - !: - asl.z line_offset - rol.z line_offset+1 - dey - bne !- - !e: - // conio_line_text[conio_screen_layer] = line_offset - // [251] gotoxy::$5 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [252] conio_line_text[gotoxy::$5] = gotoxy::line_offset#0 -- pwuc1_derefidx_vbuaa=vwuz1 - tay - lda.z line_offset - sta conio_line_text,y - lda.z line_offset+1 - sta conio_line_text+1,y - // gotoxy::@return - // } - // [253] return - rts -} - // vera_layer_get_color -// Get the text and back color for text output in 16 color mode. -// - layer: Value of 0 or 1. -// - return: an 8 bit value with bit 7:4 containing the back color and bit 3:0 containing the front color. -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_color(__register(X) char layer) -vera_layer_get_color: { - .label addr = 6 - // byte* addr = vera_layer_config[layer] - // [255] vera_layer_get_color::$3 = vera_layer_get_color::layer#2 << 1 -- vbuaa=vbuxx_rol_1 - txa - asl - // [256] vera_layer_get_color::addr#0 = vera_layer_config[vera_layer_get_color::$3] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // *addr & VERA_LAYER_CONFIG_256C - // [257] vera_layer_get_color::$0 = *vera_layer_get_color::addr#0 & VERA_LAYER_CONFIG_256C -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_CONFIG_256C - ldy #0 - and (addr),y - // if( *addr & VERA_LAYER_CONFIG_256C ) - // [258] if(0!=vera_layer_get_color::$0) goto vera_layer_get_color::@1 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b1 - // vera_layer_get_color::@2 - // vera_layer_backcolor[layer] << 4 - // [259] vera_layer_get_color::$1 = vera_layer_backcolor[vera_layer_get_color::layer#2] << 4 -- vbuaa=pbuc1_derefidx_vbuxx_rol_4 - lda vera_layer_backcolor,x - asl - asl - asl - asl - // return ((vera_layer_backcolor[layer] << 4) | vera_layer_textcolor[layer]); - // [260] vera_layer_get_color::return#2 = vera_layer_get_color::$1 | vera_layer_textcolor[vera_layer_get_color::layer#2] -- vbuaa=vbuaa_bor_pbuc1_derefidx_vbuxx - ora vera_layer_textcolor,x - // [261] phi from vera_layer_get_color::@1 vera_layer_get_color::@2 to vera_layer_get_color::@return [phi:vera_layer_get_color::@1/vera_layer_get_color::@2->vera_layer_get_color::@return] - // [261] phi vera_layer_get_color::return#3 = vera_layer_get_color::return#1 [phi:vera_layer_get_color::@1/vera_layer_get_color::@2->vera_layer_get_color::@return#0] -- register_copy - // vera_layer_get_color::@return - // } - // [262] return - rts - // vera_layer_get_color::@1 - __b1: - // return (vera_layer_textcolor[layer]); - // [263] vera_layer_get_color::return#1 = vera_layer_textcolor[vera_layer_get_color::layer#2] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_textcolor,x - rts -} - // cputln -// Print a newline -cputln: { - .label temp = 6 - // word temp = conio_line_text[conio_screen_layer] - // [264] cputln::$2 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [265] cputln::temp#0 = conio_line_text[cputln::$2] -- vwuz1=pwuc1_derefidx_vbuaa - // TODO: This needs to be optimized! other variations don't compile because of sections not available! - tay - lda conio_line_text,y - sta.z temp - lda conio_line_text+1,y - sta.z temp+1 - // temp += conio_rowskip - // [266] cputln::temp#1 = cputln::temp#0 + conio_rowskip -- vwuz1=vwuz1_plus_vwuz2 - clc - lda.z temp - adc.z conio_rowskip - sta.z temp - lda.z temp+1 - adc.z conio_rowskip+1 - sta.z temp+1 - // conio_line_text[conio_screen_layer] = temp - // [267] cputln::$3 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [268] conio_line_text[cputln::$3] = cputln::temp#1 -- pwuc1_derefidx_vbuaa=vwuz1 - tay - lda.z temp - sta conio_line_text,y - lda.z temp+1 - sta conio_line_text+1,y - // conio_cursor_x[conio_screen_layer] = 0 - // [269] conio_cursor_x[conio_screen_layer] = 0 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // conio_cursor_y[conio_screen_layer]++; - // [270] conio_cursor_y[conio_screen_layer] = ++ conio_cursor_y[conio_screen_layer] -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 - ldx.z conio_screen_layer - inc conio_cursor_y,x - // cscroll() - // [271] call cscroll - jsr cscroll - // cputln::@return - // } - // [272] return - rts -} - // memcpy_in_vram -// Copy block of memory (from VRAM to VRAM) -// Copies the values from the location pointed by src to the location pointed by dest. -// The method uses the VERA access ports 0 and 1 to copy data from and to in VRAM. -// - src_bank: 64K VRAM bank number to copy from (0/1). -// - src: pointer to the location to copy from. Note that the address is a 16 bit value! -// - src_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -// - dest_bank: 64K VRAM bank number to copy to (0/1). -// - dest: pointer to the location to copy to. Note that the address is a 16 bit value! -// - dest_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -// - num: The number of bytes to copy -// void memcpy_in_vram(__register(Y) char dest_bank, __zp($a) void *dest, char dest_increment, char src_bank, __zp(6) char *src, char src_increment, __zp(8) unsigned int num) -memcpy_in_vram: { - .label i = 2 - .label dest = $a - .label src = 6 - .label num = 8 - // *VERA_CTRL &= ~VERA_ADDRSEL - // [274] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(src) - // [275] memcpy_in_vram::$0 = byte0 memcpy_in_vram::src#2 -- vbuaa=_byte0_pvoz1 - lda.z src - // *VERA_ADDRX_L = BYTE0(src) - // [276] *VERA_ADDRX_L = memcpy_in_vram::$0 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // BYTE1(src) - // [277] memcpy_in_vram::$1 = byte1 memcpy_in_vram::src#2 -- vbuaa=_byte1_pvoz1 - lda.z src+1 - // *VERA_ADDRX_M = BYTE1(src) - // [278] *VERA_ADDRX_M = memcpy_in_vram::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // *VERA_ADDRX_H = src_increment | src_bank - // [279] *VERA_ADDRX_H = VERA_INC_1 -- _deref_pbuc1=vbuc2 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // *VERA_CTRL |= VERA_ADDRSEL - // [280] *VERA_CTRL = *VERA_CTRL | VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 - // Select DATA1 - lda #VERA_ADDRSEL - ora VERA_CTRL - sta VERA_CTRL - // BYTE0(dest) - // [281] memcpy_in_vram::$3 = byte0 memcpy_in_vram::dest#2 -- vbuaa=_byte0_pvoz1 - lda.z dest - // *VERA_ADDRX_L = BYTE0(dest) - // [282] *VERA_ADDRX_L = memcpy_in_vram::$3 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // BYTE1(dest) - // [283] memcpy_in_vram::$4 = byte1 memcpy_in_vram::dest#2 -- vbuaa=_byte1_pvoz1 - lda.z dest+1 - // *VERA_ADDRX_M = BYTE1(dest) - // [284] *VERA_ADDRX_M = memcpy_in_vram::$4 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // dest_increment | dest_bank - // [285] memcpy_in_vram::$5 = VERA_INC_1 | memcpy_in_vram::dest_bank#2 -- vbuaa=vbuc1_bor_vbuyy - tya - ora #VERA_INC_1 - // *VERA_ADDRX_H = dest_increment | dest_bank - // [286] *VERA_ADDRX_H = memcpy_in_vram::$5 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_H - // [287] phi from memcpy_in_vram to memcpy_in_vram::@1 [phi:memcpy_in_vram->memcpy_in_vram::@1] - // [287] phi memcpy_in_vram::i#2 = 0 [phi:memcpy_in_vram->memcpy_in_vram::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z i - sta.z i+1 - // Transfer the data - // memcpy_in_vram::@1 - __b1: - // for(unsigned int i=0; imemcpy_in_vram::@1] - // [287] phi memcpy_in_vram::i#2 = memcpy_in_vram::i#1 [phi:memcpy_in_vram::@2->memcpy_in_vram::@1#0] -- register_copy - jmp __b1 -} - // vera_layer_mode_tile -// Set a vera layer in tile mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_depth: The color depth in bits per pixel (BPP), which can be 1, 2, 4 or 8. -// void vera_layer_mode_tile(__zp($94) char layer, __zp($43) unsigned long mapbase_address, __zp($49) unsigned long tilebase_address, __zp($7a) unsigned int mapwidth, __zp($9f) unsigned int mapheight, __zp($a9) char tilewidth, __zp($aa) char tileheight, char color_depth) -vera_layer_mode_tile: { - .label __1 = $7c - .label __6 = $4f - .label __17 = $95 - .label __18 = $93 - .label mapbase_address = $43 - .label tilebase_address = $49 - .label mapwidth = $7a - .label layer = $94 - .label mapheight = $9f - .label tilewidth = $a9 - .label tileheight = $aa - // vera_layer_mode_tile::@1 - // case 32: - // config |= VERA_LAYER_WIDTH_32; - // vera_layer_rowshift[layer] = 6; - // vera_layer_rowskip[layer] = 64; - // break; - // [293] if(vera_layer_mode_tile::mapwidth#10==$20) goto vera_layer_mode_tile::@5 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$20 - bne !__b5+ - jmp __b5 - !__b5: - !: - // vera_layer_mode_tile::@2 - // case 64: - // config |= VERA_LAYER_WIDTH_64; - // vera_layer_rowshift[layer] = 7; - // vera_layer_rowskip[layer] = 128; - // break; - // [294] if(vera_layer_mode_tile::mapwidth#10==$40) goto vera_layer_mode_tile::@6 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$40 - bne !__b6+ - jmp __b6 - !__b6: - !: - // vera_layer_mode_tile::@3 - // case 128: - // config |= VERA_LAYER_WIDTH_128; - // vera_layer_rowshift[layer] = 8; - // vera_layer_rowskip[layer] = 256; - // break; - // [295] if(vera_layer_mode_tile::mapwidth#10==$80) goto vera_layer_mode_tile::@7 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$80 - bne !__b7+ - jmp __b7 - !__b7: - !: - // vera_layer_mode_tile::@4 - // case 256: - // config |= VERA_LAYER_WIDTH_256; - // vera_layer_rowshift[layer] = 9; - // vera_layer_rowskip[layer] = 512; - // break; - // [296] if(vera_layer_mode_tile::mapwidth#10!=$100) goto vera_layer_mode_tile::@9 -- vwuz1_neq_vwuc1_then_la1 - lda.z mapwidth+1 - cmp #>$100 - bne __b1 - lda.z mapwidth - cmp #<$100 - bne __b1 - // vera_layer_mode_tile::@8 - // vera_layer_rowshift[layer] = 9 - // [297] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 9 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #9 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 512 - // [298] vera_layer_mode_tile::$14 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - tya - asl - // [299] vera_layer_rowskip[vera_layer_mode_tile::$14] = $200 -- pwuc1_derefidx_vbuaa=vwuc2 - tay - lda #<$200 - sta vera_layer_rowskip,y - lda #>$200 - sta vera_layer_rowskip+1,y - // [300] phi from vera_layer_mode_tile::@8 to vera_layer_mode_tile::@9 [phi:vera_layer_mode_tile::@8->vera_layer_mode_tile::@9] - // [300] phi vera_layer_mode_tile::config#21 = VERA_LAYER_WIDTH_256 [phi:vera_layer_mode_tile::@8->vera_layer_mode_tile::@9#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_WIDTH_256 - jmp __b9 - // [300] phi from vera_layer_mode_tile::@4 vera_layer_mode_tile::@5 to vera_layer_mode_tile::@9 [phi:vera_layer_mode_tile::@4/vera_layer_mode_tile::@5->vera_layer_mode_tile::@9] - __b1: - // [300] phi vera_layer_mode_tile::config#21 = VERA_LAYER_COLOR_DEPTH_1BPP [phi:vera_layer_mode_tile::@4/vera_layer_mode_tile::@5->vera_layer_mode_tile::@9#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_1BPP - // vera_layer_mode_tile::@9 - __b9: - // case 32: - // config |= VERA_LAYER_HEIGHT_32; - // break; - // [301] if(vera_layer_mode_tile::mapheight#10==$20) goto vera_layer_mode_tile::@16 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$20 - beq __b16 - !: - // vera_layer_mode_tile::@10 - // case 64: - // config |= VERA_LAYER_HEIGHT_64; - // break; - // [302] if(vera_layer_mode_tile::mapheight#10==$40) goto vera_layer_mode_tile::@13 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$40 - bne !__b13+ - jmp __b13 - !__b13: - !: - // vera_layer_mode_tile::@11 - // case 128: - // config |= VERA_LAYER_HEIGHT_128; - // break; - // [303] if(vera_layer_mode_tile::mapheight#10==$80) goto vera_layer_mode_tile::@14 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$80 - bne !__b14+ - jmp __b14 - !__b14: - !: - // vera_layer_mode_tile::@12 - // case 256: - // config |= VERA_LAYER_HEIGHT_256; - // break; - // [304] if(vera_layer_mode_tile::mapheight#10!=$100) goto vera_layer_mode_tile::@16 -- vwuz1_neq_vwuc1_then_la1 - lda.z mapheight+1 - cmp #>$100 - bne __b16 - lda.z mapheight - cmp #<$100 - bne __b16 - // vera_layer_mode_tile::@15 - // config |= VERA_LAYER_HEIGHT_256 - // [305] vera_layer_mode_tile::config#12 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_256 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_256 - tax - // [306] phi from vera_layer_mode_tile::@12 vera_layer_mode_tile::@13 vera_layer_mode_tile::@14 vera_layer_mode_tile::@15 vera_layer_mode_tile::@9 to vera_layer_mode_tile::@16 [phi:vera_layer_mode_tile::@12/vera_layer_mode_tile::@13/vera_layer_mode_tile::@14/vera_layer_mode_tile::@15/vera_layer_mode_tile::@9->vera_layer_mode_tile::@16] - // [306] phi vera_layer_mode_tile::config#25 = vera_layer_mode_tile::config#21 [phi:vera_layer_mode_tile::@12/vera_layer_mode_tile::@13/vera_layer_mode_tile::@14/vera_layer_mode_tile::@15/vera_layer_mode_tile::@9->vera_layer_mode_tile::@16#0] -- register_copy - // vera_layer_mode_tile::@16 - __b16: - // vera_layer_set_config(layer, config) - // [307] vera_layer_set_config::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [308] vera_layer_set_config::config#0 = vera_layer_mode_tile::config#25 - // [309] call vera_layer_set_config - // [623] phi from vera_layer_mode_tile::@16 to vera_layer_set_config [phi:vera_layer_mode_tile::@16->vera_layer_set_config] - // [623] phi vera_layer_set_config::config#2 = vera_layer_set_config::config#0 [phi:vera_layer_mode_tile::@16->vera_layer_set_config#0] -- register_copy - // [623] phi vera_layer_set_config::layer#2 = vera_layer_set_config::layer#0 [phi:vera_layer_mode_tile::@16->vera_layer_set_config#1] -- register_copy - jsr vera_layer_set_config - // vera_layer_mode_tile::@23 - // WORD0(mapbase_address) - // [310] vera_layer_mode_tile::$1 = word0 vera_layer_mode_tile::mapbase_address#10 -- vwuz1=_word0_vduz2 - lda.z mapbase_address - sta.z __1 - lda.z mapbase_address+1 - sta.z __1+1 - // vera_mapbase_offset[layer] = WORD0(mapbase_address) - // [311] vera_layer_mode_tile::$17 = vera_layer_mode_tile::layer#10 << 1 -- vbuz1=vbuz2_rol_1 - lda.z layer - asl - sta.z __17 - // [312] vera_mapbase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$1 -- pwuc1_derefidx_vbuz1=vwuz2 - // mapbase - tay - lda.z __1 - sta vera_mapbase_offset,y - lda.z __1+1 - sta vera_mapbase_offset+1,y - // BYTE2(mapbase_address) - // [313] vera_layer_mode_tile::$2 = byte2 vera_layer_mode_tile::mapbase_address#10 -- vbuaa=_byte2_vduz1 - lda.z mapbase_address+2 - // vera_mapbase_bank[layer] = BYTE2(mapbase_address) - // [314] vera_mapbase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$2 -- pbuc1_derefidx_vbuz1=vbuaa - ldy.z layer - sta vera_mapbase_bank,y - // vera_mapbase_address[layer] = mapbase_address - // [315] vera_layer_mode_tile::$18 = vera_layer_mode_tile::layer#10 << 2 -- vbuz1=vbuz2_rol_2 - tya - asl - asl - sta.z __18 - // [316] vera_mapbase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::mapbase_address#10 -- pduc1_derefidx_vbuz1=vduz2 - tay - lda.z mapbase_address - sta vera_mapbase_address,y - lda.z mapbase_address+1 - sta vera_mapbase_address+1,y - lda.z mapbase_address+2 - sta vera_mapbase_address+2,y - lda.z mapbase_address+3 - sta vera_mapbase_address+3,y - // mapbase_address = mapbase_address >> 1 - // [317] vera_layer_mode_tile::mapbase_address#0 = vera_layer_mode_tile::mapbase_address#10 >> 1 -- vduz1=vduz1_ror_1 - lsr.z mapbase_address+3 - ror.z mapbase_address+2 - ror.z mapbase_address+1 - ror.z mapbase_address - // byte mapbase = BYTE1(mapbase_address) - // [318] vera_layer_mode_tile::mapbase#0 = byte1 vera_layer_mode_tile::mapbase_address#0 -- vbuxx=_byte1_vduz1 - ldx.z mapbase_address+1 - // vera_layer_set_mapbase(layer,mapbase) - // [319] vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [320] vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0 - // [321] call vera_layer_set_mapbase - // [236] phi from vera_layer_mode_tile::@23 to vera_layer_set_mapbase [phi:vera_layer_mode_tile::@23->vera_layer_set_mapbase] - // [236] phi vera_layer_set_mapbase::mapbase#3 = vera_layer_set_mapbase::mapbase#0 [phi:vera_layer_mode_tile::@23->vera_layer_set_mapbase#0] -- register_copy - // [236] phi vera_layer_set_mapbase::layer#3 = vera_layer_set_mapbase::layer#0 [phi:vera_layer_mode_tile::@23->vera_layer_set_mapbase#1] -- register_copy - jsr vera_layer_set_mapbase - // vera_layer_mode_tile::@24 - // WORD0(tilebase_address) - // [322] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 -- vwuz1=_word0_vduz2 - lda.z tilebase_address - sta.z __6 - lda.z tilebase_address+1 - sta.z __6+1 - // vera_tilebase_offset[layer] = WORD0(tilebase_address) - // [323] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 -- pwuc1_derefidx_vbuz1=vwuz2 - // tilebase - ldy.z __17 - lda.z __6 - sta vera_tilebase_offset,y - lda.z __6+1 - sta vera_tilebase_offset+1,y - // BYTE2(tilebase_address) - // [324] vera_layer_mode_tile::$7 = byte2 vera_layer_mode_tile::tilebase_address#10 -- vbuaa=_byte2_vduz1 - lda.z tilebase_address+2 - // vera_tilebase_bank[layer] = BYTE2(tilebase_address) - // [325] vera_tilebase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$7 -- pbuc1_derefidx_vbuz1=vbuaa - ldy.z layer - sta vera_tilebase_bank,y - // vera_tilebase_address[layer] = tilebase_address - // [326] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 -- pduc1_derefidx_vbuz1=vduz2 - ldy.z __18 - lda.z tilebase_address - sta vera_tilebase_address,y - lda.z tilebase_address+1 - sta vera_tilebase_address+1,y - lda.z tilebase_address+2 - sta vera_tilebase_address+2,y - lda.z tilebase_address+3 - sta vera_tilebase_address+3,y - // tilebase_address = tilebase_address >> 1 - // [327] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 -- vduz1=vduz1_ror_1 - lsr.z tilebase_address+3 - ror.z tilebase_address+2 - ror.z tilebase_address+1 - ror.z tilebase_address - // byte tilebase = BYTE1(tilebase_address) - // [328] vera_layer_mode_tile::tilebase#0 = byte1 vera_layer_mode_tile::tilebase_address#0 -- vbuaa=_byte1_vduz1 - lda.z tilebase_address+1 - // tilebase &= VERA_LAYER_TILEBASE_MASK - // [329] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK -- vbuxx=vbuaa_band_vbuc1 - and #VERA_LAYER_TILEBASE_MASK - tax - // case 8: - // tilebase |= VERA_TILEBASE_WIDTH_8; - // break; - // [330] if(vera_layer_mode_tile::tilewidth#10==8) goto vera_layer_mode_tile::@19 -- vbuz1_eq_vbuc1_then_la1 - lda #8 - cmp.z tilewidth - beq __b19 - // vera_layer_mode_tile::@17 - // case 16: - // tilebase |= VERA_TILEBASE_WIDTH_16; - // break; - // [331] if(vera_layer_mode_tile::tilewidth#10!=$10) goto vera_layer_mode_tile::@19 -- vbuz1_neq_vbuc1_then_la1 - lda #$10 - cmp.z tilewidth - bne __b19 - // vera_layer_mode_tile::@18 - // tilebase |= VERA_TILEBASE_WIDTH_16 - // [332] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_TILEBASE_WIDTH_16 - tax - // [333] phi from vera_layer_mode_tile::@17 vera_layer_mode_tile::@18 vera_layer_mode_tile::@24 to vera_layer_mode_tile::@19 [phi:vera_layer_mode_tile::@17/vera_layer_mode_tile::@18/vera_layer_mode_tile::@24->vera_layer_mode_tile::@19] - // [333] phi vera_layer_mode_tile::tilebase#12 = vera_layer_mode_tile::tilebase#1 [phi:vera_layer_mode_tile::@17/vera_layer_mode_tile::@18/vera_layer_mode_tile::@24->vera_layer_mode_tile::@19#0] -- register_copy - // vera_layer_mode_tile::@19 - __b19: - // case 8: - // tilebase |= VERA_TILEBASE_HEIGHT_8; - // break; - // [334] if(vera_layer_mode_tile::tileheight#10==8) goto vera_layer_mode_tile::@22 -- vbuz1_eq_vbuc1_then_la1 - lda #8 - cmp.z tileheight - beq __b22 - // vera_layer_mode_tile::@20 - // case 16: - // tilebase |= VERA_TILEBASE_HEIGHT_16; - // break; - // [335] if(vera_layer_mode_tile::tileheight#10!=$10) goto vera_layer_mode_tile::@22 -- vbuz1_neq_vbuc1_then_la1 - lda #$10 - cmp.z tileheight - bne __b22 - // vera_layer_mode_tile::@21 - // tilebase |= VERA_TILEBASE_HEIGHT_16 - // [336] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_TILEBASE_HEIGHT_16 - tax - // [337] phi from vera_layer_mode_tile::@19 vera_layer_mode_tile::@20 vera_layer_mode_tile::@21 to vera_layer_mode_tile::@22 [phi:vera_layer_mode_tile::@19/vera_layer_mode_tile::@20/vera_layer_mode_tile::@21->vera_layer_mode_tile::@22] - // [337] phi vera_layer_mode_tile::tilebase#10 = vera_layer_mode_tile::tilebase#12 [phi:vera_layer_mode_tile::@19/vera_layer_mode_tile::@20/vera_layer_mode_tile::@21->vera_layer_mode_tile::@22#0] -- register_copy - // vera_layer_mode_tile::@22 - __b22: - // vera_layer_set_tilebase(layer,tilebase) - // [338] vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [339] vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10 - // [340] call vera_layer_set_tilebase - // [628] phi from vera_layer_mode_tile::@22 to vera_layer_set_tilebase [phi:vera_layer_mode_tile::@22->vera_layer_set_tilebase] - // [628] phi vera_layer_set_tilebase::tilebase#2 = vera_layer_set_tilebase::tilebase#0 [phi:vera_layer_mode_tile::@22->vera_layer_set_tilebase#0] -- register_copy - // [628] phi vera_layer_set_tilebase::layer#2 = vera_layer_set_tilebase::layer#0 [phi:vera_layer_mode_tile::@22->vera_layer_set_tilebase#1] -- register_copy - jsr vera_layer_set_tilebase - // vera_layer_mode_tile::@return - // } - // [341] return - rts - // vera_layer_mode_tile::@14 - __b14: - // config |= VERA_LAYER_HEIGHT_128 - // [342] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_128 - tax - jmp __b16 - // vera_layer_mode_tile::@13 - __b13: - // config |= VERA_LAYER_HEIGHT_64 - // [343] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_64 - tax - jmp __b16 - // vera_layer_mode_tile::@7 - __b7: - // vera_layer_rowshift[layer] = 8 - // [344] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #8 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 256 - // [345] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - tya - asl - // [346] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 -- pwuc1_derefidx_vbuaa=vwuc2 - tay - lda #<$100 - sta vera_layer_rowskip,y - lda #>$100 - sta vera_layer_rowskip+1,y - // [300] phi from vera_layer_mode_tile::@7 to vera_layer_mode_tile::@9 [phi:vera_layer_mode_tile::@7->vera_layer_mode_tile::@9] - // [300] phi vera_layer_mode_tile::config#21 = VERA_LAYER_WIDTH_128 [phi:vera_layer_mode_tile::@7->vera_layer_mode_tile::@9#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_WIDTH_128 - jmp __b9 - // vera_layer_mode_tile::@6 - __b6: - // vera_layer_rowshift[layer] = 7 - // [347] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #7 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 128 - // [348] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - tya - asl - // [349] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 -- pwuc1_derefidx_vbuaa=vbuc2 - tay - lda #$80 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - // [300] phi from vera_layer_mode_tile::@6 to vera_layer_mode_tile::@9 [phi:vera_layer_mode_tile::@6->vera_layer_mode_tile::@9] - // [300] phi vera_layer_mode_tile::config#21 = VERA_LAYER_WIDTH_64 [phi:vera_layer_mode_tile::@6->vera_layer_mode_tile::@9#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_WIDTH_64 - jmp __b9 - // vera_layer_mode_tile::@5 - __b5: - // vera_layer_rowshift[layer] = 6 - // [350] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #6 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 64 - // [351] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - tya - asl - // [352] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 -- pwuc1_derefidx_vbuaa=vbuc2 - tay - lda #$40 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - jmp __b1 -} - // vera_layer_mode_bitmap -// Set a vera layer in bitmap mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_mode: The color mode, which can be 16 or 256. -// void vera_layer_mode_bitmap(char layer, unsigned long bitmap_address, unsigned int mapwidth, unsigned int color_depth) -vera_layer_mode_bitmap: { - .const layer = 0 - .const bitmap_address = 0 - // config - .const config = VERA_LAYER_COLOR_DEPTH_8BPP|VERA_LAYER_CONFIG_MODE_BITMAP - .const tilebase = 0 - // vera_layer_mode_bitmap::@1 - // vera_tilebase_offset[layer] = WORD0(bitmap_address) - // [354] *vera_tilebase_offset = 0 -- _deref_pwuc1=vwuc2 - // tilebase - lda #<0 - sta vera_tilebase_offset - sta vera_tilebase_offset+1 - // vera_tilebase_bank[layer] = BYTE2(bitmap_address) - // [355] *vera_tilebase_bank = 0 -- _deref_pbuc1=vbuc2 - sta vera_tilebase_bank - // vera_tilebase_address[layer] = bitmap_address - // [356] *vera_tilebase_address = vera_layer_mode_bitmap::bitmap_address#1 -- _deref_pduc1=vduc2 - lda #bitmap_address - sta vera_tilebase_address+1 - lda #>$10 - sta vera_tilebase_address+2 - lda #>bitmap_address>>$10 - sta vera_tilebase_address+3 - // vera_layer_mode_bitmap::vera_display_set_scale_double1 - // *VERA_DC_HSCALE = 64 - // [357] *VERA_DC_HSCALE = $40 -- _deref_pbuc1=vbuc2 - lda #$40 - sta VERA_DC_HSCALE - // *VERA_DC_VSCALE = 64 - // [358] *VERA_DC_VSCALE = $40 -- _deref_pbuc1=vbuc2 - sta VERA_DC_VSCALE - // [359] phi from vera_layer_mode_bitmap::vera_display_set_scale_double1 to vera_layer_mode_bitmap::@2 [phi:vera_layer_mode_bitmap::vera_display_set_scale_double1->vera_layer_mode_bitmap::@2] - // vera_layer_mode_bitmap::@2 - // vera_layer_set_config(layer, config) - // [360] call vera_layer_set_config - // [623] phi from vera_layer_mode_bitmap::@2 to vera_layer_set_config [phi:vera_layer_mode_bitmap::@2->vera_layer_set_config] - // [623] phi vera_layer_set_config::config#2 = vera_layer_mode_bitmap::config#11 [phi:vera_layer_mode_bitmap::@2->vera_layer_set_config#0] -- vbuxx=vbuc1 - ldx #config - // [623] phi vera_layer_set_config::layer#2 = vera_layer_mode_bitmap::layer#0 [phi:vera_layer_mode_bitmap::@2->vera_layer_set_config#1] -- vbuaa=vbuc1 - lda #layer - jsr vera_layer_set_config - // [361] phi from vera_layer_mode_bitmap::@2 to vera_layer_mode_bitmap::@3 [phi:vera_layer_mode_bitmap::@2->vera_layer_mode_bitmap::@3] - // vera_layer_mode_bitmap::@3 - // vera_layer_set_tilebase(layer,tilebase) - // [362] call vera_layer_set_tilebase - // [628] phi from vera_layer_mode_bitmap::@3 to vera_layer_set_tilebase [phi:vera_layer_mode_bitmap::@3->vera_layer_set_tilebase] - // [628] phi vera_layer_set_tilebase::tilebase#2 = vera_layer_mode_bitmap::tilebase#1 [phi:vera_layer_mode_bitmap::@3->vera_layer_set_tilebase#0] -- vbuxx=vbuc1 - ldx #tilebase - // [628] phi vera_layer_set_tilebase::layer#2 = vera_layer_mode_bitmap::layer#0 [phi:vera_layer_mode_bitmap::@3->vera_layer_set_tilebase#1] -- vbuaa=vbuc1 - lda #layer - jsr vera_layer_set_tilebase - // vera_layer_mode_bitmap::@return - // } - // [363] return - rts -} - // clrscr -// clears the screen and moves the cursor to the upper left-hand corner of the screen. -clrscr: { - .label __1 = $87 - .label line_text = $70 - .label color = $87 - // char* line_text = CONIO_SCREEN_TEXT - // [364] clrscr::line_text#0 = (char *)CONIO_SCREEN_TEXT#17 -- pbuz1=pbuz2 - lda.z CONIO_SCREEN_TEXT_1 - sta.z line_text - lda.z CONIO_SCREEN_TEXT_1+1 - sta.z line_text+1 - // vera_layer_get_backcolor(conio_screen_layer) - // [365] vera_layer_get_backcolor::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [366] call vera_layer_get_backcolor - jsr vera_layer_get_backcolor - // [367] vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 - // clrscr::@7 - // [368] clrscr::$0 = vera_layer_get_backcolor::return#0 - // vera_layer_get_backcolor(conio_screen_layer) << 4 - // [369] clrscr::$1 = clrscr::$0 << 4 -- vbuz1=vbuaa_rol_4 - asl - asl - asl - asl - sta.z __1 - // vera_layer_get_textcolor(conio_screen_layer) - // [370] vera_layer_get_textcolor::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [371] call vera_layer_get_textcolor - jsr vera_layer_get_textcolor - // [372] vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 - // clrscr::@8 - // [373] clrscr::$2 = vera_layer_get_textcolor::return#0 - // char color = ( vera_layer_get_backcolor(conio_screen_layer) << 4 ) | vera_layer_get_textcolor(conio_screen_layer) - // [374] clrscr::color#0 = clrscr::$1 | clrscr::$2 -- vbuz1=vbuz1_bor_vbuaa - ora.z color - sta.z color - // [375] phi from clrscr::@8 to clrscr::@1 [phi:clrscr::@8->clrscr::@1] - // [375] phi clrscr::line_text#2 = clrscr::line_text#0 [phi:clrscr::@8->clrscr::@1#0] -- register_copy - // [375] phi clrscr::l#2 = 0 [phi:clrscr::@8->clrscr::@1#1] -- vbuxx=vbuc1 - ldx #0 - // clrscr::@1 - __b1: - // for( char l=0;lclrscr::@4] - // [389] phi clrscr::c#2 = 0 [phi:clrscr::@2->clrscr::@4#0] -- vbuyy=vbuc1 - ldy #0 - // clrscr::@4 - __b4: - // for( char c=0;cclrscr::@1] - // [375] phi clrscr::line_text#2 = clrscr::line_text#1 [phi:clrscr::@6->clrscr::@1#0] -- register_copy - // [375] phi clrscr::l#2 = clrscr::l#1 [phi:clrscr::@6->clrscr::@1#1] -- register_copy - jmp __b1 - // clrscr::@5 - __b5: - // *VERA_DATA0 = ' ' - // [393] *VERA_DATA0 = ' ' -- _deref_pbuc1=vbuc2 - lda #' ' - sta VERA_DATA0 - // *VERA_DATA0 = color - // [394] *VERA_DATA0 = clrscr::color#0 -- _deref_pbuc1=vbuz1 - lda.z color - sta VERA_DATA0 - // for( char c=0;cclrscr::@4] - // [389] phi clrscr::c#2 = clrscr::c#1 [phi:clrscr::@5->clrscr::@4#0] -- register_copy - jmp __b4 -} - // printf_str -/// Print a NUL-terminated string -// void printf_str(void (*putc)(char), __zp($4d) const char *s) -printf_str: { - .label s = $4d - // [397] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] - // [397] phi printf_str::s#8 = printf_str::s#9 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy - // printf_str::@1 - __b1: - // while(c=*s++) - // [398] printf_str::c#1 = *printf_str::s#8 -- vbuaa=_deref_pbuz1 - ldy #0 - lda (s),y - // [399] printf_str::s#0 = ++ printf_str::s#8 -- pbuz1=_inc_pbuz1 - inc.z s - bne !+ - inc.z s+1 - !: - // [400] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b2 - // printf_str::@return - // } - // [401] return - rts - // printf_str::@2 - __b2: - // putc(c) - // [402] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa - pha - // [403] callexecute cputc -- call_vprc1 - jsr cputc - // sideeffect stackpullpadding(1) -- _stackpullpadding_1 - pla - jmp __b1 -} - // bitmap_init -// Initialize the bitmap plotter tables for a specific bitmap -// void bitmap_init(char layer, unsigned long address) -bitmap_init: { - .const layer = 0 - .const address = 0 - .label __7 = $81 - .label __10 = $83 - .label __13 = $85 - .label __23 = $37 - .label __24 = $39 - .label __25 = $3b - .label __26 = $3d - .label __28 = $3f - .label vera_layer_get_color_depth1_config = $9b - .label bitmask = $21 - .label bitshift = $20 - .label x = $67 - .label hdelta = $a3 - .label yoffs = $6a - .label y = $47 - .label __29 = $37 - .label __30 = $51 - .label __31 = $53 - .label __32 = $39 - .label __33 = $55 - .label __34 = $57 - .label __35 = $3b - .label __36 = $59 - .label __37 = $5b - .label __38 = $3d - .label __39 = $5d - .label __40 = $5f - .label __41 = $3f - // __bitmap_address = address - // [405] __bitmap_address = bitmap_init::address#0 -- vduz1=vduc1 - lda #
address - sta.z __bitmap_address+1 - lda #
>$10 - sta.z __bitmap_address+2 - lda #>address>>$10 - sta.z __bitmap_address+3 - // __bitmap_layer = layer - // [406] __bitmap_layer = bitmap_init::layer#0 -- vbuz1=vbuc1 - lda #layer - sta.z __bitmap_layer - // vera_layer_get_color_depth(__bitmap_layer) - // [407] bitmap_init::vera_layer_get_color_depth1_layer#0 = __bitmap_layer -- vbuaa=vbuz1 - // bitmap_init::vera_layer_get_color_depth1 - // byte* config = vera_layer_config[layer] - // [408] bitmap_init::vera_layer_get_color_depth1_$1 = bitmap_init::vera_layer_get_color_depth1_layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [409] bitmap_init::vera_layer_get_color_depth1_config#0 = vera_layer_config[bitmap_init::vera_layer_get_color_depth1_$1] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z vera_layer_get_color_depth1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_color_depth1_config+1 - // *config & VERA_LAYER_COLOR_DEPTH_MASK - // [410] bitmap_init::vera_layer_get_color_depth1_$0 = *bitmap_init::vera_layer_get_color_depth1_config#0 & VERA_LAYER_COLOR_DEPTH_MASK -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_COLOR_DEPTH_MASK - ldy #0 - and (vera_layer_get_color_depth1_config),y - // return (*config & VERA_LAYER_COLOR_DEPTH_MASK); - // [411] bitmap_init::vera_layer_get_color_depth1_return#0 = bitmap_init::vera_layer_get_color_depth1_$0 - // bitmap_init::vera_layer_get_color_depth1_@return - // } - // [412] bitmap_init::vera_layer_get_color_depth1_return#1 = bitmap_init::vera_layer_get_color_depth1_return#0 - // bitmap_init::@16 - // vera_layer_get_color_depth(__bitmap_layer) - // [413] bitmap_init::$0 = bitmap_init::vera_layer_get_color_depth1_return#1 - // __bitmap_color_depth = vera_layer_get_color_depth(__bitmap_layer) - // [414] __bitmap_color_depth = bitmap_init::$0 -- vbuz1=vbuaa - sta.z __bitmap_color_depth - // vera_display_get_hscale() - // [415] call vera_display_get_hscale - // [637] phi from bitmap_init::@16 to vera_display_get_hscale [phi:bitmap_init::@16->vera_display_get_hscale] - jsr vera_display_get_hscale - // vera_display_get_hscale() - // [416] vera_display_get_hscale::return#2 = vera_display_get_hscale::return#0 - // bitmap_init::@17 - // [417] bitmap_init::$1 = vera_display_get_hscale::return#2 - // __bitmap_hscale = vera_display_get_hscale() - // [418] __bitmap_hscale = bitmap_init::$1 -- vbuz1=vbuxx - stx.z __bitmap_hscale - // vera_display_get_vscale() - // [419] call vera_display_get_vscale - // [644] phi from bitmap_init::@17 to vera_display_get_vscale [phi:bitmap_init::@17->vera_display_get_vscale] - jsr vera_display_get_vscale - // vera_display_get_vscale() - // [420] vera_display_get_vscale::return#2 = vera_display_get_vscale::return#0 - // bitmap_init::@18 - // [421] bitmap_init::$2 = vera_display_get_vscale::return#2 - // __bitmap_vscale = vera_display_get_vscale() - // [422] __bitmap_vscale = bitmap_init::$2 -- vbuz1=vbuxx - // Returns 1 when 640 and 2 when 320. - stx.z __bitmap_vscale - // byte bitmask = bitmasks[__bitmap_color_depth] - // [423] bitmap_init::bitmask#0 = bitmasks[__bitmap_color_depth] -- vbuz1=pbuc1_derefidx_vbuz2 - // Returns 1 when 480 and 2 when 240. - ldy.z __bitmap_color_depth - lda bitmasks,y - sta.z bitmask - // signed byte bitshift = bitshifts[__bitmap_color_depth] - // [424] bitmap_init::bitshift#0 = bitshifts[__bitmap_color_depth] -- vbsz1=pbsc1_derefidx_vbuz2 - lda bitshifts,y - sta.z bitshift - // [425] phi from bitmap_init::@18 to bitmap_init::@1 [phi:bitmap_init::@18->bitmap_init::@1] - // [425] phi bitmap_init::bitshift#10 = bitmap_init::bitshift#0 [phi:bitmap_init::@18->bitmap_init::@1#0] -- register_copy - // [425] phi bitmap_init::bitmask#10 = bitmap_init::bitmask#0 [phi:bitmap_init::@18->bitmap_init::@1#1] -- register_copy - // [425] phi bitmap_init::x#10 = 0 [phi:bitmap_init::@18->bitmap_init::@1#2] -- vwuz1=vwuc1 - lda #<0 - sta.z x - sta.z x+1 - // [425] phi from bitmap_init::@7 to bitmap_init::@1 [phi:bitmap_init::@7->bitmap_init::@1] - // [425] phi bitmap_init::bitshift#10 = bitmap_init::bitshift#14 [phi:bitmap_init::@7->bitmap_init::@1#0] -- register_copy - // [425] phi bitmap_init::bitmask#10 = bitmap_init::bitmask#16 [phi:bitmap_init::@7->bitmap_init::@1#1] -- register_copy - // [425] phi bitmap_init::x#10 = bitmap_init::x#1 [phi:bitmap_init::@7->bitmap_init::@1#2] -- register_copy - // bitmap_init::@1 - __b1: - // if(__bitmap_color_depth==0) - // [426] if(__bitmap_color_depth!=0) goto bitmap_init::@2 -- vbuz1_neq_0_then_la1 - lda.z __bitmap_color_depth - bne __b2 - // bitmap_init::@8 - // x >> 3 - // [427] bitmap_init::$7 = bitmap_init::x#10 >> 3 -- vwuz1=vwuz2_ror_3 - lda.z x+1 - lsr - sta.z __7+1 - lda.z x - ror - sta.z __7 - lsr.z __7+1 - ror.z __7 - lsr.z __7+1 - ror.z __7 - // __bitmap_plot_x[x] = (x >> 3) - // [428] bitmap_init::$23 = bitmap_init::x#10 << 1 -- vwuz1=vwuz2_rol_1 - lda.z x - asl - sta.z __23 - lda.z x+1 - rol - sta.z __23+1 - // [429] bitmap_init::$29 = __bitmap_plot_x + bitmap_init::$23 -- pwuz1=pwuc1_plus_vwuz1 - lda.z __29 - clc - adc #<__bitmap_plot_x - sta.z __29 - lda.z __29+1 - adc #>__bitmap_plot_x - sta.z __29+1 - // [430] *bitmap_init::$29 = bitmap_init::$7 -- _deref_pwuz1=vwuz2 - ldy #0 - lda.z __7 - sta (__29),y - iny - lda.z __7+1 - sta (__29),y - // __bitmap_plot_bitmask[x] = bitmask - // [431] bitmap_init::$30 = __bitmap_plot_bitmask + bitmap_init::x#10 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitmask - sta.z __30 - lda.z x+1 - adc #>__bitmap_plot_bitmask - sta.z __30+1 - // [432] *bitmap_init::$30 = bitmap_init::bitmask#10 -- _deref_pbuz1=vbuz2 - lda.z bitmask - ldy #0 - sta (__30),y - // __bitmap_plot_bitshift[x] = (byte)bitshift - // [433] bitmap_init::$31 = __bitmap_plot_bitshift + bitmap_init::x#10 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitshift - sta.z __31 - lda.z x+1 - adc #>__bitmap_plot_bitshift - sta.z __31+1 - // [434] *bitmap_init::$31 = (char)bitmap_init::bitshift#10 -- _deref_pbuz1=vbuz2 - lda.z bitshift - sta (__31),y - // bitshift -= 1 - // [435] bitmap_init::bitshift#1 = bitmap_init::bitshift#10 - 1 -- vbsz1=vbsz1_minus_1 - dec.z bitshift - // bitmask >>= 1 - // [436] bitmap_init::bitmask#1 = bitmap_init::bitmask#10 >> 1 -- vbuz1=vbuz1_ror_1 - lsr.z bitmask - // [437] phi from bitmap_init::@1 bitmap_init::@8 to bitmap_init::@2 [phi:bitmap_init::@1/bitmap_init::@8->bitmap_init::@2] - // [437] phi bitmap_init::bitshift#11 = bitmap_init::bitshift#10 [phi:bitmap_init::@1/bitmap_init::@8->bitmap_init::@2#0] -- register_copy - // [437] phi bitmap_init::bitmask#11 = bitmap_init::bitmask#10 [phi:bitmap_init::@1/bitmap_init::@8->bitmap_init::@2#1] -- register_copy - // bitmap_init::@2 - __b2: - // if(__bitmap_color_depth==1) - // [438] if(__bitmap_color_depth!=1) goto bitmap_init::@3 -- vbuz1_neq_vbuc1_then_la1 - lda #1 - cmp.z __bitmap_color_depth - bne __b3 - // bitmap_init::@9 - // x >> 2 - // [439] bitmap_init::$10 = bitmap_init::x#10 >> 2 -- vwuz1=vwuz2_ror_2 - lda.z x+1 - lsr - sta.z __10+1 - lda.z x - ror - sta.z __10 - lsr.z __10+1 - ror.z __10 - // __bitmap_plot_x[x] = (x >> 2) - // [440] bitmap_init::$24 = bitmap_init::x#10 << 1 -- vwuz1=vwuz2_rol_1 - lda.z x - asl - sta.z __24 - lda.z x+1 - rol - sta.z __24+1 - // [441] bitmap_init::$32 = __bitmap_plot_x + bitmap_init::$24 -- pwuz1=pwuc1_plus_vwuz1 - lda.z __32 - clc - adc #<__bitmap_plot_x - sta.z __32 - lda.z __32+1 - adc #>__bitmap_plot_x - sta.z __32+1 - // [442] *bitmap_init::$32 = bitmap_init::$10 -- _deref_pwuz1=vwuz2 - ldy #0 - lda.z __10 - sta (__32),y - iny - lda.z __10+1 - sta (__32),y - // __bitmap_plot_bitmask[x] = bitmask - // [443] bitmap_init::$33 = __bitmap_plot_bitmask + bitmap_init::x#10 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitmask - sta.z __33 - lda.z x+1 - adc #>__bitmap_plot_bitmask - sta.z __33+1 - // [444] *bitmap_init::$33 = bitmap_init::bitmask#11 -- _deref_pbuz1=vbuz2 - lda.z bitmask - ldy #0 - sta (__33),y - // __bitmap_plot_bitshift[x] = (byte)bitshift - // [445] bitmap_init::$34 = __bitmap_plot_bitshift + bitmap_init::x#10 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitshift - sta.z __34 - lda.z x+1 - adc #>__bitmap_plot_bitshift - sta.z __34+1 - // [446] *bitmap_init::$34 = (char)bitmap_init::bitshift#11 -- _deref_pbuz1=vbuz2 - lda.z bitshift - sta (__34),y - // bitshift -= 2 - // [447] bitmap_init::bitshift#2 = bitmap_init::bitshift#11 - 2 -- vbsz1=vbsz1_minus_2 - dec.z bitshift - dec.z bitshift - // bitmask >>= 2 - // [448] bitmap_init::bitmask#2 = bitmap_init::bitmask#11 >> 2 -- vbuz1=vbuz1_ror_2 - lda.z bitmask - lsr - lsr - sta.z bitmask - // [449] phi from bitmap_init::@2 bitmap_init::@9 to bitmap_init::@3 [phi:bitmap_init::@2/bitmap_init::@9->bitmap_init::@3] - // [449] phi bitmap_init::bitshift#12 = bitmap_init::bitshift#11 [phi:bitmap_init::@2/bitmap_init::@9->bitmap_init::@3#0] -- register_copy - // [449] phi bitmap_init::bitmask#12 = bitmap_init::bitmask#11 [phi:bitmap_init::@2/bitmap_init::@9->bitmap_init::@3#1] -- register_copy - // bitmap_init::@3 - __b3: - // if(__bitmap_color_depth==2) - // [450] if(__bitmap_color_depth!=2) goto bitmap_init::@4 -- vbuz1_neq_vbuc1_then_la1 - lda #2 - cmp.z __bitmap_color_depth - bne __b4 - // bitmap_init::@10 - // x >> 1 - // [451] bitmap_init::$13 = bitmap_init::x#10 >> 1 -- vwuz1=vwuz2_ror_1 - lda.z x+1 - lsr - sta.z __13+1 - lda.z x - ror - sta.z __13 - // __bitmap_plot_x[x] = (x >> 1) - // [452] bitmap_init::$25 = bitmap_init::x#10 << 1 -- vwuz1=vwuz2_rol_1 - lda.z x - asl - sta.z __25 - lda.z x+1 - rol - sta.z __25+1 - // [453] bitmap_init::$35 = __bitmap_plot_x + bitmap_init::$25 -- pwuz1=pwuc1_plus_vwuz1 - lda.z __35 - clc - adc #<__bitmap_plot_x - sta.z __35 - lda.z __35+1 - adc #>__bitmap_plot_x - sta.z __35+1 - // [454] *bitmap_init::$35 = bitmap_init::$13 -- _deref_pwuz1=vwuz2 - ldy #0 - lda.z __13 - sta (__35),y - iny - lda.z __13+1 - sta (__35),y - // __bitmap_plot_bitmask[x] = bitmask - // [455] bitmap_init::$36 = __bitmap_plot_bitmask + bitmap_init::x#10 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitmask - sta.z __36 - lda.z x+1 - adc #>__bitmap_plot_bitmask - sta.z __36+1 - // [456] *bitmap_init::$36 = bitmap_init::bitmask#12 -- _deref_pbuz1=vbuz2 - lda.z bitmask - ldy #0 - sta (__36),y - // __bitmap_plot_bitshift[x] = (byte)bitshift - // [457] bitmap_init::$37 = __bitmap_plot_bitshift + bitmap_init::x#10 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitshift - sta.z __37 - lda.z x+1 - adc #>__bitmap_plot_bitshift - sta.z __37+1 - // [458] *bitmap_init::$37 = (char)bitmap_init::bitshift#12 -- _deref_pbuz1=vbuz2 - lda.z bitshift - sta (__37),y - // bitshift -= 4 - // [459] bitmap_init::bitshift#3 = bitmap_init::bitshift#12 - 4 -- vbsz1=vbsz1_minus_vbsc1 - sec - sbc #4 - sta.z bitshift - // bitmask >>= 4 - // [460] bitmap_init::bitmask#3 = bitmap_init::bitmask#12 >> 4 -- vbuz1=vbuz1_ror_4 - lda.z bitmask - lsr - lsr - lsr - lsr - sta.z bitmask - // [461] phi from bitmap_init::@10 bitmap_init::@3 to bitmap_init::@4 [phi:bitmap_init::@10/bitmap_init::@3->bitmap_init::@4] - // [461] phi bitmap_init::bitmask#13 = bitmap_init::bitmask#3 [phi:bitmap_init::@10/bitmap_init::@3->bitmap_init::@4#0] -- register_copy - // [461] phi bitmap_init::bitshift#13 = bitmap_init::bitshift#3 [phi:bitmap_init::@10/bitmap_init::@3->bitmap_init::@4#1] -- register_copy - // bitmap_init::@4 - __b4: - // if(__bitmap_color_depth==3) - // [462] if(__bitmap_color_depth!=3) goto bitmap_init::@5 -- vbuz1_neq_vbuc1_then_la1 - lda #3 - cmp.z __bitmap_color_depth - bne __b5 - // bitmap_init::@11 - // __bitmap_plot_x[x] = x - // [463] bitmap_init::$26 = bitmap_init::x#10 << 1 -- vwuz1=vwuz2_rol_1 - lda.z x - asl - sta.z __26 - lda.z x+1 - rol - sta.z __26+1 - // [464] bitmap_init::$38 = __bitmap_plot_x + bitmap_init::$26 -- pwuz1=pwuc1_plus_vwuz1 - lda.z __38 - clc - adc #<__bitmap_plot_x - sta.z __38 - lda.z __38+1 - adc #>__bitmap_plot_x - sta.z __38+1 - // [465] *bitmap_init::$38 = bitmap_init::x#10 -- _deref_pwuz1=vwuz2 - ldy #0 - lda.z x - sta (__38),y - iny - lda.z x+1 - sta (__38),y - // __bitmap_plot_bitmask[x] = bitmask - // [466] bitmap_init::$39 = __bitmap_plot_bitmask + bitmap_init::x#10 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitmask - sta.z __39 - lda.z x+1 - adc #>__bitmap_plot_bitmask - sta.z __39+1 - // [467] *bitmap_init::$39 = bitmap_init::bitmask#13 -- _deref_pbuz1=vbuz2 - lda.z bitmask - ldy #0 - sta (__39),y - // __bitmap_plot_bitshift[x] = (byte)bitshift - // [468] bitmap_init::$40 = __bitmap_plot_bitshift + bitmap_init::x#10 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitshift - sta.z __40 - lda.z x+1 - adc #>__bitmap_plot_bitshift - sta.z __40+1 - // [469] *bitmap_init::$40 = (char)bitmap_init::bitshift#13 -- _deref_pbuz1=vbuz2 - lda.z bitshift - sta (__40),y - // bitmap_init::@5 - __b5: - // if(bitshift<0) - // [470] if(bitmap_init::bitshift#13>=0) goto bitmap_init::@6 -- vbsz1_ge_0_then_la1 - lda.z bitshift - cmp #0 - bpl __b6 - // bitmap_init::@12 - // bitshift = bitshifts[__bitmap_color_depth] - // [471] bitmap_init::bitshift#4 = bitshifts[__bitmap_color_depth] -- vbsz1=pbsc1_derefidx_vbuz2 - ldy.z __bitmap_color_depth - lda bitshifts,y - sta.z bitshift - // [472] phi from bitmap_init::@12 bitmap_init::@5 to bitmap_init::@6 [phi:bitmap_init::@12/bitmap_init::@5->bitmap_init::@6] - // [472] phi bitmap_init::bitshift#14 = bitmap_init::bitshift#4 [phi:bitmap_init::@12/bitmap_init::@5->bitmap_init::@6#0] -- register_copy - // bitmap_init::@6 - __b6: - // if(bitmask==0) - // [473] if(bitmap_init::bitmask#13!=0) goto bitmap_init::@7 -- vbuz1_neq_0_then_la1 - lda.z bitmask - bne __b7 - // bitmap_init::@13 - // bitmask = bitmasks[__bitmap_color_depth] - // [474] bitmap_init::bitmask#4 = bitmasks[__bitmap_color_depth] -- vbuz1=pbuc1_derefidx_vbuz2 - ldy.z __bitmap_color_depth - lda bitmasks,y - sta.z bitmask - // [475] phi from bitmap_init::@13 bitmap_init::@6 to bitmap_init::@7 [phi:bitmap_init::@13/bitmap_init::@6->bitmap_init::@7] - // [475] phi bitmap_init::bitmask#16 = bitmap_init::bitmask#4 [phi:bitmap_init::@13/bitmap_init::@6->bitmap_init::@7#0] -- register_copy - // bitmap_init::@7 - __b7: - // for(word x : 0..639) - // [476] bitmap_init::x#1 = ++ bitmap_init::x#10 -- vwuz1=_inc_vwuz1 - inc.z x - bne !+ - inc.z x+1 - !: - // [477] if(bitmap_init::x#1!=$280) goto bitmap_init::@1 -- vwuz1_neq_vwuc1_then_la1 - lda.z x+1 - cmp #>$280 - beq !__b1+ - jmp __b1 - !__b1: - lda.z x - cmp #<$280 - beq !__b1+ - jmp __b1 - !__b1: - // bitmap_init::@14 - // __bitmap_color_depth<<2 - // [478] bitmap_init::$3 = __bitmap_color_depth << 2 -- vbuaa=vbuz1_rol_2 - lda.z __bitmap_color_depth - asl - asl - // (__bitmap_color_depth<<2)+__bitmap_hscale - // [479] bitmap_init::$4 = bitmap_init::$3 + __bitmap_hscale -- vbuaa=vbuaa_plus_vbuz1 - clc - adc.z __bitmap_hscale - // word hdelta = hdeltas[(__bitmap_color_depth<<2)+__bitmap_hscale] - // [480] bitmap_init::$27 = bitmap_init::$4 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [481] bitmap_init::hdelta#0 = hdeltas[bitmap_init::$27] -- vwuz1=pwuc1_derefidx_vbuaa - // This sets the right delta to skip a whole line based on the scale, depending on the color depth. - tay - lda hdeltas,y - sta.z hdelta - lda hdeltas+1,y - sta.z hdelta+1 - // dword yoffs = __bitmap_address - // [482] bitmap_init::yoffs#0 = __bitmap_address -- vduz1=vduz2 - // We start at the bitmap address; The plot_y contains the bitmap address embedded so we know where a line starts. - lda.z __bitmap_address - sta.z yoffs - lda.z __bitmap_address+1 - sta.z yoffs+1 - lda.z __bitmap_address+2 - sta.z yoffs+2 - lda.z __bitmap_address+3 - sta.z yoffs+3 - // [483] phi from bitmap_init::@14 to bitmap_init::@15 [phi:bitmap_init::@14->bitmap_init::@15] - // [483] phi bitmap_init::yoffs#2 = bitmap_init::yoffs#0 [phi:bitmap_init::@14->bitmap_init::@15#0] -- register_copy - // [483] phi bitmap_init::y#2 = 0 [phi:bitmap_init::@14->bitmap_init::@15#1] -- vwuz1=vwuc1 - lda #<0 - sta.z y - sta.z y+1 - // [483] phi from bitmap_init::@15 to bitmap_init::@15 [phi:bitmap_init::@15->bitmap_init::@15] - // [483] phi bitmap_init::yoffs#2 = bitmap_init::yoffs#1 [phi:bitmap_init::@15->bitmap_init::@15#0] -- register_copy - // [483] phi bitmap_init::y#2 = bitmap_init::y#1 [phi:bitmap_init::@15->bitmap_init::@15#1] -- register_copy - // bitmap_init::@15 - __b15: - // __bitmap_plot_y[y] = yoffs - // [484] bitmap_init::$28 = bitmap_init::y#2 << 2 -- vwuz1=vwuz2_rol_2 - lda.z y - asl - sta.z __28 - lda.z y+1 - rol - sta.z __28+1 - asl.z __28 - rol.z __28+1 - // [485] bitmap_init::$41 = __bitmap_plot_y + bitmap_init::$28 -- pduz1=pduc1_plus_vwuz1 - lda.z __41 - clc - adc #<__bitmap_plot_y - sta.z __41 - lda.z __41+1 - adc #>__bitmap_plot_y - sta.z __41+1 - // [486] *bitmap_init::$41 = bitmap_init::yoffs#2 -- _deref_pduz1=vduz2 - ldy #0 - lda.z yoffs - sta (__41),y - iny - lda.z yoffs+1 - sta (__41),y - iny - lda.z yoffs+2 - sta (__41),y - iny - lda.z yoffs+3 - sta (__41),y - // yoffs = yoffs + hdelta - // [487] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + bitmap_init::hdelta#0 -- vduz1=vduz1_plus_vwuz2 - lda.z yoffs - clc - adc.z hdelta - sta.z yoffs - lda.z yoffs+1 - adc.z hdelta+1 - sta.z yoffs+1 - lda.z yoffs+2 - adc #0 - sta.z yoffs+2 - lda.z yoffs+3 - adc #0 - sta.z yoffs+3 - // for(word y : 0..479) - // [488] bitmap_init::y#1 = ++ bitmap_init::y#2 -- vwuz1=_inc_vwuz1 - inc.z y - bne !+ - inc.z y+1 - !: - // [489] if(bitmap_init::y#1!=$1e0) goto bitmap_init::@15 -- vwuz1_neq_vwuc1_then_la1 - lda.z y+1 - cmp #>$1e0 - bne __b15 - lda.z y - cmp #<$1e0 - bne __b15 - // bitmap_init::@return - // } - // [490] return - rts -} - // bitmap_clear -// Clear all graphics on the bitmap -bitmap_clear: { - .label vdelta = $a1 - .label hdelta = $9d - .label count = $72 - .label vdest = $91 - // word vdelta = vdeltas[__bitmap_vscale] - // [491] bitmap_clear::$6 = __bitmap_vscale << 1 -- vbuaa=vbuz1_rol_1 - lda.z __bitmap_vscale - asl - // [492] bitmap_clear::vdelta#0 = vdeltas[bitmap_clear::$6] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda vdeltas,y - sta.z vdelta - lda vdeltas+1,y - sta.z vdelta+1 - // __bitmap_color_depth<<2 - // [493] bitmap_clear::$0 = __bitmap_color_depth << 2 -- vbuaa=vbuz1_rol_2 - lda.z __bitmap_color_depth - asl - asl - // (__bitmap_color_depth<<2)+__bitmap_hscale - // [494] bitmap_clear::$1 = bitmap_clear::$0 + __bitmap_hscale -- vbuaa=vbuaa_plus_vbuz1 - clc - adc.z __bitmap_hscale - // word hdelta = hdeltas[(__bitmap_color_depth<<2)+__bitmap_hscale] - // [495] bitmap_clear::$7 = bitmap_clear::$1 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [496] bitmap_clear::hdelta#0 = hdeltas[bitmap_clear::$7] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda hdeltas,y - sta.z hdelta - lda hdeltas+1,y - sta.z hdelta+1 - // dword count = mul16u(hdelta,vdelta) - // [497] mul16u::a#0 = bitmap_clear::hdelta#0 -- vwuz1=vwuz2 - lda.z hdelta - sta.z mul16u.a - lda.z hdelta+1 - sta.z mul16u.a+1 - // [498] mul16u::b#0 = bitmap_clear::vdelta#0 - // [499] call mul16u - jsr mul16u - // [500] mul16u::return#0 = mul16u::res#2 -- vduz1=vduz2 - lda.z mul16u.res - sta.z mul16u.return - lda.z mul16u.res+1 - sta.z mul16u.return+1 - lda.z mul16u.res+2 - sta.z mul16u.return+2 - lda.z mul16u.res+3 - sta.z mul16u.return+3 - // bitmap_clear::@1 - // [501] bitmap_clear::count#0 = mul16u::return#0 - // char vbank = BYTE2(__bitmap_address) - // [502] bitmap_clear::vbank#0 = byte2 __bitmap_address -- vbuxx=_byte2_vduz1 - ldx.z __bitmap_address+2 - // WORD0(__bitmap_address) - // [503] bitmap_clear::vdest#0 = word0 __bitmap_address -- vwuz1=_word0_vduz2 - lda.z __bitmap_address - sta.z vdest - lda.z __bitmap_address+1 - sta.z vdest+1 - // memset_vram(vbank, vdest, 0, count) - // [504] memset_vram::vbank#0 = bitmap_clear::vbank#0 - // [505] memset_vram::vdest#0 = (void *)bitmap_clear::vdest#0 - // [506] memset_vram::num#0 = bitmap_clear::count#0 - // [507] call memset_vram - jsr memset_vram - // bitmap_clear::@return - // } - // [508] return - rts -} - // kbhit -// Return true if there's a key waiting, return false if not -kbhit: { - .label chptr = ch - .label IN_DEV = $28a - // Current input device number - .label GETIN = $ffe4 - .label ch = $32 - // char ch = 0 - // [509] kbhit::ch = 0 -- vbuz1=vbuc1 - lda #0 - sta.z ch - // kickasm - // kickasm( uses kbhit::chptr uses kbhit::IN_DEV uses kbhit::GETIN) {{ jsr _kbhit bne L3 jmp continue1 .var via1 = $9f60 //VIA#1 .var d1pra = via1+1 _kbhit: ldy d1pra // The count of keys pressed is stored in RAM bank 0. stz d1pra // Set d1pra to zero to access RAM bank 0. lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). sty d1pra // Set d1pra to previous value. rts L3: ldy IN_DEV // Save current input device stz IN_DEV // Keyboard phy jsr GETIN // Read char, and return in .A ply sta chptr // Store the character read in ch sty IN_DEV // Restore input device ldx #>$0000 rts continue1: nop }} - // CBM GETIN API - jsr _kbhit - bne L3 - - jmp continue1 - - .var via1 = $9f60 //VIA#1 - .var d1pra = via1+1 - - _kbhit: - ldy d1pra // The count of keys pressed is stored in RAM bank 0. - stz d1pra // Set d1pra to zero to access RAM bank 0. - lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). - sty d1pra // Set d1pra to previous value. - rts - - L3: - ldy IN_DEV // Save current input device - stz IN_DEV // Keyboard - phy - jsr GETIN // Read char, and return in .A - ply - sta chptr // Store the character read in ch - sty IN_DEV // Restore input device - ldx #>$0000 - rts - - continue1: - nop - - // return ch; - // [511] kbhit::return#0 = kbhit::ch -- vbuaa=vbuz1 - lda.z ch - // kbhit::@return - // } - // [512] kbhit::return#1 = kbhit::return#0 - // [513] return - rts -} - // bitmap_line -// Draw a line on the bitmap -// void bitmap_line(__zp(6) unsigned int x0, __zp($a) unsigned int x1, __zp(8) unsigned int y0, __zp(2) unsigned int y1, __register(X) char c) -bitmap_line: { - .label xd = $22 - .label yd = $29 - .label yd_1 = $27 - .label x0 = 6 - .label x1 = $a - .label y0 = 8 - .label y1 = 2 - // if(x0bitmap_line_ydxi] - // [673] phi bitmap_line_ydxi::y1#6 = bitmap_line_ydxi::y1#0 [phi:bitmap_line::@4->bitmap_line_ydxi#0] -- register_copy - // [673] phi bitmap_line_ydxi::yd#5 = bitmap_line_ydxi::yd#0 [phi:bitmap_line::@4->bitmap_line_ydxi#1] -- register_copy - // [673] phi bitmap_line_ydxi::c#3 = bitmap_line_ydxi::c#0 [phi:bitmap_line::@4->bitmap_line_ydxi#2] -- register_copy - // [673] phi bitmap_line_ydxi::y#6 = bitmap_line_ydxi::y#0 [phi:bitmap_line::@4->bitmap_line_ydxi#3] -- register_copy - // [673] phi bitmap_line_ydxi::x#5 = bitmap_line_ydxi::x#0 [phi:bitmap_line::@4->bitmap_line_ydxi#4] -- register_copy - // [673] phi bitmap_line_ydxi::xd#2 = bitmap_line_ydxi::xd#0 [phi:bitmap_line::@4->bitmap_line_ydxi#5] -- register_copy - jsr bitmap_line_ydxi - // bitmap_line::@return - // } - // [527] return - rts - // bitmap_line::@8 - __b8: - // bitmap_line_xdyi(x1, y1, x0, xd, yd, c) - // [528] bitmap_line_xdyi::x#0 = bitmap_line::x1#10 -- vwuz1=vwuz2 - lda.z x1 - sta.z bitmap_line_xdyi.x - lda.z x1+1 - sta.z bitmap_line_xdyi.x+1 - // [529] bitmap_line_xdyi::y#0 = bitmap_line::y1#10 -- vwuz1=vwuz2 - lda.z y1 - sta.z bitmap_line_xdyi.y - lda.z y1+1 - sta.z bitmap_line_xdyi.y+1 - // [530] bitmap_line_xdyi::x1#0 = bitmap_line::x0#10 - // [531] bitmap_line_xdyi::xd#0 = bitmap_line::xd#2 - // [532] bitmap_line_xdyi::yd#0 = bitmap_line::yd#2 - // [533] bitmap_line_xdyi::c#0 = bitmap_line::c#10 -- vbuz1=vbuxx - stx.z bitmap_line_xdyi.c - // [534] call bitmap_line_xdyi - // [689] phi from bitmap_line::@8 to bitmap_line_xdyi [phi:bitmap_line::@8->bitmap_line_xdyi] - // [689] phi bitmap_line_xdyi::x1#6 = bitmap_line_xdyi::x1#0 [phi:bitmap_line::@8->bitmap_line_xdyi#0] -- register_copy - // [689] phi bitmap_line_xdyi::xd#5 = bitmap_line_xdyi::xd#0 [phi:bitmap_line::@8->bitmap_line_xdyi#1] -- register_copy - // [689] phi bitmap_line_xdyi::c#3 = bitmap_line_xdyi::c#0 [phi:bitmap_line::@8->bitmap_line_xdyi#2] -- register_copy - // [689] phi bitmap_line_xdyi::y#5 = bitmap_line_xdyi::y#0 [phi:bitmap_line::@8->bitmap_line_xdyi#3] -- register_copy - // [689] phi bitmap_line_xdyi::x#6 = bitmap_line_xdyi::x#0 [phi:bitmap_line::@8->bitmap_line_xdyi#4] -- register_copy - // [689] phi bitmap_line_xdyi::yd#2 = bitmap_line_xdyi::yd#0 [phi:bitmap_line::@8->bitmap_line_xdyi#5] -- register_copy - jsr bitmap_line_xdyi - rts - // bitmap_line::@7 - __b7: - // yd = y1-y0 - // [535] bitmap_line::yd#1 = bitmap_line::y1#10 - bitmap_line::y0#10 -- vwuz1=vwuz2_minus_vwuz3 - lda.z y1 - sec - sbc.z y0 - sta.z yd - lda.z y1+1 - sbc.z y0+1 - sta.z yd+1 - // if(ydbitmap_line_ydxd] - // [705] phi bitmap_line_ydxd::y1#6 = bitmap_line_ydxd::y1#0 [phi:bitmap_line::@10->bitmap_line_ydxd#0] -- register_copy - // [705] phi bitmap_line_ydxd::yd#5 = bitmap_line_ydxd::yd#0 [phi:bitmap_line::@10->bitmap_line_ydxd#1] -- register_copy - // [705] phi bitmap_line_ydxd::c#3 = bitmap_line_ydxd::c#0 [phi:bitmap_line::@10->bitmap_line_ydxd#2] -- register_copy - // [705] phi bitmap_line_ydxd::y#7 = bitmap_line_ydxd::y#0 [phi:bitmap_line::@10->bitmap_line_ydxd#3] -- register_copy - // [705] phi bitmap_line_ydxd::x#5 = bitmap_line_ydxd::x#0 [phi:bitmap_line::@10->bitmap_line_ydxd#4] -- register_copy - // [705] phi bitmap_line_ydxd::xd#2 = bitmap_line_ydxd::xd#0 [phi:bitmap_line::@10->bitmap_line_ydxd#5] -- register_copy - jsr bitmap_line_ydxd - rts - // bitmap_line::@9 - __b9: - // bitmap_line_xdyd(x1, y1, x0, xd, yd, c) - // [544] bitmap_line_xdyd::x#0 = bitmap_line::x1#10 -- vwuz1=vwuz2 - lda.z x1 - sta.z bitmap_line_xdyd.x - lda.z x1+1 - sta.z bitmap_line_xdyd.x+1 - // [545] bitmap_line_xdyd::y#0 = bitmap_line::y1#10 -- vwuz1=vwuz2 - lda.z y1 - sta.z bitmap_line_xdyd.y - lda.z y1+1 - sta.z bitmap_line_xdyd.y+1 - // [546] bitmap_line_xdyd::x1#0 = bitmap_line::x0#10 - // [547] bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 - // [548] bitmap_line_xdyd::yd#0 = bitmap_line::yd#1 - // [549] bitmap_line_xdyd::c#0 = bitmap_line::c#10 -- vbuz1=vbuxx - stx.z bitmap_line_xdyd.c - // [550] call bitmap_line_xdyd - // [721] phi from bitmap_line::@9 to bitmap_line_xdyd [phi:bitmap_line::@9->bitmap_line_xdyd] - // [721] phi bitmap_line_xdyd::x1#6 = bitmap_line_xdyd::x1#0 [phi:bitmap_line::@9->bitmap_line_xdyd#0] -- register_copy - // [721] phi bitmap_line_xdyd::xd#5 = bitmap_line_xdyd::xd#0 [phi:bitmap_line::@9->bitmap_line_xdyd#1] -- register_copy - // [721] phi bitmap_line_xdyd::c#3 = bitmap_line_xdyd::c#0 [phi:bitmap_line::@9->bitmap_line_xdyd#2] -- register_copy - // [721] phi bitmap_line_xdyd::y#5 = bitmap_line_xdyd::y#0 [phi:bitmap_line::@9->bitmap_line_xdyd#3] -- register_copy - // [721] phi bitmap_line_xdyd::x#6 = bitmap_line_xdyd::x#0 [phi:bitmap_line::@9->bitmap_line_xdyd#4] -- register_copy - // [721] phi bitmap_line_xdyd::yd#2 = bitmap_line_xdyd::yd#0 [phi:bitmap_line::@9->bitmap_line_xdyd#5] -- register_copy - jsr bitmap_line_xdyd - rts - // bitmap_line::@1 - __b1: - // xd = x1-x0 - // [551] bitmap_line::xd#1 = bitmap_line::x1#10 - bitmap_line::x0#10 -- vwuz1=vwuz2_minus_vwuz3 - lda.z x1 - sec - sbc.z x0 - sta.z xd - lda.z x1+1 - sbc.z x0+1 - sta.z xd+1 - // if(y0bitmap_line_ydxd] - // [705] phi bitmap_line_ydxd::y1#6 = bitmap_line_ydxd::y1#1 [phi:bitmap_line::@6->bitmap_line_ydxd#0] -- register_copy - // [705] phi bitmap_line_ydxd::yd#5 = bitmap_line_ydxd::yd#1 [phi:bitmap_line::@6->bitmap_line_ydxd#1] -- register_copy - // [705] phi bitmap_line_ydxd::c#3 = bitmap_line_ydxd::c#1 [phi:bitmap_line::@6->bitmap_line_ydxd#2] -- register_copy - // [705] phi bitmap_line_ydxd::y#7 = bitmap_line_ydxd::y#1 [phi:bitmap_line::@6->bitmap_line_ydxd#3] -- register_copy - // [705] phi bitmap_line_ydxd::x#5 = bitmap_line_ydxd::x#1 [phi:bitmap_line::@6->bitmap_line_ydxd#4] -- register_copy - // [705] phi bitmap_line_ydxd::xd#2 = bitmap_line_ydxd::xd#1 [phi:bitmap_line::@6->bitmap_line_ydxd#5] -- register_copy - jsr bitmap_line_ydxd - rts - // bitmap_line::@12 - __b12: - // bitmap_line_xdyd(x0, y0, x1, xd, yd, c) - // [562] bitmap_line_xdyd::x#1 = bitmap_line::x0#10 -- vwuz1=vwuz2 - lda.z x0 - sta.z bitmap_line_xdyd.x - lda.z x0+1 - sta.z bitmap_line_xdyd.x+1 - // [563] bitmap_line_xdyd::y#1 = bitmap_line::y0#10 - // [564] bitmap_line_xdyd::x1#1 = bitmap_line::x1#10 -- vwuz1=vwuz2 - lda.z x1 - sta.z bitmap_line_xdyd.x1 - lda.z x1+1 - sta.z bitmap_line_xdyd.x1+1 - // [565] bitmap_line_xdyd::xd#1 = bitmap_line::xd#1 - // [566] bitmap_line_xdyd::yd#1 = bitmap_line::yd#10 - // [567] bitmap_line_xdyd::c#1 = bitmap_line::c#10 -- vbuz1=vbuxx - stx.z bitmap_line_xdyd.c - // [568] call bitmap_line_xdyd - // [721] phi from bitmap_line::@12 to bitmap_line_xdyd [phi:bitmap_line::@12->bitmap_line_xdyd] - // [721] phi bitmap_line_xdyd::x1#6 = bitmap_line_xdyd::x1#1 [phi:bitmap_line::@12->bitmap_line_xdyd#0] -- register_copy - // [721] phi bitmap_line_xdyd::xd#5 = bitmap_line_xdyd::xd#1 [phi:bitmap_line::@12->bitmap_line_xdyd#1] -- register_copy - // [721] phi bitmap_line_xdyd::c#3 = bitmap_line_xdyd::c#1 [phi:bitmap_line::@12->bitmap_line_xdyd#2] -- register_copy - // [721] phi bitmap_line_xdyd::y#5 = bitmap_line_xdyd::y#1 [phi:bitmap_line::@12->bitmap_line_xdyd#3] -- register_copy - // [721] phi bitmap_line_xdyd::x#6 = bitmap_line_xdyd::x#1 [phi:bitmap_line::@12->bitmap_line_xdyd#4] -- register_copy - // [721] phi bitmap_line_xdyd::yd#2 = bitmap_line_xdyd::yd#1 [phi:bitmap_line::@12->bitmap_line_xdyd#5] -- register_copy - jsr bitmap_line_xdyd - rts - // bitmap_line::@11 - __b11: - // yd = y1-y0 - // [569] bitmap_line::yd#11 = bitmap_line::y1#10 - bitmap_line::y0#10 -- vwuz1=vwuz2_minus_vwuz3 - lda.z y1 - sec - sbc.z y0 - sta.z yd_1 - lda.z y1+1 - sbc.z y0+1 - sta.z yd_1+1 - // if(ydbitmap_line_ydxi] - // [673] phi bitmap_line_ydxi::y1#6 = bitmap_line_ydxi::y1#1 [phi:bitmap_line::@14->bitmap_line_ydxi#0] -- register_copy - // [673] phi bitmap_line_ydxi::yd#5 = bitmap_line_ydxi::yd#1 [phi:bitmap_line::@14->bitmap_line_ydxi#1] -- register_copy - // [673] phi bitmap_line_ydxi::c#3 = bitmap_line_ydxi::c#1 [phi:bitmap_line::@14->bitmap_line_ydxi#2] -- register_copy - // [673] phi bitmap_line_ydxi::y#6 = bitmap_line_ydxi::y#1 [phi:bitmap_line::@14->bitmap_line_ydxi#3] -- register_copy - // [673] phi bitmap_line_ydxi::x#5 = bitmap_line_ydxi::x#1 [phi:bitmap_line::@14->bitmap_line_ydxi#4] -- register_copy - // [673] phi bitmap_line_ydxi::xd#2 = bitmap_line_ydxi::xd#1 [phi:bitmap_line::@14->bitmap_line_ydxi#5] -- register_copy - jsr bitmap_line_ydxi - rts - // bitmap_line::@13 - __b13: - // bitmap_line_xdyi(x0, y0, x1, xd, yd, c) - // [578] bitmap_line_xdyi::x#1 = bitmap_line::x0#10 -- vwuz1=vwuz2 - lda.z x0 - sta.z bitmap_line_xdyi.x - lda.z x0+1 - sta.z bitmap_line_xdyi.x+1 - // [579] bitmap_line_xdyi::y#1 = bitmap_line::y0#10 - // [580] bitmap_line_xdyi::x1#1 = bitmap_line::x1#10 -- vwuz1=vwuz2 - lda.z x1 - sta.z bitmap_line_xdyi.x1 - lda.z x1+1 - sta.z bitmap_line_xdyi.x1+1 - // [581] bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 - // [582] bitmap_line_xdyi::yd#1 = bitmap_line::yd#11 - // [583] bitmap_line_xdyi::c#1 = bitmap_line::c#10 -- vbuz1=vbuxx - stx.z bitmap_line_xdyi.c - // [584] call bitmap_line_xdyi - // [689] phi from bitmap_line::@13 to bitmap_line_xdyi [phi:bitmap_line::@13->bitmap_line_xdyi] - // [689] phi bitmap_line_xdyi::x1#6 = bitmap_line_xdyi::x1#1 [phi:bitmap_line::@13->bitmap_line_xdyi#0] -- register_copy - // [689] phi bitmap_line_xdyi::xd#5 = bitmap_line_xdyi::xd#1 [phi:bitmap_line::@13->bitmap_line_xdyi#1] -- register_copy - // [689] phi bitmap_line_xdyi::c#3 = bitmap_line_xdyi::c#1 [phi:bitmap_line::@13->bitmap_line_xdyi#2] -- register_copy - // [689] phi bitmap_line_xdyi::y#5 = bitmap_line_xdyi::y#1 [phi:bitmap_line::@13->bitmap_line_xdyi#3] -- register_copy - // [689] phi bitmap_line_xdyi::x#6 = bitmap_line_xdyi::x#1 [phi:bitmap_line::@13->bitmap_line_xdyi#4] -- register_copy - // [689] phi bitmap_line_xdyi::yd#2 = bitmap_line_xdyi::yd#1 [phi:bitmap_line::@13->bitmap_line_xdyi#5] -- register_copy - jsr bitmap_line_xdyi - rts -} - // rand -// Returns a pseudo-random number in the range of 0 to RAND_MAX (65535) -// Uses an xorshift pseudorandom number generator that hits all different values -// Information https://en.wikipedia.org/wiki/Xorshift -// Source http://www.retroprogramming.com/2017/07/xorshift-pseudorandom-numbers-in-z80.html -rand: { - .label __0 = $61 - .label __1 = $63 - .label __2 = $65 - .label return = $6e - // rand_state << 7 - // [586] rand::$0 = rand_state#13 << 7 -- vwuz1=vwuz2_rol_7 - lda.z rand_state+1 - lsr - lda.z rand_state - ror - sta.z __0+1 - lda #0 - ror - sta.z __0 - // rand_state ^= rand_state << 7 - // [587] rand_state#0 = rand_state#13 ^ rand::$0 -- vwuz1=vwuz1_bxor_vwuz2 - lda.z rand_state - eor.z __0 - sta.z rand_state - lda.z rand_state+1 - eor.z __0+1 - sta.z rand_state+1 - // rand_state >> 9 - // [588] rand::$1 = rand_state#0 >> 9 -- vwuz1=vwuz2_ror_9 - lsr - sta.z __1 - lda #0 - sta.z __1+1 - // rand_state ^= rand_state >> 9 - // [589] rand_state#1 = rand_state#0 ^ rand::$1 -- vwuz1=vwuz1_bxor_vwuz2 - lda.z rand_state - eor.z __1 - sta.z rand_state - lda.z rand_state+1 - eor.z __1+1 - sta.z rand_state+1 - // rand_state << 8 - // [590] rand::$2 = rand_state#1 << 8 -- vwuz1=vwuz2_rol_8 - lda.z rand_state - sta.z __2+1 - lda #0 - sta.z __2 - // rand_state ^= rand_state << 8 - // [591] rand_state#14 = rand_state#1 ^ rand::$2 -- vwuz1=vwuz1_bxor_vwuz2 - lda.z rand_state - eor.z __2 - sta.z rand_state - lda.z rand_state+1 - eor.z __2+1 - sta.z rand_state+1 - // return rand_state; - // [592] rand::return#0 = rand_state#14 -- vwuz1=vwuz2 - lda.z rand_state - sta.z return - lda.z rand_state+1 - sta.z return+1 - // rand::@return - // } - // [593] return - rts -} - // modr16u -// Performs modulo on two 16 bit unsigned ints and an initial remainder -// Returns the remainder. -// Implemented using simple binary division -// __zp($76) unsigned int modr16u(__zp(2) unsigned int dividend, __zp($8f) unsigned int divisor, unsigned int rem) -modr16u: { - .label return = $76 - .label dividend = 2 - .label divisor = $8f - // divr16u(dividend, divisor, rem) - // [595] divr16u::dividend#1 = modr16u::dividend#4 - // [596] divr16u::divisor#0 = modr16u::divisor#4 -- vwuz1=vwuz2 - lda.z divisor - sta.z divr16u.divisor - lda.z divisor+1 - sta.z divr16u.divisor+1 - // [597] call divr16u - // [737] phi from modr16u to divr16u [phi:modr16u->divr16u] - jsr divr16u - // modr16u::@1 - // return rem16u; - // [598] modr16u::return#0 = rem16u#0 -- vwuz1=vwuz2 - lda.z rem16u - sta.z return - lda.z rem16u+1 - sta.z return+1 - // modr16u::@return - // } - // [599] return - rts -} - // vera_layer_set_text_color_mode -// Set the configuration of the layer text color mode. -// - layer: Value of 0 or 1. -// - color_mode: Specifies the color mode to be VERA_LAYER_CONFIG_16 or VERA_LAYER_CONFIG_256 for text mode. -// void vera_layer_set_text_color_mode(char layer, char color_mode) -vera_layer_set_text_color_mode: { - .label addr = $25 - // byte* addr = vera_layer_config[layer] - // [600] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) -- pbuz1=_deref_qbuc1 - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER - sta.z addr - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER+1 - sta.z addr+1 - // *addr &= ~VERA_LAYER_CONFIG_256C - // [601] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C -- _deref_pbuz1=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_CONFIG_256C^$ff - ldy #0 - and (addr),y - sta (addr),y - // *addr |= color_mode - // [602] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 -- _deref_pbuz1=_deref_pbuz1 - lda (addr),y - sta (addr),y - // vera_layer_set_text_color_mode::@return - // } - // [603] return - rts -} - // vera_layer_get_mapbase_bank -// Get the map base bank of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Bank in vera vram. -// __register(A) char vera_layer_get_mapbase_bank(__register(X) char layer) -vera_layer_get_mapbase_bank: { - // return vera_mapbase_bank[layer]; - // [604] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_mapbase_bank,x - // vera_layer_get_mapbase_bank::@return - // } - // [605] return - rts -} - // vera_layer_get_mapbase_offset -// Get the map base lower 16-bit address (offset) of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Offset in vera vram of the specified bank. -// __zp($8d) unsigned int vera_layer_get_mapbase_offset(__register(A) char layer) -vera_layer_get_mapbase_offset: { - .label return = $8d - // return vera_mapbase_offset[layer]; - // [606] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [607] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda vera_mapbase_offset,y - sta.z return - lda vera_mapbase_offset+1,y - sta.z return+1 - // vera_layer_get_mapbase_offset::@return - // } - // [608] return - rts -} - // vera_layer_get_rowshift -// Get the bit shift value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Rowshift value to calculate fast from a y value to line offset in tile mode. -// __register(A) char vera_layer_get_rowshift(__register(X) char layer) -vera_layer_get_rowshift: { - // return vera_layer_rowshift[layer]; - // [609] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_rowshift,x - // vera_layer_get_rowshift::@return - // } - // [610] return - rts -} - // vera_layer_get_rowskip -// Get the value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Skip value to calculate fast from a y value to line offset in tile mode. -// __zp($7f) unsigned int vera_layer_get_rowskip(__register(A) char layer) -vera_layer_get_rowskip: { - .label return = $7f - // return vera_layer_rowskip[layer]; - // [611] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [612] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda vera_layer_rowskip,y - sta.z return - lda vera_layer_rowskip+1,y - sta.z return+1 - // vera_layer_get_rowskip::@return - // } - // [613] return - rts -} - // cscroll -// Scroll the entire screen if the cursor is beyond the last line -cscroll: { - // if(conio_cursor_y[conio_screen_layer]>=CONIO_HEIGHT) - // [614] if(conio_cursor_y[conio_screen_layer]=conio_height) - // [616] if(conio_cursor_y[conio_screen_layer]cscroll::@3] - // cscroll::@3 - __b3: - // cscroll::@return - // } - // [618] return - rts - // [619] phi from cscroll::@1 to cscroll::@4 [phi:cscroll::@1->cscroll::@4] - // cscroll::@4 - __b4: - // insertup() - // [620] call insertup - jsr insertup - // cscroll::@5 - // gotoxy( 0, CONIO_HEIGHT-1) - // [621] gotoxy::y#2 = conio_screen_height - 1 -- vbuxx=vbuz1_minus_1 - ldx.z conio_screen_height - dex - // [622] call gotoxy - // [241] phi from cscroll::@5 to gotoxy [phi:cscroll::@5->gotoxy] - // [241] phi gotoxy::y#7 = gotoxy::y#2 [phi:cscroll::@5->gotoxy#0] -- register_copy - jsr gotoxy - rts -} - // vera_layer_set_config -// Set the configuration of the layer. -// - layer: Value of 0 or 1. -// - config: Specifies the modes which are specified using T256C / 'Bitmap Mode' / 'Color Depth'. -// void vera_layer_set_config(__register(A) char layer, __register(X) char config) -vera_layer_set_config: { - .label addr = $25 - // byte* addr = vera_layer_config[layer] - // [624] vera_layer_set_config::$0 = vera_layer_set_config::layer#2 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [625] vera_layer_set_config::addr#0 = vera_layer_config[vera_layer_set_config::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // *addr = config - // [626] *vera_layer_set_config::addr#0 = vera_layer_set_config::config#2 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - // vera_layer_set_config::@return - // } - // [627] return - rts -} - // vera_layer_set_tilebase -// Set the base of the tiles for the layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - tilebase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// void vera_layer_set_tilebase(__register(A) char layer, __register(X) char tilebase) -vera_layer_set_tilebase: { - .label addr = $25 - // byte* addr = vera_layer_tilebase[layer] - // [629] vera_layer_set_tilebase::$0 = vera_layer_set_tilebase::layer#2 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [630] vera_layer_set_tilebase::addr#0 = vera_layer_tilebase[vera_layer_set_tilebase::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_tilebase,y - sta.z addr - lda vera_layer_tilebase+1,y - sta.z addr+1 - // *addr = tilebase - // [631] *vera_layer_set_tilebase::addr#0 = vera_layer_set_tilebase::tilebase#2 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - // vera_layer_set_tilebase::@return - // } - // [632] return - rts -} - // vera_layer_get_backcolor -// Get the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_backcolor(__register(X) char layer) -vera_layer_get_backcolor: { - // return vera_layer_backcolor[layer]; - // [633] vera_layer_get_backcolor::return#1 = vera_layer_backcolor[vera_layer_get_backcolor::layer#0] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_backcolor,x - // vera_layer_get_backcolor::@return - // } - // [634] return - rts -} - // vera_layer_get_textcolor -// Get the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_textcolor(__register(X) char layer) -vera_layer_get_textcolor: { - // return vera_layer_textcolor[layer]; - // [635] vera_layer_get_textcolor::return#1 = vera_layer_textcolor[vera_layer_get_textcolor::layer#0] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_textcolor,x - // vera_layer_get_textcolor::@return - // } - // [636] return - rts -} - // vera_display_get_hscale -vera_display_get_hscale: { - .const scale = 0 - // [638] phi from vera_display_get_hscale to vera_display_get_hscale::@1 [phi:vera_display_get_hscale->vera_display_get_hscale::@1] - // [638] phi vera_display_get_hscale::s#2 = 1 [phi:vera_display_get_hscale->vera_display_get_hscale::@1#0] -- vbuxx=vbuc1 - ldx #1 - // [638] phi from vera_display_get_hscale::@2 to vera_display_get_hscale::@1 [phi:vera_display_get_hscale::@2->vera_display_get_hscale::@1] - // [638] phi vera_display_get_hscale::s#2 = vera_display_get_hscale::s#1 [phi:vera_display_get_hscale::@2->vera_display_get_hscale::@1#0] -- register_copy - // vera_display_get_hscale::@1 - __b1: - // if(*VERA_DC_HSCALE==hscale[s]) - // [639] if(*VERA_DC_HSCALE!=vera_display_get_hscale::hscale[vera_display_get_hscale::s#2]) goto vera_display_get_hscale::@2 -- _deref_pbuc1_neq_pbuc2_derefidx_vbuxx_then_la1 - lda hscale,x - cmp VERA_DC_HSCALE - bne __b2 - // [642] phi from vera_display_get_hscale::@1 to vera_display_get_hscale::@3 [phi:vera_display_get_hscale::@1->vera_display_get_hscale::@3] - // [642] phi vera_display_get_hscale::return#0 = vera_display_get_hscale::s#2 [phi:vera_display_get_hscale::@1->vera_display_get_hscale::@3#0] -- register_copy - rts - // vera_display_get_hscale::@2 - __b2: - // for(byte s:1..3) - // [640] vera_display_get_hscale::s#1 = ++ vera_display_get_hscale::s#2 -- vbuxx=_inc_vbuxx - inx - // [641] if(vera_display_get_hscale::s#1!=4) goto vera_display_get_hscale::@1 -- vbuxx_neq_vbuc1_then_la1 - cpx #4 - bne __b1 - // [642] phi from vera_display_get_hscale::@2 to vera_display_get_hscale::@3 [phi:vera_display_get_hscale::@2->vera_display_get_hscale::@3] - // [642] phi vera_display_get_hscale::return#0 = vera_display_get_hscale::scale#0 [phi:vera_display_get_hscale::@2->vera_display_get_hscale::@3#0] -- vbuxx=vbuc1 - ldx #scale - // vera_display_get_hscale::@3 - // vera_display_get_hscale::@return - // } - // [643] return - rts - .segment Data - hscale: .byte 0, $80, $40, $20 -} -.segment Code - // vera_display_get_vscale -vera_display_get_vscale: { - .const scale = 0 - // [645] phi from vera_display_get_vscale to vera_display_get_vscale::@1 [phi:vera_display_get_vscale->vera_display_get_vscale::@1] - // [645] phi vera_display_get_vscale::s#2 = 1 [phi:vera_display_get_vscale->vera_display_get_vscale::@1#0] -- vbuxx=vbuc1 - ldx #1 - // [645] phi from vera_display_get_vscale::@2 to vera_display_get_vscale::@1 [phi:vera_display_get_vscale::@2->vera_display_get_vscale::@1] - // [645] phi vera_display_get_vscale::s#2 = vera_display_get_vscale::s#1 [phi:vera_display_get_vscale::@2->vera_display_get_vscale::@1#0] -- register_copy - // vera_display_get_vscale::@1 - __b1: - // if(*VERA_DC_VSCALE==vscale[s]) - // [646] if(*VERA_DC_VSCALE!=vera_display_get_vscale::vscale[vera_display_get_vscale::s#2]) goto vera_display_get_vscale::@2 -- _deref_pbuc1_neq_pbuc2_derefidx_vbuxx_then_la1 - lda vscale,x - cmp VERA_DC_VSCALE - bne __b2 - // [649] phi from vera_display_get_vscale::@1 to vera_display_get_vscale::@3 [phi:vera_display_get_vscale::@1->vera_display_get_vscale::@3] - // [649] phi vera_display_get_vscale::return#0 = vera_display_get_vscale::s#2 [phi:vera_display_get_vscale::@1->vera_display_get_vscale::@3#0] -- register_copy - rts - // vera_display_get_vscale::@2 - __b2: - // for(byte s:1..3) - // [647] vera_display_get_vscale::s#1 = ++ vera_display_get_vscale::s#2 -- vbuxx=_inc_vbuxx - inx - // [648] if(vera_display_get_vscale::s#1!=4) goto vera_display_get_vscale::@1 -- vbuxx_neq_vbuc1_then_la1 - cpx #4 - bne __b1 - // [649] phi from vera_display_get_vscale::@2 to vera_display_get_vscale::@3 [phi:vera_display_get_vscale::@2->vera_display_get_vscale::@3] - // [649] phi vera_display_get_vscale::return#0 = vera_display_get_vscale::scale#0 [phi:vera_display_get_vscale::@2->vera_display_get_vscale::@3#0] -- vbuxx=vbuc1 - ldx #scale - // vera_display_get_vscale::@3 - // vera_display_get_vscale::@return - // } - // [650] return - rts - .segment Data - vscale: .byte 0, $80, $40, $20 -} -.segment Code - // mul16u -// Perform binary multiplication of two unsigned 16-bit unsigned ints into a 32-bit unsigned long -// __zp($72) unsigned long mul16u(__zp(2) unsigned int a, __zp($a1) unsigned int b) -mul16u: { - .label a = 2 - .label b = $a1 - .label return = $72 - .label mb = $1a - .label res = $10 - // unsigned long mb = b - // [651] mul16u::mb#0 = (unsigned long)mul16u::b#0 -- vduz1=_dword_vwuz2 - lda.z b - sta.z mb - lda.z b+1 - sta.z mb+1 - lda #0 - sta.z mb+2 - sta.z mb+3 - // [652] phi from mul16u to mul16u::@1 [phi:mul16u->mul16u::@1] - // [652] phi mul16u::mb#2 = mul16u::mb#0 [phi:mul16u->mul16u::@1#0] -- register_copy - // [652] phi mul16u::res#2 = 0 [phi:mul16u->mul16u::@1#1] -- vduz1=vduc1 - sta.z res - sta.z res+1 - lda #<0>>$10 - sta.z res+2 - lda #>0>>$10 - sta.z res+3 - // [652] phi mul16u::a#2 = mul16u::a#0 [phi:mul16u->mul16u::@1#2] -- register_copy - // mul16u::@1 - __b1: - // while(a!=0) - // [653] if(mul16u::a#2!=0) goto mul16u::@2 -- vwuz1_neq_0_then_la1 - lda.z a - ora.z a+1 - bne __b2 - // mul16u::@return - // } - // [654] return - rts - // mul16u::@2 - __b2: - // a&1 - // [655] mul16u::$1 = mul16u::a#2 & 1 -- vbuaa=vwuz1_band_vbuc1 - lda #1 - and.z a - // if( (a&1) != 0) - // [656] if(mul16u::$1==0) goto mul16u::@3 -- vbuaa_eq_0_then_la1 - cmp #0 - beq __b3 - // mul16u::@4 - // res = res + mb - // [657] mul16u::res#1 = mul16u::res#2 + mul16u::mb#2 -- vduz1=vduz1_plus_vduz2 - clc - lda.z res - adc.z mb - sta.z res - lda.z res+1 - adc.z mb+1 - sta.z res+1 - lda.z res+2 - adc.z mb+2 - sta.z res+2 - lda.z res+3 - adc.z mb+3 - sta.z res+3 - // [658] phi from mul16u::@2 mul16u::@4 to mul16u::@3 [phi:mul16u::@2/mul16u::@4->mul16u::@3] - // [658] phi mul16u::res#6 = mul16u::res#2 [phi:mul16u::@2/mul16u::@4->mul16u::@3#0] -- register_copy - // mul16u::@3 - __b3: - // a = a>>1 - // [659] mul16u::a#1 = mul16u::a#2 >> 1 -- vwuz1=vwuz1_ror_1 - lsr.z a+1 - ror.z a - // mb = mb<<1 - // [660] mul16u::mb#1 = mul16u::mb#2 << 1 -- vduz1=vduz1_rol_1 - asl.z mb - rol.z mb+1 - rol.z mb+2 - rol.z mb+3 - // [652] phi from mul16u::@3 to mul16u::@1 [phi:mul16u::@3->mul16u::@1] - // [652] phi mul16u::mb#2 = mul16u::mb#1 [phi:mul16u::@3->mul16u::@1#0] -- register_copy - // [652] phi mul16u::res#2 = mul16u::res#6 [phi:mul16u::@3->mul16u::@1#1] -- register_copy - // [652] phi mul16u::a#2 = mul16u::a#1 [phi:mul16u::@3->mul16u::@1#2] -- register_copy - jmp __b1 -} - // memset_vram -// Set block of memory to a value in VRAM. -// Sets num bytes to a value to the memory block pointed to by destination in VRAM. -// - vbank: Which 64K VRAM bank to put data into (0/1) -// - vdest: The destination address in VRAM -// - data: The value to set the vram with. -// - num: The number of bytes to set -// void memset_vram(__register(X) char vbank, __zp($91) void *vdest, char data, __zp($72) unsigned long num) -memset_vram: { - .const data = 0 - .label i = $10 - .label vdest = $91 - .label num = $72 - // *VERA_CTRL &= ~VERA_ADDRSEL - // [661] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(vdest) - // [662] memset_vram::$0 = byte0 memset_vram::vdest#0 -- vbuaa=_byte0_pvoz1 - lda.z vdest - // *VERA_ADDRX_L = BYTE0(vdest) - // [663] *VERA_ADDRX_L = memset_vram::$0 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // BYTE1(vdest) - // [664] memset_vram::$1 = byte1 memset_vram::vdest#0 -- vbuaa=_byte1_pvoz1 - lda.z vdest+1 - // *VERA_ADDRX_M = BYTE1(vdest) - // [665] *VERA_ADDRX_M = memset_vram::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // VERA_INC_1 | vbank - // [666] memset_vram::$2 = VERA_INC_1 | memset_vram::vbank#0 -- vbuaa=vbuc1_bor_vbuxx - txa - ora #VERA_INC_1 - // *VERA_ADDRX_H = VERA_INC_1 | vbank - // [667] *VERA_ADDRX_H = memset_vram::$2 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_H - // [668] phi from memset_vram to memset_vram::@1 [phi:memset_vram->memset_vram::@1] - // [668] phi memset_vram::i#2 = 0 [phi:memset_vram->memset_vram::@1#0] -- vduz1=vduc1 - lda #<0 - sta.z i - sta.z i+1 - lda #<0>>$10 - sta.z i+2 - lda #>0>>$10 - sta.z i+3 - // Transfer the data - // memset_vram::@1 - __b1: - // for(unsigned long i = 0; imemset_vram::@1] - // [668] phi memset_vram::i#2 = memset_vram::i#1 [phi:memset_vram::@2->memset_vram::@1#0] -- register_copy - jmp __b1 -} - // bitmap_line_ydxi -// void bitmap_line_ydxi(__zp(4) unsigned int y, __zp(6) unsigned int x, __zp(8) unsigned int y1, __zp($27) unsigned int yd, __zp($22) unsigned int xd, __zp($20) char c) -bitmap_line_ydxi: { - .label __6 = $1e - .label y = 4 - .label x = 6 - .label y1 = 8 - .label yd = $27 - .label xd = $22 - .label c = $20 - .label e = $18 - // word e = xd>>1 - // [674] bitmap_line_ydxi::e#0 = bitmap_line_ydxi::xd#2 >> 1 -- vwuz1=vwuz2_ror_1 - lda.z xd+1 - lsr - sta.z e+1 - lda.z xd - ror - sta.z e - // [675] phi from bitmap_line_ydxi bitmap_line_ydxi::@2 to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi/bitmap_line_ydxi::@2->bitmap_line_ydxi::@1] - // [675] phi bitmap_line_ydxi::e#3 = bitmap_line_ydxi::e#0 [phi:bitmap_line_ydxi/bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#0] -- register_copy - // [675] phi bitmap_line_ydxi::y#3 = bitmap_line_ydxi::y#6 [phi:bitmap_line_ydxi/bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#1] -- register_copy - // [675] phi bitmap_line_ydxi::x#3 = bitmap_line_ydxi::x#5 [phi:bitmap_line_ydxi/bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#2] -- register_copy - // bitmap_line_ydxi::@1 - __b1: - // bitmap_plot(x,y,c) - // [676] bitmap_plot::x#2 = bitmap_line_ydxi::x#3 -- vwuz1=vwuz2 - lda.z x - sta.z bitmap_plot.x - lda.z x+1 - sta.z bitmap_plot.x+1 - // [677] bitmap_plot::y#2 = bitmap_line_ydxi::y#3 - // [678] bitmap_plot::c#3 = bitmap_line_ydxi::c#3 -- vbuxx=vbuz1 - ldx.z c - // [679] call bitmap_plot - // [771] phi from bitmap_line_ydxi::@1 to bitmap_plot [phi:bitmap_line_ydxi::@1->bitmap_plot] - // [771] phi bitmap_plot::c#5 = bitmap_plot::c#3 [phi:bitmap_line_ydxi::@1->bitmap_plot#0] -- register_copy - // [771] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#1] -- register_copy - // [771] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#2] -- register_copy - jsr bitmap_plot - // bitmap_line_ydxi::@4 - // y++; - // [680] bitmap_line_ydxi::y#2 = ++ bitmap_line_ydxi::y#3 -- vwuz1=_inc_vwuz1 - inc.z y - bne !+ - inc.z y+1 - !: - // e = e+xd - // [681] bitmap_line_ydxi::e#1 = bitmap_line_ydxi::e#3 + bitmap_line_ydxi::xd#2 -- vwuz1=vwuz1_plus_vwuz2 - clc - lda.z e - adc.z xd - sta.z e - lda.z e+1 - adc.z xd+1 - sta.z e+1 - // if(yd=bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 -- vwuz1_ge_vwuz2_then_la1 - cmp.z yd+1 - bne !+ - lda.z e - cmp.z yd - beq __b2 - !: - bcc __b2 - // bitmap_line_ydxi::@3 - // x++; - // [683] bitmap_line_ydxi::x#2 = ++ bitmap_line_ydxi::x#3 -- vwuz1=_inc_vwuz1 - inc.z x - bne !+ - inc.z x+1 - !: - // e = e - yd - // [684] bitmap_line_ydxi::e#2 = bitmap_line_ydxi::e#1 - bitmap_line_ydxi::yd#5 -- vwuz1=vwuz1_minus_vwuz2 - lda.z e - sec - sbc.z yd - sta.z e - lda.z e+1 - sbc.z yd+1 - sta.z e+1 - // [685] phi from bitmap_line_ydxi::@3 bitmap_line_ydxi::@4 to bitmap_line_ydxi::@2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2] - // [685] phi bitmap_line_ydxi::e#6 = bitmap_line_ydxi::e#2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2#0] -- register_copy - // [685] phi bitmap_line_ydxi::x#6 = bitmap_line_ydxi::x#2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2#1] -- register_copy - // bitmap_line_ydxi::@2 - __b2: - // y1+1 - // [686] bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#6 + 1 -- vwuz1=vwuz2_plus_1 - clc - lda.z y1 - adc #1 - sta.z __6 - lda.z y1+1 - adc #0 - sta.z __6+1 - // while (y!=(y1+1)) - // [687] if(bitmap_line_ydxi::y#2!=bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1 -- vwuz1_neq_vwuz2_then_la1 - lda.z y+1 - cmp.z __6+1 - bne __b1 - lda.z y - cmp.z __6 - bne __b1 - // bitmap_line_ydxi::@return - // } - // [688] return - rts -} - // bitmap_line_xdyi -// void bitmap_line_xdyi(__zp($1e) unsigned int x, __zp(8) unsigned int y, __zp(6) unsigned int x1, __zp($22) unsigned int xd, __zp($27) unsigned int yd, __zp($21) char c) -bitmap_line_xdyi: { - .label __6 = $e - .label x = $1e - .label y = 8 - .label x1 = 6 - .label xd = $22 - .label yd = $27 - .label c = $21 - .label e = $18 - // word e = yd>>1 - // [690] bitmap_line_xdyi::e#0 = bitmap_line_xdyi::yd#2 >> 1 -- vwuz1=vwuz2_ror_1 - lda.z yd+1 - lsr - sta.z e+1 - lda.z yd - ror - sta.z e - // [691] phi from bitmap_line_xdyi bitmap_line_xdyi::@2 to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi/bitmap_line_xdyi::@2->bitmap_line_xdyi::@1] - // [691] phi bitmap_line_xdyi::e#3 = bitmap_line_xdyi::e#0 [phi:bitmap_line_xdyi/bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#0] -- register_copy - // [691] phi bitmap_line_xdyi::y#3 = bitmap_line_xdyi::y#5 [phi:bitmap_line_xdyi/bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#1] -- register_copy - // [691] phi bitmap_line_xdyi::x#3 = bitmap_line_xdyi::x#6 [phi:bitmap_line_xdyi/bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#2] -- register_copy - // bitmap_line_xdyi::@1 - __b1: - // bitmap_plot(x,y,c) - // [692] bitmap_plot::x#0 = bitmap_line_xdyi::x#3 - // [693] bitmap_plot::y#0 = bitmap_line_xdyi::y#3 -- vwuz1=vwuz2 - lda.z y - sta.z bitmap_plot.y - lda.z y+1 - sta.z bitmap_plot.y+1 - // [694] bitmap_plot::c#1 = bitmap_line_xdyi::c#3 -- vbuxx=vbuz1 - ldx.z c - // [695] call bitmap_plot - // [771] phi from bitmap_line_xdyi::@1 to bitmap_plot [phi:bitmap_line_xdyi::@1->bitmap_plot] - // [771] phi bitmap_plot::c#5 = bitmap_plot::c#1 [phi:bitmap_line_xdyi::@1->bitmap_plot#0] -- register_copy - // [771] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#1] -- register_copy - // [771] phi bitmap_plot::x#4 = bitmap_plot::x#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#2] -- register_copy - jsr bitmap_plot - // bitmap_line_xdyi::@4 - // x++; - // [696] bitmap_line_xdyi::x#2 = ++ bitmap_line_xdyi::x#3 -- vwuz1=_inc_vwuz1 - inc.z x - bne !+ - inc.z x+1 - !: - // e = e+yd - // [697] bitmap_line_xdyi::e#1 = bitmap_line_xdyi::e#3 + bitmap_line_xdyi::yd#2 -- vwuz1=vwuz1_plus_vwuz2 - clc - lda.z e - adc.z yd - sta.z e - lda.z e+1 - adc.z yd+1 - sta.z e+1 - // if(xd=bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 -- vwuz1_ge_vwuz2_then_la1 - cmp.z xd+1 - bne !+ - lda.z e - cmp.z xd - beq __b2 - !: - bcc __b2 - // bitmap_line_xdyi::@3 - // y++; - // [699] bitmap_line_xdyi::y#2 = ++ bitmap_line_xdyi::y#3 -- vwuz1=_inc_vwuz1 - inc.z y - bne !+ - inc.z y+1 - !: - // e = e - xd - // [700] bitmap_line_xdyi::e#2 = bitmap_line_xdyi::e#1 - bitmap_line_xdyi::xd#5 -- vwuz1=vwuz1_minus_vwuz2 - lda.z e - sec - sbc.z xd - sta.z e - lda.z e+1 - sbc.z xd+1 - sta.z e+1 - // [701] phi from bitmap_line_xdyi::@3 bitmap_line_xdyi::@4 to bitmap_line_xdyi::@2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2] - // [701] phi bitmap_line_xdyi::e#6 = bitmap_line_xdyi::e#2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2#0] -- register_copy - // [701] phi bitmap_line_xdyi::y#6 = bitmap_line_xdyi::y#2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2#1] -- register_copy - // bitmap_line_xdyi::@2 - __b2: - // x1+1 - // [702] bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#6 + 1 -- vwuz1=vwuz2_plus_1 - clc - lda.z x1 - adc #1 - sta.z __6 - lda.z x1+1 - adc #0 - sta.z __6+1 - // while (x!=(x1+1)) - // [703] if(bitmap_line_xdyi::x#2!=bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 -- vwuz1_neq_vwuz2_then_la1 - lda.z x+1 - cmp.z __6+1 - bne __b1 - lda.z x - cmp.z __6 - bne __b1 - // bitmap_line_xdyi::@return - // } - // [704] return - rts -} - // bitmap_line_ydxd -// void bitmap_line_ydxd(__zp(4) unsigned int y, __zp(6) unsigned int x, __zp(8) unsigned int y1, __zp($29) unsigned int yd, __zp($22) unsigned int xd, __zp($20) char c) -bitmap_line_ydxd: { - .label __6 = $e - .label y = 4 - .label x = 6 - .label y1 = 8 - .label yd = $29 - .label xd = $22 - .label c = $20 - .label e = $18 - // word e = xd>>1 - // [706] bitmap_line_ydxd::e#0 = bitmap_line_ydxd::xd#2 >> 1 -- vwuz1=vwuz2_ror_1 - lda.z xd+1 - lsr - sta.z e+1 - lda.z xd - ror - sta.z e - // [707] phi from bitmap_line_ydxd bitmap_line_ydxd::@2 to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd/bitmap_line_ydxd::@2->bitmap_line_ydxd::@1] - // [707] phi bitmap_line_ydxd::e#3 = bitmap_line_ydxd::e#0 [phi:bitmap_line_ydxd/bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#0] -- register_copy - // [707] phi bitmap_line_ydxd::y#2 = bitmap_line_ydxd::y#7 [phi:bitmap_line_ydxd/bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#1] -- register_copy - // [707] phi bitmap_line_ydxd::x#3 = bitmap_line_ydxd::x#5 [phi:bitmap_line_ydxd/bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#2] -- register_copy - // bitmap_line_ydxd::@1 - __b1: - // bitmap_plot(x,y,c) - // [708] bitmap_plot::x#3 = bitmap_line_ydxd::x#3 -- vwuz1=vwuz2 - lda.z x - sta.z bitmap_plot.x - lda.z x+1 - sta.z bitmap_plot.x+1 - // [709] bitmap_plot::y#3 = bitmap_line_ydxd::y#2 - // [710] bitmap_plot::c#4 = bitmap_line_ydxd::c#3 -- vbuxx=vbuz1 - ldx.z c - // [711] call bitmap_plot - // [771] phi from bitmap_line_ydxd::@1 to bitmap_plot [phi:bitmap_line_ydxd::@1->bitmap_plot] - // [771] phi bitmap_plot::c#5 = bitmap_plot::c#4 [phi:bitmap_line_ydxd::@1->bitmap_plot#0] -- register_copy - // [771] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#1] -- register_copy - // [771] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#2] -- register_copy - jsr bitmap_plot - // bitmap_line_ydxd::@4 - // y = y++; - // [712] bitmap_line_ydxd::y#3 = ++ bitmap_line_ydxd::y#2 -- vwuz1=_inc_vwuz1 - inc.z y - bne !+ - inc.z y+1 - !: - // e = e+xd - // [713] bitmap_line_ydxd::e#1 = bitmap_line_ydxd::e#3 + bitmap_line_ydxd::xd#2 -- vwuz1=vwuz1_plus_vwuz2 - clc - lda.z e - adc.z xd - sta.z e - lda.z e+1 - adc.z xd+1 - sta.z e+1 - // if(yd=bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 -- vwuz1_ge_vwuz2_then_la1 - cmp.z yd+1 - bne !+ - lda.z e - cmp.z yd - beq __b2 - !: - bcc __b2 - // bitmap_line_ydxd::@3 - // x--; - // [715] bitmap_line_ydxd::x#2 = -- bitmap_line_ydxd::x#3 -- vwuz1=_dec_vwuz1 - lda.z x - bne !+ - dec.z x+1 - !: - dec.z x - // e = e - yd - // [716] bitmap_line_ydxd::e#2 = bitmap_line_ydxd::e#1 - bitmap_line_ydxd::yd#5 -- vwuz1=vwuz1_minus_vwuz2 - lda.z e - sec - sbc.z yd - sta.z e - lda.z e+1 - sbc.z yd+1 - sta.z e+1 - // [717] phi from bitmap_line_ydxd::@3 bitmap_line_ydxd::@4 to bitmap_line_ydxd::@2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2] - // [717] phi bitmap_line_ydxd::e#6 = bitmap_line_ydxd::e#2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2#0] -- register_copy - // [717] phi bitmap_line_ydxd::x#6 = bitmap_line_ydxd::x#2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2#1] -- register_copy - // bitmap_line_ydxd::@2 - __b2: - // y1+1 - // [718] bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#6 + 1 -- vwuz1=vwuz2_plus_1 - clc - lda.z y1 - adc #1 - sta.z __6 - lda.z y1+1 - adc #0 - sta.z __6+1 - // while (y!=(y1+1)) - // [719] if(bitmap_line_ydxd::y#3!=bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1 -- vwuz1_neq_vwuz2_then_la1 - lda.z y+1 - cmp.z __6+1 - bne __b1 - lda.z y - cmp.z __6 - bne __b1 - // bitmap_line_ydxd::@return - // } - // [720] return - rts -} - // bitmap_line_xdyd -// void bitmap_line_xdyd(__zp($1e) unsigned int x, __zp(8) unsigned int y, __zp(6) unsigned int x1, __zp($22) unsigned int xd, __zp($29) unsigned int yd, __zp($20) char c) -bitmap_line_xdyd: { - .label __6 = $e - .label x = $1e - .label y = 8 - .label x1 = 6 - .label xd = $22 - .label yd = $29 - .label c = $20 - .label e = $18 - // word e = yd>>1 - // [722] bitmap_line_xdyd::e#0 = bitmap_line_xdyd::yd#2 >> 1 -- vwuz1=vwuz2_ror_1 - lda.z yd+1 - lsr - sta.z e+1 - lda.z yd - ror - sta.z e - // [723] phi from bitmap_line_xdyd bitmap_line_xdyd::@2 to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd/bitmap_line_xdyd::@2->bitmap_line_xdyd::@1] - // [723] phi bitmap_line_xdyd::e#3 = bitmap_line_xdyd::e#0 [phi:bitmap_line_xdyd/bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#0] -- register_copy - // [723] phi bitmap_line_xdyd::y#3 = bitmap_line_xdyd::y#5 [phi:bitmap_line_xdyd/bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#1] -- register_copy - // [723] phi bitmap_line_xdyd::x#3 = bitmap_line_xdyd::x#6 [phi:bitmap_line_xdyd/bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#2] -- register_copy - // bitmap_line_xdyd::@1 - __b1: - // bitmap_plot(x,y,c) - // [724] bitmap_plot::x#1 = bitmap_line_xdyd::x#3 - // [725] bitmap_plot::y#1 = bitmap_line_xdyd::y#3 -- vwuz1=vwuz2 - lda.z y - sta.z bitmap_plot.y - lda.z y+1 - sta.z bitmap_plot.y+1 - // [726] bitmap_plot::c#2 = bitmap_line_xdyd::c#3 -- vbuxx=vbuz1 - ldx.z c - // [727] call bitmap_plot - // [771] phi from bitmap_line_xdyd::@1 to bitmap_plot [phi:bitmap_line_xdyd::@1->bitmap_plot] - // [771] phi bitmap_plot::c#5 = bitmap_plot::c#2 [phi:bitmap_line_xdyd::@1->bitmap_plot#0] -- register_copy - // [771] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#1] -- register_copy - // [771] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#2] -- register_copy - jsr bitmap_plot - // bitmap_line_xdyd::@4 - // x++; - // [728] bitmap_line_xdyd::x#2 = ++ bitmap_line_xdyd::x#3 -- vwuz1=_inc_vwuz1 - inc.z x - bne !+ - inc.z x+1 - !: - // e = e+yd - // [729] bitmap_line_xdyd::e#1 = bitmap_line_xdyd::e#3 + bitmap_line_xdyd::yd#2 -- vwuz1=vwuz1_plus_vwuz2 - clc - lda.z e - adc.z yd - sta.z e - lda.z e+1 - adc.z yd+1 - sta.z e+1 - // if(xd=bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 -- vwuz1_ge_vwuz2_then_la1 - cmp.z xd+1 - bne !+ - lda.z e - cmp.z xd - beq __b2 - !: - bcc __b2 - // bitmap_line_xdyd::@3 - // y--; - // [731] bitmap_line_xdyd::y#2 = -- bitmap_line_xdyd::y#3 -- vwuz1=_dec_vwuz1 - lda.z y - bne !+ - dec.z y+1 - !: - dec.z y - // e = e - xd - // [732] bitmap_line_xdyd::e#2 = bitmap_line_xdyd::e#1 - bitmap_line_xdyd::xd#5 -- vwuz1=vwuz1_minus_vwuz2 - lda.z e - sec - sbc.z xd - sta.z e - lda.z e+1 - sbc.z xd+1 - sta.z e+1 - // [733] phi from bitmap_line_xdyd::@3 bitmap_line_xdyd::@4 to bitmap_line_xdyd::@2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2] - // [733] phi bitmap_line_xdyd::e#6 = bitmap_line_xdyd::e#2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2#0] -- register_copy - // [733] phi bitmap_line_xdyd::y#6 = bitmap_line_xdyd::y#2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2#1] -- register_copy - // bitmap_line_xdyd::@2 - __b2: - // x1+1 - // [734] bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#6 + 1 -- vwuz1=vwuz2_plus_1 - clc - lda.z x1 - adc #1 - sta.z __6 - lda.z x1+1 - adc #0 - sta.z __6+1 - // while (x!=(x1+1)) - // [735] if(bitmap_line_xdyd::x#2!=bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1 -- vwuz1_neq_vwuz2_then_la1 - lda.z x+1 - cmp.z __6+1 - bne __b1 - lda.z x - cmp.z __6 - bne __b1 - // bitmap_line_xdyd::@return - // } - // [736] return - rts -} - // divr16u -// Performs division on two 16 bit unsigned ints and an initial remainder -// Returns the quotient dividend/divisor. -// The final remainder will be set into the global variable rem16u -// Implemented using simple binary division -// __zp($27) unsigned int divr16u(__zp(2) unsigned int dividend, __zp($1e) unsigned int divisor, __zp($22) unsigned int rem) -divr16u: { - .label rem = $22 - .label dividend = 2 - .label quotient = $27 - .label return = $27 - .label divisor = $1e - // [738] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1] - // [738] phi divr16u::i#2 = 0 [phi:divr16u->divr16u::@1#0] -- vbuxx=vbuc1 - ldx #0 - // [738] phi divr16u::quotient#3 = 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vwuc1 - txa - sta.z quotient - sta.z quotient+1 - // [738] phi divr16u::dividend#2 = divr16u::dividend#1 [phi:divr16u->divr16u::@1#2] -- register_copy - // [738] phi divr16u::rem#4 = 0 [phi:divr16u->divr16u::@1#3] -- vwuz1=vbuc1 - sta.z rem - sta.z rem+1 - // [738] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1] - // [738] phi divr16u::i#2 = divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy - // [738] phi divr16u::quotient#3 = divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy - // [738] phi divr16u::dividend#2 = divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy - // [738] phi divr16u::rem#4 = divr16u::rem#10 [phi:divr16u::@3->divr16u::@1#3] -- register_copy - // divr16u::@1 - __b1: - // rem = rem << 1 - // [739] divr16u::rem#0 = divr16u::rem#4 << 1 -- vwuz1=vwuz1_rol_1 - asl.z rem - rol.z rem+1 - // BYTE1(dividend) - // [740] divr16u::$1 = byte1 divr16u::dividend#2 -- vbuaa=_byte1_vwuz1 - lda.z dividend+1 - // BYTE1(dividend) & $80 - // [741] divr16u::$2 = divr16u::$1 & $80 -- vbuaa=vbuaa_band_vbuc1 - and #$80 - // if( (BYTE1(dividend) & $80) != 0 ) - // [742] if(divr16u::$2==0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 - cmp #0 - beq __b2 - // divr16u::@4 - // rem = rem | 1 - // [743] divr16u::rem#1 = divr16u::rem#0 | 1 -- vwuz1=vwuz1_bor_vbuc1 - lda #1 - ora.z rem - sta.z rem - // [744] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2] - // [744] phi divr16u::rem#5 = divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy - // divr16u::@2 - __b2: - // dividend = dividend << 1 - // [745] divr16u::dividend#0 = divr16u::dividend#2 << 1 -- vwuz1=vwuz1_rol_1 - asl.z dividend - rol.z dividend+1 - // quotient = quotient << 1 - // [746] divr16u::quotient#1 = divr16u::quotient#3 << 1 -- vwuz1=vwuz1_rol_1 - asl.z quotient - rol.z quotient+1 - // if(rem>=divisor) - // [747] if(divr16u::rem#5divr16u::@3] - // [750] phi divr16u::return#0 = divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy - // [750] phi divr16u::rem#10 = divr16u::rem#5 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy - // divr16u::@3 - __b3: - // for( char i : 0..15) - // [751] divr16u::i#1 = ++ divr16u::i#2 -- vbuxx=_inc_vbuxx - inx - // [752] if(divr16u::i#1!=$10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 - cpx #$10 - bne __b1 - // divr16u::@6 - // rem16u = rem - // [753] rem16u#0 = divr16u::rem#10 -- vwuz1=vwuz2 - lda.z rem - sta.z rem16u - lda.z rem+1 - sta.z rem16u+1 - // divr16u::@return - // } - // [754] return - rts -} - // insertup -// Insert a new line, and scroll the upper part of the screen up. -insertup: { - .label cy = $21 - .label width = $20 - .label line = $a - .label start = $a - // unsigned byte cy = conio_cursor_y[conio_screen_layer] - // [755] insertup::cy#0 = conio_cursor_y[conio_screen_layer] -- vbuz1=pbuc1_derefidx_vbuz2 - ldy.z conio_screen_layer - lda conio_cursor_y,y - sta.z cy - // unsigned byte width = CONIO_WIDTH * 2 - // [756] insertup::width#0 = conio_screen_width << 1 -- vbuz1=vbuz2_rol_1 - lda.z conio_screen_width - asl - sta.z width - // [757] phi from insertup to insertup::@1 [phi:insertup->insertup::@1] - // [757] phi insertup::i#2 = 1 [phi:insertup->insertup::@1#0] -- vbuxx=vbuc1 - ldx #1 - // insertup::@1 - __b1: - // for(unsigned byte i=1; i<=cy; i++) - // [758] if(insertup::i#2<=insertup::cy#0) goto insertup::@2 -- vbuxx_le_vbuz1_then_la1 - lda.z cy - stx.z $ff - cmp.z $ff - bcs __b2 - // [759] phi from insertup::@1 to insertup::@3 [phi:insertup::@1->insertup::@3] - // insertup::@3 - // clearline() - // [760] call clearline - jsr clearline - // insertup::@return - // } - // [761] return - rts - // insertup::@2 - __b2: - // i-1 - // [762] insertup::$3 = insertup::i#2 - 1 -- vbuaa=vbuxx_minus_1 - txa - sec - sbc #1 - // unsigned int line = (i-1) << conio_rowshift - // [763] insertup::line#0 = insertup::$3 << conio_rowshift -- vwuz1=vbuaa_rol_vbuz2 - ldy.z conio_rowshift - sta.z line - lda #0 - sta.z line+1 - cpy #0 - beq !e+ - !: - asl.z line - rol.z line+1 - dey - bne !- - !e: - // unsigned char* start = CONIO_SCREEN_TEXT + line - // [764] insertup::start#0 = CONIO_SCREEN_TEXT#12 + insertup::line#0 -- pbuz1=pbuz2_plus_vwuz1 - clc - lda.z start - adc.z CONIO_SCREEN_TEXT - sta.z start - lda.z start+1 - adc.z CONIO_SCREEN_TEXT+1 - sta.z start+1 - // start+conio_rowskip - // [765] memcpy_in_vram::src#0 = insertup::start#0 + conio_rowskip -- pbuz1=pbuz2_plus_vwuz3 - lda.z start - clc - adc.z conio_rowskip - sta.z memcpy_in_vram.src - lda.z start+1 - adc.z conio_rowskip+1 - sta.z memcpy_in_vram.src+1 - // memcpy_in_vram(0, start, VERA_INC_1, 0, start+conio_rowskip, VERA_INC_1, width) - // [766] memcpy_in_vram::dest#0 = (void *)insertup::start#0 - // [767] memcpy_in_vram::num#0 = insertup::width#0 -- vwuz1=vbuz2 - lda.z width - sta.z memcpy_in_vram.num - lda #0 - sta.z memcpy_in_vram.num+1 - // [768] memcpy_in_vram::src#3 = (void *)memcpy_in_vram::src#0 - // memcpy_in_vram(0, start, VERA_INC_1, 0, start+conio_rowskip, VERA_INC_1, width) - // [769] call memcpy_in_vram - // [273] phi from insertup::@2 to memcpy_in_vram [phi:insertup::@2->memcpy_in_vram] - // [273] phi memcpy_in_vram::num#3 = memcpy_in_vram::num#0 [phi:insertup::@2->memcpy_in_vram#0] -- register_copy - // [273] phi memcpy_in_vram::dest_bank#2 = 0 [phi:insertup::@2->memcpy_in_vram#1] -- vbuyy=vbuc1 - tay - // [273] phi memcpy_in_vram::dest#2 = memcpy_in_vram::dest#0 [phi:insertup::@2->memcpy_in_vram#2] -- register_copy - // [273] phi memcpy_in_vram::src#2 = memcpy_in_vram::src#3 [phi:insertup::@2->memcpy_in_vram#3] -- register_copy - jsr memcpy_in_vram - // insertup::@4 - // for(unsigned byte i=1; i<=cy; i++) - // [770] insertup::i#1 = ++ insertup::i#2 -- vbuxx=_inc_vbuxx - inx - // [757] phi from insertup::@4 to insertup::@1 [phi:insertup::@4->insertup::@1] - // [757] phi insertup::i#2 = insertup::i#1 [phi:insertup::@4->insertup::@1#0] -- register_copy - jmp __b1 -} - // bitmap_plot -// void bitmap_plot(__zp($1e) unsigned int x, __zp(4) unsigned int y, __register(X) char c) -bitmap_plot: { - .label __9 = $e - .label __10 = $c - .label plot_x = $1a - .label plot_y = $10 - .label vera_vram_address01_bankaddr = $1a - .label x = $1e - .label y = 4 - .label __12 = $e - .label __13 = $c - .label __14 = $14 - .label __15 = $16 - // dword plot_x = __bitmap_plot_x[x] - // [772] bitmap_plot::$9 = bitmap_plot::x#4 << 1 -- vwuz1=vwuz2_rol_1 - lda.z x - asl - sta.z __9 - lda.z x+1 - rol - sta.z __9+1 - // [773] bitmap_plot::$12 = __bitmap_plot_x + bitmap_plot::$9 -- pwuz1=pwuc1_plus_vwuz1 - lda.z __12 - clc - adc #<__bitmap_plot_x - sta.z __12 - lda.z __12+1 - adc #>__bitmap_plot_x - sta.z __12+1 - // [774] bitmap_plot::plot_x#0 = (unsigned long)*bitmap_plot::$12 -- vduz1=_dword__deref_pwuz2 - // Needs unsigned int arrays arranged as two underlying char arrays to allow char* plotter_x = plot_x[x]; - and eventually - char* plotter = plot_x[x] + plot_y[y]; - ldy #0 - sty.z plot_x+2 - sty.z plot_x+3 - lda (__12),y - sta.z plot_x - iny - lda (__12),y - sta.z plot_x+1 - // dword plot_y = __bitmap_plot_y[y] - // [775] bitmap_plot::$10 = bitmap_plot::y#4 << 2 -- vwuz1=vwuz2_rol_2 - lda.z y - asl - sta.z __10 - lda.z y+1 - rol - sta.z __10+1 - asl.z __10 - rol.z __10+1 - // [776] bitmap_plot::$13 = __bitmap_plot_y + bitmap_plot::$10 -- pduz1=pduc1_plus_vwuz1 - lda.z __13 - clc - adc #<__bitmap_plot_y - sta.z __13 - lda.z __13+1 - adc #>__bitmap_plot_y - sta.z __13+1 - // [777] bitmap_plot::plot_y#0 = *bitmap_plot::$13 -- vduz1=_deref_pduz2 - ldy #0 - lda (__13),y - sta.z plot_y - iny - lda (__13),y - sta.z plot_y+1 - iny - lda (__13),y - sta.z plot_y+2 - iny - lda (__13),y - sta.z plot_y+3 - // dword plotter = plot_x+plot_y - // [778] bitmap_plot::vera_vram_address01_bankaddr#0 = bitmap_plot::plot_x#0 + bitmap_plot::plot_y#0 -- vduz1=vduz1_plus_vduz2 - clc - lda.z vera_vram_address01_bankaddr - adc.z plot_y - sta.z vera_vram_address01_bankaddr - lda.z vera_vram_address01_bankaddr+1 - adc.z plot_y+1 - sta.z vera_vram_address01_bankaddr+1 - lda.z vera_vram_address01_bankaddr+2 - adc.z plot_y+2 - sta.z vera_vram_address01_bankaddr+2 - lda.z vera_vram_address01_bankaddr+3 - adc.z plot_y+3 - sta.z vera_vram_address01_bankaddr+3 - // byte bitshift = __bitmap_plot_bitshift[x] - // [779] bitmap_plot::$14 = __bitmap_plot_bitshift + bitmap_plot::x#4 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitshift - sta.z __14 - lda.z x+1 - adc #>__bitmap_plot_bitshift - sta.z __14+1 - // [780] bitmap_plot::bitshift#0 = *bitmap_plot::$14 -- vbuaa=_deref_pbuz1 - ldy #0 - lda (__14),y - // bitshift?c<<(bitshift):c - // [781] if(0!=bitmap_plot::bitshift#0) goto bitmap_plot::@1 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b1 - // [783] phi from bitmap_plot bitmap_plot::@1 to bitmap_plot::@2 [phi:bitmap_plot/bitmap_plot::@1->bitmap_plot::@2] - // [783] phi bitmap_plot::c#0 = bitmap_plot::c#5 [phi:bitmap_plot/bitmap_plot::@1->bitmap_plot::@2#0] -- register_copy - jmp __b2 - // bitmap_plot::@1 - __b1: - // [782] bitmap_plot::$3 = bitmap_plot::c#5 << bitmap_plot::bitshift#0 -- vbuxx=vbuxx_rol_vbuaa - tay - txa - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - tax - // bitmap_plot::@2 - __b2: - // bitmap_plot::vera_vram_address01 - // *VERA_CTRL &= ~VERA_ADDRSEL - // [784] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(bankaddr) - // [785] bitmap_plot::vera_vram_address01_$0 = byte0 bitmap_plot::vera_vram_address01_bankaddr#0 -- vbuaa=_byte0_vduz1 - lda.z vera_vram_address01_bankaddr - // *VERA_ADDRX_L = BYTE0(bankaddr) - // [786] *VERA_ADDRX_L = bitmap_plot::vera_vram_address01_$0 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_L - // BYTE1(bankaddr) - // [787] bitmap_plot::vera_vram_address01_$1 = byte1 bitmap_plot::vera_vram_address01_bankaddr#0 -- vbuaa=_byte1_vduz1 - lda.z vera_vram_address01_bankaddr+1 - // *VERA_ADDRX_M = BYTE1(bankaddr) - // [788] *VERA_ADDRX_M = bitmap_plot::vera_vram_address01_$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // BYTE2(bankaddr) | incr - // [789] bitmap_plot::vera_vram_address01_$3 = byte2 bitmap_plot::vera_vram_address01_bankaddr#0 -- vbuaa=_byte2_vduz1 - lda.z vera_vram_address01_bankaddr+2 - // *VERA_ADDRX_H = BYTE2(bankaddr) | incr - // [790] *VERA_ADDRX_H = bitmap_plot::vera_vram_address01_$3 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_H - // bitmap_plot::@3 - // ~__bitmap_plot_bitmask[x] - // [791] bitmap_plot::$15 = __bitmap_plot_bitmask + bitmap_plot::x#4 -- pbuz1=pbuc1_plus_vwuz2 - lda.z x - clc - adc #<__bitmap_plot_bitmask - sta.z __15 - lda.z x+1 - adc #>__bitmap_plot_bitmask - sta.z __15+1 - // [792] bitmap_plot::$6 = ~ *bitmap_plot::$15 -- vbuaa=_bnot__deref_pbuz1 - ldy #0 - lda (__15),y - eor #$ff - // *VERA_DATA0 & ~__bitmap_plot_bitmask[x] - // [793] bitmap_plot::$7 = *VERA_DATA0 & bitmap_plot::$6 -- vbuaa=_deref_pbuc1_band_vbuaa - and VERA_DATA0 - // (*VERA_DATA0 & ~__bitmap_plot_bitmask[x]) | c - // [794] bitmap_plot::$8 = bitmap_plot::$7 | bitmap_plot::c#0 -- vbuaa=vbuaa_bor_vbuxx - stx.z $ff - ora.z $ff - // *VERA_DATA0 = (*VERA_DATA0 & ~__bitmap_plot_bitmask[x]) | c - // [795] *VERA_DATA0 = bitmap_plot::$8 -- _deref_pbuc1=vbuaa - sta VERA_DATA0 - // bitmap_plot::@return - // } - // [796] return - rts -} - // clearline -clearline: { - .label addr = $e - .label c = 4 - // *VERA_CTRL &= ~VERA_ADDRSEL - // [797] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // byte* addr = CONIO_SCREEN_TEXT + conio_line_text[conio_screen_layer] - // [798] clearline::$5 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [799] clearline::addr#0 = CONIO_SCREEN_TEXT#12 + conio_line_text[clearline::$5] -- pbuz1=pbuz2_plus_pwuc1_derefidx_vbuaa - // Set address - tay - clc - lda.z CONIO_SCREEN_TEXT - adc conio_line_text,y - sta.z addr - lda.z CONIO_SCREEN_TEXT+1 - adc conio_line_text+1,y - sta.z addr+1 - // BYTE0(addr) - // [800] clearline::$1 = byte0 clearline::addr#0 -- vbuaa=_byte0_pbuz1 - lda.z addr - // *VERA_ADDRX_L = BYTE0(addr) - // [801] *VERA_ADDRX_L = clearline::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_L - // BYTE1(addr) - // [802] clearline::$2 = byte1 clearline::addr#0 -- vbuaa=_byte1_pbuz1 - lda.z addr+1 - // *VERA_ADDRX_M = BYTE1(addr) - // [803] *VERA_ADDRX_M = clearline::$2 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // *VERA_ADDRX_H = VERA_INC_1 - // [804] *VERA_ADDRX_H = VERA_INC_1 -- _deref_pbuc1=vbuc2 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // char color = vera_layer_get_color( conio_screen_layer) - // [805] vera_layer_get_color::layer#1 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [806] call vera_layer_get_color - // [254] phi from clearline to vera_layer_get_color [phi:clearline->vera_layer_get_color] - // [254] phi vera_layer_get_color::layer#2 = vera_layer_get_color::layer#1 [phi:clearline->vera_layer_get_color#0] -- register_copy - jsr vera_layer_get_color - // char color = vera_layer_get_color( conio_screen_layer) - // [807] vera_layer_get_color::return#4 = vera_layer_get_color::return#3 - // clearline::@4 - // [808] clearline::color#0 = vera_layer_get_color::return#4 -- vbuxx=vbuaa - tax - // [809] phi from clearline::@4 to clearline::@1 [phi:clearline::@4->clearline::@1] - // [809] phi clearline::c#2 = 0 [phi:clearline::@4->clearline::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z c - sta.z c+1 - // clearline::@1 - __b1: - // for( unsigned int c=0;cclearline::@1] - // [809] phi clearline::c#2 = clearline::c#1 [phi:clearline::@2->clearline::@1#0] -- register_copy - jmp __b1 -} - // File Data -.segment Data - VERA_LAYER_WIDTH: .word $20, $40, $80, $100 - VERA_LAYER_HEIGHT: .word $20, $40, $80, $100 - /// --- VERA function encapsulation --- - vera_mapbase_offset: .word 0, 0 - vera_mapbase_bank: .byte 0, 0 - vera_mapbase_address: .dword 0, 0 - vera_tilebase_offset: .word 0, 0 - vera_tilebase_bank: .byte 0, 0 - vera_tilebase_address: .dword 0, 0 - vera_layer_rowshift: .byte 0, 0 - vera_layer_rowskip: .word 0, 0 - vera_layer_config: .word VERA_L0_CONFIG, VERA_L1_CONFIG - vera_layer_enable: .byte VERA_LAYER0_ENABLE, VERA_LAYER1_ENABLE - vera_layer_mapbase: .word VERA_L0_MAPBASE, VERA_L1_MAPBASE - vera_layer_tilebase: .word VERA_L0_TILEBASE, VERA_L1_TILEBASE - vera_layer_textcolor: .byte WHITE, WHITE - vera_layer_backcolor: .byte BLUE, BLUE - // The number of bytes on the screen - // The current cursor x-position - conio_cursor_x: .byte 0, 0 - // The current cursor y-position - conio_cursor_y: .byte 0, 0 - // The current text cursor line start - conio_line_text: .word 0, 0 - // Is scrolling enabled when outputting beyond the end of the screen (1: yes, 0: no). - // If disabled the cursor just moves back to (0,0) instead - conio_scroll_enable: .byte 1, 1 - // Tables for the plotter - initialized by calling bitmap_draw_init(); - __bitmap_plot_x: .fill 2*$280, 0 - __bitmap_plot_y: .fill 4*$1e0, 0 - __bitmap_plot_bitmask: .fill $280, 0 - __bitmap_plot_bitshift: .fill $280, 0 - hdeltas: .word 0, $50, $28, $14, 0, $a0, $50, $28, 0, $140, $a0, $50, 0, $280, $140, $a0 - vdeltas: .word 0, $1e0, $f0, $a0 - bitmasks: .byte $80, $c0, $f0, $ff - .fill 1, 0 - bitshifts: .byte 7, 6, 4, 0 - .fill 1, 0 - diff --git a/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.sym b/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.sym deleted file mode 100644 index a42410c93..000000000 --- a/src/test/ref/examples/cx16/veralib/bitmap_8bpp_320_x_240.sym +++ /dev/null @@ -1,1121 +0,0 @@ -__constant const char BLACK = 0 -__constant const char BLUE = 6 -char CONIO_SCREEN_BANK -char CONIO_SCREEN_BANK#12 // CONIO_SCREEN_BANK zp[1]:136 625.0625 -char CONIO_SCREEN_BANK#15 // CONIO_SCREEN_BANK_1 zp[1]:171 7.76056338028169 -char *CONIO_SCREEN_TEXT -char *CONIO_SCREEN_TEXT#12 // CONIO_SCREEN_TEXT zp[2]:43 2.000018187272727E7 -unsigned int CONIO_SCREEN_TEXT#17 // CONIO_SCREEN_TEXT_1 zp[2]:178 0.7318840579710145 -__constant char RADIX::BINARY = 2 -__constant char RADIX::DECIMAL = $a -__constant char RADIX::HEXADECIMAL = $10 -__constant char RADIX::OCTAL = 8 -__constant char SIZEOF_POINTER = 2 -__constant unsigned int STACK_BASE = $103 -__constant const char VERA_ADDRSEL = 1 -__constant char * const VERA_ADDRX_H = (char *) 40738 -__constant char * const VERA_ADDRX_L = (char *) 40736 -__constant char * const VERA_ADDRX_M = (char *) 40737 -__constant char * const VERA_CTRL = (char *) 40741 -__constant char * const VERA_DATA0 = (char *) 40739 -__constant char * const VERA_DATA1 = (char *) 40740 -__constant char * const VERA_DC_HSCALE = (char *) 40746 -__constant char * const VERA_DC_VIDEO = (char *) 40745 -__constant char * const VERA_DC_VSCALE = (char *) 40747 -__constant const char VERA_INC_1 = $10 -__constant char * const VERA_L0_CONFIG = (char *) 40749 -__constant char * const VERA_L0_MAPBASE = (char *) 40750 -__constant char * const VERA_L0_TILEBASE = (char *) 40751 -__constant char * const VERA_L1_CONFIG = (char *) 40756 -__constant char * const VERA_L1_MAPBASE = (char *) 40757 -__constant char * const VERA_L1_TILEBASE = (char *) 40758 -__constant const char VERA_LAYER0_ENABLE = $10 -__constant const char VERA_LAYER1_ENABLE = $20 -__constant const char VERA_LAYER_COLOR_DEPTH_1BPP = 0 -__constant const char VERA_LAYER_COLOR_DEPTH_8BPP = 3 -__constant const char VERA_LAYER_COLOR_DEPTH_MASK = 3 -__constant const char VERA_LAYER_CONFIG_256C = 8 -__constant const char VERA_LAYER_CONFIG_MODE_BITMAP = 4 -__constant const unsigned int VERA_LAYER_HEIGHT[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_HEIGHT_128 = $80 -__constant const char VERA_LAYER_HEIGHT_256 = $c0 -__constant const char VERA_LAYER_HEIGHT_64 = $40 -__constant const char VERA_LAYER_HEIGHT_MASK = $c0 -__constant const char VERA_LAYER_TILEBASE_MASK = $fc -__constant const unsigned int VERA_LAYER_WIDTH[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_WIDTH_128 = $20 -__constant const char VERA_LAYER_WIDTH_256 = $30 -__constant const char VERA_LAYER_WIDTH_64 = $10 -__constant const char VERA_LAYER_WIDTH_MASK = $30 -__constant const char VERA_TILEBASE_HEIGHT_16 = 2 -__constant const char VERA_TILEBASE_WIDTH_16 = 1 -__constant const char WHITE = 1 -__constant const char YELLOW = 7 -__loadstore unsigned long __bitmap_address // zp[4]:172 4.06 -__loadstore char __bitmap_color_depth // zp[1]:167 80.4074074074074 -__loadstore char __bitmap_hscale // zp[1]:176 3.9102564102564106 -__loadstore char __bitmap_layer // zp[1]:150 204.0 -__constant const char __bitmap_plot_bitmask[$280] = { fill( $280, 0) } -__constant const char __bitmap_plot_bitshift[$280] = { fill( $280, 0) } -__constant const unsigned int __bitmap_plot_x[$280] = { fill( $280, 0) } -__constant const unsigned long __bitmap_plot_y[$1e0] = { fill( $1e0, 0) } -__loadstore char __bitmap_vscale // zp[1]:177 2.8732394366197185 -void __start() -void bitmap_clear() -char bitmap_clear::$0 // reg byte a 202.0 -char bitmap_clear::$1 // reg byte a 202.0 -char bitmap_clear::$6 // reg byte a 202.0 -char bitmap_clear::$7 // reg byte a 202.0 -unsigned long bitmap_clear::count -unsigned long bitmap_clear::count#0 // count zp[4]:114 40.4 -unsigned int bitmap_clear::hdelta -unsigned int bitmap_clear::hdelta#0 // hdelta zp[2]:157 202.0 -char bitmap_clear::vbank -char bitmap_clear::vbank#0 // reg byte x 101.0 -unsigned int bitmap_clear::vdelta -unsigned int bitmap_clear::vdelta#0 // vdelta zp[2]:161 33.666666666666664 -void *bitmap_clear::vdest -unsigned int bitmap_clear::vdest#0 // vdest zp[2]:145 50.5 -void bitmap_init(char layer , unsigned long address) -char bitmap_init::$0 // reg byte a 202.0 -char bitmap_init::$1 // reg byte x 202.0 -unsigned int bitmap_init::$10 // zp[2]:131 667.3333333333334 -unsigned int bitmap_init::$13 // zp[2]:133 667.3333333333334 -char bitmap_init::$2 // reg byte x 202.0 -unsigned int bitmap_init::$23 // zp[2]:55 2002.0 -unsigned int bitmap_init::$24 // zp[2]:57 2002.0 -unsigned int bitmap_init::$25 // zp[2]:59 2002.0 -unsigned int bitmap_init::$26 // zp[2]:61 2002.0 -char bitmap_init::$27 // reg byte a 202.0 -unsigned int bitmap_init::$28 // zp[2]:63 2002.0 -const unsigned int *bitmap_init::$29 // zp[2]:55 2002.0 -char bitmap_init::$3 // reg byte a 202.0 -const char *bitmap_init::$30 // zp[2]:81 2002.0 -const char *bitmap_init::$31 // zp[2]:83 2002.0 -const unsigned int *bitmap_init::$32 // zp[2]:57 2002.0 -const char *bitmap_init::$33 // zp[2]:85 2002.0 -const char *bitmap_init::$34 // zp[2]:87 2002.0 -const unsigned int *bitmap_init::$35 // zp[2]:59 2002.0 -const char *bitmap_init::$36 // zp[2]:89 2002.0 -const char *bitmap_init::$37 // zp[2]:91 2002.0 -const unsigned int *bitmap_init::$38 // zp[2]:61 2002.0 -const char *bitmap_init::$39 // zp[2]:93 2002.0 -char bitmap_init::$4 // reg byte a 202.0 -const char *bitmap_init::$40 // zp[2]:95 2002.0 -const unsigned long *bitmap_init::$41 // zp[2]:63 2002.0 -unsigned int bitmap_init::$7 // zp[2]:129 667.3333333333334 -unsigned long bitmap_init::address -__constant unsigned long bitmap_init::address#0 = 0 // address -char bitmap_init::bitmask -char bitmap_init::bitmask#0 // bitmask zp[1]:33 101.0 -char bitmap_init::bitmask#1 // bitmask zp[1]:33 2002.0 -char bitmap_init::bitmask#10 // bitmask zp[1]:33 373.1818181818182 -char bitmap_init::bitmask#11 // bitmask zp[1]:33 455.0 -char bitmap_init::bitmask#12 // bitmask zp[1]:33 455.0 -char bitmap_init::bitmask#13 // bitmask zp[1]:33 385.0 -char bitmap_init::bitmask#16 // bitmask zp[1]:33 1001.0 -char bitmap_init::bitmask#2 // bitmask zp[1]:33 2002.0 -char bitmap_init::bitmask#3 // bitmask zp[1]:33 2002.0 -char bitmap_init::bitmask#4 // bitmask zp[1]:33 2002.0 -signed char bitmap_init::bitshift -signed char bitmap_init::bitshift#0 // bitshift zp[1]:32 202.0 -signed char bitmap_init::bitshift#1 // bitshift zp[1]:32 1001.0 -signed char bitmap_init::bitshift#10 // bitshift zp[1]:32 310.4 -signed char bitmap_init::bitshift#11 // bitshift zp[1]:32 400.4 -signed char bitmap_init::bitshift#12 // bitshift zp[1]:32 400.4 -signed char bitmap_init::bitshift#13 // bitshift zp[1]:32 400.4 -signed char bitmap_init::bitshift#14 // bitshift zp[1]:32 500.5 -signed char bitmap_init::bitshift#2 // bitshift zp[1]:32 1001.0 -signed char bitmap_init::bitshift#3 // bitshift zp[1]:32 1001.0 -signed char bitmap_init::bitshift#4 // bitshift zp[1]:32 2002.0 -unsigned int bitmap_init::hdelta -unsigned int bitmap_init::hdelta#0 // hdelta zp[2]:163 122.44444444444446 -char bitmap_init::layer -__constant char bitmap_init::layer#0 = 0 // layer -char bitmap_init::vera_layer_get_color_depth1_$0 // reg byte a 202.0 -char bitmap_init::vera_layer_get_color_depth1_$1 // reg byte a 202.0 -char *bitmap_init::vera_layer_get_color_depth1_config -char *bitmap_init::vera_layer_get_color_depth1_config#0 // vera_layer_get_color_depth1_config zp[2]:155 202.0 -char bitmap_init::vera_layer_get_color_depth1_layer -char bitmap_init::vera_layer_get_color_depth1_layer#0 // reg byte a 202.0 -char bitmap_init::vera_layer_get_color_depth1_return -char bitmap_init::vera_layer_get_color_depth1_return#0 // reg byte a 202.0 -char bitmap_init::vera_layer_get_color_depth1_return#1 // reg byte a 202.0 -unsigned int bitmap_init::x -unsigned int bitmap_init::x#1 // x zp[2]:103 1501.5 -unsigned int bitmap_init::x#10 // x zp[2]:103 353.29411764705884 -unsigned int bitmap_init::y -unsigned int bitmap_init::y#1 // y zp[2]:71 1501.5 -unsigned int bitmap_init::y#2 // y zp[2]:71 600.5999999999999 -unsigned long bitmap_init::yoffs -unsigned long bitmap_init::yoffs#0 // yoffs zp[4]:106 202.0 -unsigned long bitmap_init::yoffs#1 // yoffs zp[4]:106 667.3333333333334 -unsigned long bitmap_init::yoffs#2 // yoffs zp[4]:106 776.0 -void bitmap_line(unsigned int x0 , unsigned int x1 , unsigned int y0 , unsigned int y1 , char c) -char bitmap_line::c -char bitmap_line::c#0 // reg byte x 202.0 -char bitmap_line::c#1 // reg byte x 2002.0 -char bitmap_line::c#10 // reg byte x 1502.037037037037 -unsigned int bitmap_line::x0 -unsigned int bitmap_line::x0#0 // x0 zp[2]:6 8.782608695652174 -unsigned int bitmap_line::x0#1 // x0 zp[2]:6 667.3333333333334 -unsigned int bitmap_line::x0#10 // x0 zp[2]:6 4555.550000000001 -unsigned int bitmap_line::x1 -unsigned int bitmap_line::x1#0 // x1 zp[2]:10 11.882352941176471 -unsigned int bitmap_line::x1#1 // x1 zp[2]:10 1001.0 -unsigned int bitmap_line::x1#10 // x1 zp[2]:10 4555.550000000001 -unsigned int bitmap_line::xd -unsigned int bitmap_line::xd#1 // xd zp[2]:34 3500.3500000000004 -unsigned int bitmap_line::xd#2 // xd zp[2]:34 3500.3500000000004 -unsigned int bitmap_line::y0 -unsigned int bitmap_line::y0#0 // y0 zp[2]:8 18.363636363636363 -unsigned int bitmap_line::y0#10 // y0 zp[2]:8 6005.6500000000015 -unsigned int bitmap_line::y1 -unsigned int bitmap_line::y1#0 // y1 zp[2]:2 40.4 -unsigned int bitmap_line::y1#10 // y1 zp[2]:2 6005.6500000000015 -unsigned int bitmap_line::yd -unsigned int bitmap_line::yd#1 // yd zp[2]:41 4444.888888888889 -unsigned int bitmap_line::yd#10 // yd zp[2]:41 4444.888888888889 -unsigned int bitmap_line::yd#11 // yd_1 zp[2]:39 4444.888888888889 -unsigned int bitmap_line::yd#2 // yd_1 zp[2]:39 4444.888888888889 -void bitmap_line_xdyd(unsigned int x , unsigned int y , unsigned int x1 , unsigned int xd , unsigned int yd , char c) -unsigned int bitmap_line_xdyd::$6 // zp[2]:14 2.00000002E8 -char bitmap_line_xdyd::c -char bitmap_line_xdyd::c#0 // c zp[1]:32 20002.0 -char bitmap_line_xdyd::c#1 // c zp[1]:32 20002.0 -char bitmap_line_xdyd::c#3 // c zp[1]:32 6668000.2 -unsigned int bitmap_line_xdyd::e -unsigned int bitmap_line_xdyd::e#0 // e zp[2]:24 200002.0 -unsigned int bitmap_line_xdyd::e#1 // e zp[2]:24 1.3333333466666667E8 -unsigned int bitmap_line_xdyd::e#2 // e zp[2]:24 2.00000002E8 -unsigned int bitmap_line_xdyd::e#3 // e zp[2]:24 3.33500005E7 -unsigned int bitmap_line_xdyd::e#6 // e zp[2]:24 1.00000001E8 -unsigned int bitmap_line_xdyd::x -unsigned int bitmap_line_xdyd::x#0 // x zp[2]:30 3333.6666666666665 -unsigned int bitmap_line_xdyd::x#1 // x zp[2]:30 3333.6666666666665 -unsigned int bitmap_line_xdyd::x#2 // x zp[2]:30 3.7500000375E7 -unsigned int bitmap_line_xdyd::x#3 // x zp[2]:30 6.00200008E7 -unsigned int bitmap_line_xdyd::x#6 // x zp[2]:30 60001.5 -unsigned int bitmap_line_xdyd::x1 -unsigned int bitmap_line_xdyd::x1#0 // x1 zp[2]:6 5000.5 -unsigned int bitmap_line_xdyd::x1#1 // x1 zp[2]:6 5000.5 -unsigned int bitmap_line_xdyd::x1#6 // x1 zp[2]:6 6668000.2 -unsigned int bitmap_line_xdyd::xd -unsigned int bitmap_line_xdyd::xd#0 // xd zp[2]:34 6667.333333333333 -unsigned int bitmap_line_xdyd::xd#1 // xd zp[2]:34 6667.333333333333 -unsigned int bitmap_line_xdyd::xd#5 // xd zp[2]:34 1.3334666933333334E7 -unsigned int bitmap_line_xdyd::y -unsigned int bitmap_line_xdyd::y#0 // y zp[2]:8 4000.4 -unsigned int bitmap_line_xdyd::y#1 // y zp[2]:8 4000.4 -unsigned int bitmap_line_xdyd::y#2 // y zp[2]:8 1.00000001E8 -unsigned int bitmap_line_xdyd::y#3 // y zp[2]:8 5.0012500625E7 -unsigned int bitmap_line_xdyd::y#5 // y zp[2]:8 60001.5 -unsigned int bitmap_line_xdyd::y#6 // y zp[2]:8 1.00000001E8 -unsigned int bitmap_line_xdyd::yd -unsigned int bitmap_line_xdyd::yd#0 // yd zp[2]:41 10001.0 -unsigned int bitmap_line_xdyd::yd#1 // yd zp[2]:41 10001.0 -unsigned int bitmap_line_xdyd::yd#2 // yd zp[2]:41 6674666.933333334 -void bitmap_line_xdyi(unsigned int x , unsigned int y , unsigned int x1 , unsigned int xd , unsigned int yd , char c) -unsigned int bitmap_line_xdyi::$6 // zp[2]:14 2.00000002E8 -char bitmap_line_xdyi::c -char bitmap_line_xdyi::c#0 // c zp[1]:33 20002.0 -char bitmap_line_xdyi::c#1 // c zp[1]:33 20002.0 -char bitmap_line_xdyi::c#3 // c zp[1]:33 6668000.2 -unsigned int bitmap_line_xdyi::e -unsigned int bitmap_line_xdyi::e#0 // e zp[2]:24 200002.0 -unsigned int bitmap_line_xdyi::e#1 // e zp[2]:24 1.3333333466666667E8 -unsigned int bitmap_line_xdyi::e#2 // e zp[2]:24 2.00000002E8 -unsigned int bitmap_line_xdyi::e#3 // e zp[2]:24 3.33500005E7 -unsigned int bitmap_line_xdyi::e#6 // e zp[2]:24 1.00000001E8 -unsigned int bitmap_line_xdyi::x -unsigned int bitmap_line_xdyi::x#0 // x zp[2]:30 3333.6666666666665 -unsigned int bitmap_line_xdyi::x#1 // x zp[2]:30 3333.6666666666665 -unsigned int bitmap_line_xdyi::x#2 // x zp[2]:30 3.7500000375E7 -unsigned int bitmap_line_xdyi::x#3 // x zp[2]:30 6.00200008E7 -unsigned int bitmap_line_xdyi::x#6 // x zp[2]:30 60001.5 -unsigned int bitmap_line_xdyi::x1 -unsigned int bitmap_line_xdyi::x1#0 // x1 zp[2]:6 5000.5 -unsigned int bitmap_line_xdyi::x1#1 // x1 zp[2]:6 5000.5 -unsigned int bitmap_line_xdyi::x1#6 // x1 zp[2]:6 6668000.2 -unsigned int bitmap_line_xdyi::xd -unsigned int bitmap_line_xdyi::xd#0 // xd zp[2]:34 6667.333333333333 -unsigned int bitmap_line_xdyi::xd#1 // xd zp[2]:34 6667.333333333333 -unsigned int bitmap_line_xdyi::xd#5 // xd zp[2]:34 1.3334666933333334E7 -unsigned int bitmap_line_xdyi::y -unsigned int bitmap_line_xdyi::y#0 // y zp[2]:8 4000.4 -unsigned int bitmap_line_xdyi::y#1 // y zp[2]:8 4000.4 -unsigned int bitmap_line_xdyi::y#2 // y zp[2]:8 1.00000001E8 -unsigned int bitmap_line_xdyi::y#3 // y zp[2]:8 5.0012500625E7 -unsigned int bitmap_line_xdyi::y#5 // y zp[2]:8 60001.5 -unsigned int bitmap_line_xdyi::y#6 // y zp[2]:8 1.00000001E8 -unsigned int bitmap_line_xdyi::yd -unsigned int bitmap_line_xdyi::yd#0 // yd zp[2]:39 10001.0 -unsigned int bitmap_line_xdyi::yd#1 // yd zp[2]:39 10001.0 -unsigned int bitmap_line_xdyi::yd#2 // yd zp[2]:39 6674666.933333334 -void bitmap_line_ydxd(unsigned int y , unsigned int x , unsigned int y1 , unsigned int yd , unsigned int xd , char c) -unsigned int bitmap_line_ydxd::$6 // zp[2]:14 2.00000002E8 -char bitmap_line_ydxd::c -char bitmap_line_ydxd::c#0 // c zp[1]:32 20002.0 -char bitmap_line_ydxd::c#1 // c zp[1]:32 20002.0 -char bitmap_line_ydxd::c#3 // c zp[1]:32 6668000.2 -unsigned int bitmap_line_ydxd::e -unsigned int bitmap_line_ydxd::e#0 // e zp[2]:24 200002.0 -unsigned int bitmap_line_ydxd::e#1 // e zp[2]:24 1.3333333466666667E8 -unsigned int bitmap_line_ydxd::e#2 // e zp[2]:24 2.00000002E8 -unsigned int bitmap_line_ydxd::e#3 // e zp[2]:24 3.33500005E7 -unsigned int bitmap_line_ydxd::e#6 // e zp[2]:24 1.00000001E8 -unsigned int bitmap_line_ydxd::x -unsigned int bitmap_line_ydxd::x#0 // x zp[2]:6 4000.4 -unsigned int bitmap_line_ydxd::x#1 // x zp[2]:6 4000.4 -unsigned int bitmap_line_ydxd::x#2 // x zp[2]:6 1.00000001E8 -unsigned int bitmap_line_ydxd::x#3 // x zp[2]:6 5.0012500625E7 -unsigned int bitmap_line_ydxd::x#5 // x zp[2]:6 60001.5 -unsigned int bitmap_line_ydxd::x#6 // x zp[2]:6 1.00000001E8 -unsigned int bitmap_line_ydxd::xd -unsigned int bitmap_line_ydxd::xd#0 // xd zp[2]:34 10001.0 -unsigned int bitmap_line_ydxd::xd#1 // xd zp[2]:34 10001.0 -unsigned int bitmap_line_ydxd::xd#2 // xd zp[2]:34 6674666.933333334 -unsigned int bitmap_line_ydxd::y -unsigned int bitmap_line_ydxd::y#0 // y zp[2]:4 3333.6666666666665 -unsigned int bitmap_line_ydxd::y#1 // y zp[2]:4 3333.6666666666665 -unsigned int bitmap_line_ydxd::y#2 // y zp[2]:4 6.00200008E7 -unsigned int bitmap_line_ydxd::y#3 // y zp[2]:4 3.7500000375E7 -unsigned int bitmap_line_ydxd::y#7 // y zp[2]:4 60001.5 -unsigned int bitmap_line_ydxd::y1 -unsigned int bitmap_line_ydxd::y1#0 // y1 zp[2]:8 5000.5 -unsigned int bitmap_line_ydxd::y1#1 // y1 zp[2]:8 5000.5 -unsigned int bitmap_line_ydxd::y1#6 // y1 zp[2]:8 6668000.2 -unsigned int bitmap_line_ydxd::yd -unsigned int bitmap_line_ydxd::yd#0 // yd zp[2]:41 6667.333333333333 -unsigned int bitmap_line_ydxd::yd#1 // yd zp[2]:41 6667.333333333333 -unsigned int bitmap_line_ydxd::yd#5 // yd zp[2]:41 1.3334666933333334E7 -void bitmap_line_ydxi(unsigned int y , unsigned int x , unsigned int y1 , unsigned int yd , unsigned int xd , char c) -unsigned int bitmap_line_ydxi::$6 // zp[2]:30 2.00000002E8 -char bitmap_line_ydxi::c -char bitmap_line_ydxi::c#0 // c zp[1]:32 20002.0 -char bitmap_line_ydxi::c#1 // c zp[1]:32 20002.0 -char bitmap_line_ydxi::c#3 // c zp[1]:32 6668000.2 -unsigned int bitmap_line_ydxi::e -unsigned int bitmap_line_ydxi::e#0 // e zp[2]:24 200002.0 -unsigned int bitmap_line_ydxi::e#1 // e zp[2]:24 1.3333333466666667E8 -unsigned int bitmap_line_ydxi::e#2 // e zp[2]:24 2.00000002E8 -unsigned int bitmap_line_ydxi::e#3 // e zp[2]:24 3.33500005E7 -unsigned int bitmap_line_ydxi::e#6 // e zp[2]:24 1.00000001E8 -unsigned int bitmap_line_ydxi::x -unsigned int bitmap_line_ydxi::x#0 // x zp[2]:6 4000.4 -unsigned int bitmap_line_ydxi::x#1 // x zp[2]:6 4000.4 -unsigned int bitmap_line_ydxi::x#2 // x zp[2]:6 1.00000001E8 -unsigned int bitmap_line_ydxi::x#3 // x zp[2]:6 5.0012500625E7 -unsigned int bitmap_line_ydxi::x#5 // x zp[2]:6 60001.5 -unsigned int bitmap_line_ydxi::x#6 // x zp[2]:6 1.00000001E8 -unsigned int bitmap_line_ydxi::xd -unsigned int bitmap_line_ydxi::xd#0 // xd zp[2]:34 10001.0 -unsigned int bitmap_line_ydxi::xd#1 // xd zp[2]:34 10001.0 -unsigned int bitmap_line_ydxi::xd#2 // xd zp[2]:34 6674666.933333334 -unsigned int bitmap_line_ydxi::y -unsigned int bitmap_line_ydxi::y#0 // y zp[2]:4 3333.6666666666665 -unsigned int bitmap_line_ydxi::y#1 // y zp[2]:4 3333.6666666666665 -unsigned int bitmap_line_ydxi::y#2 // y zp[2]:4 3.7500000375E7 -unsigned int bitmap_line_ydxi::y#3 // y zp[2]:4 6.00200008E7 -unsigned int bitmap_line_ydxi::y#6 // y zp[2]:4 60001.5 -unsigned int bitmap_line_ydxi::y1 -unsigned int bitmap_line_ydxi::y1#0 // y1 zp[2]:8 5000.5 -unsigned int bitmap_line_ydxi::y1#1 // y1 zp[2]:8 5000.5 -unsigned int bitmap_line_ydxi::y1#6 // y1 zp[2]:8 6668000.2 -unsigned int bitmap_line_ydxi::yd -unsigned int bitmap_line_ydxi::yd#0 // yd zp[2]:39 6667.333333333333 -unsigned int bitmap_line_ydxi::yd#1 // yd zp[2]:39 6667.333333333333 -unsigned int bitmap_line_ydxi::yd#5 // yd zp[2]:39 1.3334666933333334E7 -void bitmap_plot(unsigned int x , unsigned int y , char c) -unsigned int bitmap_plot::$10 // zp[2]:12 2.000000002E9 -const unsigned int *bitmap_plot::$12 // zp[2]:14 1.000000001E9 -const unsigned long *bitmap_plot::$13 // zp[2]:12 2.000000002E9 -const char *bitmap_plot::$14 // zp[2]:20 2.000000002E9 -const char *bitmap_plot::$15 // zp[2]:22 2.000000002E9 -char bitmap_plot::$3 // reg byte x 2.000000002E9 -char bitmap_plot::$6 // reg byte a 2.000000002E9 -char bitmap_plot::$7 // reg byte a 2.000000002E9 -char bitmap_plot::$8 // reg byte a 2.000000002E9 -unsigned int bitmap_plot::$9 // zp[2]:14 2.000000002E9 -char bitmap_plot::bitshift -char bitmap_plot::bitshift#0 // reg byte a 1.5000000015E9 -char bitmap_plot::c -char bitmap_plot::c#0 // reg byte x 2.72727273E8 -char bitmap_plot::c#1 // reg byte x 2.00000002E8 -char bitmap_plot::c#2 // reg byte x 2.00000002E8 -char bitmap_plot::c#3 // reg byte x 2.00000002E8 -char bitmap_plot::c#4 // reg byte x 2.00000002E8 -char bitmap_plot::c#5 // reg byte x 2.1818181872727272E8 -unsigned long bitmap_plot::plot_x -unsigned long bitmap_plot::plot_x#0 // plot_x zp[4]:26 5.000000005E8 -unsigned long bitmap_plot::plot_y -unsigned long bitmap_plot::plot_y#0 // plot_y zp[4]:16 2.000000002E9 -unsigned long bitmap_plot::plotter -char bitmap_plot::vera_vram_address01_$0 // reg byte a 2.000000002E9 -char bitmap_plot::vera_vram_address01_$1 // reg byte a 2.000000002E9 -char bitmap_plot::vera_vram_address01_$3 // reg byte a 2.000000002E9 -unsigned long bitmap_plot::vera_vram_address01_bankaddr -unsigned long bitmap_plot::vera_vram_address01_bankaddr#0 // vera_vram_address01_bankaddr zp[4]:26 3.63636364E8 -char bitmap_plot::vera_vram_address01_incr -unsigned int bitmap_plot::x -unsigned int bitmap_plot::x#0 // x zp[2]:30 6.6666667333333336E7 -unsigned int bitmap_plot::x#1 // x zp[2]:30 6.6666667333333336E7 -unsigned int bitmap_plot::x#2 // x zp[2]:30 6.6666667333333336E7 -unsigned int bitmap_plot::x#3 // x zp[2]:30 6.6666667333333336E7 -unsigned int bitmap_plot::x#4 // x zp[2]:30 1.7000000035E8 -unsigned int bitmap_plot::y -unsigned int bitmap_plot::y#0 // y zp[2]:4 1.00000001E8 -unsigned int bitmap_plot::y#1 // y zp[2]:4 1.00000001E8 -unsigned int bitmap_plot::y#2 // y zp[2]:4 1.00000001E8 -unsigned int bitmap_plot::y#3 // y zp[2]:4 1.00000001E8 -unsigned int bitmap_plot::y#4 // y zp[2]:4 3.5000000125E8 -__constant const char bitmasks[5] = { $80, $c0, $f0, $ff } -__constant const signed char bitshifts[5] = { 7, 6, 4, 0 } -void clearline() -char clearline::$1 // reg byte a 2.00000002E8 -char clearline::$2 // reg byte a 2.00000002E8 -char clearline::$5 // reg byte a 2.00000002E8 -char *clearline::addr -char *clearline::addr#0 // addr zp[2]:14 1.00000001E8 -unsigned int clearline::c -unsigned int clearline::c#1 // c zp[2]:4 2.0000000002E10 -unsigned int clearline::c#2 // c zp[2]:4 7.50000000075E9 -char clearline::color -char clearline::color#0 // reg byte x 1.6833333336666665E9 -void clrscr() -char clrscr::$0 // reg byte a 202.0 -char clrscr::$1 // zp[1]:135 40.4 -char clrscr::$2 // reg byte a 202.0 -char clrscr::$5 // reg byte a 2002.0 -char clrscr::$6 // reg byte a 2002.0 -char clrscr::$7 // reg byte a 2002.0 -char clrscr::$9 // reg byte a 202.0 -char clrscr::c -char clrscr::c#1 // reg byte y 20002.0 -char clrscr::c#2 // reg byte y 7500.75 -char *clrscr::ch -char clrscr::color -char clrscr::color#0 // color zp[1]:135 594.2352941176471 -char clrscr::l -char clrscr::l#1 // reg byte x 2002.0 -char clrscr::l#2 // reg byte x 200.2 -char *clrscr::line_text -char *clrscr::line_text#0 // line_text zp[2]:112 18.363636363636363 -char *clrscr::line_text#1 // line_text zp[2]:112 1001.0 -char *clrscr::line_text#2 // line_text zp[2]:112 293.2142857142857 -__constant char conio_cursor_x[2] = { 0, 0 } -__constant char conio_cursor_y[2] = { 0, 0 } -__loadstore unsigned int conio_height // zp[2]:51 5624.185393258427 -__constant unsigned int conio_line_text[2] = { 0, 0 } -__loadstore char conio_rowshift // zp[1]:45 5126904.086294416 -__loadstore unsigned int conio_rowskip // zp[2]:46 4902456.401960785 -__loadstore volatile char conio_screen_height // zp[1]:49 62827.3664921466 -__loadstore char conio_screen_layer // zp[1]:48 1240329.689530686 -__loadstore volatile char conio_screen_width // zp[1]:36 4.414101324229074E7 -__constant char conio_scroll_enable[2] = { 1, 1 } -__loadstore unsigned int conio_width // zp[2]:165 111.69444444444444 -void conio_x16_init() -__constant char * const conio_x16_init::BASIC_CURSOR_LINE = (char *) 214 -char conio_x16_init::line -char conio_x16_init::line#0 // line zp[1]:168 2.1999999999999997 -char conio_x16_init::line#1 // line zp[1]:168 22.0 -char conio_x16_init::line#3 // line zp[1]:168 33.0 -__stackcall void cputc(char c) -char cputc::$15 // reg byte a 20002.0 -unsigned int cputc::$16 // zp[2]:41 20002.0 -char cputc::$2 // reg byte a 20002.0 -char cputc::$4 // reg byte a 20002.0 -char cputc::$5 // reg byte a 20002.0 -char cputc::$6 // reg byte a 20002.0 -__constant char cputc::OFFSET_STACK_C = 0 -char cputc::c -char cputc::c#0 // c zp[1]:105 1764.8823529411764 -char cputc::color -char cputc::color#0 // reg byte x 1428.7142857142858 -char *cputc::conio_addr -char *cputc::conio_addr#0 // conio_addr zp[2]:30 10001.0 -char *cputc::conio_addr#1 // conio_addr zp[2]:30 6000.6 -char cputc::scroll_enable -char cputc::scroll_enable#0 // reg byte a 20002.0 -void cputln() -char cputln::$2 // reg byte a 200002.0 -char cputln::$3 // reg byte a 200002.0 -unsigned int cputln::temp -unsigned int cputln::temp#0 // temp zp[2]:6 200002.0 -unsigned int cputln::temp#1 // temp zp[2]:6 100001.0 -void cscroll() -unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) -char divr16u::$1 // reg byte a 2000002.0 -char divr16u::$2 // reg byte a 2000002.0 -unsigned int divr16u::dividend -unsigned int divr16u::dividend#0 // dividend zp[2]:2 250000.25 -unsigned int divr16u::dividend#1 // dividend zp[2]:2 3667.333333333333 -unsigned int divr16u::dividend#2 // dividend zp[2]:2 430000.57142857136 -unsigned int divr16u::divisor -unsigned int divr16u::divisor#0 // divisor zp[2]:30 117706.05882352941 -char divr16u::i -char divr16u::i#1 // reg byte x 1500001.5 -char divr16u::i#2 // reg byte x 153846.3076923077 -unsigned int divr16u::quotient -unsigned int divr16u::quotient#1 // quotient zp[2]:39 1500001.5 -unsigned int divr16u::quotient#2 // quotient zp[2]:39 1000001.0 -unsigned int divr16u::quotient#3 // quotient zp[2]:39 250000.25 -unsigned int divr16u::rem -unsigned int divr16u::rem#0 // rem zp[2]:34 750000.75 -unsigned int divr16u::rem#1 // rem zp[2]:34 2000002.0 -unsigned int divr16u::rem#10 // rem zp[2]:34 1003334.6666666666 -unsigned int divr16u::rem#2 // rem zp[2]:34 2000002.0 -unsigned int divr16u::rem#4 // rem zp[2]:34 2000002.0 -unsigned int divr16u::rem#5 // rem zp[2]:34 1000001.0 -unsigned int divr16u::return -unsigned int divr16u::return#0 // return zp[2]:39 1000001.0 -void gotoxy(char x , char y) -char gotoxy::$5 // reg byte a 2.0000002E7 -unsigned int gotoxy::$6 // zp[2]:37 2.0000002E7 -unsigned int gotoxy::line_offset -unsigned int gotoxy::line_offset#0 // line_offset zp[2]:37 1.0000001E7 -char gotoxy::x -char gotoxy::y -char gotoxy::y#1 // reg byte x 22.0 -char gotoxy::y#10 // reg byte x 4000000.4 -char gotoxy::y#2 // reg byte x 2000002.0 -char gotoxy::y#7 // reg byte x 7000004.666666666 -__constant unsigned int hdeltas[$10] = { 0, $50, $28, $14, 0, $a0, $50, $28, 0, $140, $a0, $50, 0, $280, $140, $a0 } -void insertup() -char insertup::$3 // reg byte a 2.000000002E9 -char insertup::cy -char insertup::cy#0 // cy zp[1]:33 7.769230784615384E7 -char insertup::i -char insertup::i#1 // reg byte x 2.000000002E9 -char insertup::i#2 // reg byte x 4.000000004E8 -unsigned int insertup::line -unsigned int insertup::line#0 // line zp[2]:10 2.000000002E9 -char *insertup::start -char *insertup::start#0 // start zp[2]:10 1.000000001E9 -char insertup::width -char insertup::width#0 // width zp[1]:32 8.416666683333334E7 -char kbhit() -__constant char * const kbhit::GETIN = (char *) 65508 -__constant char * const kbhit::IN_DEV = (char *) 650 -__loadstore volatile char kbhit::ch // zp[1]:50 10001.0 -__constant char * const kbhit::chptr = &kbhit::ch -char kbhit::return -char kbhit::return#0 // reg byte a 20002.0 -char kbhit::return#1 // reg byte a 2775.75 -char kbhit::return#2 // reg byte a 202.0 -char kbhit::return#3 // reg byte a 2002.0 -void main() -char main::$30 // reg byte a 202.0 -unsigned int main::$40 // zp[2]:110 202.0 -char main::$43 // reg byte a 2002.0 -char main::bgcolor1_color -char main::bgcolor2_color -char main::bgcolor3_color -char main::color -char main::color#1 // color zp[1]:126 525.75 -char main::color#2 // color zp[1]:126 344.8888888888889 -__constant char main::s[$16] = "vera in bitmap mode, -" -__constant char main::s1[$1f] = "color depth 8 bits per pixel. -" -__constant char main::s2[$29] = "in this mode, it is possible to display -" -__constant char main::s3[$19] = "graphics in 256 colors. -" -__constant char main::s4[$10] = "press a key ..." -__constant char main::s5[$27] = "here you see all the colors possible. -" -char main::textcolor1_color -char main::textcolor2_color -char main::textcolor3_color -char main::textcolor4_color -char main::textcolor5_color -char main::vera_layer_show1_layer -unsigned int main::x -unsigned int main::x#1 // x zp[2]:120 701.0 -unsigned int main::x#3 // x zp[2]:120 310.4 -void memcpy_in_vram(char dest_bank , void *dest , char dest_increment , char src_bank , void *src , char src_increment , unsigned int num) -char memcpy_in_vram::$0 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$1 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$3 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$4 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$5 // reg byte a 2.0000000002E10 -void *memcpy_in_vram::dest -void *memcpy_in_vram::dest#0 // dest zp[2]:10 6.666666673333334E8 -void *memcpy_in_vram::dest#2 // dest zp[2]:10 2.1000000003000002E9 -char memcpy_in_vram::dest_bank -char memcpy_in_vram::dest_bank#2 // reg byte y 8.333333334166666E8 -char memcpy_in_vram::dest_increment -unsigned int memcpy_in_vram::i -unsigned int memcpy_in_vram::i#1 // i zp[2]:2 2.00000000002E11 -unsigned int memcpy_in_vram::i#2 // i zp[2]:2 1.00000000001E11 -unsigned int memcpy_in_vram::num -unsigned int memcpy_in_vram::num#0 // num zp[2]:8 1.000000001E9 -unsigned int memcpy_in_vram::num#3 // num zp[2]:8 5.611111111222221E9 -void *memcpy_in_vram::src -char *memcpy_in_vram::src#0 // src zp[2]:6 3.333333336666667E8 -void *memcpy_in_vram::src#2 // src zp[2]:6 5.25000000075E9 -void *memcpy_in_vram::src#3 // src zp[2]:6 2.000000002E9 -char memcpy_in_vram::src_bank -char memcpy_in_vram::src_increment -void memset_vram(char vbank , void *vdest , char data , unsigned long num) -char memset_vram::$0 // reg byte a 2002.0 -char memset_vram::$1 // reg byte a 2002.0 -char memset_vram::$2 // reg byte a 2002.0 -char memset_vram::data -__constant char memset_vram::data#0 = 0 // data -unsigned long memset_vram::i -unsigned long memset_vram::i#1 // i zp[4]:16 20002.0 -unsigned long memset_vram::i#2 // i zp[4]:16 10001.0 -unsigned long memset_vram::num -unsigned long memset_vram::num#0 // num zp[4]:114 841.8333333333333 -char memset_vram::vbank -char memset_vram::vbank#0 // reg byte x 137.75 -void *memset_vram::vdest -void *memset_vram::vdest#0 // vdest zp[2]:145 420.59999999999997 -unsigned int modr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) -unsigned int modr16u::dividend -unsigned int modr16u::dividend#0 // dividend zp[2]:2 202.0 -unsigned int modr16u::dividend#1 // dividend zp[2]:2 202.0 -unsigned int modr16u::dividend#2 // dividend zp[2]:2 202.0 -unsigned int modr16u::dividend#3 // dividend zp[2]:2 202.0 -unsigned int modr16u::dividend#4 // dividend zp[2]:2 1405.0 -unsigned int modr16u::divisor -unsigned int modr16u::divisor#4 // divisor zp[2]:143 500.5 -unsigned int modr16u::rem -unsigned int modr16u::return -unsigned int modr16u::return#0 // return zp[2]:118 234.16666666666669 -unsigned int modr16u::return#10 // return zp[2]:118 202.0 -unsigned int modr16u::return#2 // return zp[2]:118 202.0 -unsigned int modr16u::return#3 // return zp[2]:118 202.0 -unsigned int modr16u::return#4 // return zp[2]:118 202.0 -unsigned long mul16u(unsigned int a , unsigned int b) -char mul16u::$1 // reg byte a 20002.0 -unsigned int mul16u::a -unsigned int mul16u::a#0 // a zp[2]:2 367.33333333333337 -unsigned int mul16u::a#1 // a zp[2]:2 10001.0 -unsigned int mul16u::a#2 // a zp[2]:2 6834.166666666666 -unsigned int mul16u::b -unsigned int mul16u::b#0 // b zp[2]:161 101.0 -unsigned long mul16u::mb -unsigned long mul16u::mb#0 // mb zp[4]:26 2002.0 -unsigned long mul16u::mb#1 // mb zp[4]:26 20002.0 -unsigned long mul16u::mb#2 // mb zp[4]:26 4429.142857142857 -unsigned long mul16u::res -unsigned long mul16u::res#1 // res zp[4]:16 20002.0 -unsigned long mul16u::res#2 // res zp[4]:16 5017.333333333333 -unsigned long mul16u::res#6 // res zp[4]:16 10001.0 -unsigned long mul16u::return -unsigned long mul16u::return#0 // return zp[4]:114 202.0 -void printf_str(void (*putc)(char) , const char *s) -char printf_str::c -char printf_str::c#1 // reg byte a 1001.0 -void (*printf_str::putc)(char) -const char *printf_str::s -const char *printf_str::s#0 // s zp[2]:77 400.4 -const char *printf_str::s#8 // s zp[2]:77 1552.0 -const char *printf_str::s#9 // s zp[2]:77 101.0 -unsigned int rand() -unsigned int rand::$0 // zp[2]:97 2002.0 -unsigned int rand::$1 // zp[2]:99 2002.0 -unsigned int rand::$2 // zp[2]:101 2002.0 -unsigned int rand::return -unsigned int rand::return#0 // return zp[2]:110 215.14285714285714 -unsigned int rand::return#10 // return zp[2]:110 202.0 -unsigned int rand::return#11 // return zp[2]:110 202.0 -unsigned int rand::return#12 // return zp[2]:110 202.0 -unsigned int rand::return#2 // return zp[2]:110 202.0 -unsigned int rand::return#3 // return zp[2]:110 202.0 -unsigned int rand_state -unsigned int rand_state#0 // rand_state zp[2]:53 1501.5 -unsigned int rand_state#1 // rand_state zp[2]:53 1501.5 -unsigned int rand_state#13 // rand_state zp[2]:53 1253.5 -unsigned int rand_state#14 // rand_state zp[2]:53 78.34375 -unsigned int rand_state#23 // rand_state zp[2]:53 33.666666666666664 -unsigned int rem16u -unsigned int rem16u#0 // rem16u zp[2]:65 3667.333333333333 -void screenlayer(char layer) -unsigned int screenlayer::$2 // zp[2]:137 202.0 -char screenlayer::$3 // reg byte a 202.0 -unsigned int screenlayer::$4 // zp[2]:127 202.0 -unsigned int screenlayer::$5 // zp[2]:139 202.0 -char screenlayer::layer -char screenlayer::vera_layer_get_height1_$0 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$1 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$2 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$3 // reg byte a 202.0 -char *screenlayer::vera_layer_get_height1_config -char *screenlayer::vera_layer_get_height1_config#0 // vera_layer_get_height1_config zp[2]:153 202.0 -char screenlayer::vera_layer_get_height1_layer -char screenlayer::vera_layer_get_height1_layer#0 // reg byte a 202.0 -unsigned int screenlayer::vera_layer_get_height1_return -unsigned int screenlayer::vera_layer_get_height1_return#0 // vera_layer_get_height1_return zp[2]:139 202.0 -unsigned int screenlayer::vera_layer_get_height1_return#1 // vera_layer_get_height1_return zp[2]:139 202.0 -char screenlayer::vera_layer_get_width1_$0 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$1 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$2 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$3 // reg byte a 202.0 -char *screenlayer::vera_layer_get_width1_config -char *screenlayer::vera_layer_get_width1_config#0 // vera_layer_get_width1_config zp[2]:151 202.0 -char screenlayer::vera_layer_get_width1_layer -char screenlayer::vera_layer_get_width1_layer#0 // reg byte a 202.0 -unsigned int screenlayer::vera_layer_get_width1_return -unsigned int screenlayer::vera_layer_get_width1_return#0 // vera_layer_get_width1_return zp[2]:137 202.0 -unsigned int screenlayer::vera_layer_get_width1_return#1 // vera_layer_get_width1_return zp[2]:137 202.0 -void screensize(char *x , char *y) -char screensize::$1 // reg byte a 202.0 -char screensize::$3 // reg byte a 202.0 -char screensize::hscale -char screensize::hscale#0 // reg byte a 202.0 -char screensize::vscale -char screensize::vscale#0 // reg byte a 202.0 -char *screensize::x -__constant char *screensize::x#0 = &conio_screen_width // x -char *screensize::y -__constant char *screensize::y#0 = &conio_screen_height // y -__constant const unsigned int vdeltas[4] = { 0, $1e0, $f0, $a0 } -char vera_display_get_hscale() -__constant char vera_display_get_hscale::hscale[4] = { 0, $80, $40, $20 } -char vera_display_get_hscale::return -char vera_display_get_hscale::return#0 // reg byte x 3367.333333333333 -char vera_display_get_hscale::return#2 // reg byte x 202.0 -char vera_display_get_hscale::s -char vera_display_get_hscale::s#1 // reg byte x 15001.5 -char vera_display_get_hscale::s#2 // reg byte x 20002.0 -char vera_display_get_hscale::scale -__constant char vera_display_get_hscale::scale#0 = 0 // scale -char vera_display_get_vscale() -char vera_display_get_vscale::return -char vera_display_get_vscale::return#0 // reg byte x 3367.333333333333 -char vera_display_get_vscale::return#2 // reg byte x 202.0 -char vera_display_get_vscale::s -char vera_display_get_vscale::s#1 // reg byte x 15001.5 -char vera_display_get_vscale::s#2 // reg byte x 20002.0 -char vera_display_get_vscale::scale -__constant char vera_display_get_vscale::scale#0 = 0 // scale -__constant char vera_display_get_vscale::vscale[4] = { 0, $80, $40, $20 } -__constant char vera_layer_backcolor[2] = { BLUE, BLUE } -__constant char *vera_layer_config[2] = { VERA_L0_CONFIG, VERA_L1_CONFIG } -__constant char vera_layer_enable[2] = { VERA_LAYER0_ENABLE, VERA_LAYER1_ENABLE } -char vera_layer_get_backcolor(char layer) -char vera_layer_get_backcolor::layer -char vera_layer_get_backcolor::layer#0 // reg byte x 1102.0 -char vera_layer_get_backcolor::return -char vera_layer_get_backcolor::return#0 // reg byte a 202.0 -char vera_layer_get_backcolor::return#1 // reg byte a 367.33333333333337 -char vera_layer_get_color(char layer) -char vera_layer_get_color::$0 // reg byte a 2.000000002E9 -char vera_layer_get_color::$1 // reg byte a 2.000000002E9 -char vera_layer_get_color::$3 // reg byte a 2.000000002E9 -char *vera_layer_get_color::addr -char *vera_layer_get_color::addr#0 // addr zp[2]:6 2.000000002E9 -char vera_layer_get_color::layer -char vera_layer_get_color::layer#0 // reg byte x 20002.0 -char vera_layer_get_color::layer#1 // reg byte x 2.00000002E8 -char vera_layer_get_color::layer#2 // reg byte x 6.833350010000001E8 -char vera_layer_get_color::return -char vera_layer_get_color::return#0 // reg byte a 20002.0 -char vera_layer_get_color::return#1 // reg byte a 2.000000002E9 -char vera_layer_get_color::return#2 // reg byte a 2.000000002E9 -char vera_layer_get_color::return#3 // reg byte a 5.25002501E8 -char vera_layer_get_color::return#4 // reg byte a 2.00000002E8 -char vera_layer_get_mapbase_bank(char layer) -char vera_layer_get_mapbase_bank::layer -char vera_layer_get_mapbase_bank::layer#0 // reg byte x 1102.0 -char vera_layer_get_mapbase_bank::return -char vera_layer_get_mapbase_bank::return#0 // reg byte a 367.33333333333337 -char vera_layer_get_mapbase_bank::return#2 // reg byte a 202.0 -unsigned int vera_layer_get_mapbase_offset(char layer) -char vera_layer_get_mapbase_offset::$0 // reg byte a 2002.0 -char vera_layer_get_mapbase_offset::layer -char vera_layer_get_mapbase_offset::layer#0 // reg byte a 1102.0 -unsigned int vera_layer_get_mapbase_offset::return -unsigned int vera_layer_get_mapbase_offset::return#0 // return zp[2]:141 367.33333333333337 -unsigned int vera_layer_get_mapbase_offset::return#2 // return zp[2]:141 202.0 -char vera_layer_get_rowshift(char layer) -char vera_layer_get_rowshift::layer -char vera_layer_get_rowshift::layer#0 // reg byte x 1102.0 -char vera_layer_get_rowshift::return -char vera_layer_get_rowshift::return#0 // reg byte a 367.33333333333337 -char vera_layer_get_rowshift::return#2 // reg byte a 202.0 -unsigned int vera_layer_get_rowskip(char layer) -char vera_layer_get_rowskip::$0 // reg byte a 2002.0 -char vera_layer_get_rowskip::layer -char vera_layer_get_rowskip::layer#0 // reg byte a 1102.0 -unsigned int vera_layer_get_rowskip::return -unsigned int vera_layer_get_rowskip::return#0 // return zp[2]:127 367.33333333333337 -unsigned int vera_layer_get_rowskip::return#2 // return zp[2]:127 202.0 -char vera_layer_get_textcolor(char layer) -char vera_layer_get_textcolor::layer -char vera_layer_get_textcolor::layer#0 // reg byte x 1102.0 -char vera_layer_get_textcolor::return -char vera_layer_get_textcolor::return#0 // reg byte a 202.0 -char vera_layer_get_textcolor::return#1 // reg byte a 367.33333333333337 -__constant char *vera_layer_mapbase[2] = { VERA_L0_MAPBASE, VERA_L1_MAPBASE } -void vera_layer_mode_bitmap(char layer , unsigned long bitmap_address , unsigned int mapwidth , unsigned int color_depth) -unsigned long vera_layer_mode_bitmap::bitmap_address -__constant unsigned long vera_layer_mode_bitmap::bitmap_address#1 = 0 // bitmap_address -unsigned int vera_layer_mode_bitmap::color_depth -char vera_layer_mode_bitmap::config -__constant char vera_layer_mode_bitmap::config#11 = VERA_LAYER_COLOR_DEPTH_8BPP|VERA_LAYER_CONFIG_MODE_BITMAP // config -char vera_layer_mode_bitmap::layer -__constant char vera_layer_mode_bitmap::layer#0 = 0 // layer -unsigned int vera_layer_mode_bitmap::mapwidth -char vera_layer_mode_bitmap::tilebase -__constant char vera_layer_mode_bitmap::tilebase#1 = 0 // tilebase -void vera_layer_mode_text(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , unsigned int color_mode) -unsigned int vera_layer_mode_text::color_mode -char vera_layer_mode_text::layer -__constant char vera_layer_mode_text::layer#0 = 1 // layer -unsigned long vera_layer_mode_text::mapbase_address -__constant unsigned long vera_layer_mode_text::mapbase_address#0 = 0 // mapbase_address -unsigned int vera_layer_mode_text::mapheight -__constant unsigned int vera_layer_mode_text::mapheight#0 = $40 // mapheight -unsigned int vera_layer_mode_text::mapwidth -__constant unsigned int vera_layer_mode_text::mapwidth#0 = $80 // mapwidth -unsigned long vera_layer_mode_text::tilebase_address -__constant unsigned long vera_layer_mode_text::tilebase_address#0 = $f800 // tilebase_address -char vera_layer_mode_text::tileheight -__constant char vera_layer_mode_text::tileheight#0 = 8 // tileheight -char vera_layer_mode_text::tilewidth -__constant char vera_layer_mode_text::tilewidth#0 = 8 // tilewidth -void vera_layer_mode_tile(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , char color_depth) -unsigned int vera_layer_mode_tile::$1 // zp[2]:124 1001.0 -char vera_layer_mode_tile::$11 // reg byte a 2002.0 -char vera_layer_mode_tile::$12 // reg byte a 2002.0 -char vera_layer_mode_tile::$13 // reg byte a 2002.0 -char vera_layer_mode_tile::$14 // reg byte a 2002.0 -char vera_layer_mode_tile::$17 // zp[1]:149 250.25 -char vera_layer_mode_tile::$18 // zp[1]:147 273.0 -char vera_layer_mode_tile::$2 // reg byte a 2002.0 -unsigned int vera_layer_mode_tile::$6 // zp[2]:79 2002.0 -char vera_layer_mode_tile::$7 // reg byte a 2002.0 -char vera_layer_mode_tile::color_depth -char vera_layer_mode_tile::config -char vera_layer_mode_tile::config#10 // reg byte x 2002.0 -char vera_layer_mode_tile::config#11 // reg byte x 2002.0 -char vera_layer_mode_tile::config#12 // reg byte x 2002.0 -char vera_layer_mode_tile::config#21 // reg byte x 1001.0 -char vera_layer_mode_tile::config#25 // reg byte x 3003.0 -char vera_layer_mode_tile::layer -char vera_layer_mode_tile::layer#10 // layer zp[1]:148 263.4210526315791 -char vera_layer_mode_tile::mapbase -char vera_layer_mode_tile::mapbase#0 // reg byte x 1001.0 -unsigned long vera_layer_mode_tile::mapbase_address -unsigned long vera_layer_mode_tile::mapbase_address#0 // mapbase_address zp[4]:67 2002.0 -unsigned long vera_layer_mode_tile::mapbase_address#10 // mapbase_address zp[4]:67 111.22222222222223 -unsigned int vera_layer_mode_tile::mapheight -unsigned int vera_layer_mode_tile::mapheight#10 // mapheight zp[2]:159 190.66666666666666 -unsigned int vera_layer_mode_tile::mapwidth -unsigned int vera_layer_mode_tile::mapwidth#10 // mapwidth zp[2]:122 1001.0 -char vera_layer_mode_tile::tilebase -char vera_layer_mode_tile::tilebase#0 // reg byte a 2002.0 -char vera_layer_mode_tile::tilebase#1 // reg byte x 1334.6666666666667 -char vera_layer_mode_tile::tilebase#10 // reg byte x 2002.0 -char vera_layer_mode_tile::tilebase#12 // reg byte x 2002.0000000000002 -char vera_layer_mode_tile::tilebase#3 // reg byte x 2002.0 -char vera_layer_mode_tile::tilebase#5 // reg byte x 2002.0 -unsigned long vera_layer_mode_tile::tilebase_address -unsigned long vera_layer_mode_tile::tilebase_address#0 // tilebase_address zp[4]:73 2002.0 -unsigned long vera_layer_mode_tile::tilebase_address#10 // tilebase_address zp[4]:73 87.04347826086956 -char vera_layer_mode_tile::tileheight -char vera_layer_mode_tile::tileheight#10 // tileheight zp[1]:170 37.074074074074076 -char vera_layer_mode_tile::tilewidth -char vera_layer_mode_tile::tilewidth#10 // tilewidth zp[1]:169 40.04 -__constant char vera_layer_rowshift[2] = { 0, 0 } -__constant unsigned int vera_layer_rowskip[2] = { 0, 0 } -char vera_layer_set_backcolor(char layer , char color) -char vera_layer_set_backcolor::color -char vera_layer_set_backcolor::color#4 // reg byte a 101.0 -char vera_layer_set_backcolor::layer -char vera_layer_set_backcolor::layer#1 // reg byte x 22.0 -char vera_layer_set_backcolor::layer#2 // reg byte x 22.0 -char vera_layer_set_backcolor::layer#3 // reg byte x 22.0 -char vera_layer_set_backcolor::layer#4 // reg byte x 134.0 -char vera_layer_set_backcolor::old -char vera_layer_set_backcolor::return -void vera_layer_set_config(char layer , char config) -char vera_layer_set_config::$0 // reg byte a 20002.0 -char *vera_layer_set_config::addr -char *vera_layer_set_config::addr#0 // addr zp[2]:37 20002.0 -char vera_layer_set_config::config -char vera_layer_set_config::config#0 // reg byte x 2002.0 -char vera_layer_set_config::config#2 // reg byte x 3667.333333333333 -char vera_layer_set_config::layer -char vera_layer_set_config::layer#0 // reg byte a 1001.0 -char vera_layer_set_config::layer#2 // reg byte a 11002.0 -void vera_layer_set_mapbase(char layer , char mapbase) -char vera_layer_set_mapbase::$0 // reg byte a 20002.0 -char *vera_layer_set_mapbase::addr -char *vera_layer_set_mapbase::addr#0 // addr zp[2]:37 20002.0 -char vera_layer_set_mapbase::layer -char vera_layer_set_mapbase::layer#0 // reg byte a 1001.0 -char vera_layer_set_mapbase::layer#3 // reg byte a 11002.0 -char vera_layer_set_mapbase::mapbase -char vera_layer_set_mapbase::mapbase#0 // reg byte x 2002.0 -char vera_layer_set_mapbase::mapbase#3 // reg byte x 3667.333333333333 -void vera_layer_set_text_color_mode(char layer , char color_mode) -char *vera_layer_set_text_color_mode::addr -char *vera_layer_set_text_color_mode::addr#0 // addr zp[2]:37 2502.5 -char vera_layer_set_text_color_mode::color_mode -char vera_layer_set_text_color_mode::layer -char vera_layer_set_textcolor(char layer , char color) -char vera_layer_set_textcolor::color -char vera_layer_set_textcolor::color#6 // reg byte a 101.0 -char vera_layer_set_textcolor::layer -char vera_layer_set_textcolor::layer#1 // reg byte x 22.0 -char vera_layer_set_textcolor::layer#2 // reg byte x 22.0 -char vera_layer_set_textcolor::layer#3 // reg byte x 22.0 -char vera_layer_set_textcolor::layer#4 // reg byte x 22.0 -char vera_layer_set_textcolor::layer#5 // reg byte x 22.0 -char vera_layer_set_textcolor::layer#6 // reg byte x 156.0 -char vera_layer_set_textcolor::old -char vera_layer_set_textcolor::return -void vera_layer_set_tilebase(char layer , char tilebase) -char vera_layer_set_tilebase::$0 // reg byte a 20002.0 -char *vera_layer_set_tilebase::addr -char *vera_layer_set_tilebase::addr#0 // addr zp[2]:37 20002.0 -char vera_layer_set_tilebase::layer -char vera_layer_set_tilebase::layer#0 // reg byte a 1001.0 -char vera_layer_set_tilebase::layer#2 // reg byte a 11002.0 -char vera_layer_set_tilebase::tilebase -char vera_layer_set_tilebase::tilebase#0 // reg byte x 2002.0 -char vera_layer_set_tilebase::tilebase#2 // reg byte x 3667.333333333333 -__constant char vera_layer_textcolor[2] = { WHITE, WHITE } -__constant char *vera_layer_tilebase[2] = { VERA_L0_TILEBASE, VERA_L1_TILEBASE } -__constant unsigned long vera_mapbase_address[2] = { 0, 0 } -__constant char vera_mapbase_bank[2] = { 0, 0 } -__constant unsigned int vera_mapbase_offset[2] = { 0, 0 } -__constant unsigned long vera_tilebase_address[2] = { 0, 0 } -__constant char vera_tilebase_bank[2] = { 0, 0 } -__constant unsigned int vera_tilebase_offset[2] = { 0, 0 } - -zp[1]:168 [ conio_x16_init::line#3 conio_x16_init::line#1 conio_x16_init::line#0 ] -zp[2]:43 [ CONIO_SCREEN_TEXT#12 ] -zp[1]:136 [ CONIO_SCREEN_BANK#12 ] -zp[2]:120 [ main::x#3 main::x#1 ] -zp[1]:126 [ main::color#2 main::color#1 ] -reg byte x [ vera_layer_set_textcolor::layer#6 vera_layer_set_textcolor::layer#1 vera_layer_set_textcolor::layer#2 vera_layer_set_textcolor::layer#3 vera_layer_set_textcolor::layer#4 vera_layer_set_textcolor::layer#5 ] -reg byte a [ vera_layer_set_textcolor::color#6 ] -reg byte x [ vera_layer_set_backcolor::layer#4 vera_layer_set_backcolor::layer#1 vera_layer_set_backcolor::layer#2 vera_layer_set_backcolor::layer#3 ] -reg byte a [ vera_layer_set_backcolor::color#4 ] -reg byte a [ vera_layer_set_mapbase::layer#3 vera_layer_set_mapbase::layer#0 ] -reg byte x [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::mapbase#0 ] -reg byte x [ gotoxy::y#10 gotoxy::y#7 gotoxy::y#1 gotoxy::y#2 ] -reg byte x [ vera_layer_get_color::layer#2 vera_layer_get_color::layer#1 vera_layer_get_color::layer#0 ] -reg byte a [ vera_layer_get_color::return#3 vera_layer_get_color::return#1 vera_layer_get_color::return#2 ] -reg byte y [ memcpy_in_vram::dest_bank#2 ] -zp[2]:122 [ vera_layer_mode_tile::mapwidth#10 ] -zp[1]:148 [ vera_layer_mode_tile::layer#10 ] -zp[2]:159 [ vera_layer_mode_tile::mapheight#10 ] -zp[4]:67 [ vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::mapbase_address#0 ] -zp[4]:73 [ vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilebase_address#0 ] -zp[1]:169 [ vera_layer_mode_tile::tilewidth#10 ] -zp[1]:170 [ vera_layer_mode_tile::tileheight#10 ] -reg byte x [ vera_layer_mode_tile::config#25 vera_layer_mode_tile::config#21 vera_layer_mode_tile::config#10 vera_layer_mode_tile::config#11 vera_layer_mode_tile::config#12 ] -reg byte x [ vera_layer_mode_tile::tilebase#10 vera_layer_mode_tile::tilebase#12 vera_layer_mode_tile::tilebase#1 vera_layer_mode_tile::tilebase#3 vera_layer_mode_tile::tilebase#5 ] -reg byte x [ clrscr::l#2 clrscr::l#1 ] -zp[2]:112 [ clrscr::line_text#2 clrscr::line_text#1 clrscr::line_text#0 ] -reg byte y [ clrscr::c#2 clrscr::c#1 ] -zp[2]:77 [ printf_str::s#8 printf_str::s#9 printf_str::s#0 ] -zp[2]:103 [ bitmap_init::x#10 bitmap_init::x#1 ] -zp[2]:71 [ bitmap_init::y#2 bitmap_init::y#1 ] -zp[4]:106 [ bitmap_init::yoffs#2 bitmap_init::yoffs#0 bitmap_init::yoffs#1 ] -zp[2]:10 [ bitmap_line::x1#10 bitmap_line::x1#0 bitmap_line::x1#1 memcpy_in_vram::dest#2 memcpy_in_vram::dest#0 insertup::start#0 insertup::line#0 ] -zp[2]:8 [ bitmap_line::y0#10 bitmap_line::y0#0 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::y1#0 bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 memcpy_in_vram::num#3 memcpy_in_vram::num#0 ] -reg byte x [ bitmap_line::c#10 bitmap_line::c#0 bitmap_line::c#1 ] -zp[2]:53 [ rand_state#13 rand_state#23 rand_state#14 rand_state#0 rand_state#1 ] -zp[2]:143 [ modr16u::divisor#4 ] -reg byte a [ vera_layer_set_config::layer#2 vera_layer_set_config::layer#0 ] -reg byte x [ vera_layer_set_config::config#2 vera_layer_set_config::config#0 ] -reg byte a [ vera_layer_set_tilebase::layer#2 vera_layer_set_tilebase::layer#0 ] -reg byte x [ vera_layer_set_tilebase::tilebase#2 vera_layer_set_tilebase::tilebase#0 ] -reg byte x [ vera_display_get_hscale::return#0 vera_display_get_hscale::s#2 vera_display_get_hscale::s#1 ] -reg byte x [ vera_display_get_vscale::return#0 vera_display_get_vscale::s#2 vera_display_get_vscale::s#1 ] -zp[2]:2 [ mul16u::a#2 mul16u::a#0 mul16u::a#1 modr16u::dividend#4 modr16u::dividend#0 modr16u::dividend#1 modr16u::dividend#2 modr16u::dividend#3 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 bitmap_line::y1#10 bitmap_line::y1#0 memcpy_in_vram::i#2 memcpy_in_vram::i#1 ] -zp[2]:24 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] -zp[2]:34 [ divr16u::rem#4 divr16u::rem#10 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::xd#0 bitmap_line::xd#2 bitmap_line::xd#1 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] -zp[2]:39 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::yd#0 bitmap_line::yd#2 bitmap_line::yd#11 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] -reg byte x [ divr16u::i#2 divr16u::i#1 ] -reg byte x [ insertup::i#2 insertup::i#1 ] -reg byte x [ bitmap_plot::c#0 bitmap_plot::$3 bitmap_plot::c#5 bitmap_plot::c#2 bitmap_plot::c#1 bitmap_plot::c#4 bitmap_plot::c#3 ] -zp[2]:4 [ clearline::c#2 clearline::c#1 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#2 bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ] -zp[1]:36 [ conio_screen_width ] -zp[1]:49 [ conio_screen_height ] -zp[1]:48 [ conio_screen_layer ] -zp[2]:165 [ conio_width ] -zp[2]:51 [ conio_height ] -zp[1]:45 [ conio_rowshift ] -zp[2]:46 [ conio_rowskip ] -zp[4]:172 [ __bitmap_address ] -zp[1]:150 [ __bitmap_layer ] -zp[1]:176 [ __bitmap_hscale ] -zp[1]:177 [ __bitmap_vscale ] -zp[1]:167 [ __bitmap_color_depth ] -zp[1]:105 [ cputc::c#0 ] -reg byte a [ vera_layer_get_color::return#0 ] -reg byte x [ cputc::color#0 ] -reg byte a [ cputc::$15 ] -reg byte a [ cputc::$2 ] -reg byte a [ cputc::$4 ] -reg byte a [ cputc::$5 ] -reg byte a [ cputc::$6 ] -reg byte a [ cputc::scroll_enable#0 ] -zp[2]:41 [ cputc::$16 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 bitmap_line::yd#1 bitmap_line::yd#10 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] -reg byte a [ kbhit::return#2 ] -reg byte a [ main::$30 ] -reg byte a [ kbhit::return#3 ] -reg byte a [ main::$43 ] -zp[2]:110 [ rand::return#2 rand::return#0 rand::return#3 rand::return#10 rand::return#11 rand::return#12 main::$40 ] -zp[2]:118 [ modr16u::return#2 modr16u::return#0 modr16u::return#3 modr16u::return#4 modr16u::return#10 ] -reg byte a [ screensize::hscale#0 ] -reg byte a [ screensize::$1 ] -reg byte a [ screensize::vscale#0 ] -reg byte a [ screensize::$3 ] -reg byte x [ vera_layer_get_mapbase_bank::layer#0 ] -reg byte a [ vera_layer_get_mapbase_bank::return#2 ] -zp[1]:171 [ CONIO_SCREEN_BANK#15 ] -reg byte a [ vera_layer_get_mapbase_offset::layer#0 ] -zp[2]:141 [ vera_layer_get_mapbase_offset::return#2 vera_layer_get_mapbase_offset::return#0 ] -zp[2]:178 [ CONIO_SCREEN_TEXT#17 ] -reg byte a [ screenlayer::vera_layer_get_width1_layer#0 ] -reg byte a [ screenlayer::vera_layer_get_width1_$2 ] -zp[2]:151 [ screenlayer::vera_layer_get_width1_config#0 ] -reg byte a [ screenlayer::vera_layer_get_width1_$0 ] -reg byte a [ screenlayer::vera_layer_get_width1_$1 ] -reg byte a [ screenlayer::vera_layer_get_width1_$3 ] -zp[2]:137 [ screenlayer::vera_layer_get_width1_return#0 screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 ] -reg byte x [ vera_layer_get_rowshift::layer#0 ] -reg byte a [ vera_layer_get_rowshift::return#2 ] -reg byte a [ screenlayer::$3 ] -reg byte a [ vera_layer_get_rowskip::layer#0 ] -zp[2]:127 [ vera_layer_get_rowskip::return#2 screenlayer::$4 vera_layer_get_rowskip::return#0 ] -reg byte a [ screenlayer::vera_layer_get_height1_layer#0 ] -reg byte a [ screenlayer::vera_layer_get_height1_$2 ] -zp[2]:153 [ screenlayer::vera_layer_get_height1_config#0 ] -reg byte a [ screenlayer::vera_layer_get_height1_$0 ] -reg byte a [ screenlayer::vera_layer_get_height1_$1 ] -reg byte a [ screenlayer::vera_layer_get_height1_$3 ] -zp[2]:139 [ screenlayer::vera_layer_get_height1_return#0 screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 ] -reg byte a [ vera_layer_set_mapbase::$0 ] -reg byte a [ gotoxy::$5 ] -reg byte a [ vera_layer_get_color::$3 ] -reg byte a [ vera_layer_get_color::$0 ] -reg byte a [ vera_layer_get_color::$1 ] -reg byte a [ cputln::$2 ] -zp[2]:6 [ cputln::temp#0 cputln::temp#1 vera_layer_get_color::addr#0 bitmap_line::x0#10 bitmap_line::x0#0 bitmap_line::x0#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 memcpy_in_vram::src#2 memcpy_in_vram::src#3 memcpy_in_vram::src#0 ] -reg byte a [ cputln::$3 ] -reg byte a [ memcpy_in_vram::$0 ] -reg byte a [ memcpy_in_vram::$1 ] -reg byte a [ memcpy_in_vram::$3 ] -reg byte a [ memcpy_in_vram::$4 ] -reg byte a [ memcpy_in_vram::$5 ] -reg byte a [ vera_layer_mode_tile::$14 ] -zp[2]:124 [ vera_layer_mode_tile::$1 ] -zp[1]:149 [ vera_layer_mode_tile::$17 ] -reg byte a [ vera_layer_mode_tile::$2 ] -zp[1]:147 [ vera_layer_mode_tile::$18 ] -reg byte x [ vera_layer_mode_tile::mapbase#0 ] -zp[2]:79 [ vera_layer_mode_tile::$6 ] -reg byte a [ vera_layer_mode_tile::$7 ] -reg byte a [ vera_layer_mode_tile::tilebase#0 ] -reg byte a [ vera_layer_mode_tile::$13 ] -reg byte a [ vera_layer_mode_tile::$12 ] -reg byte a [ vera_layer_mode_tile::$11 ] -reg byte x [ vera_layer_get_backcolor::layer#0 ] -reg byte a [ vera_layer_get_backcolor::return#0 ] -reg byte a [ clrscr::$0 ] -zp[1]:135 [ clrscr::$1 clrscr::color#0 ] -reg byte x [ vera_layer_get_textcolor::layer#0 ] -reg byte a [ vera_layer_get_textcolor::return#0 ] -reg byte a [ clrscr::$2 ] -reg byte a [ clrscr::$9 ] -reg byte a [ clrscr::$5 ] -reg byte a [ clrscr::$6 ] -reg byte a [ clrscr::$7 ] -reg byte a [ printf_str::c#1 ] -reg byte a [ bitmap_init::vera_layer_get_color_depth1_layer#0 ] -reg byte a [ bitmap_init::vera_layer_get_color_depth1_$1 ] -zp[2]:155 [ bitmap_init::vera_layer_get_color_depth1_config#0 ] -reg byte a [ bitmap_init::vera_layer_get_color_depth1_$0 ] -reg byte a [ bitmap_init::vera_layer_get_color_depth1_return#0 ] -reg byte a [ bitmap_init::vera_layer_get_color_depth1_return#1 ] -reg byte a [ bitmap_init::$0 ] -reg byte x [ vera_display_get_hscale::return#2 ] -reg byte x [ bitmap_init::$1 ] -reg byte x [ vera_display_get_vscale::return#2 ] -reg byte x [ bitmap_init::$2 ] -zp[2]:129 [ bitmap_init::$7 ] -zp[2]:55 [ bitmap_init::$23 bitmap_init::$29 ] -zp[2]:81 [ bitmap_init::$30 ] -zp[2]:83 [ bitmap_init::$31 ] -zp[2]:131 [ bitmap_init::$10 ] -zp[2]:57 [ bitmap_init::$24 bitmap_init::$32 ] -zp[2]:85 [ bitmap_init::$33 ] -zp[2]:87 [ bitmap_init::$34 ] -zp[2]:133 [ bitmap_init::$13 ] -zp[2]:59 [ bitmap_init::$25 bitmap_init::$35 ] -zp[2]:89 [ bitmap_init::$36 ] -zp[2]:91 [ bitmap_init::$37 ] -zp[2]:61 [ bitmap_init::$26 bitmap_init::$38 ] -zp[2]:93 [ bitmap_init::$39 ] -zp[2]:95 [ bitmap_init::$40 ] -reg byte a [ bitmap_init::$3 ] -reg byte a [ bitmap_init::$4 ] -reg byte a [ bitmap_init::$27 ] -zp[2]:163 [ bitmap_init::hdelta#0 ] -zp[2]:63 [ bitmap_init::$28 bitmap_init::$41 ] -reg byte a [ bitmap_clear::$6 ] -zp[2]:161 [ bitmap_clear::vdelta#0 mul16u::b#0 ] -reg byte a [ bitmap_clear::$0 ] -reg byte a [ bitmap_clear::$1 ] -reg byte a [ bitmap_clear::$7 ] -zp[2]:157 [ bitmap_clear::hdelta#0 ] -zp[4]:114 [ mul16u::return#0 bitmap_clear::count#0 memset_vram::num#0 ] -reg byte x [ bitmap_clear::vbank#0 ] -zp[2]:145 [ bitmap_clear::vdest#0 memset_vram::vdest#0 ] -reg byte x [ memset_vram::vbank#0 ] -zp[1]:50 [ kbhit::ch ] -reg byte a [ kbhit::return#0 ] -reg byte a [ kbhit::return#1 ] -zp[2]:97 [ rand::$0 ] -zp[2]:99 [ rand::$1 ] -zp[2]:101 [ rand::$2 ] -reg byte a [ vera_layer_get_mapbase_bank::return#0 ] -reg byte a [ vera_layer_get_mapbase_offset::$0 ] -reg byte a [ vera_layer_get_rowshift::return#0 ] -reg byte a [ vera_layer_get_rowskip::$0 ] -reg byte a [ vera_layer_set_config::$0 ] -reg byte a [ vera_layer_set_tilebase::$0 ] -zp[2]:37 [ vera_layer_set_tilebase::addr#0 vera_layer_set_config::addr#0 vera_layer_set_text_color_mode::addr#0 gotoxy::$6 gotoxy::line_offset#0 vera_layer_set_mapbase::addr#0 ] -reg byte a [ vera_layer_get_backcolor::return#1 ] -reg byte a [ vera_layer_get_textcolor::return#1 ] -reg byte a [ mul16u::$1 ] -reg byte a [ memset_vram::$0 ] -reg byte a [ memset_vram::$1 ] -reg byte a [ memset_vram::$2 ] -zp[2]:30 [ bitmap_line_ydxi::$6 divr16u::divisor#0 cputc::conio_addr#0 cputc::conio_addr#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] -reg byte a [ divr16u::$1 ] -reg byte a [ divr16u::$2 ] -zp[2]:65 [ rem16u#0 ] -zp[1]:33 [ insertup::cy#0 bitmap_line_xdyi::c#3 bitmap_line_xdyi::c#1 bitmap_line_xdyi::c#0 bitmap_init::bitmask#13 bitmap_init::bitmask#3 bitmap_init::bitmask#12 bitmap_init::bitmask#11 bitmap_init::bitmask#10 bitmap_init::bitmask#0 bitmap_init::bitmask#16 bitmap_init::bitmask#1 bitmap_init::bitmask#2 bitmap_init::bitmask#4 ] -zp[1]:32 [ insertup::width#0 bitmap_line_xdyd::c#3 bitmap_line_xdyd::c#1 bitmap_line_xdyd::c#0 bitmap_line_ydxd::c#3 bitmap_line_ydxd::c#0 bitmap_line_ydxd::c#1 bitmap_line_ydxi::c#3 bitmap_line_ydxi::c#1 bitmap_line_ydxi::c#0 bitmap_init::bitshift#13 bitmap_init::bitshift#3 bitmap_init::bitshift#12 bitmap_init::bitshift#11 bitmap_init::bitshift#10 bitmap_init::bitshift#0 bitmap_init::bitshift#14 bitmap_init::bitshift#1 bitmap_init::bitshift#2 bitmap_init::bitshift#4 ] -reg byte a [ insertup::$3 ] -zp[4]:26 [ bitmap_plot::plot_x#0 bitmap_plot::vera_vram_address01_bankaddr#0 mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] -zp[2]:12 [ bitmap_plot::$10 bitmap_plot::$13 ] -zp[4]:16 [ bitmap_plot::plot_y#0 memset_vram::i#2 memset_vram::i#1 mul16u::res#2 mul16u::res#6 mul16u::res#1 ] -zp[2]:20 [ bitmap_plot::$14 ] -reg byte a [ bitmap_plot::bitshift#0 ] -reg byte a [ bitmap_plot::vera_vram_address01_$0 ] -reg byte a [ bitmap_plot::vera_vram_address01_$1 ] -reg byte a [ bitmap_plot::vera_vram_address01_$3 ] -zp[2]:22 [ bitmap_plot::$15 ] -reg byte a [ bitmap_plot::$6 ] -reg byte a [ bitmap_plot::$7 ] -reg byte a [ bitmap_plot::$8 ] -reg byte a [ clearline::$5 ] -zp[2]:14 [ clearline::addr#0 bitmap_line_xdyd::$6 bitmap_line_ydxd::$6 bitmap_line_xdyi::$6 bitmap_plot::$9 bitmap_plot::$12 ] -reg byte a [ clearline::$1 ] -reg byte a [ clearline::$2 ] -reg byte a [ vera_layer_get_color::return#4 ] -reg byte x [ clearline::color#0 ] 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 deleted file mode 100644 index ee6e879c3..000000000 --- a/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.asm +++ /dev/null @@ -1,2339 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA tile map modes and layering. -.cpu _65c02 - // Commodore 64 PRG executable file -.file [name="tilemap_8bpp_16_x_16.prg", type="prg", segments="Program"] -.segmentdef Program [segments="Basic, Code, Data"] -.segmentdef Basic [start=$0801] -.segmentdef Code [start=$80d] -.segmentdef Data [startAfter="Code"] -.segment Basic -:BasicUpstart(__start) - /// The colors of the CX16 - .const BLACK = 0 - .const WHITE = 1 - .const BLUE = 6 - .const VERA_INC_1 = $10 - .const VERA_ADDRSEL = 1 - .const VERA_LAYER1_ENABLE = $20 - .const VERA_LAYER0_ENABLE = $10 - .const VERA_LAYER_WIDTH_64 = $10 - .const VERA_LAYER_WIDTH_128 = $20 - .const VERA_LAYER_WIDTH_256 = $30 - .const VERA_LAYER_WIDTH_MASK = $30 - .const VERA_LAYER_HEIGHT_64 = $40 - .const VERA_LAYER_HEIGHT_128 = $80 - .const VERA_LAYER_HEIGHT_256 = $c0 - .const VERA_LAYER_HEIGHT_MASK = $c0 - /// Bit 0-1: Color Depth (0: 1 bpp, 1: 2 bpp, 2: 4 bpp, 3: 8 bpp) - .const VERA_LAYER_COLOR_DEPTH_1BPP = 0 - .const VERA_LAYER_COLOR_DEPTH_2BPP = 1 - .const VERA_LAYER_COLOR_DEPTH_4BPP = 2 - .const VERA_LAYER_COLOR_DEPTH_8BPP = 3 - .const VERA_LAYER_CONFIG_256C = 8 - .const VERA_TILEBASE_WIDTH_16 = 1 - .const VERA_TILEBASE_HEIGHT_16 = 2 - .const VERA_LAYER_TILEBASE_MASK = $fc - .const SIZEOF_POINTER = 2 - .const STACK_BASE = $103 - /// $9F20 VRAM Address (7:0) - .label VERA_ADDRX_L = $9f20 - /// $9F21 VRAM Address (15:8) - .label VERA_ADDRX_M = $9f21 - /// $9F22 VRAM Address (7:0) - /// Bit 4-7: Address Increment The following is the amount incremented per value value:increment - /// 0:0, 1:1, 2:2, 3:4, 4:8, 5:16, 6:32, 7:64, 8:128, 9:256, 10:512, 11:40, 12:80, 13:160, 14:320, 15:640 - /// Bit 3: DECR Setting the DECR bit, will decrement instead of increment by the value set by the 'Address Increment' field. - /// Bit 0: VRAM Address (16) - .label VERA_ADDRX_H = $9f22 - /// $9F23 DATA0 VRAM Data port 0 - .label VERA_DATA0 = $9f23 - /// $9F24 DATA1 VRAM Data port 1 - .label VERA_DATA1 = $9f24 - /// $9F25 CTRL Control - /// Bit 7: Reset - /// Bit 1: DCSEL - /// Bit 2: ADDRSEL - .label VERA_CTRL = $9f25 - /// $9F29 DC_VIDEO (DCSEL=0) - /// Bit 7: Current Field Read-only bit which reflects the active interlaced field in composite and RGB modes. (0: even, 1: odd) - /// Bit 6: Sprites Enable Enable output from the Sprites renderer - /// Bit 5: Layer1 Enable Enable output from the Layer1 renderer - /// Bit 4: Layer0 Enable Enable output from the Layer0 renderer - /// Bit 2: Chroma Disable Setting 'Chroma Disable' disables output of chroma in NTSC composite mode and will give a better picture on a monochrome display. (Setting this bit will also disable the chroma output on the S-video output.) - /// Bit 0-1: Output Mode 0: Video disabled, 1: VGA output, 2: NTSC composite, 3: RGB interlaced, composite sync (via VGA connector) - .label VERA_DC_VIDEO = $9f29 - /// $9F2A DC_HSCALE (DCSEL=0) Active Display H-Scale - .label VERA_DC_HSCALE = $9f2a - /// $9F2B DC_VSCALE (DCSEL=0) Active Display V-Scale - .label VERA_DC_VSCALE = $9f2b - /// $9F2D L0_CONFIG Layer 0 Configuration - .label VERA_L0_CONFIG = $9f2d - /// $9F2E L0_MAPBASE Layer 0 Map Base Address (16:9) - .label VERA_L0_MAPBASE = $9f2e - /// Bit 0: Tile Width (0:8 pixels, 1:16 pixels) - .label VERA_L0_TILEBASE = $9f2f - /// $9F34 L1_CONFIG Layer 1 Configuration - .label VERA_L1_CONFIG = $9f34 - /// $9F35 L1_MAPBASE Layer 1 Map Base Address (16:9) - .label VERA_L1_MAPBASE = $9f35 - /// $9F36 L1_TILEBASE Layer 1 Tile Base - /// Bit 2-7: Tile Base Address (16:11) - /// Bit 1: Tile Height (0:8 pixels, 1:16 pixels) - /// Bit 0: Tile Width (0:8 pixels, 1:16 pixels) - .label VERA_L1_TILEBASE = $9f36 - // Variable holding the screen width; - .label conio_screen_width = $f - // Variable holding the screen height; - .label conio_screen_height = $21 - // Variable holding the screen layer on the VERA card with which conio interacts; - .label conio_screen_layer = $1d - // Variables holding the current map width and map height of the layer. - .label conio_width = $46 - .label conio_height = $26 - .label conio_rowshift = $18 - .label conio_rowskip = $19 - // The screen width - // The screen height - // The text screen base address, which is a 16:0 bit value in VERA VRAM. - // That is 128KB addressable space, thus 17 bits in total. - // CONIO_SCREEN_TEXT contains bits 15:0 of the address. - // CONIO_SCREEN_BANK contains bit 16, the the 64K memory bank in VERA VRAM (the upper 17th bit). - // !!! note that these values are not const for the cx16! - // This conio implements the two layers of VERA, which can be layer 0 or layer 1. - // Configuring conio to output to a different layer, will change these fields to the address base - // configured using VERA_L0_MAPBASE = 0x9f2e or VERA_L1_MAPBASE = 0x9f35. - // Using the function setscreenlayer(layer) will re-calculate using CONIO_SCREEN_TEXT and CONIO_SCREEN_BASE - // based on the values of VERA_L0_MAPBASE or VERA_L1_MAPBASE, mapping the base address of the selected layer. - // The function setscreenlayermapbase(layer,mapbase) allows to configure bit 16:9 of the - // mapbase address of the time map in VRAM of the selected layer VERA_L0_MAPBASE or VERA_L1_MAPBASE. - .label CONIO_SCREEN_TEXT = $12 - .label CONIO_SCREEN_BANK = $39 - // The screen width - // The screen height - // The text screen base address, which is a 16:0 bit value in VERA VRAM. - // That is 128KB addressable space, thus 17 bits in total. - // CONIO_SCREEN_TEXT contains bits 15:0 of the address. - // CONIO_SCREEN_BANK contains bit 16, the the 64K memory bank in VERA VRAM (the upper 17th bit). - // !!! note that these values are not const for the cx16! - // This conio implements the two layers of VERA, which can be layer 0 or layer 1. - // Configuring conio to output to a different layer, will change these fields to the address base - // configured using VERA_L0_MAPBASE = 0x9f2e or VERA_L1_MAPBASE = 0x9f35. - // Using the function setscreenlayer(layer) will re-calculate using CONIO_SCREEN_TEXT and CONIO_SCREEN_BASE - // based on the values of VERA_L0_MAPBASE or VERA_L1_MAPBASE, mapping the base address of the selected layer. - // The function setscreenlayermapbase(layer,mapbase) allows to configure bit 16:9 of the - // mapbase address of the time map in VRAM of the selected layer VERA_L0_MAPBASE or VERA_L1_MAPBASE. - .label CONIO_SCREEN_TEXT_1 = $56 -.segment Code -__start: { - // __ma unsigned byte conio_screen_width = 0 - lda #0 - sta.z conio_screen_width - // __ma unsigned byte conio_screen_height = 0 - sta.z conio_screen_height - // __ma unsigned byte conio_screen_layer = 1 - lda #1 - sta.z conio_screen_layer - // __ma word conio_width = 0 - lda #<0 - sta.z conio_width - sta.z conio_width+1 - // __ma word conio_height = 0 - sta.z conio_height - sta.z conio_height+1 - // __ma byte conio_rowshift = 0 - sta.z conio_rowshift - // __ma word conio_rowskip = 0 - sta.z conio_rowskip - sta.z conio_rowskip+1 - // #pragma constructor_for(conio_x16_init, cputc, clrscr, cscroll) - jsr conio_x16_init - jsr main - rts -} -// Set initial cursor position -conio_x16_init: { - // Position cursor at current line - .label BASIC_CURSOR_LINE = $d6 - .label line = $52 - // char line = *BASIC_CURSOR_LINE - lda.z BASIC_CURSOR_LINE - sta.z line - // vera_layer_mode_text(1,(dword)0x00000,(dword)0x0F800,128,64,8,8,16) - jsr vera_layer_mode_text - // screensize(&conio_screen_width, &conio_screen_height) - jsr screensize - // screenlayer(1) - jsr screenlayer - // vera_layer_set_textcolor(1, WHITE) - ldy #1 - jsr vera_layer_set_textcolor - // vera_layer_set_backcolor(1, BLUE) - lda #BLUE - ldy #1 - jsr vera_layer_set_backcolor - // vera_layer_set_mapbase(0,0x20) - ldx #$20 - lda #0 - jsr vera_layer_set_mapbase - // vera_layer_set_mapbase(1,0x00) - ldx #0 - lda #1 - jsr vera_layer_set_mapbase - // if(line>=CONIO_HEIGHT) - lda.z line - cmp.z conio_screen_height - bcc __b1 - // line=CONIO_HEIGHT-1 - ldx.z conio_screen_height - dex - stx.z line - __b1: - // gotoxy(0, line) - ldx.z line - jsr gotoxy - // } - rts -} -// Output one character at the current cursor position -// Moves the cursor forward. Scrolls the entire screen if needed -// void cputc(__zp($a) char c) -cputc: { - .const OFFSET_STACK_C = 0 - .label __16 = 6 - .label c = $a - .label conio_addr = 8 - tsx - lda STACK_BASE+OFFSET_STACK_C,x - sta.z c - // char color = vera_layer_get_color( conio_screen_layer) - ldx.z conio_screen_layer - jsr vera_layer_get_color - // char color = vera_layer_get_color( conio_screen_layer) - tax - // char* conio_addr = CONIO_SCREEN_TEXT + conio_line_text[conio_screen_layer] - lda.z conio_screen_layer - asl - tay - clc - lda.z CONIO_SCREEN_TEXT - adc conio_line_text,y - sta.z conio_addr - lda.z CONIO_SCREEN_TEXT+1 - adc conio_line_text+1,y - sta.z conio_addr+1 - // conio_cursor_x[conio_screen_layer] << 1 - ldy.z conio_screen_layer - lda conio_cursor_x,y - asl - // conio_addr += conio_cursor_x[conio_screen_layer] << 1 - clc - adc.z conio_addr - sta.z conio_addr - bcc !+ - inc.z conio_addr+1 - !: - // if(c=='\n') - lda #'\n' - cmp.z c - beq __b1 - // *VERA_CTRL &= ~VERA_ADDRSEL - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(conio_addr) - lda.z conio_addr - // *VERA_ADDRX_L = BYTE0(conio_addr) - // Set address - sta VERA_ADDRX_L - // BYTE1(conio_addr) - lda.z conio_addr+1 - // *VERA_ADDRX_M = BYTE1(conio_addr) - sta VERA_ADDRX_M - // CONIO_SCREEN_BANK | VERA_INC_1 - lda #VERA_INC_1 - ora.z CONIO_SCREEN_BANK - // *VERA_ADDRX_H = CONIO_SCREEN_BANK | VERA_INC_1 - sta VERA_ADDRX_H - // *VERA_DATA0 = c - lda.z c - sta VERA_DATA0 - // *VERA_DATA0 = color - stx VERA_DATA0 - // conio_cursor_x[conio_screen_layer]++; - ldx.z conio_screen_layer - inc conio_cursor_x,x - // byte scroll_enable = conio_scroll_enable[conio_screen_layer] - ldy.z conio_screen_layer - lda conio_scroll_enable,y - // if(scroll_enable) - cmp #0 - bne __b5 - // (unsigned int)conio_cursor_x[conio_screen_layer] == conio_width - lda conio_cursor_x,y - sta.z __16 - lda #0 - sta.z __16+1 - // if((unsigned int)conio_cursor_x[conio_screen_layer] == conio_width) - cmp.z conio_width+1 - bne __breturn - lda.z __16 - cmp.z conio_width - bne __breturn - // cputln() - jsr cputln - __breturn: - // } - rts - __b5: - // if(conio_cursor_x[conio_screen_layer] == CONIO_WIDTH) - lda.z conio_screen_width - ldy.z conio_screen_layer - cmp conio_cursor_x,y - bne __breturn - // cputln() - jsr cputln - rts - __b1: - // cputln() - jsr cputln - rts -} -main: { - .label tilebase = $48 - .label t = $3f - .label tile = $24 - .label c = $37 - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - .label row = $40 - .label r = $42 - .label column1 = $29 - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - .label row_1 = $41 - .label r1 = $43 - // 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. - // VERA VRAM holds in bank 1 many registers that interfere loading all of this data. - // So it is better to load all in bank 0, but then there is an other issue. - // So the default CX16 character set is located in bank 0, at address 0xF800. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x10000. - // This is now all easily done with a few statements in the new kickc vera lib ... - lda #<$100*8 - sta.z memcpy_in_vram.num - lda #>$100*8 - sta.z memcpy_in_vram.num+1 - lda #1 - sta.z memcpy_in_vram.dest_bank - lda #<$f000 - sta.z memcpy_in_vram.dest - lda #>$f000 - sta.z memcpy_in_vram.dest+1 - ldy #0 - lda #<$f800 - sta.z memcpy_in_vram.src - lda #>$f800 - sta.z memcpy_in_vram.src+1 - jsr memcpy_in_vram - // vera_layer_mode_tile(1, 0x10000, 0x1F000, 128, 64, 8, 8, 1) - // We copy the 128 character set of 8 bytes each. - lda #8 - sta.z vera_layer_mode_tile.tileheight - sta.z vera_layer_mode_tile.tilewidth - lda #<$1f000 - sta.z vera_layer_mode_tile.tilebase_address_1 - lda #>$1f000 - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #<$1f000>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>$1f000>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - lda #<$10000 - sta.z vera_layer_mode_tile.mapbase_address_1 - lda #>$10000 - sta.z vera_layer_mode_tile.mapbase_address_1+1 - lda #<$10000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - lda #>$10000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - lda #<$40 - sta.z vera_layer_mode_tile.mapheight - lda #>$40 - sta.z vera_layer_mode_tile.mapheight+1 - lda #1 - sta.z vera_layer_mode_tile.layer - lda #<$80 - sta.z vera_layer_mode_tile.mapwidth - lda #>$80 - sta.z vera_layer_mode_tile.mapwidth+1 - ldx #1 - jsr vera_layer_mode_tile - // screenlayer(1) - jsr screenlayer - // vera_layer_set_textcolor(conio_screen_layer, color) - ldy.z conio_screen_layer - jsr vera_layer_set_textcolor - // vera_layer_set_backcolor(conio_screen_layer, color) - ldy.z conio_screen_layer - lda #BLACK - jsr vera_layer_set_backcolor - // clrscr() - jsr clrscr - // vera_layer_mode_tile(0, 0x14000, 0x00000, 64, 64, 16, 16, 8) - // Now we can use the full bank 0! - // We set the mapbase of the tile demo to output to 0x12000, - // and the tilebase is set to 0x0000! - lda #$10 - sta.z vera_layer_mode_tile.tileheight - sta.z vera_layer_mode_tile.tilewidth - lda #0 - sta.z vera_layer_mode_tile.tilebase_address_1 - sta.z vera_layer_mode_tile.tilebase_address_1+1 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - lda #<$14000 - sta.z vera_layer_mode_tile.mapbase_address_1 - lda #>$14000 - sta.z vera_layer_mode_tile.mapbase_address_1+1 - lda #<$14000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - lda #>$14000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - lda #<$40 - sta.z vera_layer_mode_tile.mapheight - lda #>$40 - sta.z vera_layer_mode_tile.mapheight+1 - lda #0 - sta.z vera_layer_mode_tile.layer - lda #<$40 - sta.z vera_layer_mode_tile.mapwidth - lda #>$40 - sta.z vera_layer_mode_tile.mapwidth+1 - ldx #8 - jsr vera_layer_mode_tile - // memcpy_to_vram(0, tilebase, tiles, 256) - lda #<0 - sta.z memcpy_to_vram.vdest - sta.z memcpy_to_vram.vdest+1 - jsr memcpy_to_vram - lda #1 - sta.z t - lda #<0+$100 - sta.z tilebase - lda #>0+$100 - sta.z tilebase+1 - __b1: - ldx #0 - __b2: - // tiles[p]+=1 - lda tiles,x - inc - sta tiles,x - // for(byte p:0..255) - inx - cpx #0 - bne __b2 - // memcpy_to_vram(0, tilebase, tiles, 256) - lda.z tilebase - sta.z memcpy_to_vram.vdest - lda.z tilebase+1 - sta.z memcpy_to_vram.vdest+1 - jsr memcpy_to_vram - // tilebase+=256 - lda.z tilebase - clc - adc #<$100 - sta.z tilebase - lda.z tilebase+1 - adc #>$100 - sta.z tilebase+1 - // for(byte t:1..255) - inc.z t - lda.z t - bne __b1 - // vera_tile_area(0, 0, 0, 0, 40, 30, 0, 0, 0) - //vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h, byte hflip, byte vflip, byte offset) - lda #$28 - sta.z vera_tile_area.w - lda #$1e - sta.z vera_tile_area.h - lda #0 - sta.z vera_tile_area.x - sta.z vera_tile_area.y - sta.z vera_tile_area.tileindex - sta.z vera_tile_area.tileindex+1 - jsr vera_tile_area - lda #0 - sta.z r - lda #1 - sta.z row - lda #<0 - sta.z tile - sta.z tile+1 - __b5: - lda #0 - sta.z c - tax - __b6: - // vera_tile_area(0, tile, column, row, 1, 1, 0, 0, 0) - stx.z vera_tile_area.x - lda.z row - sta.z vera_tile_area.y - lda #1 - sta.z vera_tile_area.w - sta.z vera_tile_area.h - jsr vera_tile_area - // column+=2 - inx - inx - // tile++; - inc.z tile - bne !+ - inc.z tile+1 - !: - // tile &= 0xff - lda #$ff - and.z tile - sta.z tile - lda #0 - sta.z tile+1 - // for(byte c:0..19) - inc.z c - lda #$14 - cmp.z c - bne __b6 - // row += 2 - lda.z row - clc - adc #2 - sta.z row - // for(byte r:0..11) - inc.z r - lda #$c - cmp.z r - bne __b5 - // gotoxy(0,50) - ldx #$32 - jsr gotoxy - // printf("vera in tile mode 8 x 8, color depth 8 bits per pixel.\n") - lda #s - sta.z printf_str.s+1 - jsr printf_str - // printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n") - lda #s1 - sta.z printf_str.s+1 - jsr printf_str - // printf("each tile can have a variation of 256 colors.\n") - lda #s2 - sta.z printf_str.s+1 - jsr printf_str - // printf("the vera palette of 256 colors, can be used by setting the palette\n") - lda #s3 - sta.z printf_str.s+1 - jsr printf_str - // printf("offset for each tile.\n") - lda #s4 - sta.z printf_str.s+1 - jsr printf_str - // printf("here each column is displaying the same tile, but with different offsets!\n") - lda #s5 - sta.z printf_str.s+1 - jsr printf_str - // printf("each offset aligns to multiples of 16 colors in the palette!.\n") - lda #s6 - sta.z printf_str.s+1 - jsr printf_str - // printf("however, the first color will always be transparent (black).\n") - lda #s7 - sta.z printf_str.s+1 - jsr printf_str - // *VERA_DC_VIDEO |= vera_layer_enable[layer] - lda VERA_DC_VIDEO - ora vera_layer_enable - sta VERA_DC_VIDEO - __b9: - // kbhit() - jsr kbhit - // while(!kbhit()) - cmp #0 - beq __b9 - // vera_tile_area(0, 0, 0, 0, 40, 30, 0, 0, 0) - lda #$28 - sta.z vera_tile_area.w - lda #$1e - sta.z vera_tile_area.h - lda #0 - sta.z vera_tile_area.x - sta.z vera_tile_area.y - sta.z vera_tile_area.tileindex - sta.z vera_tile_area.tileindex+1 - jsr vera_tile_area - lda #0 - sta.z r1 - sta.z row_1 - sta.z tile - sta.z tile+1 - __b11: - ldx #0 - txa - sta.z column1 - __b12: - // vera_tile_area(0, tile, column, row, 2, 2, 0, 0, 0) - lda.z row_1 - sta.z vera_tile_area.y - lda #2 - sta.z vera_tile_area.w - sta.z vera_tile_area.h - jsr vera_tile_area - // column+=2 - lda.z column1 - clc - adc #2 - sta.z column1 - // tile++; - inc.z tile - bne !+ - inc.z tile+1 - !: - // tile &= 0xff - lda #$ff - and.z tile - sta.z tile - lda #0 - sta.z tile+1 - // for(byte c:0..19) - inx - cpx #$14 - bne __b12 - // row += 2 - lda.z row_1 - clc - adc #2 - sta.z row_1 - // for(byte r:0..11) - inc.z r1 - lda #$c - cmp.z r1 - bne __b11 - __b14: - // kbhit() - jsr kbhit - // while(!kbhit()) - cmp #0 - beq __b14 - // vera_tile_area(0, 0, 0, 0, 40, 30, 0, 0, 0) - // Now put back the defaults ... - lda #$28 - sta.z vera_tile_area.w - lda #$1e - sta.z vera_tile_area.h - lda #0 - sta.z vera_tile_area.x - sta.z vera_tile_area.y - sta.z vera_tile_area.tileindex - sta.z vera_tile_area.tileindex+1 - jsr vera_tile_area - // ~vera_layer_enable[layer] - lda vera_layer_enable - eor #$ff - // *VERA_DC_VIDEO &= ~vera_layer_enable[layer] - and VERA_DC_VIDEO - sta VERA_DC_VIDEO - // 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 - sta.z memcpy_in_vram.num+1 - lda #0 - sta.z memcpy_in_vram.dest_bank - lda #<$f800 - sta.z memcpy_in_vram.dest - lda #>$f800 - sta.z memcpy_in_vram.dest+1 - ldy #1 - lda #<$f000 - sta.z memcpy_in_vram.src - lda #>$f000 - sta.z memcpy_in_vram.src+1 - jsr memcpy_in_vram - // vera_layer_mode_tile(1, 0x00000, 0x0F800, 128, 128, 8, 8, 1) - lda #8 - sta.z vera_layer_mode_tile.tileheight - sta.z vera_layer_mode_tile.tilewidth - lda #<$f800 - sta.z vera_layer_mode_tile.tilebase_address_1 - lda #>$f800 - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #<$f800>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>$f800>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - lda #0 - sta.z vera_layer_mode_tile.mapbase_address_1 - sta.z vera_layer_mode_tile.mapbase_address_1+1 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - lda #<$80 - sta.z vera_layer_mode_tile.mapheight - lda #>$80 - sta.z vera_layer_mode_tile.mapheight+1 - lda #1 - sta.z vera_layer_mode_tile.layer - lda #<$80 - sta.z vera_layer_mode_tile.mapwidth - lda #>$80 - sta.z vera_layer_mode_tile.mapwidth+1 - ldx #1 - jsr vera_layer_mode_tile - // vera_layer_mode_tile(0, 0x00000, 0x0F800, 128, 128, 8, 8, 1) - lda #8 - sta.z vera_layer_mode_tile.tileheight - sta.z vera_layer_mode_tile.tilewidth - lda #<$f800 - sta.z vera_layer_mode_tile.tilebase_address_1 - lda #>$f800 - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #<$f800>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>$f800>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - lda #0 - sta.z vera_layer_mode_tile.mapbase_address_1 - sta.z vera_layer_mode_tile.mapbase_address_1+1 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - lda #<$80 - sta.z vera_layer_mode_tile.mapheight - lda #>$80 - sta.z vera_layer_mode_tile.mapheight+1 - lda #0 - sta.z vera_layer_mode_tile.layer - lda #<$80 - sta.z vera_layer_mode_tile.mapwidth - lda #>$80 - sta.z vera_layer_mode_tile.mapwidth+1 - ldx #1 - jsr vera_layer_mode_tile - // screenlayer(1) - jsr screenlayer - // vera_layer_set_textcolor(conio_screen_layer, color) - ldy.z conio_screen_layer - jsr vera_layer_set_textcolor - // vera_layer_set_backcolor(conio_screen_layer, color) - ldy.z conio_screen_layer - lda #BLUE - jsr vera_layer_set_backcolor - // clrscr() - jsr clrscr - // } - rts - .segment Data - tiles: .byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - s: .text @"vera in tile mode 8 x 8, color depth 8 bits per pixel.\n" - .byte 0 - s1: .text @"in this mode, tiles are 8 pixels wide and 8 pixels tall.\n" - .byte 0 - s2: .text @"each tile can have a variation of 256 colors.\n" - .byte 0 - s3: .text @"the vera palette of 256 colors, can be used by setting the palette\n" - .byte 0 - s4: .text @"offset for each tile.\n" - .byte 0 - s5: .text @"here each column is displaying the same tile, but with different offsets!\n" - .byte 0 - s6: .text @"each offset aligns to multiples of 16 colors in the palette!.\n" - .byte 0 - s7: .text @"however, the first color will always be transparent (black).\n" - .byte 0 -} -.segment Code -// Set a vera layer in text mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_mode: The color mode, which can be 16 or 256. -// void vera_layer_mode_text(char layer, unsigned long mapbase_address, unsigned long tilebase_address, unsigned int mapwidth, unsigned int mapheight, char tilewidth, char tileheight, unsigned int color_mode) -vera_layer_mode_text: { - .const mapbase_address = 0 - .const tilebase_address = $f800 - .const mapwidth = $80 - .const mapheight = $40 - .const tilewidth = 8 - .const tileheight = 8 - .label layer = 1 - // vera_layer_mode_tile( layer, mapbase_address, tilebase_address, mapwidth, mapheight, tilewidth, tileheight, 1 ) - lda #tileheight - sta.z vera_layer_mode_tile.tileheight - lda #tilewidth - sta.z vera_layer_mode_tile.tilewidth - lda #tilebase_address - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>tilebase_address>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - lda #mapbase_address - sta.z vera_layer_mode_tile.mapbase_address_1+1 - lda #>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - lda #>mapbase_address>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - lda #mapheight - sta.z vera_layer_mode_tile.mapheight+1 - lda #layer - sta.z vera_layer_mode_tile.layer - lda #mapwidth - sta.z vera_layer_mode_tile.mapwidth+1 - ldx #1 - jsr vera_layer_mode_tile - // vera_layer_set_text_color_mode( layer, VERA_LAYER_CONFIG_16C ) - jsr vera_layer_set_text_color_mode - // } - rts -} -// Return the current screen size. -// void screensize(char *x, char *y) -screensize: { - .label x = conio_screen_width - .label y = conio_screen_height - // char hscale = (*VERA_DC_HSCALE) >> 7 - // VERA returns in VERA_DC_HSCALE the value of 128 when 80 columns is used in text mode, - // and the value of 64 when 40 columns is used in text mode. - // Basically, 40 columns mode in the VERA is a double scan mode. - // Same for the VERA_DC_VSCALE mode, but then the subdivision is 60 or 30 rows. - // I still need to test the other modes, but this will suffice for now for the pure text modes. - lda VERA_DC_HSCALE - rol - rol - and #1 - // 40 << hscale - tay - lda #$28 - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // *x = 40 << hscale - sta.z x - // char vscale = (*VERA_DC_VSCALE) >> 7 - lda VERA_DC_VSCALE - rol - rol - and #1 - // 30 << vscale - tay - lda #$1e - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // *y = 30 << vscale - sta.z y - // } - rts -} -// Set the layer with which the conio will interact. -// - layer: value of 0 or 1. -// void screenlayer(char layer) -screenlayer: { - .label __2 = $10 - .label __4 = $35 - .label __5 = $3a - .label vera_layer_get_width1_config = $22 - .label vera_layer_get_width1_return = $10 - .label vera_layer_get_height1_config = $2b - .label vera_layer_get_height1_return = $3a - // conio_screen_layer = layer - lda #1 - sta.z conio_screen_layer - // vera_layer_get_mapbase_bank(conio_screen_layer) - tay - jsr vera_layer_get_mapbase_bank - // vera_layer_get_mapbase_offset(conio_screen_layer) - lda.z conio_screen_layer - jsr vera_layer_get_mapbase_offset - lda.z vera_layer_get_mapbase_offset.return - sta.z CONIO_SCREEN_TEXT_1 - lda.z vera_layer_get_mapbase_offset.return+1 - sta.z CONIO_SCREEN_TEXT_1+1 - // vera_layer_get_width(conio_screen_layer) - lda.z conio_screen_layer - // byte* config = vera_layer_config[layer] - asl - tay - lda vera_layer_config,y - sta.z vera_layer_get_width1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_width1_config+1 - // *config & VERA_LAYER_WIDTH_MASK - lda #VERA_LAYER_WIDTH_MASK - ldy #0 - and (vera_layer_get_width1_config),y - // (*config & VERA_LAYER_WIDTH_MASK) >> 4 - lsr - lsr - lsr - lsr - // return VERA_LAYER_WIDTH[ (*config & VERA_LAYER_WIDTH_MASK) >> 4]; - asl - tay - lda VERA_LAYER_WIDTH,y - sta.z vera_layer_get_width1_return - lda VERA_LAYER_WIDTH+1,y - sta.z vera_layer_get_width1_return+1 - // } - // vera_layer_get_width(conio_screen_layer) - // conio_width = vera_layer_get_width(conio_screen_layer) - lda.z __2 - sta.z conio_width - lda.z __2+1 - sta.z conio_width+1 - // vera_layer_get_rowshift(conio_screen_layer) - ldy.z conio_screen_layer - jsr vera_layer_get_rowshift - // conio_rowshift = vera_layer_get_rowshift(conio_screen_layer) - sta.z conio_rowshift - // vera_layer_get_rowskip(conio_screen_layer) - lda.z conio_screen_layer - jsr vera_layer_get_rowskip - // conio_rowskip = vera_layer_get_rowskip(conio_screen_layer) - lda.z __4 - sta.z conio_rowskip - lda.z __4+1 - sta.z conio_rowskip+1 - // vera_layer_get_height(conio_screen_layer) - lda.z conio_screen_layer - // byte* config = vera_layer_config[layer] - asl - tay - lda vera_layer_config,y - sta.z vera_layer_get_height1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_height1_config+1 - // *config & VERA_LAYER_HEIGHT_MASK - lda #VERA_LAYER_HEIGHT_MASK - ldy #0 - and (vera_layer_get_height1_config),y - // (*config & VERA_LAYER_HEIGHT_MASK) >> 6 - rol - rol - rol - and #3 - // return VERA_LAYER_HEIGHT[ (*config & VERA_LAYER_HEIGHT_MASK) >> 6]; - asl - tay - lda VERA_LAYER_HEIGHT,y - sta.z vera_layer_get_height1_return - lda VERA_LAYER_HEIGHT+1,y - sta.z vera_layer_get_height1_return+1 - // } - // vera_layer_get_height(conio_screen_layer) - // conio_height = vera_layer_get_height(conio_screen_layer) - lda.z __5 - sta.z conio_height - lda.z __5+1 - sta.z conio_height+1 - // } - rts -} -// Set the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15) when the VERA works in 16x16 color text mode. -// An 8 bit value (decimal between 0 and 255) when the VERA works in 256 text mode. -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_textcolor(__register(Y) char layer, char color) -vera_layer_set_textcolor: { - // vera_layer_textcolor[layer] = color - lda #WHITE - sta vera_layer_textcolor,y - // } - rts -} -// Set the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_backcolor(__register(Y) char layer, __register(A) char color) -vera_layer_set_backcolor: { - // vera_layer_backcolor[layer] = color - sta vera_layer_backcolor,y - // } - rts -} -// Set the base of the map layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - mapbase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// void vera_layer_set_mapbase(__register(A) char layer, __register(X) char mapbase) -vera_layer_set_mapbase: { - .label addr = $22 - // byte* addr = vera_layer_mapbase[layer] - asl - tay - lda vera_layer_mapbase,y - sta.z addr - lda vera_layer_mapbase+1,y - sta.z addr+1 - // *addr = mapbase - txa - ldy #0 - sta (addr),y - // } - rts -} -// Set the cursor to the specified position -// void gotoxy(char x, __register(X) char y) -gotoxy: { - .label __6 = $10 - .label line_offset = $10 - // if(y>CONIO_HEIGHT) - lda.z conio_screen_height - stx.z $ff - cmp.z $ff - bcs __b1 - ldx #0 - __b1: - // if(x>=CONIO_WIDTH) - lda.z conio_screen_width - // conio_cursor_x[conio_screen_layer] = x - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // conio_cursor_y[conio_screen_layer] = y - txa - sta conio_cursor_y,y - // unsigned int line_offset = (unsigned int)y << conio_rowshift - txa - sta.z __6 - lda #0 - sta.z __6+1 - ldy.z conio_rowshift - beq !e+ - !: - asl.z line_offset - rol.z line_offset+1 - dey - bne !- - !e: - // conio_line_text[conio_screen_layer] = line_offset - lda.z conio_screen_layer - asl - tay - lda.z line_offset - sta conio_line_text,y - lda.z line_offset+1 - sta conio_line_text+1,y - // } - rts -} -// Get the text and back color for text output in 16 color mode. -// - layer: Value of 0 or 1. -// - return: an 8 bit value with bit 7:4 containing the back color and bit 3:0 containing the front color. -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_color(__register(X) char layer) -vera_layer_get_color: { - .label addr = 4 - // byte* addr = vera_layer_config[layer] - txa - asl - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // *addr & VERA_LAYER_CONFIG_256C - lda #VERA_LAYER_CONFIG_256C - ldy #0 - and (addr),y - // if( *addr & VERA_LAYER_CONFIG_256C ) - cmp #0 - bne __b1 - // vera_layer_backcolor[layer] << 4 - lda vera_layer_backcolor,x - asl - asl - asl - asl - // return ((vera_layer_backcolor[layer] << 4) | vera_layer_textcolor[layer]); - ora vera_layer_textcolor,x - // } - rts - __b1: - // return (vera_layer_textcolor[layer]); - lda vera_layer_textcolor,x - rts -} -// Print a newline -cputln: { - .label temp = 4 - // word temp = conio_line_text[conio_screen_layer] - lda.z conio_screen_layer - asl - // TODO: This needs to be optimized! other variations don't compile because of sections not available! - tay - lda conio_line_text,y - sta.z temp - lda conio_line_text+1,y - sta.z temp+1 - // temp += conio_rowskip - clc - lda.z temp - adc.z conio_rowskip - sta.z temp - lda.z temp+1 - adc.z conio_rowskip+1 - sta.z temp+1 - // conio_line_text[conio_screen_layer] = temp - lda.z conio_screen_layer - asl - tay - lda.z temp - sta conio_line_text,y - lda.z temp+1 - sta conio_line_text+1,y - // conio_cursor_x[conio_screen_layer] = 0 - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // conio_cursor_y[conio_screen_layer]++; - ldx.z conio_screen_layer - inc conio_cursor_y,x - // cscroll() - jsr cscroll - // } - rts -} -// Copy block of memory (from VRAM to VRAM) -// Copies the values from the location pointed by src to the location pointed by dest. -// The method uses the VERA access ports 0 and 1 to copy data from and to in VRAM. -// - src_bank: 64K VRAM bank number to copy from (0/1). -// - src: pointer to the location to copy from. Note that the address is a 16 bit value! -// - src_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -// - dest_bank: 64K VRAM bank number to copy to (0/1). -// - dest: pointer to the location to copy to. Note that the address is a 16 bit value! -// - dest_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -// - num: The number of bytes to copy -// void memcpy_in_vram(__zp($a) char dest_bank, __zp(8) void *dest, char dest_increment, __register(Y) char src_bank, __zp(6) char *src, char src_increment, __zp(4) unsigned int num) -memcpy_in_vram: { - .label i = 2 - .label dest = 8 - .label src = 6 - .label num = 4 - .label dest_bank = $a - // *VERA_CTRL &= ~VERA_ADDRSEL - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(src) - lda.z src - // *VERA_ADDRX_L = BYTE0(src) - // Set address - sta VERA_ADDRX_L - // BYTE1(src) - lda.z src+1 - // *VERA_ADDRX_M = BYTE1(src) - sta VERA_ADDRX_M - // src_increment | src_bank - tya - ora #VERA_INC_1 - // *VERA_ADDRX_H = src_increment | src_bank - sta VERA_ADDRX_H - // *VERA_CTRL |= VERA_ADDRSEL - // Select DATA1 - lda #VERA_ADDRSEL - ora VERA_CTRL - sta VERA_CTRL - // BYTE0(dest) - lda.z dest - // *VERA_ADDRX_L = BYTE0(dest) - // Set address - sta VERA_ADDRX_L - // BYTE1(dest) - lda.z dest+1 - // *VERA_ADDRX_M = BYTE1(dest) - sta VERA_ADDRX_M - // dest_increment | dest_bank - lda #VERA_INC_1 - ora.z dest_bank - // *VERA_ADDRX_H = dest_increment | dest_bank - sta VERA_ADDRX_H - lda #<0 - sta.z i - sta.z i+1 - // Transfer the data - __b1: - // for(unsigned int i=0; i$100 - bne __b13 - lda.z mapwidth - cmp #<$100 - bne __b13 - // config |= VERA_LAYER_WIDTH_256 - txa - ora #VERA_LAYER_WIDTH_256 - tax - // vera_layer_rowshift[layer] = 9 - lda #9 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 512 - tya - asl - tay - lda #<$200 - sta vera_layer_rowskip,y - lda #>$200 - sta vera_layer_rowskip+1,y - __b13: - // case 32: - // config |= VERA_LAYER_HEIGHT_32; - // break; - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$20 - beq __b20 - !: - // case 64: - // config |= VERA_LAYER_HEIGHT_64; - // break; - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$40 - bne !__b17+ - jmp __b17 - !__b17: - !: - // case 128: - // config |= VERA_LAYER_HEIGHT_128; - // break; - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$80 - bne !__b18+ - jmp __b18 - !__b18: - !: - // case 256: - // config |= VERA_LAYER_HEIGHT_256; - // break; - lda.z mapheight+1 - cmp #>$100 - bne __b20 - lda.z mapheight - cmp #<$100 - bne __b20 - // config |= VERA_LAYER_HEIGHT_256 - txa - ora #VERA_LAYER_HEIGHT_256 - tax - __b20: - // vera_layer_set_config(layer, config) - lda.z layer - jsr vera_layer_set_config - // WORD0(mapbase_address) - lda.z mapbase_address_1 - sta.z __1 - lda.z mapbase_address_1+1 - sta.z __1+1 - // vera_mapbase_offset[layer] = WORD0(mapbase_address) - lda.z layer - asl - sta.z __17 - // mapbase - tay - lda.z __1 - sta vera_mapbase_offset,y - lda.z __1+1 - sta vera_mapbase_offset+1,y - // BYTE2(mapbase_address) - lda.z mapbase_address_1+2 - // vera_mapbase_bank[layer] = BYTE2(mapbase_address) - ldy.z layer - sta vera_mapbase_bank,y - // vera_mapbase_address[layer] = mapbase_address - tya - asl - asl - sta.z __18 - tay - lda.z mapbase_address_1 - sta vera_mapbase_address,y - lda.z mapbase_address_1+1 - sta vera_mapbase_address+1,y - lda.z mapbase_address_1+2 - sta vera_mapbase_address+2,y - lda.z mapbase_address_1+3 - sta vera_mapbase_address+3,y - // mapbase_address = mapbase_address >> 1 - lsr - sta.z mapbase_address+3 - lda.z mapbase_address_1+2 - ror - sta.z mapbase_address+2 - lda.z mapbase_address_1+1 - ror - sta.z mapbase_address+1 - lda.z mapbase_address_1 - ror - sta.z mapbase_address - // byte mapbase = BYTE1(mapbase_address) - ldx.z mapbase_address+1 - // vera_layer_set_mapbase(layer,mapbase) - lda.z layer - jsr vera_layer_set_mapbase - // WORD0(tilebase_address) - lda.z tilebase_address_1 - sta.z __6 - lda.z tilebase_address_1+1 - sta.z __6+1 - // vera_tilebase_offset[layer] = WORD0(tilebase_address) - // tilebase - ldy.z __17 - lda.z __6 - sta vera_tilebase_offset,y - lda.z __6+1 - sta vera_tilebase_offset+1,y - // BYTE2(tilebase_address) - lda.z tilebase_address_1+2 - // vera_tilebase_bank[layer] = BYTE2(tilebase_address) - ldy.z layer - sta vera_tilebase_bank,y - // vera_tilebase_address[layer] = tilebase_address - ldy.z __18 - lda.z tilebase_address_1 - sta vera_tilebase_address,y - lda.z tilebase_address_1+1 - sta vera_tilebase_address+1,y - lda.z tilebase_address_1+2 - sta vera_tilebase_address+2,y - lda.z tilebase_address_1+3 - sta vera_tilebase_address+3,y - // tilebase_address = tilebase_address >> 1 - lsr - sta.z tilebase_address+3 - lda.z tilebase_address_1+2 - ror - sta.z tilebase_address+2 - lda.z tilebase_address_1+1 - ror - sta.z tilebase_address+1 - lda.z tilebase_address_1 - ror - sta.z tilebase_address - // byte tilebase = BYTE1(tilebase_address) - lda.z tilebase_address+1 - // tilebase &= VERA_LAYER_TILEBASE_MASK - and #VERA_LAYER_TILEBASE_MASK - tax - // case 8: - // tilebase |= VERA_TILEBASE_WIDTH_8; - // break; - lda #8 - cmp.z tilewidth - beq __b23 - // case 16: - // tilebase |= VERA_TILEBASE_WIDTH_16; - // break; - lda #$10 - cmp.z tilewidth - bne __b23 - // tilebase |= VERA_TILEBASE_WIDTH_16 - txa - ora #VERA_TILEBASE_WIDTH_16 - tax - __b23: - // case 8: - // tilebase |= VERA_TILEBASE_HEIGHT_8; - // break; - lda #8 - cmp.z tileheight - beq __b26 - // case 16: - // tilebase |= VERA_TILEBASE_HEIGHT_16; - // break; - lda #$10 - cmp.z tileheight - bne __b26 - // tilebase |= VERA_TILEBASE_HEIGHT_16 - txa - ora #VERA_TILEBASE_HEIGHT_16 - tax - __b26: - // vera_layer_set_tilebase(layer,tilebase) - lda.z layer - jsr vera_layer_set_tilebase - // } - rts - __b18: - // config |= VERA_LAYER_HEIGHT_128 - txa - ora #VERA_LAYER_HEIGHT_128 - tax - jmp __b20 - __b17: - // config |= VERA_LAYER_HEIGHT_64 - txa - ora #VERA_LAYER_HEIGHT_64 - tax - jmp __b20 - __b11: - // config |= VERA_LAYER_WIDTH_128 - txa - ora #VERA_LAYER_WIDTH_128 - tax - // vera_layer_rowshift[layer] = 8 - lda #8 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 256 - tya - asl - tay - lda #<$100 - sta vera_layer_rowskip,y - lda #>$100 - sta vera_layer_rowskip+1,y - jmp __b13 - __b10: - // config |= VERA_LAYER_WIDTH_64 - txa - ora #VERA_LAYER_WIDTH_64 - tax - // vera_layer_rowshift[layer] = 7 - lda #7 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 128 - tya - asl - tay - lda #$80 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - jmp __b13 - __b9: - // vera_layer_rowshift[layer] = 6 - lda #6 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 64 - tya - asl - tay - lda #$40 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - jmp __b13 -} -// clears the screen and moves the cursor to the upper left-hand corner of the screen. -clrscr: { - .label __1 = $53 - .label line_text = 6 - .label color = $20 - .label l = $a - // char* line_text = CONIO_SCREEN_TEXT - lda.z CONIO_SCREEN_TEXT_1 - sta.z line_text - lda.z CONIO_SCREEN_TEXT_1+1 - sta.z line_text+1 - // vera_layer_get_backcolor(conio_screen_layer) - ldy.z conio_screen_layer - jsr vera_layer_get_backcolor - // vera_layer_get_backcolor(conio_screen_layer) << 4 - asl - asl - asl - asl - sta.z __1 - // vera_layer_get_textcolor(conio_screen_layer) - ldy.z conio_screen_layer - jsr vera_layer_get_textcolor - // char color = ( vera_layer_get_backcolor(conio_screen_layer) << 4 ) | vera_layer_get_textcolor(conio_screen_layer) - ora.z __1 - sta.z color - lda #0 - sta.z l - __b1: - // for( char l=0;lmain.tiles - sta.z s+1 - __b1: - // for(char *s = src; s!=end; s++) - lda.z s+1 - cmp #>end - bne __b2 - lda.z s - cmp #1+1 - sta.z rowskip+1 - cpy #0 - beq !e+ - !: - asl.z rowskip - rol.z rowskip+1 - dey - bne !- - !e: - // hflip = vera_layer_hflip[hflip] - lda vera_layer_hflip - sta.z hflip - // vflip = vera_layer_vflip[vflip] - lda vera_layer_vflip - sta.z vflip - // byte index_l = BYTE0(tileindex) - lda.z tileindex - sta.z index_l - // byte index_h = BYTE1(tileindex) - lda.z tileindex+1 - // index_h |= hflip - ora.z hflip - // index_h |= vflip - ora.z index_h - sta.z index_h - // (word)y << shift - lda.z y - sta.z __10 - lda #0 - sta.z __10+1 - ldy.z shift - beq !e+ - !: - asl.z __4 - rol.z __4+1 - dey - bne !- - !e: - // mapbase += ((word)y << shift) - lda.z mapbase - clc - adc.z __4 - sta.z mapbase - lda.z mapbase+1 - adc.z __4+1 - sta.z mapbase+1 - lda.z mapbase+2 - adc #0 - sta.z mapbase+2 - lda.z mapbase+3 - adc #0 - sta.z mapbase+3 - // x << 1 - lda.z x - asl - // mapbase += (x << 1) - clc - adc.z mapbase - sta.z mapbase - lda.z mapbase+1 - adc #0 - sta.z mapbase+1 - lda.z mapbase+2 - adc #0 - sta.z mapbase+2 - lda.z mapbase+3 - adc #0 - sta.z mapbase+3 - lda #0 - sta.z r - __b1: - // for(byte r=0; r$0000 - rts - - continue1: - nop - - // return ch; - lda.z ch - // } - rts -} -// Set the configuration of the layer text color mode. -// - layer: Value of 0 or 1. -// - color_mode: Specifies the color mode to be VERA_LAYER_CONFIG_16 or VERA_LAYER_CONFIG_256 for text mode. -// void vera_layer_set_text_color_mode(char layer, char color_mode) -vera_layer_set_text_color_mode: { - .label addr = $22 - // byte* addr = vera_layer_config[layer] - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER - sta.z addr - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER+1 - sta.z addr+1 - // *addr &= ~VERA_LAYER_CONFIG_256C - lda #VERA_LAYER_CONFIG_256C^$ff - ldy #0 - and (addr),y - sta (addr),y - // *addr |= color_mode - lda (addr),y - sta (addr),y - // } - rts -} -// Get the map base bank of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Bank in vera vram. -// __register(X) char vera_layer_get_mapbase_bank(__register(Y) char layer) -vera_layer_get_mapbase_bank: { - // return vera_mapbase_bank[layer]; - ldx vera_mapbase_bank,y - // } - rts -} -// Get the map base lower 16-bit address (offset) of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Offset in vera vram of the specified bank. -// __zp($10) unsigned int vera_layer_get_mapbase_offset(__register(A) char layer) -vera_layer_get_mapbase_offset: { - .label return = $10 - // return vera_mapbase_offset[layer]; - asl - tay - lda vera_mapbase_offset,y - sta.z return - lda vera_mapbase_offset+1,y - sta.z return+1 - // } - rts -} -// Get the bit shift value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Rowshift value to calculate fast from a y value to line offset in tile mode. -// __register(A) char vera_layer_get_rowshift(__register(Y) char layer) -vera_layer_get_rowshift: { - // return vera_layer_rowshift[layer]; - lda vera_layer_rowshift,y - // } - rts -} -// Get the value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Skip value to calculate fast from a y value to line offset in tile mode. -// __zp($35) unsigned int vera_layer_get_rowskip(__register(A) char layer) -vera_layer_get_rowskip: { - .label return = $35 - // return vera_layer_rowskip[layer]; - asl - tay - lda vera_layer_rowskip,y - sta.z return - lda vera_layer_rowskip+1,y - sta.z return+1 - // } - rts -} -// Scroll the entire screen if the cursor is beyond the last line -cscroll: { - // if(conio_cursor_y[conio_screen_layer]>=CONIO_HEIGHT) - ldy.z conio_screen_layer - lda conio_cursor_y,y - cmp.z conio_screen_height - bcc __b3 - // if(conio_scroll_enable[conio_screen_layer]) - lda conio_scroll_enable,y - cmp #0 - bne __b4 - // if(conio_cursor_y[conio_screen_layer]>=conio_height) - lda conio_cursor_y,y - ldy.z conio_height+1 - bne __b3 - cmp.z conio_height - __b3: - // } - rts - __b4: - // insertup() - jsr insertup - // gotoxy( 0, CONIO_HEIGHT-1) - ldx.z conio_screen_height - dex - jsr gotoxy - rts -} -// Set the configuration of the layer. -// - layer: Value of 0 or 1. -// - config: Specifies the modes which are specified using T256C / 'Bitmap Mode' / 'Color Depth'. -// void vera_layer_set_config(__register(A) char layer, __register(X) char config) -vera_layer_set_config: { - .label addr = $22 - // byte* addr = vera_layer_config[layer] - asl - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // *addr = config - txa - ldy #0 - sta (addr),y - // } - rts -} -// Set the base of the tiles for the layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - tilebase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// void vera_layer_set_tilebase(__register(A) char layer, __register(X) char tilebase) -vera_layer_set_tilebase: { - .label addr = $22 - // byte* addr = vera_layer_tilebase[layer] - asl - tay - lda vera_layer_tilebase,y - sta.z addr - lda vera_layer_tilebase+1,y - sta.z addr+1 - // *addr = tilebase - txa - ldy #0 - sta (addr),y - // } - rts -} -// Get the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_backcolor(__register(Y) char layer) -vera_layer_get_backcolor: { - // return vera_layer_backcolor[layer]; - lda vera_layer_backcolor,y - // } - rts -} -// Get the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_textcolor(__register(Y) char layer) -vera_layer_get_textcolor: { - // return vera_layer_textcolor[layer]; - lda vera_layer_textcolor,y - // } - rts -} -// Insert a new line, and scroll the upper part of the screen up. -insertup: { - .label cy = $e - .label width = $b - .label line = 8 - .label start = 8 - // unsigned byte cy = conio_cursor_y[conio_screen_layer] - ldy.z conio_screen_layer - lda conio_cursor_y,y - sta.z cy - // unsigned byte width = CONIO_WIDTH * 2 - lda.z conio_screen_width - asl - sta.z width - ldx #1 - __b1: - // for(unsigned byte i=1; i<=cy; i++) - lda.z cy - stx.z $ff - cmp.z $ff - bcs __b2 - // clearline() - jsr clearline - // } - rts - __b2: - // i-1 - txa - sec - sbc #1 - // unsigned int line = (i-1) << conio_rowshift - ldy.z conio_rowshift - sta.z line - lda #0 - sta.z line+1 - cpy #0 - beq !e+ - !: - asl.z line - rol.z line+1 - dey - bne !- - !e: - // unsigned char* start = CONIO_SCREEN_TEXT + line - clc - lda.z start - adc.z CONIO_SCREEN_TEXT - sta.z start - lda.z start+1 - adc.z CONIO_SCREEN_TEXT+1 - sta.z start+1 - // start+conio_rowskip - lda.z start - clc - adc.z conio_rowskip - sta.z memcpy_in_vram.src - lda.z start+1 - adc.z conio_rowskip+1 - sta.z memcpy_in_vram.src+1 - // memcpy_in_vram(0, start, VERA_INC_1, 0, start+conio_rowskip, VERA_INC_1, width) - lda.z width - sta.z memcpy_in_vram.num - lda #0 - sta.z memcpy_in_vram.num+1 - // memcpy_in_vram(0, start, VERA_INC_1, 0, start+conio_rowskip, VERA_INC_1, width) - sta.z memcpy_in_vram.dest_bank - tay - jsr memcpy_in_vram - // for(unsigned byte i=1; i<=cy; i++) - inx - jmp __b1 -} -clearline: { - .label addr = $c - .label c = 2 - // *VERA_CTRL &= ~VERA_ADDRSEL - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // byte* addr = CONIO_SCREEN_TEXT + conio_line_text[conio_screen_layer] - lda.z conio_screen_layer - asl - // Set address - tay - clc - lda.z CONIO_SCREEN_TEXT - adc conio_line_text,y - sta.z addr - lda.z CONIO_SCREEN_TEXT+1 - adc conio_line_text+1,y - sta.z addr+1 - // BYTE0(addr) - lda.z addr - // *VERA_ADDRX_L = BYTE0(addr) - sta VERA_ADDRX_L - // BYTE1(addr) - lda.z addr+1 - // *VERA_ADDRX_M = BYTE1(addr) - sta VERA_ADDRX_M - // *VERA_ADDRX_H = VERA_INC_1 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // char color = vera_layer_get_color( conio_screen_layer) - ldx.z conio_screen_layer - jsr vera_layer_get_color - // char color = vera_layer_get_color( conio_screen_layer) - tax - lda #<0 - sta.z c - sta.z c+1 - __b1: - // for( unsigned int c=0;c> 7 - [177] screensize::$1 = $28 << screensize::hscale#0 - [178] *screensize::x#0 = screensize::$1 - [179] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 - [180] screensize::$3 = $1e << screensize::vscale#0 - [181] *screensize::y#0 = screensize::$3 - to:screensize::@return -screensize::@return: scope:[screensize] from screensize - [182] return - to:@return - -void screenlayer(char layer) -screenlayer: scope:[screenlayer] from conio_x16_init::@4 main::@20 main::@38 - [183] conio_screen_layer = 1 - [184] vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer - [185] call vera_layer_get_mapbase_bank - [186] vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#0 - to:screenlayer::@3 -screenlayer::@3: scope:[screenlayer] from screenlayer - [187] CONIO_SCREEN_BANK#15 = vera_layer_get_mapbase_bank::return#2 - [188] vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer - [189] call vera_layer_get_mapbase_offset - [190] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 - to:screenlayer::@4 -screenlayer::@4: scope:[screenlayer] from screenlayer::@3 - [191] CONIO_SCREEN_TEXT#17 = vera_layer_get_mapbase_offset::return#2 - [192] 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 - [193] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 - [194] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] - [195] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK - [196] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 - [197] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 - [198] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] - to:screenlayer::vera_layer_get_width1_@return -screenlayer::vera_layer_get_width1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_width1 - [199] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 - to:screenlayer::@1 -screenlayer::@1: scope:[screenlayer] from screenlayer::vera_layer_get_width1_@return - [200] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 - [201] conio_width = screenlayer::$2 - [202] vera_layer_get_rowshift::layer#0 = conio_screen_layer - [203] call vera_layer_get_rowshift - [204] vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#0 - to:screenlayer::@5 -screenlayer::@5: scope:[screenlayer] from screenlayer::@1 - [205] screenlayer::$3 = vera_layer_get_rowshift::return#2 - [206] conio_rowshift = screenlayer::$3 - [207] vera_layer_get_rowskip::layer#0 = conio_screen_layer - [208] call vera_layer_get_rowskip - [209] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 - to:screenlayer::@6 -screenlayer::@6: scope:[screenlayer] from screenlayer::@5 - [210] screenlayer::$4 = vera_layer_get_rowskip::return#2 - [211] conio_rowskip = screenlayer::$4 - [212] screenlayer::vera_layer_get_height1_layer#0 = conio_screen_layer - to:screenlayer::vera_layer_get_height1 -screenlayer::vera_layer_get_height1: scope:[screenlayer] from screenlayer::@6 - [213] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 - [214] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] - [215] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK - [216] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 - [217] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 - [218] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] - to:screenlayer::vera_layer_get_height1_@return -screenlayer::vera_layer_get_height1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_height1 - [219] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 - to:screenlayer::@2 -screenlayer::@2: scope:[screenlayer] from screenlayer::vera_layer_get_height1_@return - [220] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 - [221] conio_height = screenlayer::$5 - to:screenlayer::@return -screenlayer::@return: scope:[screenlayer] from screenlayer::@2 - [222] return - to:@return - -char vera_layer_set_textcolor(char layer , char color) -vera_layer_set_textcolor: scope:[vera_layer_set_textcolor] from conio_x16_init::@5 main::textcolor1 main::textcolor2 - [223] vera_layer_set_textcolor::layer#3 = phi( conio_x16_init::@5/1, main::textcolor1/vera_layer_set_textcolor::layer#1, main::textcolor2/vera_layer_set_textcolor::layer#2 ) - [224] vera_layer_textcolor[vera_layer_set_textcolor::layer#3] = WHITE - to:vera_layer_set_textcolor::@return -vera_layer_set_textcolor::@return: scope:[vera_layer_set_textcolor] from vera_layer_set_textcolor - [225] return - to:@return - -char vera_layer_set_backcolor(char layer , char color) -vera_layer_set_backcolor: scope:[vera_layer_set_backcolor] from conio_x16_init::@6 main::bgcolor1 main::bgcolor2 - [226] vera_layer_set_backcolor::color#3 = phi( conio_x16_init::@6/BLUE, main::bgcolor1/BLACK, main::bgcolor2/BLUE ) - [226] vera_layer_set_backcolor::layer#3 = phi( conio_x16_init::@6/1, main::bgcolor1/vera_layer_set_backcolor::layer#1, main::bgcolor2/vera_layer_set_backcolor::layer#2 ) - [227] vera_layer_backcolor[vera_layer_set_backcolor::layer#3] = vera_layer_set_backcolor::color#3 - to:vera_layer_set_backcolor::@return -vera_layer_set_backcolor::@return: scope:[vera_layer_set_backcolor] from vera_layer_set_backcolor - [228] return - to:@return - -void vera_layer_set_mapbase(char layer , char mapbase) -vera_layer_set_mapbase: scope:[vera_layer_set_mapbase] from conio_x16_init::@7 conio_x16_init::@8 vera_layer_mode_tile::@27 - [229] vera_layer_set_mapbase::mapbase#3 = phi( conio_x16_init::@7/$20, conio_x16_init::@8/0, vera_layer_mode_tile::@27/vera_layer_set_mapbase::mapbase#0 ) - [229] vera_layer_set_mapbase::layer#3 = phi( conio_x16_init::@7/0, conio_x16_init::@8/1, vera_layer_mode_tile::@27/vera_layer_set_mapbase::layer#0 ) - [230] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 - [231] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] - [232] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 - to:vera_layer_set_mapbase::@return -vera_layer_set_mapbase::@return: scope:[vera_layer_set_mapbase] from vera_layer_set_mapbase - [233] return - to:@return - -void gotoxy(char x , char y) -gotoxy: scope:[gotoxy] from conio_x16_init::@1 cscroll::@5 main::@8 - [234] gotoxy::y#4 = phi( conio_x16_init::@1/gotoxy::y#1, cscroll::@5/gotoxy::y#2, main::@8/$32 ) - [235] if(gotoxy::y#4<=conio_screen_height) goto gotoxy::@4 - to:gotoxy::@1 -gotoxy::@4: scope:[gotoxy] from gotoxy - [236] phi() - to:gotoxy::@1 -gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@4 - [237] gotoxy::y#5 = phi( gotoxy::@4/gotoxy::y#4, gotoxy/0 ) - [238] if(0> 1 - [319] vera_layer_mode_tile::mapbase#0 = byte1 vera_layer_mode_tile::mapbase_address#0 - [320] vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#10 - [321] vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0 - [322] call vera_layer_set_mapbase - to:vera_layer_mode_tile::@28 -vera_layer_mode_tile::@28: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@27 - [323] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 - [324] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 - [325] vera_layer_mode_tile::$7 = byte2 vera_layer_mode_tile::tilebase_address#10 - [326] vera_tilebase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$7 - [327] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 - [328] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 - [329] vera_layer_mode_tile::tilebase#0 = byte1 vera_layer_mode_tile::tilebase_address#0 - [330] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK - [331] if(vera_layer_mode_tile::tilewidth#10==8) goto vera_layer_mode_tile::@23 - to:vera_layer_mode_tile::@21 -vera_layer_mode_tile::@21: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@28 - [332] if(vera_layer_mode_tile::tilewidth#10!=$10) goto vera_layer_mode_tile::@23 - to:vera_layer_mode_tile::@22 -vera_layer_mode_tile::@22: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@21 - [333] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 - to:vera_layer_mode_tile::@23 -vera_layer_mode_tile::@23: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@21 vera_layer_mode_tile::@22 vera_layer_mode_tile::@28 - [334] vera_layer_mode_tile::tilebase#12 = phi( vera_layer_mode_tile::@21/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@28/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@22/vera_layer_mode_tile::tilebase#3 ) - [335] if(vera_layer_mode_tile::tileheight#10==8) goto vera_layer_mode_tile::@26 - to:vera_layer_mode_tile::@24 -vera_layer_mode_tile::@24: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@23 - [336] if(vera_layer_mode_tile::tileheight#10!=$10) goto vera_layer_mode_tile::@26 - to:vera_layer_mode_tile::@25 -vera_layer_mode_tile::@25: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@24 - [337] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 - to:vera_layer_mode_tile::@26 -vera_layer_mode_tile::@26: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@23 vera_layer_mode_tile::@24 vera_layer_mode_tile::@25 - [338] vera_layer_mode_tile::tilebase#10 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@23/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@25/vera_layer_mode_tile::tilebase#5 ) - [339] vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#10 - [340] vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10 - [341] call vera_layer_set_tilebase - to:vera_layer_mode_tile::@return -vera_layer_mode_tile::@return: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@26 - [342] return - to:@return -vera_layer_mode_tile::@18: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@15 - [343] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 - to:vera_layer_mode_tile::@20 -vera_layer_mode_tile::@17: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@14 - [344] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 - to:vera_layer_mode_tile::@20 -vera_layer_mode_tile::@11: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@7 - [345] vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_128 - [346] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 - [347] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 - [348] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 - to:vera_layer_mode_tile::@13 -vera_layer_mode_tile::@10: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@6 - [349] vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_64 - [350] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 - [351] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 - [352] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 - to:vera_layer_mode_tile::@13 -vera_layer_mode_tile::@9: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@5 - [353] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 - [354] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 - [355] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 - to:vera_layer_mode_tile::@13 - -void clrscr() -clrscr: scope:[clrscr] from main::@16 main::@18 - [356] clrscr::line_text#0 = (char *)CONIO_SCREEN_TEXT#17 - [357] vera_layer_get_backcolor::layer#0 = conio_screen_layer - [358] call vera_layer_get_backcolor - [359] vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 - to:clrscr::@7 -clrscr::@7: scope:[clrscr] from clrscr - [360] clrscr::$0 = vera_layer_get_backcolor::return#0 - [361] clrscr::$1 = clrscr::$0 << 4 - [362] vera_layer_get_textcolor::layer#0 = conio_screen_layer - [363] call vera_layer_get_textcolor - [364] vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 - to:clrscr::@8 -clrscr::@8: scope:[clrscr] from clrscr::@7 - [365] clrscr::$2 = vera_layer_get_textcolor::return#0 - [366] clrscr::color#0 = clrscr::$1 | clrscr::$2 - to:clrscr::@1 -clrscr::@1: scope:[clrscr] from clrscr::@6 clrscr::@8 - [367] clrscr::line_text#2 = phi( clrscr::@6/clrscr::line_text#1, clrscr::@8/clrscr::line_text#0 ) - [367] clrscr::l#2 = phi( clrscr::@6/clrscr::l#1, clrscr::@8/0 ) - [368] if(clrscr::l#2$0000 - rts - - continue1: - nop - }} - [444] kbhit::return#0 = kbhit::ch - to:kbhit::@return -kbhit::@return: scope:[kbhit] from kbhit - [445] kbhit::return#1 = kbhit::return#0 - [446] return - to:@return - -void vera_layer_set_text_color_mode(char layer , char color_mode) -vera_layer_set_text_color_mode: scope:[vera_layer_set_text_color_mode] from vera_layer_mode_text::@1 - [447] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) - [448] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C - [449] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 - to:vera_layer_set_text_color_mode::@return -vera_layer_set_text_color_mode::@return: scope:[vera_layer_set_text_color_mode] from vera_layer_set_text_color_mode - [450] return - to:@return - -char vera_layer_get_mapbase_bank(char layer) -vera_layer_get_mapbase_bank: scope:[vera_layer_get_mapbase_bank] from screenlayer - [451] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0] - to:vera_layer_get_mapbase_bank::@return -vera_layer_get_mapbase_bank::@return: scope:[vera_layer_get_mapbase_bank] from vera_layer_get_mapbase_bank - [452] return - to:@return - -unsigned int vera_layer_get_mapbase_offset(char layer) -vera_layer_get_mapbase_offset: scope:[vera_layer_get_mapbase_offset] from screenlayer::@3 - [453] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 - [454] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] - to:vera_layer_get_mapbase_offset::@return -vera_layer_get_mapbase_offset::@return: scope:[vera_layer_get_mapbase_offset] from vera_layer_get_mapbase_offset - [455] return - to:@return - -char vera_layer_get_rowshift(char layer) -vera_layer_get_rowshift: scope:[vera_layer_get_rowshift] from screenlayer::@1 - [456] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0] - to:vera_layer_get_rowshift::@return -vera_layer_get_rowshift::@return: scope:[vera_layer_get_rowshift] from vera_layer_get_rowshift - [457] return - to:@return - -unsigned int vera_layer_get_rowskip(char layer) -vera_layer_get_rowskip: scope:[vera_layer_get_rowskip] from screenlayer::@5 - [458] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 - [459] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] - to:vera_layer_get_rowskip::@return -vera_layer_get_rowskip::@return: scope:[vera_layer_get_rowskip] from vera_layer_get_rowskip - [460] return - to:@return - -void cscroll() -cscroll: scope:[cscroll] from cputln - [461] if(conio_cursor_y[conio_screen_layer] conio_screen_height - gotoxy::$1 = ! gotoxy::$0 - if(gotoxy::$1) goto gotoxy::@1 - to:gotoxy::@3 -gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 - gotoxy::y#6 = phi( gotoxy/gotoxy::y#4, gotoxy::@3/gotoxy::y#0 ) - gotoxy::x#4 = phi( gotoxy/gotoxy::x#6, gotoxy::@3/gotoxy::x#7 ) - gotoxy::$2 = gotoxy::x#4 >= conio_screen_width - gotoxy::$3 = ! gotoxy::$2 - if(gotoxy::$3) goto gotoxy::@2 - to:gotoxy::@4 -gotoxy::@3: scope:[gotoxy] from gotoxy - gotoxy::x#7 = phi( gotoxy/gotoxy::x#6 ) - gotoxy::y#0 = 0 - to:gotoxy::@1 -gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@4 - gotoxy::y#5 = phi( gotoxy::@1/gotoxy::y#6, gotoxy::@4/gotoxy::y#7 ) - gotoxy::x#5 = phi( gotoxy::@1/gotoxy::x#4, gotoxy::@4/gotoxy::x#0 ) - conio_cursor_x[conio_screen_layer] = gotoxy::x#5 - conio_cursor_y[conio_screen_layer] = gotoxy::y#5 - gotoxy::$6 = (unsigned int)gotoxy::y#5 - gotoxy::line_offset#0 = gotoxy::$6 << conio_rowshift - gotoxy::$5 = conio_screen_layer * SIZEOF_UNSIGNED_INT - conio_line_text[gotoxy::$5] = gotoxy::line_offset#0 - to:gotoxy::@return -gotoxy::@4: scope:[gotoxy] from gotoxy::@1 - gotoxy::y#7 = phi( gotoxy::@1/gotoxy::y#6 ) - gotoxy::x#0 = 0 - to:gotoxy::@2 -gotoxy::@return: scope:[gotoxy] from gotoxy::@2 - return - to:@return - -void screensize(char *x , char *y) -screensize: scope:[screensize] from conio_x16_init::@3 - screensize::y#1 = phi( conio_x16_init::@3/screensize::y#0 ) - screensize::x#1 = phi( conio_x16_init::@3/screensize::x#0 ) - screensize::hscale#0 = *VERA_DC_HSCALE >> 7 - screensize::$1 = $28 << screensize::hscale#0 - *screensize::x#1 = screensize::$1 - screensize::vscale#0 = *VERA_DC_VSCALE >> 7 - screensize::$3 = $1e << screensize::vscale#0 - *screensize::y#1 = screensize::$3 - to:screensize::@return -screensize::@return: scope:[screensize] from screensize - return - to:@return - -__stackcall void cputc(char c) -cputc: scope:[cputc] from - CONIO_SCREEN_BANK#33 = phi( ) - CONIO_SCREEN_TEXT#26 = phi( ) - cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C) - vera_layer_get_color::layer#0 = conio_screen_layer - call vera_layer_get_color - vera_layer_get_color::return#0 = vera_layer_get_color::return#3 - to:cputc::@7 -cputc::@7: scope:[cputc] from cputc - CONIO_SCREEN_BANK#23 = phi( cputc/CONIO_SCREEN_BANK#33 ) - cputc::c#1 = phi( cputc/cputc::c#0 ) - CONIO_SCREEN_TEXT#12 = phi( cputc/CONIO_SCREEN_TEXT#26 ) - vera_layer_get_color::return#5 = phi( cputc/vera_layer_get_color::return#0 ) - cputc::color#0 = vera_layer_get_color::return#5 - cputc::$15 = conio_screen_layer * SIZEOF_UNSIGNED_INT - cputc::conio_addr#0 = CONIO_SCREEN_TEXT#12 + conio_line_text[cputc::$15] - cputc::$2 = conio_cursor_x[conio_screen_layer] << 1 - cputc::conio_addr#1 = cputc::conio_addr#0 + cputc::$2 - cputc::$3 = cputc::c#1 == ' -' - if(cputc::$3) goto cputc::@1 - to:cputc::@2 -cputc::@1: scope:[cputc] from cputc::@7 - CONIO_SCREEN_TEXT#72 = phi( cputc::@7/CONIO_SCREEN_TEXT#12 ) - call cputln - to:cputc::@8 -cputc::@8: scope:[cputc] from cputc::@1 - to:cputc::@return -cputc::@2: scope:[cputc] from cputc::@7 - CONIO_SCREEN_TEXT#81 = phi( cputc::@7/CONIO_SCREEN_TEXT#12 ) - cputc::color#1 = phi( cputc::@7/cputc::color#0 ) - cputc::c#2 = phi( cputc::@7/cputc::c#1 ) - CONIO_SCREEN_BANK#12 = phi( cputc::@7/CONIO_SCREEN_BANK#23 ) - cputc::conio_addr#2 = phi( cputc::@7/cputc::conio_addr#1 ) - *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL - cputc::$4 = byte0 cputc::conio_addr#2 - *VERA_ADDRX_L = cputc::$4 - cputc::$5 = byte1 cputc::conio_addr#2 - *VERA_ADDRX_M = cputc::$5 - cputc::$6 = CONIO_SCREEN_BANK#12 | VERA_INC_1 - *VERA_ADDRX_H = cputc::$6 - *VERA_DATA0 = cputc::c#2 - *VERA_DATA0 = cputc::color#1 - conio_cursor_x[conio_screen_layer] = ++ conio_cursor_x[conio_screen_layer] - cputc::scroll_enable#0 = conio_scroll_enable[conio_screen_layer] - cputc::$17 = 0 != cputc::scroll_enable#0 - if(cputc::$17) goto cputc::@5 - to:cputc::@3 -cputc::@5: scope:[cputc] from cputc::@2 - CONIO_SCREEN_TEXT#78 = phi( cputc::@2/CONIO_SCREEN_TEXT#81 ) - cputc::$11 = conio_cursor_x[conio_screen_layer] == conio_screen_width - cputc::$12 = ! cputc::$11 - if(cputc::$12) goto cputc::@return - to:cputc::@6 -cputc::@3: scope:[cputc] from cputc::@2 - CONIO_SCREEN_TEXT#77 = phi( cputc::@2/CONIO_SCREEN_TEXT#81 ) - cputc::$16 = (unsigned int)conio_cursor_x[conio_screen_layer] - cputc::$8 = cputc::$16 == conio_width - cputc::$9 = ! cputc::$8 - if(cputc::$9) goto cputc::@return - to:cputc::@4 -cputc::@4: scope:[cputc] from cputc::@3 - CONIO_SCREEN_TEXT#73 = phi( cputc::@3/CONIO_SCREEN_TEXT#77 ) - call cputln - to:cputc::@9 -cputc::@9: scope:[cputc] from cputc::@4 - to:cputc::@return -cputc::@6: scope:[cputc] from cputc::@5 - CONIO_SCREEN_TEXT#74 = phi( cputc::@5/CONIO_SCREEN_TEXT#78 ) - call cputln - to:cputc::@10 -cputc::@10: scope:[cputc] from cputc::@6 - to:cputc::@return -cputc::@return: scope:[cputc] from cputc::@10 cputc::@3 cputc::@5 cputc::@8 cputc::@9 - return - to:@return - -void cputln() -cputln: scope:[cputln] from cputc::@1 cputc::@4 cputc::@6 - CONIO_SCREEN_TEXT#67 = phi( cputc::@1/CONIO_SCREEN_TEXT#72, cputc::@4/CONIO_SCREEN_TEXT#73, cputc::@6/CONIO_SCREEN_TEXT#74 ) - cputln::$2 = conio_screen_layer * SIZEOF_UNSIGNED_INT - cputln::temp#0 = conio_line_text[cputln::$2] - cputln::temp#1 = cputln::temp#0 + conio_rowskip - cputln::$3 = conio_screen_layer * SIZEOF_UNSIGNED_INT - conio_line_text[cputln::$3] = cputln::temp#1 - conio_cursor_x[conio_screen_layer] = 0 - conio_cursor_y[conio_screen_layer] = ++ conio_cursor_y[conio_screen_layer] - call cscroll - to:cputln::@1 -cputln::@1: scope:[cputln] from cputln - to:cputln::@return -cputln::@return: scope:[cputln] from cputln::@1 - return - to:@return - -char kbhit() -kbhit: scope:[kbhit] from main::@14 main::@9 - kbhit::ch = 0 - kickasm( uses kbhit::chptr uses kbhit::IN_DEV uses kbhit::GETIN) {{ jsr _kbhit - bne L3 - - jmp continue1 - - .var via1 = $9f60 //VIA#1 - .var d1pra = via1+1 - - _kbhit: - ldy d1pra // The count of keys pressed is stored in RAM bank 0. - stz d1pra // Set d1pra to zero to access RAM bank 0. - lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). - sty d1pra // Set d1pra to previous value. - rts - - L3: - ldy IN_DEV // Save current input device - stz IN_DEV // Keyboard - phy - jsr GETIN // Read char, and return in .A - ply - sta chptr // Store the character read in ch - sty IN_DEV // Restore input device - ldx #>$0000 - rts - - continue1: - nop - }} - kbhit::return#0 = kbhit::ch - to:kbhit::@return -kbhit::@return: scope:[kbhit] from kbhit - kbhit::return#4 = phi( kbhit/kbhit::return#0 ) - kbhit::return#1 = kbhit::return#4 - return - to:@return - -void vera_layer_set_config(char layer , char config) -vera_layer_set_config: scope:[vera_layer_set_config] from vera_layer_mode_tile::@24 - vera_layer_set_config::config#1 = phi( vera_layer_mode_tile::@24/vera_layer_set_config::config#0 ) - vera_layer_set_config::layer#1 = phi( vera_layer_mode_tile::@24/vera_layer_set_config::layer#0 ) - vera_layer_set_config::$0 = vera_layer_set_config::layer#1 * SIZEOF_POINTER - vera_layer_set_config::addr#0 = vera_layer_config[vera_layer_set_config::$0] - *vera_layer_set_config::addr#0 = vera_layer_set_config::config#1 - to:vera_layer_set_config::@return -vera_layer_set_config::@return: scope:[vera_layer_set_config] from vera_layer_set_config - return - to:@return - -void vera_layer_set_text_color_mode(char layer , char color_mode) -vera_layer_set_text_color_mode: scope:[vera_layer_set_text_color_mode] from vera_layer_mode_text::@2 vera_layer_mode_text::@3 - vera_layer_set_text_color_mode::color_mode#2 = phi( vera_layer_mode_text::@2/vera_layer_set_text_color_mode::color_mode#0, vera_layer_mode_text::@3/vera_layer_set_text_color_mode::color_mode#1 ) - vera_layer_set_text_color_mode::layer#2 = phi( vera_layer_mode_text::@2/vera_layer_set_text_color_mode::layer#0, vera_layer_mode_text::@3/vera_layer_set_text_color_mode::layer#1 ) - vera_layer_set_text_color_mode::$0 = vera_layer_set_text_color_mode::layer#2 * SIZEOF_POINTER - vera_layer_set_text_color_mode::addr#0 = vera_layer_config[vera_layer_set_text_color_mode::$0] - *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C - *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 | vera_layer_set_text_color_mode::color_mode#2 - to:vera_layer_set_text_color_mode::@return -vera_layer_set_text_color_mode::@return: scope:[vera_layer_set_text_color_mode] from vera_layer_set_text_color_mode - return - to:@return - -void vera_layer_set_mapbase(char layer , char mapbase) -vera_layer_set_mapbase: scope:[vera_layer_set_mapbase] from conio_x16_init::@7 conio_x16_init::@8 vera_layer_mode_tile::@33 - vera_layer_set_mapbase::mapbase#3 = phi( conio_x16_init::@7/vera_layer_set_mapbase::mapbase#1, conio_x16_init::@8/vera_layer_set_mapbase::mapbase#2, vera_layer_mode_tile::@33/vera_layer_set_mapbase::mapbase#0 ) - vera_layer_set_mapbase::layer#3 = phi( conio_x16_init::@7/vera_layer_set_mapbase::layer#1, conio_x16_init::@8/vera_layer_set_mapbase::layer#2, vera_layer_mode_tile::@33/vera_layer_set_mapbase::layer#0 ) - vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 * SIZEOF_POINTER - vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] - *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 - to:vera_layer_set_mapbase::@return -vera_layer_set_mapbase::@return: scope:[vera_layer_set_mapbase] from vera_layer_set_mapbase - return - to:@return - -char vera_layer_get_mapbase_bank(char layer) -vera_layer_get_mapbase_bank: scope:[vera_layer_get_mapbase_bank] from screenlayer - vera_layer_get_mapbase_bank::layer#1 = phi( screenlayer/vera_layer_get_mapbase_bank::layer#0 ) - vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#1] - to:vera_layer_get_mapbase_bank::@return -vera_layer_get_mapbase_bank::@return: scope:[vera_layer_get_mapbase_bank] from vera_layer_get_mapbase_bank - vera_layer_get_mapbase_bank::return#3 = phi( vera_layer_get_mapbase_bank/vera_layer_get_mapbase_bank::return#0 ) - vera_layer_get_mapbase_bank::return#1 = vera_layer_get_mapbase_bank::return#3 - return - to:@return - -unsigned int vera_layer_get_mapbase_offset(char layer) -vera_layer_get_mapbase_offset: scope:[vera_layer_get_mapbase_offset] from screenlayer::@3 - vera_layer_get_mapbase_offset::layer#1 = phi( screenlayer::@3/vera_layer_get_mapbase_offset::layer#0 ) - vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#1 * SIZEOF_UNSIGNED_INT - vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] - to:vera_layer_get_mapbase_offset::@return -vera_layer_get_mapbase_offset::@return: scope:[vera_layer_get_mapbase_offset] from vera_layer_get_mapbase_offset - vera_layer_get_mapbase_offset::return#3 = phi( vera_layer_get_mapbase_offset/vera_layer_get_mapbase_offset::return#0 ) - vera_layer_get_mapbase_offset::return#1 = vera_layer_get_mapbase_offset::return#3 - return - to:@return - -void vera_layer_set_tilebase(char layer , char tilebase) -vera_layer_set_tilebase: scope:[vera_layer_set_tilebase] from vera_layer_mode_tile::@32 - vera_layer_set_tilebase::tilebase#1 = phi( vera_layer_mode_tile::@32/vera_layer_set_tilebase::tilebase#0 ) - vera_layer_set_tilebase::layer#1 = phi( vera_layer_mode_tile::@32/vera_layer_set_tilebase::layer#0 ) - vera_layer_set_tilebase::$0 = vera_layer_set_tilebase::layer#1 * SIZEOF_POINTER - vera_layer_set_tilebase::addr#0 = vera_layer_tilebase[vera_layer_set_tilebase::$0] - *vera_layer_set_tilebase::addr#0 = vera_layer_set_tilebase::tilebase#1 - to:vera_layer_set_tilebase::@return -vera_layer_set_tilebase::@return: scope:[vera_layer_set_tilebase] from vera_layer_set_tilebase - return - to:@return - -char vera_layer_set_textcolor(char layer , char color) -vera_layer_set_textcolor: scope:[vera_layer_set_textcolor] from conio_x16_init::@5 main::textcolor1 main::textcolor2 - vera_layer_set_textcolor::color#3 = phi( conio_x16_init::@5/vera_layer_set_textcolor::color#0, main::textcolor1/vera_layer_set_textcolor::color#1, main::textcolor2/vera_layer_set_textcolor::color#2 ) - vera_layer_set_textcolor::layer#3 = phi( conio_x16_init::@5/vera_layer_set_textcolor::layer#0, main::textcolor1/vera_layer_set_textcolor::layer#1, main::textcolor2/vera_layer_set_textcolor::layer#2 ) - vera_layer_set_textcolor::old#0 = vera_layer_textcolor[vera_layer_set_textcolor::layer#3] - vera_layer_textcolor[vera_layer_set_textcolor::layer#3] = vera_layer_set_textcolor::color#3 - vera_layer_set_textcolor::return#0 = vera_layer_set_textcolor::old#0 - to:vera_layer_set_textcolor::@return -vera_layer_set_textcolor::@return: scope:[vera_layer_set_textcolor] from vera_layer_set_textcolor - vera_layer_set_textcolor::return#5 = phi( vera_layer_set_textcolor/vera_layer_set_textcolor::return#0 ) - vera_layer_set_textcolor::return#1 = vera_layer_set_textcolor::return#5 - return - to:@return - -char vera_layer_get_textcolor(char layer) -vera_layer_get_textcolor: scope:[vera_layer_get_textcolor] from clrscr::@7 - vera_layer_get_textcolor::layer#1 = phi( clrscr::@7/vera_layer_get_textcolor::layer#0 ) - vera_layer_get_textcolor::return#1 = vera_layer_textcolor[vera_layer_get_textcolor::layer#1] - to:vera_layer_get_textcolor::@return -vera_layer_get_textcolor::@return: scope:[vera_layer_get_textcolor] from vera_layer_get_textcolor - vera_layer_get_textcolor::return#4 = phi( vera_layer_get_textcolor/vera_layer_get_textcolor::return#1 ) - vera_layer_get_textcolor::return#2 = vera_layer_get_textcolor::return#4 - return - to:@return - -char vera_layer_set_backcolor(char layer , char color) -vera_layer_set_backcolor: scope:[vera_layer_set_backcolor] from conio_x16_init::@6 main::bgcolor1 main::bgcolor2 - vera_layer_set_backcolor::color#3 = phi( conio_x16_init::@6/vera_layer_set_backcolor::color#0, main::bgcolor1/vera_layer_set_backcolor::color#1, main::bgcolor2/vera_layer_set_backcolor::color#2 ) - vera_layer_set_backcolor::layer#3 = phi( conio_x16_init::@6/vera_layer_set_backcolor::layer#0, main::bgcolor1/vera_layer_set_backcolor::layer#1, main::bgcolor2/vera_layer_set_backcolor::layer#2 ) - vera_layer_set_backcolor::old#0 = vera_layer_backcolor[vera_layer_set_backcolor::layer#3] - vera_layer_backcolor[vera_layer_set_backcolor::layer#3] = vera_layer_set_backcolor::color#3 - vera_layer_set_backcolor::return#0 = vera_layer_set_backcolor::old#0 - to:vera_layer_set_backcolor::@return -vera_layer_set_backcolor::@return: scope:[vera_layer_set_backcolor] from vera_layer_set_backcolor - vera_layer_set_backcolor::return#5 = phi( vera_layer_set_backcolor/vera_layer_set_backcolor::return#0 ) - vera_layer_set_backcolor::return#1 = vera_layer_set_backcolor::return#5 - return - to:@return - -char vera_layer_get_backcolor(char layer) -vera_layer_get_backcolor: scope:[vera_layer_get_backcolor] from clrscr - vera_layer_get_backcolor::layer#1 = phi( clrscr/vera_layer_get_backcolor::layer#0 ) - vera_layer_get_backcolor::return#1 = vera_layer_backcolor[vera_layer_get_backcolor::layer#1] - to:vera_layer_get_backcolor::@return -vera_layer_get_backcolor::@return: scope:[vera_layer_get_backcolor] from vera_layer_get_backcolor - vera_layer_get_backcolor::return#4 = phi( vera_layer_get_backcolor/vera_layer_get_backcolor::return#1 ) - vera_layer_get_backcolor::return#2 = vera_layer_get_backcolor::return#4 - return - to:@return - -char vera_layer_get_color(char layer) -vera_layer_get_color: scope:[vera_layer_get_color] from clearline cputc - vera_layer_get_color::layer#2 = phi( clearline/vera_layer_get_color::layer#1, cputc/vera_layer_get_color::layer#0 ) - vera_layer_get_color::$3 = vera_layer_get_color::layer#2 * SIZEOF_POINTER - vera_layer_get_color::addr#0 = vera_layer_config[vera_layer_get_color::$3] - vera_layer_get_color::$0 = *vera_layer_get_color::addr#0 & VERA_LAYER_CONFIG_256C - vera_layer_get_color::$4 = 0 != vera_layer_get_color::$0 - if(vera_layer_get_color::$4) goto vera_layer_get_color::@1 - to:vera_layer_get_color::@2 -vera_layer_get_color::@1: scope:[vera_layer_get_color] from vera_layer_get_color - vera_layer_get_color::layer#3 = phi( vera_layer_get_color/vera_layer_get_color::layer#2 ) - vera_layer_get_color::return#1 = vera_layer_textcolor[vera_layer_get_color::layer#3] - to:vera_layer_get_color::@return -vera_layer_get_color::@2: scope:[vera_layer_get_color] from vera_layer_get_color - vera_layer_get_color::layer#4 = phi( vera_layer_get_color/vera_layer_get_color::layer#2 ) - vera_layer_get_color::$1 = vera_layer_backcolor[vera_layer_get_color::layer#4] << 4 - vera_layer_get_color::$2 = vera_layer_get_color::$1 | vera_layer_textcolor[vera_layer_get_color::layer#4] - vera_layer_get_color::return#2 = vera_layer_get_color::$2 - to:vera_layer_get_color::@return -vera_layer_get_color::@return: scope:[vera_layer_get_color] from vera_layer_get_color::@1 vera_layer_get_color::@2 - vera_layer_get_color::return#6 = phi( vera_layer_get_color::@1/vera_layer_get_color::return#1, vera_layer_get_color::@2/vera_layer_get_color::return#2 ) - vera_layer_get_color::return#3 = vera_layer_get_color::return#6 - return - to:@return - -char vera_layer_get_rowshift(char layer) -vera_layer_get_rowshift: scope:[vera_layer_get_rowshift] from screenlayer::@1 - vera_layer_get_rowshift::layer#1 = phi( screenlayer::@1/vera_layer_get_rowshift::layer#0 ) - vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#1] - to:vera_layer_get_rowshift::@return -vera_layer_get_rowshift::@return: scope:[vera_layer_get_rowshift] from vera_layer_get_rowshift - vera_layer_get_rowshift::return#3 = phi( vera_layer_get_rowshift/vera_layer_get_rowshift::return#0 ) - vera_layer_get_rowshift::return#1 = vera_layer_get_rowshift::return#3 - return - to:@return - -unsigned int vera_layer_get_rowskip(char layer) -vera_layer_get_rowskip: scope:[vera_layer_get_rowskip] from screenlayer::@5 - vera_layer_get_rowskip::layer#1 = phi( screenlayer::@5/vera_layer_get_rowskip::layer#0 ) - vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#1 * SIZEOF_UNSIGNED_INT - vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] - to:vera_layer_get_rowskip::@return -vera_layer_get_rowskip::@return: scope:[vera_layer_get_rowskip] from vera_layer_get_rowskip - vera_layer_get_rowskip::return#3 = phi( vera_layer_get_rowskip/vera_layer_get_rowskip::return#0 ) - vera_layer_get_rowskip::return#1 = vera_layer_get_rowskip::return#3 - return - to:@return - -void vera_layer_mode_tile(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , char color_depth) -vera_layer_mode_tile: scope:[vera_layer_mode_tile] from main::@21 main::@26 main::@46 main::@47 vera_layer_mode_text - vera_layer_mode_tile::tileheight#34 = phi( main::@21/vera_layer_mode_tile::tileheight#1, main::@26/vera_layer_mode_tile::tileheight#2, main::@46/vera_layer_mode_tile::tileheight#3, main::@47/vera_layer_mode_tile::tileheight#4, vera_layer_mode_text/vera_layer_mode_tile::tileheight#0 ) - vera_layer_mode_tile::tilewidth#30 = phi( main::@21/vera_layer_mode_tile::tilewidth#1, main::@26/vera_layer_mode_tile::tilewidth#2, main::@46/vera_layer_mode_tile::tilewidth#3, main::@47/vera_layer_mode_tile::tilewidth#4, vera_layer_mode_text/vera_layer_mode_tile::tilewidth#0 ) - vera_layer_mode_tile::tilebase_address#30 = phi( main::@21/vera_layer_mode_tile::tilebase_address#2, main::@26/vera_layer_mode_tile::tilebase_address#3, main::@46/vera_layer_mode_tile::tilebase_address#4, main::@47/vera_layer_mode_tile::tilebase_address#5, vera_layer_mode_text/vera_layer_mode_tile::tilebase_address#1 ) - vera_layer_mode_tile::mapbase_address#29 = phi( main::@21/vera_layer_mode_tile::mapbase_address#2, main::@26/vera_layer_mode_tile::mapbase_address#3, main::@46/vera_layer_mode_tile::mapbase_address#4, main::@47/vera_layer_mode_tile::mapbase_address#5, vera_layer_mode_text/vera_layer_mode_tile::mapbase_address#1 ) - vera_layer_mode_tile::mapheight#22 = phi( main::@21/vera_layer_mode_tile::mapheight#1, main::@26/vera_layer_mode_tile::mapheight#2, main::@46/vera_layer_mode_tile::mapheight#3, main::@47/vera_layer_mode_tile::mapheight#4, vera_layer_mode_text/vera_layer_mode_tile::mapheight#0 ) - vera_layer_mode_tile::layer#34 = phi( main::@21/vera_layer_mode_tile::layer#1, main::@26/vera_layer_mode_tile::layer#2, main::@46/vera_layer_mode_tile::layer#3, main::@47/vera_layer_mode_tile::layer#4, vera_layer_mode_text/vera_layer_mode_tile::layer#0 ) - vera_layer_mode_tile::mapwidth#14 = phi( main::@21/vera_layer_mode_tile::mapwidth#1, main::@26/vera_layer_mode_tile::mapwidth#2, main::@46/vera_layer_mode_tile::mapwidth#3, main::@47/vera_layer_mode_tile::mapwidth#4, vera_layer_mode_text/vera_layer_mode_tile::mapwidth#0 ) - vera_layer_mode_tile::color_depth#5 = phi( main::@21/vera_layer_mode_tile::color_depth#1, main::@26/vera_layer_mode_tile::color_depth#2, main::@46/vera_layer_mode_tile::color_depth#3, main::@47/vera_layer_mode_tile::color_depth#4, vera_layer_mode_text/vera_layer_mode_tile::color_depth#0 ) - vera_layer_mode_tile::config#0 = 0 - if(vera_layer_mode_tile::color_depth#5==1) goto vera_layer_mode_tile::@4 - to:vera_layer_mode_tile::@1 -vera_layer_mode_tile::@4: scope:[vera_layer_mode_tile] from vera_layer_mode_tile - vera_layer_mode_tile::tileheight#30 = phi( vera_layer_mode_tile/vera_layer_mode_tile::tileheight#34 ) - vera_layer_mode_tile::tilewidth#26 = phi( vera_layer_mode_tile/vera_layer_mode_tile::tilewidth#30 ) - vera_layer_mode_tile::tilebase_address#26 = phi( vera_layer_mode_tile/vera_layer_mode_tile::tilebase_address#30 ) - vera_layer_mode_tile::mapbase_address#25 = phi( vera_layer_mode_tile/vera_layer_mode_tile::mapbase_address#29 ) - vera_layer_mode_tile::mapheight#18 = phi( vera_layer_mode_tile/vera_layer_mode_tile::mapheight#22 ) - vera_layer_mode_tile::layer#26 = phi( vera_layer_mode_tile/vera_layer_mode_tile::layer#34 ) - vera_layer_mode_tile::mapwidth#10 = phi( vera_layer_mode_tile/vera_layer_mode_tile::mapwidth#14 ) - vera_layer_mode_tile::config#13 = phi( vera_layer_mode_tile/vera_layer_mode_tile::config#0 ) - vera_layer_mode_tile::config#1 = vera_layer_mode_tile::config#13 | VERA_LAYER_COLOR_DEPTH_1BPP - to:vera_layer_mode_tile::@8 -vera_layer_mode_tile::@1: scope:[vera_layer_mode_tile] from vera_layer_mode_tile - vera_layer_mode_tile::tileheight#35 = phi( vera_layer_mode_tile/vera_layer_mode_tile::tileheight#34 ) - vera_layer_mode_tile::tilewidth#31 = phi( vera_layer_mode_tile/vera_layer_mode_tile::tilewidth#30 ) - vera_layer_mode_tile::tilebase_address#31 = phi( vera_layer_mode_tile/vera_layer_mode_tile::tilebase_address#30 ) - vera_layer_mode_tile::mapbase_address#30 = phi( vera_layer_mode_tile/vera_layer_mode_tile::mapbase_address#29 ) - vera_layer_mode_tile::mapheight#23 = phi( vera_layer_mode_tile/vera_layer_mode_tile::mapheight#22 ) - vera_layer_mode_tile::layer#35 = phi( vera_layer_mode_tile/vera_layer_mode_tile::layer#34 ) - vera_layer_mode_tile::mapwidth#15 = phi( vera_layer_mode_tile/vera_layer_mode_tile::mapwidth#14 ) - vera_layer_mode_tile::config#26 = phi( vera_layer_mode_tile/vera_layer_mode_tile::config#0 ) - vera_layer_mode_tile::color_depth#6 = phi( vera_layer_mode_tile/vera_layer_mode_tile::color_depth#5 ) - if(vera_layer_mode_tile::color_depth#6==2) goto vera_layer_mode_tile::@5 - to:vera_layer_mode_tile::@2 -vera_layer_mode_tile::@5: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@1 - vera_layer_mode_tile::tileheight#31 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::tileheight#35 ) - vera_layer_mode_tile::tilewidth#27 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::tilewidth#31 ) - vera_layer_mode_tile::tilebase_address#27 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::tilebase_address#31 ) - vera_layer_mode_tile::mapbase_address#26 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::mapbase_address#30 ) - vera_layer_mode_tile::mapheight#19 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::mapheight#23 ) - vera_layer_mode_tile::layer#27 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::layer#35 ) - vera_layer_mode_tile::mapwidth#11 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::mapwidth#15 ) - vera_layer_mode_tile::config#14 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::config#26 ) - vera_layer_mode_tile::config#2 = vera_layer_mode_tile::config#14 | VERA_LAYER_COLOR_DEPTH_2BPP - to:vera_layer_mode_tile::@8 -vera_layer_mode_tile::@2: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@1 - vera_layer_mode_tile::tileheight#36 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::tileheight#35 ) - vera_layer_mode_tile::tilewidth#32 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::tilewidth#31 ) - vera_layer_mode_tile::tilebase_address#32 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::tilebase_address#31 ) - vera_layer_mode_tile::mapbase_address#31 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::mapbase_address#30 ) - vera_layer_mode_tile::mapheight#24 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::mapheight#23 ) - vera_layer_mode_tile::layer#36 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::layer#35 ) - vera_layer_mode_tile::mapwidth#16 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::mapwidth#15 ) - vera_layer_mode_tile::config#27 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::config#26 ) - vera_layer_mode_tile::color_depth#7 = phi( vera_layer_mode_tile::@1/vera_layer_mode_tile::color_depth#6 ) - if(vera_layer_mode_tile::color_depth#7==4) goto vera_layer_mode_tile::@6 - to:vera_layer_mode_tile::@3 -vera_layer_mode_tile::@6: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@2 - vera_layer_mode_tile::tileheight#32 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::tileheight#36 ) - vera_layer_mode_tile::tilewidth#28 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::tilewidth#32 ) - vera_layer_mode_tile::tilebase_address#28 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::tilebase_address#32 ) - vera_layer_mode_tile::mapbase_address#27 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::mapbase_address#31 ) - vera_layer_mode_tile::mapheight#20 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::mapheight#24 ) - vera_layer_mode_tile::layer#28 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::layer#36 ) - vera_layer_mode_tile::mapwidth#12 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::mapwidth#16 ) - vera_layer_mode_tile::config#15 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::config#27 ) - vera_layer_mode_tile::config#3 = vera_layer_mode_tile::config#15 | VERA_LAYER_COLOR_DEPTH_4BPP - to:vera_layer_mode_tile::@8 -vera_layer_mode_tile::@3: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@2 - vera_layer_mode_tile::tileheight#29 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::tileheight#36 ) - vera_layer_mode_tile::tilewidth#25 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::tilewidth#32 ) - vera_layer_mode_tile::tilebase_address#25 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::tilebase_address#32 ) - vera_layer_mode_tile::mapbase_address#24 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::mapbase_address#31 ) - vera_layer_mode_tile::mapheight#17 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::mapheight#24 ) - vera_layer_mode_tile::layer#25 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::layer#36 ) - vera_layer_mode_tile::mapwidth#9 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::mapwidth#16 ) - vera_layer_mode_tile::config#28 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::config#27 ) - vera_layer_mode_tile::color_depth#8 = phi( vera_layer_mode_tile::@2/vera_layer_mode_tile::color_depth#7 ) - if(vera_layer_mode_tile::color_depth#8==8) goto vera_layer_mode_tile::@7 - to:vera_layer_mode_tile::@8 -vera_layer_mode_tile::@7: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@3 - vera_layer_mode_tile::tileheight#33 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::tileheight#29 ) - vera_layer_mode_tile::tilewidth#29 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::tilewidth#25 ) - vera_layer_mode_tile::tilebase_address#29 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::tilebase_address#25 ) - vera_layer_mode_tile::mapbase_address#28 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::mapbase_address#24 ) - vera_layer_mode_tile::mapheight#21 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::mapheight#17 ) - vera_layer_mode_tile::layer#29 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::layer#25 ) - vera_layer_mode_tile::mapwidth#13 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::mapwidth#9 ) - vera_layer_mode_tile::config#16 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::config#28 ) - vera_layer_mode_tile::config#4 = vera_layer_mode_tile::config#16 | VERA_LAYER_COLOR_DEPTH_8BPP - to:vera_layer_mode_tile::@8 -vera_layer_mode_tile::@8: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@3 vera_layer_mode_tile::@4 vera_layer_mode_tile::@5 vera_layer_mode_tile::@6 vera_layer_mode_tile::@7 - vera_layer_mode_tile::tileheight#26 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::tileheight#29, vera_layer_mode_tile::@4/vera_layer_mode_tile::tileheight#30, vera_layer_mode_tile::@5/vera_layer_mode_tile::tileheight#31, vera_layer_mode_tile::@6/vera_layer_mode_tile::tileheight#32, vera_layer_mode_tile::@7/vera_layer_mode_tile::tileheight#33 ) - vera_layer_mode_tile::tilewidth#22 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::tilewidth#25, vera_layer_mode_tile::@4/vera_layer_mode_tile::tilewidth#26, vera_layer_mode_tile::@5/vera_layer_mode_tile::tilewidth#27, vera_layer_mode_tile::@6/vera_layer_mode_tile::tilewidth#28, vera_layer_mode_tile::@7/vera_layer_mode_tile::tilewidth#29 ) - vera_layer_mode_tile::tilebase_address#22 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::tilebase_address#25, vera_layer_mode_tile::@4/vera_layer_mode_tile::tilebase_address#26, vera_layer_mode_tile::@5/vera_layer_mode_tile::tilebase_address#27, vera_layer_mode_tile::@6/vera_layer_mode_tile::tilebase_address#28, vera_layer_mode_tile::@7/vera_layer_mode_tile::tilebase_address#29 ) - vera_layer_mode_tile::mapbase_address#21 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::mapbase_address#24, vera_layer_mode_tile::@4/vera_layer_mode_tile::mapbase_address#25, vera_layer_mode_tile::@5/vera_layer_mode_tile::mapbase_address#26, vera_layer_mode_tile::@6/vera_layer_mode_tile::mapbase_address#27, vera_layer_mode_tile::@7/vera_layer_mode_tile::mapbase_address#28 ) - vera_layer_mode_tile::mapheight#14 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::mapheight#17, vera_layer_mode_tile::@4/vera_layer_mode_tile::mapheight#18, vera_layer_mode_tile::@5/vera_layer_mode_tile::mapheight#19, vera_layer_mode_tile::@6/vera_layer_mode_tile::mapheight#20, vera_layer_mode_tile::@7/vera_layer_mode_tile::mapheight#21 ) - vera_layer_mode_tile::layer#13 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::layer#25, vera_layer_mode_tile::@4/vera_layer_mode_tile::layer#26, vera_layer_mode_tile::@5/vera_layer_mode_tile::layer#27, vera_layer_mode_tile::@6/vera_layer_mode_tile::layer#28, vera_layer_mode_tile::@7/vera_layer_mode_tile::layer#29 ) - vera_layer_mode_tile::config#29 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::config#28, vera_layer_mode_tile::@4/vera_layer_mode_tile::config#1, vera_layer_mode_tile::@5/vera_layer_mode_tile::config#2, vera_layer_mode_tile::@6/vera_layer_mode_tile::config#3, vera_layer_mode_tile::@7/vera_layer_mode_tile::config#4 ) - vera_layer_mode_tile::mapwidth#5 = phi( vera_layer_mode_tile::@3/vera_layer_mode_tile::mapwidth#9, vera_layer_mode_tile::@4/vera_layer_mode_tile::mapwidth#10, vera_layer_mode_tile::@5/vera_layer_mode_tile::mapwidth#11, vera_layer_mode_tile::@6/vera_layer_mode_tile::mapwidth#12, vera_layer_mode_tile::@7/vera_layer_mode_tile::mapwidth#13 ) - if(vera_layer_mode_tile::mapwidth#5==$20) goto vera_layer_mode_tile::@12 - to:vera_layer_mode_tile::@9 -vera_layer_mode_tile::@12: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@8 - vera_layer_mode_tile::tileheight#22 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::tileheight#26 ) - vera_layer_mode_tile::tilewidth#18 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::tilewidth#22 ) - vera_layer_mode_tile::tilebase_address#18 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::tilebase_address#22 ) - vera_layer_mode_tile::mapbase_address#17 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::mapbase_address#21 ) - vera_layer_mode_tile::mapheight#10 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::mapheight#14 ) - vera_layer_mode_tile::layer#5 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::layer#13 ) - vera_layer_mode_tile::config#17 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::config#29 ) - vera_layer_mode_tile::config#5 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_32 - vera_layer_rowshift[vera_layer_mode_tile::layer#5] = 6 - vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#5 * SIZEOF_UNSIGNED_INT - vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 - to:vera_layer_mode_tile::@16 -vera_layer_mode_tile::@9: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@8 - vera_layer_mode_tile::tileheight#27 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::tileheight#26 ) - vera_layer_mode_tile::tilewidth#23 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::tilewidth#22 ) - vera_layer_mode_tile::tilebase_address#23 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::tilebase_address#22 ) - vera_layer_mode_tile::mapbase_address#22 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::mapbase_address#21 ) - vera_layer_mode_tile::mapheight#15 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::mapheight#14 ) - vera_layer_mode_tile::layer#14 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::layer#13 ) - vera_layer_mode_tile::config#30 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::config#29 ) - vera_layer_mode_tile::mapwidth#6 = phi( vera_layer_mode_tile::@8/vera_layer_mode_tile::mapwidth#5 ) - if(vera_layer_mode_tile::mapwidth#6==$40) goto vera_layer_mode_tile::@13 - to:vera_layer_mode_tile::@10 -vera_layer_mode_tile::@13: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@9 - vera_layer_mode_tile::tileheight#23 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::tileheight#27 ) - vera_layer_mode_tile::tilewidth#19 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::tilewidth#23 ) - vera_layer_mode_tile::tilebase_address#19 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::tilebase_address#23 ) - vera_layer_mode_tile::mapbase_address#18 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::mapbase_address#22 ) - vera_layer_mode_tile::mapheight#11 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::mapheight#15 ) - vera_layer_mode_tile::layer#6 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::layer#14 ) - vera_layer_mode_tile::config#18 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::config#30 ) - vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#18 | VERA_LAYER_WIDTH_64 - vera_layer_rowshift[vera_layer_mode_tile::layer#6] = 7 - vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#6 * SIZEOF_UNSIGNED_INT - vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 - to:vera_layer_mode_tile::@16 -vera_layer_mode_tile::@10: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@9 - vera_layer_mode_tile::tileheight#28 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::tileheight#27 ) - vera_layer_mode_tile::tilewidth#24 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::tilewidth#23 ) - vera_layer_mode_tile::tilebase_address#24 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::tilebase_address#23 ) - vera_layer_mode_tile::mapbase_address#23 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::mapbase_address#22 ) - vera_layer_mode_tile::mapheight#16 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::mapheight#15 ) - vera_layer_mode_tile::layer#15 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::layer#14 ) - vera_layer_mode_tile::config#31 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::config#30 ) - vera_layer_mode_tile::mapwidth#7 = phi( vera_layer_mode_tile::@9/vera_layer_mode_tile::mapwidth#6 ) - if(vera_layer_mode_tile::mapwidth#7==$80) goto vera_layer_mode_tile::@14 - to:vera_layer_mode_tile::@11 -vera_layer_mode_tile::@14: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@10 - vera_layer_mode_tile::tileheight#24 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::tileheight#28 ) - vera_layer_mode_tile::tilewidth#20 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::tilewidth#24 ) - vera_layer_mode_tile::tilebase_address#20 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::tilebase_address#24 ) - vera_layer_mode_tile::mapbase_address#19 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::mapbase_address#23 ) - vera_layer_mode_tile::mapheight#12 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::mapheight#16 ) - vera_layer_mode_tile::layer#7 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::layer#15 ) - vera_layer_mode_tile::config#19 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::config#31 ) - vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#19 | VERA_LAYER_WIDTH_128 - vera_layer_rowshift[vera_layer_mode_tile::layer#7] = 8 - vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#7 * SIZEOF_UNSIGNED_INT - vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 - to:vera_layer_mode_tile::@16 -vera_layer_mode_tile::@11: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@10 - vera_layer_mode_tile::tileheight#21 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::tileheight#28 ) - vera_layer_mode_tile::tilewidth#17 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::tilewidth#24 ) - vera_layer_mode_tile::tilebase_address#17 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::tilebase_address#24 ) - vera_layer_mode_tile::mapbase_address#16 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::mapbase_address#23 ) - vera_layer_mode_tile::mapheight#9 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::mapheight#16 ) - vera_layer_mode_tile::layer#16 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::layer#15 ) - vera_layer_mode_tile::config#32 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::config#31 ) - vera_layer_mode_tile::mapwidth#8 = phi( vera_layer_mode_tile::@10/vera_layer_mode_tile::mapwidth#7 ) - if(vera_layer_mode_tile::mapwidth#8==$100) goto vera_layer_mode_tile::@15 - to:vera_layer_mode_tile::@16 -vera_layer_mode_tile::@15: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@11 - vera_layer_mode_tile::tileheight#25 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::tileheight#21 ) - vera_layer_mode_tile::tilewidth#21 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::tilewidth#17 ) - vera_layer_mode_tile::tilebase_address#21 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::tilebase_address#17 ) - vera_layer_mode_tile::mapbase_address#20 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::mapbase_address#16 ) - vera_layer_mode_tile::mapheight#13 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::mapheight#9 ) - vera_layer_mode_tile::layer#8 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::layer#16 ) - vera_layer_mode_tile::config#20 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::config#32 ) - vera_layer_mode_tile::config#8 = vera_layer_mode_tile::config#20 | VERA_LAYER_WIDTH_256 - vera_layer_rowshift[vera_layer_mode_tile::layer#8] = 9 - vera_layer_mode_tile::$14 = vera_layer_mode_tile::layer#8 * SIZEOF_UNSIGNED_INT - vera_layer_rowskip[vera_layer_mode_tile::$14] = $200 - to:vera_layer_mode_tile::@16 -vera_layer_mode_tile::@16: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@11 vera_layer_mode_tile::@12 vera_layer_mode_tile::@13 vera_layer_mode_tile::@14 vera_layer_mode_tile::@15 - vera_layer_mode_tile::tileheight#18 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::tileheight#21, vera_layer_mode_tile::@12/vera_layer_mode_tile::tileheight#22, vera_layer_mode_tile::@13/vera_layer_mode_tile::tileheight#23, vera_layer_mode_tile::@14/vera_layer_mode_tile::tileheight#24, vera_layer_mode_tile::@15/vera_layer_mode_tile::tileheight#25 ) - vera_layer_mode_tile::tilewidth#14 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::tilewidth#17, vera_layer_mode_tile::@12/vera_layer_mode_tile::tilewidth#18, vera_layer_mode_tile::@13/vera_layer_mode_tile::tilewidth#19, vera_layer_mode_tile::@14/vera_layer_mode_tile::tilewidth#20, vera_layer_mode_tile::@15/vera_layer_mode_tile::tilewidth#21 ) - vera_layer_mode_tile::tilebase_address#14 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::tilebase_address#17, vera_layer_mode_tile::@12/vera_layer_mode_tile::tilebase_address#18, vera_layer_mode_tile::@13/vera_layer_mode_tile::tilebase_address#19, vera_layer_mode_tile::@14/vera_layer_mode_tile::tilebase_address#20, vera_layer_mode_tile::@15/vera_layer_mode_tile::tilebase_address#21 ) - vera_layer_mode_tile::mapbase_address#13 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::mapbase_address#16, vera_layer_mode_tile::@12/vera_layer_mode_tile::mapbase_address#17, vera_layer_mode_tile::@13/vera_layer_mode_tile::mapbase_address#18, vera_layer_mode_tile::@14/vera_layer_mode_tile::mapbase_address#19, vera_layer_mode_tile::@15/vera_layer_mode_tile::mapbase_address#20 ) - vera_layer_mode_tile::layer#30 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::layer#16, vera_layer_mode_tile::@12/vera_layer_mode_tile::layer#5, vera_layer_mode_tile::@13/vera_layer_mode_tile::layer#6, vera_layer_mode_tile::@14/vera_layer_mode_tile::layer#7, vera_layer_mode_tile::@15/vera_layer_mode_tile::layer#8 ) - vera_layer_mode_tile::config#33 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::config#32, vera_layer_mode_tile::@12/vera_layer_mode_tile::config#5, vera_layer_mode_tile::@13/vera_layer_mode_tile::config#6, vera_layer_mode_tile::@14/vera_layer_mode_tile::config#7, vera_layer_mode_tile::@15/vera_layer_mode_tile::config#8 ) - vera_layer_mode_tile::mapheight#5 = phi( vera_layer_mode_tile::@11/vera_layer_mode_tile::mapheight#9, vera_layer_mode_tile::@12/vera_layer_mode_tile::mapheight#10, vera_layer_mode_tile::@13/vera_layer_mode_tile::mapheight#11, vera_layer_mode_tile::@14/vera_layer_mode_tile::mapheight#12, vera_layer_mode_tile::@15/vera_layer_mode_tile::mapheight#13 ) - if(vera_layer_mode_tile::mapheight#5==$20) goto vera_layer_mode_tile::@20 - to:vera_layer_mode_tile::@17 -vera_layer_mode_tile::@20: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@16 - vera_layer_mode_tile::tileheight#14 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::tileheight#18 ) - vera_layer_mode_tile::tilewidth#10 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::tilewidth#14 ) - vera_layer_mode_tile::tilebase_address#10 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::tilebase_address#14 ) - vera_layer_mode_tile::mapbase_address#9 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::mapbase_address#13 ) - vera_layer_mode_tile::layer#18 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::layer#30 ) - vera_layer_mode_tile::config#21 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::config#33 ) - vera_layer_mode_tile::config#9 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_32 - to:vera_layer_mode_tile::@24 -vera_layer_mode_tile::@17: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@16 - vera_layer_mode_tile::tileheight#19 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::tileheight#18 ) - vera_layer_mode_tile::tilewidth#15 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::tilewidth#14 ) - vera_layer_mode_tile::tilebase_address#15 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::tilebase_address#14 ) - vera_layer_mode_tile::mapbase_address#14 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::mapbase_address#13 ) - vera_layer_mode_tile::layer#31 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::layer#30 ) - vera_layer_mode_tile::config#34 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::config#33 ) - vera_layer_mode_tile::mapheight#6 = phi( vera_layer_mode_tile::@16/vera_layer_mode_tile::mapheight#5 ) - if(vera_layer_mode_tile::mapheight#6==$40) goto vera_layer_mode_tile::@21 - to:vera_layer_mode_tile::@18 -vera_layer_mode_tile::@21: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@17 - vera_layer_mode_tile::tileheight#15 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::tileheight#19 ) - vera_layer_mode_tile::tilewidth#11 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::tilewidth#15 ) - vera_layer_mode_tile::tilebase_address#11 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::tilebase_address#15 ) - vera_layer_mode_tile::mapbase_address#10 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::mapbase_address#14 ) - vera_layer_mode_tile::layer#19 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::layer#31 ) - vera_layer_mode_tile::config#22 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::config#34 ) - vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#22 | VERA_LAYER_HEIGHT_64 - to:vera_layer_mode_tile::@24 -vera_layer_mode_tile::@18: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@17 - vera_layer_mode_tile::tileheight#20 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::tileheight#19 ) - vera_layer_mode_tile::tilewidth#16 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::tilewidth#15 ) - vera_layer_mode_tile::tilebase_address#16 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::tilebase_address#15 ) - vera_layer_mode_tile::mapbase_address#15 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::mapbase_address#14 ) - vera_layer_mode_tile::layer#32 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::layer#31 ) - vera_layer_mode_tile::config#35 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::config#34 ) - vera_layer_mode_tile::mapheight#7 = phi( vera_layer_mode_tile::@17/vera_layer_mode_tile::mapheight#6 ) - if(vera_layer_mode_tile::mapheight#7==$80) goto vera_layer_mode_tile::@22 - to:vera_layer_mode_tile::@19 -vera_layer_mode_tile::@22: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@18 - vera_layer_mode_tile::tileheight#16 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::tileheight#20 ) - vera_layer_mode_tile::tilewidth#12 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::tilewidth#16 ) - vera_layer_mode_tile::tilebase_address#12 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::tilebase_address#16 ) - vera_layer_mode_tile::mapbase_address#11 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::mapbase_address#15 ) - vera_layer_mode_tile::layer#20 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::layer#32 ) - vera_layer_mode_tile::config#23 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::config#35 ) - vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#23 | VERA_LAYER_HEIGHT_128 - to:vera_layer_mode_tile::@24 -vera_layer_mode_tile::@19: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@18 - vera_layer_mode_tile::tileheight#13 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::tileheight#20 ) - vera_layer_mode_tile::tilewidth#9 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::tilewidth#16 ) - vera_layer_mode_tile::tilebase_address#9 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::tilebase_address#16 ) - vera_layer_mode_tile::mapbase_address#8 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::mapbase_address#15 ) - vera_layer_mode_tile::layer#17 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::layer#32 ) - vera_layer_mode_tile::config#36 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::config#35 ) - vera_layer_mode_tile::mapheight#8 = phi( vera_layer_mode_tile::@18/vera_layer_mode_tile::mapheight#7 ) - if(vera_layer_mode_tile::mapheight#8==$100) goto vera_layer_mode_tile::@23 - to:vera_layer_mode_tile::@24 -vera_layer_mode_tile::@23: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@19 - vera_layer_mode_tile::tileheight#17 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::tileheight#13 ) - vera_layer_mode_tile::tilewidth#13 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::tilewidth#9 ) - vera_layer_mode_tile::tilebase_address#13 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::tilebase_address#9 ) - vera_layer_mode_tile::mapbase_address#12 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::mapbase_address#8 ) - vera_layer_mode_tile::layer#21 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::layer#17 ) - vera_layer_mode_tile::config#24 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::config#36 ) - vera_layer_mode_tile::config#12 = vera_layer_mode_tile::config#24 | VERA_LAYER_HEIGHT_256 - to:vera_layer_mode_tile::@24 -vera_layer_mode_tile::@24: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@19 vera_layer_mode_tile::@20 vera_layer_mode_tile::@21 vera_layer_mode_tile::@22 vera_layer_mode_tile::@23 - vera_layer_mode_tile::tileheight#12 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::tileheight#13, vera_layer_mode_tile::@20/vera_layer_mode_tile::tileheight#14, vera_layer_mode_tile::@21/vera_layer_mode_tile::tileheight#15, vera_layer_mode_tile::@22/vera_layer_mode_tile::tileheight#16, vera_layer_mode_tile::@23/vera_layer_mode_tile::tileheight#17 ) - vera_layer_mode_tile::tilewidth#8 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::tilewidth#9, vera_layer_mode_tile::@20/vera_layer_mode_tile::tilewidth#10, vera_layer_mode_tile::@21/vera_layer_mode_tile::tilewidth#11, vera_layer_mode_tile::@22/vera_layer_mode_tile::tilewidth#12, vera_layer_mode_tile::@23/vera_layer_mode_tile::tilewidth#13 ) - vera_layer_mode_tile::tilebase_address#8 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::tilebase_address#9, vera_layer_mode_tile::@20/vera_layer_mode_tile::tilebase_address#10, vera_layer_mode_tile::@21/vera_layer_mode_tile::tilebase_address#11, vera_layer_mode_tile::@22/vera_layer_mode_tile::tilebase_address#12, vera_layer_mode_tile::@23/vera_layer_mode_tile::tilebase_address#13 ) - vera_layer_mode_tile::mapbase_address#7 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::mapbase_address#8, vera_layer_mode_tile::@20/vera_layer_mode_tile::mapbase_address#9, vera_layer_mode_tile::@21/vera_layer_mode_tile::mapbase_address#10, vera_layer_mode_tile::@22/vera_layer_mode_tile::mapbase_address#11, vera_layer_mode_tile::@23/vera_layer_mode_tile::mapbase_address#12 ) - vera_layer_mode_tile::config#25 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::config#36, vera_layer_mode_tile::@20/vera_layer_mode_tile::config#9, vera_layer_mode_tile::@21/vera_layer_mode_tile::config#10, vera_layer_mode_tile::@22/vera_layer_mode_tile::config#11, vera_layer_mode_tile::@23/vera_layer_mode_tile::config#12 ) - vera_layer_mode_tile::layer#9 = phi( vera_layer_mode_tile::@19/vera_layer_mode_tile::layer#17, vera_layer_mode_tile::@20/vera_layer_mode_tile::layer#18, vera_layer_mode_tile::@21/vera_layer_mode_tile::layer#19, vera_layer_mode_tile::@22/vera_layer_mode_tile::layer#20, vera_layer_mode_tile::@23/vera_layer_mode_tile::layer#21 ) - vera_layer_set_config::layer#0 = vera_layer_mode_tile::layer#9 - vera_layer_set_config::config#0 = vera_layer_mode_tile::config#25 - call vera_layer_set_config - to:vera_layer_mode_tile::@33 -vera_layer_mode_tile::@33: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@24 - vera_layer_mode_tile::tileheight#11 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::tileheight#12 ) - vera_layer_mode_tile::tilewidth#7 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::tilewidth#8 ) - vera_layer_mode_tile::tilebase_address#7 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::tilebase_address#8 ) - vera_layer_mode_tile::layer#10 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::layer#9 ) - vera_layer_mode_tile::mapbase_address#6 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::mapbase_address#7 ) - vera_layer_mode_tile::$1 = word0 vera_layer_mode_tile::mapbase_address#6 - vera_layer_mode_tile::$15 = vera_layer_mode_tile::layer#10 * SIZEOF_UNSIGNED_INT - vera_mapbase_offset[vera_layer_mode_tile::$15] = vera_layer_mode_tile::$1 - vera_layer_mode_tile::$2 = byte2 vera_layer_mode_tile::mapbase_address#6 - vera_mapbase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$2 - vera_layer_mode_tile::$16 = vera_layer_mode_tile::layer#10 * SIZEOF_UNSIGNED_LONG - vera_mapbase_address[vera_layer_mode_tile::$16] = vera_layer_mode_tile::mapbase_address#6 - vera_layer_mode_tile::$3 = vera_layer_mode_tile::mapbase_address#6 >> 1 - vera_layer_mode_tile::mapbase_address#0 = vera_layer_mode_tile::$3 - vera_layer_mode_tile::mapbase#0 = byte1 vera_layer_mode_tile::mapbase_address#0 - vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#10 - vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0 - call vera_layer_set_mapbase - to:vera_layer_mode_tile::@34 -vera_layer_mode_tile::@34: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@33 - vera_layer_mode_tile::tileheight#10 = phi( vera_layer_mode_tile::@33/vera_layer_mode_tile::tileheight#11 ) - vera_layer_mode_tile::tilewidth#5 = phi( vera_layer_mode_tile::@33/vera_layer_mode_tile::tilewidth#7 ) - vera_layer_mode_tile::layer#11 = phi( vera_layer_mode_tile::@33/vera_layer_mode_tile::layer#10 ) - vera_layer_mode_tile::tilebase_address#6 = phi( vera_layer_mode_tile::@33/vera_layer_mode_tile::tilebase_address#7 ) - vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#6 - vera_layer_mode_tile::$17 = vera_layer_mode_tile::layer#11 * SIZEOF_UNSIGNED_INT - vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 - vera_layer_mode_tile::$7 = byte2 vera_layer_mode_tile::tilebase_address#6 - vera_tilebase_bank[vera_layer_mode_tile::layer#11] = vera_layer_mode_tile::$7 - vera_layer_mode_tile::$18 = vera_layer_mode_tile::layer#11 * SIZEOF_UNSIGNED_LONG - vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#6 - vera_layer_mode_tile::$8 = vera_layer_mode_tile::tilebase_address#6 >> 1 - vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::$8 - vera_layer_mode_tile::tilebase#0 = byte1 vera_layer_mode_tile::tilebase_address#0 - vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK - if(vera_layer_mode_tile::tilewidth#5==8) goto vera_layer_mode_tile::@26 - to:vera_layer_mode_tile::@25 -vera_layer_mode_tile::@26: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@34 - vera_layer_mode_tile::layer#38 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::layer#11 ) - vera_layer_mode_tile::tileheight#8 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::tileheight#10 ) - vera_layer_mode_tile::tilebase#6 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::tilebase#1 ) - vera_layer_mode_tile::tilebase#2 = vera_layer_mode_tile::tilebase#6 | VERA_TILEBASE_WIDTH_8 - to:vera_layer_mode_tile::@28 -vera_layer_mode_tile::@25: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@34 - vera_layer_mode_tile::layer#37 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::layer#11 ) - vera_layer_mode_tile::tileheight#7 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::tileheight#10 ) - vera_layer_mode_tile::tilebase#11 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::tilebase#1 ) - vera_layer_mode_tile::tilewidth#6 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::tilewidth#5 ) - if(vera_layer_mode_tile::tilewidth#6==$10) goto vera_layer_mode_tile::@27 - to:vera_layer_mode_tile::@28 -vera_layer_mode_tile::@27: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@25 - vera_layer_mode_tile::layer#39 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::layer#37 ) - vera_layer_mode_tile::tileheight#9 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::tileheight#7 ) - vera_layer_mode_tile::tilebase#7 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::tilebase#11 ) - vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#7 | VERA_TILEBASE_WIDTH_16 - to:vera_layer_mode_tile::@28 -vera_layer_mode_tile::@28: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@25 vera_layer_mode_tile::@26 vera_layer_mode_tile::@27 - vera_layer_mode_tile::layer#33 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::layer#37, vera_layer_mode_tile::@26/vera_layer_mode_tile::layer#38, vera_layer_mode_tile::@27/vera_layer_mode_tile::layer#39 ) - vera_layer_mode_tile::tilebase#12 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::tilebase#11, vera_layer_mode_tile::@26/vera_layer_mode_tile::tilebase#2, vera_layer_mode_tile::@27/vera_layer_mode_tile::tilebase#3 ) - vera_layer_mode_tile::tileheight#5 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::tileheight#7, vera_layer_mode_tile::@26/vera_layer_mode_tile::tileheight#8, vera_layer_mode_tile::@27/vera_layer_mode_tile::tileheight#9 ) - if(vera_layer_mode_tile::tileheight#5==8) goto vera_layer_mode_tile::@30 - to:vera_layer_mode_tile::@29 -vera_layer_mode_tile::@30: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@28 - vera_layer_mode_tile::layer#23 = phi( vera_layer_mode_tile::@28/vera_layer_mode_tile::layer#33 ) - vera_layer_mode_tile::tilebase#8 = phi( vera_layer_mode_tile::@28/vera_layer_mode_tile::tilebase#12 ) - vera_layer_mode_tile::tilebase#4 = vera_layer_mode_tile::tilebase#8 | VERA_TILEBASE_HEIGHT_8 - to:vera_layer_mode_tile::@32 -vera_layer_mode_tile::@29: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@28 - vera_layer_mode_tile::layer#22 = phi( vera_layer_mode_tile::@28/vera_layer_mode_tile::layer#33 ) - vera_layer_mode_tile::tilebase#13 = phi( vera_layer_mode_tile::@28/vera_layer_mode_tile::tilebase#12 ) - vera_layer_mode_tile::tileheight#6 = phi( vera_layer_mode_tile::@28/vera_layer_mode_tile::tileheight#5 ) - if(vera_layer_mode_tile::tileheight#6==$10) goto vera_layer_mode_tile::@31 - to:vera_layer_mode_tile::@32 -vera_layer_mode_tile::@31: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@29 - vera_layer_mode_tile::layer#24 = phi( vera_layer_mode_tile::@29/vera_layer_mode_tile::layer#22 ) - vera_layer_mode_tile::tilebase#9 = phi( vera_layer_mode_tile::@29/vera_layer_mode_tile::tilebase#13 ) - vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#9 | VERA_TILEBASE_HEIGHT_16 - to:vera_layer_mode_tile::@32 -vera_layer_mode_tile::@32: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@29 vera_layer_mode_tile::@30 vera_layer_mode_tile::@31 - vera_layer_mode_tile::tilebase#10 = phi( vera_layer_mode_tile::@29/vera_layer_mode_tile::tilebase#13, vera_layer_mode_tile::@30/vera_layer_mode_tile::tilebase#4, vera_layer_mode_tile::@31/vera_layer_mode_tile::tilebase#5 ) - vera_layer_mode_tile::layer#12 = phi( vera_layer_mode_tile::@29/vera_layer_mode_tile::layer#22, vera_layer_mode_tile::@30/vera_layer_mode_tile::layer#23, vera_layer_mode_tile::@31/vera_layer_mode_tile::layer#24 ) - vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#12 - vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10 - call vera_layer_set_tilebase - to:vera_layer_mode_tile::@35 -vera_layer_mode_tile::@35: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@32 - to:vera_layer_mode_tile::@return -vera_layer_mode_tile::@return: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@35 - return - to:@return - -void vera_layer_mode_text(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , unsigned int color_mode) -vera_layer_mode_text: scope:[vera_layer_mode_text] from conio_x16_init - vera_layer_mode_text::color_mode#3 = phi( conio_x16_init/vera_layer_mode_text::color_mode#0 ) - vera_layer_mode_text::tileheight#1 = phi( conio_x16_init/vera_layer_mode_text::tileheight#0 ) - vera_layer_mode_text::tilewidth#1 = phi( conio_x16_init/vera_layer_mode_text::tilewidth#0 ) - vera_layer_mode_text::mapheight#1 = phi( conio_x16_init/vera_layer_mode_text::mapheight#0 ) - vera_layer_mode_text::mapwidth#1 = phi( conio_x16_init/vera_layer_mode_text::mapwidth#0 ) - vera_layer_mode_text::tilebase_address#1 = phi( conio_x16_init/vera_layer_mode_text::tilebase_address#0 ) - vera_layer_mode_text::mapbase_address#1 = phi( conio_x16_init/vera_layer_mode_text::mapbase_address#0 ) - vera_layer_mode_text::layer#1 = phi( conio_x16_init/vera_layer_mode_text::layer#0 ) - vera_layer_mode_tile::layer#0 = vera_layer_mode_text::layer#1 - vera_layer_mode_tile::mapbase_address#1 = vera_layer_mode_text::mapbase_address#1 - vera_layer_mode_tile::tilebase_address#1 = vera_layer_mode_text::tilebase_address#1 - vera_layer_mode_tile::mapwidth#0 = vera_layer_mode_text::mapwidth#1 - vera_layer_mode_tile::mapheight#0 = vera_layer_mode_text::mapheight#1 - vera_layer_mode_tile::tilewidth#0 = vera_layer_mode_text::tilewidth#1 - vera_layer_mode_tile::tileheight#0 = vera_layer_mode_text::tileheight#1 - vera_layer_mode_tile::color_depth#0 = 1 - call vera_layer_mode_tile - to:vera_layer_mode_text::@4 -vera_layer_mode_text::@4: scope:[vera_layer_mode_text] from vera_layer_mode_text - vera_layer_mode_text::layer#4 = phi( vera_layer_mode_text/vera_layer_mode_text::layer#1 ) - vera_layer_mode_text::color_mode#1 = phi( vera_layer_mode_text/vera_layer_mode_text::color_mode#3 ) - if(vera_layer_mode_text::color_mode#1==$10) goto vera_layer_mode_text::@2 - to:vera_layer_mode_text::@1 -vera_layer_mode_text::@2: scope:[vera_layer_mode_text] from vera_layer_mode_text::@4 - vera_layer_mode_text::layer#2 = phi( vera_layer_mode_text::@4/vera_layer_mode_text::layer#4 ) - vera_layer_set_text_color_mode::layer#0 = vera_layer_mode_text::layer#2 - vera_layer_set_text_color_mode::color_mode#0 = VERA_LAYER_CONFIG_16C - call vera_layer_set_text_color_mode - to:vera_layer_mode_text::@5 -vera_layer_mode_text::@5: scope:[vera_layer_mode_text] from vera_layer_mode_text::@2 - to:vera_layer_mode_text::@return -vera_layer_mode_text::@1: scope:[vera_layer_mode_text] from vera_layer_mode_text::@4 - vera_layer_mode_text::layer#5 = phi( vera_layer_mode_text::@4/vera_layer_mode_text::layer#4 ) - vera_layer_mode_text::color_mode#2 = phi( vera_layer_mode_text::@4/vera_layer_mode_text::color_mode#1 ) - if(vera_layer_mode_text::color_mode#2==$100) goto vera_layer_mode_text::@3 - to:vera_layer_mode_text::@return -vera_layer_mode_text::@3: scope:[vera_layer_mode_text] from vera_layer_mode_text::@1 - vera_layer_mode_text::layer#3 = phi( vera_layer_mode_text::@1/vera_layer_mode_text::layer#5 ) - vera_layer_set_text_color_mode::layer#1 = vera_layer_mode_text::layer#3 - vera_layer_set_text_color_mode::color_mode#1 = VERA_LAYER_CONFIG_256C - call vera_layer_set_text_color_mode - to:vera_layer_mode_text::@6 -vera_layer_mode_text::@6: scope:[vera_layer_mode_text] from vera_layer_mode_text::@3 - to:vera_layer_mode_text::@return -vera_layer_mode_text::@return: scope:[vera_layer_mode_text] from vera_layer_mode_text::@1 vera_layer_mode_text::@5 vera_layer_mode_text::@6 - return - to:@return - -void vera_tile_area(char layer , unsigned int tileindex , char x , char y , char w , char h , char hflip , char vflip , char offset) -vera_tile_area: scope:[vera_tile_area] from main::@10 main::@12 main::@15 main::@4 main::@6 - vera_tile_area::w#11 = phi( main::@10/vera_tile_area::w#2, main::@12/vera_tile_area::w#3, main::@15/vera_tile_area::w#4, main::@4/vera_tile_area::w#0, main::@6/vera_tile_area::w#1 ) - vera_tile_area::h#6 = phi( main::@10/vera_tile_area::h#2, main::@12/vera_tile_area::h#3, main::@15/vera_tile_area::h#4, main::@4/vera_tile_area::h#0, main::@6/vera_tile_area::h#1 ) - vera_tile_area::x#5 = phi( main::@10/vera_tile_area::x#2, main::@12/vera_tile_area::x#3, main::@15/vera_tile_area::x#4, main::@4/vera_tile_area::x#0, main::@6/vera_tile_area::x#1 ) - vera_tile_area::y#5 = phi( main::@10/vera_tile_area::y#2, main::@12/vera_tile_area::y#3, main::@15/vera_tile_area::y#4, main::@4/vera_tile_area::y#0, main::@6/vera_tile_area::y#1 ) - vera_tile_area::tileindex#5 = phi( main::@10/vera_tile_area::tileindex#2, main::@12/vera_tile_area::tileindex#3, main::@15/vera_tile_area::tileindex#4, main::@4/vera_tile_area::tileindex#0, main::@6/vera_tile_area::tileindex#1 ) - vera_tile_area::offset#6 = phi( main::@10/vera_tile_area::offset#3, main::@12/vera_tile_area::offset#4, main::@15/vera_tile_area::offset#5, main::@4/vera_tile_area::offset#1, main::@6/vera_tile_area::offset#2 ) - vera_tile_area::vflip#6 = phi( main::@10/vera_tile_area::vflip#3, main::@12/vera_tile_area::vflip#4, main::@15/vera_tile_area::vflip#5, main::@4/vera_tile_area::vflip#1, main::@6/vera_tile_area::vflip#2 ) - vera_tile_area::hflip#6 = phi( main::@10/vera_tile_area::hflip#3, main::@12/vera_tile_area::hflip#4, main::@15/vera_tile_area::hflip#5, main::@4/vera_tile_area::hflip#1, main::@6/vera_tile_area::hflip#2 ) - vera_tile_area::layer#5 = phi( main::@10/vera_tile_area::layer#2, main::@12/vera_tile_area::layer#3, main::@15/vera_tile_area::layer#4, main::@4/vera_tile_area::layer#0, main::@6/vera_tile_area::layer#1 ) - vera_tile_area::$9 = vera_tile_area::layer#5 * SIZEOF_UNSIGNED_LONG - vera_tile_area::mapbase#0 = vera_mapbase_address[vera_tile_area::$9] - vera_tile_area::shift#0 = vera_layer_rowshift[vera_tile_area::layer#5] - vera_tile_area::rowskip#0 = (unsigned int)1 << vera_tile_area::shift#0 - vera_tile_area::hflip#0 = vera_layer_hflip[vera_tile_area::hflip#6] - vera_tile_area::vflip#0 = vera_layer_vflip[vera_tile_area::vflip#6] - vera_tile_area::$1 = vera_tile_area::offset#6 << 4 - vera_tile_area::offset#0 = vera_tile_area::$1 - vera_tile_area::index_l#0 = byte0 vera_tile_area::tileindex#5 - vera_tile_area::index_h#0 = byte1 vera_tile_area::tileindex#5 - vera_tile_area::index_h#1 = vera_tile_area::index_h#0 | vera_tile_area::hflip#0 - vera_tile_area::index_h#2 = vera_tile_area::index_h#1 | vera_tile_area::vflip#0 - vera_tile_area::index_h#3 = vera_tile_area::index_h#2 | vera_tile_area::offset#0 - vera_tile_area::$10 = (unsigned int)vera_tile_area::y#5 - vera_tile_area::$4 = vera_tile_area::$10 << vera_tile_area::shift#0 - vera_tile_area::mapbase#1 = vera_tile_area::mapbase#0 + vera_tile_area::$4 - vera_tile_area::$5 = vera_tile_area::x#5 << 1 - vera_tile_area::mapbase#2 = vera_tile_area::mapbase#1 + vera_tile_area::$5 - vera_tile_area::r#0 = 0 - to:vera_tile_area::@1 -vera_tile_area::@1: scope:[vera_tile_area] from vera_tile_area vera_tile_area::@5 - vera_tile_area::rowskip#7 = phi( vera_tile_area/vera_tile_area::rowskip#0, vera_tile_area::@5/vera_tile_area::rowskip#1 ) - vera_tile_area::index_h#9 = phi( vera_tile_area/vera_tile_area::index_h#3, vera_tile_area::@5/vera_tile_area::index_h#10 ) - vera_tile_area::index_l#6 = phi( vera_tile_area/vera_tile_area::index_l#0, vera_tile_area::@5/vera_tile_area::index_l#7 ) - vera_tile_area::w#10 = phi( vera_tile_area/vera_tile_area::w#11, vera_tile_area::@5/vera_tile_area::w#12 ) - vera_tile_area::mapbase#6 = phi( vera_tile_area/vera_tile_area::mapbase#2, vera_tile_area::@5/vera_tile_area::mapbase#3 ) - vera_tile_area::h#5 = phi( vera_tile_area/vera_tile_area::h#6, vera_tile_area::@5/vera_tile_area::h#7 ) - vera_tile_area::r#2 = phi( vera_tile_area/vera_tile_area::r#0, vera_tile_area::@5/vera_tile_area::r#1 ) - vera_tile_area::$6 = vera_tile_area::r#2 < vera_tile_area::h#5 - if(vera_tile_area::$6) goto vera_tile_area::@2 - to:vera_tile_area::@return -vera_tile_area::@2: scope:[vera_tile_area] from vera_tile_area::@1 - vera_tile_area::h#12 = phi( vera_tile_area::@1/vera_tile_area::h#5 ) - vera_tile_area::r#8 = phi( vera_tile_area::@1/vera_tile_area::r#2 ) - vera_tile_area::rowskip#6 = phi( vera_tile_area::@1/vera_tile_area::rowskip#7 ) - vera_tile_area::index_h#8 = phi( vera_tile_area::@1/vera_tile_area::index_h#9 ) - vera_tile_area::index_l#5 = phi( vera_tile_area::@1/vera_tile_area::index_l#6 ) - vera_tile_area::w#9 = phi( vera_tile_area::@1/vera_tile_area::w#10 ) - vera_tile_area::mapbase#4 = phi( vera_tile_area::@1/vera_tile_area::mapbase#6 ) - vera_tile_area::vera_vram_address01_bankaddr#0 = vera_tile_area::mapbase#4 - vera_tile_area::vera_vram_address01_incr#0 = VERA_INC_1 - to:vera_tile_area::vera_vram_address01 -vera_tile_area::vera_vram_address01: scope:[vera_tile_area] from vera_tile_area::@2 - vera_tile_area::h#11 = phi( vera_tile_area::@2/vera_tile_area::h#12 ) - vera_tile_area::r#7 = phi( vera_tile_area::@2/vera_tile_area::r#8 ) - vera_tile_area::rowskip#5 = phi( vera_tile_area::@2/vera_tile_area::rowskip#6 ) - vera_tile_area::mapbase#10 = phi( vera_tile_area::@2/vera_tile_area::mapbase#4 ) - vera_tile_area::index_h#7 = phi( vera_tile_area::@2/vera_tile_area::index_h#8 ) - vera_tile_area::index_l#4 = phi( vera_tile_area::@2/vera_tile_area::index_l#5 ) - vera_tile_area::w#8 = phi( vera_tile_area::@2/vera_tile_area::w#9 ) - vera_tile_area::vera_vram_address01_incr#1 = phi( vera_tile_area::@2/vera_tile_area::vera_vram_address01_incr#0 ) - vera_tile_area::vera_vram_address01_bankaddr#1 = phi( vera_tile_area::@2/vera_tile_area::vera_vram_address01_bankaddr#0 ) - *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL - vera_tile_area::vera_vram_address01_$0 = byte0 vera_tile_area::vera_vram_address01_bankaddr#1 - *VERA_ADDRX_L = vera_tile_area::vera_vram_address01_$0 - vera_tile_area::vera_vram_address01_$1 = byte1 vera_tile_area::vera_vram_address01_bankaddr#1 - *VERA_ADDRX_M = vera_tile_area::vera_vram_address01_$1 - vera_tile_area::vera_vram_address01_$2 = byte2 vera_tile_area::vera_vram_address01_bankaddr#1 - vera_tile_area::vera_vram_address01_$3 = vera_tile_area::vera_vram_address01_$2 | vera_tile_area::vera_vram_address01_incr#1 - *VERA_ADDRX_H = vera_tile_area::vera_vram_address01_$3 - to:vera_tile_area::@6 -vera_tile_area::@6: scope:[vera_tile_area] from vera_tile_area::vera_vram_address01 - vera_tile_area::h#10 = phi( vera_tile_area::vera_vram_address01/vera_tile_area::h#11 ) - vera_tile_area::r#6 = phi( vera_tile_area::vera_vram_address01/vera_tile_area::r#7 ) - vera_tile_area::rowskip#4 = phi( vera_tile_area::vera_vram_address01/vera_tile_area::rowskip#5 ) - vera_tile_area::mapbase#9 = phi( vera_tile_area::vera_vram_address01/vera_tile_area::mapbase#10 ) - vera_tile_area::index_h#6 = phi( vera_tile_area::vera_vram_address01/vera_tile_area::index_h#7 ) - vera_tile_area::index_l#3 = phi( vera_tile_area::vera_vram_address01/vera_tile_area::index_l#4 ) - vera_tile_area::w#7 = phi( vera_tile_area::vera_vram_address01/vera_tile_area::w#8 ) - vera_tile_area::c#0 = 0 - to:vera_tile_area::@3 -vera_tile_area::@3: scope:[vera_tile_area] from vera_tile_area::@4 vera_tile_area::@6 - vera_tile_area::h#8 = phi( vera_tile_area::@4/vera_tile_area::h#9, vera_tile_area::@6/vera_tile_area::h#10 ) - vera_tile_area::r#4 = phi( vera_tile_area::@4/vera_tile_area::r#5, vera_tile_area::@6/vera_tile_area::r#6 ) - vera_tile_area::rowskip#2 = phi( vera_tile_area::@4/vera_tile_area::rowskip#3, vera_tile_area::@6/vera_tile_area::rowskip#4 ) - vera_tile_area::mapbase#7 = phi( vera_tile_area::@4/vera_tile_area::mapbase#8, vera_tile_area::@6/vera_tile_area::mapbase#9 ) - vera_tile_area::index_h#5 = phi( vera_tile_area::@4/vera_tile_area::index_h#4, vera_tile_area::@6/vera_tile_area::index_h#6 ) - vera_tile_area::index_l#2 = phi( vera_tile_area::@4/vera_tile_area::index_l#1, vera_tile_area::@6/vera_tile_area::index_l#3 ) - vera_tile_area::w#5 = phi( vera_tile_area::@4/vera_tile_area::w#6, vera_tile_area::@6/vera_tile_area::w#7 ) - vera_tile_area::c#2 = phi( vera_tile_area::@4/vera_tile_area::c#1, vera_tile_area::@6/vera_tile_area::c#0 ) - vera_tile_area::$8 = vera_tile_area::c#2 < vera_tile_area::w#5 - if(vera_tile_area::$8) goto vera_tile_area::@4 - to:vera_tile_area::@5 -vera_tile_area::@4: scope:[vera_tile_area] from vera_tile_area::@3 - vera_tile_area::h#9 = phi( vera_tile_area::@3/vera_tile_area::h#8 ) - vera_tile_area::r#5 = phi( vera_tile_area::@3/vera_tile_area::r#4 ) - vera_tile_area::rowskip#3 = phi( vera_tile_area::@3/vera_tile_area::rowskip#2 ) - vera_tile_area::mapbase#8 = phi( vera_tile_area::@3/vera_tile_area::mapbase#7 ) - vera_tile_area::w#6 = phi( vera_tile_area::@3/vera_tile_area::w#5 ) - vera_tile_area::c#3 = phi( vera_tile_area::@3/vera_tile_area::c#2 ) - vera_tile_area::index_h#4 = phi( vera_tile_area::@3/vera_tile_area::index_h#5 ) - vera_tile_area::index_l#1 = phi( vera_tile_area::@3/vera_tile_area::index_l#2 ) - *VERA_DATA0 = vera_tile_area::index_l#1 - *VERA_DATA0 = vera_tile_area::index_h#4 - vera_tile_area::c#1 = ++ vera_tile_area::c#3 - to:vera_tile_area::@3 -vera_tile_area::@5: scope:[vera_tile_area] from vera_tile_area::@3 - vera_tile_area::index_h#10 = phi( vera_tile_area::@3/vera_tile_area::index_h#5 ) - vera_tile_area::index_l#7 = phi( vera_tile_area::@3/vera_tile_area::index_l#2 ) - vera_tile_area::w#12 = phi( vera_tile_area::@3/vera_tile_area::w#5 ) - vera_tile_area::h#7 = phi( vera_tile_area::@3/vera_tile_area::h#8 ) - vera_tile_area::r#3 = phi( vera_tile_area::@3/vera_tile_area::r#4 ) - vera_tile_area::rowskip#1 = phi( vera_tile_area::@3/vera_tile_area::rowskip#2 ) - vera_tile_area::mapbase#5 = phi( vera_tile_area::@3/vera_tile_area::mapbase#7 ) - vera_tile_area::mapbase#3 = vera_tile_area::mapbase#5 + vera_tile_area::rowskip#1 - vera_tile_area::r#1 = ++ vera_tile_area::r#3 - to:vera_tile_area::@1 -vera_tile_area::@return: scope:[vera_tile_area] from vera_tile_area::@1 - return - to:@return - -void conio_x16_init() -conio_x16_init: scope:[conio_x16_init] from __start::__init1 - CONIO_SCREEN_TEXT#45 = phi( __start::__init1/CONIO_SCREEN_TEXT#7 ) - CONIO_SCREEN_BANK#42 = phi( __start::__init1/CONIO_SCREEN_BANK#7 ) - conio_x16_init::line#0 = *conio_x16_init::BASIC_CURSOR_LINE - vera_layer_mode_text::layer#0 = 1 - vera_layer_mode_text::mapbase_address#0 = (unsigned long)0 - vera_layer_mode_text::tilebase_address#0 = (unsigned long)$f800 - vera_layer_mode_text::mapwidth#0 = $80 - vera_layer_mode_text::mapheight#0 = $40 - vera_layer_mode_text::tilewidth#0 = 8 - vera_layer_mode_text::tileheight#0 = 8 - vera_layer_mode_text::color_mode#0 = $10 - call vera_layer_mode_text - to:conio_x16_init::@3 -conio_x16_init::@3: scope:[conio_x16_init] from conio_x16_init - conio_x16_init::line#9 = phi( conio_x16_init/conio_x16_init::line#0 ) - CONIO_SCREEN_TEXT#36 = phi( conio_x16_init/CONIO_SCREEN_TEXT#45 ) - CONIO_SCREEN_BANK#34 = phi( conio_x16_init/CONIO_SCREEN_BANK#42 ) - screensize::x#0 = &conio_screen_width - screensize::y#0 = &conio_screen_height - call screensize - to:conio_x16_init::@4 -conio_x16_init::@4: scope:[conio_x16_init] from conio_x16_init::@3 - conio_x16_init::line#8 = phi( conio_x16_init::@3/conio_x16_init::line#9 ) - CONIO_SCREEN_TEXT#27 = phi( conio_x16_init::@3/CONIO_SCREEN_TEXT#36 ) - CONIO_SCREEN_BANK#24 = phi( conio_x16_init::@3/CONIO_SCREEN_BANK#34 ) - screenlayer::layer#0 = 1 - call screenlayer - to:conio_x16_init::@5 -conio_x16_init::@5: scope:[conio_x16_init] from conio_x16_init::@4 - conio_x16_init::line#7 = phi( conio_x16_init::@4/conio_x16_init::line#8 ) - CONIO_SCREEN_TEXT#13 = phi( conio_x16_init::@4/CONIO_SCREEN_TEXT#3 ) - CONIO_SCREEN_BANK#13 = phi( conio_x16_init::@4/CONIO_SCREEN_BANK#3 ) - CONIO_SCREEN_BANK#0 = CONIO_SCREEN_BANK#13 - CONIO_SCREEN_TEXT#0 = CONIO_SCREEN_TEXT#13 - vera_layer_set_textcolor::layer#0 = 1 - vera_layer_set_textcolor::color#0 = WHITE - call vera_layer_set_textcolor - vera_layer_set_textcolor::return#2 = vera_layer_set_textcolor::return#1 - to:conio_x16_init::@6 -conio_x16_init::@6: scope:[conio_x16_init] from conio_x16_init::@5 - CONIO_SCREEN_TEXT#66 = phi( conio_x16_init::@5/CONIO_SCREEN_TEXT#0 ) - CONIO_SCREEN_BANK#60 = phi( conio_x16_init::@5/CONIO_SCREEN_BANK#0 ) - conio_x16_init::line#6 = phi( conio_x16_init::@5/conio_x16_init::line#7 ) - vera_layer_set_backcolor::layer#0 = 1 - vera_layer_set_backcolor::color#0 = BLUE - call vera_layer_set_backcolor - vera_layer_set_backcolor::return#2 = vera_layer_set_backcolor::return#1 - to:conio_x16_init::@7 -conio_x16_init::@7: scope:[conio_x16_init] from conio_x16_init::@6 - CONIO_SCREEN_TEXT#60 = phi( conio_x16_init::@6/CONIO_SCREEN_TEXT#66 ) - CONIO_SCREEN_BANK#56 = phi( conio_x16_init::@6/CONIO_SCREEN_BANK#60 ) - conio_x16_init::line#5 = phi( conio_x16_init::@6/conio_x16_init::line#6 ) - vera_layer_set_mapbase::layer#1 = 0 - vera_layer_set_mapbase::mapbase#1 = $20 - call vera_layer_set_mapbase - to:conio_x16_init::@8 -conio_x16_init::@8: scope:[conio_x16_init] from conio_x16_init::@7 - CONIO_SCREEN_TEXT#54 = phi( conio_x16_init::@7/CONIO_SCREEN_TEXT#60 ) - CONIO_SCREEN_BANK#51 = phi( conio_x16_init::@7/CONIO_SCREEN_BANK#56 ) - conio_x16_init::line#4 = phi( conio_x16_init::@7/conio_x16_init::line#5 ) - vera_layer_set_mapbase::layer#2 = 1 - vera_layer_set_mapbase::mapbase#2 = 0 - call vera_layer_set_mapbase - to:conio_x16_init::@9 -conio_x16_init::@9: scope:[conio_x16_init] from conio_x16_init::@8 - CONIO_SCREEN_TEXT#47 = phi( conio_x16_init::@8/CONIO_SCREEN_TEXT#54 ) - CONIO_SCREEN_BANK#44 = phi( conio_x16_init::@8/CONIO_SCREEN_BANK#51 ) - conio_x16_init::line#2 = phi( conio_x16_init::@8/conio_x16_init::line#4 ) - conio_x16_init::$7 = conio_x16_init::line#2 >= conio_screen_height - conio_x16_init::$8 = ! conio_x16_init::$7 - if(conio_x16_init::$8) goto conio_x16_init::@1 - to:conio_x16_init::@2 -conio_x16_init::@1: scope:[conio_x16_init] from conio_x16_init::@2 conio_x16_init::@9 - CONIO_SCREEN_TEXT#37 = phi( conio_x16_init::@2/CONIO_SCREEN_TEXT#46, conio_x16_init::@9/CONIO_SCREEN_TEXT#47 ) - CONIO_SCREEN_BANK#35 = phi( conio_x16_init::@2/CONIO_SCREEN_BANK#43, conio_x16_init::@9/CONIO_SCREEN_BANK#44 ) - conio_x16_init::line#3 = phi( conio_x16_init::@2/conio_x16_init::line#1, conio_x16_init::@9/conio_x16_init::line#2 ) - gotoxy::x#1 = 0 - gotoxy::y#1 = conio_x16_init::line#3 - call gotoxy - to:conio_x16_init::@10 -conio_x16_init::@10: scope:[conio_x16_init] from conio_x16_init::@1 - CONIO_SCREEN_TEXT#28 = phi( conio_x16_init::@1/CONIO_SCREEN_TEXT#37 ) - CONIO_SCREEN_BANK#25 = phi( conio_x16_init::@1/CONIO_SCREEN_BANK#35 ) - to:conio_x16_init::@return -conio_x16_init::@2: scope:[conio_x16_init] from conio_x16_init::@9 - CONIO_SCREEN_TEXT#46 = phi( conio_x16_init::@9/CONIO_SCREEN_TEXT#47 ) - CONIO_SCREEN_BANK#43 = phi( conio_x16_init::@9/CONIO_SCREEN_BANK#44 ) - conio_x16_init::$9 = conio_screen_height - 1 - conio_x16_init::line#1 = conio_x16_init::$9 - to:conio_x16_init::@1 -conio_x16_init::@return: scope:[conio_x16_init] from conio_x16_init::@10 - CONIO_SCREEN_TEXT#14 = phi( conio_x16_init::@10/CONIO_SCREEN_TEXT#28 ) - CONIO_SCREEN_BANK#14 = phi( conio_x16_init::@10/CONIO_SCREEN_BANK#25 ) - CONIO_SCREEN_BANK#1 = CONIO_SCREEN_BANK#14 - CONIO_SCREEN_TEXT#1 = CONIO_SCREEN_TEXT#14 - return - to:@return - -void clearline() -clearline: scope:[clearline] from insertup::@3 - CONIO_SCREEN_TEXT#15 = phi( insertup::@3/CONIO_SCREEN_TEXT#29 ) - *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL - clearline::$5 = conio_screen_layer * SIZEOF_UNSIGNED_INT - clearline::addr#0 = CONIO_SCREEN_TEXT#15 + conio_line_text[clearline::$5] - clearline::$1 = byte0 clearline::addr#0 - *VERA_ADDRX_L = clearline::$1 - clearline::$2 = byte1 clearline::addr#0 - *VERA_ADDRX_M = clearline::$2 - *VERA_ADDRX_H = VERA_INC_1 - vera_layer_get_color::layer#1 = conio_screen_layer - call vera_layer_get_color - vera_layer_get_color::return#4 = vera_layer_get_color::return#3 - to:clearline::@4 -clearline::@4: scope:[clearline] from clearline - vera_layer_get_color::return#7 = phi( clearline/vera_layer_get_color::return#4 ) - clearline::color#0 = vera_layer_get_color::return#7 - clearline::c#0 = 0 - to:clearline::@1 -clearline::@1: scope:[clearline] from clearline::@2 clearline::@4 - clearline::color#2 = phi( clearline::@2/clearline::color#1, clearline::@4/clearline::color#0 ) - clearline::c#2 = phi( clearline::@2/clearline::c#1, clearline::@4/clearline::c#0 ) - clearline::$4 = clearline::c#2 < conio_screen_width - if(clearline::$4) goto clearline::@2 - to:clearline::@3 -clearline::@2: scope:[clearline] from clearline::@1 - clearline::c#3 = phi( clearline::@1/clearline::c#2 ) - clearline::color#1 = phi( clearline::@1/clearline::color#2 ) - *VERA_DATA0 = ' ' - *VERA_DATA0 = clearline::color#1 - clearline::c#1 = ++ clearline::c#3 - to:clearline::@1 -clearline::@3: scope:[clearline] from clearline::@1 - conio_cursor_x[conio_screen_layer] = 0 - to:clearline::@return -clearline::@return: scope:[clearline] from clearline::@3 - return - to:@return - -void insertup() -insertup: scope:[insertup] from cscroll::@4 - CONIO_SCREEN_TEXT#38 = phi( cscroll::@4/CONIO_SCREEN_TEXT#48 ) - insertup::cy#0 = conio_cursor_y[conio_screen_layer] - insertup::width#0 = conio_screen_width * 2 - insertup::i#0 = 1 - to:insertup::@1 -insertup::@1: scope:[insertup] from insertup insertup::@4 - insertup::width#2 = phi( insertup/insertup::width#0, insertup::@4/insertup::width#3 ) - CONIO_SCREEN_TEXT#30 = phi( insertup/CONIO_SCREEN_TEXT#38, insertup::@4/CONIO_SCREEN_TEXT#39 ) - insertup::cy#1 = phi( insertup/insertup::cy#0, insertup::@4/insertup::cy#2 ) - insertup::i#2 = phi( insertup/insertup::i#0, insertup::@4/insertup::i#1 ) - insertup::$2 = insertup::i#2 <= insertup::cy#1 - if(insertup::$2) goto insertup::@2 - to:insertup::@3 -insertup::@2: scope:[insertup] from insertup::@1 - insertup::cy#3 = phi( insertup::@1/insertup::cy#1 ) - insertup::width#1 = phi( insertup::@1/insertup::width#2 ) - CONIO_SCREEN_TEXT#16 = phi( insertup::@1/CONIO_SCREEN_TEXT#30 ) - insertup::i#3 = phi( insertup::@1/insertup::i#2 ) - insertup::$3 = insertup::i#3 - 1 - insertup::line#0 = insertup::$3 << conio_rowshift - insertup::start#0 = CONIO_SCREEN_TEXT#16 + insertup::line#0 - insertup::$6 = insertup::start#0 + conio_rowskip - memcpy_in_vram::dest_bank#0 = 0 - memcpy_in_vram::dest#0 = (void *)insertup::start#0 - memcpy_in_vram::dest_increment#0 = VERA_INC_1 - memcpy_in_vram::src_bank#0 = 0 - memcpy_in_vram::src#0 = (void *)insertup::$6 - memcpy_in_vram::src_increment#0 = VERA_INC_1 - memcpy_in_vram::num#0 = insertup::width#1 - call memcpy_in_vram - to:insertup::@4 -insertup::@4: scope:[insertup] from insertup::@2 - insertup::width#3 = phi( insertup::@2/insertup::width#1 ) - CONIO_SCREEN_TEXT#39 = phi( insertup::@2/CONIO_SCREEN_TEXT#16 ) - insertup::cy#2 = phi( insertup::@2/insertup::cy#3 ) - insertup::i#4 = phi( insertup::@2/insertup::i#3 ) - insertup::i#1 = ++ insertup::i#4 - to:insertup::@1 -insertup::@3: scope:[insertup] from insertup::@1 - CONIO_SCREEN_TEXT#29 = phi( insertup::@1/CONIO_SCREEN_TEXT#30 ) - call clearline - to:insertup::@5 -insertup::@5: scope:[insertup] from insertup::@3 - to:insertup::@return -insertup::@return: scope:[insertup] from insertup::@5 - return - to:@return - -void cscroll() -cscroll: scope:[cscroll] from cputln - CONIO_SCREEN_TEXT#61 = phi( cputln/CONIO_SCREEN_TEXT#67 ) - cscroll::$0 = conio_cursor_y[conio_screen_layer] >= conio_screen_height - cscroll::$1 = ! cscroll::$0 - if(cscroll::$1) goto cscroll::@return - to:cscroll::@1 -cscroll::@1: scope:[cscroll] from cscroll - CONIO_SCREEN_TEXT#55 = phi( cscroll/CONIO_SCREEN_TEXT#61 ) - cscroll::$7 = 0 != conio_scroll_enable[conio_screen_layer] - if(cscroll::$7) goto cscroll::@4 - to:cscroll::@2 -cscroll::@4: scope:[cscroll] from cscroll::@1 - CONIO_SCREEN_TEXT#48 = phi( cscroll::@1/CONIO_SCREEN_TEXT#55 ) - call insertup - to:cscroll::@5 -cscroll::@5: scope:[cscroll] from cscroll::@4 - cscroll::$5 = conio_screen_height - 1 - gotoxy::x#2 = 0 - gotoxy::y#2 = cscroll::$5 - call gotoxy - to:cscroll::@6 -cscroll::@6: scope:[cscroll] from cscroll::@5 - to:cscroll::@return -cscroll::@2: scope:[cscroll] from cscroll::@1 - cscroll::$2 = conio_cursor_y[conio_screen_layer] >= conio_height - cscroll::$3 = ! cscroll::$2 - if(cscroll::$3) goto cscroll::@return - to:cscroll::@3 -cscroll::@3: scope:[cscroll] from cscroll::@2 - to:cscroll::@return -cscroll::@return: scope:[cscroll] from cscroll cscroll::@2 cscroll::@3 cscroll::@6 - return - to:@return - -void screenlayer(char layer) -screenlayer: scope:[screenlayer] from conio_x16_init::@4 main::@22 main::@48 - screenlayer::layer#3 = phi( conio_x16_init::@4/screenlayer::layer#0, main::@22/screenlayer::layer#1, main::@48/screenlayer::layer#2 ) - conio_screen_layer = screenlayer::layer#3 - vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer - call vera_layer_get_mapbase_bank - vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#1 - to:screenlayer::@3 -screenlayer::@3: scope:[screenlayer] from screenlayer - vera_layer_get_mapbase_bank::return#4 = phi( screenlayer/vera_layer_get_mapbase_bank::return#2 ) - screenlayer::$0 = vera_layer_get_mapbase_bank::return#4 - CONIO_SCREEN_BANK#2 = screenlayer::$0 - vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer - call vera_layer_get_mapbase_offset - vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#1 - to:screenlayer::@4 -screenlayer::@4: scope:[screenlayer] from screenlayer::@3 - CONIO_SCREEN_BANK#72 = 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 = (char *)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 - CONIO_SCREEN_TEXT#79 = phi( screenlayer::@4/CONIO_SCREEN_TEXT#2 ) - CONIO_SCREEN_BANK#69 = phi( screenlayer::@4/CONIO_SCREEN_BANK#72 ) - screenlayer::vera_layer_get_width1_layer#1 = phi( screenlayer::@4/screenlayer::vera_layer_get_width1_layer#0 ) - screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#1 * SIZEOF_POINTER - screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] - screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK - screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 - screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 * SIZEOF_UNSIGNED_INT - screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] - to:screenlayer::vera_layer_get_width1_@return -screenlayer::vera_layer_get_width1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_width1 - CONIO_SCREEN_TEXT#75 = phi( screenlayer::vera_layer_get_width1/CONIO_SCREEN_TEXT#79 ) - CONIO_SCREEN_BANK#65 = phi( screenlayer::vera_layer_get_width1/CONIO_SCREEN_BANK#69 ) - screenlayer::vera_layer_get_width1_return#2 = phi( screenlayer::vera_layer_get_width1/screenlayer::vera_layer_get_width1_return#0 ) - screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#2 - to:screenlayer::@1 -screenlayer::@1: scope:[screenlayer] from screenlayer::vera_layer_get_width1_@return - CONIO_SCREEN_TEXT#68 = phi( screenlayer::vera_layer_get_width1_@return/CONIO_SCREEN_TEXT#75 ) - CONIO_SCREEN_BANK#61 = phi( screenlayer::vera_layer_get_width1_@return/CONIO_SCREEN_BANK#65 ) - screenlayer::vera_layer_get_width1_return#3 = phi( screenlayer::vera_layer_get_width1_@return/screenlayer::vera_layer_get_width1_return#1 ) - screenlayer::$2 = screenlayer::vera_layer_get_width1_return#3 - conio_width = screenlayer::$2 - vera_layer_get_rowshift::layer#0 = conio_screen_layer - call vera_layer_get_rowshift - vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#1 - to:screenlayer::@5 -screenlayer::@5: scope:[screenlayer] from screenlayer::@1 - CONIO_SCREEN_TEXT#62 = phi( screenlayer::@1/CONIO_SCREEN_TEXT#68 ) - CONIO_SCREEN_BANK#57 = phi( screenlayer::@1/CONIO_SCREEN_BANK#61 ) - vera_layer_get_rowshift::return#4 = phi( screenlayer::@1/vera_layer_get_rowshift::return#2 ) - screenlayer::$3 = vera_layer_get_rowshift::return#4 - conio_rowshift = screenlayer::$3 - vera_layer_get_rowskip::layer#0 = conio_screen_layer - call vera_layer_get_rowskip - vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#1 - to:screenlayer::@6 -screenlayer::@6: scope:[screenlayer] from screenlayer::@5 - CONIO_SCREEN_TEXT#56 = phi( screenlayer::@5/CONIO_SCREEN_TEXT#62 ) - CONIO_SCREEN_BANK#52 = phi( screenlayer::@5/CONIO_SCREEN_BANK#57 ) - vera_layer_get_rowskip::return#4 = phi( screenlayer::@5/vera_layer_get_rowskip::return#2 ) - screenlayer::$4 = vera_layer_get_rowskip::return#4 - conio_rowskip = screenlayer::$4 - screenlayer::vera_layer_get_height1_layer#0 = conio_screen_layer - to:screenlayer::vera_layer_get_height1 -screenlayer::vera_layer_get_height1: scope:[screenlayer] from screenlayer::@6 - CONIO_SCREEN_TEXT#49 = phi( screenlayer::@6/CONIO_SCREEN_TEXT#56 ) - CONIO_SCREEN_BANK#45 = phi( screenlayer::@6/CONIO_SCREEN_BANK#52 ) - screenlayer::vera_layer_get_height1_layer#1 = phi( screenlayer::@6/screenlayer::vera_layer_get_height1_layer#0 ) - screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#1 * SIZEOF_POINTER - screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] - screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK - screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 - screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 * SIZEOF_UNSIGNED_INT - screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] - to:screenlayer::vera_layer_get_height1_@return -screenlayer::vera_layer_get_height1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_height1 - CONIO_SCREEN_TEXT#40 = phi( screenlayer::vera_layer_get_height1/CONIO_SCREEN_TEXT#49 ) - CONIO_SCREEN_BANK#36 = phi( screenlayer::vera_layer_get_height1/CONIO_SCREEN_BANK#45 ) - screenlayer::vera_layer_get_height1_return#2 = phi( screenlayer::vera_layer_get_height1/screenlayer::vera_layer_get_height1_return#0 ) - screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#2 - to:screenlayer::@2 -screenlayer::@2: scope:[screenlayer] from screenlayer::vera_layer_get_height1_@return - CONIO_SCREEN_TEXT#31 = phi( screenlayer::vera_layer_get_height1_@return/CONIO_SCREEN_TEXT#40 ) - CONIO_SCREEN_BANK#26 = phi( screenlayer::vera_layer_get_height1_@return/CONIO_SCREEN_BANK#36 ) - screenlayer::vera_layer_get_height1_return#3 = phi( screenlayer::vera_layer_get_height1_@return/screenlayer::vera_layer_get_height1_return#1 ) - screenlayer::$5 = screenlayer::vera_layer_get_height1_return#3 - conio_height = screenlayer::$5 - to:screenlayer::@return -screenlayer::@return: scope:[screenlayer] from screenlayer::@2 - CONIO_SCREEN_TEXT#17 = phi( screenlayer::@2/CONIO_SCREEN_TEXT#31 ) - CONIO_SCREEN_BANK#15 = phi( screenlayer::@2/CONIO_SCREEN_BANK#26 ) - CONIO_SCREEN_BANK#3 = CONIO_SCREEN_BANK#15 - CONIO_SCREEN_TEXT#3 = CONIO_SCREEN_TEXT#17 - return - to:@return - -void printf_str(void (*putc)(char) , const char *s) -printf_str: scope:[printf_str] from main::@32 main::@33 main::@34 main::@35 main::@36 main::@37 main::@38 main::@39 - printf_str::putc#10 = phi( main::@32/printf_str::putc#0, main::@33/printf_str::putc#1, main::@34/printf_str::putc#2, main::@35/printf_str::putc#3, main::@36/printf_str::putc#4, main::@37/printf_str::putc#5, main::@38/printf_str::putc#6, main::@39/printf_str::putc#7 ) - printf_str::s#10 = phi( main::@32/printf_str::s#1, main::@33/printf_str::s#2, main::@34/printf_str::s#3, main::@35/printf_str::s#4, main::@36/printf_str::s#5, main::@37/printf_str::s#6, main::@38/printf_str::s#7, main::@39/printf_str::s#8 ) - printf_str::c#0 = 0 - to:printf_str::@1 -printf_str::@1: scope:[printf_str] from printf_str printf_str::@2 - printf_str::putc#9 = phi( printf_str/printf_str::putc#10, printf_str::@2/printf_str::putc#8 ) - printf_str::s#9 = phi( printf_str/printf_str::s#10, printf_str::@2/printf_str::s#11 ) - printf_str::c#1 = *printf_str::s#9 - printf_str::$0 = printf_str::c#1 - printf_str::s#0 = ++ printf_str::s#9 - printf_str::$2 = 0 != printf_str::$0 - if(printf_str::$2) goto printf_str::@2 - to:printf_str::@return -printf_str::@2: scope:[printf_str] from printf_str::@1 - printf_str::s#11 = phi( printf_str::@1/printf_str::s#0 ) - printf_str::putc#8 = phi( printf_str::@1/printf_str::putc#9 ) - printf_str::c#2 = phi( printf_str::@1/printf_str::c#1 ) - stackpush(char) = printf_str::c#2 - callexecute *printf_str::putc#8 - sideeffect stackpullpadding(1) - to:printf_str::@1 -printf_str::@return: scope:[printf_str] from printf_str::@1 - return - to:@return - -void main() -main: scope:[main] from __start::@1 - CONIO_SCREEN_TEXT#50 = phi( __start::@1/CONIO_SCREEN_TEXT#35 ) - CONIO_SCREEN_BANK#46 = phi( __start::@1/CONIO_SCREEN_BANK#30 ) - memcpy_in_vram::dest_bank#1 = 1 - memcpy_in_vram::dest#1 = (void *)(char *)$f000 - memcpy_in_vram::dest_increment#1 = VERA_INC_1 - memcpy_in_vram::src_bank#1 = 0 - memcpy_in_vram::src#1 = (void *)(char *)$f800 - memcpy_in_vram::src_increment#1 = VERA_INC_1 - memcpy_in_vram::num#1 = $100*8 - call memcpy_in_vram - to:main::@21 -main::@21: scope:[main] from main - CONIO_SCREEN_TEXT#41 = phi( main/CONIO_SCREEN_TEXT#50 ) - CONIO_SCREEN_BANK#37 = phi( main/CONIO_SCREEN_BANK#46 ) - vera_layer_mode_tile::layer#1 = 1 - vera_layer_mode_tile::mapbase_address#2 = $10000 - vera_layer_mode_tile::tilebase_address#2 = $1f000 - vera_layer_mode_tile::mapwidth#1 = $80 - vera_layer_mode_tile::mapheight#1 = $40 - vera_layer_mode_tile::tilewidth#1 = 8 - vera_layer_mode_tile::tileheight#1 = 8 - vera_layer_mode_tile::color_depth#1 = 1 - call vera_layer_mode_tile - to:main::@22 -main::@22: scope:[main] from main::@21 - CONIO_SCREEN_TEXT#32 = phi( main::@21/CONIO_SCREEN_TEXT#41 ) - CONIO_SCREEN_BANK#27 = phi( main::@21/CONIO_SCREEN_BANK#37 ) - screenlayer::layer#1 = 1 - call screenlayer - to:main::@23 -main::@23: scope:[main] from main::@22 - CONIO_SCREEN_TEXT#18 = phi( main::@22/CONIO_SCREEN_TEXT#3 ) - CONIO_SCREEN_BANK#16 = phi( main::@22/CONIO_SCREEN_BANK#3 ) - CONIO_SCREEN_BANK#4 = CONIO_SCREEN_BANK#16 - CONIO_SCREEN_TEXT#4 = CONIO_SCREEN_TEXT#18 - main::textcolor1_color#0 = WHITE - to:main::textcolor1 -main::textcolor1: scope:[main] from main::@23 - CONIO_SCREEN_BANK#75 = phi( main::@23/CONIO_SCREEN_BANK#4 ) - CONIO_SCREEN_TEXT#69 = phi( main::@23/CONIO_SCREEN_TEXT#4 ) - main::textcolor1_color#1 = phi( main::@23/main::textcolor1_color#0 ) - vera_layer_set_textcolor::layer#1 = conio_screen_layer - vera_layer_set_textcolor::color#1 = main::textcolor1_color#1 - call vera_layer_set_textcolor - vera_layer_set_textcolor::return#3 = vera_layer_set_textcolor::return#1 - to:main::@24 -main::@24: scope:[main] from main::textcolor1 - CONIO_SCREEN_BANK#73 = phi( main::textcolor1/CONIO_SCREEN_BANK#75 ) - CONIO_SCREEN_TEXT#63 = phi( main::textcolor1/CONIO_SCREEN_TEXT#69 ) - to:main::@16 -main::@16: scope:[main] from main::@24 - CONIO_SCREEN_BANK#70 = phi( main::@24/CONIO_SCREEN_BANK#73 ) - CONIO_SCREEN_TEXT#57 = phi( main::@24/CONIO_SCREEN_TEXT#63 ) - main::bgcolor1_color#0 = BLACK - to:main::bgcolor1 -main::bgcolor1: scope:[main] from main::@16 - CONIO_SCREEN_BANK#66 = phi( main::@16/CONIO_SCREEN_BANK#70 ) - CONIO_SCREEN_TEXT#51 = phi( main::@16/CONIO_SCREEN_TEXT#57 ) - main::bgcolor1_color#1 = phi( main::@16/main::bgcolor1_color#0 ) - vera_layer_set_backcolor::layer#1 = conio_screen_layer - vera_layer_set_backcolor::color#1 = main::bgcolor1_color#1 - call vera_layer_set_backcolor - vera_layer_set_backcolor::return#3 = vera_layer_set_backcolor::return#1 - to:main::@25 -main::@25: scope:[main] from main::bgcolor1 - CONIO_SCREEN_BANK#62 = phi( main::bgcolor1/CONIO_SCREEN_BANK#66 ) - CONIO_SCREEN_TEXT#42 = phi( main::bgcolor1/CONIO_SCREEN_TEXT#51 ) - to:main::@17 -main::@17: scope:[main] from main::@25 - CONIO_SCREEN_BANK#55 = phi( main::@25/CONIO_SCREEN_BANK#62 ) - CONIO_SCREEN_TEXT#24 = phi( main::@25/CONIO_SCREEN_TEXT#42 ) - call clrscr - to:main::@26 -main::@26: scope:[main] from main::@17 - CONIO_SCREEN_TEXT#114 = phi( main::@17/CONIO_SCREEN_TEXT#24 ) - CONIO_SCREEN_BANK#107 = phi( main::@17/CONIO_SCREEN_BANK#55 ) - vera_layer_mode_tile::layer#2 = 0 - vera_layer_mode_tile::mapbase_address#3 = $14000 - vera_layer_mode_tile::tilebase_address#3 = 0 - vera_layer_mode_tile::mapwidth#2 = $40 - vera_layer_mode_tile::mapheight#2 = $40 - vera_layer_mode_tile::tilewidth#2 = $10 - vera_layer_mode_tile::tileheight#2 = $10 - vera_layer_mode_tile::color_depth#2 = 8 - call vera_layer_mode_tile - to:main::@27 -main::@27: scope:[main] from main::@26 - CONIO_SCREEN_TEXT#113 = phi( main::@26/CONIO_SCREEN_TEXT#114 ) - CONIO_SCREEN_BANK#106 = phi( main::@26/CONIO_SCREEN_BANK#107 ) - main::tilebase#0 = (char *)0 - memcpy_to_vram::vbank#0 = 0 - memcpy_to_vram::vdest#0 = (void *)main::tilebase#0 - memcpy_to_vram::src#0 = (void *)main::tiles - memcpy_to_vram::num#0 = $100 - call memcpy_to_vram - to:main::@28 -main::@28: scope:[main] from main::@27 - CONIO_SCREEN_TEXT#112 = phi( main::@27/CONIO_SCREEN_TEXT#113 ) - CONIO_SCREEN_BANK#105 = phi( main::@27/CONIO_SCREEN_BANK#106 ) - main::tilebase#3 = phi( main::@27/main::tilebase#0 ) - main::tilebase#1 = main::tilebase#3 + $100 - main::t#0 = 1 - to:main::@1 -main::@1: scope:[main] from main::@28 main::@29 - CONIO_SCREEN_TEXT#111 = phi( main::@28/CONIO_SCREEN_TEXT#112, main::@29/CONIO_SCREEN_TEXT#108 ) - CONIO_SCREEN_BANK#104 = phi( main::@28/CONIO_SCREEN_BANK#105, main::@29/CONIO_SCREEN_BANK#101 ) - main::t#5 = phi( main::@28/main::t#0, main::@29/main::t#1 ) - main::tilebase#7 = phi( main::@28/main::tilebase#1, main::@29/main::tilebase#2 ) - main::p#0 = 0 - to:main::@2 -main::@2: scope:[main] from main::@1 main::@2 - CONIO_SCREEN_TEXT#110 = phi( main::@1/CONIO_SCREEN_TEXT#111, main::@2/CONIO_SCREEN_TEXT#110 ) - CONIO_SCREEN_BANK#103 = phi( main::@1/CONIO_SCREEN_BANK#104, main::@2/CONIO_SCREEN_BANK#103 ) - main::t#4 = phi( main::@1/main::t#5, main::@2/main::t#4 ) - main::tilebase#6 = phi( main::@1/main::tilebase#7, main::@2/main::tilebase#6 ) - main::p#2 = phi( main::@1/main::p#0, main::@2/main::p#1 ) - main::tiles[main::p#2] = main::tiles[main::p#2] + 1 - main::p#1 = main::p#2 + rangenext(0,$ff) - main::$29 = main::p#1 != rangelast(0,$ff) - if(main::$29) goto main::@2 - to:main::@3 -main::@3: scope:[main] from main::@2 - CONIO_SCREEN_TEXT#109 = phi( main::@2/CONIO_SCREEN_TEXT#110 ) - CONIO_SCREEN_BANK#102 = phi( main::@2/CONIO_SCREEN_BANK#103 ) - main::t#3 = phi( main::@2/main::t#4 ) - main::tilebase#4 = phi( main::@2/main::tilebase#6 ) - memcpy_to_vram::vbank#1 = 0 - memcpy_to_vram::vdest#1 = (void *)main::tilebase#4 - memcpy_to_vram::src#1 = (void *)main::tiles - memcpy_to_vram::num#1 = $100 - call memcpy_to_vram - to:main::@29 -main::@29: scope:[main] from main::@3 - CONIO_SCREEN_TEXT#108 = phi( main::@3/CONIO_SCREEN_TEXT#109 ) - CONIO_SCREEN_BANK#101 = phi( main::@3/CONIO_SCREEN_BANK#102 ) - main::t#2 = phi( main::@3/main::t#3 ) - main::tilebase#5 = phi( main::@3/main::tilebase#4 ) - main::tilebase#2 = main::tilebase#5 + $100 - main::t#1 = main::t#2 + rangenext(1,$ff) - main::$31 = main::t#1 != rangelast(1,$ff) - if(main::$31) goto main::@1 - to:main::@4 -main::@4: scope:[main] from main::@29 - CONIO_SCREEN_TEXT#107 = phi( main::@29/CONIO_SCREEN_TEXT#108 ) - CONIO_SCREEN_BANK#100 = phi( main::@29/CONIO_SCREEN_BANK#101 ) - vera_tile_area::layer#0 = 0 - vera_tile_area::tileindex#0 = 0 - vera_tile_area::x#0 = 0 - vera_tile_area::y#0 = 0 - vera_tile_area::w#0 = $28 - vera_tile_area::h#0 = $1e - vera_tile_area::hflip#1 = 0 - vera_tile_area::vflip#1 = 0 - vera_tile_area::offset#1 = 0 - call vera_tile_area - to:main::@30 -main::@30: scope:[main] from main::@4 - CONIO_SCREEN_TEXT#106 = phi( main::@4/CONIO_SCREEN_TEXT#107 ) - CONIO_SCREEN_BANK#99 = phi( main::@4/CONIO_SCREEN_BANK#100 ) - main::tile#0 = 0 - main::row#0 = 1 - main::r#0 = 0 - to:main::@5 -main::@5: scope:[main] from main::@30 main::@7 - CONIO_SCREEN_TEXT#105 = phi( main::@30/CONIO_SCREEN_TEXT#106, main::@7/CONIO_SCREEN_TEXT#102 ) - CONIO_SCREEN_BANK#98 = phi( main::@30/CONIO_SCREEN_BANK#99, main::@7/CONIO_SCREEN_BANK#95 ) - main::r#5 = phi( main::@30/main::r#0, main::@7/main::r#1 ) - main::row#9 = phi( main::@30/main::row#0, main::@7/main::row#1 ) - main::tile#10 = phi( main::@30/main::tile#0, main::@7/main::tile#12 ) - main::column#0 = 0 - main::c#0 = 0 - to:main::@6 -main::@6: scope:[main] from main::@31 main::@5 - CONIO_SCREEN_TEXT#104 = phi( main::@31/CONIO_SCREEN_TEXT#103, main::@5/CONIO_SCREEN_TEXT#105 ) - CONIO_SCREEN_BANK#97 = phi( main::@31/CONIO_SCREEN_BANK#96, main::@5/CONIO_SCREEN_BANK#98 ) - main::r#4 = phi( main::@31/main::r#3, main::@5/main::r#5 ) - main::c#3 = phi( main::@31/main::c#1, main::@5/main::c#0 ) - main::row#4 = phi( main::@31/main::row#8, main::@5/main::row#9 ) - main::column#2 = phi( main::@31/main::column#1, main::@5/main::column#0 ) - main::tile#6 = phi( main::@31/main::tile#2, main::@5/main::tile#10 ) - vera_tile_area::layer#1 = 0 - vera_tile_area::tileindex#1 = main::tile#6 - vera_tile_area::x#1 = main::column#2 - vera_tile_area::y#1 = main::row#4 - vera_tile_area::w#1 = 1 - vera_tile_area::h#1 = 1 - vera_tile_area::hflip#2 = 0 - vera_tile_area::vflip#2 = 0 - vera_tile_area::offset#2 = 0 - call vera_tile_area - to:main::@31 -main::@31: scope:[main] from main::@6 - CONIO_SCREEN_TEXT#103 = phi( main::@6/CONIO_SCREEN_TEXT#104 ) - CONIO_SCREEN_BANK#96 = phi( main::@6/CONIO_SCREEN_BANK#97 ) - main::r#3 = phi( main::@6/main::r#4 ) - main::row#8 = phi( main::@6/main::row#4 ) - main::c#2 = phi( main::@6/main::c#3 ) - main::tile#7 = phi( main::@6/main::tile#6 ) - main::column#3 = phi( main::@6/main::column#2 ) - main::column#1 = main::column#3 + 2 - main::tile#1 = ++ main::tile#7 - main::tile#2 = main::tile#1 & $ff - main::c#1 = main::c#2 + rangenext(0,$13) - main::$33 = main::c#1 != rangelast(0,$13) - if(main::$33) goto main::@6 - to:main::@7 -main::@7: scope:[main] from main::@31 - CONIO_SCREEN_TEXT#102 = phi( main::@31/CONIO_SCREEN_TEXT#103 ) - CONIO_SCREEN_BANK#95 = phi( main::@31/CONIO_SCREEN_BANK#96 ) - main::tile#12 = phi( main::@31/main::tile#2 ) - main::r#2 = phi( main::@31/main::r#3 ) - main::row#5 = phi( main::@31/main::row#8 ) - main::row#1 = main::row#5 + 2 - main::r#1 = main::r#2 + rangenext(0,$b) - main::$34 = main::r#1 != rangelast(0,$b) - if(main::$34) goto main::@5 - to:main::@8 -main::@8: scope:[main] from main::@7 - CONIO_SCREEN_TEXT#101 = phi( main::@7/CONIO_SCREEN_TEXT#102 ) - CONIO_SCREEN_BANK#94 = phi( main::@7/CONIO_SCREEN_BANK#95 ) - gotoxy::x#3 = 0 - gotoxy::y#3 = $32 - call gotoxy - to:main::@32 -main::@32: scope:[main] from main::@8 - CONIO_SCREEN_TEXT#100 = phi( main::@8/CONIO_SCREEN_TEXT#101 ) - CONIO_SCREEN_BANK#93 = phi( main::@8/CONIO_SCREEN_BANK#94 ) - printf_str::putc#0 = &cputc - printf_str::s#1 = main::s - call printf_str - to:main::@33 -main::@33: scope:[main] from main::@32 - CONIO_SCREEN_TEXT#99 = phi( main::@32/CONIO_SCREEN_TEXT#100 ) - CONIO_SCREEN_BANK#92 = phi( main::@32/CONIO_SCREEN_BANK#93 ) - printf_str::putc#1 = &cputc - printf_str::s#2 = main::s1 - call printf_str - to:main::@34 -main::@34: scope:[main] from main::@33 - CONIO_SCREEN_TEXT#98 = phi( main::@33/CONIO_SCREEN_TEXT#99 ) - CONIO_SCREEN_BANK#91 = phi( main::@33/CONIO_SCREEN_BANK#92 ) - printf_str::putc#2 = &cputc - printf_str::s#3 = main::s2 - call printf_str - to:main::@35 -main::@35: scope:[main] from main::@34 - CONIO_SCREEN_TEXT#97 = phi( main::@34/CONIO_SCREEN_TEXT#98 ) - CONIO_SCREEN_BANK#90 = phi( main::@34/CONIO_SCREEN_BANK#91 ) - printf_str::putc#3 = &cputc - printf_str::s#4 = main::s3 - call printf_str - to:main::@36 -main::@36: scope:[main] from main::@35 - CONIO_SCREEN_TEXT#96 = phi( main::@35/CONIO_SCREEN_TEXT#97 ) - CONIO_SCREEN_BANK#89 = phi( main::@35/CONIO_SCREEN_BANK#90 ) - printf_str::putc#4 = &cputc - printf_str::s#5 = main::s4 - call printf_str - to:main::@37 -main::@37: scope:[main] from main::@36 - CONIO_SCREEN_TEXT#95 = phi( main::@36/CONIO_SCREEN_TEXT#96 ) - CONIO_SCREEN_BANK#88 = phi( main::@36/CONIO_SCREEN_BANK#89 ) - printf_str::putc#5 = &cputc - printf_str::s#6 = main::s5 - call printf_str - to:main::@38 -main::@38: scope:[main] from main::@37 - CONIO_SCREEN_TEXT#94 = phi( main::@37/CONIO_SCREEN_TEXT#95 ) - CONIO_SCREEN_BANK#87 = phi( main::@37/CONIO_SCREEN_BANK#88 ) - printf_str::putc#6 = &cputc - printf_str::s#7 = main::s6 - call printf_str - to:main::@39 -main::@39: scope:[main] from main::@38 - CONIO_SCREEN_TEXT#93 = phi( main::@38/CONIO_SCREEN_TEXT#94 ) - CONIO_SCREEN_BANK#86 = phi( main::@38/CONIO_SCREEN_BANK#87 ) - printf_str::putc#7 = &cputc - printf_str::s#8 = main::s7 - call printf_str - to:main::@40 -main::@40: scope:[main] from main::@39 - CONIO_SCREEN_TEXT#92 = phi( main::@39/CONIO_SCREEN_TEXT#93 ) - CONIO_SCREEN_BANK#85 = phi( main::@39/CONIO_SCREEN_BANK#86 ) - main::vera_layer_show1_layer#0 = 0 - to:main::vera_layer_show1 -main::vera_layer_show1: scope:[main] from main::@40 - CONIO_SCREEN_TEXT#91 = phi( main::@40/CONIO_SCREEN_TEXT#92 ) - CONIO_SCREEN_BANK#84 = phi( main::@40/CONIO_SCREEN_BANK#85 ) - main::vera_layer_show1_layer#1 = phi( main::@40/main::vera_layer_show1_layer#0 ) - *VERA_DC_VIDEO = *VERA_DC_VIDEO | vera_layer_enable[main::vera_layer_show1_layer#1] - to:main::@9 -main::@9: scope:[main] from main::@41 main::vera_layer_show1 - CONIO_SCREEN_TEXT#90 = phi( main::@41/CONIO_SCREEN_TEXT#89, main::vera_layer_show1/CONIO_SCREEN_TEXT#91 ) - CONIO_SCREEN_BANK#83 = phi( main::@41/CONIO_SCREEN_BANK#82, main::vera_layer_show1/CONIO_SCREEN_BANK#84 ) - call kbhit - kbhit::return#2 = kbhit::return#1 - to:main::@41 -main::@41: scope:[main] from main::@9 - CONIO_SCREEN_TEXT#89 = phi( main::@9/CONIO_SCREEN_TEXT#90 ) - CONIO_SCREEN_BANK#82 = phi( main::@9/CONIO_SCREEN_BANK#83 ) - kbhit::return#5 = phi( main::@9/kbhit::return#2 ) - main::$35 = kbhit::return#5 - main::$42 = 0 != main::$35 - main::$36 = ! main::$42 - if(main::$36) goto main::@9 - to:main::@10 -main::@10: scope:[main] from main::@41 - CONIO_SCREEN_TEXT#88 = phi( main::@41/CONIO_SCREEN_TEXT#89 ) - CONIO_SCREEN_BANK#81 = phi( main::@41/CONIO_SCREEN_BANK#82 ) - vera_tile_area::layer#2 = 0 - vera_tile_area::tileindex#2 = 0 - vera_tile_area::x#2 = 0 - vera_tile_area::y#2 = 0 - vera_tile_area::w#2 = $28 - vera_tile_area::h#2 = $1e - vera_tile_area::hflip#3 = 0 - vera_tile_area::vflip#3 = 0 - vera_tile_area::offset#3 = 0 - call vera_tile_area - to:main::@42 -main::@42: scope:[main] from main::@10 - CONIO_SCREEN_TEXT#87 = phi( main::@10/CONIO_SCREEN_TEXT#88 ) - CONIO_SCREEN_BANK#80 = phi( main::@10/CONIO_SCREEN_BANK#81 ) - main::tile#3 = 0 - main::row#2 = 0 - main::r1#0 = 0 - to:main::@11 -main::@11: scope:[main] from main::@13 main::@42 - CONIO_SCREEN_TEXT#86 = phi( main::@13/CONIO_SCREEN_TEXT#83, main::@42/CONIO_SCREEN_TEXT#87 ) - CONIO_SCREEN_BANK#79 = phi( main::@13/CONIO_SCREEN_BANK#76, main::@42/CONIO_SCREEN_BANK#80 ) - main::r1#5 = phi( main::@13/main::r1#1, main::@42/main::r1#0 ) - main::row#10 = phi( main::@13/main::row#3, main::@42/main::row#2 ) - main::tile#11 = phi( main::@13/main::tile#13, main::@42/main::tile#3 ) - main::column1#0 = 0 - main::c1#0 = 0 - to:main::@12 -main::@12: scope:[main] from main::@11 main::@43 - CONIO_SCREEN_TEXT#85 = phi( main::@11/CONIO_SCREEN_TEXT#86, main::@43/CONIO_SCREEN_TEXT#84 ) - CONIO_SCREEN_BANK#78 = phi( main::@11/CONIO_SCREEN_BANK#79, main::@43/CONIO_SCREEN_BANK#77 ) - main::r1#4 = phi( main::@11/main::r1#5, main::@43/main::r1#3 ) - main::c1#3 = phi( main::@11/main::c1#0, main::@43/main::c1#1 ) - main::row#6 = phi( main::@11/main::row#10, main::@43/main::row#11 ) - main::column1#2 = phi( main::@11/main::column1#0, main::@43/main::column1#1 ) - main::tile#8 = phi( main::@11/main::tile#11, main::@43/main::tile#5 ) - vera_tile_area::layer#3 = 0 - vera_tile_area::tileindex#3 = main::tile#8 - vera_tile_area::x#3 = main::column1#2 - vera_tile_area::y#3 = main::row#6 - vera_tile_area::w#3 = 2 - vera_tile_area::h#3 = 2 - vera_tile_area::hflip#4 = 0 - vera_tile_area::vflip#4 = 0 - vera_tile_area::offset#4 = 0 - call vera_tile_area - to:main::@43 -main::@43: scope:[main] from main::@12 - CONIO_SCREEN_TEXT#84 = phi( main::@12/CONIO_SCREEN_TEXT#85 ) - CONIO_SCREEN_BANK#77 = phi( main::@12/CONIO_SCREEN_BANK#78 ) - main::r1#3 = phi( main::@12/main::r1#4 ) - main::row#11 = phi( main::@12/main::row#6 ) - main::c1#2 = phi( main::@12/main::c1#3 ) - main::tile#9 = phi( main::@12/main::tile#8 ) - main::column1#3 = phi( main::@12/main::column1#2 ) - main::column1#1 = main::column1#3 + 2 - main::tile#4 = ++ main::tile#9 - main::tile#5 = main::tile#4 & $ff - main::c1#1 = main::c1#2 + rangenext(0,$13) - main::$38 = main::c1#1 != rangelast(0,$13) - if(main::$38) goto main::@12 - to:main::@13 -main::@13: scope:[main] from main::@43 - CONIO_SCREEN_TEXT#83 = phi( main::@43/CONIO_SCREEN_TEXT#84 ) - CONIO_SCREEN_BANK#76 = phi( main::@43/CONIO_SCREEN_BANK#77 ) - main::tile#13 = phi( main::@43/main::tile#5 ) - main::r1#2 = phi( main::@43/main::r1#3 ) - main::row#7 = phi( main::@43/main::row#11 ) - main::row#3 = main::row#7 + 2 - main::r1#1 = main::r1#2 + rangenext(0,$b) - main::$39 = main::r1#1 != rangelast(0,$b) - if(main::$39) goto main::@11 - to:main::@14 -main::@14: scope:[main] from main::@13 main::@44 - CONIO_SCREEN_TEXT#82 = phi( main::@13/CONIO_SCREEN_TEXT#83, main::@44/CONIO_SCREEN_TEXT#80 ) - CONIO_SCREEN_BANK#74 = phi( main::@13/CONIO_SCREEN_BANK#76, main::@44/CONIO_SCREEN_BANK#71 ) - call kbhit - kbhit::return#3 = kbhit::return#1 - to:main::@44 -main::@44: scope:[main] from main::@14 - CONIO_SCREEN_TEXT#80 = phi( main::@14/CONIO_SCREEN_TEXT#82 ) - CONIO_SCREEN_BANK#71 = phi( main::@14/CONIO_SCREEN_BANK#74 ) - kbhit::return#6 = phi( main::@14/kbhit::return#3 ) - main::$40 = kbhit::return#6 - main::$43 = 0 != main::$40 - main::$41 = ! main::$43 - if(main::$41) goto main::@14 - to:main::@15 -main::@15: scope:[main] from main::@44 - CONIO_SCREEN_TEXT#76 = phi( main::@44/CONIO_SCREEN_TEXT#80 ) - CONIO_SCREEN_BANK#67 = phi( main::@44/CONIO_SCREEN_BANK#71 ) - vera_tile_area::layer#4 = 0 - vera_tile_area::tileindex#4 = 0 - vera_tile_area::x#4 = 0 - vera_tile_area::y#4 = 0 - vera_tile_area::w#4 = $28 - vera_tile_area::h#4 = $1e - vera_tile_area::hflip#5 = 0 - vera_tile_area::vflip#5 = 0 - vera_tile_area::offset#5 = 0 - call vera_tile_area - to:main::@45 -main::@45: scope:[main] from main::@15 - CONIO_SCREEN_TEXT#70 = phi( main::@15/CONIO_SCREEN_TEXT#76 ) - CONIO_SCREEN_BANK#63 = phi( main::@15/CONIO_SCREEN_BANK#67 ) - main::vera_layer_hide1_layer#0 = 0 - to:main::vera_layer_hide1 -main::vera_layer_hide1: scope:[main] from main::@45 - CONIO_SCREEN_TEXT#64 = phi( main::@45/CONIO_SCREEN_TEXT#70 ) - CONIO_SCREEN_BANK#58 = phi( main::@45/CONIO_SCREEN_BANK#63 ) - main::vera_layer_hide1_layer#1 = phi( main::@45/main::vera_layer_hide1_layer#0 ) - main::vera_layer_hide1_$0 = ~ vera_layer_enable[main::vera_layer_hide1_layer#1] - *VERA_DC_VIDEO = *VERA_DC_VIDEO & main::vera_layer_hide1_$0 - to:main::@18 -main::@18: scope:[main] from main::vera_layer_hide1 - CONIO_SCREEN_TEXT#58 = phi( main::vera_layer_hide1/CONIO_SCREEN_TEXT#64 ) - CONIO_SCREEN_BANK#53 = phi( main::vera_layer_hide1/CONIO_SCREEN_BANK#58 ) - memcpy_in_vram::dest_bank#2 = 0 - memcpy_in_vram::dest#2 = (void *)(char *)$f800 - memcpy_in_vram::dest_increment#2 = VERA_INC_1 - memcpy_in_vram::src_bank#2 = 1 - memcpy_in_vram::src#2 = (void *)(char *)$f000 - memcpy_in_vram::src_increment#2 = VERA_INC_1 - memcpy_in_vram::num#2 = $100*8 - call memcpy_in_vram - to:main::@46 -main::@46: scope:[main] from main::@18 - CONIO_SCREEN_TEXT#52 = phi( main::@18/CONIO_SCREEN_TEXT#58 ) - CONIO_SCREEN_BANK#47 = phi( main::@18/CONIO_SCREEN_BANK#53 ) - vera_layer_mode_tile::layer#3 = 1 - vera_layer_mode_tile::mapbase_address#4 = 0 - vera_layer_mode_tile::tilebase_address#4 = $f800 - vera_layer_mode_tile::mapwidth#3 = $80 - vera_layer_mode_tile::mapheight#3 = $80 - vera_layer_mode_tile::tilewidth#3 = 8 - vera_layer_mode_tile::tileheight#3 = 8 - vera_layer_mode_tile::color_depth#3 = 1 - call vera_layer_mode_tile - to:main::@47 -main::@47: scope:[main] from main::@46 - CONIO_SCREEN_TEXT#43 = phi( main::@46/CONIO_SCREEN_TEXT#52 ) - CONIO_SCREEN_BANK#38 = phi( main::@46/CONIO_SCREEN_BANK#47 ) - vera_layer_mode_tile::layer#4 = 0 - vera_layer_mode_tile::mapbase_address#5 = 0 - vera_layer_mode_tile::tilebase_address#5 = $f800 - vera_layer_mode_tile::mapwidth#4 = $80 - vera_layer_mode_tile::mapheight#4 = $80 - vera_layer_mode_tile::tilewidth#4 = 8 - vera_layer_mode_tile::tileheight#4 = 8 - vera_layer_mode_tile::color_depth#4 = 1 - call vera_layer_mode_tile - to:main::@48 -main::@48: scope:[main] from main::@47 - CONIO_SCREEN_TEXT#33 = phi( main::@47/CONIO_SCREEN_TEXT#43 ) - CONIO_SCREEN_BANK#28 = phi( main::@47/CONIO_SCREEN_BANK#38 ) - screenlayer::layer#2 = 1 - call screenlayer - to:main::@49 -main::@49: scope:[main] from main::@48 - CONIO_SCREEN_TEXT#19 = phi( main::@48/CONIO_SCREEN_TEXT#3 ) - CONIO_SCREEN_BANK#17 = phi( main::@48/CONIO_SCREEN_BANK#3 ) - CONIO_SCREEN_BANK#5 = CONIO_SCREEN_BANK#17 - CONIO_SCREEN_TEXT#5 = CONIO_SCREEN_TEXT#19 - main::textcolor2_color#0 = WHITE - to:main::textcolor2 -main::textcolor2: scope:[main] from main::@49 - CONIO_SCREEN_BANK#68 = phi( main::@49/CONIO_SCREEN_BANK#5 ) - CONIO_SCREEN_TEXT#71 = phi( main::@49/CONIO_SCREEN_TEXT#5 ) - main::textcolor2_color#1 = phi( main::@49/main::textcolor2_color#0 ) - vera_layer_set_textcolor::layer#2 = conio_screen_layer - vera_layer_set_textcolor::color#2 = main::textcolor2_color#1 - call vera_layer_set_textcolor - vera_layer_set_textcolor::return#4 = vera_layer_set_textcolor::return#1 - to:main::@50 -main::@50: scope:[main] from main::textcolor2 - CONIO_SCREEN_BANK#64 = phi( main::textcolor2/CONIO_SCREEN_BANK#68 ) - CONIO_SCREEN_TEXT#65 = phi( main::textcolor2/CONIO_SCREEN_TEXT#71 ) - to:main::@19 -main::@19: scope:[main] from main::@50 - CONIO_SCREEN_BANK#59 = phi( main::@50/CONIO_SCREEN_BANK#64 ) - CONIO_SCREEN_TEXT#59 = phi( main::@50/CONIO_SCREEN_TEXT#65 ) - main::bgcolor2_color#0 = BLUE - to:main::bgcolor2 -main::bgcolor2: scope:[main] from main::@19 - CONIO_SCREEN_BANK#54 = phi( main::@19/CONIO_SCREEN_BANK#59 ) - CONIO_SCREEN_TEXT#53 = phi( main::@19/CONIO_SCREEN_TEXT#59 ) - main::bgcolor2_color#1 = phi( main::@19/main::bgcolor2_color#0 ) - vera_layer_set_backcolor::layer#2 = conio_screen_layer - vera_layer_set_backcolor::color#2 = main::bgcolor2_color#1 - call vera_layer_set_backcolor - vera_layer_set_backcolor::return#4 = vera_layer_set_backcolor::return#1 - to:main::@51 -main::@51: scope:[main] from main::bgcolor2 - CONIO_SCREEN_BANK#48 = phi( main::bgcolor2/CONIO_SCREEN_BANK#54 ) - CONIO_SCREEN_TEXT#44 = phi( main::bgcolor2/CONIO_SCREEN_TEXT#53 ) - to:main::@20 -main::@20: scope:[main] from main::@51 - CONIO_SCREEN_BANK#39 = phi( main::@51/CONIO_SCREEN_BANK#48 ) - CONIO_SCREEN_TEXT#25 = phi( main::@51/CONIO_SCREEN_TEXT#44 ) - call clrscr - to:main::@52 -main::@52: scope:[main] from main::@20 - CONIO_SCREEN_TEXT#34 = phi( main::@20/CONIO_SCREEN_TEXT#25 ) - CONIO_SCREEN_BANK#29 = phi( main::@20/CONIO_SCREEN_BANK#39 ) - to:main::@return -main::@return: scope:[main] from main::@52 - CONIO_SCREEN_TEXT#20 = phi( main::@52/CONIO_SCREEN_TEXT#34 ) - CONIO_SCREEN_BANK#18 = phi( main::@52/CONIO_SCREEN_BANK#29 ) - CONIO_SCREEN_BANK#6 = CONIO_SCREEN_BANK#18 - CONIO_SCREEN_TEXT#6 = CONIO_SCREEN_TEXT#20 - return - to:@return - -void __start() -__start: scope:[__start] from - to:__start::__init1 -__start::__init1: scope:[__start] from __start - CONIO_SCREEN_TEXT#7 = DEFAULT_SCREEN - CONIO_SCREEN_BANK#7 = 0 - conio_screen_width = 0 - conio_screen_height = 0 - conio_screen_layer = 1 - conio_width = 0 - conio_height = 0 - conio_rowshift = 0 - conio_rowskip = 0 - call conio_x16_init - to:__start::@2 -__start::@2: scope:[__start] from __start::__init1 - CONIO_SCREEN_TEXT#21 = phi( __start::__init1/CONIO_SCREEN_TEXT#1 ) - CONIO_SCREEN_BANK#19 = phi( __start::__init1/CONIO_SCREEN_BANK#1 ) - CONIO_SCREEN_BANK#8 = CONIO_SCREEN_BANK#19 - CONIO_SCREEN_TEXT#8 = CONIO_SCREEN_TEXT#21 - to:__start::@1 -__start::@1: scope:[__start] from __start::@2 - CONIO_SCREEN_TEXT#35 = phi( __start::@2/CONIO_SCREEN_TEXT#8 ) - CONIO_SCREEN_BANK#30 = phi( __start::@2/CONIO_SCREEN_BANK#8 ) - call main - to:__start::@3 -__start::@3: scope:[__start] from __start::@1 - CONIO_SCREEN_TEXT#22 = phi( __start::@1/CONIO_SCREEN_TEXT#6 ) - CONIO_SCREEN_BANK#20 = phi( __start::@1/CONIO_SCREEN_BANK#6 ) - CONIO_SCREEN_BANK#9 = CONIO_SCREEN_BANK#20 - CONIO_SCREEN_TEXT#9 = CONIO_SCREEN_TEXT#22 - to:__start::@return -__start::@return: scope:[__start] from __start::@3 - CONIO_SCREEN_BANK#21 = phi( __start::@3/CONIO_SCREEN_BANK#9 ) - CONIO_SCREEN_TEXT#23 = phi( __start::@3/CONIO_SCREEN_TEXT#9 ) - CONIO_SCREEN_TEXT#10 = CONIO_SCREEN_TEXT#23 - CONIO_SCREEN_BANK#10 = CONIO_SCREEN_BANK#21 - return - to:@return - -SYMBOL TABLE SSA -__constant const char BLACK = 0 -__constant const char BLUE = 6 -char CONIO_SCREEN_BANK -char CONIO_SCREEN_BANK#0 -char CONIO_SCREEN_BANK#1 -char CONIO_SCREEN_BANK#10 -char CONIO_SCREEN_BANK#100 -char CONIO_SCREEN_BANK#101 -char CONIO_SCREEN_BANK#102 -char CONIO_SCREEN_BANK#103 -char CONIO_SCREEN_BANK#104 -char CONIO_SCREEN_BANK#105 -char CONIO_SCREEN_BANK#106 -char CONIO_SCREEN_BANK#107 -char CONIO_SCREEN_BANK#11 -char CONIO_SCREEN_BANK#12 -char CONIO_SCREEN_BANK#13 -char CONIO_SCREEN_BANK#14 -char CONIO_SCREEN_BANK#15 -char CONIO_SCREEN_BANK#16 -char CONIO_SCREEN_BANK#17 -char CONIO_SCREEN_BANK#18 -char CONIO_SCREEN_BANK#19 -char CONIO_SCREEN_BANK#2 -char CONIO_SCREEN_BANK#20 -char CONIO_SCREEN_BANK#21 -char CONIO_SCREEN_BANK#22 -char CONIO_SCREEN_BANK#23 -char CONIO_SCREEN_BANK#24 -char CONIO_SCREEN_BANK#25 -char CONIO_SCREEN_BANK#26 -char CONIO_SCREEN_BANK#27 -char CONIO_SCREEN_BANK#28 -char CONIO_SCREEN_BANK#29 -char CONIO_SCREEN_BANK#3 -char CONIO_SCREEN_BANK#30 -char CONIO_SCREEN_BANK#31 -char CONIO_SCREEN_BANK#32 -char CONIO_SCREEN_BANK#33 -char CONIO_SCREEN_BANK#34 -char CONIO_SCREEN_BANK#35 -char CONIO_SCREEN_BANK#36 -char CONIO_SCREEN_BANK#37 -char CONIO_SCREEN_BANK#38 -char CONIO_SCREEN_BANK#39 -char CONIO_SCREEN_BANK#4 -char CONIO_SCREEN_BANK#40 -char CONIO_SCREEN_BANK#41 -char CONIO_SCREEN_BANK#42 -char CONIO_SCREEN_BANK#43 -char CONIO_SCREEN_BANK#44 -char CONIO_SCREEN_BANK#45 -char CONIO_SCREEN_BANK#46 -char CONIO_SCREEN_BANK#47 -char CONIO_SCREEN_BANK#48 -char CONIO_SCREEN_BANK#49 -char CONIO_SCREEN_BANK#5 -char CONIO_SCREEN_BANK#50 -char CONIO_SCREEN_BANK#51 -char CONIO_SCREEN_BANK#52 -char CONIO_SCREEN_BANK#53 -char CONIO_SCREEN_BANK#54 -char CONIO_SCREEN_BANK#55 -char CONIO_SCREEN_BANK#56 -char CONIO_SCREEN_BANK#57 -char CONIO_SCREEN_BANK#58 -char CONIO_SCREEN_BANK#59 -char CONIO_SCREEN_BANK#6 -char CONIO_SCREEN_BANK#60 -char CONIO_SCREEN_BANK#61 -char CONIO_SCREEN_BANK#62 -char CONIO_SCREEN_BANK#63 -char CONIO_SCREEN_BANK#64 -char CONIO_SCREEN_BANK#65 -char CONIO_SCREEN_BANK#66 -char CONIO_SCREEN_BANK#67 -char CONIO_SCREEN_BANK#68 -char CONIO_SCREEN_BANK#69 -char CONIO_SCREEN_BANK#7 -char CONIO_SCREEN_BANK#70 -char CONIO_SCREEN_BANK#71 -char CONIO_SCREEN_BANK#72 -char CONIO_SCREEN_BANK#73 -char CONIO_SCREEN_BANK#74 -char CONIO_SCREEN_BANK#75 -char CONIO_SCREEN_BANK#76 -char CONIO_SCREEN_BANK#77 -char CONIO_SCREEN_BANK#78 -char CONIO_SCREEN_BANK#79 -char CONIO_SCREEN_BANK#8 -char CONIO_SCREEN_BANK#80 -char CONIO_SCREEN_BANK#81 -char CONIO_SCREEN_BANK#82 -char CONIO_SCREEN_BANK#83 -char CONIO_SCREEN_BANK#84 -char CONIO_SCREEN_BANK#85 -char CONIO_SCREEN_BANK#86 -char CONIO_SCREEN_BANK#87 -char CONIO_SCREEN_BANK#88 -char CONIO_SCREEN_BANK#89 -char CONIO_SCREEN_BANK#9 -char CONIO_SCREEN_BANK#90 -char CONIO_SCREEN_BANK#91 -char CONIO_SCREEN_BANK#92 -char CONIO_SCREEN_BANK#93 -char CONIO_SCREEN_BANK#94 -char CONIO_SCREEN_BANK#95 -char CONIO_SCREEN_BANK#96 -char CONIO_SCREEN_BANK#97 -char CONIO_SCREEN_BANK#98 -char CONIO_SCREEN_BANK#99 -char *CONIO_SCREEN_TEXT -char *CONIO_SCREEN_TEXT#0 -char *CONIO_SCREEN_TEXT#1 -char *CONIO_SCREEN_TEXT#10 -char *CONIO_SCREEN_TEXT#100 -char *CONIO_SCREEN_TEXT#101 -char *CONIO_SCREEN_TEXT#102 -char *CONIO_SCREEN_TEXT#103 -char *CONIO_SCREEN_TEXT#104 -char *CONIO_SCREEN_TEXT#105 -char *CONIO_SCREEN_TEXT#106 -char *CONIO_SCREEN_TEXT#107 -char *CONIO_SCREEN_TEXT#108 -char *CONIO_SCREEN_TEXT#109 -char *CONIO_SCREEN_TEXT#11 -char *CONIO_SCREEN_TEXT#110 -char *CONIO_SCREEN_TEXT#111 -char *CONIO_SCREEN_TEXT#112 -char *CONIO_SCREEN_TEXT#113 -char *CONIO_SCREEN_TEXT#114 -char *CONIO_SCREEN_TEXT#12 -char *CONIO_SCREEN_TEXT#13 -char *CONIO_SCREEN_TEXT#14 -char *CONIO_SCREEN_TEXT#15 -char *CONIO_SCREEN_TEXT#16 -char *CONIO_SCREEN_TEXT#17 -char *CONIO_SCREEN_TEXT#18 -char *CONIO_SCREEN_TEXT#19 -char *CONIO_SCREEN_TEXT#2 -char *CONIO_SCREEN_TEXT#20 -char *CONIO_SCREEN_TEXT#21 -char *CONIO_SCREEN_TEXT#22 -char *CONIO_SCREEN_TEXT#23 -char *CONIO_SCREEN_TEXT#24 -char *CONIO_SCREEN_TEXT#25 -char *CONIO_SCREEN_TEXT#26 -char *CONIO_SCREEN_TEXT#27 -char *CONIO_SCREEN_TEXT#28 -char *CONIO_SCREEN_TEXT#29 -char *CONIO_SCREEN_TEXT#3 -char *CONIO_SCREEN_TEXT#30 -char *CONIO_SCREEN_TEXT#31 -char *CONIO_SCREEN_TEXT#32 -char *CONIO_SCREEN_TEXT#33 -char *CONIO_SCREEN_TEXT#34 -char *CONIO_SCREEN_TEXT#35 -char *CONIO_SCREEN_TEXT#36 -char *CONIO_SCREEN_TEXT#37 -char *CONIO_SCREEN_TEXT#38 -char *CONIO_SCREEN_TEXT#39 -char *CONIO_SCREEN_TEXT#4 -char *CONIO_SCREEN_TEXT#40 -char *CONIO_SCREEN_TEXT#41 -char *CONIO_SCREEN_TEXT#42 -char *CONIO_SCREEN_TEXT#43 -char *CONIO_SCREEN_TEXT#44 -char *CONIO_SCREEN_TEXT#45 -char *CONIO_SCREEN_TEXT#46 -char *CONIO_SCREEN_TEXT#47 -char *CONIO_SCREEN_TEXT#48 -char *CONIO_SCREEN_TEXT#49 -char *CONIO_SCREEN_TEXT#5 -char *CONIO_SCREEN_TEXT#50 -char *CONIO_SCREEN_TEXT#51 -char *CONIO_SCREEN_TEXT#52 -char *CONIO_SCREEN_TEXT#53 -char *CONIO_SCREEN_TEXT#54 -char *CONIO_SCREEN_TEXT#55 -char *CONIO_SCREEN_TEXT#56 -char *CONIO_SCREEN_TEXT#57 -char *CONIO_SCREEN_TEXT#58 -char *CONIO_SCREEN_TEXT#59 -char *CONIO_SCREEN_TEXT#6 -char *CONIO_SCREEN_TEXT#60 -char *CONIO_SCREEN_TEXT#61 -char *CONIO_SCREEN_TEXT#62 -char *CONIO_SCREEN_TEXT#63 -char *CONIO_SCREEN_TEXT#64 -char *CONIO_SCREEN_TEXT#65 -char *CONIO_SCREEN_TEXT#66 -char *CONIO_SCREEN_TEXT#67 -char *CONIO_SCREEN_TEXT#68 -char *CONIO_SCREEN_TEXT#69 -char *CONIO_SCREEN_TEXT#7 -char *CONIO_SCREEN_TEXT#70 -char *CONIO_SCREEN_TEXT#71 -char *CONIO_SCREEN_TEXT#72 -char *CONIO_SCREEN_TEXT#73 -char *CONIO_SCREEN_TEXT#74 -char *CONIO_SCREEN_TEXT#75 -char *CONIO_SCREEN_TEXT#76 -char *CONIO_SCREEN_TEXT#77 -char *CONIO_SCREEN_TEXT#78 -char *CONIO_SCREEN_TEXT#79 -char *CONIO_SCREEN_TEXT#8 -char *CONIO_SCREEN_TEXT#80 -char *CONIO_SCREEN_TEXT#81 -char *CONIO_SCREEN_TEXT#82 -char *CONIO_SCREEN_TEXT#83 -char *CONIO_SCREEN_TEXT#84 -char *CONIO_SCREEN_TEXT#85 -char *CONIO_SCREEN_TEXT#86 -char *CONIO_SCREEN_TEXT#87 -char *CONIO_SCREEN_TEXT#88 -char *CONIO_SCREEN_TEXT#89 -char *CONIO_SCREEN_TEXT#9 -char *CONIO_SCREEN_TEXT#90 -char *CONIO_SCREEN_TEXT#91 -char *CONIO_SCREEN_TEXT#92 -char *CONIO_SCREEN_TEXT#93 -char *CONIO_SCREEN_TEXT#94 -char *CONIO_SCREEN_TEXT#95 -char *CONIO_SCREEN_TEXT#96 -char *CONIO_SCREEN_TEXT#97 -char *CONIO_SCREEN_TEXT#98 -char *CONIO_SCREEN_TEXT#99 -__constant char * const DEFAULT_SCREEN = (char *)0 -__constant char RADIX::BINARY = 2 -__constant char RADIX::DECIMAL = $a -__constant char RADIX::HEXADECIMAL = $10 -__constant char RADIX::OCTAL = 8 -__constant char SIZEOF_POINTER = 2 -__constant char SIZEOF_UNSIGNED_INT = 2 -__constant char SIZEOF_UNSIGNED_LONG = 4 -__constant unsigned int STACK_BASE = $103 -__constant const char VERA_ADDRSEL = 1 -__constant char * const VERA_ADDRX_H = (char *)$9f22 -__constant char * const VERA_ADDRX_L = (char *)$9f20 -__constant char * const VERA_ADDRX_M = (char *)$9f21 -__constant char * const VERA_CTRL = (char *)$9f25 -__constant char * const VERA_DATA0 = (char *)$9f23 -__constant char * const VERA_DATA1 = (char *)$9f24 -__constant char * const VERA_DC_HSCALE = (char *)$9f2a -__constant char * const VERA_DC_VIDEO = (char *)$9f29 -__constant char * const VERA_DC_VSCALE = (char *)$9f2b -__constant const char VERA_INC_1 = $10 -__constant char * const VERA_L0_CONFIG = (char *)$9f2d -__constant char * const VERA_L0_MAPBASE = (char *)$9f2e -__constant char * const VERA_L0_TILEBASE = (char *)$9f2f -__constant char * const VERA_L1_CONFIG = (char *)$9f34 -__constant char * const VERA_L1_MAPBASE = (char *)$9f35 -__constant char * const VERA_L1_TILEBASE = (char *)$9f36 -__constant const char VERA_LAYER0_ENABLE = $10 -__constant const char VERA_LAYER1_ENABLE = $20 -__constant const char VERA_LAYER_COLOR_DEPTH_1BPP = 0 -__constant const char VERA_LAYER_COLOR_DEPTH_2BPP = 1 -__constant const char VERA_LAYER_COLOR_DEPTH_4BPP = 2 -__constant const char VERA_LAYER_COLOR_DEPTH_8BPP = 3 -__constant const char VERA_LAYER_CONFIG_16C = 0 -__constant const char VERA_LAYER_CONFIG_256C = 8 -__constant const unsigned int VERA_LAYER_HEIGHT[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_HEIGHT_128 = $80 -__constant const char VERA_LAYER_HEIGHT_256 = $c0 -__constant const char VERA_LAYER_HEIGHT_32 = 0 -__constant const char VERA_LAYER_HEIGHT_64 = $40 -__constant const char VERA_LAYER_HEIGHT_MASK = $c0 -__constant const char VERA_LAYER_TILEBASE_MASK = $fc -__constant const unsigned int VERA_LAYER_WIDTH[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_WIDTH_128 = $20 -__constant const char VERA_LAYER_WIDTH_256 = $30 -__constant const char VERA_LAYER_WIDTH_32 = 0 -__constant const char VERA_LAYER_WIDTH_64 = $10 -__constant const char VERA_LAYER_WIDTH_MASK = $30 -__constant const char VERA_TILEBASE_HEIGHT_16 = 2 -__constant const char VERA_TILEBASE_HEIGHT_8 = 0 -__constant const char VERA_TILEBASE_WIDTH_16 = 1 -__constant const char VERA_TILEBASE_WIDTH_8 = 0 -__constant const char WHITE = 1 -void __start() -void clearline() -char clearline::$1 -char clearline::$2 -bool clearline::$4 -char clearline::$5 -char *clearline::addr -char *clearline::addr#0 -unsigned int clearline::c -unsigned int clearline::c#0 -unsigned int clearline::c#1 -unsigned int clearline::c#2 -unsigned int clearline::c#3 -char clearline::color -char clearline::color#0 -char clearline::color#1 -char clearline::color#2 -void clrscr() -char clrscr::$0 -char clrscr::$1 -char clrscr::$2 -bool clrscr::$4 -char clrscr::$5 -char clrscr::$6 -char clrscr::$7 -bool clrscr::$8 -char clrscr::$9 -char clrscr::c -char clrscr::c#0 -char clrscr::c#1 -char clrscr::c#2 -char clrscr::c#3 -char *clrscr::ch -char *clrscr::ch#0 -char clrscr::color -char clrscr::color#0 -char clrscr::color#1 -char clrscr::color#2 -char clrscr::color#3 -char clrscr::color#4 -char clrscr::color#5 -char clrscr::l -char clrscr::l#0 -char clrscr::l#1 -char clrscr::l#2 -char clrscr::l#3 -char clrscr::l#4 -char clrscr::l#5 -char clrscr::l#6 -char *clrscr::line_text -char *clrscr::line_text#0 -char *clrscr::line_text#1 -char *clrscr::line_text#2 -char *clrscr::line_text#3 -char *clrscr::line_text#4 -char *clrscr::line_text#5 -char *clrscr::line_text#6 -char *clrscr::line_text#7 -char *clrscr::line_text#8 -__constant char conio_cursor_x[2] = { 0, 0 } -__constant char conio_cursor_y[2] = { 0, 0 } -__loadstore unsigned int conio_height -__constant unsigned int conio_line_text[2] = { 0, 0 } -__loadstore char conio_rowshift -__loadstore unsigned int conio_rowskip -__loadstore volatile char conio_screen_height -__loadstore char conio_screen_layer -__loadstore volatile char conio_screen_width -__constant char conio_scroll_enable[2] = { 1, 1 } -__loadstore unsigned int conio_width -void conio_x16_init() -bool conio_x16_init::$7 -bool conio_x16_init::$8 -number conio_x16_init::$9 -__constant char * const conio_x16_init::BASIC_CURSOR_LINE = (char *)$d6 -char conio_x16_init::line -char conio_x16_init::line#0 -char conio_x16_init::line#1 -char conio_x16_init::line#2 -char conio_x16_init::line#3 -char conio_x16_init::line#4 -char conio_x16_init::line#5 -char conio_x16_init::line#6 -char conio_x16_init::line#7 -char conio_x16_init::line#8 -char conio_x16_init::line#9 -__stackcall void cputc(char c) -bool cputc::$11 -bool cputc::$12 -char cputc::$15 -unsigned int cputc::$16 -bool cputc::$17 -char cputc::$2 -bool cputc::$3 -char cputc::$4 -char cputc::$5 -char cputc::$6 -bool cputc::$8 -bool cputc::$9 -__constant char cputc::OFFSET_STACK_C = 0 -char cputc::c -char cputc::c#0 -char cputc::c#1 -char cputc::c#2 -char cputc::color -char cputc::color#0 -char cputc::color#1 -char *cputc::conio_addr -char *cputc::conio_addr#0 -char *cputc::conio_addr#1 -char *cputc::conio_addr#2 -char cputc::scroll_enable -char cputc::scroll_enable#0 -void cputln() -char cputln::$2 -char cputln::$3 -unsigned int cputln::temp -unsigned int cputln::temp#0 -unsigned int cputln::temp#1 -void cscroll() -bool cscroll::$0 -bool cscroll::$1 -bool cscroll::$2 -bool cscroll::$3 -number cscroll::$5 -bool cscroll::$7 -void gotoxy(char x , char y) -bool gotoxy::$0 -bool gotoxy::$1 -bool gotoxy::$2 -bool gotoxy::$3 -char gotoxy::$5 -unsigned int gotoxy::$6 -unsigned int gotoxy::line_offset -unsigned int gotoxy::line_offset#0 -char gotoxy::x -char gotoxy::x#0 -char gotoxy::x#1 -char gotoxy::x#2 -char gotoxy::x#3 -char gotoxy::x#4 -char gotoxy::x#5 -char gotoxy::x#6 -char gotoxy::x#7 -char gotoxy::y -char gotoxy::y#0 -char gotoxy::y#1 -char gotoxy::y#2 -char gotoxy::y#3 -char gotoxy::y#4 -char gotoxy::y#5 -char gotoxy::y#6 -char gotoxy::y#7 -void insertup() -bool insertup::$2 -number insertup::$3 -char *insertup::$6 -char insertup::cy -char insertup::cy#0 -char insertup::cy#1 -char insertup::cy#2 -char insertup::cy#3 -char insertup::i -char insertup::i#0 -char insertup::i#1 -char insertup::i#2 -char insertup::i#3 -char insertup::i#4 -unsigned int insertup::line -unsigned int insertup::line#0 -char *insertup::start -char *insertup::start#0 -char insertup::width -char insertup::width#0 -char insertup::width#1 -char insertup::width#2 -char insertup::width#3 -char kbhit() -__constant char * const kbhit::GETIN = (char *)$ffe4 -__constant char * const kbhit::IN_DEV = (char *)$28a -__loadstore volatile char kbhit::ch -__constant char * const kbhit::chptr = &kbhit::ch -char kbhit::return -char kbhit::return#0 -char kbhit::return#1 -char kbhit::return#2 -char kbhit::return#3 -char kbhit::return#4 -char kbhit::return#5 -char kbhit::return#6 -void main() -bool main::$29 -bool main::$31 -bool main::$33 -bool main::$34 -char main::$35 -bool main::$36 -bool main::$38 -bool main::$39 -char main::$40 -bool main::$41 -bool main::$42 -bool main::$43 -char main::bgcolor1_color -char main::bgcolor1_color#0 -char main::bgcolor1_color#1 -char main::bgcolor2_color -char main::bgcolor2_color#0 -char main::bgcolor2_color#1 -char main::c -char main::c#0 -char main::c#1 -char main::c#2 -char main::c#3 -char main::c1 -char main::c1#0 -char main::c1#1 -char main::c1#2 -char main::c1#3 -char main::column -char main::column#0 -char main::column#1 -char main::column#2 -char main::column#3 -char main::column1 -char main::column1#0 -char main::column1#1 -char main::column1#2 -char main::column1#3 -char main::p -char main::p#0 -char main::p#1 -char main::p#2 -char main::r -char main::r#0 -char main::r#1 -char main::r#2 -char main::r#3 -char main::r#4 -char main::r#5 -char main::r1 -char main::r1#0 -char main::r1#1 -char main::r1#2 -char main::r1#3 -char main::r1#4 -char main::r1#5 -char main::row -char main::row#0 -char main::row#1 -char main::row#10 -char main::row#11 -char main::row#2 -char main::row#3 -char main::row#4 -char main::row#5 -char main::row#6 -char main::row#7 -char main::row#8 -char main::row#9 -__constant char main::s[$38] = "vera in tile mode 8 x 8, color depth 8 bits per pixel. -" -__constant char main::s1[$3a] = "in this mode, tiles are 8 pixels wide and 8 pixels tall. -" -__constant char main::s2[$2f] = "each tile can have a variation of 256 colors. -" -__constant char main::s3[$44] = "the vera palette of 256 colors, can be used by setting the palette -" -__constant char main::s4[$17] = "offset for each tile. -" -__constant char main::s5[$4b] = "here each column is displaying the same tile, but with different offsets! -" -__constant char main::s6[$3f] = "each offset aligns to multiples of 16 colors in the palette!. -" -__constant char main::s7[$3e] = "however, the first color will always be transparent (black). -" -char main::t -char main::t#0 -char main::t#1 -char main::t#2 -char main::t#3 -char main::t#4 -char main::t#5 -char main::textcolor1_color -char main::textcolor1_color#0 -char main::textcolor1_color#1 -char main::textcolor2_color -char main::textcolor2_color#0 -char main::textcolor2_color#1 -unsigned int main::tile -unsigned int main::tile#0 -unsigned int main::tile#1 -unsigned int main::tile#10 -unsigned int main::tile#11 -unsigned int main::tile#12 -unsigned int main::tile#13 -unsigned int main::tile#2 -unsigned int main::tile#3 -unsigned int main::tile#4 -unsigned int main::tile#5 -unsigned int main::tile#6 -unsigned int main::tile#7 -unsigned int main::tile#8 -unsigned int main::tile#9 -char *main::tilebase -char *main::tilebase#0 -char *main::tilebase#1 -char *main::tilebase#2 -char *main::tilebase#3 -char *main::tilebase#4 -char *main::tilebase#5 -char *main::tilebase#6 -char *main::tilebase#7 -__constant char 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 } -char main::vera_layer_hide1_$0 -char main::vera_layer_hide1_layer -char main::vera_layer_hide1_layer#0 -char main::vera_layer_hide1_layer#1 -char main::vera_layer_show1_layer -char main::vera_layer_show1_layer#0 -char main::vera_layer_show1_layer#1 -void memcpy_in_vram(char dest_bank , void *dest , char dest_increment , char src_bank , void *src , char src_increment , unsigned int num) -char memcpy_in_vram::$0 -char memcpy_in_vram::$1 -char memcpy_in_vram::$2 -char memcpy_in_vram::$3 -char memcpy_in_vram::$4 -char memcpy_in_vram::$5 -bool memcpy_in_vram::$6 -void *memcpy_in_vram::dest -void *memcpy_in_vram::dest#0 -void *memcpy_in_vram::dest#1 -void *memcpy_in_vram::dest#2 -void *memcpy_in_vram::dest#3 -char memcpy_in_vram::dest_bank -char memcpy_in_vram::dest_bank#0 -char memcpy_in_vram::dest_bank#1 -char memcpy_in_vram::dest_bank#2 -char memcpy_in_vram::dest_bank#3 -char memcpy_in_vram::dest_increment -char memcpy_in_vram::dest_increment#0 -char memcpy_in_vram::dest_increment#1 -char memcpy_in_vram::dest_increment#2 -char memcpy_in_vram::dest_increment#3 -unsigned int memcpy_in_vram::i -unsigned int memcpy_in_vram::i#0 -unsigned int memcpy_in_vram::i#1 -unsigned int memcpy_in_vram::i#2 -unsigned int memcpy_in_vram::i#3 -unsigned int memcpy_in_vram::num -unsigned int memcpy_in_vram::num#0 -unsigned int memcpy_in_vram::num#1 -unsigned int memcpy_in_vram::num#2 -unsigned int memcpy_in_vram::num#3 -unsigned int memcpy_in_vram::num#4 -unsigned int memcpy_in_vram::num#5 -void *memcpy_in_vram::src -void *memcpy_in_vram::src#0 -void *memcpy_in_vram::src#1 -void *memcpy_in_vram::src#2 -void *memcpy_in_vram::src#3 -char memcpy_in_vram::src_bank -char memcpy_in_vram::src_bank#0 -char memcpy_in_vram::src_bank#1 -char memcpy_in_vram::src_bank#2 -char memcpy_in_vram::src_bank#3 -char memcpy_in_vram::src_increment -char memcpy_in_vram::src_increment#0 -char memcpy_in_vram::src_increment#1 -char memcpy_in_vram::src_increment#2 -char memcpy_in_vram::src_increment#3 -void memcpy_to_vram(char vbank , void *vdest , void *src , unsigned int num) -char memcpy_to_vram::$0 -char memcpy_to_vram::$1 -char memcpy_to_vram::$2 -bool memcpy_to_vram::$4 -char *memcpy_to_vram::$5 -char *memcpy_to_vram::end -char *memcpy_to_vram::end#0 -char *memcpy_to_vram::end#1 -char *memcpy_to_vram::end#2 -unsigned int memcpy_to_vram::num -unsigned int memcpy_to_vram::num#0 -unsigned int memcpy_to_vram::num#1 -unsigned int memcpy_to_vram::num#2 -char *memcpy_to_vram::s -char *memcpy_to_vram::s#0 -char *memcpy_to_vram::s#1 -char *memcpy_to_vram::s#2 -char *memcpy_to_vram::s#3 -void *memcpy_to_vram::src -void *memcpy_to_vram::src#0 -void *memcpy_to_vram::src#1 -void *memcpy_to_vram::src#2 -char memcpy_to_vram::vbank -char memcpy_to_vram::vbank#0 -char memcpy_to_vram::vbank#1 -char memcpy_to_vram::vbank#2 -void *memcpy_to_vram::vdest -void *memcpy_to_vram::vdest#0 -void *memcpy_to_vram::vdest#1 -void *memcpy_to_vram::vdest#2 -void printf_str(void (*putc)(char) , const char *s) -char printf_str::$0 -bool printf_str::$2 -char printf_str::c -char printf_str::c#0 -char printf_str::c#1 -char printf_str::c#2 -void (*printf_str::putc)(char) -void (*printf_str::putc#0)(char) -void (*printf_str::putc#1)(char) -void (*printf_str::putc#10)(char) -void (*printf_str::putc#2)(char) -void (*printf_str::putc#3)(char) -void (*printf_str::putc#4)(char) -void (*printf_str::putc#5)(char) -void (*printf_str::putc#6)(char) -void (*printf_str::putc#7)(char) -void (*printf_str::putc#8)(char) -void (*printf_str::putc#9)(char) -const char *printf_str::s -const char *printf_str::s#0 -const char *printf_str::s#1 -const char *printf_str::s#10 -const char *printf_str::s#11 -const char *printf_str::s#2 -const char *printf_str::s#3 -const char *printf_str::s#4 -const char *printf_str::s#5 -const char *printf_str::s#6 -const char *printf_str::s#7 -const char *printf_str::s#8 -const char *printf_str::s#9 -void screenlayer(char layer) -char screenlayer::$0 -unsigned int screenlayer::$1 -unsigned int screenlayer::$2 -char screenlayer::$3 -unsigned int screenlayer::$4 -unsigned int screenlayer::$5 -char screenlayer::layer -char screenlayer::layer#0 -char screenlayer::layer#1 -char screenlayer::layer#2 -char screenlayer::layer#3 -char screenlayer::vera_layer_get_height1_$0 -char screenlayer::vera_layer_get_height1_$1 -char screenlayer::vera_layer_get_height1_$2 -char screenlayer::vera_layer_get_height1_$3 -char *screenlayer::vera_layer_get_height1_config -char *screenlayer::vera_layer_get_height1_config#0 -char screenlayer::vera_layer_get_height1_layer -char screenlayer::vera_layer_get_height1_layer#0 -char screenlayer::vera_layer_get_height1_layer#1 -unsigned int screenlayer::vera_layer_get_height1_return -unsigned int screenlayer::vera_layer_get_height1_return#0 -unsigned int screenlayer::vera_layer_get_height1_return#1 -unsigned int screenlayer::vera_layer_get_height1_return#2 -unsigned int screenlayer::vera_layer_get_height1_return#3 -char screenlayer::vera_layer_get_width1_$0 -char screenlayer::vera_layer_get_width1_$1 -char screenlayer::vera_layer_get_width1_$2 -char screenlayer::vera_layer_get_width1_$3 -char *screenlayer::vera_layer_get_width1_config -char *screenlayer::vera_layer_get_width1_config#0 -char screenlayer::vera_layer_get_width1_layer -char screenlayer::vera_layer_get_width1_layer#0 -char screenlayer::vera_layer_get_width1_layer#1 -unsigned int screenlayer::vera_layer_get_width1_return -unsigned int screenlayer::vera_layer_get_width1_return#0 -unsigned int screenlayer::vera_layer_get_width1_return#1 -unsigned int screenlayer::vera_layer_get_width1_return#2 -unsigned int screenlayer::vera_layer_get_width1_return#3 -void screensize(char *x , char *y) -number screensize::$1 -number screensize::$3 -char screensize::hscale -char screensize::hscale#0 -char screensize::vscale -char screensize::vscale#0 -char *screensize::x -char *screensize::x#0 -char *screensize::x#1 -char *screensize::y -char *screensize::y#0 -char *screensize::y#1 -__constant char vera_layer_backcolor[2] = { BLUE, BLUE } -__constant char *vera_layer_config[2] = { VERA_L0_CONFIG, VERA_L1_CONFIG } -__constant char vera_layer_enable[2] = { VERA_LAYER0_ENABLE, VERA_LAYER1_ENABLE } -char vera_layer_get_backcolor(char layer) -char vera_layer_get_backcolor::layer -char vera_layer_get_backcolor::layer#0 -char vera_layer_get_backcolor::layer#1 -char vera_layer_get_backcolor::return -char vera_layer_get_backcolor::return#0 -char vera_layer_get_backcolor::return#1 -char vera_layer_get_backcolor::return#2 -char vera_layer_get_backcolor::return#3 -char vera_layer_get_backcolor::return#4 -char vera_layer_get_color(char layer) -char vera_layer_get_color::$0 -char vera_layer_get_color::$1 -char vera_layer_get_color::$2 -char vera_layer_get_color::$3 -bool vera_layer_get_color::$4 -char *vera_layer_get_color::addr -char *vera_layer_get_color::addr#0 -char vera_layer_get_color::layer -char vera_layer_get_color::layer#0 -char vera_layer_get_color::layer#1 -char vera_layer_get_color::layer#2 -char vera_layer_get_color::layer#3 -char vera_layer_get_color::layer#4 -char vera_layer_get_color::return -char vera_layer_get_color::return#0 -char vera_layer_get_color::return#1 -char vera_layer_get_color::return#2 -char vera_layer_get_color::return#3 -char vera_layer_get_color::return#4 -char vera_layer_get_color::return#5 -char vera_layer_get_color::return#6 -char vera_layer_get_color::return#7 -char vera_layer_get_mapbase_bank(char layer) -char vera_layer_get_mapbase_bank::layer -char vera_layer_get_mapbase_bank::layer#0 -char vera_layer_get_mapbase_bank::layer#1 -char vera_layer_get_mapbase_bank::return -char vera_layer_get_mapbase_bank::return#0 -char vera_layer_get_mapbase_bank::return#1 -char vera_layer_get_mapbase_bank::return#2 -char vera_layer_get_mapbase_bank::return#3 -char vera_layer_get_mapbase_bank::return#4 -unsigned int vera_layer_get_mapbase_offset(char layer) -char vera_layer_get_mapbase_offset::$0 -char vera_layer_get_mapbase_offset::layer -char vera_layer_get_mapbase_offset::layer#0 -char vera_layer_get_mapbase_offset::layer#1 -unsigned int vera_layer_get_mapbase_offset::return -unsigned int vera_layer_get_mapbase_offset::return#0 -unsigned int vera_layer_get_mapbase_offset::return#1 -unsigned int vera_layer_get_mapbase_offset::return#2 -unsigned int vera_layer_get_mapbase_offset::return#3 -unsigned int vera_layer_get_mapbase_offset::return#4 -char vera_layer_get_rowshift(char layer) -char vera_layer_get_rowshift::layer -char vera_layer_get_rowshift::layer#0 -char vera_layer_get_rowshift::layer#1 -char vera_layer_get_rowshift::return -char vera_layer_get_rowshift::return#0 -char vera_layer_get_rowshift::return#1 -char vera_layer_get_rowshift::return#2 -char vera_layer_get_rowshift::return#3 -char vera_layer_get_rowshift::return#4 -unsigned int vera_layer_get_rowskip(char layer) -char vera_layer_get_rowskip::$0 -char vera_layer_get_rowskip::layer -char vera_layer_get_rowskip::layer#0 -char vera_layer_get_rowskip::layer#1 -unsigned int vera_layer_get_rowskip::return -unsigned int vera_layer_get_rowskip::return#0 -unsigned int vera_layer_get_rowskip::return#1 -unsigned int vera_layer_get_rowskip::return#2 -unsigned int vera_layer_get_rowskip::return#3 -unsigned int vera_layer_get_rowskip::return#4 -char vera_layer_get_textcolor(char layer) -char vera_layer_get_textcolor::layer -char vera_layer_get_textcolor::layer#0 -char vera_layer_get_textcolor::layer#1 -char vera_layer_get_textcolor::return -char vera_layer_get_textcolor::return#0 -char vera_layer_get_textcolor::return#1 -char vera_layer_get_textcolor::return#2 -char vera_layer_get_textcolor::return#3 -char vera_layer_get_textcolor::return#4 -__constant const char vera_layer_hflip[2] = { 0, 4 } -__constant char *vera_layer_mapbase[2] = { VERA_L0_MAPBASE, VERA_L1_MAPBASE } -void vera_layer_mode_text(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , unsigned int color_mode) -unsigned int vera_layer_mode_text::color_mode -unsigned int vera_layer_mode_text::color_mode#0 -unsigned int vera_layer_mode_text::color_mode#1 -unsigned int vera_layer_mode_text::color_mode#2 -unsigned int vera_layer_mode_text::color_mode#3 -char vera_layer_mode_text::layer -char vera_layer_mode_text::layer#0 -char vera_layer_mode_text::layer#1 -char vera_layer_mode_text::layer#2 -char vera_layer_mode_text::layer#3 -char vera_layer_mode_text::layer#4 -char vera_layer_mode_text::layer#5 -unsigned long vera_layer_mode_text::mapbase_address -unsigned long vera_layer_mode_text::mapbase_address#0 -unsigned long vera_layer_mode_text::mapbase_address#1 -unsigned int vera_layer_mode_text::mapheight -unsigned int vera_layer_mode_text::mapheight#0 -unsigned int vera_layer_mode_text::mapheight#1 -unsigned int vera_layer_mode_text::mapwidth -unsigned int vera_layer_mode_text::mapwidth#0 -unsigned int vera_layer_mode_text::mapwidth#1 -unsigned long vera_layer_mode_text::tilebase_address -unsigned long vera_layer_mode_text::tilebase_address#0 -unsigned long vera_layer_mode_text::tilebase_address#1 -char vera_layer_mode_text::tileheight -char vera_layer_mode_text::tileheight#0 -char vera_layer_mode_text::tileheight#1 -char vera_layer_mode_text::tilewidth -char vera_layer_mode_text::tilewidth#0 -char vera_layer_mode_text::tilewidth#1 -void vera_layer_mode_tile(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , char color_depth) -unsigned int vera_layer_mode_tile::$1 -char vera_layer_mode_tile::$11 -char vera_layer_mode_tile::$12 -char vera_layer_mode_tile::$13 -char vera_layer_mode_tile::$14 -char vera_layer_mode_tile::$15 -char vera_layer_mode_tile::$16 -char vera_layer_mode_tile::$17 -char vera_layer_mode_tile::$18 -char vera_layer_mode_tile::$2 -unsigned long vera_layer_mode_tile::$3 -unsigned int vera_layer_mode_tile::$6 -char vera_layer_mode_tile::$7 -unsigned long vera_layer_mode_tile::$8 -char vera_layer_mode_tile::color_depth -char vera_layer_mode_tile::color_depth#0 -char vera_layer_mode_tile::color_depth#1 -char vera_layer_mode_tile::color_depth#2 -char vera_layer_mode_tile::color_depth#3 -char vera_layer_mode_tile::color_depth#4 -char vera_layer_mode_tile::color_depth#5 -char vera_layer_mode_tile::color_depth#6 -char vera_layer_mode_tile::color_depth#7 -char vera_layer_mode_tile::color_depth#8 -char vera_layer_mode_tile::config -char vera_layer_mode_tile::config#0 -char vera_layer_mode_tile::config#1 -char vera_layer_mode_tile::config#10 -char vera_layer_mode_tile::config#11 -char vera_layer_mode_tile::config#12 -char vera_layer_mode_tile::config#13 -char vera_layer_mode_tile::config#14 -char vera_layer_mode_tile::config#15 -char vera_layer_mode_tile::config#16 -char vera_layer_mode_tile::config#17 -char vera_layer_mode_tile::config#18 -char vera_layer_mode_tile::config#19 -char vera_layer_mode_tile::config#2 -char vera_layer_mode_tile::config#20 -char vera_layer_mode_tile::config#21 -char vera_layer_mode_tile::config#22 -char vera_layer_mode_tile::config#23 -char vera_layer_mode_tile::config#24 -char vera_layer_mode_tile::config#25 -char vera_layer_mode_tile::config#26 -char vera_layer_mode_tile::config#27 -char vera_layer_mode_tile::config#28 -char vera_layer_mode_tile::config#29 -char vera_layer_mode_tile::config#3 -char vera_layer_mode_tile::config#30 -char vera_layer_mode_tile::config#31 -char vera_layer_mode_tile::config#32 -char vera_layer_mode_tile::config#33 -char vera_layer_mode_tile::config#34 -char vera_layer_mode_tile::config#35 -char vera_layer_mode_tile::config#36 -char vera_layer_mode_tile::config#4 -char vera_layer_mode_tile::config#5 -char vera_layer_mode_tile::config#6 -char vera_layer_mode_tile::config#7 -char vera_layer_mode_tile::config#8 -char vera_layer_mode_tile::config#9 -char vera_layer_mode_tile::layer -char vera_layer_mode_tile::layer#0 -char vera_layer_mode_tile::layer#1 -char vera_layer_mode_tile::layer#10 -char vera_layer_mode_tile::layer#11 -char vera_layer_mode_tile::layer#12 -char vera_layer_mode_tile::layer#13 -char vera_layer_mode_tile::layer#14 -char vera_layer_mode_tile::layer#15 -char vera_layer_mode_tile::layer#16 -char vera_layer_mode_tile::layer#17 -char vera_layer_mode_tile::layer#18 -char vera_layer_mode_tile::layer#19 -char vera_layer_mode_tile::layer#2 -char vera_layer_mode_tile::layer#20 -char vera_layer_mode_tile::layer#21 -char vera_layer_mode_tile::layer#22 -char vera_layer_mode_tile::layer#23 -char vera_layer_mode_tile::layer#24 -char vera_layer_mode_tile::layer#25 -char vera_layer_mode_tile::layer#26 -char vera_layer_mode_tile::layer#27 -char vera_layer_mode_tile::layer#28 -char vera_layer_mode_tile::layer#29 -char vera_layer_mode_tile::layer#3 -char vera_layer_mode_tile::layer#30 -char vera_layer_mode_tile::layer#31 -char vera_layer_mode_tile::layer#32 -char vera_layer_mode_tile::layer#33 -char vera_layer_mode_tile::layer#34 -char vera_layer_mode_tile::layer#35 -char vera_layer_mode_tile::layer#36 -char vera_layer_mode_tile::layer#37 -char vera_layer_mode_tile::layer#38 -char vera_layer_mode_tile::layer#39 -char vera_layer_mode_tile::layer#4 -char vera_layer_mode_tile::layer#5 -char vera_layer_mode_tile::layer#6 -char vera_layer_mode_tile::layer#7 -char vera_layer_mode_tile::layer#8 -char vera_layer_mode_tile::layer#9 -char vera_layer_mode_tile::mapbase -char vera_layer_mode_tile::mapbase#0 -unsigned long vera_layer_mode_tile::mapbase_address -unsigned long vera_layer_mode_tile::mapbase_address#0 -unsigned long vera_layer_mode_tile::mapbase_address#1 -unsigned long vera_layer_mode_tile::mapbase_address#10 -unsigned long vera_layer_mode_tile::mapbase_address#11 -unsigned long vera_layer_mode_tile::mapbase_address#12 -unsigned long vera_layer_mode_tile::mapbase_address#13 -unsigned long vera_layer_mode_tile::mapbase_address#14 -unsigned long vera_layer_mode_tile::mapbase_address#15 -unsigned long vera_layer_mode_tile::mapbase_address#16 -unsigned long vera_layer_mode_tile::mapbase_address#17 -unsigned long vera_layer_mode_tile::mapbase_address#18 -unsigned long vera_layer_mode_tile::mapbase_address#19 -unsigned long vera_layer_mode_tile::mapbase_address#2 -unsigned long vera_layer_mode_tile::mapbase_address#20 -unsigned long vera_layer_mode_tile::mapbase_address#21 -unsigned long vera_layer_mode_tile::mapbase_address#22 -unsigned long vera_layer_mode_tile::mapbase_address#23 -unsigned long vera_layer_mode_tile::mapbase_address#24 -unsigned long vera_layer_mode_tile::mapbase_address#25 -unsigned long vera_layer_mode_tile::mapbase_address#26 -unsigned long vera_layer_mode_tile::mapbase_address#27 -unsigned long vera_layer_mode_tile::mapbase_address#28 -unsigned long vera_layer_mode_tile::mapbase_address#29 -unsigned long vera_layer_mode_tile::mapbase_address#3 -unsigned long vera_layer_mode_tile::mapbase_address#30 -unsigned long vera_layer_mode_tile::mapbase_address#31 -unsigned long vera_layer_mode_tile::mapbase_address#4 -unsigned long vera_layer_mode_tile::mapbase_address#5 -unsigned long vera_layer_mode_tile::mapbase_address#6 -unsigned long vera_layer_mode_tile::mapbase_address#7 -unsigned long vera_layer_mode_tile::mapbase_address#8 -unsigned long vera_layer_mode_tile::mapbase_address#9 -unsigned int vera_layer_mode_tile::mapheight -unsigned int vera_layer_mode_tile::mapheight#0 -unsigned int vera_layer_mode_tile::mapheight#1 -unsigned int vera_layer_mode_tile::mapheight#10 -unsigned int vera_layer_mode_tile::mapheight#11 -unsigned int vera_layer_mode_tile::mapheight#12 -unsigned int vera_layer_mode_tile::mapheight#13 -unsigned int vera_layer_mode_tile::mapheight#14 -unsigned int vera_layer_mode_tile::mapheight#15 -unsigned int vera_layer_mode_tile::mapheight#16 -unsigned int vera_layer_mode_tile::mapheight#17 -unsigned int vera_layer_mode_tile::mapheight#18 -unsigned int vera_layer_mode_tile::mapheight#19 -unsigned int vera_layer_mode_tile::mapheight#2 -unsigned int vera_layer_mode_tile::mapheight#20 -unsigned int vera_layer_mode_tile::mapheight#21 -unsigned int vera_layer_mode_tile::mapheight#22 -unsigned int vera_layer_mode_tile::mapheight#23 -unsigned int vera_layer_mode_tile::mapheight#24 -unsigned int vera_layer_mode_tile::mapheight#3 -unsigned int vera_layer_mode_tile::mapheight#4 -unsigned int vera_layer_mode_tile::mapheight#5 -unsigned int vera_layer_mode_tile::mapheight#6 -unsigned int vera_layer_mode_tile::mapheight#7 -unsigned int vera_layer_mode_tile::mapheight#8 -unsigned int vera_layer_mode_tile::mapheight#9 -unsigned int vera_layer_mode_tile::mapwidth -unsigned int vera_layer_mode_tile::mapwidth#0 -unsigned int vera_layer_mode_tile::mapwidth#1 -unsigned int vera_layer_mode_tile::mapwidth#10 -unsigned int vera_layer_mode_tile::mapwidth#11 -unsigned int vera_layer_mode_tile::mapwidth#12 -unsigned int vera_layer_mode_tile::mapwidth#13 -unsigned int vera_layer_mode_tile::mapwidth#14 -unsigned int vera_layer_mode_tile::mapwidth#15 -unsigned int vera_layer_mode_tile::mapwidth#16 -unsigned int vera_layer_mode_tile::mapwidth#2 -unsigned int vera_layer_mode_tile::mapwidth#3 -unsigned int vera_layer_mode_tile::mapwidth#4 -unsigned int vera_layer_mode_tile::mapwidth#5 -unsigned int vera_layer_mode_tile::mapwidth#6 -unsigned int vera_layer_mode_tile::mapwidth#7 -unsigned int vera_layer_mode_tile::mapwidth#8 -unsigned int vera_layer_mode_tile::mapwidth#9 -char vera_layer_mode_tile::tilebase -char vera_layer_mode_tile::tilebase#0 -char vera_layer_mode_tile::tilebase#1 -char vera_layer_mode_tile::tilebase#10 -char vera_layer_mode_tile::tilebase#11 -char vera_layer_mode_tile::tilebase#12 -char vera_layer_mode_tile::tilebase#13 -char vera_layer_mode_tile::tilebase#2 -char vera_layer_mode_tile::tilebase#3 -char vera_layer_mode_tile::tilebase#4 -char vera_layer_mode_tile::tilebase#5 -char vera_layer_mode_tile::tilebase#6 -char vera_layer_mode_tile::tilebase#7 -char vera_layer_mode_tile::tilebase#8 -char vera_layer_mode_tile::tilebase#9 -unsigned long vera_layer_mode_tile::tilebase_address -unsigned long vera_layer_mode_tile::tilebase_address#0 -unsigned long vera_layer_mode_tile::tilebase_address#1 -unsigned long vera_layer_mode_tile::tilebase_address#10 -unsigned long vera_layer_mode_tile::tilebase_address#11 -unsigned long vera_layer_mode_tile::tilebase_address#12 -unsigned long vera_layer_mode_tile::tilebase_address#13 -unsigned long vera_layer_mode_tile::tilebase_address#14 -unsigned long vera_layer_mode_tile::tilebase_address#15 -unsigned long vera_layer_mode_tile::tilebase_address#16 -unsigned long vera_layer_mode_tile::tilebase_address#17 -unsigned long vera_layer_mode_tile::tilebase_address#18 -unsigned long vera_layer_mode_tile::tilebase_address#19 -unsigned long vera_layer_mode_tile::tilebase_address#2 -unsigned long vera_layer_mode_tile::tilebase_address#20 -unsigned long vera_layer_mode_tile::tilebase_address#21 -unsigned long vera_layer_mode_tile::tilebase_address#22 -unsigned long vera_layer_mode_tile::tilebase_address#23 -unsigned long vera_layer_mode_tile::tilebase_address#24 -unsigned long vera_layer_mode_tile::tilebase_address#25 -unsigned long vera_layer_mode_tile::tilebase_address#26 -unsigned long vera_layer_mode_tile::tilebase_address#27 -unsigned long vera_layer_mode_tile::tilebase_address#28 -unsigned long vera_layer_mode_tile::tilebase_address#29 -unsigned long vera_layer_mode_tile::tilebase_address#3 -unsigned long vera_layer_mode_tile::tilebase_address#30 -unsigned long vera_layer_mode_tile::tilebase_address#31 -unsigned long vera_layer_mode_tile::tilebase_address#32 -unsigned long vera_layer_mode_tile::tilebase_address#4 -unsigned long vera_layer_mode_tile::tilebase_address#5 -unsigned long vera_layer_mode_tile::tilebase_address#6 -unsigned long vera_layer_mode_tile::tilebase_address#7 -unsigned long vera_layer_mode_tile::tilebase_address#8 -unsigned long vera_layer_mode_tile::tilebase_address#9 -char vera_layer_mode_tile::tileheight -char vera_layer_mode_tile::tileheight#0 -char vera_layer_mode_tile::tileheight#1 -char vera_layer_mode_tile::tileheight#10 -char vera_layer_mode_tile::tileheight#11 -char vera_layer_mode_tile::tileheight#12 -char vera_layer_mode_tile::tileheight#13 -char vera_layer_mode_tile::tileheight#14 -char vera_layer_mode_tile::tileheight#15 -char vera_layer_mode_tile::tileheight#16 -char vera_layer_mode_tile::tileheight#17 -char vera_layer_mode_tile::tileheight#18 -char vera_layer_mode_tile::tileheight#19 -char vera_layer_mode_tile::tileheight#2 -char vera_layer_mode_tile::tileheight#20 -char vera_layer_mode_tile::tileheight#21 -char vera_layer_mode_tile::tileheight#22 -char vera_layer_mode_tile::tileheight#23 -char vera_layer_mode_tile::tileheight#24 -char vera_layer_mode_tile::tileheight#25 -char vera_layer_mode_tile::tileheight#26 -char vera_layer_mode_tile::tileheight#27 -char vera_layer_mode_tile::tileheight#28 -char vera_layer_mode_tile::tileheight#29 -char vera_layer_mode_tile::tileheight#3 -char vera_layer_mode_tile::tileheight#30 -char vera_layer_mode_tile::tileheight#31 -char vera_layer_mode_tile::tileheight#32 -char vera_layer_mode_tile::tileheight#33 -char vera_layer_mode_tile::tileheight#34 -char vera_layer_mode_tile::tileheight#35 -char vera_layer_mode_tile::tileheight#36 -char vera_layer_mode_tile::tileheight#4 -char vera_layer_mode_tile::tileheight#5 -char vera_layer_mode_tile::tileheight#6 -char vera_layer_mode_tile::tileheight#7 -char vera_layer_mode_tile::tileheight#8 -char vera_layer_mode_tile::tileheight#9 -char vera_layer_mode_tile::tilewidth -char vera_layer_mode_tile::tilewidth#0 -char vera_layer_mode_tile::tilewidth#1 -char vera_layer_mode_tile::tilewidth#10 -char vera_layer_mode_tile::tilewidth#11 -char vera_layer_mode_tile::tilewidth#12 -char vera_layer_mode_tile::tilewidth#13 -char vera_layer_mode_tile::tilewidth#14 -char vera_layer_mode_tile::tilewidth#15 -char vera_layer_mode_tile::tilewidth#16 -char vera_layer_mode_tile::tilewidth#17 -char vera_layer_mode_tile::tilewidth#18 -char vera_layer_mode_tile::tilewidth#19 -char vera_layer_mode_tile::tilewidth#2 -char vera_layer_mode_tile::tilewidth#20 -char vera_layer_mode_tile::tilewidth#21 -char vera_layer_mode_tile::tilewidth#22 -char vera_layer_mode_tile::tilewidth#23 -char vera_layer_mode_tile::tilewidth#24 -char vera_layer_mode_tile::tilewidth#25 -char vera_layer_mode_tile::tilewidth#26 -char vera_layer_mode_tile::tilewidth#27 -char vera_layer_mode_tile::tilewidth#28 -char vera_layer_mode_tile::tilewidth#29 -char vera_layer_mode_tile::tilewidth#3 -char vera_layer_mode_tile::tilewidth#30 -char vera_layer_mode_tile::tilewidth#31 -char vera_layer_mode_tile::tilewidth#32 -char vera_layer_mode_tile::tilewidth#4 -char vera_layer_mode_tile::tilewidth#5 -char vera_layer_mode_tile::tilewidth#6 -char vera_layer_mode_tile::tilewidth#7 -char vera_layer_mode_tile::tilewidth#8 -char vera_layer_mode_tile::tilewidth#9 -__constant char vera_layer_rowshift[2] = { 0, 0 } -__constant unsigned int vera_layer_rowskip[2] = { 0, 0 } -char vera_layer_set_backcolor(char layer , char color) -char vera_layer_set_backcolor::color -char vera_layer_set_backcolor::color#0 -char vera_layer_set_backcolor::color#1 -char vera_layer_set_backcolor::color#2 -char vera_layer_set_backcolor::color#3 -char vera_layer_set_backcolor::layer -char vera_layer_set_backcolor::layer#0 -char vera_layer_set_backcolor::layer#1 -char vera_layer_set_backcolor::layer#2 -char vera_layer_set_backcolor::layer#3 -char vera_layer_set_backcolor::old -char vera_layer_set_backcolor::old#0 -char vera_layer_set_backcolor::return -char vera_layer_set_backcolor::return#0 -char vera_layer_set_backcolor::return#1 -char vera_layer_set_backcolor::return#2 -char vera_layer_set_backcolor::return#3 -char vera_layer_set_backcolor::return#4 -char vera_layer_set_backcolor::return#5 -void vera_layer_set_config(char layer , char config) -char vera_layer_set_config::$0 -char *vera_layer_set_config::addr -char *vera_layer_set_config::addr#0 -char vera_layer_set_config::config -char vera_layer_set_config::config#0 -char vera_layer_set_config::config#1 -char vera_layer_set_config::layer -char vera_layer_set_config::layer#0 -char vera_layer_set_config::layer#1 -void vera_layer_set_mapbase(char layer , char mapbase) -char vera_layer_set_mapbase::$0 -char *vera_layer_set_mapbase::addr -char *vera_layer_set_mapbase::addr#0 -char vera_layer_set_mapbase::layer -char vera_layer_set_mapbase::layer#0 -char vera_layer_set_mapbase::layer#1 -char vera_layer_set_mapbase::layer#2 -char vera_layer_set_mapbase::layer#3 -char vera_layer_set_mapbase::mapbase -char vera_layer_set_mapbase::mapbase#0 -char vera_layer_set_mapbase::mapbase#1 -char vera_layer_set_mapbase::mapbase#2 -char vera_layer_set_mapbase::mapbase#3 -void vera_layer_set_text_color_mode(char layer , char color_mode) -char vera_layer_set_text_color_mode::$0 -char *vera_layer_set_text_color_mode::addr -char *vera_layer_set_text_color_mode::addr#0 -char vera_layer_set_text_color_mode::color_mode -char vera_layer_set_text_color_mode::color_mode#0 -char vera_layer_set_text_color_mode::color_mode#1 -char vera_layer_set_text_color_mode::color_mode#2 -char vera_layer_set_text_color_mode::layer -char vera_layer_set_text_color_mode::layer#0 -char vera_layer_set_text_color_mode::layer#1 -char vera_layer_set_text_color_mode::layer#2 -char vera_layer_set_textcolor(char layer , char color) -char vera_layer_set_textcolor::color -char vera_layer_set_textcolor::color#0 -char vera_layer_set_textcolor::color#1 -char vera_layer_set_textcolor::color#2 -char vera_layer_set_textcolor::color#3 -char vera_layer_set_textcolor::layer -char vera_layer_set_textcolor::layer#0 -char vera_layer_set_textcolor::layer#1 -char vera_layer_set_textcolor::layer#2 -char vera_layer_set_textcolor::layer#3 -char vera_layer_set_textcolor::old -char vera_layer_set_textcolor::old#0 -char vera_layer_set_textcolor::return -char vera_layer_set_textcolor::return#0 -char vera_layer_set_textcolor::return#1 -char vera_layer_set_textcolor::return#2 -char vera_layer_set_textcolor::return#3 -char vera_layer_set_textcolor::return#4 -char vera_layer_set_textcolor::return#5 -void vera_layer_set_tilebase(char layer , char tilebase) -char vera_layer_set_tilebase::$0 -char *vera_layer_set_tilebase::addr -char *vera_layer_set_tilebase::addr#0 -char vera_layer_set_tilebase::layer -char vera_layer_set_tilebase::layer#0 -char vera_layer_set_tilebase::layer#1 -char vera_layer_set_tilebase::tilebase -char vera_layer_set_tilebase::tilebase#0 -char vera_layer_set_tilebase::tilebase#1 -__constant char vera_layer_textcolor[2] = { WHITE, WHITE } -__constant char *vera_layer_tilebase[2] = { VERA_L0_TILEBASE, VERA_L1_TILEBASE } -__constant const char vera_layer_vflip[2] = { 0, 8 } -__constant unsigned long vera_mapbase_address[2] = { 0, 0 } -__constant char vera_mapbase_bank[2] = { 0, 0 } -__constant unsigned int vera_mapbase_offset[2] = { 0, 0 } -void vera_tile_area(char layer , unsigned int tileindex , char x , char y , char w , char h , char hflip , char vflip , char offset) -char vera_tile_area::$1 -unsigned int vera_tile_area::$10 -unsigned int vera_tile_area::$4 -char vera_tile_area::$5 -bool vera_tile_area::$6 -bool vera_tile_area::$8 -char vera_tile_area::$9 -char vera_tile_area::c -char vera_tile_area::c#0 -char vera_tile_area::c#1 -char vera_tile_area::c#2 -char vera_tile_area::c#3 -char vera_tile_area::h -char vera_tile_area::h#0 -char vera_tile_area::h#1 -char vera_tile_area::h#10 -char vera_tile_area::h#11 -char vera_tile_area::h#12 -char vera_tile_area::h#2 -char vera_tile_area::h#3 -char vera_tile_area::h#4 -char vera_tile_area::h#5 -char vera_tile_area::h#6 -char vera_tile_area::h#7 -char vera_tile_area::h#8 -char vera_tile_area::h#9 -char vera_tile_area::hflip -char vera_tile_area::hflip#0 -char vera_tile_area::hflip#1 -char vera_tile_area::hflip#2 -char vera_tile_area::hflip#3 -char vera_tile_area::hflip#4 -char vera_tile_area::hflip#5 -char vera_tile_area::hflip#6 -char vera_tile_area::index_h -char vera_tile_area::index_h#0 -char vera_tile_area::index_h#1 -char vera_tile_area::index_h#10 -char vera_tile_area::index_h#2 -char vera_tile_area::index_h#3 -char vera_tile_area::index_h#4 -char vera_tile_area::index_h#5 -char vera_tile_area::index_h#6 -char vera_tile_area::index_h#7 -char vera_tile_area::index_h#8 -char vera_tile_area::index_h#9 -char vera_tile_area::index_l -char vera_tile_area::index_l#0 -char vera_tile_area::index_l#1 -char vera_tile_area::index_l#2 -char vera_tile_area::index_l#3 -char vera_tile_area::index_l#4 -char vera_tile_area::index_l#5 -char vera_tile_area::index_l#6 -char vera_tile_area::index_l#7 -char vera_tile_area::layer -char vera_tile_area::layer#0 -char vera_tile_area::layer#1 -char vera_tile_area::layer#2 -char vera_tile_area::layer#3 -char vera_tile_area::layer#4 -char vera_tile_area::layer#5 -unsigned long vera_tile_area::mapbase -unsigned long vera_tile_area::mapbase#0 -unsigned long vera_tile_area::mapbase#1 -unsigned long vera_tile_area::mapbase#10 -unsigned long vera_tile_area::mapbase#2 -unsigned long vera_tile_area::mapbase#3 -unsigned long vera_tile_area::mapbase#4 -unsigned long vera_tile_area::mapbase#5 -unsigned long vera_tile_area::mapbase#6 -unsigned long vera_tile_area::mapbase#7 -unsigned long vera_tile_area::mapbase#8 -unsigned long vera_tile_area::mapbase#9 -char vera_tile_area::offset -char vera_tile_area::offset#0 -char vera_tile_area::offset#1 -char vera_tile_area::offset#2 -char vera_tile_area::offset#3 -char vera_tile_area::offset#4 -char vera_tile_area::offset#5 -char vera_tile_area::offset#6 -char vera_tile_area::r -char vera_tile_area::r#0 -char vera_tile_area::r#1 -char vera_tile_area::r#2 -char vera_tile_area::r#3 -char vera_tile_area::r#4 -char vera_tile_area::r#5 -char vera_tile_area::r#6 -char vera_tile_area::r#7 -char vera_tile_area::r#8 -unsigned int vera_tile_area::rowskip -unsigned int vera_tile_area::rowskip#0 -unsigned int vera_tile_area::rowskip#1 -unsigned int vera_tile_area::rowskip#2 -unsigned int vera_tile_area::rowskip#3 -unsigned int vera_tile_area::rowskip#4 -unsigned int vera_tile_area::rowskip#5 -unsigned int vera_tile_area::rowskip#6 -unsigned int vera_tile_area::rowskip#7 -char vera_tile_area::shift -char vera_tile_area::shift#0 -unsigned int vera_tile_area::tileindex -unsigned int vera_tile_area::tileindex#0 -unsigned int vera_tile_area::tileindex#1 -unsigned int vera_tile_area::tileindex#2 -unsigned int vera_tile_area::tileindex#3 -unsigned int vera_tile_area::tileindex#4 -unsigned int vera_tile_area::tileindex#5 -char vera_tile_area::vera_vram_address01_$0 -char vera_tile_area::vera_vram_address01_$1 -char vera_tile_area::vera_vram_address01_$2 -char vera_tile_area::vera_vram_address01_$3 -unsigned long vera_tile_area::vera_vram_address01_bankaddr -unsigned long vera_tile_area::vera_vram_address01_bankaddr#0 -unsigned long vera_tile_area::vera_vram_address01_bankaddr#1 -char vera_tile_area::vera_vram_address01_incr -char vera_tile_area::vera_vram_address01_incr#0 -char vera_tile_area::vera_vram_address01_incr#1 -char vera_tile_area::vflip -char vera_tile_area::vflip#0 -char vera_tile_area::vflip#1 -char vera_tile_area::vflip#2 -char vera_tile_area::vflip#3 -char vera_tile_area::vflip#4 -char vera_tile_area::vflip#5 -char vera_tile_area::vflip#6 -char vera_tile_area::w -char vera_tile_area::w#0 -char vera_tile_area::w#1 -char vera_tile_area::w#10 -char vera_tile_area::w#11 -char vera_tile_area::w#12 -char vera_tile_area::w#2 -char vera_tile_area::w#3 -char vera_tile_area::w#4 -char vera_tile_area::w#5 -char vera_tile_area::w#6 -char vera_tile_area::w#7 -char vera_tile_area::w#8 -char vera_tile_area::w#9 -char vera_tile_area::x -char vera_tile_area::x#0 -char vera_tile_area::x#1 -char vera_tile_area::x#2 -char vera_tile_area::x#3 -char vera_tile_area::x#4 -char vera_tile_area::x#5 -char vera_tile_area::y -char vera_tile_area::y#0 -char vera_tile_area::y#1 -char vera_tile_area::y#2 -char vera_tile_area::y#3 -char vera_tile_area::y#4 -char vera_tile_area::y#5 -__constant unsigned long vera_tilebase_address[2] = { 0, 0 } -__constant char vera_tilebase_bank[2] = { 0, 0 } -__constant unsigned int vera_tilebase_offset[2] = { 0, 0 } - -Adding number conversion cast (unumber) 4 in clrscr::$1 = clrscr::$0 << 4 -Adding number conversion cast (unumber) 0 in conio_cursor_x[conio_screen_layer] = 0 -Adding number conversion cast (unumber) 0 in conio_cursor_y[conio_screen_layer] = 0 -Adding number conversion cast (unumber) 0 in conio_line_text[clrscr::$9] = 0 -Adding number conversion cast (unumber) 0 in gotoxy::y#0 = 0 -Adding number conversion cast (unumber) 0 in gotoxy::x#0 = 0 -Adding number conversion cast (unumber) 7 in screensize::hscale#0 = *VERA_DC_HSCALE >> 7 -Adding number conversion cast (unumber) $28 in screensize::$1 = $28 << screensize::hscale#0 -Adding number conversion cast (unumber) screensize::$1 in screensize::$1 = (unumber)$28 << screensize::hscale#0 -Adding number conversion cast (unumber) 7 in screensize::vscale#0 = *VERA_DC_VSCALE >> 7 -Adding number conversion cast (unumber) $1e in screensize::$3 = $1e << screensize::vscale#0 -Adding number conversion cast (unumber) screensize::$3 in screensize::$3 = (unumber)$1e << screensize::vscale#0 -Adding number conversion cast (unumber) 1 in cputc::$2 = conio_cursor_x[conio_screen_layer] << 1 -Adding number conversion cast (unumber) 0 in cputc::$17 = 0 != cputc::scroll_enable#0 -Adding number conversion cast (unumber) 0 in conio_cursor_x[conio_screen_layer] = 0 -Adding number conversion cast (unumber) 0 in vera_layer_get_color::$4 = 0 != vera_layer_get_color::$0 -Adding number conversion cast (unumber) 4 in vera_layer_get_color::$1 = vera_layer_backcolor[vera_layer_get_color::layer#4] << 4 -Adding number conversion cast (unumber) 1 in if(vera_layer_mode_tile::color_depth#5==1) goto vera_layer_mode_tile::@4 -Adding number conversion cast (unumber) 2 in if(vera_layer_mode_tile::color_depth#6==2) goto vera_layer_mode_tile::@5 -Adding number conversion cast (unumber) 4 in if(vera_layer_mode_tile::color_depth#7==4) goto vera_layer_mode_tile::@6 -Adding number conversion cast (unumber) 8 in if(vera_layer_mode_tile::color_depth#8==8) goto vera_layer_mode_tile::@7 -Adding number conversion cast (unumber) $20 in if(vera_layer_mode_tile::mapwidth#5==$20) goto vera_layer_mode_tile::@12 -Adding number conversion cast (unumber) 6 in vera_layer_rowshift[vera_layer_mode_tile::layer#5] = 6 -Adding number conversion cast (unumber) $40 in vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 -Adding number conversion cast (unumber) $40 in if(vera_layer_mode_tile::mapwidth#6==$40) goto vera_layer_mode_tile::@13 -Adding number conversion cast (unumber) 7 in vera_layer_rowshift[vera_layer_mode_tile::layer#6] = 7 -Adding number conversion cast (unumber) $80 in vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 -Adding number conversion cast (unumber) $80 in if(vera_layer_mode_tile::mapwidth#7==$80) goto vera_layer_mode_tile::@14 -Adding number conversion cast (unumber) 8 in vera_layer_rowshift[vera_layer_mode_tile::layer#7] = 8 -Adding number conversion cast (unumber) $100 in vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 -Adding number conversion cast (unumber) $100 in if(vera_layer_mode_tile::mapwidth#8==$100) goto vera_layer_mode_tile::@15 -Adding number conversion cast (unumber) 9 in vera_layer_rowshift[vera_layer_mode_tile::layer#8] = 9 -Adding number conversion cast (unumber) $200 in vera_layer_rowskip[vera_layer_mode_tile::$14] = $200 -Adding number conversion cast (unumber) $20 in if(vera_layer_mode_tile::mapheight#5==$20) goto vera_layer_mode_tile::@20 -Adding number conversion cast (unumber) $40 in if(vera_layer_mode_tile::mapheight#6==$40) goto vera_layer_mode_tile::@21 -Adding number conversion cast (unumber) $80 in if(vera_layer_mode_tile::mapheight#7==$80) goto vera_layer_mode_tile::@22 -Adding number conversion cast (unumber) $100 in if(vera_layer_mode_tile::mapheight#8==$100) goto vera_layer_mode_tile::@23 -Adding number conversion cast (unumber) 1 in vera_layer_mode_tile::$3 = vera_layer_mode_tile::mapbase_address#6 >> 1 -Adding number conversion cast (unumber) 1 in vera_layer_mode_tile::$8 = vera_layer_mode_tile::tilebase_address#6 >> 1 -Adding number conversion cast (unumber) 8 in if(vera_layer_mode_tile::tilewidth#5==8) goto vera_layer_mode_tile::@26 -Adding number conversion cast (unumber) $10 in if(vera_layer_mode_tile::tilewidth#6==$10) goto vera_layer_mode_tile::@27 -Adding number conversion cast (unumber) 8 in if(vera_layer_mode_tile::tileheight#5==8) goto vera_layer_mode_tile::@30 -Adding number conversion cast (unumber) $10 in if(vera_layer_mode_tile::tileheight#6==$10) goto vera_layer_mode_tile::@31 -Adding number conversion cast (unumber) 1 in vera_layer_mode_tile::color_depth#0 = 1 -Adding number conversion cast (unumber) $10 in if(vera_layer_mode_text::color_mode#1==$10) goto vera_layer_mode_text::@2 -Adding number conversion cast (unumber) $100 in if(vera_layer_mode_text::color_mode#2==$100) goto vera_layer_mode_text::@3 -Adding number conversion cast (unumber) 4 in vera_tile_area::$1 = vera_tile_area::offset#6 << 4 -Adding number conversion cast (unumber) 1 in vera_tile_area::$5 = vera_tile_area::x#5 << 1 -Adding number conversion cast (unumber) 1 in vera_layer_mode_text::layer#0 = 1 -Adding number conversion cast (unumber) $80 in vera_layer_mode_text::mapwidth#0 = $80 -Adding number conversion cast (unumber) $40 in vera_layer_mode_text::mapheight#0 = $40 -Adding number conversion cast (unumber) 8 in vera_layer_mode_text::tilewidth#0 = 8 -Adding number conversion cast (unumber) 8 in vera_layer_mode_text::tileheight#0 = 8 -Adding number conversion cast (unumber) $10 in vera_layer_mode_text::color_mode#0 = $10 -Adding number conversion cast (unumber) 1 in screenlayer::layer#0 = 1 -Adding number conversion cast (unumber) 1 in vera_layer_set_textcolor::layer#0 = 1 -Adding number conversion cast (unumber) 1 in vera_layer_set_backcolor::layer#0 = 1 -Adding number conversion cast (unumber) 0 in vera_layer_set_mapbase::layer#1 = 0 -Adding number conversion cast (unumber) $20 in vera_layer_set_mapbase::mapbase#1 = $20 -Adding number conversion cast (unumber) 1 in vera_layer_set_mapbase::layer#2 = 1 -Adding number conversion cast (unumber) 0 in vera_layer_set_mapbase::mapbase#2 = 0 -Adding number conversion cast (unumber) 0 in gotoxy::x#1 = 0 -Adding number conversion cast (unumber) 1 in conio_x16_init::$9 = conio_screen_height - 1 -Adding number conversion cast (unumber) conio_x16_init::$9 in conio_x16_init::$9 = conio_screen_height - (unumber)1 -Adding number conversion cast (unumber) 0 in conio_cursor_x[conio_screen_layer] = 0 -Adding number conversion cast (unumber) 2 in insertup::width#0 = conio_screen_width * 2 -Adding number conversion cast (unumber) 1 in insertup::$3 = insertup::i#3 - 1 -Adding number conversion cast (unumber) insertup::$3 in insertup::$3 = insertup::i#3 - (unumber)1 -Adding number conversion cast (unumber) 0 in memcpy_in_vram::dest_bank#0 = 0 -Adding number conversion cast (unumber) 0 in memcpy_in_vram::src_bank#0 = 0 -Adding number conversion cast (unumber) 0 in cscroll::$7 = 0 != conio_scroll_enable[conio_screen_layer] -Adding number conversion cast (unumber) 1 in cscroll::$5 = conio_screen_height - 1 -Adding number conversion cast (unumber) cscroll::$5 in cscroll::$5 = conio_screen_height - (unumber)1 -Adding number conversion cast (unumber) 0 in gotoxy::x#2 = 0 -Adding number conversion cast (unumber) 4 in screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 -Adding number conversion cast (unumber) 6 in screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 -Adding number conversion cast (unumber) 0 in printf_str::$2 = 0 != printf_str::$0 -Adding number conversion cast (unumber) 1 in memcpy_in_vram::dest_bank#1 = 1 -Adding number conversion cast (unumber) 0 in memcpy_in_vram::src_bank#1 = 0 -Adding number conversion cast (unumber) $100*8 in memcpy_in_vram::num#1 = $100*8 -Adding number conversion cast (unumber) 1 in vera_layer_mode_tile::layer#1 = 1 -Adding number conversion cast (unumber) $10000 in vera_layer_mode_tile::mapbase_address#2 = $10000 -Adding number conversion cast (unumber) $1f000 in vera_layer_mode_tile::tilebase_address#2 = $1f000 -Adding number conversion cast (unumber) $80 in vera_layer_mode_tile::mapwidth#1 = $80 -Adding number conversion cast (unumber) $40 in vera_layer_mode_tile::mapheight#1 = $40 -Adding number conversion cast (unumber) 8 in vera_layer_mode_tile::tilewidth#1 = 8 -Adding number conversion cast (unumber) 8 in vera_layer_mode_tile::tileheight#1 = 8 -Adding number conversion cast (unumber) 1 in vera_layer_mode_tile::color_depth#1 = 1 -Adding number conversion cast (unumber) 1 in screenlayer::layer#1 = 1 -Adding number conversion cast (unumber) 0 in vera_layer_mode_tile::layer#2 = 0 -Adding number conversion cast (unumber) $14000 in vera_layer_mode_tile::mapbase_address#3 = $14000 -Adding number conversion cast (unumber) 0 in vera_layer_mode_tile::tilebase_address#3 = 0 -Adding number conversion cast (unumber) $40 in vera_layer_mode_tile::mapwidth#2 = $40 -Adding number conversion cast (unumber) $40 in vera_layer_mode_tile::mapheight#2 = $40 -Adding number conversion cast (unumber) $10 in vera_layer_mode_tile::tilewidth#2 = $10 -Adding number conversion cast (unumber) $10 in vera_layer_mode_tile::tileheight#2 = $10 -Adding number conversion cast (unumber) 8 in vera_layer_mode_tile::color_depth#2 = 8 -Adding number conversion cast (unumber) 0 in memcpy_to_vram::vbank#0 = 0 -Adding number conversion cast (unumber) $100 in memcpy_to_vram::num#0 = $100 -Adding number conversion cast (unumber) $100 in main::tilebase#1 = main::tilebase#3 + $100 -Adding number conversion cast (unumber) 1 in main::tiles[main::p#2] = main::tiles[main::p#2] + 1 -Adding number conversion cast (unumber) 0 in memcpy_to_vram::vbank#1 = 0 -Adding number conversion cast (unumber) $100 in memcpy_to_vram::num#1 = $100 -Adding number conversion cast (unumber) $100 in main::tilebase#2 = main::tilebase#5 + $100 -Adding number conversion cast (unumber) 0 in vera_tile_area::layer#0 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::tileindex#0 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::x#0 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::y#0 = 0 -Adding number conversion cast (unumber) $28 in vera_tile_area::w#0 = $28 -Adding number conversion cast (unumber) $1e in vera_tile_area::h#0 = $1e -Adding number conversion cast (unumber) 0 in vera_tile_area::hflip#1 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::vflip#1 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::offset#1 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::layer#1 = 0 -Adding number conversion cast (unumber) 1 in vera_tile_area::w#1 = 1 -Adding number conversion cast (unumber) 1 in vera_tile_area::h#1 = 1 -Adding number conversion cast (unumber) 0 in vera_tile_area::hflip#2 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::vflip#2 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::offset#2 = 0 -Adding number conversion cast (unumber) 2 in main::column#1 = main::column#3 + 2 -Adding number conversion cast (unumber) $ff in main::tile#2 = main::tile#1 & $ff -Adding number conversion cast (unumber) 2 in main::row#1 = main::row#5 + 2 -Adding number conversion cast (unumber) 0 in gotoxy::x#3 = 0 -Adding number conversion cast (unumber) $32 in gotoxy::y#3 = $32 -Adding number conversion cast (unumber) 0 in main::vera_layer_show1_layer#0 = 0 -Adding number conversion cast (unumber) 0 in main::$42 = 0 != main::$35 -Adding number conversion cast (unumber) 0 in vera_tile_area::layer#2 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::tileindex#2 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::x#2 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::y#2 = 0 -Adding number conversion cast (unumber) $28 in vera_tile_area::w#2 = $28 -Adding number conversion cast (unumber) $1e in vera_tile_area::h#2 = $1e -Adding number conversion cast (unumber) 0 in vera_tile_area::hflip#3 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::vflip#3 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::offset#3 = 0 -Adding number conversion cast (unumber) 0 in main::tile#3 = 0 -Adding number conversion cast (unumber) 0 in main::row#2 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::layer#3 = 0 -Adding number conversion cast (unumber) 2 in vera_tile_area::w#3 = 2 -Adding number conversion cast (unumber) 2 in vera_tile_area::h#3 = 2 -Adding number conversion cast (unumber) 0 in vera_tile_area::hflip#4 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::vflip#4 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::offset#4 = 0 -Adding number conversion cast (unumber) 2 in main::column1#1 = main::column1#3 + 2 -Adding number conversion cast (unumber) $ff in main::tile#5 = main::tile#4 & $ff -Adding number conversion cast (unumber) 2 in main::row#3 = main::row#7 + 2 -Adding number conversion cast (unumber) 0 in main::$43 = 0 != main::$40 -Adding number conversion cast (unumber) 0 in vera_tile_area::layer#4 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::tileindex#4 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::x#4 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::y#4 = 0 -Adding number conversion cast (unumber) $28 in vera_tile_area::w#4 = $28 -Adding number conversion cast (unumber) $1e in vera_tile_area::h#4 = $1e -Adding number conversion cast (unumber) 0 in vera_tile_area::hflip#5 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::vflip#5 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::offset#5 = 0 -Adding number conversion cast (unumber) 0 in main::vera_layer_hide1_layer#0 = 0 -Adding number conversion cast (unumber) 0 in memcpy_in_vram::dest_bank#2 = 0 -Adding number conversion cast (unumber) 1 in memcpy_in_vram::src_bank#2 = 1 -Adding number conversion cast (unumber) $100*8 in memcpy_in_vram::num#2 = $100*8 -Adding number conversion cast (unumber) 1 in vera_layer_mode_tile::layer#3 = 1 -Adding number conversion cast (unumber) 0 in vera_layer_mode_tile::mapbase_address#4 = 0 -Adding number conversion cast (unumber) $f800 in vera_layer_mode_tile::tilebase_address#4 = $f800 -Adding number conversion cast (unumber) $80 in vera_layer_mode_tile::mapwidth#3 = $80 -Adding number conversion cast (unumber) $80 in vera_layer_mode_tile::mapheight#3 = $80 -Adding number conversion cast (unumber) 8 in vera_layer_mode_tile::tilewidth#3 = 8 -Adding number conversion cast (unumber) 8 in vera_layer_mode_tile::tileheight#3 = 8 -Adding number conversion cast (unumber) 1 in vera_layer_mode_tile::color_depth#3 = 1 -Adding number conversion cast (unumber) 0 in vera_layer_mode_tile::layer#4 = 0 -Adding number conversion cast (unumber) 0 in vera_layer_mode_tile::mapbase_address#5 = 0 -Adding number conversion cast (unumber) $f800 in vera_layer_mode_tile::tilebase_address#5 = $f800 -Adding number conversion cast (unumber) $80 in vera_layer_mode_tile::mapwidth#4 = $80 -Adding number conversion cast (unumber) $80 in vera_layer_mode_tile::mapheight#4 = $80 -Adding number conversion cast (unumber) 8 in vera_layer_mode_tile::tilewidth#4 = 8 -Adding number conversion cast (unumber) 8 in vera_layer_mode_tile::tileheight#4 = 8 -Adding number conversion cast (unumber) 1 in vera_layer_mode_tile::color_depth#4 = 1 -Adding number conversion cast (unumber) 1 in screenlayer::layer#2 = 1 -Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memcpy_to_vram::s#0 = (char *)memcpy_to_vram::src#2 -Inlining cast conio_cursor_x[conio_screen_layer] = (unumber)0 -Inlining cast conio_cursor_y[conio_screen_layer] = (unumber)0 -Inlining cast conio_line_text[clrscr::$9] = (unumber)0 -Inlining cast gotoxy::y#0 = (unumber)0 -Inlining cast gotoxy::x#0 = (unumber)0 -Inlining cast conio_cursor_x[conio_screen_layer] = (unumber)0 -Inlining cast vera_layer_rowshift[vera_layer_mode_tile::layer#5] = (unumber)6 -Inlining cast vera_layer_rowskip[vera_layer_mode_tile::$11] = (unumber)$40 -Inlining cast vera_layer_rowshift[vera_layer_mode_tile::layer#6] = (unumber)7 -Inlining cast vera_layer_rowskip[vera_layer_mode_tile::$12] = (unumber)$80 -Inlining cast vera_layer_rowshift[vera_layer_mode_tile::layer#7] = (unumber)8 -Inlining cast vera_layer_rowskip[vera_layer_mode_tile::$13] = (unumber)$100 -Inlining cast vera_layer_rowshift[vera_layer_mode_tile::layer#8] = (unumber)9 -Inlining cast vera_layer_rowskip[vera_layer_mode_tile::$14] = (unumber)$200 -Inlining cast vera_layer_mode_tile::color_depth#0 = (unumber)1 -Inlining cast vera_layer_mode_text::layer#0 = (unumber)1 -Inlining cast vera_layer_mode_text::mapwidth#0 = (unumber)$80 -Inlining cast vera_layer_mode_text::mapheight#0 = (unumber)$40 -Inlining cast vera_layer_mode_text::tilewidth#0 = (unumber)8 -Inlining cast vera_layer_mode_text::tileheight#0 = (unumber)8 -Inlining cast vera_layer_mode_text::color_mode#0 = (unumber)$10 -Inlining cast screenlayer::layer#0 = (unumber)1 -Inlining cast vera_layer_set_textcolor::layer#0 = (unumber)1 -Inlining cast vera_layer_set_backcolor::layer#0 = (unumber)1 -Inlining cast vera_layer_set_mapbase::layer#1 = (unumber)0 -Inlining cast vera_layer_set_mapbase::mapbase#1 = (unumber)$20 -Inlining cast vera_layer_set_mapbase::layer#2 = (unumber)1 -Inlining cast vera_layer_set_mapbase::mapbase#2 = (unumber)0 -Inlining cast gotoxy::x#1 = (unumber)0 -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 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 -Inlining cast vera_layer_mode_tile::layer#1 = (unumber)1 -Inlining cast vera_layer_mode_tile::mapbase_address#2 = (unumber)$10000 -Inlining cast vera_layer_mode_tile::tilebase_address#2 = (unumber)$1f000 -Inlining cast vera_layer_mode_tile::mapwidth#1 = (unumber)$80 -Inlining cast vera_layer_mode_tile::mapheight#1 = (unumber)$40 -Inlining cast vera_layer_mode_tile::tilewidth#1 = (unumber)8 -Inlining cast vera_layer_mode_tile::tileheight#1 = (unumber)8 -Inlining cast vera_layer_mode_tile::color_depth#1 = (unumber)1 -Inlining cast screenlayer::layer#1 = (unumber)1 -Inlining cast vera_layer_mode_tile::layer#2 = (unumber)0 -Inlining cast vera_layer_mode_tile::mapbase_address#3 = (unumber)$14000 -Inlining cast vera_layer_mode_tile::tilebase_address#3 = (unumber)0 -Inlining cast vera_layer_mode_tile::mapwidth#2 = (unumber)$40 -Inlining cast vera_layer_mode_tile::mapheight#2 = (unumber)$40 -Inlining cast vera_layer_mode_tile::tilewidth#2 = (unumber)$10 -Inlining cast vera_layer_mode_tile::tileheight#2 = (unumber)$10 -Inlining cast vera_layer_mode_tile::color_depth#2 = (unumber)8 -Inlining cast memcpy_to_vram::vbank#0 = (unumber)0 -Inlining cast memcpy_to_vram::num#0 = (unumber)$100 -Inlining cast memcpy_to_vram::vbank#1 = (unumber)0 -Inlining cast memcpy_to_vram::num#1 = (unumber)$100 -Inlining cast vera_tile_area::layer#0 = (unumber)0 -Inlining cast vera_tile_area::tileindex#0 = (unumber)0 -Inlining cast vera_tile_area::x#0 = (unumber)0 -Inlining cast vera_tile_area::y#0 = (unumber)0 -Inlining cast vera_tile_area::w#0 = (unumber)$28 -Inlining cast vera_tile_area::h#0 = (unumber)$1e -Inlining cast vera_tile_area::hflip#1 = (unumber)0 -Inlining cast vera_tile_area::vflip#1 = (unumber)0 -Inlining cast vera_tile_area::offset#1 = (unumber)0 -Inlining cast vera_tile_area::layer#1 = (unumber)0 -Inlining cast vera_tile_area::w#1 = (unumber)1 -Inlining cast vera_tile_area::h#1 = (unumber)1 -Inlining cast vera_tile_area::hflip#2 = (unumber)0 -Inlining cast vera_tile_area::vflip#2 = (unumber)0 -Inlining cast vera_tile_area::offset#2 = (unumber)0 -Inlining cast gotoxy::x#3 = (unumber)0 -Inlining cast gotoxy::y#3 = (unumber)$32 -Inlining cast main::vera_layer_show1_layer#0 = (unumber)0 -Inlining cast vera_tile_area::layer#2 = (unumber)0 -Inlining cast vera_tile_area::tileindex#2 = (unumber)0 -Inlining cast vera_tile_area::x#2 = (unumber)0 -Inlining cast vera_tile_area::y#2 = (unumber)0 -Inlining cast vera_tile_area::w#2 = (unumber)$28 -Inlining cast vera_tile_area::h#2 = (unumber)$1e -Inlining cast vera_tile_area::hflip#3 = (unumber)0 -Inlining cast vera_tile_area::vflip#3 = (unumber)0 -Inlining cast vera_tile_area::offset#3 = (unumber)0 -Inlining cast main::tile#3 = (unumber)0 -Inlining cast main::row#2 = (unumber)0 -Inlining cast vera_tile_area::layer#3 = (unumber)0 -Inlining cast vera_tile_area::w#3 = (unumber)2 -Inlining cast vera_tile_area::h#3 = (unumber)2 -Inlining cast vera_tile_area::hflip#4 = (unumber)0 -Inlining cast vera_tile_area::vflip#4 = (unumber)0 -Inlining cast vera_tile_area::offset#4 = (unumber)0 -Inlining cast vera_tile_area::layer#4 = (unumber)0 -Inlining cast vera_tile_area::tileindex#4 = (unumber)0 -Inlining cast vera_tile_area::x#4 = (unumber)0 -Inlining cast vera_tile_area::y#4 = (unumber)0 -Inlining cast vera_tile_area::w#4 = (unumber)$28 -Inlining cast vera_tile_area::h#4 = (unumber)$1e -Inlining cast vera_tile_area::hflip#5 = (unumber)0 -Inlining cast vera_tile_area::vflip#5 = (unumber)0 -Inlining cast vera_tile_area::offset#5 = (unumber)0 -Inlining cast main::vera_layer_hide1_layer#0 = (unumber)0 -Inlining cast memcpy_in_vram::dest_bank#2 = (unumber)0 -Inlining cast memcpy_in_vram::src_bank#2 = (unumber)1 -Inlining cast memcpy_in_vram::num#2 = (unumber)$100*8 -Inlining cast vera_layer_mode_tile::layer#3 = (unumber)1 -Inlining cast vera_layer_mode_tile::mapbase_address#4 = (unumber)0 -Inlining cast vera_layer_mode_tile::tilebase_address#4 = (unumber)$f800 -Inlining cast vera_layer_mode_tile::mapwidth#3 = (unumber)$80 -Inlining cast vera_layer_mode_tile::mapheight#3 = (unumber)$80 -Inlining cast vera_layer_mode_tile::tilewidth#3 = (unumber)8 -Inlining cast vera_layer_mode_tile::tileheight#3 = (unumber)8 -Inlining cast vera_layer_mode_tile::color_depth#3 = (unumber)1 -Inlining cast vera_layer_mode_tile::layer#4 = (unumber)0 -Inlining cast vera_layer_mode_tile::mapbase_address#5 = (unumber)0 -Inlining cast vera_layer_mode_tile::tilebase_address#5 = (unumber)$f800 -Inlining cast vera_layer_mode_tile::mapwidth#4 = (unumber)$80 -Inlining cast vera_layer_mode_tile::mapheight#4 = (unumber)$80 -Inlining cast vera_layer_mode_tile::tilewidth#4 = (unumber)8 -Inlining cast vera_layer_mode_tile::tileheight#4 = (unumber)8 -Inlining cast vera_layer_mode_tile::color_depth#4 = (unumber)1 -Inlining cast screenlayer::layer#2 = (unumber)1 -Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (char *) 40736 -Simplifying constant pointer cast (char *) 40737 -Simplifying constant pointer cast (char *) 40738 -Simplifying constant pointer cast (char *) 40739 -Simplifying constant pointer cast (char *) 40740 -Simplifying constant pointer cast (char *) 40741 -Simplifying constant pointer cast (char *) 40745 -Simplifying constant pointer cast (char *) 40746 -Simplifying constant pointer cast (char *) 40747 -Simplifying constant pointer cast (char *) 40749 -Simplifying constant pointer cast (char *) 40750 -Simplifying constant pointer cast (char *) 40751 -Simplifying constant pointer cast (char *) 40756 -Simplifying constant pointer cast (char *) 40757 -Simplifying constant pointer cast (char *) 40758 -Simplifying constant pointer cast (char *) 0 -Simplifying constant pointer cast (char *) 650 -Simplifying constant pointer cast (char *) 65508 -Simplifying constant pointer cast (char *) 214 -Simplifying constant integer cast 4 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 7 -Simplifying constant integer cast $28 -Simplifying constant integer cast 7 -Simplifying constant integer cast $1e -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 4 -Simplifying constant integer cast 1 -Simplifying constant integer cast 2 -Simplifying constant integer cast 4 -Simplifying constant integer cast 8 -Simplifying constant integer cast $20 -Simplifying constant integer cast 6 -Simplifying constant integer cast $40 -Simplifying constant integer cast $40 -Simplifying constant integer cast 7 -Simplifying constant integer cast $80 -Simplifying constant integer cast $80 -Simplifying constant integer cast 8 -Simplifying constant integer cast $100 -Simplifying constant integer cast $100 -Simplifying constant integer cast 9 -Simplifying constant integer cast $200 -Simplifying constant integer cast $20 -Simplifying constant integer cast $40 -Simplifying constant integer cast $80 -Simplifying constant integer cast $100 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 8 -Simplifying constant integer cast $10 -Simplifying constant integer cast 8 -Simplifying constant integer cast $10 -Simplifying constant integer cast 1 -Simplifying constant integer cast $10 -Simplifying constant integer cast $100 -Simplifying constant integer cast 1 -Simplifying constant integer cast 4 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast $f800 -Simplifying constant integer cast $80 -Simplifying constant integer cast $40 -Simplifying constant integer cast 8 -Simplifying constant integer cast 8 -Simplifying constant integer cast $10 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast $20 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 2 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 4 -Simplifying constant integer cast 6 -Simplifying constant integer cast 0 -Simplifying constant integer cast 1 -Simplifying constant pointer cast (char *) 61440 -Simplifying constant integer cast 0 -Simplifying constant pointer cast (char *) 63488 -Simplifying constant integer cast 1 -Simplifying constant integer cast $10000 -Simplifying constant integer cast $1f000 -Simplifying constant integer cast $80 -Simplifying constant integer cast $40 -Simplifying constant integer cast 8 -Simplifying constant integer cast 8 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast $14000 -Simplifying constant integer cast 0 -Simplifying constant integer cast $40 -Simplifying constant integer cast $40 -Simplifying constant integer cast $10 -Simplifying constant integer cast $10 -Simplifying constant integer cast 8 -Simplifying constant pointer cast (char *) 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast $100 -Simplifying constant integer cast $100 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast $100 -Simplifying constant integer cast $100 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast $28 -Simplifying constant integer cast $1e -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 2 -Simplifying constant integer cast $ff -Simplifying constant integer cast 2 -Simplifying constant integer cast 0 -Simplifying constant integer cast $32 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast $28 -Simplifying constant integer cast $1e -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 2 -Simplifying constant integer cast 2 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 2 -Simplifying constant integer cast $ff -Simplifying constant integer cast 2 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast $28 -Simplifying constant integer cast $1e -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant pointer cast (char *) 63488 -Simplifying constant integer cast 1 -Simplifying constant pointer cast (char *) 61440 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast $f800 -Simplifying constant integer cast $80 -Simplifying constant integer cast $80 -Simplifying constant integer cast 8 -Simplifying constant integer cast 8 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast $f800 -Simplifying constant integer cast $80 -Simplifying constant integer cast $80 -Simplifying constant integer cast 8 -Simplifying constant integer cast 8 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 7 -Finalized unsigned number type (char) $28 -Finalized unsigned number type (char) 7 -Finalized unsigned number type (char) $1e -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) $20 -Finalized unsigned number type (char) 6 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) 7 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (char) 9 -Finalized unsigned number type (unsigned int) $200 -Finalized unsigned number type (char) $20 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) $10 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) $10 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) $10 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) $10 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $20 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 6 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (unsigned long) $10000 -Finalized unsigned number type (unsigned long) $1f000 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (unsigned long) $14000 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) $10 -Finalized unsigned number type (char) $10 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $28 -Finalized unsigned number type (char) $1e -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) $ff -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $32 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $28 -Finalized unsigned number type (char) $1e -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) $ff -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $28 -Finalized unsigned number type (char) $1e -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (unsigned int) $f800 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (unsigned int) $f800 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to char in screensize::$1 = $28 << screensize::hscale#0 -Inferred type updated to char in screensize::$3 = $1e << screensize::vscale#0 -Inferred type updated to char in conio_x16_init::$9 = conio_screen_height - 1 -Inferred type updated to char in insertup::$3 = insertup::i#3 - 1 -Inferred type updated to char in cscroll::$5 = conio_screen_height - 1 -Inversing boolean not [86] gotoxy::$1 = gotoxy::y#4 <= conio_screen_height from [85] gotoxy::$0 = gotoxy::y#4 > conio_screen_height -Inversing boolean not [90] gotoxy::$3 = gotoxy::x#4 < conio_screen_width from [89] gotoxy::$2 = gotoxy::x#4 >= conio_screen_width -Inversing boolean not [143] cputc::$12 = conio_cursor_x[conio_screen_layer] != conio_screen_width from [142] cputc::$11 = conio_cursor_x[conio_screen_layer] == conio_screen_width -Inversing boolean not [148] cputc::$9 = cputc::$16 != conio_width from [147] cputc::$8 = cputc::$16 == conio_width -Inversing boolean not [475] conio_x16_init::$8 = conio_x16_init::line#2 < conio_screen_height from [474] conio_x16_init::$7 = conio_x16_init::line#2 >= conio_screen_height -Inversing boolean not [540] cscroll::$1 = conio_cursor_y[conio_screen_layer] < conio_screen_height from [539] cscroll::$0 = conio_cursor_y[conio_screen_layer] >= conio_screen_height -Inversing boolean not [552] cscroll::$3 = conio_cursor_y[conio_screen_layer] < conio_height from [551] cscroll::$2 = conio_cursor_y[conio_screen_layer] >= conio_height -Inversing boolean not [791] main::$36 = 0 == main::$35 from [790] main::$42 = 0 != main::$35 -Inversing boolean not [840] main::$41 = 0 == main::$40 from [839] main::$43 = 0 != main::$40 -Successful SSA optimization Pass2UnaryNotSimplification -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#4 kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#2 screenlayer::vera_layer_get_width1_return#1 screenlayer::vera_layer_get_width1_return#3 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#2 screenlayer::vera_layer_get_height1_return#1 screenlayer::vera_layer_get_height1_return#3 screenlayer::$5 conio_height -Alias memcpy_to_vram::s#2 = memcpy_to_vram::s#3 -Alias memcpy_to_vram::end#1 = memcpy_to_vram::end#2 -Alias memcpy_in_vram::i#2 = memcpy_in_vram::i#3 -Alias memcpy_in_vram::num#3 = memcpy_in_vram::num#5 -Alias vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#3 -Alias clrscr::line_text#0 = clrscr::line_text#8 clrscr::line_text#6 -Alias CONIO_SCREEN_BANK#32 = CONIO_SCREEN_BANK#40 CONIO_SCREEN_BANK#49 -Alias vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#3 -Alias clrscr::line_text#2 = clrscr::line_text#4 clrscr::ch#0 -Alias CONIO_SCREEN_BANK#11 = CONIO_SCREEN_BANK#22 -Alias clrscr::color#3 = clrscr::color#4 -Alias clrscr::l#2 = clrscr::l#5 -Alias clrscr::color#1 = clrscr::color#2 clrscr::color#5 -Alias clrscr::c#2 = clrscr::c#3 -Alias clrscr::line_text#3 = clrscr::line_text#7 clrscr::line_text#5 -Alias clrscr::l#3 = clrscr::l#6 clrscr::l#4 -Alias CONIO_SCREEN_BANK#31 = CONIO_SCREEN_BANK#50 CONIO_SCREEN_BANK#41 -Alias gotoxy::x#6 = gotoxy::x#7 -Alias gotoxy::y#6 = gotoxy::y#7 -Alias vera_layer_get_color::return#0 = vera_layer_get_color::return#5 -Alias CONIO_SCREEN_TEXT#12 = CONIO_SCREEN_TEXT#26 CONIO_SCREEN_TEXT#72 CONIO_SCREEN_TEXT#81 CONIO_SCREEN_TEXT#78 CONIO_SCREEN_TEXT#77 CONIO_SCREEN_TEXT#73 CONIO_SCREEN_TEXT#74 -Alias cputc::c#0 = cputc::c#1 cputc::c#2 -Alias CONIO_SCREEN_BANK#12 = CONIO_SCREEN_BANK#23 CONIO_SCREEN_BANK#33 -Alias cputc::conio_addr#1 = cputc::conio_addr#2 -Alias cputc::color#0 = cputc::color#1 -Alias vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#3 vera_layer_get_mapbase_bank::return#1 -Alias vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#3 vera_layer_get_mapbase_offset::return#1 -Alias vera_layer_set_textcolor::return#0 = vera_layer_set_textcolor::old#0 vera_layer_set_textcolor::return#5 vera_layer_set_textcolor::return#1 -Alias vera_layer_get_textcolor::return#1 = vera_layer_get_textcolor::return#4 vera_layer_get_textcolor::return#2 -Alias vera_layer_set_backcolor::return#0 = vera_layer_set_backcolor::old#0 vera_layer_set_backcolor::return#5 vera_layer_set_backcolor::return#1 -Alias vera_layer_get_backcolor::return#1 = vera_layer_get_backcolor::return#4 vera_layer_get_backcolor::return#2 -Alias vera_layer_get_color::layer#2 = vera_layer_get_color::layer#3 vera_layer_get_color::layer#4 -Alias vera_layer_get_color::return#2 = vera_layer_get_color::$2 -Alias vera_layer_get_color::return#3 = vera_layer_get_color::return#6 -Alias vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#3 vera_layer_get_rowshift::return#1 -Alias vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#3 vera_layer_get_rowskip::return#1 -Alias vera_layer_mode_tile::config#0 = vera_layer_mode_tile::config#13 vera_layer_mode_tile::config#26 vera_layer_mode_tile::config#14 vera_layer_mode_tile::config#27 vera_layer_mode_tile::config#15 vera_layer_mode_tile::config#28 vera_layer_mode_tile::config#16 -Alias vera_layer_mode_tile::mapwidth#10 = vera_layer_mode_tile::mapwidth#14 vera_layer_mode_tile::mapwidth#15 vera_layer_mode_tile::mapwidth#11 vera_layer_mode_tile::mapwidth#16 vera_layer_mode_tile::mapwidth#12 vera_layer_mode_tile::mapwidth#9 vera_layer_mode_tile::mapwidth#13 -Alias vera_layer_mode_tile::layer#25 = vera_layer_mode_tile::layer#26 vera_layer_mode_tile::layer#34 vera_layer_mode_tile::layer#35 vera_layer_mode_tile::layer#27 vera_layer_mode_tile::layer#36 vera_layer_mode_tile::layer#28 vera_layer_mode_tile::layer#29 -Alias vera_layer_mode_tile::mapheight#17 = vera_layer_mode_tile::mapheight#18 vera_layer_mode_tile::mapheight#22 vera_layer_mode_tile::mapheight#23 vera_layer_mode_tile::mapheight#19 vera_layer_mode_tile::mapheight#24 vera_layer_mode_tile::mapheight#20 vera_layer_mode_tile::mapheight#21 -Alias vera_layer_mode_tile::mapbase_address#24 = vera_layer_mode_tile::mapbase_address#25 vera_layer_mode_tile::mapbase_address#29 vera_layer_mode_tile::mapbase_address#30 vera_layer_mode_tile::mapbase_address#26 vera_layer_mode_tile::mapbase_address#31 vera_layer_mode_tile::mapbase_address#27 vera_layer_mode_tile::mapbase_address#28 -Alias vera_layer_mode_tile::tilebase_address#25 = vera_layer_mode_tile::tilebase_address#26 vera_layer_mode_tile::tilebase_address#30 vera_layer_mode_tile::tilebase_address#31 vera_layer_mode_tile::tilebase_address#27 vera_layer_mode_tile::tilebase_address#32 vera_layer_mode_tile::tilebase_address#28 vera_layer_mode_tile::tilebase_address#29 -Alias vera_layer_mode_tile::tilewidth#25 = vera_layer_mode_tile::tilewidth#26 vera_layer_mode_tile::tilewidth#30 vera_layer_mode_tile::tilewidth#31 vera_layer_mode_tile::tilewidth#27 vera_layer_mode_tile::tilewidth#32 vera_layer_mode_tile::tilewidth#28 vera_layer_mode_tile::tilewidth#29 -Alias vera_layer_mode_tile::tileheight#29 = vera_layer_mode_tile::tileheight#30 vera_layer_mode_tile::tileheight#34 vera_layer_mode_tile::tileheight#35 vera_layer_mode_tile::tileheight#31 vera_layer_mode_tile::tileheight#36 vera_layer_mode_tile::tileheight#32 vera_layer_mode_tile::tileheight#33 -Alias vera_layer_mode_tile::color_depth#5 = vera_layer_mode_tile::color_depth#6 vera_layer_mode_tile::color_depth#7 vera_layer_mode_tile::color_depth#8 -Alias vera_layer_mode_tile::config#17 = vera_layer_mode_tile::config#29 vera_layer_mode_tile::config#30 vera_layer_mode_tile::config#18 vera_layer_mode_tile::config#31 vera_layer_mode_tile::config#19 vera_layer_mode_tile::config#32 vera_layer_mode_tile::config#20 -Alias vera_layer_mode_tile::layer#13 = vera_layer_mode_tile::layer#5 vera_layer_mode_tile::layer#14 vera_layer_mode_tile::layer#6 vera_layer_mode_tile::layer#15 vera_layer_mode_tile::layer#7 vera_layer_mode_tile::layer#16 vera_layer_mode_tile::layer#8 -Alias vera_layer_mode_tile::mapheight#10 = vera_layer_mode_tile::mapheight#14 vera_layer_mode_tile::mapheight#15 vera_layer_mode_tile::mapheight#11 vera_layer_mode_tile::mapheight#16 vera_layer_mode_tile::mapheight#12 vera_layer_mode_tile::mapheight#9 vera_layer_mode_tile::mapheight#13 -Alias vera_layer_mode_tile::mapbase_address#16 = vera_layer_mode_tile::mapbase_address#17 vera_layer_mode_tile::mapbase_address#21 vera_layer_mode_tile::mapbase_address#22 vera_layer_mode_tile::mapbase_address#18 vera_layer_mode_tile::mapbase_address#23 vera_layer_mode_tile::mapbase_address#19 vera_layer_mode_tile::mapbase_address#20 -Alias vera_layer_mode_tile::tilebase_address#17 = vera_layer_mode_tile::tilebase_address#18 vera_layer_mode_tile::tilebase_address#22 vera_layer_mode_tile::tilebase_address#23 vera_layer_mode_tile::tilebase_address#19 vera_layer_mode_tile::tilebase_address#24 vera_layer_mode_tile::tilebase_address#20 vera_layer_mode_tile::tilebase_address#21 -Alias vera_layer_mode_tile::tilewidth#17 = vera_layer_mode_tile::tilewidth#18 vera_layer_mode_tile::tilewidth#22 vera_layer_mode_tile::tilewidth#23 vera_layer_mode_tile::tilewidth#19 vera_layer_mode_tile::tilewidth#24 vera_layer_mode_tile::tilewidth#20 vera_layer_mode_tile::tilewidth#21 -Alias vera_layer_mode_tile::tileheight#21 = vera_layer_mode_tile::tileheight#22 vera_layer_mode_tile::tileheight#26 vera_layer_mode_tile::tileheight#27 vera_layer_mode_tile::tileheight#23 vera_layer_mode_tile::tileheight#28 vera_layer_mode_tile::tileheight#24 vera_layer_mode_tile::tileheight#25 -Alias vera_layer_mode_tile::mapwidth#5 = vera_layer_mode_tile::mapwidth#6 vera_layer_mode_tile::mapwidth#7 vera_layer_mode_tile::mapwidth#8 -Alias vera_layer_mode_tile::config#21 = vera_layer_mode_tile::config#33 vera_layer_mode_tile::config#34 vera_layer_mode_tile::config#22 vera_layer_mode_tile::config#35 vera_layer_mode_tile::config#23 vera_layer_mode_tile::config#36 vera_layer_mode_tile::config#24 -Alias vera_layer_mode_tile::layer#17 = vera_layer_mode_tile::layer#18 vera_layer_mode_tile::layer#30 vera_layer_mode_tile::layer#31 vera_layer_mode_tile::layer#19 vera_layer_mode_tile::layer#32 vera_layer_mode_tile::layer#20 vera_layer_mode_tile::layer#21 -Alias vera_layer_mode_tile::mapbase_address#10 = vera_layer_mode_tile::mapbase_address#9 vera_layer_mode_tile::mapbase_address#13 vera_layer_mode_tile::mapbase_address#14 vera_layer_mode_tile::mapbase_address#15 vera_layer_mode_tile::mapbase_address#11 vera_layer_mode_tile::mapbase_address#8 vera_layer_mode_tile::mapbase_address#12 -Alias vera_layer_mode_tile::tilebase_address#10 = vera_layer_mode_tile::tilebase_address#14 vera_layer_mode_tile::tilebase_address#15 vera_layer_mode_tile::tilebase_address#11 vera_layer_mode_tile::tilebase_address#16 vera_layer_mode_tile::tilebase_address#12 vera_layer_mode_tile::tilebase_address#9 vera_layer_mode_tile::tilebase_address#13 -Alias vera_layer_mode_tile::tilewidth#10 = vera_layer_mode_tile::tilewidth#14 vera_layer_mode_tile::tilewidth#15 vera_layer_mode_tile::tilewidth#11 vera_layer_mode_tile::tilewidth#16 vera_layer_mode_tile::tilewidth#12 vera_layer_mode_tile::tilewidth#9 vera_layer_mode_tile::tilewidth#13 -Alias vera_layer_mode_tile::tileheight#13 = vera_layer_mode_tile::tileheight#14 vera_layer_mode_tile::tileheight#18 vera_layer_mode_tile::tileheight#19 vera_layer_mode_tile::tileheight#15 vera_layer_mode_tile::tileheight#20 vera_layer_mode_tile::tileheight#16 vera_layer_mode_tile::tileheight#17 -Alias vera_layer_mode_tile::mapheight#5 = vera_layer_mode_tile::mapheight#6 vera_layer_mode_tile::mapheight#7 vera_layer_mode_tile::mapheight#8 -Alias vera_layer_mode_tile::mapbase_address#6 = vera_layer_mode_tile::mapbase_address#7 -Alias vera_layer_mode_tile::layer#10 = vera_layer_mode_tile::layer#9 vera_layer_mode_tile::layer#11 vera_layer_mode_tile::layer#38 vera_layer_mode_tile::layer#37 vera_layer_mode_tile::layer#39 -Alias vera_layer_mode_tile::tilebase_address#6 = vera_layer_mode_tile::tilebase_address#7 vera_layer_mode_tile::tilebase_address#8 -Alias vera_layer_mode_tile::tilewidth#5 = vera_layer_mode_tile::tilewidth#7 vera_layer_mode_tile::tilewidth#8 vera_layer_mode_tile::tilewidth#6 -Alias vera_layer_mode_tile::tileheight#10 = vera_layer_mode_tile::tileheight#11 vera_layer_mode_tile::tileheight#12 vera_layer_mode_tile::tileheight#8 vera_layer_mode_tile::tileheight#7 vera_layer_mode_tile::tileheight#9 -Alias vera_layer_mode_tile::mapbase_address#0 = vera_layer_mode_tile::$3 -Alias vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::$8 -Alias vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#6 vera_layer_mode_tile::tilebase#11 vera_layer_mode_tile::tilebase#7 -Alias vera_layer_mode_tile::tilebase#12 = vera_layer_mode_tile::tilebase#8 vera_layer_mode_tile::tilebase#13 vera_layer_mode_tile::tilebase#9 -Alias vera_layer_mode_tile::layer#22 = vera_layer_mode_tile::layer#23 vera_layer_mode_tile::layer#33 vera_layer_mode_tile::layer#24 -Alias vera_layer_mode_tile::tileheight#5 = vera_layer_mode_tile::tileheight#6 -Alias vera_layer_mode_text::color_mode#1 = vera_layer_mode_text::color_mode#3 vera_layer_mode_text::color_mode#2 -Alias vera_layer_mode_text::layer#1 = vera_layer_mode_text::layer#4 vera_layer_mode_text::layer#2 vera_layer_mode_text::layer#5 vera_layer_mode_text::layer#3 -Alias vera_tile_area::offset#0 = vera_tile_area::$1 -Alias vera_tile_area::mapbase#10 = vera_tile_area::mapbase#4 vera_tile_area::mapbase#6 vera_tile_area::vera_vram_address01_bankaddr#0 vera_tile_area::vera_vram_address01_bankaddr#1 vera_tile_area::mapbase#9 -Alias vera_tile_area::w#10 = vera_tile_area::w#9 vera_tile_area::w#8 vera_tile_area::w#7 -Alias vera_tile_area::index_l#3 = vera_tile_area::index_l#5 vera_tile_area::index_l#6 vera_tile_area::index_l#4 -Alias vera_tile_area::index_h#6 = vera_tile_area::index_h#8 vera_tile_area::index_h#9 vera_tile_area::index_h#7 -Alias vera_tile_area::rowskip#4 = vera_tile_area::rowskip#6 vera_tile_area::rowskip#7 vera_tile_area::rowskip#5 -Alias vera_tile_area::r#2 = vera_tile_area::r#8 vera_tile_area::r#7 vera_tile_area::r#6 -Alias vera_tile_area::h#10 = vera_tile_area::h#12 vera_tile_area::h#5 vera_tile_area::h#11 -Alias vera_tile_area::vera_vram_address01_incr#0 = vera_tile_area::vera_vram_address01_incr#1 -Alias vera_tile_area::index_l#1 = vera_tile_area::index_l#2 vera_tile_area::index_l#7 -Alias vera_tile_area::index_h#10 = vera_tile_area::index_h#4 vera_tile_area::index_h#5 -Alias vera_tile_area::c#2 = vera_tile_area::c#3 -Alias vera_tile_area::w#12 = vera_tile_area::w#6 vera_tile_area::w#5 -Alias vera_tile_area::mapbase#5 = vera_tile_area::mapbase#8 vera_tile_area::mapbase#7 -Alias vera_tile_area::rowskip#1 = vera_tile_area::rowskip#3 vera_tile_area::rowskip#2 -Alias vera_tile_area::r#3 = vera_tile_area::r#5 vera_tile_area::r#4 -Alias vera_tile_area::h#7 = vera_tile_area::h#9 vera_tile_area::h#8 -Alias CONIO_SCREEN_BANK#24 = CONIO_SCREEN_BANK#34 CONIO_SCREEN_BANK#42 -Alias CONIO_SCREEN_TEXT#27 = CONIO_SCREEN_TEXT#36 CONIO_SCREEN_TEXT#45 -Alias conio_x16_init::line#0 = conio_x16_init::line#9 conio_x16_init::line#8 conio_x16_init::line#7 conio_x16_init::line#6 conio_x16_init::line#5 conio_x16_init::line#4 conio_x16_init::line#2 -Alias CONIO_SCREEN_BANK#0 = CONIO_SCREEN_BANK#13 CONIO_SCREEN_BANK#60 CONIO_SCREEN_BANK#56 CONIO_SCREEN_BANK#51 CONIO_SCREEN_BANK#44 CONIO_SCREEN_BANK#43 -Alias CONIO_SCREEN_TEXT#0 = CONIO_SCREEN_TEXT#13 CONIO_SCREEN_TEXT#66 CONIO_SCREEN_TEXT#60 CONIO_SCREEN_TEXT#54 CONIO_SCREEN_TEXT#47 CONIO_SCREEN_TEXT#46 -Alias CONIO_SCREEN_BANK#1 = CONIO_SCREEN_BANK#25 CONIO_SCREEN_BANK#35 CONIO_SCREEN_BANK#14 -Alias CONIO_SCREEN_TEXT#1 = CONIO_SCREEN_TEXT#28 CONIO_SCREEN_TEXT#37 CONIO_SCREEN_TEXT#14 -Alias conio_x16_init::line#1 = conio_x16_init::$9 -Alias vera_layer_get_color::return#4 = vera_layer_get_color::return#7 -Alias clearline::color#1 = clearline::color#2 -Alias clearline::c#2 = clearline::c#3 -Alias insertup::i#2 = insertup::i#3 insertup::i#4 -Alias CONIO_SCREEN_TEXT#16 = CONIO_SCREEN_TEXT#30 CONIO_SCREEN_TEXT#39 CONIO_SCREEN_TEXT#29 -Alias insertup::width#1 = insertup::width#2 insertup::width#3 -Alias insertup::cy#1 = insertup::cy#3 insertup::cy#2 -Alias CONIO_SCREEN_TEXT#48 = CONIO_SCREEN_TEXT#55 CONIO_SCREEN_TEXT#61 -Alias gotoxy::y#2 = cscroll::$5 -Alias vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#4 -Alias CONIO_SCREEN_BANK#15 = CONIO_SCREEN_BANK#2 screenlayer::$0 CONIO_SCREEN_BANK#72 CONIO_SCREEN_BANK#69 CONIO_SCREEN_BANK#65 CONIO_SCREEN_BANK#61 CONIO_SCREEN_BANK#57 CONIO_SCREEN_BANK#52 CONIO_SCREEN_BANK#45 CONIO_SCREEN_BANK#36 CONIO_SCREEN_BANK#26 CONIO_SCREEN_BANK#3 -Alias vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#4 -Alias screenlayer::vera_layer_get_width1_layer#0 = screenlayer::vera_layer_get_width1_layer#1 -Alias CONIO_SCREEN_TEXT#17 = CONIO_SCREEN_TEXT#79 CONIO_SCREEN_TEXT#2 CONIO_SCREEN_TEXT#75 CONIO_SCREEN_TEXT#68 CONIO_SCREEN_TEXT#62 CONIO_SCREEN_TEXT#56 CONIO_SCREEN_TEXT#49 CONIO_SCREEN_TEXT#40 CONIO_SCREEN_TEXT#31 CONIO_SCREEN_TEXT#3 -Alias vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#4 -Alias vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#4 -Alias screenlayer::vera_layer_get_height1_layer#0 = screenlayer::vera_layer_get_height1_layer#1 -Alias printf_str::c#1 = printf_str::$0 printf_str::c#2 -Alias printf_str::putc#8 = printf_str::putc#9 -Alias printf_str::s#0 = printf_str::s#11 -Alias CONIO_SCREEN_BANK#27 = CONIO_SCREEN_BANK#37 CONIO_SCREEN_BANK#46 -Alias CONIO_SCREEN_TEXT#32 = CONIO_SCREEN_TEXT#41 CONIO_SCREEN_TEXT#50 -Alias CONIO_SCREEN_BANK#105 = CONIO_SCREEN_BANK#4 CONIO_SCREEN_BANK#16 CONIO_SCREEN_BANK#75 CONIO_SCREEN_BANK#73 CONIO_SCREEN_BANK#70 CONIO_SCREEN_BANK#66 CONIO_SCREEN_BANK#62 CONIO_SCREEN_BANK#55 CONIO_SCREEN_BANK#107 CONIO_SCREEN_BANK#106 -Alias CONIO_SCREEN_TEXT#112 = CONIO_SCREEN_TEXT#4 CONIO_SCREEN_TEXT#18 CONIO_SCREEN_TEXT#69 CONIO_SCREEN_TEXT#63 CONIO_SCREEN_TEXT#57 CONIO_SCREEN_TEXT#51 CONIO_SCREEN_TEXT#42 CONIO_SCREEN_TEXT#24 CONIO_SCREEN_TEXT#114 CONIO_SCREEN_TEXT#113 -Alias main::textcolor1_color#0 = main::textcolor1_color#1 -Alias main::bgcolor1_color#0 = main::bgcolor1_color#1 -Alias main::tilebase#0 = main::tilebase#3 -Alias main::tilebase#4 = main::tilebase#6 main::tilebase#5 -Alias main::t#2 = main::t#3 main::t#4 -Alias CONIO_SCREEN_BANK#100 = CONIO_SCREEN_BANK#102 CONIO_SCREEN_BANK#103 CONIO_SCREEN_BANK#101 CONIO_SCREEN_BANK#99 -Alias CONIO_SCREEN_TEXT#106 = CONIO_SCREEN_TEXT#109 CONIO_SCREEN_TEXT#110 CONIO_SCREEN_TEXT#108 CONIO_SCREEN_TEXT#107 -Alias main::column#2 = main::column#3 -Alias main::tile#6 = main::tile#7 -Alias main::c#2 = main::c#3 -Alias main::row#4 = main::row#8 main::row#5 -Alias main::r#2 = main::r#3 main::r#4 -Alias CONIO_SCREEN_BANK#84 = CONIO_SCREEN_BANK#96 CONIO_SCREEN_BANK#97 CONIO_SCREEN_BANK#95 CONIO_SCREEN_BANK#94 CONIO_SCREEN_BANK#93 CONIO_SCREEN_BANK#92 CONIO_SCREEN_BANK#91 CONIO_SCREEN_BANK#90 CONIO_SCREEN_BANK#89 CONIO_SCREEN_BANK#88 CONIO_SCREEN_BANK#87 CONIO_SCREEN_BANK#86 CONIO_SCREEN_BANK#85 -Alias CONIO_SCREEN_TEXT#100 = CONIO_SCREEN_TEXT#103 CONIO_SCREEN_TEXT#104 CONIO_SCREEN_TEXT#102 CONIO_SCREEN_TEXT#101 CONIO_SCREEN_TEXT#99 CONIO_SCREEN_TEXT#98 CONIO_SCREEN_TEXT#97 CONIO_SCREEN_TEXT#96 CONIO_SCREEN_TEXT#95 CONIO_SCREEN_TEXT#94 CONIO_SCREEN_TEXT#93 CONIO_SCREEN_TEXT#92 CONIO_SCREEN_TEXT#91 -Alias main::tile#12 = main::tile#2 -Alias main::vera_layer_show1_layer#0 = main::vera_layer_show1_layer#1 -Alias kbhit::return#2 = kbhit::return#5 -Alias CONIO_SCREEN_BANK#80 = CONIO_SCREEN_BANK#82 CONIO_SCREEN_BANK#83 CONIO_SCREEN_BANK#81 -Alias CONIO_SCREEN_TEXT#87 = CONIO_SCREEN_TEXT#89 CONIO_SCREEN_TEXT#90 CONIO_SCREEN_TEXT#88 -Alias main::column1#2 = main::column1#3 -Alias main::tile#8 = main::tile#9 -Alias main::c1#2 = main::c1#3 -Alias main::row#11 = main::row#6 main::row#7 -Alias main::r1#2 = main::r1#3 main::r1#4 -Alias CONIO_SCREEN_BANK#76 = CONIO_SCREEN_BANK#77 CONIO_SCREEN_BANK#78 -Alias CONIO_SCREEN_TEXT#83 = CONIO_SCREEN_TEXT#84 CONIO_SCREEN_TEXT#85 -Alias main::tile#13 = main::tile#5 -Alias kbhit::return#3 = kbhit::return#6 -Alias CONIO_SCREEN_BANK#28 = CONIO_SCREEN_BANK#71 CONIO_SCREEN_BANK#74 CONIO_SCREEN_BANK#67 CONIO_SCREEN_BANK#63 CONIO_SCREEN_BANK#58 CONIO_SCREEN_BANK#53 CONIO_SCREEN_BANK#47 CONIO_SCREEN_BANK#38 -Alias CONIO_SCREEN_TEXT#33 = CONIO_SCREEN_TEXT#80 CONIO_SCREEN_TEXT#82 CONIO_SCREEN_TEXT#76 CONIO_SCREEN_TEXT#70 CONIO_SCREEN_TEXT#64 CONIO_SCREEN_TEXT#58 CONIO_SCREEN_TEXT#52 CONIO_SCREEN_TEXT#43 -Alias main::vera_layer_hide1_layer#0 = main::vera_layer_hide1_layer#1 -Alias CONIO_SCREEN_BANK#17 = CONIO_SCREEN_BANK#5 CONIO_SCREEN_BANK#68 CONIO_SCREEN_BANK#64 CONIO_SCREEN_BANK#59 CONIO_SCREEN_BANK#54 CONIO_SCREEN_BANK#48 CONIO_SCREEN_BANK#39 CONIO_SCREEN_BANK#29 CONIO_SCREEN_BANK#18 CONIO_SCREEN_BANK#6 -Alias CONIO_SCREEN_TEXT#19 = CONIO_SCREEN_TEXT#5 CONIO_SCREEN_TEXT#71 CONIO_SCREEN_TEXT#65 CONIO_SCREEN_TEXT#59 CONIO_SCREEN_TEXT#53 CONIO_SCREEN_TEXT#44 CONIO_SCREEN_TEXT#25 CONIO_SCREEN_TEXT#34 CONIO_SCREEN_TEXT#20 CONIO_SCREEN_TEXT#6 -Alias main::textcolor2_color#0 = main::textcolor2_color#1 -Alias main::bgcolor2_color#0 = main::bgcolor2_color#1 -Alias CONIO_SCREEN_BANK#19 = CONIO_SCREEN_BANK#8 CONIO_SCREEN_BANK#30 -Alias CONIO_SCREEN_TEXT#21 = CONIO_SCREEN_TEXT#8 CONIO_SCREEN_TEXT#35 -Alias CONIO_SCREEN_BANK#10 = CONIO_SCREEN_BANK#9 CONIO_SCREEN_BANK#20 CONIO_SCREEN_BANK#21 -Alias CONIO_SCREEN_TEXT#10 = CONIO_SCREEN_TEXT#9 CONIO_SCREEN_TEXT#22 CONIO_SCREEN_TEXT#23 -Successful SSA optimization Pass2AliasElimination -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#4 kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#2 screenlayer::vera_layer_get_width1_return#1 screenlayer::vera_layer_get_width1_return#3 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#2 screenlayer::vera_layer_get_height1_return#1 screenlayer::vera_layer_get_height1_return#3 screenlayer::$5 conio_height -Alias gotoxy::x#4 = gotoxy::x#6 -Alias gotoxy::y#5 = gotoxy::y#6 -Alias vera_layer_mode_tile::mapwidth#10 = vera_layer_mode_tile::mapwidth#5 -Alias vera_layer_mode_tile::layer#10 = vera_layer_mode_tile::layer#13 vera_layer_mode_tile::layer#25 vera_layer_mode_tile::layer#17 vera_layer_mode_tile::layer#22 vera_layer_mode_tile::layer#12 -Alias vera_layer_mode_tile::mapheight#10 = vera_layer_mode_tile::mapheight#17 vera_layer_mode_tile::mapheight#5 -Alias vera_layer_mode_tile::mapbase_address#10 = vera_layer_mode_tile::mapbase_address#16 vera_layer_mode_tile::mapbase_address#24 vera_layer_mode_tile::mapbase_address#6 -Alias vera_layer_mode_tile::tilebase_address#10 = vera_layer_mode_tile::tilebase_address#17 vera_layer_mode_tile::tilebase_address#25 vera_layer_mode_tile::tilebase_address#6 -Alias vera_layer_mode_tile::tilewidth#10 = vera_layer_mode_tile::tilewidth#17 vera_layer_mode_tile::tilewidth#25 vera_layer_mode_tile::tilewidth#5 -Alias vera_layer_mode_tile::tileheight#10 = vera_layer_mode_tile::tileheight#21 vera_layer_mode_tile::tileheight#29 vera_layer_mode_tile::tileheight#13 vera_layer_mode_tile::tileheight#5 -Alias CONIO_SCREEN_BANK#0 = CONIO_SCREEN_BANK#1 -Alias CONIO_SCREEN_TEXT#0 = CONIO_SCREEN_TEXT#1 -Successful SSA optimization Pass2AliasElimination -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#4 kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#2 screenlayer::vera_layer_get_width1_return#1 screenlayer::vera_layer_get_width1_return#3 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#2 screenlayer::vera_layer_get_height1_return#1 screenlayer::vera_layer_get_height1_return#3 screenlayer::$5 conio_height -Identical Phi Values memcpy_to_vram::end#1 memcpy_to_vram::end#0 -Identical Phi Values memcpy_in_vram::num#3 memcpy_in_vram::num#4 -Identical Phi Values clrscr::color#1 clrscr::color#3 -Identical Phi Values clrscr::line_text#3 clrscr::line_text#2 -Identical Phi Values clrscr::l#3 clrscr::l#2 -Identical Phi Values CONIO_SCREEN_BANK#31 CONIO_SCREEN_BANK#11 -Identical Phi Values screensize::x#1 screensize::x#0 -Identical Phi Values screensize::y#1 screensize::y#0 -Identical Phi Values CONIO_SCREEN_TEXT#67 CONIO_SCREEN_TEXT#12 -Identical Phi Values kbhit::return#4 kbhit::return#0 -Identical Phi Values vera_layer_set_config::layer#1 vera_layer_set_config::layer#0 -Identical Phi Values vera_layer_set_config::config#1 vera_layer_set_config::config#0 -Identical Phi Values vera_layer_get_mapbase_bank::layer#1 vera_layer_get_mapbase_bank::layer#0 -Identical Phi Values vera_layer_get_mapbase_offset::layer#1 vera_layer_get_mapbase_offset::layer#0 -Identical Phi Values vera_layer_set_tilebase::layer#1 vera_layer_set_tilebase::layer#0 -Identical Phi Values vera_layer_set_tilebase::tilebase#1 vera_layer_set_tilebase::tilebase#0 -Identical Phi Values vera_layer_get_textcolor::layer#1 vera_layer_get_textcolor::layer#0 -Identical Phi Values vera_layer_get_backcolor::layer#1 vera_layer_get_backcolor::layer#0 -Identical Phi Values vera_layer_get_rowshift::layer#1 vera_layer_get_rowshift::layer#0 -Identical Phi Values vera_layer_get_rowskip::layer#1 vera_layer_get_rowskip::layer#0 -Identical Phi Values vera_layer_mode_text::layer#1 vera_layer_mode_text::layer#0 -Identical Phi Values vera_layer_mode_text::mapbase_address#1 vera_layer_mode_text::mapbase_address#0 -Identical Phi Values vera_layer_mode_text::tilebase_address#1 vera_layer_mode_text::tilebase_address#0 -Identical Phi Values vera_layer_mode_text::mapwidth#1 vera_layer_mode_text::mapwidth#0 -Identical Phi Values vera_layer_mode_text::mapheight#1 vera_layer_mode_text::mapheight#0 -Identical Phi Values vera_layer_mode_text::tilewidth#1 vera_layer_mode_text::tilewidth#0 -Identical Phi Values vera_layer_mode_text::tileheight#1 vera_layer_mode_text::tileheight#0 -Identical Phi Values vera_layer_mode_text::color_mode#1 vera_layer_mode_text::color_mode#0 -Identical Phi Values vera_tile_area::w#12 vera_tile_area::w#10 -Identical Phi Values vera_tile_area::index_l#1 vera_tile_area::index_l#3 -Identical Phi Values vera_tile_area::index_h#10 vera_tile_area::index_h#6 -Identical Phi Values vera_tile_area::mapbase#5 vera_tile_area::mapbase#10 -Identical Phi Values vera_tile_area::rowskip#1 vera_tile_area::rowskip#4 -Identical Phi Values vera_tile_area::r#3 vera_tile_area::r#2 -Identical Phi Values vera_tile_area::h#7 vera_tile_area::h#10 -Identical Phi Values CONIO_SCREEN_BANK#24 CONIO_SCREEN_BANK#7 -Identical Phi Values CONIO_SCREEN_TEXT#27 CONIO_SCREEN_TEXT#7 -Identical Phi Values CONIO_SCREEN_BANK#0 CONIO_SCREEN_BANK#15 -Identical Phi Values CONIO_SCREEN_TEXT#0 CONIO_SCREEN_TEXT#17 -Identical Phi Values CONIO_SCREEN_TEXT#15 CONIO_SCREEN_TEXT#16 -Identical Phi Values clearline::color#1 clearline::color#0 -Identical Phi Values CONIO_SCREEN_TEXT#38 CONIO_SCREEN_TEXT#48 -Identical Phi Values insertup::cy#1 insertup::cy#0 -Identical Phi Values CONIO_SCREEN_TEXT#16 CONIO_SCREEN_TEXT#38 -Identical Phi Values insertup::width#1 insertup::width#0 -Identical Phi Values CONIO_SCREEN_TEXT#48 CONIO_SCREEN_TEXT#67 -Identical Phi Values screenlayer::vera_layer_get_width1_return#2 screenlayer::vera_layer_get_width1_return#0 -Identical Phi Values screenlayer::vera_layer_get_width1_return#3 screenlayer::vera_layer_get_width1_return#1 -Identical Phi Values screenlayer::vera_layer_get_height1_return#2 screenlayer::vera_layer_get_height1_return#0 -Identical Phi Values screenlayer::vera_layer_get_height1_return#3 screenlayer::vera_layer_get_height1_return#1 -Identical Phi Values printf_str::putc#8 printf_str::putc#10 -Identical Phi Values CONIO_SCREEN_BANK#27 CONIO_SCREEN_BANK#19 -Identical Phi Values CONIO_SCREEN_TEXT#32 CONIO_SCREEN_TEXT#21 -Identical Phi Values CONIO_SCREEN_BANK#105 CONIO_SCREEN_BANK#15 -Identical Phi Values CONIO_SCREEN_TEXT#112 CONIO_SCREEN_TEXT#17 -Identical Phi Values main::tilebase#4 main::tilebase#7 -Identical Phi Values main::t#2 main::t#5 -Identical Phi Values CONIO_SCREEN_BANK#100 CONIO_SCREEN_BANK#104 -Identical Phi Values CONIO_SCREEN_TEXT#106 CONIO_SCREEN_TEXT#111 -Identical Phi Values main::row#4 main::row#9 -Identical Phi Values main::r#2 main::r#5 -Identical Phi Values CONIO_SCREEN_BANK#84 CONIO_SCREEN_BANK#98 -Identical Phi Values CONIO_SCREEN_TEXT#100 CONIO_SCREEN_TEXT#105 -Identical Phi Values CONIO_SCREEN_BANK#80 CONIO_SCREEN_BANK#84 -Identical Phi Values CONIO_SCREEN_TEXT#87 CONIO_SCREEN_TEXT#100 -Identical Phi Values main::row#11 main::row#10 -Identical Phi Values main::r1#2 main::r1#5 -Identical Phi Values CONIO_SCREEN_BANK#76 CONIO_SCREEN_BANK#79 -Identical Phi Values CONIO_SCREEN_TEXT#83 CONIO_SCREEN_TEXT#86 -Identical Phi Values CONIO_SCREEN_BANK#28 CONIO_SCREEN_BANK#76 -Identical Phi Values CONIO_SCREEN_TEXT#33 CONIO_SCREEN_TEXT#83 -Identical Phi Values CONIO_SCREEN_BANK#17 CONIO_SCREEN_BANK#15 -Identical Phi Values CONIO_SCREEN_TEXT#19 CONIO_SCREEN_TEXT#17 -Identical Phi Values CONIO_SCREEN_BANK#19 CONIO_SCREEN_BANK#0 -Identical Phi Values CONIO_SCREEN_TEXT#21 CONIO_SCREEN_TEXT#0 -Identical Phi Values CONIO_SCREEN_BANK#10 CONIO_SCREEN_BANK#17 -Identical Phi Values CONIO_SCREEN_TEXT#10 CONIO_SCREEN_TEXT#19 -Successful SSA optimization Pass2IdenticalPhiElimination -Identical Phi Values CONIO_SCREEN_TEXT#11 CONIO_SCREEN_TEXT#17 -Identical Phi Values CONIO_SCREEN_BANK#32 CONIO_SCREEN_BANK#15 -Identical Phi Values CONIO_SCREEN_BANK#11 CONIO_SCREEN_BANK#32 -Identical Phi Values clrscr::color#3 clrscr::color#0 -Identical Phi Values vera_tile_area::h#10 vera_tile_area::h#6 -Identical Phi Values vera_tile_area::w#10 vera_tile_area::w#11 -Identical Phi Values vera_tile_area::index_l#3 vera_tile_area::index_l#0 -Identical Phi Values vera_tile_area::index_h#6 vera_tile_area::index_h#3 -Identical Phi Values vera_tile_area::rowskip#4 vera_tile_area::rowskip#0 -Identical Phi Values CONIO_SCREEN_BANK#104 CONIO_SCREEN_BANK#15 -Identical Phi Values CONIO_SCREEN_TEXT#111 CONIO_SCREEN_TEXT#17 -Identical Phi Values CONIO_SCREEN_BANK#98 CONIO_SCREEN_BANK#104 -Identical Phi Values CONIO_SCREEN_TEXT#105 CONIO_SCREEN_TEXT#111 -Identical Phi Values CONIO_SCREEN_BANK#79 CONIO_SCREEN_BANK#98 -Identical Phi Values CONIO_SCREEN_TEXT#86 CONIO_SCREEN_TEXT#105 -Successful SSA optimization Pass2IdenticalPhiElimination -Simple Condition memcpy_to_vram::$4 [13] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2 -Simple Condition memcpy_in_vram::$6 [35] if(memcpy_in_vram::i#2> 7 - [177] screensize::$1 = $28 << screensize::hscale#0 - [178] *screensize::x#0 = screensize::$1 - [179] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 - [180] screensize::$3 = $1e << screensize::vscale#0 - [181] *screensize::y#0 = screensize::$3 - to:screensize::@return -screensize::@return: scope:[screensize] from screensize - [182] return - to:@return - -void screenlayer(char layer) -screenlayer: scope:[screenlayer] from conio_x16_init::@4 main::@20 main::@38 - [183] conio_screen_layer = 1 - [184] vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer - [185] call vera_layer_get_mapbase_bank - [186] vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#0 - to:screenlayer::@3 -screenlayer::@3: scope:[screenlayer] from screenlayer - [187] CONIO_SCREEN_BANK#15 = vera_layer_get_mapbase_bank::return#2 - [188] vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer - [189] call vera_layer_get_mapbase_offset - [190] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 - to:screenlayer::@4 -screenlayer::@4: scope:[screenlayer] from screenlayer::@3 - [191] CONIO_SCREEN_TEXT#17 = vera_layer_get_mapbase_offset::return#2 - [192] 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 - [193] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 - [194] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] - [195] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK - [196] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 - [197] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 - [198] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] - to:screenlayer::vera_layer_get_width1_@return -screenlayer::vera_layer_get_width1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_width1 - [199] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 - to:screenlayer::@1 -screenlayer::@1: scope:[screenlayer] from screenlayer::vera_layer_get_width1_@return - [200] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 - [201] conio_width = screenlayer::$2 - [202] vera_layer_get_rowshift::layer#0 = conio_screen_layer - [203] call vera_layer_get_rowshift - [204] vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#0 - to:screenlayer::@5 -screenlayer::@5: scope:[screenlayer] from screenlayer::@1 - [205] screenlayer::$3 = vera_layer_get_rowshift::return#2 - [206] conio_rowshift = screenlayer::$3 - [207] vera_layer_get_rowskip::layer#0 = conio_screen_layer - [208] call vera_layer_get_rowskip - [209] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 - to:screenlayer::@6 -screenlayer::@6: scope:[screenlayer] from screenlayer::@5 - [210] screenlayer::$4 = vera_layer_get_rowskip::return#2 - [211] conio_rowskip = screenlayer::$4 - [212] screenlayer::vera_layer_get_height1_layer#0 = conio_screen_layer - to:screenlayer::vera_layer_get_height1 -screenlayer::vera_layer_get_height1: scope:[screenlayer] from screenlayer::@6 - [213] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 - [214] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] - [215] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK - [216] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 - [217] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 - [218] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] - to:screenlayer::vera_layer_get_height1_@return -screenlayer::vera_layer_get_height1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_height1 - [219] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 - to:screenlayer::@2 -screenlayer::@2: scope:[screenlayer] from screenlayer::vera_layer_get_height1_@return - [220] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 - [221] conio_height = screenlayer::$5 - to:screenlayer::@return -screenlayer::@return: scope:[screenlayer] from screenlayer::@2 - [222] return - to:@return - -char vera_layer_set_textcolor(char layer , char color) -vera_layer_set_textcolor: scope:[vera_layer_set_textcolor] from conio_x16_init::@5 main::textcolor1 main::textcolor2 - [223] vera_layer_set_textcolor::layer#3 = phi( conio_x16_init::@5/1, main::textcolor1/vera_layer_set_textcolor::layer#1, main::textcolor2/vera_layer_set_textcolor::layer#2 ) - [224] vera_layer_textcolor[vera_layer_set_textcolor::layer#3] = WHITE - to:vera_layer_set_textcolor::@return -vera_layer_set_textcolor::@return: scope:[vera_layer_set_textcolor] from vera_layer_set_textcolor - [225] return - to:@return - -char vera_layer_set_backcolor(char layer , char color) -vera_layer_set_backcolor: scope:[vera_layer_set_backcolor] from conio_x16_init::@6 main::bgcolor1 main::bgcolor2 - [226] vera_layer_set_backcolor::color#3 = phi( conio_x16_init::@6/BLUE, main::bgcolor1/BLACK, main::bgcolor2/BLUE ) - [226] vera_layer_set_backcolor::layer#3 = phi( conio_x16_init::@6/1, main::bgcolor1/vera_layer_set_backcolor::layer#1, main::bgcolor2/vera_layer_set_backcolor::layer#2 ) - [227] vera_layer_backcolor[vera_layer_set_backcolor::layer#3] = vera_layer_set_backcolor::color#3 - to:vera_layer_set_backcolor::@return -vera_layer_set_backcolor::@return: scope:[vera_layer_set_backcolor] from vera_layer_set_backcolor - [228] return - to:@return - -void vera_layer_set_mapbase(char layer , char mapbase) -vera_layer_set_mapbase: scope:[vera_layer_set_mapbase] from conio_x16_init::@7 conio_x16_init::@8 vera_layer_mode_tile::@27 - [229] vera_layer_set_mapbase::mapbase#3 = phi( conio_x16_init::@7/$20, conio_x16_init::@8/0, vera_layer_mode_tile::@27/vera_layer_set_mapbase::mapbase#0 ) - [229] vera_layer_set_mapbase::layer#3 = phi( conio_x16_init::@7/0, conio_x16_init::@8/1, vera_layer_mode_tile::@27/vera_layer_set_mapbase::layer#0 ) - [230] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 - [231] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] - [232] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 - to:vera_layer_set_mapbase::@return -vera_layer_set_mapbase::@return: scope:[vera_layer_set_mapbase] from vera_layer_set_mapbase - [233] return - to:@return - -void gotoxy(char x , char y) -gotoxy: scope:[gotoxy] from conio_x16_init::@1 cscroll::@5 main::@8 - [234] gotoxy::y#4 = phi( conio_x16_init::@1/gotoxy::y#1, cscroll::@5/gotoxy::y#2, main::@8/$32 ) - [235] if(gotoxy::y#4<=conio_screen_height) goto gotoxy::@4 - to:gotoxy::@1 -gotoxy::@4: scope:[gotoxy] from gotoxy - [236] phi() - to:gotoxy::@1 -gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@4 - [237] gotoxy::y#5 = phi( gotoxy::@4/gotoxy::y#4, gotoxy/0 ) - [238] if(0> 1 - [319] vera_layer_mode_tile::mapbase#0 = byte1 vera_layer_mode_tile::mapbase_address#0 - [320] vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#10 - [321] vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0 - [322] call vera_layer_set_mapbase - to:vera_layer_mode_tile::@28 -vera_layer_mode_tile::@28: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@27 - [323] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 - [324] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 - [325] vera_layer_mode_tile::$7 = byte2 vera_layer_mode_tile::tilebase_address#10 - [326] vera_tilebase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$7 - [327] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 - [328] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 - [329] vera_layer_mode_tile::tilebase#0 = byte1 vera_layer_mode_tile::tilebase_address#0 - [330] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK - [331] if(vera_layer_mode_tile::tilewidth#10==8) goto vera_layer_mode_tile::@23 - to:vera_layer_mode_tile::@21 -vera_layer_mode_tile::@21: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@28 - [332] if(vera_layer_mode_tile::tilewidth#10!=$10) goto vera_layer_mode_tile::@23 - to:vera_layer_mode_tile::@22 -vera_layer_mode_tile::@22: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@21 - [333] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 - to:vera_layer_mode_tile::@23 -vera_layer_mode_tile::@23: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@21 vera_layer_mode_tile::@22 vera_layer_mode_tile::@28 - [334] vera_layer_mode_tile::tilebase#12 = phi( vera_layer_mode_tile::@21/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@28/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@22/vera_layer_mode_tile::tilebase#3 ) - [335] if(vera_layer_mode_tile::tileheight#10==8) goto vera_layer_mode_tile::@26 - to:vera_layer_mode_tile::@24 -vera_layer_mode_tile::@24: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@23 - [336] if(vera_layer_mode_tile::tileheight#10!=$10) goto vera_layer_mode_tile::@26 - to:vera_layer_mode_tile::@25 -vera_layer_mode_tile::@25: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@24 - [337] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 - to:vera_layer_mode_tile::@26 -vera_layer_mode_tile::@26: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@23 vera_layer_mode_tile::@24 vera_layer_mode_tile::@25 - [338] vera_layer_mode_tile::tilebase#10 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@23/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@25/vera_layer_mode_tile::tilebase#5 ) - [339] vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#10 - [340] vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10 - [341] call vera_layer_set_tilebase - to:vera_layer_mode_tile::@return -vera_layer_mode_tile::@return: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@26 - [342] return - to:@return -vera_layer_mode_tile::@18: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@15 - [343] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 - to:vera_layer_mode_tile::@20 -vera_layer_mode_tile::@17: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@14 - [344] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 - to:vera_layer_mode_tile::@20 -vera_layer_mode_tile::@11: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@7 - [345] vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_128 - [346] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 - [347] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 - [348] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 - to:vera_layer_mode_tile::@13 -vera_layer_mode_tile::@10: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@6 - [349] vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_64 - [350] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 - [351] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 - [352] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 - to:vera_layer_mode_tile::@13 -vera_layer_mode_tile::@9: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@5 - [353] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 - [354] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 - [355] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 - to:vera_layer_mode_tile::@13 - -void clrscr() -clrscr: scope:[clrscr] from main::@16 main::@18 - [356] clrscr::line_text#0 = (char *)CONIO_SCREEN_TEXT#17 - [357] vera_layer_get_backcolor::layer#0 = conio_screen_layer - [358] call vera_layer_get_backcolor - [359] vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 - to:clrscr::@7 -clrscr::@7: scope:[clrscr] from clrscr - [360] clrscr::$0 = vera_layer_get_backcolor::return#0 - [361] clrscr::$1 = clrscr::$0 << 4 - [362] vera_layer_get_textcolor::layer#0 = conio_screen_layer - [363] call vera_layer_get_textcolor - [364] vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 - to:clrscr::@8 -clrscr::@8: scope:[clrscr] from clrscr::@7 - [365] clrscr::$2 = vera_layer_get_textcolor::return#0 - [366] clrscr::color#0 = clrscr::$1 | clrscr::$2 - to:clrscr::@1 -clrscr::@1: scope:[clrscr] from clrscr::@6 clrscr::@8 - [367] clrscr::line_text#2 = phi( clrscr::@6/clrscr::line_text#1, clrscr::@8/clrscr::line_text#0 ) - [367] clrscr::l#2 = phi( clrscr::@6/clrscr::l#1, clrscr::@8/0 ) - [368] if(clrscr::l#2$0000 - rts - - continue1: - nop - }} - [444] kbhit::return#0 = kbhit::ch - to:kbhit::@return -kbhit::@return: scope:[kbhit] from kbhit - [445] kbhit::return#1 = kbhit::return#0 - [446] return - to:@return - -void vera_layer_set_text_color_mode(char layer , char color_mode) -vera_layer_set_text_color_mode: scope:[vera_layer_set_text_color_mode] from vera_layer_mode_text::@1 - [447] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) - [448] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C - [449] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 - to:vera_layer_set_text_color_mode::@return -vera_layer_set_text_color_mode::@return: scope:[vera_layer_set_text_color_mode] from vera_layer_set_text_color_mode - [450] return - to:@return - -char vera_layer_get_mapbase_bank(char layer) -vera_layer_get_mapbase_bank: scope:[vera_layer_get_mapbase_bank] from screenlayer - [451] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0] - to:vera_layer_get_mapbase_bank::@return -vera_layer_get_mapbase_bank::@return: scope:[vera_layer_get_mapbase_bank] from vera_layer_get_mapbase_bank - [452] return - to:@return - -unsigned int vera_layer_get_mapbase_offset(char layer) -vera_layer_get_mapbase_offset: scope:[vera_layer_get_mapbase_offset] from screenlayer::@3 - [453] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 - [454] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] - to:vera_layer_get_mapbase_offset::@return -vera_layer_get_mapbase_offset::@return: scope:[vera_layer_get_mapbase_offset] from vera_layer_get_mapbase_offset - [455] return - to:@return - -char vera_layer_get_rowshift(char layer) -vera_layer_get_rowshift: scope:[vera_layer_get_rowshift] from screenlayer::@1 - [456] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0] - to:vera_layer_get_rowshift::@return -vera_layer_get_rowshift::@return: scope:[vera_layer_get_rowshift] from vera_layer_get_rowshift - [457] return - to:@return - -unsigned int vera_layer_get_rowskip(char layer) -vera_layer_get_rowskip: scope:[vera_layer_get_rowskip] from screenlayer::@5 - [458] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 - [459] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] - to:vera_layer_get_rowskip::@return -vera_layer_get_rowskip::@return: scope:[vera_layer_get_rowskip] from vera_layer_get_rowskip - [460] return - to:@return - -void cscroll() -cscroll: scope:[cscroll] from cputln - [461] if(conio_cursor_y[conio_screen_layer]> 7 [ screensize::hscale#0 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::hscale#0 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::hscale#0 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for mem[1] [ conio_x16_init::line#3 conio_x16_init::line#1 conio_x16_init::line#0 ] -Statement [177] screensize::$1 = $28 << screensize::hscale#0 [ screensize::$1 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$1 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$1 ] { } ) always clobbers reg byte a -Statement [179] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 [ screensize::vscale#0 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::vscale#0 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::vscale#0 ] { } ) always clobbers reg byte a -Statement [180] screensize::$3 = $1e << screensize::vscale#0 [ screensize::$3 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$3 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$3 ] { } ) always clobbers reg byte a -Statement [183] conio_screen_layer = 1 [ conio_screen_layer ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } main:10::screenlayer:163 [ conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } ) always clobbers reg byte a -Statement [190] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 [ conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for mem[1] [ CONIO_SCREEN_BANK#15 ] -Statement [191] CONIO_SCREEN_TEXT#17 = vera_layer_get_mapbase_offset::return#2 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } ) always clobbers reg byte a -Statement [193] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] { } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] { } ) always clobbers reg byte a -Statement [194] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] { } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] { } ) always clobbers reg byte a -Statement [195] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] { } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] { } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for mem[1] [ conio_x16_init::line#3 conio_x16_init::line#1 conio_x16_init::line#0 ] -Removing always clobbered register reg byte y as potential for mem[1] [ CONIO_SCREEN_BANK#15 ] -Statement [196] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] { } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] { } ) always clobbers reg byte a -Statement [197] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] { } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] { } ) always clobbers reg byte a -Statement [198] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] { } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] { } ) always clobbers reg byte a -Statement [199] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] { } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] { } ) always clobbers reg byte a -Statement [200] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } ) always clobbers reg byte a -Statement [201] conio_width = screenlayer::$2 [ conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } main:10::screenlayer:163 [ conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } ) always clobbers reg byte a -Statement [209] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [210] screenlayer::$4 = vera_layer_get_rowskip::return#2 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] { } ) always clobbers reg byte a -Statement [211] conio_rowskip = screenlayer::$4 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } ) always clobbers reg byte a -Statement [213] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] { } ) always clobbers reg byte a -Statement [214] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] { } ) always clobbers reg byte a -Statement [215] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] { } ) always clobbers reg byte a reg byte y -Statement [216] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] { } ) always clobbers reg byte a -Statement [217] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] { } ) always clobbers reg byte a -Statement [218] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] { } ) always clobbers reg byte a -Statement [219] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] { } ) always clobbers reg byte a -Statement [220] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] { } ) always clobbers reg byte a -Statement [221] conio_height = screenlayer::$5 [ conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } ) always clobbers reg byte a -Statement [224] vera_layer_textcolor[vera_layer_set_textcolor::layer#3] = WHITE [ ] ( vera_layer_set_textcolor:19 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } conio_x16_init:8::vera_layer_set_textcolor:19 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } main:10::vera_layer_set_textcolor:72 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_set_textcolor::layer#1 = vera_layer_set_textcolor::layer#3 conio_screen_layer } } main:10::vera_layer_set_textcolor:165 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_set_textcolor::layer#2 = vera_layer_set_textcolor::layer#3 conio_screen_layer } } ) always clobbers reg byte a -Statement [230] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] ( vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } conio_x16_init:8::vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } conio_x16_init:8::vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } main:10::vera_layer_mode_tile:68::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:78::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:159::vera_layer_set_mapbase:322 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:161::vera_layer_set_mapbase:322 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:172::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:121 [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::mapbase#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:213 [ vera_layer_mode_tile::layer#10 ] -Removing always clobbered register reg byte a as potential for mem[1] [ vera_layer_mode_tile::tilewidth#10 ] -Removing always clobbered register reg byte a as potential for mem[1] [ vera_layer_mode_tile::tileheight#10 ] -Removing always clobbered register reg byte a as potential for zp[1]:212 [ vera_layer_mode_tile::$17 ] -Removing always clobbered register reg byte a as potential for zp[1]:211 [ vera_layer_mode_tile::$18 ] -Statement [231] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] ( vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } conio_x16_init:8::vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } conio_x16_init:8::vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } main:10::vera_layer_mode_tile:68::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:78::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:159::vera_layer_set_mapbase:322 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:161::vera_layer_set_mapbase:322 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:172::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [232] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 [ ] ( vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } conio_x16_init:8::vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } conio_x16_init:8::vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } main:10::vera_layer_mode_tile:68::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:78::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:159::vera_layer_set_mapbase:322 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:161::vera_layer_set_mapbase:322 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:172::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for zp[1]:213 [ vera_layer_mode_tile::layer#10 ] -Removing always clobbered register reg byte y as potential for mem[1] [ vera_layer_mode_tile::tilewidth#10 ] -Removing always clobbered register reg byte y as potential for mem[1] [ vera_layer_mode_tile::tileheight#10 ] -Removing always clobbered register reg byte y as potential for zp[1]:212 [ vera_layer_mode_tile::$17 ] -Removing always clobbered register reg byte y as potential for zp[1]:211 [ vera_layer_mode_tile::$18 ] -Statement [238] if(0> 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [323] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } ) always clobbers reg byte a -Statement [324] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } ) always clobbers reg byte a -Statement [327] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [328] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } ) always clobbers reg byte a -Statement [330] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } ) always clobbers reg byte a -Statement [333] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } ) always clobbers reg byte a -Statement [337] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } ) always clobbers reg byte a -Statement [343] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } ) always clobbers reg byte a -Statement [344] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } ) always clobbers reg byte a -Statement [345] vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_128 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } ) always clobbers reg byte a -Statement [346] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } ) always clobbers reg byte a -Statement [347] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } ) always clobbers reg byte a -Statement [348] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } ) always clobbers reg byte a -Statement [349] vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_64 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } ) always clobbers reg byte a -Statement [350] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } ) always clobbers reg byte a -Statement [351] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } ) always clobbers reg byte a -Statement [352] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } ) always clobbers reg byte a -Statement [353] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } ) always clobbers reg byte a -Statement [354] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } ) always clobbers reg byte a -Statement [355] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } ) always clobbers reg byte a -Statement [356] clrscr::line_text#0 = (char *)CONIO_SCREEN_TEXT#17 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::line_text#0 ] ( main:10::clrscr:76 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::line_text#0 ] { { vera_layer_get_backcolor::layer#0 = conio_screen_layer } { vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 } } main:10::clrscr:169 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::line_text#0 ] { { vera_layer_get_backcolor::layer#0 = conio_screen_layer } { vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 } } ) always clobbers reg byte a -Statement [361] clrscr::$1 = clrscr::$0 << 4 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::line_text#0 clrscr::$1 ] ( main:10::clrscr:76 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::line_text#0 clrscr::$1 ] { { vera_layer_get_textcolor::layer#0 = conio_screen_layer } { vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 } } main:10::clrscr:169 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::line_text#0 clrscr::$1 ] { { vera_layer_get_textcolor::layer#0 = conio_screen_layer } { vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 } } ) always clobbers reg byte a -Statement [369] conio_cursor_x[conio_screen_layer] = 0 [ conio_screen_layer conio_width conio_height conio_rowskip ] ( main:10::clrscr:76 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip ] { } main:10::clrscr:169 [ conio_screen_layer conio_width conio_height conio_rowskip ] { } ) always clobbers reg byte a reg byte y -Statement [370] conio_cursor_y[conio_screen_layer] = 0 [ conio_screen_layer conio_width conio_height conio_rowskip ] ( main:10::clrscr:76 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip ] { } main:10::clrscr:169 [ conio_screen_layer conio_width conio_height conio_rowskip ] { } ) always clobbers reg byte a reg byte y -Statement [371] clrscr::$9 = conio_screen_layer << 1 [ conio_screen_layer conio_width conio_height conio_rowskip clrscr::$9 ] ( main:10::clrscr:76 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip clrscr::$9 ] { } main:10::clrscr:169 [ conio_screen_layer conio_width conio_height conio_rowskip clrscr::$9 ] { } ) always clobbers reg byte a -Statement [372] conio_line_text[clrscr::$9] = 0 [ conio_screen_layer conio_width conio_height conio_rowskip ] ( main:10::clrscr:76 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip ] { } main:10::clrscr:169 [ conio_screen_layer conio_width conio_height conio_rowskip ] { } ) always clobbers reg byte a -Statement [374] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 ] ( main:10::clrscr:76 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 ] { } main:10::clrscr:169 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:199 [ clrscr::color#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:136 [ clrscr::l#2 clrscr::l#1 ] -Statement [379] clrscr::$7 = CONIO_SCREEN_BANK#15 | VERA_INC_1 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 clrscr::$7 ] ( main:10::clrscr:76 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 clrscr::$7 ] { } main:10::clrscr:169 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 clrscr::$7 ] { } ) always clobbers reg byte a -Statement [383] clrscr::line_text#1 = clrscr::line_text#2 + conio_rowskip [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::color#0 clrscr::l#2 clrscr::line_text#1 ] ( main:10::clrscr:76 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::color#0 clrscr::l#2 clrscr::line_text#1 ] { } main:10::clrscr:169 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::color#0 clrscr::l#2 clrscr::line_text#1 ] { } ) always clobbers reg byte a -Statement [385] *VERA_DATA0 = ' ' [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 clrscr::c#2 ] ( main:10::clrscr:76 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 clrscr::c#2 ] { } main:10::clrscr:169 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::color#0 clrscr::l#2 clrscr::line_text#2 clrscr::c#2 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:82 [ clrscr::c#2 clrscr::c#1 ] -Statement [389] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL [ memcpy_to_vram::vdest#2 ] ( main:10::memcpy_to_vram:80 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip memcpy_to_vram::vdest#2 ] { } main:10::memcpy_to_vram:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::tilebase#7 main::t#5 memcpy_to_vram::vdest#2 ] { { memcpy_to_vram::vdest#1 = memcpy_to_vram::vdest#2 } } ) always clobbers reg byte a -Statement [394] *VERA_ADDRX_H = VERA_INC_1 [ ] ( main:10::memcpy_to_vram:80 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip ] { } main:10::memcpy_to_vram:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::tilebase#7 main::t#5 ] { { memcpy_to_vram::vdest#1 = memcpy_to_vram::vdest#2 } } ) always clobbers reg byte a -Statement [396] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2 [ memcpy_to_vram::s#2 ] ( main:10::memcpy_to_vram:80 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip memcpy_to_vram::s#2 ] { } main:10::memcpy_to_vram:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::tilebase#7 main::t#5 memcpy_to_vram::s#2 ] { { memcpy_to_vram::vdest#1 = memcpy_to_vram::vdest#2 } } ) always clobbers reg byte a -Statement [398] *VERA_DATA0 = *memcpy_to_vram::s#2 [ memcpy_to_vram::s#2 ] ( main:10::memcpy_to_vram:80 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip memcpy_to_vram::s#2 ] { } main:10::memcpy_to_vram:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::tilebase#7 main::t#5 memcpy_to_vram::s#2 ] { { memcpy_to_vram::vdest#1 = memcpy_to_vram::vdest#2 } } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for mem[1] [ main::t#5 main::t#1 ] -Statement [401] vera_tile_area::mapbase#0 = *vera_mapbase_address [ vera_tile_area::tileindex#5 vera_tile_area::y#5 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 ] ( main:10::vera_tile_area:92 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::tileindex#5 vera_tile_area::y#5 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 ] { } main:10::vera_tile_area:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::tileindex#5 vera_tile_area::y#5 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#5 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#5 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#5 main::column#2 } } main:10::vera_tile_area:132 [ vera_tile_area::tileindex#5 vera_tile_area::y#5 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 ] { } main:10::vera_tile_area:138 [ main::row#10 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::tileindex#5 vera_tile_area::y#5 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 ] { { vera_tile_area::tileindex#3 = vera_tile_area::tileindex#5 main::tile#8 } { vera_tile_area::y#3 = vera_tile_area::y#5 main::row#10 } { vera_tile_area::x#3 = vera_tile_area::x#5 main::column1#2 } } main:10::vera_tile_area:153 [ vera_tile_area::tileindex#5 vera_tile_area::y#5 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:128 [ vera_tile_area::y#5 vera_tile_area::y#3 vera_tile_area::y#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:133 [ vera_tile_area::x#5 vera_tile_area::x#3 vera_tile_area::x#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:74 [ vera_tile_area::h#6 ] -Removing always clobbered register reg byte a as potential for zp[1]:68 [ vera_tile_area::w#11 ] -Statement [403] vera_tile_area::rowskip#0 = 1 << vera_tile_area::shift#0 [ vera_tile_area::tileindex#5 vera_tile_area::y#5 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] ( main:10::vera_tile_area:92 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::tileindex#5 vera_tile_area::y#5 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] { } main:10::vera_tile_area:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::tileindex#5 vera_tile_area::y#5 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#5 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#5 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#5 main::column#2 } } main:10::vera_tile_area:132 [ vera_tile_area::tileindex#5 vera_tile_area::y#5 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] { } main:10::vera_tile_area:138 [ main::row#10 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::tileindex#5 vera_tile_area::y#5 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] { { vera_tile_area::tileindex#3 = vera_tile_area::tileindex#5 main::tile#8 } { vera_tile_area::y#3 = vera_tile_area::y#5 main::row#10 } { vera_tile_area::x#3 = vera_tile_area::x#5 main::column1#2 } } main:10::vera_tile_area:153 [ vera_tile_area::tileindex#5 vera_tile_area::y#5 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:132 [ vera_tile_area::shift#0 ] -Statement [410] vera_tile_area::$10 = (unsigned int)vera_tile_area::y#5 [ vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] ( main:10::vera_tile_area:92 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] { } main:10::vera_tile_area:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#5 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#5 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#5 main::column#2 } } main:10::vera_tile_area:132 [ vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] { } main:10::vera_tile_area:138 [ main::row#10 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] { { vera_tile_area::tileindex#3 = vera_tile_area::tileindex#5 main::tile#8 } { vera_tile_area::y#3 = vera_tile_area::y#5 main::row#10 } { vera_tile_area::x#3 = vera_tile_area::x#5 main::column1#2 } } main:10::vera_tile_area:153 [ vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:67 [ vera_tile_area::index_l#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:66 [ vera_tile_area::index_h#2 ] -Statement [411] vera_tile_area::$4 = vera_tile_area::$10 << vera_tile_area::shift#0 [ vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] ( main:10::vera_tile_area:92 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] { } main:10::vera_tile_area:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#5 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#5 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#5 main::column#2 } } main:10::vera_tile_area:132 [ vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] { } main:10::vera_tile_area:138 [ main::row#10 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] { { vera_tile_area::tileindex#3 = vera_tile_area::tileindex#5 main::tile#8 } { vera_tile_area::y#3 = vera_tile_area::y#5 main::row#10 } { vera_tile_area::x#3 = vera_tile_area::x#5 main::column1#2 } } main:10::vera_tile_area:153 [ vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] { } ) always clobbers reg byte a -Statement [412] vera_tile_area::mapbase#1 = vera_tile_area::mapbase#0 + vera_tile_area::$4 [ vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] ( main:10::vera_tile_area:92 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] { } main:10::vera_tile_area:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#5 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#5 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#5 main::column#2 } } main:10::vera_tile_area:132 [ vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] { } main:10::vera_tile_area:138 [ main::row#10 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] { { vera_tile_area::tileindex#3 = vera_tile_area::tileindex#5 main::tile#8 } { vera_tile_area::y#3 = vera_tile_area::y#5 main::row#10 } { vera_tile_area::x#3 = vera_tile_area::x#5 main::column1#2 } } main:10::vera_tile_area:153 [ vera_tile_area::x#5 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] { } ) always clobbers reg byte a -Statement [413] vera_tile_area::$5 = vera_tile_area::x#5 << 1 [ vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] ( main:10::vera_tile_area:92 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] { } main:10::vera_tile_area:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#5 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#5 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#5 main::column#2 } } main:10::vera_tile_area:132 [ vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] { } main:10::vera_tile_area:138 [ main::row#10 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] { { vera_tile_area::tileindex#3 = vera_tile_area::tileindex#5 main::tile#8 } { vera_tile_area::y#3 = vera_tile_area::y#5 main::row#10 } { vera_tile_area::x#3 = vera_tile_area::x#5 main::column1#2 } } main:10::vera_tile_area:153 [ vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] { } ) always clobbers reg byte a -Statement [414] vera_tile_area::mapbase#2 = vera_tile_area::mapbase#1 + vera_tile_area::$5 [ vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] ( main:10::vera_tile_area:92 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] { } main:10::vera_tile_area:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#5 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#5 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#5 main::column#2 } } main:10::vera_tile_area:132 [ vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] { } main:10::vera_tile_area:138 [ main::row#10 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] { { vera_tile_area::tileindex#3 = vera_tile_area::tileindex#5 main::tile#8 } { vera_tile_area::y#3 = vera_tile_area::y#5 main::row#10 } { vera_tile_area::x#3 = vera_tile_area::x#5 main::column1#2 } } main:10::vera_tile_area:153 [ vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] { } ) always clobbers reg byte a -Statement [418] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL [ vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] ( main:10::vera_tile_area:92 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] { } main:10::vera_tile_area:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#5 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#5 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#5 main::column#2 } } main:10::vera_tile_area:132 [ vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] { } main:10::vera_tile_area:138 [ main::row#10 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] { { vera_tile_area::tileindex#3 = vera_tile_area::tileindex#5 main::tile#8 } { vera_tile_area::y#3 = vera_tile_area::y#5 main::row#10 } { vera_tile_area::x#3 = vera_tile_area::x#5 main::column1#2 } } main:10::vera_tile_area:153 [ vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:46 [ vera_tile_area::r#2 vera_tile_area::r#1 ] -Statement [424] vera_tile_area::vera_vram_address01_$3 = vera_tile_area::vera_vram_address01_$2 | VERA_INC_1 [ vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] ( main:10::vera_tile_area:92 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] { } main:10::vera_tile_area:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#5 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#5 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#5 main::column#2 } } main:10::vera_tile_area:132 [ vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] { } main:10::vera_tile_area:138 [ main::row#10 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] { { vera_tile_area::tileindex#3 = vera_tile_area::tileindex#5 main::tile#8 } { vera_tile_area::y#3 = vera_tile_area::y#5 main::row#10 } { vera_tile_area::x#3 = vera_tile_area::x#5 main::column1#2 } } main:10::vera_tile_area:153 [ vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] { } ) always clobbers reg byte a -Statement [428] vera_tile_area::mapbase#3 = vera_tile_area::mapbase#10 + vera_tile_area::rowskip#0 [ vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] ( main:10::vera_tile_area:92 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] { } main:10::vera_tile_area:98 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#5 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#5 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#5 main::column#2 } } main:10::vera_tile_area:132 [ vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] { } main:10::vera_tile_area:138 [ main::row#10 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] { { vera_tile_area::tileindex#3 = vera_tile_area::tileindex#5 main::tile#8 } { vera_tile_area::y#3 = vera_tile_area::y#5 main::row#10 } { vera_tile_area::x#3 = vera_tile_area::x#5 main::column1#2 } } main:10::vera_tile_area:153 [ vera_tile_area::h#6 vera_tile_area::w#11 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] { } ) always clobbers reg byte a -Statement [435] printf_str::c#1 = *printf_str::s#9 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] ( main:10::printf_str:110 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:112 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:114 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:116 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:118 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:120 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:122 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:124 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } ) always clobbers reg byte a reg byte y -Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [442] kbhit::ch = 0 [ kbhit::ch ] ( main:10::kbhit:127 [ kbhit::ch ] { { kbhit::return#1 = kbhit::return#2 } } main:10::kbhit:148 [ kbhit::ch ] { { kbhit::return#1 = kbhit::return#3 } } ) always clobbers reg byte a -Statement [447] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) [ vera_layer_set_text_color_mode::addr#0 ] ( vera_layer_mode_text:13::vera_layer_set_text_color_mode:174 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_set_text_color_mode:174 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } ) always clobbers reg byte a -Statement [448] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C [ vera_layer_set_text_color_mode::addr#0 ] ( vera_layer_mode_text:13::vera_layer_set_text_color_mode:174 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_set_text_color_mode:174 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } ) always clobbers reg byte a reg byte y -Statement [449] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 [ ] ( vera_layer_mode_text:13::vera_layer_set_text_color_mode:174 [ conio_screen_width conio_screen_height conio_x16_init::line#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_set_text_color_mode:174 [ conio_screen_width conio_screen_height conio_x16_init::line#0 ] { } ) always clobbers reg byte a reg byte y -Statement [453] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 [ vera_layer_get_mapbase_offset::$0 ] ( screenlayer:17::vera_layer_get_mapbase_offset:189 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:8::screenlayer:17::vera_layer_get_mapbase_offset:189 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:10::screenlayer:70::vera_layer_get_mapbase_offset:189 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:10::screenlayer:163::vera_layer_get_mapbase_offset:189 [ conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [454] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] [ vera_layer_get_mapbase_offset::return#0 ] ( screenlayer:17::vera_layer_get_mapbase_offset:189 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:8::screenlayer:17::vera_layer_get_mapbase_offset:189 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:10::screenlayer:70::vera_layer_get_mapbase_offset:189 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:10::screenlayer:163::vera_layer_get_mapbase_offset:189 [ conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [458] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 [ vera_layer_get_rowskip::$0 ] ( screenlayer:17::vera_layer_get_rowskip:208 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:8::screenlayer:17::vera_layer_get_rowskip:208 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:10::screenlayer:70::vera_layer_get_rowskip:208 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:10::screenlayer:163::vera_layer_get_rowskip:208 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [459] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] [ vera_layer_get_rowskip::return#0 ] ( screenlayer:17::vera_layer_get_rowskip:208 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:8::screenlayer:17::vera_layer_get_rowskip:208 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:10::screenlayer:70::vera_layer_get_rowskip:208 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:10::screenlayer:163::vera_layer_get_rowskip:208 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [461] if(conio_cursor_y[conio_screen_layer]> 7 [ screensize::hscale#0 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::hscale#0 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::hscale#0 ] { } ) always clobbers reg byte a -Statement [177] screensize::$1 = $28 << screensize::hscale#0 [ screensize::$1 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$1 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$1 ] { } ) always clobbers reg byte a -Statement [179] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 [ screensize::vscale#0 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::vscale#0 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::vscale#0 ] { } ) always clobbers reg byte a -Statement [180] screensize::$3 = $1e << screensize::vscale#0 [ screensize::$3 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$3 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$3 ] { } ) always clobbers reg byte a -Statement [183] conio_screen_layer = 1 [ conio_screen_layer ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } main:10::screenlayer:163 [ conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } ) always clobbers reg byte a -Statement [190] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 [ conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [191] CONIO_SCREEN_TEXT#17 = vera_layer_get_mapbase_offset::return#2 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } ) always clobbers reg byte a -Statement [193] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] { } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$2 ] { } ) always clobbers reg byte a -Statement [194] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] { } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_config#0 ] { } ) always clobbers reg byte a -Statement [195] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] { } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$0 ] { } ) always clobbers reg byte a reg byte y -Statement [196] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] { } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$1 ] { } ) always clobbers reg byte a -Statement [197] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] { } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_$3 ] { } ) always clobbers reg byte a -Statement [198] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] { } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#0 ] { } ) always clobbers reg byte a -Statement [199] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] { } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_width1_return#1 ] { } ) always clobbers reg byte a -Statement [200] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } main:10::screenlayer:163 [ conio_screen_layer CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } ) always clobbers reg byte a -Statement [201] conio_width = screenlayer::$2 [ conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } main:10::screenlayer:163 [ conio_screen_layer conio_width CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } ) always clobbers reg byte a -Statement [209] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [210] screenlayer::$4 = vera_layer_get_rowskip::return#2 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$4 ] { } ) always clobbers reg byte a -Statement [211] conio_rowskip = screenlayer::$4 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } ) always clobbers reg byte a -Statement [213] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$2 ] { } ) always clobbers reg byte a -Statement [214] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_config#0 ] { } ) always clobbers reg byte a -Statement [215] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$0 ] { } ) always clobbers reg byte a reg byte y -Statement [216] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$1 ] { } ) always clobbers reg byte a -Statement [217] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_$3 ] { } ) always clobbers reg byte a -Statement [218] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#0 ] { } ) always clobbers reg byte a -Statement [219] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::vera_layer_get_height1_return#1 ] { } ) always clobbers reg byte a -Statement [220] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 screenlayer::$5 ] { } ) always clobbers reg byte a -Statement [221] conio_height = screenlayer::$5 [ conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:10::screenlayer:70 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } main:10::screenlayer:163 [ conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { } ) always clobbers reg byte a -Statement [224] vera_layer_textcolor[vera_layer_set_textcolor::layer#3] = WHITE [ ] ( vera_layer_set_textcolor:19 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } conio_x16_init:8::vera_layer_set_textcolor:19 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } main:10::vera_layer_set_textcolor:72 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_set_textcolor::layer#1 = vera_layer_set_textcolor::layer#3 conio_screen_layer } } main:10::vera_layer_set_textcolor:165 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 CONIO_SCREEN_TEXT#17 ] { { vera_layer_set_textcolor::layer#2 = vera_layer_set_textcolor::layer#3 conio_screen_layer } } ) always clobbers reg byte a -Statement [230] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] ( vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } conio_x16_init:8::vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } conio_x16_init:8::vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } main:10::vera_layer_mode_tile:68::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:78::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:159::vera_layer_set_mapbase:322 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:161::vera_layer_set_mapbase:322 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:172::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [231] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] ( vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } conio_x16_init:8::vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } conio_x16_init:8::vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } main:10::vera_layer_mode_tile:68::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:78::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:159::vera_layer_set_mapbase:322 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:161::vera_layer_set_mapbase:322 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:172::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [232] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 [ ] ( vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } conio_x16_init:8::vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } conio_x16_init:8::vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift conio_x16_init::line#0 ] { } main:10::vera_layer_mode_tile:68::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:78::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:159::vera_layer_set_mapbase:322 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:161::vera_layer_set_mapbase:322 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:172::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172::vera_layer_set_mapbase:322 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a reg byte y -Statement [235] if(gotoxy::y#4<=conio_screen_height) goto gotoxy::@4 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] ( gotoxy:30 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#1 = gotoxy::y#4 conio_x16_init::line#3 } } conio_x16_init:8::gotoxy:30 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#1 = gotoxy::y#4 conio_x16_init::line#3 } } main:10::gotoxy:108 [ conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { } main:10::printf_str:110::cputc:440::cputln:58::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:112::cputc:440::cputln:58::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:114::cputc:440::cputln:58::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:116::cputc:440::cputln:58::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:118::cputc:440::cputln:58::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:120::cputc:440::cputln:58::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:122::cputc:440::cputln:58::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:124::cputc:440::cputln:58::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:110::cputc:440::cputln:62::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:112::cputc:440::cputln:62::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:114::cputc:440::cputln:62::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:116::cputc:440::cputln:62::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:118::cputc:440::cputln:62::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:120::cputc:440::cputln:62::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:122::cputc:440::cputln:62::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:124::cputc:440::cputln:62::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:110::cputc:440::cputln:64::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:112::cputc:440::cputln:64::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:114::cputc:440::cputln:64::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:116::cputc:440::cputln:64::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:118::cputc:440::cputln:64::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:120::cputc:440::cputln:64::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:122::cputc:440::cputln:64::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:124::cputc:440::cputln:64::cscroll:264::gotoxy:469 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } ) always clobbers reg byte a -Statement [238] if(0> 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [323] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } ) always clobbers reg byte a -Statement [324] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } ) always clobbers reg byte a -Statement [327] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [328] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } ) always clobbers reg byte a -Statement [330] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } ) always clobbers reg byte a -Statement [333] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } ) always clobbers reg byte a -Statement [337] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } ) always clobbers reg byte a -Statement [343] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } ) always clobbers reg byte a -Statement [344] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } ) always clobbers reg byte a -Statement [345] vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_128 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } ) always clobbers reg byte a -Statement [346] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } ) always clobbers reg byte a -Statement [347] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } ) always clobbers reg byte a -Statement [348] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } ) always clobbers reg byte a -Statement [349] vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_64 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } ) always clobbers reg byte a -Statement [350] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } ) always clobbers reg byte a -Statement [351] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } ) always clobbers reg byte a -Statement [352] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } ) always clobbers reg byte a -Statement [353] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } ) always clobbers reg byte a -Statement [354] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } ) always clobbers reg byte a -Statement [355] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] ( main:10::vera_layer_mode_tile:68 [ conio_screen_width conio_screen_height vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } main:10::vera_layer_mode_tile:78 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } main:10::vera_layer_mode_tile:159 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } main:10::vera_layer_mode_tile:161 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:172 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } ) always clobbers reg byte a -Statement [356] clrscr::line_text#0 = (char *)CONIO_SCREEN_TEXT#17 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::line_text#0 ] ( main:10::clrscr:76 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::line_text#0 ] { { vera_layer_get_backcolor::layer#0 = conio_screen_layer } { vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 } } main:10::clrscr:169 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::line_text#0 ] { { vera_layer_get_backcolor::layer#0 = conio_screen_layer } { vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 } } ) always clobbers reg byte a -Statement [361] clrscr::$1 = clrscr::$0 << 4 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::line_text#0 clrscr::$1 ] ( main:10::clrscr:76 [ conio_screen_width conio_screen_height conio_rowshift conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::line_text#0 clrscr::$1 ] { { vera_layer_get_textcolor::layer#0 = conio_screen_layer } { vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 } } main:10::clrscr:169 [ conio_screen_layer conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#15 clrscr::line_text#0 clrscr::$1 ] { { vera_layer_get_textcolor::layer#0 = conio_screen_layer } { vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 } } ) always clobbers reg byte a -Statement [368] if(clrscr::l#20 - sta.z conio_width+1 - // [5] conio_height = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z conio_height - lda #>0 - sta.z conio_height+1 - // [6] conio_rowshift = 0 -- vbuz1=vbuc1 - lda #0 - sta.z conio_rowshift - // [7] conio_rowskip = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z conio_rowskip - lda #>0 - sta.z conio_rowskip+1 - // [8] call conio_x16_init - jsr conio_x16_init - // [9] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] - __b1_from___init1: - jmp __b1 - // __start::@1 - __b1: - // [10] call main - // [65] phi from __start::@1 to main [phi:__start::@1->main] - main_from___b1: - jsr main - jmp __breturn - // __start::@return - __breturn: - // [11] return - rts -} - // conio_x16_init -// Set initial cursor position -conio_x16_init: { - // Position cursor at current line - .label BASIC_CURSOR_LINE = $d6 - .label line = $52 - // [12] conio_x16_init::line#0 = *conio_x16_init::BASIC_CURSOR_LINE -- vbuz1=_deref_pbuc1 - lda.z BASIC_CURSOR_LINE - sta.z line - // [13] call vera_layer_mode_text - // [171] phi from conio_x16_init to vera_layer_mode_text [phi:conio_x16_init->vera_layer_mode_text] - vera_layer_mode_text_from_conio_x16_init: - jsr vera_layer_mode_text - // [14] phi from conio_x16_init to conio_x16_init::@3 [phi:conio_x16_init->conio_x16_init::@3] - __b3_from_conio_x16_init: - jmp __b3 - // conio_x16_init::@3 - __b3: - // [15] call screensize - jsr screensize - // [16] phi from conio_x16_init::@3 to conio_x16_init::@4 [phi:conio_x16_init::@3->conio_x16_init::@4] - __b4_from___b3: - jmp __b4 - // conio_x16_init::@4 - __b4: - // [17] call screenlayer - jsr screenlayer - // [18] phi from conio_x16_init::@4 to conio_x16_init::@5 [phi:conio_x16_init::@4->conio_x16_init::@5] - __b5_from___b4: - jmp __b5 - // conio_x16_init::@5 - __b5: - // [19] call vera_layer_set_textcolor - // [223] phi from conio_x16_init::@5 to vera_layer_set_textcolor [phi:conio_x16_init::@5->vera_layer_set_textcolor] - vera_layer_set_textcolor_from___b5: - // [223] phi vera_layer_set_textcolor::layer#3 = 1 [phi:conio_x16_init::@5->vera_layer_set_textcolor#0] -- vbuyy=vbuc1 - ldy #1 - jsr vera_layer_set_textcolor - // [20] phi from conio_x16_init::@5 to conio_x16_init::@6 [phi:conio_x16_init::@5->conio_x16_init::@6] - __b6_from___b5: - jmp __b6 - // conio_x16_init::@6 - __b6: - // [21] call vera_layer_set_backcolor - // [226] phi from conio_x16_init::@6 to vera_layer_set_backcolor [phi:conio_x16_init::@6->vera_layer_set_backcolor] - vera_layer_set_backcolor_from___b6: - // [226] phi vera_layer_set_backcolor::color#3 = BLUE [phi:conio_x16_init::@6->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLUE - // [226] phi vera_layer_set_backcolor::layer#3 = 1 [phi:conio_x16_init::@6->vera_layer_set_backcolor#1] -- vbuyy=vbuc1 - ldy #1 - jsr vera_layer_set_backcolor - // [22] phi from conio_x16_init::@6 to conio_x16_init::@7 [phi:conio_x16_init::@6->conio_x16_init::@7] - __b7_from___b6: - jmp __b7 - // conio_x16_init::@7 - __b7: - // [23] call vera_layer_set_mapbase - // [229] phi from conio_x16_init::@7 to vera_layer_set_mapbase [phi:conio_x16_init::@7->vera_layer_set_mapbase] - vera_layer_set_mapbase_from___b7: - // [229] phi vera_layer_set_mapbase::mapbase#3 = $20 [phi:conio_x16_init::@7->vera_layer_set_mapbase#0] -- vbuxx=vbuc1 - ldx #$20 - // [229] phi vera_layer_set_mapbase::layer#3 = 0 [phi:conio_x16_init::@7->vera_layer_set_mapbase#1] -- vbuaa=vbuc1 - lda #0 - jsr vera_layer_set_mapbase - // [24] phi from conio_x16_init::@7 to conio_x16_init::@8 [phi:conio_x16_init::@7->conio_x16_init::@8] - __b8_from___b7: - jmp __b8 - // conio_x16_init::@8 - __b8: - // [25] call vera_layer_set_mapbase - // [229] phi from conio_x16_init::@8 to vera_layer_set_mapbase [phi:conio_x16_init::@8->vera_layer_set_mapbase] - vera_layer_set_mapbase_from___b8: - // [229] phi vera_layer_set_mapbase::mapbase#3 = 0 [phi:conio_x16_init::@8->vera_layer_set_mapbase#0] -- vbuxx=vbuc1 - ldx #0 - // [229] phi vera_layer_set_mapbase::layer#3 = 1 [phi:conio_x16_init::@8->vera_layer_set_mapbase#1] -- vbuaa=vbuc1 - lda #1 - jsr vera_layer_set_mapbase - jmp __b9 - // conio_x16_init::@9 - __b9: - // [26] if(conio_x16_init::line#0conio_x16_init::@1] - __b1_from___b2: - __b1_from___b9: - // [28] phi conio_x16_init::line#3 = conio_x16_init::line#1 [phi:conio_x16_init::@2/conio_x16_init::@9->conio_x16_init::@1#0] -- register_copy - jmp __b1 - // conio_x16_init::@1 - __b1: - // [29] gotoxy::y#1 = conio_x16_init::line#3 -- vbuxx=vbuz1 - ldx.z line - // [30] call gotoxy - // [234] phi from conio_x16_init::@1 to gotoxy [phi:conio_x16_init::@1->gotoxy] - gotoxy_from___b1: - // [234] phi gotoxy::y#4 = gotoxy::y#1 [phi:conio_x16_init::@1->gotoxy#0] -- register_copy - jsr gotoxy - jmp __breturn - // conio_x16_init::@return - __breturn: - // [31] return - rts -} - // cputc -// Output one character at the current cursor position -// Moves the cursor forward. Scrolls the entire screen if needed -// void cputc(__zp($a) char c) -cputc: { - .const OFFSET_STACK_C = 0 - .label __16 = 6 - .label c = $a - .label conio_addr = 8 - // [33] cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C) -- vbuz1=_stackidxbyte_vbuc1 - tsx - lda STACK_BASE+OFFSET_STACK_C,x - sta.z c - // [34] vera_layer_get_color::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [35] call vera_layer_get_color - // [247] phi from cputc to vera_layer_get_color [phi:cputc->vera_layer_get_color] - vera_layer_get_color_from_cputc: - // [247] phi vera_layer_get_color::layer#2 = vera_layer_get_color::layer#0 [phi:cputc->vera_layer_get_color#0] -- register_copy - jsr vera_layer_get_color - // [36] vera_layer_get_color::return#0 = vera_layer_get_color::return#3 - jmp __b7 - // cputc::@7 - __b7: - // [37] cputc::color#0 = vera_layer_get_color::return#0 -- vbuxx=vbuaa - tax - // [38] cputc::$15 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [39] cputc::conio_addr#0 = CONIO_SCREEN_TEXT#12 + conio_line_text[cputc::$15] -- pbuz1=pbuz2_plus_pwuc1_derefidx_vbuaa - tay - clc - lda.z CONIO_SCREEN_TEXT - adc conio_line_text,y - sta.z conio_addr - lda.z CONIO_SCREEN_TEXT+1 - adc conio_line_text+1,y - sta.z conio_addr+1 - // [40] cputc::$2 = conio_cursor_x[conio_screen_layer] << 1 -- vbuaa=pbuc1_derefidx_vbuz1_rol_1 - ldy.z conio_screen_layer - lda conio_cursor_x,y - asl - // [41] cputc::conio_addr#1 = cputc::conio_addr#0 + cputc::$2 -- pbuz1=pbuz1_plus_vbuaa - clc - adc.z conio_addr - sta.z conio_addr - bcc !+ - inc.z conio_addr+1 - !: - // [42] if(cputc::c#0==' ') goto cputc::@1 -- vbuz1_eq_vbuc1_then_la1 - lda #'\n' - cmp.z c - beq __b1_from___b7 - jmp __b2 - // cputc::@2 - __b2: - // [43] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // [44] cputc::$4 = byte0 cputc::conio_addr#1 -- vbuaa=_byte0_pbuz1 - lda.z conio_addr - // [45] *VERA_ADDRX_L = cputc::$4 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // [46] cputc::$5 = byte1 cputc::conio_addr#1 -- vbuaa=_byte1_pbuz1 - lda.z conio_addr+1 - // [47] *VERA_ADDRX_M = cputc::$5 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // [48] cputc::$6 = CONIO_SCREEN_BANK#12 | VERA_INC_1 -- vbuaa=vbuz1_bor_vbuc1 - lda #VERA_INC_1 - ora.z CONIO_SCREEN_BANK - // [49] *VERA_ADDRX_H = cputc::$6 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_H - // [50] *VERA_DATA0 = cputc::c#0 -- _deref_pbuc1=vbuz1 - lda.z c - sta VERA_DATA0 - // [51] *VERA_DATA0 = cputc::color#0 -- _deref_pbuc1=vbuxx - stx VERA_DATA0 - // [52] conio_cursor_x[conio_screen_layer] = ++ conio_cursor_x[conio_screen_layer] -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 - ldx.z conio_screen_layer - inc conio_cursor_x,x - // [53] cputc::scroll_enable#0 = conio_scroll_enable[conio_screen_layer] -- vbuaa=pbuc1_derefidx_vbuz1 - ldy.z conio_screen_layer - lda conio_scroll_enable,y - // [54] if(0!=cputc::scroll_enable#0) goto cputc::@5 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b5 - jmp __b3 - // cputc::@3 - __b3: - // [55] cputc::$16 = (unsigned int)conio_cursor_x[conio_screen_layer] -- vwuz1=_word_pbuc1_derefidx_vbuz2 - ldy.z conio_screen_layer - lda conio_cursor_x,y - sta.z __16 - lda #0 - sta.z __16+1 - // [56] if(cputc::$16!=conio_width) goto cputc::@return -- vwuz1_neq_vwuz2_then_la1 - lda.z __16+1 - cmp.z conio_width+1 - bne __breturn - lda.z __16 - cmp.z conio_width - bne __breturn - // [57] phi from cputc::@3 to cputc::@4 [phi:cputc::@3->cputc::@4] - __b4_from___b3: - jmp __b4 - // cputc::@4 - __b4: - // [58] call cputln - jsr cputln - jmp __breturn - // cputc::@return - __breturn: - // [59] return - rts - // cputc::@5 - __b5: - // [60] if(conio_cursor_x[conio_screen_layer]!=conio_screen_width) goto cputc::@return -- pbuc1_derefidx_vbuz1_neq_vbuz2_then_la1 - lda.z conio_screen_width - ldy.z conio_screen_layer - cmp conio_cursor_x,y - bne __breturn - // [61] phi from cputc::@5 to cputc::@6 [phi:cputc::@5->cputc::@6] - __b6_from___b5: - jmp __b6 - // cputc::@6 - __b6: - // [62] call cputln - jsr cputln - jmp __breturn - // [63] phi from cputc::@7 to cputc::@1 [phi:cputc::@7->cputc::@1] - __b1_from___b7: - jmp __b1 - // cputc::@1 - __b1: - // [64] call cputln - jsr cputln - jmp __breturn -} - // main -main: { - .label tilebase = $48 - .label t = $3f - .label tile = $24 - .label c = $37 - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - .label row = $40 - .label r = $42 - .label column1 = $29 - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - .label row_1 = $41 - .label r1 = $43 - // [66] 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! - // That is 65356 bytes of memory, which is 64K. Yup! One memory bank in VRAM. - // VERA VRAM holds in bank 1 many registers that interfere loading all of this data. - // So it is better to load all in bank 0, but then there is an other issue. - // So the default CX16 character set is located in bank 0, at address 0xF800. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x10000. - // This is now all easily done with a few statements in the new kickc vera lib ... - // [266] phi from main to memcpy_in_vram [phi:main->memcpy_in_vram] - memcpy_in_vram_from_main: - // [266] phi memcpy_in_vram::num#4 = $100*8 [phi:main->memcpy_in_vram#0] -- vwuz1=vwuc1 - lda #<$100*8 - sta.z memcpy_in_vram.num - lda #>$100*8 - sta.z memcpy_in_vram.num+1 - // [266] 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 - // [266] phi memcpy_in_vram::dest#3 = (void *)(char *) 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 - // [266] phi memcpy_in_vram::src_bank#3 = 0 [phi:main->memcpy_in_vram#3] -- vbuyy=vbuc1 - ldy #0 - // [266] phi memcpy_in_vram::src#3 = (void *)(char *) 63488 [phi:main->memcpy_in_vram#4] -- pvoz1=pvoc1 - lda #<$f800 - sta.z memcpy_in_vram.src - lda #>$f800 - sta.z memcpy_in_vram.src+1 - jsr memcpy_in_vram - // [67] phi from main to main::@19 [phi:main->main::@19] - __b19_from_main: - jmp __b19 - // main::@19 - __b19: - // [68] call vera_layer_mode_tile - // We copy the 128 character set of 8 bytes each. - // [286] phi from main::@19 to vera_layer_mode_tile [phi:main::@19->vera_layer_mode_tile] - vera_layer_mode_tile_from___b19: - // [286] phi vera_layer_mode_tile::tileheight#10 = 8 [phi:main::@19->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #8 - sta.z vera_layer_mode_tile.tileheight - // [286] phi vera_layer_mode_tile::tilewidth#10 = 8 [phi:main::@19->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - lda #8 - sta.z vera_layer_mode_tile.tilewidth - // [286] phi vera_layer_mode_tile::tilebase_address#10 = $1f000 [phi:main::@19->vera_layer_mode_tile#2] -- vduz1=vduc1 - lda #<$1f000 - sta.z vera_layer_mode_tile.tilebase_address_1 - lda #>$1f000 - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #<$1f000>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>$1f000>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - // [286] phi vera_layer_mode_tile::mapbase_address#10 = $10000 [phi:main::@19->vera_layer_mode_tile#3] -- vduz1=vduc1 - lda #<$10000 - sta.z vera_layer_mode_tile.mapbase_address_1 - lda #>$10000 - sta.z vera_layer_mode_tile.mapbase_address_1+1 - lda #<$10000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - lda #>$10000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - // [286] phi vera_layer_mode_tile::mapheight#10 = $40 [phi:main::@19->vera_layer_mode_tile#4] -- vwuz1=vbuc1 - lda #<$40 - sta.z vera_layer_mode_tile.mapheight - lda #>$40 - sta.z vera_layer_mode_tile.mapheight+1 - // [286] phi vera_layer_mode_tile::layer#10 = 1 [phi:main::@19->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #1 - sta.z vera_layer_mode_tile.layer - // [286] phi vera_layer_mode_tile::mapwidth#10 = $80 [phi:main::@19->vera_layer_mode_tile#6] -- vwuz1=vbuc1 - lda #<$80 - sta.z vera_layer_mode_tile.mapwidth - lda #>$80 - sta.z vera_layer_mode_tile.mapwidth+1 - // [286] phi vera_layer_mode_tile::color_depth#5 = 1 [phi:main::@19->vera_layer_mode_tile#7] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_mode_tile - // [69] phi from main::@19 to main::@20 [phi:main::@19->main::@20] - __b20_from___b19: - jmp __b20 - // main::@20 - __b20: - // [70] call screenlayer - jsr screenlayer - jmp textcolor1 - // main::textcolor1 - textcolor1: - // [71] vera_layer_set_textcolor::layer#1 = conio_screen_layer -- vbuyy=vbuz1 - ldy.z conio_screen_layer - // [72] call vera_layer_set_textcolor - // [223] phi from main::textcolor1 to vera_layer_set_textcolor [phi:main::textcolor1->vera_layer_set_textcolor] - vera_layer_set_textcolor_from_textcolor1: - // [223] phi vera_layer_set_textcolor::layer#3 = vera_layer_set_textcolor::layer#1 [phi:main::textcolor1->vera_layer_set_textcolor#0] -- register_copy - jsr vera_layer_set_textcolor - jmp bgcolor1 - // main::bgcolor1 - bgcolor1: - // [73] vera_layer_set_backcolor::layer#1 = conio_screen_layer -- vbuyy=vbuz1 - ldy.z conio_screen_layer - // [74] call vera_layer_set_backcolor - // [226] phi from main::bgcolor1 to vera_layer_set_backcolor [phi:main::bgcolor1->vera_layer_set_backcolor] - vera_layer_set_backcolor_from_bgcolor1: - // [226] phi vera_layer_set_backcolor::color#3 = BLACK [phi:main::bgcolor1->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLACK - // [226] phi vera_layer_set_backcolor::layer#3 = vera_layer_set_backcolor::layer#1 [phi:main::bgcolor1->vera_layer_set_backcolor#1] -- register_copy - jsr vera_layer_set_backcolor - // [75] phi from main::bgcolor1 to main::@16 [phi:main::bgcolor1->main::@16] - __b16_from_bgcolor1: - jmp __b16 - // main::@16 - __b16: - // [76] call clrscr - jsr clrscr - // [77] phi from main::@16 to main::@21 [phi:main::@16->main::@21] - __b21_from___b16: - jmp __b21 - // main::@21 - __b21: - // [78] call vera_layer_mode_tile - // Now we can use the full bank 0! - // We set the mapbase of the tile demo to output to 0x12000, - // and the tilebase is set to 0x0000! - // [286] phi from main::@21 to vera_layer_mode_tile [phi:main::@21->vera_layer_mode_tile] - vera_layer_mode_tile_from___b21: - // [286] phi vera_layer_mode_tile::tileheight#10 = $10 [phi:main::@21->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #$10 - sta.z vera_layer_mode_tile.tileheight - // [286] phi vera_layer_mode_tile::tilewidth#10 = $10 [phi:main::@21->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - lda #$10 - sta.z vera_layer_mode_tile.tilewidth - // [286] phi vera_layer_mode_tile::tilebase_address#10 = 0 [phi:main::@21->vera_layer_mode_tile#2] -- vduz1=vbuc1 - lda #0 - sta.z vera_layer_mode_tile.tilebase_address_1 - lda #0 - sta.z vera_layer_mode_tile.tilebase_address_1+1 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - // [286] phi vera_layer_mode_tile::mapbase_address#10 = $14000 [phi:main::@21->vera_layer_mode_tile#3] -- vduz1=vduc1 - lda #<$14000 - sta.z vera_layer_mode_tile.mapbase_address_1 - lda #>$14000 - sta.z vera_layer_mode_tile.mapbase_address_1+1 - lda #<$14000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - lda #>$14000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - // [286] phi vera_layer_mode_tile::mapheight#10 = $40 [phi:main::@21->vera_layer_mode_tile#4] -- vwuz1=vbuc1 - lda #<$40 - sta.z vera_layer_mode_tile.mapheight - lda #>$40 - sta.z vera_layer_mode_tile.mapheight+1 - // [286] phi vera_layer_mode_tile::layer#10 = 0 [phi:main::@21->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #0 - sta.z vera_layer_mode_tile.layer - // [286] phi vera_layer_mode_tile::mapwidth#10 = $40 [phi:main::@21->vera_layer_mode_tile#6] -- vwuz1=vbuc1 - lda #<$40 - sta.z vera_layer_mode_tile.mapwidth - lda #>$40 - sta.z vera_layer_mode_tile.mapwidth+1 - // [286] phi vera_layer_mode_tile::color_depth#5 = 8 [phi:main::@21->vera_layer_mode_tile#7] -- vbuxx=vbuc1 - ldx #8 - jsr vera_layer_mode_tile - // [79] phi from main::@21 to main::@22 [phi:main::@21->main::@22] - __b22_from___b21: - jmp __b22 - // main::@22 - __b22: - // [80] call memcpy_to_vram - // [388] phi from main::@22 to memcpy_to_vram [phi:main::@22->memcpy_to_vram] - memcpy_to_vram_from___b22: - // [388] phi memcpy_to_vram::vdest#2 = (void *)(char *) 0 [phi:main::@22->memcpy_to_vram#0] -- pvoz1=pvoc1 - lda #<0 - sta.z memcpy_to_vram.vdest - lda #>0 - sta.z memcpy_to_vram.vdest+1 - jsr memcpy_to_vram - // [81] phi from main::@22 to main::@1 [phi:main::@22->main::@1] - __b1_from___b22: - // [81] phi main::t#5 = 1 [phi:main::@22->main::@1#0] -- vbuz1=vbuc1 - lda #1 - sta.z t - // [81] phi main::tilebase#7 = (char *) 0+$100 [phi:main::@22->main::@1#1] -- pbuz1=pbuc1 - lda #<0+$100 - sta.z tilebase - lda #>0+$100 - sta.z tilebase+1 - jmp __b1 - // [81] phi from main::@23 to main::@1 [phi:main::@23->main::@1] - __b1_from___b23: - // [81] phi main::t#5 = main::t#1 [phi:main::@23->main::@1#0] -- register_copy - // [81] phi main::tilebase#7 = main::tilebase#2 [phi:main::@23->main::@1#1] -- register_copy - jmp __b1 - // main::@1 - __b1: - // [82] phi from main::@1 to main::@2 [phi:main::@1->main::@2] - __b2_from___b1: - // [82] phi main::p#2 = 0 [phi:main::@1->main::@2#0] -- vbuxx=vbuc1 - ldx #0 - jmp __b2 - // [82] phi from main::@2 to main::@2 [phi:main::@2->main::@2] - __b2_from___b2: - // [82] phi main::p#2 = main::p#1 [phi:main::@2->main::@2#0] -- register_copy - jmp __b2 - // main::@2 - __b2: - // [83] main::tiles[main::p#2] = main::tiles[main::p#2] + 1 -- pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_1 - lda tiles,x - inc - sta tiles,x - // [84] main::p#1 = ++ main::p#2 -- vbuxx=_inc_vbuxx - inx - // [85] if(main::p#1!=0) goto main::@2 -- vbuxx_neq_0_then_la1 - cpx #0 - bne __b2_from___b2 - jmp __b3 - // main::@3 - __b3: - // [86] memcpy_to_vram::vdest#1 = (void *)main::tilebase#7 -- pvoz1=pvoz2 - lda.z tilebase - sta.z memcpy_to_vram.vdest - lda.z tilebase+1 - sta.z memcpy_to_vram.vdest+1 - // [87] call memcpy_to_vram - // [388] phi from main::@3 to memcpy_to_vram [phi:main::@3->memcpy_to_vram] - memcpy_to_vram_from___b3: - // [388] phi memcpy_to_vram::vdest#2 = memcpy_to_vram::vdest#1 [phi:main::@3->memcpy_to_vram#0] -- register_copy - jsr memcpy_to_vram - jmp __b23 - // main::@23 - __b23: - // [88] main::tilebase#2 = main::tilebase#7 + $100 -- pbuz1=pbuz1_plus_vwuc1 - lda.z tilebase - clc - adc #<$100 - sta.z tilebase - lda.z tilebase+1 - adc #>$100 - sta.z tilebase+1 - // [89] main::t#1 = ++ main::t#5 -- vbuz1=_inc_vbuz1 - inc.z t - // [90] if(main::t#1!=0) goto main::@1 -- vbuz1_neq_0_then_la1 - lda.z t - bne __b1_from___b23 - // [91] phi from main::@23 to main::@4 [phi:main::@23->main::@4] - __b4_from___b23: - jmp __b4 - // main::@4 - __b4: - // [92] call vera_tile_area - //vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h, byte hflip, byte vflip, byte offset) - // [400] phi from main::@4 to vera_tile_area [phi:main::@4->vera_tile_area] - vera_tile_area_from___b4: - // [400] phi vera_tile_area::w#11 = $28 [phi:main::@4->vera_tile_area#0] -- vbuz1=vbuc1 - lda #$28 - sta.z vera_tile_area.w - // [400] phi vera_tile_area::h#6 = $1e [phi:main::@4->vera_tile_area#1] -- vbuz1=vbuc1 - lda #$1e - sta.z vera_tile_area.h - // [400] phi vera_tile_area::x#5 = 0 [phi:main::@4->vera_tile_area#2] -- vbuz1=vbuc1 - lda #0 - sta.z vera_tile_area.x - // [400] phi vera_tile_area::y#5 = 0 [phi:main::@4->vera_tile_area#3] -- vbuz1=vbuc1 - lda #0 - sta.z vera_tile_area.y - // [400] phi vera_tile_area::tileindex#5 = 0 [phi:main::@4->vera_tile_area#4] -- vwuz1=vbuc1 - lda #<0 - sta.z vera_tile_area.tileindex - lda #>0 - sta.z vera_tile_area.tileindex+1 - jsr vera_tile_area - // [93] phi from main::@4 to main::@5 [phi:main::@4->main::@5] - __b5_from___b4: - // [93] phi main::r#5 = 0 [phi:main::@4->main::@5#0] -- vbuz1=vbuc1 - lda #0 - sta.z r - // [93] phi main::row#9 = 1 [phi:main::@4->main::@5#1] -- vbuz1=vbuc1 - lda #1 - sta.z row - // [93] phi main::tile#10 = 0 [phi:main::@4->main::@5#2] -- vwuz1=vwuc1 - lda #<0 - sta.z tile - lda #>0 - sta.z tile+1 - jmp __b5 - // [93] phi from main::@7 to main::@5 [phi:main::@7->main::@5] - __b5_from___b7: - // [93] phi main::r#5 = main::r#1 [phi:main::@7->main::@5#0] -- register_copy - // [93] phi main::row#9 = main::row#1 [phi:main::@7->main::@5#1] -- register_copy - // [93] phi main::tile#10 = main::tile#12 [phi:main::@7->main::@5#2] -- register_copy - jmp __b5 - // main::@5 - __b5: - // [94] phi from main::@5 to main::@6 [phi:main::@5->main::@6] - __b6_from___b5: - // [94] phi main::c#2 = 0 [phi:main::@5->main::@6#0] -- vbuz1=vbuc1 - lda #0 - sta.z c - // [94] phi main::column#2 = 0 [phi:main::@5->main::@6#1] -- vbuxx=vbuc1 - ldx #0 - // [94] phi main::tile#6 = main::tile#10 [phi:main::@5->main::@6#2] -- register_copy - jmp __b6 - // [94] phi from main::@24 to main::@6 [phi:main::@24->main::@6] - __b6_from___b24: - // [94] phi main::c#2 = main::c#1 [phi:main::@24->main::@6#0] -- register_copy - // [94] phi main::column#2 = main::column#1 [phi:main::@24->main::@6#1] -- register_copy - // [94] phi main::tile#6 = main::tile#12 [phi:main::@24->main::@6#2] -- register_copy - jmp __b6 - // main::@6 - __b6: - // [95] vera_tile_area::tileindex#1 = main::tile#6 - // [96] vera_tile_area::x#1 = main::column#2 -- vbuz1=vbuxx - stx.z vera_tile_area.x - // [97] vera_tile_area::y#1 = main::row#9 -- vbuz1=vbuz2 - lda.z row - sta.z vera_tile_area.y - // [98] call vera_tile_area - // [400] phi from main::@6 to vera_tile_area [phi:main::@6->vera_tile_area] - vera_tile_area_from___b6: - // [400] phi vera_tile_area::w#11 = 1 [phi:main::@6->vera_tile_area#0] -- vbuz1=vbuc1 - lda #1 - sta.z vera_tile_area.w - // [400] phi vera_tile_area::h#6 = 1 [phi:main::@6->vera_tile_area#1] -- vbuz1=vbuc1 - lda #1 - sta.z vera_tile_area.h - // [400] phi vera_tile_area::x#5 = vera_tile_area::x#1 [phi:main::@6->vera_tile_area#2] -- register_copy - // [400] phi vera_tile_area::y#5 = vera_tile_area::y#1 [phi:main::@6->vera_tile_area#3] -- register_copy - // [400] phi vera_tile_area::tileindex#5 = vera_tile_area::tileindex#1 [phi:main::@6->vera_tile_area#4] -- register_copy - jsr vera_tile_area - jmp __b24 - // main::@24 - __b24: - // [99] main::column#1 = main::column#2 + 2 -- vbuxx=vbuxx_plus_2 - inx - inx - // [100] main::tile#1 = ++ main::tile#6 -- vwuz1=_inc_vwuz1 - inc.z tile - bne !+ - inc.z tile+1 - !: - // [101] main::tile#12 = main::tile#1 & $ff -- vwuz1=vwuz1_band_vbuc1 - lda #$ff - and.z tile - sta.z tile - lda #0 - sta.z tile+1 - // [102] main::c#1 = ++ main::c#2 -- vbuz1=_inc_vbuz1 - inc.z c - // [103] if(main::c#1!=$14) goto main::@6 -- vbuz1_neq_vbuc1_then_la1 - lda #$14 - cmp.z c - bne __b6_from___b24 - jmp __b7 - // main::@7 - __b7: - // [104] main::row#1 = main::row#9 + 2 -- vbuz1=vbuz1_plus_2 - lda.z row - clc - adc #2 - sta.z row - // [105] main::r#1 = ++ main::r#5 -- vbuz1=_inc_vbuz1 - inc.z r - // [106] if(main::r#1!=$c) goto main::@5 -- vbuz1_neq_vbuc1_then_la1 - lda #$c - cmp.z r - bne __b5_from___b7 - // [107] phi from main::@7 to main::@8 [phi:main::@7->main::@8] - __b8_from___b7: - jmp __b8 - // main::@8 - __b8: - // [108] call gotoxy - // [234] phi from main::@8 to gotoxy [phi:main::@8->gotoxy] - gotoxy_from___b8: - // [234] phi gotoxy::y#4 = $32 [phi:main::@8->gotoxy#0] -- vbuxx=vbuc1 - ldx #$32 - jsr gotoxy - // [109] phi from main::@8 to main::@25 [phi:main::@8->main::@25] - __b25_from___b8: - jmp __b25 - // main::@25 - __b25: - // [110] call printf_str - // [433] phi from main::@25 to printf_str [phi:main::@25->printf_str] - printf_str_from___b25: - // [433] phi printf_str::s#10 = main::s [phi:main::@25->printf_str#0] -- pbuz1=pbuc1 - lda #s - sta.z printf_str.s+1 - jsr printf_str - // [111] phi from main::@25 to main::@26 [phi:main::@25->main::@26] - __b26_from___b25: - jmp __b26 - // main::@26 - __b26: - // [112] call printf_str - // [433] phi from main::@26 to printf_str [phi:main::@26->printf_str] - printf_str_from___b26: - // [433] phi printf_str::s#10 = main::s1 [phi:main::@26->printf_str#0] -- pbuz1=pbuc1 - lda #s1 - sta.z printf_str.s+1 - jsr printf_str - // [113] phi from main::@26 to main::@27 [phi:main::@26->main::@27] - __b27_from___b26: - jmp __b27 - // main::@27 - __b27: - // [114] call printf_str - // [433] phi from main::@27 to printf_str [phi:main::@27->printf_str] - printf_str_from___b27: - // [433] phi printf_str::s#10 = main::s2 [phi:main::@27->printf_str#0] -- pbuz1=pbuc1 - lda #s2 - sta.z printf_str.s+1 - jsr printf_str - // [115] phi from main::@27 to main::@28 [phi:main::@27->main::@28] - __b28_from___b27: - jmp __b28 - // main::@28 - __b28: - // [116] call printf_str - // [433] phi from main::@28 to printf_str [phi:main::@28->printf_str] - printf_str_from___b28: - // [433] phi printf_str::s#10 = main::s3 [phi:main::@28->printf_str#0] -- pbuz1=pbuc1 - lda #s3 - sta.z printf_str.s+1 - jsr printf_str - // [117] phi from main::@28 to main::@29 [phi:main::@28->main::@29] - __b29_from___b28: - jmp __b29 - // main::@29 - __b29: - // [118] call printf_str - // [433] phi from main::@29 to printf_str [phi:main::@29->printf_str] - printf_str_from___b29: - // [433] phi printf_str::s#10 = main::s4 [phi:main::@29->printf_str#0] -- pbuz1=pbuc1 - lda #s4 - sta.z printf_str.s+1 - jsr printf_str - // [119] phi from main::@29 to main::@30 [phi:main::@29->main::@30] - __b30_from___b29: - jmp __b30 - // main::@30 - __b30: - // [120] call printf_str - // [433] phi from main::@30 to printf_str [phi:main::@30->printf_str] - printf_str_from___b30: - // [433] phi printf_str::s#10 = main::s5 [phi:main::@30->printf_str#0] -- pbuz1=pbuc1 - lda #s5 - sta.z printf_str.s+1 - jsr printf_str - // [121] phi from main::@30 to main::@31 [phi:main::@30->main::@31] - __b31_from___b30: - jmp __b31 - // main::@31 - __b31: - // [122] call printf_str - // [433] phi from main::@31 to printf_str [phi:main::@31->printf_str] - printf_str_from___b31: - // [433] phi printf_str::s#10 = main::s6 [phi:main::@31->printf_str#0] -- pbuz1=pbuc1 - lda #s6 - sta.z printf_str.s+1 - jsr printf_str - // [123] phi from main::@31 to main::@32 [phi:main::@31->main::@32] - __b32_from___b31: - jmp __b32 - // main::@32 - __b32: - // [124] call printf_str - // [433] phi from main::@32 to printf_str [phi:main::@32->printf_str] - printf_str_from___b32: - // [433] phi printf_str::s#10 = main::s7 [phi:main::@32->printf_str#0] -- pbuz1=pbuc1 - lda #s7 - sta.z printf_str.s+1 - jsr printf_str - jmp vera_layer_show1 - // main::vera_layer_show1 - vera_layer_show1: - // [125] *VERA_DC_VIDEO = *VERA_DC_VIDEO | *vera_layer_enable -- _deref_pbuc1=_deref_pbuc1_bor__deref_pbuc2 - lda VERA_DC_VIDEO - ora vera_layer_enable - sta VERA_DC_VIDEO - // [126] phi from main::@33 main::vera_layer_show1 to main::@9 [phi:main::@33/main::vera_layer_show1->main::@9] - __b9_from___b33: - __b9_from_vera_layer_show1: - jmp __b9 - // main::@9 - __b9: - // [127] call kbhit - jsr kbhit - // [128] kbhit::return#2 = kbhit::return#1 - jmp __b33 - // main::@33 - __b33: - // [129] main::$35 = kbhit::return#2 - // [130] if(0==main::$35) goto main::@9 -- 0_eq_vbuaa_then_la1 - cmp #0 - beq __b9_from___b33 - // [131] phi from main::@33 to main::@10 [phi:main::@33->main::@10] - __b10_from___b33: - jmp __b10 - // main::@10 - __b10: - // [132] call vera_tile_area - // [400] phi from main::@10 to vera_tile_area [phi:main::@10->vera_tile_area] - vera_tile_area_from___b10: - // [400] phi vera_tile_area::w#11 = $28 [phi:main::@10->vera_tile_area#0] -- vbuz1=vbuc1 - lda #$28 - sta.z vera_tile_area.w - // [400] phi vera_tile_area::h#6 = $1e [phi:main::@10->vera_tile_area#1] -- vbuz1=vbuc1 - lda #$1e - sta.z vera_tile_area.h - // [400] phi vera_tile_area::x#5 = 0 [phi:main::@10->vera_tile_area#2] -- vbuz1=vbuc1 - lda #0 - sta.z vera_tile_area.x - // [400] phi vera_tile_area::y#5 = 0 [phi:main::@10->vera_tile_area#3] -- vbuz1=vbuc1 - lda #0 - sta.z vera_tile_area.y - // [400] phi vera_tile_area::tileindex#5 = 0 [phi:main::@10->vera_tile_area#4] -- vwuz1=vbuc1 - lda #<0 - sta.z vera_tile_area.tileindex - lda #>0 - sta.z vera_tile_area.tileindex+1 - jsr vera_tile_area - // [133] phi from main::@10 to main::@11 [phi:main::@10->main::@11] - __b11_from___b10: - // [133] phi main::r1#5 = 0 [phi:main::@10->main::@11#0] -- vbuz1=vbuc1 - lda #0 - sta.z r1 - // [133] phi main::row#10 = 0 [phi:main::@10->main::@11#1] -- vbuz1=vbuc1 - lda #0 - sta.z row_1 - // [133] phi main::tile#11 = 0 [phi:main::@10->main::@11#2] -- vwuz1=vbuc1 - lda #<0 - sta.z tile - lda #>0 - sta.z tile+1 - jmp __b11 - // [133] phi from main::@13 to main::@11 [phi:main::@13->main::@11] - __b11_from___b13: - // [133] phi main::r1#5 = main::r1#1 [phi:main::@13->main::@11#0] -- register_copy - // [133] phi main::row#10 = main::row#3 [phi:main::@13->main::@11#1] -- register_copy - // [133] phi main::tile#11 = main::tile#13 [phi:main::@13->main::@11#2] -- register_copy - jmp __b11 - // main::@11 - __b11: - // [134] phi from main::@11 to main::@12 [phi:main::@11->main::@12] - __b12_from___b11: - // [134] phi main::c1#2 = 0 [phi:main::@11->main::@12#0] -- vbuxx=vbuc1 - ldx #0 - // [134] phi main::column1#2 = 0 [phi:main::@11->main::@12#1] -- vbuz1=vbuc1 - lda #0 - sta.z column1 - // [134] phi main::tile#8 = main::tile#11 [phi:main::@11->main::@12#2] -- register_copy - jmp __b12 - // [134] phi from main::@34 to main::@12 [phi:main::@34->main::@12] - __b12_from___b34: - // [134] phi main::c1#2 = main::c1#1 [phi:main::@34->main::@12#0] -- register_copy - // [134] phi main::column1#2 = main::column1#1 [phi:main::@34->main::@12#1] -- register_copy - // [134] phi main::tile#8 = main::tile#13 [phi:main::@34->main::@12#2] -- register_copy - jmp __b12 - // main::@12 - __b12: - // [135] vera_tile_area::tileindex#3 = main::tile#8 - // [136] vera_tile_area::x#3 = main::column1#2 - // [137] vera_tile_area::y#3 = main::row#10 -- vbuz1=vbuz2 - lda.z row_1 - sta.z vera_tile_area.y - // [138] call vera_tile_area - // [400] phi from main::@12 to vera_tile_area [phi:main::@12->vera_tile_area] - vera_tile_area_from___b12: - // [400] phi vera_tile_area::w#11 = 2 [phi:main::@12->vera_tile_area#0] -- vbuz1=vbuc1 - lda #2 - sta.z vera_tile_area.w - // [400] phi vera_tile_area::h#6 = 2 [phi:main::@12->vera_tile_area#1] -- vbuz1=vbuc1 - lda #2 - sta.z vera_tile_area.h - // [400] phi vera_tile_area::x#5 = vera_tile_area::x#3 [phi:main::@12->vera_tile_area#2] -- register_copy - // [400] phi vera_tile_area::y#5 = vera_tile_area::y#3 [phi:main::@12->vera_tile_area#3] -- register_copy - // [400] phi vera_tile_area::tileindex#5 = vera_tile_area::tileindex#3 [phi:main::@12->vera_tile_area#4] -- register_copy - jsr vera_tile_area - jmp __b34 - // main::@34 - __b34: - // [139] main::column1#1 = main::column1#2 + 2 -- vbuz1=vbuz1_plus_2 - lda.z column1 - clc - adc #2 - sta.z column1 - // [140] main::tile#4 = ++ main::tile#8 -- vwuz1=_inc_vwuz1 - inc.z tile - bne !+ - inc.z tile+1 - !: - // [141] main::tile#13 = main::tile#4 & $ff -- vwuz1=vwuz1_band_vbuc1 - lda #$ff - and.z tile - sta.z tile - lda #0 - sta.z tile+1 - // [142] main::c1#1 = ++ main::c1#2 -- vbuxx=_inc_vbuxx - inx - // [143] if(main::c1#1!=$14) goto main::@12 -- vbuxx_neq_vbuc1_then_la1 - cpx #$14 - bne __b12_from___b34 - jmp __b13 - // main::@13 - __b13: - // [144] main::row#3 = main::row#10 + 2 -- vbuz1=vbuz1_plus_2 - lda.z row_1 - clc - adc #2 - sta.z row_1 - // [145] main::r1#1 = ++ main::r1#5 -- vbuz1=_inc_vbuz1 - inc.z r1 - // [146] if(main::r1#1!=$c) goto main::@11 -- vbuz1_neq_vbuc1_then_la1 - lda #$c - cmp.z r1 - bne __b11_from___b13 - // [147] phi from main::@13 main::@35 to main::@14 [phi:main::@13/main::@35->main::@14] - __b14_from___b13: - __b14_from___b35: - jmp __b14 - // main::@14 - __b14: - // [148] call kbhit - jsr kbhit - // [149] kbhit::return#3 = kbhit::return#1 - jmp __b35 - // main::@35 - __b35: - // [150] main::$40 = kbhit::return#3 - // [151] if(0==main::$40) goto main::@14 -- 0_eq_vbuaa_then_la1 - cmp #0 - beq __b14_from___b35 - // [152] phi from main::@35 to main::@15 [phi:main::@35->main::@15] - __b15_from___b35: - jmp __b15 - // main::@15 - __b15: - // [153] call vera_tile_area - // Now put back the defaults ... - // [400] phi from main::@15 to vera_tile_area [phi:main::@15->vera_tile_area] - vera_tile_area_from___b15: - // [400] phi vera_tile_area::w#11 = $28 [phi:main::@15->vera_tile_area#0] -- vbuz1=vbuc1 - lda #$28 - sta.z vera_tile_area.w - // [400] phi vera_tile_area::h#6 = $1e [phi:main::@15->vera_tile_area#1] -- vbuz1=vbuc1 - lda #$1e - sta.z vera_tile_area.h - // [400] phi vera_tile_area::x#5 = 0 [phi:main::@15->vera_tile_area#2] -- vbuz1=vbuc1 - lda #0 - sta.z vera_tile_area.x - // [400] phi vera_tile_area::y#5 = 0 [phi:main::@15->vera_tile_area#3] -- vbuz1=vbuc1 - lda #0 - sta.z vera_tile_area.y - // [400] phi vera_tile_area::tileindex#5 = 0 [phi:main::@15->vera_tile_area#4] -- vwuz1=vbuc1 - lda #<0 - sta.z vera_tile_area.tileindex - lda #>0 - sta.z vera_tile_area.tileindex+1 - jsr vera_tile_area - jmp vera_layer_hide1 - // main::vera_layer_hide1 - vera_layer_hide1: - // [154] main::vera_layer_hide1_$0 = ~ *vera_layer_enable -- vbuaa=_bnot__deref_pbuc1 - lda vera_layer_enable - eor #$ff - // [155] *VERA_DC_VIDEO = *VERA_DC_VIDEO & main::vera_layer_hide1_$0 -- _deref_pbuc1=_deref_pbuc1_band_vbuaa - and VERA_DC_VIDEO - sta VERA_DC_VIDEO - // [156] phi from main::vera_layer_hide1 to main::@17 [phi:main::vera_layer_hide1->main::@17] - __b17_from_vera_layer_hide1: - jmp __b17 - // main::@17 - __b17: - // [157] call memcpy_in_vram - // [266] phi from main::@17 to memcpy_in_vram [phi:main::@17->memcpy_in_vram] - memcpy_in_vram_from___b17: - // [266] phi memcpy_in_vram::num#4 = $100*8 [phi:main::@17->memcpy_in_vram#0] -- vwuz1=vwuc1 - lda #<$100*8 - sta.z memcpy_in_vram.num - lda #>$100*8 - sta.z memcpy_in_vram.num+1 - // [266] 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 - // [266] phi memcpy_in_vram::dest#3 = (void *)(char *) 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 - // [266] phi memcpy_in_vram::src_bank#3 = 1 [phi:main::@17->memcpy_in_vram#3] -- vbuyy=vbuc1 - ldy #1 - // [266] phi memcpy_in_vram::src#3 = (void *)(char *) 61440 [phi:main::@17->memcpy_in_vram#4] -- pvoz1=pvoc1 - lda #<$f000 - sta.z memcpy_in_vram.src - lda #>$f000 - sta.z memcpy_in_vram.src+1 - jsr memcpy_in_vram - // [158] phi from main::@17 to main::@36 [phi:main::@17->main::@36] - __b36_from___b17: - jmp __b36 - // main::@36 - __b36: - // [159] call vera_layer_mode_tile - // [286] phi from main::@36 to vera_layer_mode_tile [phi:main::@36->vera_layer_mode_tile] - vera_layer_mode_tile_from___b36: - // [286] phi vera_layer_mode_tile::tileheight#10 = 8 [phi:main::@36->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #8 - sta.z vera_layer_mode_tile.tileheight - // [286] phi vera_layer_mode_tile::tilewidth#10 = 8 [phi:main::@36->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - lda #8 - sta.z vera_layer_mode_tile.tilewidth - // [286] phi vera_layer_mode_tile::tilebase_address#10 = $f800 [phi:main::@36->vera_layer_mode_tile#2] -- vduz1=vduc1 - lda #<$f800 - sta.z vera_layer_mode_tile.tilebase_address_1 - lda #>$f800 - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #<$f800>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>$f800>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - // [286] phi vera_layer_mode_tile::mapbase_address#10 = 0 [phi:main::@36->vera_layer_mode_tile#3] -- vduz1=vbuc1 - lda #0 - sta.z vera_layer_mode_tile.mapbase_address_1 - lda #0 - sta.z vera_layer_mode_tile.mapbase_address_1+1 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - // [286] phi vera_layer_mode_tile::mapheight#10 = $80 [phi:main::@36->vera_layer_mode_tile#4] -- vwuz1=vbuc1 - lda #<$80 - sta.z vera_layer_mode_tile.mapheight - lda #>$80 - sta.z vera_layer_mode_tile.mapheight+1 - // [286] phi vera_layer_mode_tile::layer#10 = 1 [phi:main::@36->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #1 - sta.z vera_layer_mode_tile.layer - // [286] phi vera_layer_mode_tile::mapwidth#10 = $80 [phi:main::@36->vera_layer_mode_tile#6] -- vwuz1=vbuc1 - lda #<$80 - sta.z vera_layer_mode_tile.mapwidth - lda #>$80 - sta.z vera_layer_mode_tile.mapwidth+1 - // [286] phi vera_layer_mode_tile::color_depth#5 = 1 [phi:main::@36->vera_layer_mode_tile#7] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_mode_tile - // [160] phi from main::@36 to main::@37 [phi:main::@36->main::@37] - __b37_from___b36: - jmp __b37 - // main::@37 - __b37: - // [161] call vera_layer_mode_tile - // [286] phi from main::@37 to vera_layer_mode_tile [phi:main::@37->vera_layer_mode_tile] - vera_layer_mode_tile_from___b37: - // [286] phi vera_layer_mode_tile::tileheight#10 = 8 [phi:main::@37->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #8 - sta.z vera_layer_mode_tile.tileheight - // [286] phi vera_layer_mode_tile::tilewidth#10 = 8 [phi:main::@37->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - lda #8 - sta.z vera_layer_mode_tile.tilewidth - // [286] phi vera_layer_mode_tile::tilebase_address#10 = $f800 [phi:main::@37->vera_layer_mode_tile#2] -- vduz1=vduc1 - lda #<$f800 - sta.z vera_layer_mode_tile.tilebase_address_1 - lda #>$f800 - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #<$f800>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>$f800>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - // [286] phi vera_layer_mode_tile::mapbase_address#10 = 0 [phi:main::@37->vera_layer_mode_tile#3] -- vduz1=vbuc1 - lda #0 - sta.z vera_layer_mode_tile.mapbase_address_1 - lda #0 - sta.z vera_layer_mode_tile.mapbase_address_1+1 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - // [286] phi vera_layer_mode_tile::mapheight#10 = $80 [phi:main::@37->vera_layer_mode_tile#4] -- vwuz1=vbuc1 - lda #<$80 - sta.z vera_layer_mode_tile.mapheight - lda #>$80 - sta.z vera_layer_mode_tile.mapheight+1 - // [286] phi vera_layer_mode_tile::layer#10 = 0 [phi:main::@37->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #0 - sta.z vera_layer_mode_tile.layer - // [286] phi vera_layer_mode_tile::mapwidth#10 = $80 [phi:main::@37->vera_layer_mode_tile#6] -- vwuz1=vbuc1 - lda #<$80 - sta.z vera_layer_mode_tile.mapwidth - lda #>$80 - sta.z vera_layer_mode_tile.mapwidth+1 - // [286] phi vera_layer_mode_tile::color_depth#5 = 1 [phi:main::@37->vera_layer_mode_tile#7] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_mode_tile - // [162] phi from main::@37 to main::@38 [phi:main::@37->main::@38] - __b38_from___b37: - jmp __b38 - // main::@38 - __b38: - // [163] call screenlayer - jsr screenlayer - jmp textcolor2 - // main::textcolor2 - textcolor2: - // [164] vera_layer_set_textcolor::layer#2 = conio_screen_layer -- vbuyy=vbuz1 - ldy.z conio_screen_layer - // [165] call vera_layer_set_textcolor - // [223] phi from main::textcolor2 to vera_layer_set_textcolor [phi:main::textcolor2->vera_layer_set_textcolor] - vera_layer_set_textcolor_from_textcolor2: - // [223] phi vera_layer_set_textcolor::layer#3 = vera_layer_set_textcolor::layer#2 [phi:main::textcolor2->vera_layer_set_textcolor#0] -- register_copy - jsr vera_layer_set_textcolor - jmp bgcolor2 - // main::bgcolor2 - bgcolor2: - // [166] vera_layer_set_backcolor::layer#2 = conio_screen_layer -- vbuyy=vbuz1 - ldy.z conio_screen_layer - // [167] call vera_layer_set_backcolor - // [226] phi from main::bgcolor2 to vera_layer_set_backcolor [phi:main::bgcolor2->vera_layer_set_backcolor] - vera_layer_set_backcolor_from_bgcolor2: - // [226] phi vera_layer_set_backcolor::color#3 = BLUE [phi:main::bgcolor2->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLUE - // [226] phi vera_layer_set_backcolor::layer#3 = vera_layer_set_backcolor::layer#2 [phi:main::bgcolor2->vera_layer_set_backcolor#1] -- register_copy - jsr vera_layer_set_backcolor - // [168] phi from main::bgcolor2 to main::@18 [phi:main::bgcolor2->main::@18] - __b18_from_bgcolor2: - jmp __b18 - // main::@18 - __b18: - // [169] call clrscr - jsr clrscr - jmp __breturn - // main::@return - __breturn: - // [170] return - rts - .segment Data - tiles: .byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - s: .text @"vera in tile mode 8 x 8, color depth 8 bits per pixel.\n" - .byte 0 - s1: .text @"in this mode, tiles are 8 pixels wide and 8 pixels tall.\n" - .byte 0 - s2: .text @"each tile can have a variation of 256 colors.\n" - .byte 0 - s3: .text @"the vera palette of 256 colors, can be used by setting the palette\n" - .byte 0 - s4: .text @"offset for each tile.\n" - .byte 0 - s5: .text @"here each column is displaying the same tile, but with different offsets!\n" - .byte 0 - s6: .text @"each offset aligns to multiples of 16 colors in the palette!.\n" - .byte 0 - s7: .text @"however, the first color will always be transparent (black).\n" - .byte 0 -} -.segment Code - // vera_layer_mode_text -// Set a vera layer in text mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_mode: The color mode, which can be 16 or 256. -// void vera_layer_mode_text(char layer, unsigned long mapbase_address, unsigned long tilebase_address, unsigned int mapwidth, unsigned int mapheight, char tilewidth, char tileheight, unsigned int color_mode) -vera_layer_mode_text: { - .const mapbase_address = 0 - .const tilebase_address = $f800 - .const mapwidth = $80 - .const mapheight = $40 - .const tilewidth = 8 - .const tileheight = 8 - .label layer = 1 - // [172] call vera_layer_mode_tile - // [286] phi from vera_layer_mode_text to vera_layer_mode_tile [phi:vera_layer_mode_text->vera_layer_mode_tile] - vera_layer_mode_tile_from_vera_layer_mode_text: - // [286] phi vera_layer_mode_tile::tileheight#10 = vera_layer_mode_text::tileheight#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #tileheight - sta.z vera_layer_mode_tile.tileheight - // [286] phi vera_layer_mode_tile::tilewidth#10 = vera_layer_mode_text::tilewidth#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - lda #tilewidth - sta.z vera_layer_mode_tile.tilewidth - // [286] phi vera_layer_mode_tile::tilebase_address#10 = vera_layer_mode_text::tilebase_address#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#2] -- vduz1=vduc1 - lda #tilebase_address - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>tilebase_address>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - // [286] phi vera_layer_mode_tile::mapbase_address#10 = vera_layer_mode_text::mapbase_address#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#3] -- vduz1=vduc1 - lda #mapbase_address - sta.z vera_layer_mode_tile.mapbase_address_1+1 - lda #>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - lda #>mapbase_address>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - // [286] phi vera_layer_mode_tile::mapheight#10 = vera_layer_mode_text::mapheight#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#4] -- vwuz1=vwuc1 - lda #mapheight - sta.z vera_layer_mode_tile.mapheight+1 - // [286] phi vera_layer_mode_tile::layer#10 = vera_layer_mode_text::layer#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #layer - sta.z vera_layer_mode_tile.layer - // [286] phi vera_layer_mode_tile::mapwidth#10 = vera_layer_mode_text::mapwidth#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#6] -- vwuz1=vwuc1 - lda #mapwidth - sta.z vera_layer_mode_tile.mapwidth+1 - // [286] phi vera_layer_mode_tile::color_depth#5 = 1 [phi:vera_layer_mode_text->vera_layer_mode_tile#7] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_mode_tile - // [173] phi from vera_layer_mode_text to vera_layer_mode_text::@1 [phi:vera_layer_mode_text->vera_layer_mode_text::@1] - __b1_from_vera_layer_mode_text: - jmp __b1 - // vera_layer_mode_text::@1 - __b1: - // [174] call vera_layer_set_text_color_mode - jsr vera_layer_set_text_color_mode - jmp __breturn - // vera_layer_mode_text::@return - __breturn: - // [175] return - rts -} - // screensize -// Return the current screen size. -// void screensize(char *x, char *y) -screensize: { - .label x = conio_screen_width - .label y = conio_screen_height - // [176] screensize::hscale#0 = *VERA_DC_HSCALE >> 7 -- vbuaa=_deref_pbuc1_ror_7 - // VERA returns in VERA_DC_HSCALE the value of 128 when 80 columns is used in text mode, - // and the value of 64 when 40 columns is used in text mode. - // Basically, 40 columns mode in the VERA is a double scan mode. - // Same for the VERA_DC_VSCALE mode, but then the subdivision is 60 or 30 rows. - // I still need to test the other modes, but this will suffice for now for the pure text modes. - lda VERA_DC_HSCALE - rol - rol - and #1 - // [177] screensize::$1 = $28 << screensize::hscale#0 -- vbuaa=vbuc1_rol_vbuaa - tay - lda #$28 - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // [178] *screensize::x#0 = screensize::$1 -- _deref_pbuc1=vbuaa - sta.z x - // [179] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 -- vbuaa=_deref_pbuc1_ror_7 - lda VERA_DC_VSCALE - rol - rol - and #1 - // [180] screensize::$3 = $1e << screensize::vscale#0 -- vbuaa=vbuc1_rol_vbuaa - tay - lda #$1e - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // [181] *screensize::y#0 = screensize::$3 -- _deref_pbuc1=vbuaa - sta.z y - jmp __breturn - // screensize::@return - __breturn: - // [182] return - rts -} - // screenlayer -// Set the layer with which the conio will interact. -// - layer: value of 0 or 1. -// void screenlayer(char layer) -screenlayer: { - .label __2 = $10 - .label __4 = $35 - .label __5 = $3a - .label vera_layer_get_width1_config = $22 - .label vera_layer_get_width1_return = $10 - .label vera_layer_get_height1_config = $2b - .label vera_layer_get_height1_return = $3a - // [183] conio_screen_layer = 1 -- vbuz1=vbuc1 - lda #1 - sta.z conio_screen_layer - // [184] vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer -- vbuyy=vbuz1 - ldy.z conio_screen_layer - // [185] call vera_layer_get_mapbase_bank - jsr vera_layer_get_mapbase_bank - // [186] vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#0 - jmp __b3 - // screenlayer::@3 - __b3: - // [187] CONIO_SCREEN_BANK#15 = vera_layer_get_mapbase_bank::return#2 - // [188] vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // [189] call vera_layer_get_mapbase_offset - jsr vera_layer_get_mapbase_offset - // [190] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 - jmp __b4 - // screenlayer::@4 - __b4: - // [191] CONIO_SCREEN_TEXT#17 = vera_layer_get_mapbase_offset::return#2 -- vwuz1=vwuz2 - lda.z vera_layer_get_mapbase_offset.return - sta.z CONIO_SCREEN_TEXT_1 - lda.z vera_layer_get_mapbase_offset.return+1 - sta.z CONIO_SCREEN_TEXT_1+1 - // [192] screenlayer::vera_layer_get_width1_layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - jmp vera_layer_get_width1 - // screenlayer::vera_layer_get_width1 - vera_layer_get_width1: - // [193] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [194] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z vera_layer_get_width1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_width1_config+1 - // [195] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_WIDTH_MASK - ldy #0 - and (vera_layer_get_width1_config),y - // [196] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 -- vbuaa=vbuaa_ror_4 - lsr - lsr - lsr - lsr - // [197] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [198] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda VERA_LAYER_WIDTH,y - sta.z vera_layer_get_width1_return - lda VERA_LAYER_WIDTH+1,y - sta.z vera_layer_get_width1_return+1 - jmp vera_layer_get_width1___breturn - // screenlayer::vera_layer_get_width1_@return - vera_layer_get_width1___breturn: - // [199] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 - jmp __b1 - // screenlayer::@1 - __b1: - // [200] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 - // [201] conio_width = screenlayer::$2 -- vwuz1=vwuz2 - lda.z __2 - sta.z conio_width - lda.z __2+1 - sta.z conio_width+1 - // [202] vera_layer_get_rowshift::layer#0 = conio_screen_layer -- vbuyy=vbuz1 - ldy.z conio_screen_layer - // [203] call vera_layer_get_rowshift - jsr vera_layer_get_rowshift - // [204] vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#0 - jmp __b5 - // screenlayer::@5 - __b5: - // [205] screenlayer::$3 = vera_layer_get_rowshift::return#2 - // [206] conio_rowshift = screenlayer::$3 -- vbuz1=vbuaa - sta.z conio_rowshift - // [207] vera_layer_get_rowskip::layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // [208] call vera_layer_get_rowskip - jsr vera_layer_get_rowskip - // [209] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 - jmp __b6 - // screenlayer::@6 - __b6: - // [210] screenlayer::$4 = vera_layer_get_rowskip::return#2 - // [211] conio_rowskip = screenlayer::$4 -- vwuz1=vwuz2 - lda.z __4 - sta.z conio_rowskip - lda.z __4+1 - sta.z conio_rowskip+1 - // [212] screenlayer::vera_layer_get_height1_layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - jmp vera_layer_get_height1 - // screenlayer::vera_layer_get_height1 - vera_layer_get_height1: - // [213] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [214] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z vera_layer_get_height1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_height1_config+1 - // [215] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_HEIGHT_MASK - ldy #0 - and (vera_layer_get_height1_config),y - // [216] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 -- vbuaa=vbuaa_ror_6 - rol - rol - rol - and #3 - // [217] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [218] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda VERA_LAYER_HEIGHT,y - sta.z vera_layer_get_height1_return - lda VERA_LAYER_HEIGHT+1,y - sta.z vera_layer_get_height1_return+1 - jmp vera_layer_get_height1___breturn - // screenlayer::vera_layer_get_height1_@return - vera_layer_get_height1___breturn: - // [219] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 - jmp __b2 - // screenlayer::@2 - __b2: - // [220] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 - // [221] conio_height = screenlayer::$5 -- vwuz1=vwuz2 - lda.z __5 - sta.z conio_height - lda.z __5+1 - sta.z conio_height+1 - jmp __breturn - // screenlayer::@return - __breturn: - // [222] return - rts -} - // vera_layer_set_textcolor -// Set the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15) when the VERA works in 16x16 color text mode. -// An 8 bit value (decimal between 0 and 255) when the VERA works in 256 text mode. -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_textcolor(__register(Y) char layer, char color) -vera_layer_set_textcolor: { - // [224] vera_layer_textcolor[vera_layer_set_textcolor::layer#3] = WHITE -- pbuc1_derefidx_vbuyy=vbuc2 - lda #WHITE - sta vera_layer_textcolor,y - jmp __breturn - // vera_layer_set_textcolor::@return - __breturn: - // [225] return - rts -} - // vera_layer_set_backcolor -// Set the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_backcolor(__register(Y) char layer, __register(A) char color) -vera_layer_set_backcolor: { - // [227] vera_layer_backcolor[vera_layer_set_backcolor::layer#3] = vera_layer_set_backcolor::color#3 -- pbuc1_derefidx_vbuyy=vbuaa - sta vera_layer_backcolor,y - jmp __breturn - // vera_layer_set_backcolor::@return - __breturn: - // [228] return - rts -} - // vera_layer_set_mapbase -// Set the base of the map layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - mapbase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// void vera_layer_set_mapbase(__register(A) char layer, __register(X) char mapbase) -vera_layer_set_mapbase: { - .label addr = $22 - // [230] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [231] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_mapbase,y - sta.z addr - lda vera_layer_mapbase+1,y - sta.z addr+1 - // [232] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - jmp __breturn - // vera_layer_set_mapbase::@return - __breturn: - // [233] return - rts -} - // gotoxy -// Set the cursor to the specified position -// void gotoxy(char x, __register(X) char y) -gotoxy: { - .label __6 = $10 - .label line_offset = $10 - // [235] if(gotoxy::y#4<=conio_screen_height) goto gotoxy::@4 -- vbuxx_le_vbuz1_then_la1 - lda.z conio_screen_height - stx.z $ff - cmp.z $ff - bcs __b4_from_gotoxy - // [237] phi from gotoxy to gotoxy::@1 [phi:gotoxy->gotoxy::@1] - __b1_from_gotoxy: - // [237] phi gotoxy::y#5 = 0 [phi:gotoxy->gotoxy::@1#0] -- vbuxx=vbuc1 - ldx #0 - jmp __b1 - // [236] phi from gotoxy to gotoxy::@4 [phi:gotoxy->gotoxy::@4] - __b4_from_gotoxy: - jmp __b4 - // gotoxy::@4 - __b4: - // [237] phi from gotoxy::@4 to gotoxy::@1 [phi:gotoxy::@4->gotoxy::@1] - __b1_from___b4: - // [237] phi gotoxy::y#5 = gotoxy::y#4 [phi:gotoxy::@4->gotoxy::@1#0] -- register_copy - jmp __b1 - // gotoxy::@1 - __b1: - // [238] if(0gotoxy::@3] - __b3_from___b1: - jmp __b3 - // gotoxy::@3 - __b3: - jmp __b2 - // gotoxy::@2 - __b2: - // [240] conio_cursor_x[conio_screen_layer] = 0 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // [241] conio_cursor_y[conio_screen_layer] = gotoxy::y#5 -- pbuc1_derefidx_vbuz1=vbuxx - ldy.z conio_screen_layer - txa - sta conio_cursor_y,y - // [242] gotoxy::$6 = (unsigned int)gotoxy::y#5 -- vwuz1=_word_vbuxx - txa - sta.z __6 - lda #0 - sta.z __6+1 - // [243] gotoxy::line_offset#0 = gotoxy::$6 << conio_rowshift -- vwuz1=vwuz1_rol_vbuz2 - ldy.z conio_rowshift - beq !e+ - !: - asl.z line_offset - rol.z line_offset+1 - dey - bne !- - !e: - // [244] gotoxy::$5 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [245] conio_line_text[gotoxy::$5] = gotoxy::line_offset#0 -- pwuc1_derefidx_vbuaa=vwuz1 - tay - lda.z line_offset - sta conio_line_text,y - lda.z line_offset+1 - sta conio_line_text+1,y - jmp __breturn - // gotoxy::@return - __breturn: - // [246] return - rts -} - // vera_layer_get_color -// Get the text and back color for text output in 16 color mode. -// - layer: Value of 0 or 1. -// - return: an 8 bit value with bit 7:4 containing the back color and bit 3:0 containing the front color. -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_color(__register(X) char layer) -vera_layer_get_color: { - .label addr = 4 - // [248] vera_layer_get_color::$3 = vera_layer_get_color::layer#2 << 1 -- vbuaa=vbuxx_rol_1 - txa - asl - // [249] vera_layer_get_color::addr#0 = vera_layer_config[vera_layer_get_color::$3] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // [250] vera_layer_get_color::$0 = *vera_layer_get_color::addr#0 & VERA_LAYER_CONFIG_256C -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_CONFIG_256C - ldy #0 - and (addr),y - // [251] if(0!=vera_layer_get_color::$0) goto vera_layer_get_color::@1 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b1 - jmp __b2 - // vera_layer_get_color::@2 - __b2: - // [252] vera_layer_get_color::$1 = vera_layer_backcolor[vera_layer_get_color::layer#2] << 4 -- vbuaa=pbuc1_derefidx_vbuxx_rol_4 - lda vera_layer_backcolor,x - asl - asl - asl - asl - // [253] vera_layer_get_color::return#2 = vera_layer_get_color::$1 | vera_layer_textcolor[vera_layer_get_color::layer#2] -- vbuaa=vbuaa_bor_pbuc1_derefidx_vbuxx - ora vera_layer_textcolor,x - // [254] phi from vera_layer_get_color::@1 vera_layer_get_color::@2 to vera_layer_get_color::@return [phi:vera_layer_get_color::@1/vera_layer_get_color::@2->vera_layer_get_color::@return] - __breturn_from___b1: - __breturn_from___b2: - // [254] phi vera_layer_get_color::return#3 = vera_layer_get_color::return#1 [phi:vera_layer_get_color::@1/vera_layer_get_color::@2->vera_layer_get_color::@return#0] -- register_copy - jmp __breturn - // vera_layer_get_color::@return - __breturn: - // [255] return - rts - // vera_layer_get_color::@1 - __b1: - // [256] vera_layer_get_color::return#1 = vera_layer_textcolor[vera_layer_get_color::layer#2] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_textcolor,x - jmp __breturn_from___b1 -} - // cputln -// Print a newline -cputln: { - .label temp = 4 - // [257] cputln::$2 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [258] cputln::temp#0 = conio_line_text[cputln::$2] -- vwuz1=pwuc1_derefidx_vbuaa - // TODO: This needs to be optimized! other variations don't compile because of sections not available! - tay - lda conio_line_text,y - sta.z temp - lda conio_line_text+1,y - sta.z temp+1 - // [259] cputln::temp#1 = cputln::temp#0 + conio_rowskip -- vwuz1=vwuz1_plus_vwuz2 - clc - lda.z temp - adc.z conio_rowskip - sta.z temp - lda.z temp+1 - adc.z conio_rowskip+1 - sta.z temp+1 - // [260] cputln::$3 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [261] conio_line_text[cputln::$3] = cputln::temp#1 -- pwuc1_derefidx_vbuaa=vwuz1 - tay - lda.z temp - sta conio_line_text,y - lda.z temp+1 - sta conio_line_text+1,y - // [262] conio_cursor_x[conio_screen_layer] = 0 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // [263] conio_cursor_y[conio_screen_layer] = ++ conio_cursor_y[conio_screen_layer] -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 - ldx.z conio_screen_layer - inc conio_cursor_y,x - // [264] call cscroll - jsr cscroll - jmp __breturn - // cputln::@return - __breturn: - // [265] return - rts -} - // memcpy_in_vram -// Copy block of memory (from VRAM to VRAM) -// Copies the values from the location pointed by src to the location pointed by dest. -// The method uses the VERA access ports 0 and 1 to copy data from and to in VRAM. -// - src_bank: 64K VRAM bank number to copy from (0/1). -// - src: pointer to the location to copy from. Note that the address is a 16 bit value! -// - src_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -// - dest_bank: 64K VRAM bank number to copy to (0/1). -// - dest: pointer to the location to copy to. Note that the address is a 16 bit value! -// - dest_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -// - num: The number of bytes to copy -// void memcpy_in_vram(__zp($a) char dest_bank, __zp(8) void *dest, char dest_increment, __register(Y) char src_bank, __zp(6) char *src, char src_increment, __zp(4) unsigned int num) -memcpy_in_vram: { - .label i = 2 - .label dest = 8 - .label src = 6 - .label num = 4 - .label dest_bank = $a - // [267] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // [268] memcpy_in_vram::$0 = byte0 memcpy_in_vram::src#3 -- vbuaa=_byte0_pvoz1 - lda.z src - // [269] *VERA_ADDRX_L = memcpy_in_vram::$0 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // [270] memcpy_in_vram::$1 = byte1 memcpy_in_vram::src#3 -- vbuaa=_byte1_pvoz1 - lda.z src+1 - // [271] *VERA_ADDRX_M = memcpy_in_vram::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // [272] memcpy_in_vram::$2 = VERA_INC_1 | memcpy_in_vram::src_bank#3 -- vbuaa=vbuc1_bor_vbuyy - tya - ora #VERA_INC_1 - // [273] *VERA_ADDRX_H = memcpy_in_vram::$2 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_H - // [274] *VERA_CTRL = *VERA_CTRL | VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 - // Select DATA1 - lda #VERA_ADDRSEL - ora VERA_CTRL - sta VERA_CTRL - // [275] memcpy_in_vram::$3 = byte0 memcpy_in_vram::dest#3 -- vbuaa=_byte0_pvoz1 - lda.z dest - // [276] *VERA_ADDRX_L = memcpy_in_vram::$3 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // [277] memcpy_in_vram::$4 = byte1 memcpy_in_vram::dest#3 -- vbuaa=_byte1_pvoz1 - lda.z dest+1 - // [278] *VERA_ADDRX_M = memcpy_in_vram::$4 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // [279] memcpy_in_vram::$5 = VERA_INC_1 | memcpy_in_vram::dest_bank#3 -- vbuaa=vbuc1_bor_vbuz1 - lda #VERA_INC_1 - ora.z dest_bank - // [280] *VERA_ADDRX_H = memcpy_in_vram::$5 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_H - // [281] phi from memcpy_in_vram to memcpy_in_vram::@1 [phi:memcpy_in_vram->memcpy_in_vram::@1] - __b1_from_memcpy_in_vram: - // [281] phi memcpy_in_vram::i#2 = 0 [phi:memcpy_in_vram->memcpy_in_vram::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z i - lda #>0 - sta.z i+1 - jmp __b1 - // Transfer the data - // memcpy_in_vram::@1 - __b1: - // [282] if(memcpy_in_vram::i#2memcpy_in_vram::@1] - __b1_from___b2: - // [281] phi memcpy_in_vram::i#2 = memcpy_in_vram::i#1 [phi:memcpy_in_vram::@2->memcpy_in_vram::@1#0] -- register_copy - jmp __b1 -} - // vera_layer_mode_tile -// Set a vera layer in tile mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_depth: The color depth in bits per pixel (BPP), which can be 1, 2, 4 or 8. -// void vera_layer_mode_tile(__zp($3e) char layer, __zp($2d) unsigned long mapbase_address, __zp($31) unsigned long tilebase_address, __zp($10) unsigned int mapwidth, __zp($44) unsigned int mapheight, __zp($54) char tilewidth, __zp($55) char tileheight, __register(X) char color_depth) -vera_layer_mode_tile: { - .label __1 = $35 - .label __6 = $2b - .label __17 = $3d - .label __18 = $3c - .label mapbase_address = $2d - .label tilebase_address = $31 - .label layer = $3e - .label mapwidth = $10 - .label mapheight = $44 - .label mapbase_address_1 = $4a - .label tileheight = $55 - .label tilebase_address_1 = $4e - .label tilewidth = $54 - // [287] if(vera_layer_mode_tile::color_depth#5==1) goto vera_layer_mode_tile::@5 -- vbuxx_eq_vbuc1_then_la1 - cpx #1 - beq __b5_from_vera_layer_mode_tile - jmp __b1 - // vera_layer_mode_tile::@1 - __b1: - // [288] if(vera_layer_mode_tile::color_depth#5==2) goto vera_layer_mode_tile::@5 -- vbuxx_eq_vbuc1_then_la1 - cpx #2 - beq __b5_from___b1 - jmp __b2 - // vera_layer_mode_tile::@2 - __b2: - // [289] if(vera_layer_mode_tile::color_depth#5==4) goto vera_layer_mode_tile::@5 -- vbuxx_eq_vbuc1_then_la1 - cpx #4 - beq __b5_from___b2 - jmp __b3 - // vera_layer_mode_tile::@3 - __b3: - // [290] if(vera_layer_mode_tile::color_depth#5!=8) goto vera_layer_mode_tile::@5 -- vbuxx_neq_vbuc1_then_la1 - cpx #8 - bne __b5_from___b3 - // [291] phi from vera_layer_mode_tile::@3 to vera_layer_mode_tile::@4 [phi:vera_layer_mode_tile::@3->vera_layer_mode_tile::@4] - __b4_from___b3: - jmp __b4 - // vera_layer_mode_tile::@4 - __b4: - // [292] phi from vera_layer_mode_tile::@4 to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile::@4->vera_layer_mode_tile::@5] - __b5_from___b4: - // [292] phi vera_layer_mode_tile::config#17 = VERA_LAYER_COLOR_DEPTH_8BPP [phi:vera_layer_mode_tile::@4->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_8BPP - jmp __b5 - // [292] phi from vera_layer_mode_tile to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile->vera_layer_mode_tile::@5] - __b5_from_vera_layer_mode_tile: - // [292] phi vera_layer_mode_tile::config#17 = VERA_LAYER_COLOR_DEPTH_1BPP [phi:vera_layer_mode_tile->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_1BPP - jmp __b5 - // [292] phi from vera_layer_mode_tile::@1 to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile::@1->vera_layer_mode_tile::@5] - __b5_from___b1: - // [292] phi vera_layer_mode_tile::config#17 = VERA_LAYER_COLOR_DEPTH_2BPP [phi:vera_layer_mode_tile::@1->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_2BPP - jmp __b5 - // [292] phi from vera_layer_mode_tile::@2 to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile::@2->vera_layer_mode_tile::@5] - __b5_from___b2: - // [292] phi vera_layer_mode_tile::config#17 = VERA_LAYER_COLOR_DEPTH_4BPP [phi:vera_layer_mode_tile::@2->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_4BPP - jmp __b5 - // [292] phi from vera_layer_mode_tile::@3 to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile::@3->vera_layer_mode_tile::@5] - __b5_from___b3: - // [292] phi vera_layer_mode_tile::config#17 = 0 [phi:vera_layer_mode_tile::@3->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #0 - jmp __b5 - // vera_layer_mode_tile::@5 - __b5: - // [293] if(vera_layer_mode_tile::mapwidth#10==$20) goto vera_layer_mode_tile::@9 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$20 - beq __b9 - !: - jmp __b6 - // vera_layer_mode_tile::@6 - __b6: - // [294] if(vera_layer_mode_tile::mapwidth#10==$40) goto vera_layer_mode_tile::@10 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$40 - beq __b10 - !: - jmp __b7 - // vera_layer_mode_tile::@7 - __b7: - // [295] if(vera_layer_mode_tile::mapwidth#10==$80) goto vera_layer_mode_tile::@11 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$80 - beq __b11 - !: - jmp __b8 - // vera_layer_mode_tile::@8 - __b8: - // [296] if(vera_layer_mode_tile::mapwidth#10!=$100) goto vera_layer_mode_tile::@13 -- vwuz1_neq_vwuc1_then_la1 - lda.z mapwidth+1 - cmp #>$100 - bne __b13_from___b8 - lda.z mapwidth - cmp #<$100 - bne __b13_from___b8 - jmp __b12 - // vera_layer_mode_tile::@12 - __b12: - // [297] vera_layer_mode_tile::config#8 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_256 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_WIDTH_256 - tax - // [298] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 9 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #9 - ldy.z layer - sta vera_layer_rowshift,y - // [299] vera_layer_mode_tile::$14 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - lda.z layer - asl - // [300] vera_layer_rowskip[vera_layer_mode_tile::$14] = $200 -- pwuc1_derefidx_vbuaa=vwuc2 - tay - lda #<$200 - sta vera_layer_rowskip,y - lda #>$200 - sta vera_layer_rowskip+1,y - // [301] phi from vera_layer_mode_tile::@10 vera_layer_mode_tile::@11 vera_layer_mode_tile::@12 vera_layer_mode_tile::@8 vera_layer_mode_tile::@9 to vera_layer_mode_tile::@13 [phi:vera_layer_mode_tile::@10/vera_layer_mode_tile::@11/vera_layer_mode_tile::@12/vera_layer_mode_tile::@8/vera_layer_mode_tile::@9->vera_layer_mode_tile::@13] - __b13_from___b10: - __b13_from___b11: - __b13_from___b12: - __b13_from___b8: - __b13_from___b9: - // [301] phi vera_layer_mode_tile::config#21 = vera_layer_mode_tile::config#6 [phi:vera_layer_mode_tile::@10/vera_layer_mode_tile::@11/vera_layer_mode_tile::@12/vera_layer_mode_tile::@8/vera_layer_mode_tile::@9->vera_layer_mode_tile::@13#0] -- register_copy - jmp __b13 - // vera_layer_mode_tile::@13 - __b13: - // [302] if(vera_layer_mode_tile::mapheight#10==$20) goto vera_layer_mode_tile::@20 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$20 - beq __b20_from___b13 - !: - jmp __b14 - // vera_layer_mode_tile::@14 - __b14: - // [303] if(vera_layer_mode_tile::mapheight#10==$40) goto vera_layer_mode_tile::@17 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$40 - beq __b17 - !: - jmp __b15 - // vera_layer_mode_tile::@15 - __b15: - // [304] if(vera_layer_mode_tile::mapheight#10==$80) goto vera_layer_mode_tile::@18 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$80 - beq __b18 - !: - jmp __b16 - // vera_layer_mode_tile::@16 - __b16: - // [305] if(vera_layer_mode_tile::mapheight#10!=$100) goto vera_layer_mode_tile::@20 -- vwuz1_neq_vwuc1_then_la1 - lda.z mapheight+1 - cmp #>$100 - bne __b20_from___b16 - lda.z mapheight - cmp #<$100 - bne __b20_from___b16 - jmp __b19 - // vera_layer_mode_tile::@19 - __b19: - // [306] vera_layer_mode_tile::config#12 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_256 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_256 - tax - // [307] phi from vera_layer_mode_tile::@13 vera_layer_mode_tile::@16 vera_layer_mode_tile::@17 vera_layer_mode_tile::@18 vera_layer_mode_tile::@19 to vera_layer_mode_tile::@20 [phi:vera_layer_mode_tile::@13/vera_layer_mode_tile::@16/vera_layer_mode_tile::@17/vera_layer_mode_tile::@18/vera_layer_mode_tile::@19->vera_layer_mode_tile::@20] - __b20_from___b13: - __b20_from___b16: - __b20_from___b17: - __b20_from___b18: - __b20_from___b19: - // [307] phi vera_layer_mode_tile::config#25 = vera_layer_mode_tile::config#21 [phi:vera_layer_mode_tile::@13/vera_layer_mode_tile::@16/vera_layer_mode_tile::@17/vera_layer_mode_tile::@18/vera_layer_mode_tile::@19->vera_layer_mode_tile::@20#0] -- register_copy - jmp __b20 - // vera_layer_mode_tile::@20 - __b20: - // [308] vera_layer_set_config::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [309] vera_layer_set_config::config#0 = vera_layer_mode_tile::config#25 - // [310] call vera_layer_set_config - jsr vera_layer_set_config - jmp __b27 - // vera_layer_mode_tile::@27 - __b27: - // [311] vera_layer_mode_tile::$1 = word0 vera_layer_mode_tile::mapbase_address#10 -- vwuz1=_word0_vduz2 - lda.z mapbase_address_1 - sta.z __1 - lda.z mapbase_address_1+1 - sta.z __1+1 - // [312] vera_layer_mode_tile::$17 = vera_layer_mode_tile::layer#10 << 1 -- vbuz1=vbuz2_rol_1 - lda.z layer - asl - sta.z __17 - // [313] vera_mapbase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$1 -- pwuc1_derefidx_vbuz1=vwuz2 - // mapbase - ldy.z __17 - lda.z __1 - sta vera_mapbase_offset,y - lda.z __1+1 - sta vera_mapbase_offset+1,y - // [314] vera_layer_mode_tile::$2 = byte2 vera_layer_mode_tile::mapbase_address#10 -- vbuaa=_byte2_vduz1 - lda.z mapbase_address_1+2 - // [315] vera_mapbase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$2 -- pbuc1_derefidx_vbuz1=vbuaa - ldy.z layer - sta vera_mapbase_bank,y - // [316] vera_layer_mode_tile::$18 = vera_layer_mode_tile::layer#10 << 2 -- vbuz1=vbuz2_rol_2 - lda.z layer - asl - asl - sta.z __18 - // [317] vera_mapbase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::mapbase_address#10 -- pduc1_derefidx_vbuz1=vduz2 - ldy.z __18 - lda.z mapbase_address_1 - sta vera_mapbase_address,y - lda.z mapbase_address_1+1 - sta vera_mapbase_address+1,y - lda.z mapbase_address_1+2 - sta vera_mapbase_address+2,y - lda.z mapbase_address_1+3 - sta vera_mapbase_address+3,y - // [318] vera_layer_mode_tile::mapbase_address#0 = vera_layer_mode_tile::mapbase_address#10 >> 1 -- vduz1=vduz2_ror_1 - lda.z mapbase_address_1+3 - lsr - sta.z mapbase_address+3 - lda.z mapbase_address_1+2 - ror - sta.z mapbase_address+2 - lda.z mapbase_address_1+1 - ror - sta.z mapbase_address+1 - lda.z mapbase_address_1 - ror - sta.z mapbase_address - // [319] vera_layer_mode_tile::mapbase#0 = byte1 vera_layer_mode_tile::mapbase_address#0 -- vbuxx=_byte1_vduz1 - ldx.z mapbase_address+1 - // [320] vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [321] vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0 - // [322] call vera_layer_set_mapbase - // [229] phi from vera_layer_mode_tile::@27 to vera_layer_set_mapbase [phi:vera_layer_mode_tile::@27->vera_layer_set_mapbase] - vera_layer_set_mapbase_from___b27: - // [229] phi vera_layer_set_mapbase::mapbase#3 = vera_layer_set_mapbase::mapbase#0 [phi:vera_layer_mode_tile::@27->vera_layer_set_mapbase#0] -- register_copy - // [229] phi vera_layer_set_mapbase::layer#3 = vera_layer_set_mapbase::layer#0 [phi:vera_layer_mode_tile::@27->vera_layer_set_mapbase#1] -- register_copy - jsr vera_layer_set_mapbase - jmp __b28 - // vera_layer_mode_tile::@28 - __b28: - // [323] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 -- vwuz1=_word0_vduz2 - lda.z tilebase_address_1 - sta.z __6 - lda.z tilebase_address_1+1 - sta.z __6+1 - // [324] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 -- pwuc1_derefidx_vbuz1=vwuz2 - // tilebase - ldy.z __17 - lda.z __6 - sta vera_tilebase_offset,y - lda.z __6+1 - sta vera_tilebase_offset+1,y - // [325] vera_layer_mode_tile::$7 = byte2 vera_layer_mode_tile::tilebase_address#10 -- vbuaa=_byte2_vduz1 - lda.z tilebase_address_1+2 - // [326] vera_tilebase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$7 -- pbuc1_derefidx_vbuz1=vbuaa - ldy.z layer - sta vera_tilebase_bank,y - // [327] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 -- pduc1_derefidx_vbuz1=vduz2 - ldy.z __18 - lda.z tilebase_address_1 - sta vera_tilebase_address,y - lda.z tilebase_address_1+1 - sta vera_tilebase_address+1,y - lda.z tilebase_address_1+2 - sta vera_tilebase_address+2,y - lda.z tilebase_address_1+3 - sta vera_tilebase_address+3,y - // [328] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 -- vduz1=vduz2_ror_1 - lda.z tilebase_address_1+3 - lsr - sta.z tilebase_address+3 - lda.z tilebase_address_1+2 - ror - sta.z tilebase_address+2 - lda.z tilebase_address_1+1 - ror - sta.z tilebase_address+1 - lda.z tilebase_address_1 - ror - sta.z tilebase_address - // [329] vera_layer_mode_tile::tilebase#0 = byte1 vera_layer_mode_tile::tilebase_address#0 -- vbuaa=_byte1_vduz1 - lda.z tilebase_address+1 - // [330] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK -- vbuxx=vbuaa_band_vbuc1 - and #VERA_LAYER_TILEBASE_MASK - tax - // [331] if(vera_layer_mode_tile::tilewidth#10==8) goto vera_layer_mode_tile::@23 -- vbuz1_eq_vbuc1_then_la1 - lda #8 - cmp.z tilewidth - beq __b23_from___b28 - jmp __b21 - // vera_layer_mode_tile::@21 - __b21: - // [332] if(vera_layer_mode_tile::tilewidth#10!=$10) goto vera_layer_mode_tile::@23 -- vbuz1_neq_vbuc1_then_la1 - lda #$10 - cmp.z tilewidth - bne __b23_from___b21 - jmp __b22 - // vera_layer_mode_tile::@22 - __b22: - // [333] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_TILEBASE_WIDTH_16 - tax - // [334] phi from vera_layer_mode_tile::@21 vera_layer_mode_tile::@22 vera_layer_mode_tile::@28 to vera_layer_mode_tile::@23 [phi:vera_layer_mode_tile::@21/vera_layer_mode_tile::@22/vera_layer_mode_tile::@28->vera_layer_mode_tile::@23] - __b23_from___b21: - __b23_from___b22: - __b23_from___b28: - // [334] phi vera_layer_mode_tile::tilebase#12 = vera_layer_mode_tile::tilebase#1 [phi:vera_layer_mode_tile::@21/vera_layer_mode_tile::@22/vera_layer_mode_tile::@28->vera_layer_mode_tile::@23#0] -- register_copy - jmp __b23 - // vera_layer_mode_tile::@23 - __b23: - // [335] if(vera_layer_mode_tile::tileheight#10==8) goto vera_layer_mode_tile::@26 -- vbuz1_eq_vbuc1_then_la1 - lda #8 - cmp.z tileheight - beq __b26_from___b23 - jmp __b24 - // vera_layer_mode_tile::@24 - __b24: - // [336] if(vera_layer_mode_tile::tileheight#10!=$10) goto vera_layer_mode_tile::@26 -- vbuz1_neq_vbuc1_then_la1 - lda #$10 - cmp.z tileheight - bne __b26_from___b24 - jmp __b25 - // vera_layer_mode_tile::@25 - __b25: - // [337] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_TILEBASE_HEIGHT_16 - tax - // [338] phi from vera_layer_mode_tile::@23 vera_layer_mode_tile::@24 vera_layer_mode_tile::@25 to vera_layer_mode_tile::@26 [phi:vera_layer_mode_tile::@23/vera_layer_mode_tile::@24/vera_layer_mode_tile::@25->vera_layer_mode_tile::@26] - __b26_from___b23: - __b26_from___b24: - __b26_from___b25: - // [338] phi vera_layer_mode_tile::tilebase#10 = vera_layer_mode_tile::tilebase#12 [phi:vera_layer_mode_tile::@23/vera_layer_mode_tile::@24/vera_layer_mode_tile::@25->vera_layer_mode_tile::@26#0] -- register_copy - jmp __b26 - // vera_layer_mode_tile::@26 - __b26: - // [339] vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [340] vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10 - // [341] call vera_layer_set_tilebase - jsr vera_layer_set_tilebase - jmp __breturn - // vera_layer_mode_tile::@return - __breturn: - // [342] return - rts - // vera_layer_mode_tile::@18 - __b18: - // [343] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_128 - tax - jmp __b20_from___b18 - // vera_layer_mode_tile::@17 - __b17: - // [344] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_64 - tax - jmp __b20_from___b17 - // vera_layer_mode_tile::@11 - __b11: - // [345] vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_128 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_WIDTH_128 - tax - // [346] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #8 - ldy.z layer - sta vera_layer_rowshift,y - // [347] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - lda.z layer - asl - // [348] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 -- pwuc1_derefidx_vbuaa=vwuc2 - tay - lda #<$100 - sta vera_layer_rowskip,y - lda #>$100 - sta vera_layer_rowskip+1,y - jmp __b13_from___b11 - // vera_layer_mode_tile::@10 - __b10: - // [349] vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_64 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_WIDTH_64 - tax - // [350] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #7 - ldy.z layer - sta vera_layer_rowshift,y - // [351] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - lda.z layer - asl - // [352] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 -- pwuc1_derefidx_vbuaa=vbuc2 - tay - lda #$80 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - jmp __b13_from___b10 - // vera_layer_mode_tile::@9 - __b9: - // [353] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #6 - ldy.z layer - sta vera_layer_rowshift,y - // [354] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - lda.z layer - asl - // [355] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 -- pwuc1_derefidx_vbuaa=vbuc2 - tay - lda #$40 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - jmp __b13_from___b9 -} - // clrscr -// clears the screen and moves the cursor to the upper left-hand corner of the screen. -clrscr: { - .label __1 = $53 - .label line_text = 6 - .label color = $20 - .label l = $a - // [356] clrscr::line_text#0 = (char *)CONIO_SCREEN_TEXT#17 -- pbuz1=pbuz2 - lda.z CONIO_SCREEN_TEXT_1 - sta.z line_text - lda.z CONIO_SCREEN_TEXT_1+1 - sta.z line_text+1 - // [357] vera_layer_get_backcolor::layer#0 = conio_screen_layer -- vbuyy=vbuz1 - ldy.z conio_screen_layer - // [358] call vera_layer_get_backcolor - jsr vera_layer_get_backcolor - // [359] vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 - jmp __b7 - // clrscr::@7 - __b7: - // [360] clrscr::$0 = vera_layer_get_backcolor::return#0 - // [361] clrscr::$1 = clrscr::$0 << 4 -- vbuz1=vbuaa_rol_4 - asl - asl - asl - asl - sta.z __1 - // [362] vera_layer_get_textcolor::layer#0 = conio_screen_layer -- vbuyy=vbuz1 - ldy.z conio_screen_layer - // [363] call vera_layer_get_textcolor - jsr vera_layer_get_textcolor - // [364] vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 - jmp __b8 - // clrscr::@8 - __b8: - // [365] clrscr::$2 = vera_layer_get_textcolor::return#0 - // [366] clrscr::color#0 = clrscr::$1 | clrscr::$2 -- vbuz1=vbuz2_bor_vbuaa - ora.z __1 - sta.z color - // [367] phi from clrscr::@8 to clrscr::@1 [phi:clrscr::@8->clrscr::@1] - __b1_from___b8: - // [367] phi clrscr::line_text#2 = clrscr::line_text#0 [phi:clrscr::@8->clrscr::@1#0] -- register_copy - // [367] phi clrscr::l#2 = 0 [phi:clrscr::@8->clrscr::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z l - jmp __b1 - // clrscr::@1 - __b1: - // [368] if(clrscr::l#2clrscr::@4] - __b4_from___b2: - // [381] phi clrscr::c#2 = 0 [phi:clrscr::@2->clrscr::@4#0] -- vbuyy=vbuc1 - ldy #0 - jmp __b4 - // clrscr::@4 - __b4: - // [382] if(clrscr::c#2clrscr::@1] - __b1_from___b6: - // [367] phi clrscr::line_text#2 = clrscr::line_text#1 [phi:clrscr::@6->clrscr::@1#0] -- register_copy - // [367] phi clrscr::l#2 = clrscr::l#1 [phi:clrscr::@6->clrscr::@1#1] -- register_copy - jmp __b1 - // clrscr::@5 - __b5: - // [385] *VERA_DATA0 = ' ' -- _deref_pbuc1=vbuc2 - lda #' ' - sta VERA_DATA0 - // [386] *VERA_DATA0 = clrscr::color#0 -- _deref_pbuc1=vbuz1 - lda.z color - sta VERA_DATA0 - // [387] clrscr::c#1 = ++ clrscr::c#2 -- vbuyy=_inc_vbuyy - iny - // [381] phi from clrscr::@5 to clrscr::@4 [phi:clrscr::@5->clrscr::@4] - __b4_from___b5: - // [381] phi clrscr::c#2 = clrscr::c#1 [phi:clrscr::@5->clrscr::@4#0] -- register_copy - jmp __b4 -} - // memcpy_to_vram -// Copy block of memory (from RAM to VRAM) -// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination in VRAM. -// - vbank: Which 64K VRAM bank to put data into (0/1) -// - vdest: The destination address in VRAM -// - src: The source address in RAM -// - num: The number of bytes to copy -// void memcpy_to_vram(char vbank, __zp(8) void *vdest, void *src, unsigned int num) -memcpy_to_vram: { - // Transfer the data - .label end = main.tiles+$100 - .label s = 4 - .label vdest = 8 - // [389] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // [390] memcpy_to_vram::$0 = byte0 memcpy_to_vram::vdest#2 -- vbuaa=_byte0_pvoz1 - lda.z vdest - // [391] *VERA_ADDRX_L = memcpy_to_vram::$0 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // [392] memcpy_to_vram::$1 = byte1 memcpy_to_vram::vdest#2 -- vbuaa=_byte1_pvoz1 - lda.z vdest+1 - // [393] *VERA_ADDRX_M = memcpy_to_vram::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // [394] *VERA_ADDRX_H = VERA_INC_1 -- _deref_pbuc1=vbuc2 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // [395] phi from memcpy_to_vram to memcpy_to_vram::@1 [phi:memcpy_to_vram->memcpy_to_vram::@1] - __b1_from_memcpy_to_vram: - // [395] phi memcpy_to_vram::s#2 = (char *)(void *)main::tiles [phi:memcpy_to_vram->memcpy_to_vram::@1#0] -- pbuz1=pbuc1 - lda #main.tiles - sta.z s+1 - jmp __b1 - // memcpy_to_vram::@1 - __b1: - // [396] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2 -- pbuz1_neq_pbuc1_then_la1 - lda.z s+1 - cmp #>end - bne __b2 - lda.z s - cmp #memcpy_to_vram::@1] - __b1_from___b2: - // [395] phi memcpy_to_vram::s#2 = memcpy_to_vram::s#1 [phi:memcpy_to_vram::@2->memcpy_to_vram::@1#0] -- register_copy - jmp __b1 -} - // vera_tile_area -// --- TILE FUNCTIONS --- -// void vera_tile_area(char layer, __zp($24) unsigned int tileindex, __zp($29) char x, __zp($a) char y, __zp($e) char w, __zp($20) char h, __zp($28) char hflip, __zp($1b) char vflip, char offset) -vera_tile_area: { - .label __4 = 8 - .label __10 = 8 - .label mapbase = $14 - .label shift = $2a - .label rowskip = $1e - .label hflip = $28 - .label vflip = $1b - .label index_l = $1c - .label index_h = $1b - .label r = $b - .label tileindex = $24 - .label x = $29 - .label y = $a - .label h = $20 - .label w = $e - // [401] vera_tile_area::mapbase#0 = *vera_mapbase_address -- vduz1=_deref_pduc1 - lda vera_mapbase_address - sta.z mapbase - lda vera_mapbase_address+1 - sta.z mapbase+1 - lda vera_mapbase_address+2 - sta.z mapbase+2 - lda vera_mapbase_address+3 - sta.z mapbase+3 - // [402] vera_tile_area::shift#0 = *vera_layer_rowshift -- vbuz1=_deref_pbuc1 - lda vera_layer_rowshift - sta.z shift - // [403] vera_tile_area::rowskip#0 = 1 << vera_tile_area::shift#0 -- vwuz1=vwuc1_rol_vbuz2 - ldy.z shift - lda #<1 - sta.z rowskip - lda #>1+1 - sta.z rowskip+1 - cpy #0 - beq !e+ - !: - asl.z rowskip - rol.z rowskip+1 - dey - bne !- - !e: - // [404] vera_tile_area::hflip#0 = *vera_layer_hflip -- vbuz1=_deref_pbuc1 - lda vera_layer_hflip - sta.z hflip - // [405] vera_tile_area::vflip#0 = *vera_layer_vflip -- vbuz1=_deref_pbuc1 - lda vera_layer_vflip - sta.z vflip - // [406] vera_tile_area::index_l#0 = byte0 vera_tile_area::tileindex#5 -- vbuz1=_byte0_vwuz2 - lda.z tileindex - sta.z index_l - // [407] vera_tile_area::index_h#0 = byte1 vera_tile_area::tileindex#5 -- vbuaa=_byte1_vwuz1 - lda.z tileindex+1 - // [408] vera_tile_area::index_h#1 = vera_tile_area::index_h#0 | vera_tile_area::hflip#0 -- vbuaa=vbuaa_bor_vbuz1 - ora.z hflip - // [409] vera_tile_area::index_h#2 = vera_tile_area::index_h#1 | vera_tile_area::vflip#0 -- vbuz1=vbuaa_bor_vbuz1 - ora.z index_h - sta.z index_h - // [410] vera_tile_area::$10 = (unsigned int)vera_tile_area::y#5 -- vwuz1=_word_vbuz2 - lda.z y - sta.z __10 - lda #0 - sta.z __10+1 - // [411] vera_tile_area::$4 = vera_tile_area::$10 << vera_tile_area::shift#0 -- vwuz1=vwuz1_rol_vbuz2 - ldy.z shift - beq !e+ - !: - asl.z __4 - rol.z __4+1 - dey - bne !- - !e: - // [412] vera_tile_area::mapbase#1 = vera_tile_area::mapbase#0 + vera_tile_area::$4 -- vduz1=vduz1_plus_vwuz2 - lda.z mapbase - clc - adc.z __4 - sta.z mapbase - lda.z mapbase+1 - adc.z __4+1 - sta.z mapbase+1 - lda.z mapbase+2 - adc #0 - sta.z mapbase+2 - lda.z mapbase+3 - adc #0 - sta.z mapbase+3 - // [413] vera_tile_area::$5 = vera_tile_area::x#5 << 1 -- vbuaa=vbuz1_rol_1 - lda.z x - asl - // [414] vera_tile_area::mapbase#2 = vera_tile_area::mapbase#1 + vera_tile_area::$5 -- vduz1=vduz1_plus_vbuaa - clc - adc.z mapbase - sta.z mapbase - lda.z mapbase+1 - adc #0 - sta.z mapbase+1 - lda.z mapbase+2 - adc #0 - sta.z mapbase+2 - lda.z mapbase+3 - adc #0 - sta.z mapbase+3 - // [415] phi from vera_tile_area to vera_tile_area::@1 [phi:vera_tile_area->vera_tile_area::@1] - __b1_from_vera_tile_area: - // [415] phi vera_tile_area::mapbase#10 = vera_tile_area::mapbase#2 [phi:vera_tile_area->vera_tile_area::@1#0] -- register_copy - // [415] phi vera_tile_area::r#2 = 0 [phi:vera_tile_area->vera_tile_area::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z r - jmp __b1 - // vera_tile_area::@1 - __b1: - // [416] if(vera_tile_area::r#2vera_tile_area::@2] - __b2_from_vera_vram_address01: - // [426] phi vera_tile_area::c#2 = 0 [phi:vera_tile_area::vera_vram_address01->vera_tile_area::@2#0] -- vbuyy=vbuc1 - ldy #0 - jmp __b2 - // vera_tile_area::@2 - __b2: - // [427] if(vera_tile_area::c#2vera_tile_area::@1] - __b1_from___b4: - // [415] phi vera_tile_area::mapbase#10 = vera_tile_area::mapbase#3 [phi:vera_tile_area::@4->vera_tile_area::@1#0] -- register_copy - // [415] phi vera_tile_area::r#2 = vera_tile_area::r#1 [phi:vera_tile_area::@4->vera_tile_area::@1#1] -- register_copy - jmp __b1 - // vera_tile_area::@3 - __b3: - // [430] *VERA_DATA0 = vera_tile_area::index_l#0 -- _deref_pbuc1=vbuz1 - lda.z index_l - sta VERA_DATA0 - // [431] *VERA_DATA0 = vera_tile_area::index_h#2 -- _deref_pbuc1=vbuz1 - lda.z index_h - sta VERA_DATA0 - // [432] vera_tile_area::c#1 = ++ vera_tile_area::c#2 -- vbuyy=_inc_vbuyy - iny - // [426] phi from vera_tile_area::@3 to vera_tile_area::@2 [phi:vera_tile_area::@3->vera_tile_area::@2] - __b2_from___b3: - // [426] phi vera_tile_area::c#2 = vera_tile_area::c#1 [phi:vera_tile_area::@3->vera_tile_area::@2#0] -- register_copy - jmp __b2 -} - // printf_str -/// Print a NUL-terminated string -// void printf_str(void (*putc)(char), __zp($1e) const char *s) -printf_str: { - .label s = $1e - // [434] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] - __b1_from_printf_str: - __b1_from___b2: - // [434] phi printf_str::s#9 = printf_str::s#10 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy - jmp __b1 - // printf_str::@1 - __b1: - // [435] printf_str::c#1 = *printf_str::s#9 -- vbuaa=_deref_pbuz1 - ldy #0 - lda (s),y - // [436] printf_str::s#0 = ++ printf_str::s#9 -- pbuz1=_inc_pbuz1 - inc.z s - bne !+ - inc.z s+1 - !: - // [437] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b2 - jmp __breturn - // printf_str::@return - __breturn: - // [438] return - rts - // printf_str::@2 - __b2: - // [439] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa - pha - // [440] callexecute cputc -- call_vprc1 - jsr cputc - // sideeffect stackpullpadding(1) -- _stackpullpadding_1 - pla - jmp __b1_from___b2 -} - // kbhit -// Return true if there's a key waiting, return false if not -kbhit: { - .label chptr = ch - .label IN_DEV = $28a - // Current input device number - .label GETIN = $ffe4 - .label ch = $38 - // [442] kbhit::ch = 0 -- vbuz1=vbuc1 - lda #0 - sta.z ch - // kickasm( uses kbhit::chptr uses kbhit::IN_DEV uses kbhit::GETIN) {{ jsr _kbhit bne L3 jmp continue1 .var via1 = $9f60 //VIA#1 .var d1pra = via1+1 _kbhit: ldy d1pra // The count of keys pressed is stored in RAM bank 0. stz d1pra // Set d1pra to zero to access RAM bank 0. lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). sty d1pra // Set d1pra to previous value. rts L3: ldy IN_DEV // Save current input device stz IN_DEV // Keyboard phy jsr GETIN // Read char, and return in .A ply sta chptr // Store the character read in ch sty IN_DEV // Restore input device ldx #>$0000 rts continue1: nop }} - // CBM GETIN API - jsr _kbhit - bne L3 - - jmp continue1 - - .var via1 = $9f60 //VIA#1 - .var d1pra = via1+1 - - _kbhit: - ldy d1pra // The count of keys pressed is stored in RAM bank 0. - stz d1pra // Set d1pra to zero to access RAM bank 0. - lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). - sty d1pra // Set d1pra to previous value. - rts - - L3: - ldy IN_DEV // Save current input device - stz IN_DEV // Keyboard - phy - jsr GETIN // Read char, and return in .A - ply - sta chptr // Store the character read in ch - sty IN_DEV // Restore input device - ldx #>$0000 - rts - - continue1: - nop - - // [444] kbhit::return#0 = kbhit::ch -- vbuaa=vbuz1 - lda.z ch - jmp __breturn - // kbhit::@return - __breturn: - // [445] kbhit::return#1 = kbhit::return#0 - // [446] return - rts -} - // vera_layer_set_text_color_mode -// Set the configuration of the layer text color mode. -// - layer: Value of 0 or 1. -// - color_mode: Specifies the color mode to be VERA_LAYER_CONFIG_16 or VERA_LAYER_CONFIG_256 for text mode. -// void vera_layer_set_text_color_mode(char layer, char color_mode) -vera_layer_set_text_color_mode: { - .label addr = $22 - // [447] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) -- pbuz1=_deref_qbuc1 - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER - sta.z addr - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER+1 - sta.z addr+1 - // [448] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C -- _deref_pbuz1=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_CONFIG_256C^$ff - ldy #0 - and (addr),y - ldy #0 - sta (addr),y - // [449] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 -- _deref_pbuz1=_deref_pbuz1 - ldy #0 - lda (addr),y - ldy #0 - sta (addr),y - jmp __breturn - // vera_layer_set_text_color_mode::@return - __breturn: - // [450] return - rts -} - // vera_layer_get_mapbase_bank -// Get the map base bank of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Bank in vera vram. -// __register(X) char vera_layer_get_mapbase_bank(__register(Y) char layer) -vera_layer_get_mapbase_bank: { - // [451] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0] -- vbuxx=pbuc1_derefidx_vbuyy - ldx vera_mapbase_bank,y - jmp __breturn - // vera_layer_get_mapbase_bank::@return - __breturn: - // [452] return - rts -} - // vera_layer_get_mapbase_offset -// Get the map base lower 16-bit address (offset) of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Offset in vera vram of the specified bank. -// __zp($10) unsigned int vera_layer_get_mapbase_offset(__register(A) char layer) -vera_layer_get_mapbase_offset: { - .label return = $10 - // [453] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [454] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda vera_mapbase_offset,y - sta.z return - lda vera_mapbase_offset+1,y - sta.z return+1 - jmp __breturn - // vera_layer_get_mapbase_offset::@return - __breturn: - // [455] return - rts -} - // vera_layer_get_rowshift -// Get the bit shift value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Rowshift value to calculate fast from a y value to line offset in tile mode. -// __register(A) char vera_layer_get_rowshift(__register(Y) char layer) -vera_layer_get_rowshift: { - // [456] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0] -- vbuaa=pbuc1_derefidx_vbuyy - lda vera_layer_rowshift,y - jmp __breturn - // vera_layer_get_rowshift::@return - __breturn: - // [457] return - rts -} - // vera_layer_get_rowskip -// Get the value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Skip value to calculate fast from a y value to line offset in tile mode. -// __zp($35) unsigned int vera_layer_get_rowskip(__register(A) char layer) -vera_layer_get_rowskip: { - .label return = $35 - // [458] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [459] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda vera_layer_rowskip,y - sta.z return - lda vera_layer_rowskip+1,y - sta.z return+1 - jmp __breturn - // vera_layer_get_rowskip::@return - __breturn: - // [460] return - rts -} - // cscroll -// Scroll the entire screen if the cursor is beyond the last line -cscroll: { - // [461] if(conio_cursor_y[conio_screen_layer]cscroll::@3] - __b3_from___b2: - jmp __b3 - // cscroll::@3 - __b3: - jmp __breturn - // cscroll::@return - __breturn: - // [465] return - rts - // [466] phi from cscroll::@1 to cscroll::@4 [phi:cscroll::@1->cscroll::@4] - __b4_from___b1: - jmp __b4 - // cscroll::@4 - __b4: - // [467] call insertup - jsr insertup - jmp __b5 - // cscroll::@5 - __b5: - // [468] gotoxy::y#2 = conio_screen_height - 1 -- vbuxx=vbuz1_minus_1 - ldx.z conio_screen_height - dex - // [469] call gotoxy - // [234] phi from cscroll::@5 to gotoxy [phi:cscroll::@5->gotoxy] - gotoxy_from___b5: - // [234] phi gotoxy::y#4 = gotoxy::y#2 [phi:cscroll::@5->gotoxy#0] -- register_copy - jsr gotoxy - jmp __breturn -} - // vera_layer_set_config -// Set the configuration of the layer. -// - layer: Value of 0 or 1. -// - config: Specifies the modes which are specified using T256C / 'Bitmap Mode' / 'Color Depth'. -// void vera_layer_set_config(__register(A) char layer, __register(X) char config) -vera_layer_set_config: { - .label addr = $22 - // [470] vera_layer_set_config::$0 = vera_layer_set_config::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [471] vera_layer_set_config::addr#0 = vera_layer_config[vera_layer_set_config::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // [472] *vera_layer_set_config::addr#0 = vera_layer_set_config::config#0 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - jmp __breturn - // vera_layer_set_config::@return - __breturn: - // [473] return - rts -} - // vera_layer_set_tilebase -// Set the base of the tiles for the layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - tilebase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// void vera_layer_set_tilebase(__register(A) char layer, __register(X) char tilebase) -vera_layer_set_tilebase: { - .label addr = $22 - // [474] vera_layer_set_tilebase::$0 = vera_layer_set_tilebase::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [475] vera_layer_set_tilebase::addr#0 = vera_layer_tilebase[vera_layer_set_tilebase::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_tilebase,y - sta.z addr - lda vera_layer_tilebase+1,y - sta.z addr+1 - // [476] *vera_layer_set_tilebase::addr#0 = vera_layer_set_tilebase::tilebase#0 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - jmp __breturn - // vera_layer_set_tilebase::@return - __breturn: - // [477] return - rts -} - // vera_layer_get_backcolor -// Get the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_backcolor(__register(Y) char layer) -vera_layer_get_backcolor: { - // [478] vera_layer_get_backcolor::return#1 = vera_layer_backcolor[vera_layer_get_backcolor::layer#0] -- vbuaa=pbuc1_derefidx_vbuyy - lda vera_layer_backcolor,y - jmp __breturn - // vera_layer_get_backcolor::@return - __breturn: - // [479] return - rts -} - // vera_layer_get_textcolor -// Get the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_textcolor(__register(Y) char layer) -vera_layer_get_textcolor: { - // [480] vera_layer_get_textcolor::return#1 = vera_layer_textcolor[vera_layer_get_textcolor::layer#0] -- vbuaa=pbuc1_derefidx_vbuyy - lda vera_layer_textcolor,y - jmp __breturn - // vera_layer_get_textcolor::@return - __breturn: - // [481] return - rts -} - // insertup -// Insert a new line, and scroll the upper part of the screen up. -insertup: { - .label cy = $e - .label width = $b - .label line = 8 - .label start = 8 - // [482] insertup::cy#0 = conio_cursor_y[conio_screen_layer] -- vbuz1=pbuc1_derefidx_vbuz2 - ldy.z conio_screen_layer - lda conio_cursor_y,y - sta.z cy - // [483] insertup::width#0 = conio_screen_width << 1 -- vbuz1=vbuz2_rol_1 - lda.z conio_screen_width - asl - sta.z width - // [484] phi from insertup to insertup::@1 [phi:insertup->insertup::@1] - __b1_from_insertup: - // [484] phi insertup::i#2 = 1 [phi:insertup->insertup::@1#0] -- vbuxx=vbuc1 - ldx #1 - jmp __b1 - // insertup::@1 - __b1: - // [485] if(insertup::i#2<=insertup::cy#0) goto insertup::@2 -- vbuxx_le_vbuz1_then_la1 - lda.z cy - stx.z $ff - cmp.z $ff - bcs __b2 - // [486] phi from insertup::@1 to insertup::@3 [phi:insertup::@1->insertup::@3] - __b3_from___b1: - jmp __b3 - // insertup::@3 - __b3: - // [487] call clearline - jsr clearline - jmp __breturn - // insertup::@return - __breturn: - // [488] return - rts - // insertup::@2 - __b2: - // [489] insertup::$3 = insertup::i#2 - 1 -- vbuaa=vbuxx_minus_1 - txa - sec - sbc #1 - // [490] insertup::line#0 = insertup::$3 << conio_rowshift -- vwuz1=vbuaa_rol_vbuz2 - ldy.z conio_rowshift - sta.z line - lda #0 - sta.z line+1 - cpy #0 - beq !e+ - !: - asl.z line - rol.z line+1 - dey - bne !- - !e: - // [491] insertup::start#0 = CONIO_SCREEN_TEXT#12 + insertup::line#0 -- pbuz1=pbuz2_plus_vwuz1 - clc - lda.z start - adc.z CONIO_SCREEN_TEXT - sta.z start - lda.z start+1 - adc.z CONIO_SCREEN_TEXT+1 - sta.z start+1 - // [492] memcpy_in_vram::src#0 = insertup::start#0 + conio_rowskip -- pbuz1=pbuz2_plus_vwuz3 - lda.z start - clc - adc.z conio_rowskip - sta.z memcpy_in_vram.src - lda.z start+1 - adc.z conio_rowskip+1 - sta.z memcpy_in_vram.src+1 - // [493] memcpy_in_vram::dest#0 = (void *)insertup::start#0 - // [494] memcpy_in_vram::num#0 = insertup::width#0 -- vwuz1=vbuz2 - lda.z width - sta.z memcpy_in_vram.num - lda #0 - sta.z memcpy_in_vram.num+1 - // [495] memcpy_in_vram::src#4 = (void *)memcpy_in_vram::src#0 - // [496] call memcpy_in_vram - // [266] phi from insertup::@2 to memcpy_in_vram [phi:insertup::@2->memcpy_in_vram] - memcpy_in_vram_from___b2: - // [266] phi memcpy_in_vram::num#4 = memcpy_in_vram::num#0 [phi:insertup::@2->memcpy_in_vram#0] -- register_copy - // [266] phi memcpy_in_vram::dest_bank#3 = 0 [phi:insertup::@2->memcpy_in_vram#1] -- vbuz1=vbuc1 - lda #0 - sta.z memcpy_in_vram.dest_bank - // [266] phi memcpy_in_vram::dest#3 = memcpy_in_vram::dest#0 [phi:insertup::@2->memcpy_in_vram#2] -- register_copy - // [266] phi memcpy_in_vram::src_bank#3 = 0 [phi:insertup::@2->memcpy_in_vram#3] -- vbuyy=vbuc1 - ldy #0 - // [266] phi memcpy_in_vram::src#3 = memcpy_in_vram::src#4 [phi:insertup::@2->memcpy_in_vram#4] -- register_copy - jsr memcpy_in_vram - jmp __b4 - // insertup::@4 - __b4: - // [497] insertup::i#1 = ++ insertup::i#2 -- vbuxx=_inc_vbuxx - inx - // [484] phi from insertup::@4 to insertup::@1 [phi:insertup::@4->insertup::@1] - __b1_from___b4: - // [484] phi insertup::i#2 = insertup::i#1 [phi:insertup::@4->insertup::@1#0] -- register_copy - jmp __b1 -} - // clearline -clearline: { - .label addr = $c - .label c = 2 - // [498] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // [499] clearline::$5 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [500] clearline::addr#0 = CONIO_SCREEN_TEXT#12 + conio_line_text[clearline::$5] -- pbuz1=pbuz2_plus_pwuc1_derefidx_vbuaa - // Set address - tay - clc - lda.z CONIO_SCREEN_TEXT - adc conio_line_text,y - sta.z addr - lda.z CONIO_SCREEN_TEXT+1 - adc conio_line_text+1,y - sta.z addr+1 - // [501] clearline::$1 = byte0 clearline::addr#0 -- vbuaa=_byte0_pbuz1 - lda.z addr - // [502] *VERA_ADDRX_L = clearline::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_L - // [503] clearline::$2 = byte1 clearline::addr#0 -- vbuaa=_byte1_pbuz1 - lda.z addr+1 - // [504] *VERA_ADDRX_M = clearline::$2 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // [505] *VERA_ADDRX_H = VERA_INC_1 -- _deref_pbuc1=vbuc2 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // [506] vera_layer_get_color::layer#1 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [507] call vera_layer_get_color - // [247] phi from clearline to vera_layer_get_color [phi:clearline->vera_layer_get_color] - vera_layer_get_color_from_clearline: - // [247] phi vera_layer_get_color::layer#2 = vera_layer_get_color::layer#1 [phi:clearline->vera_layer_get_color#0] -- register_copy - jsr vera_layer_get_color - // [508] vera_layer_get_color::return#4 = vera_layer_get_color::return#3 - jmp __b4 - // clearline::@4 - __b4: - // [509] clearline::color#0 = vera_layer_get_color::return#4 -- vbuxx=vbuaa - tax - // [510] phi from clearline::@4 to clearline::@1 [phi:clearline::@4->clearline::@1] - __b1_from___b4: - // [510] phi clearline::c#2 = 0 [phi:clearline::@4->clearline::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z c - lda #>0 - sta.z c+1 - jmp __b1 - // clearline::@1 - __b1: - // [511] if(clearline::c#2clearline::@1] - __b1_from___b2: - // [510] phi clearline::c#2 = clearline::c#1 [phi:clearline::@2->clearline::@1#0] -- register_copy - jmp __b1 -} - // File Data -.segment Data - VERA_LAYER_WIDTH: .word $20, $40, $80, $100 - VERA_LAYER_HEIGHT: .word $20, $40, $80, $100 - /// --- VERA function encapsulation --- - vera_mapbase_offset: .word 0, 0 - vera_mapbase_bank: .byte 0, 0 - vera_mapbase_address: .dword 0, 0 - vera_tilebase_offset: .word 0, 0 - vera_tilebase_bank: .byte 0, 0 - vera_tilebase_address: .dword 0, 0 - vera_layer_rowshift: .byte 0, 0 - vera_layer_rowskip: .word 0, 0 - vera_layer_hflip: .byte 0, 4 - vera_layer_vflip: .byte 0, 8 - vera_layer_config: .word VERA_L0_CONFIG, VERA_L1_CONFIG - vera_layer_enable: .byte VERA_LAYER0_ENABLE, VERA_LAYER1_ENABLE - vera_layer_mapbase: .word VERA_L0_MAPBASE, VERA_L1_MAPBASE - vera_layer_tilebase: .word VERA_L0_TILEBASE, VERA_L1_TILEBASE - vera_layer_textcolor: .byte WHITE, WHITE - vera_layer_backcolor: .byte BLUE, BLUE - // The number of bytes on the screen - // The current cursor x-position - conio_cursor_x: .byte 0, 0 - // The current cursor y-position - conio_cursor_y: .byte 0, 0 - // The current text cursor line start - conio_line_text: .word 0, 0 - // Is scrolling enabled when outputting beyond the end of the screen (1: yes, 0: no). - // If disabled the cursor just moves back to (0,0) instead - conio_scroll_enable: .byte 1, 1 - -ASSEMBLER OPTIMIZATIONS -Removing instruction jmp __init1 -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b3 -Removing instruction jmp __b4 -Removing instruction jmp __b5 -Removing instruction jmp __b6 -Removing instruction jmp __b7 -Removing instruction jmp __b8 -Removing instruction jmp __b9 -Removing instruction jmp __b2 -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b7 -Removing instruction jmp __b2 -Removing instruction jmp __b3 -Removing instruction jmp __b4 -Removing instruction jmp __breturn -Removing instruction jmp __b6 -Removing instruction jmp __b1 -Removing instruction jmp __b19 -Removing instruction jmp __b20 -Removing instruction jmp textcolor1 -Removing instruction jmp bgcolor1 -Removing instruction jmp __b16 -Removing instruction jmp __b21 -Removing instruction jmp __b22 -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __b3 -Removing instruction jmp __b23 -Removing instruction jmp __b4 -Removing instruction jmp __b5 -Removing instruction jmp __b6 -Removing instruction jmp __b24 -Removing instruction jmp __b7 -Removing instruction jmp __b8 -Removing instruction jmp __b25 -Removing instruction jmp __b26 -Removing instruction jmp __b27 -Removing instruction jmp __b28 -Removing instruction jmp __b29 -Removing instruction jmp __b30 -Removing instruction jmp __b31 -Removing instruction jmp __b32 -Removing instruction jmp vera_layer_show1 -Removing instruction jmp __b9 -Removing instruction jmp __b33 -Removing instruction jmp __b10 -Removing instruction jmp __b11 -Removing instruction jmp __b12 -Removing instruction jmp __b34 -Removing instruction jmp __b13 -Removing instruction jmp __b14 -Removing instruction jmp __b35 -Removing instruction jmp __b15 -Removing instruction jmp vera_layer_hide1 -Removing instruction jmp __b17 -Removing instruction jmp __b36 -Removing instruction jmp __b37 -Removing instruction jmp __b38 -Removing instruction jmp textcolor2 -Removing instruction jmp bgcolor2 -Removing instruction jmp __b18 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b3 -Removing instruction jmp __b4 -Removing instruction jmp vera_layer_get_width1 -Removing instruction jmp vera_layer_get_width1___breturn -Removing instruction jmp __b1 -Removing instruction jmp __b5 -Removing instruction jmp __b6 -Removing instruction jmp vera_layer_get_height1 -Removing instruction jmp vera_layer_get_height1___breturn -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b4 -Removing instruction jmp __b1 -Removing instruction jmp __b3 -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __b3 -Removing instruction jmp __b4 -Removing instruction jmp __b5 -Removing instruction jmp __b6 -Removing instruction jmp __b7 -Removing instruction jmp __b8 -Removing instruction jmp __b12 -Removing instruction jmp __b13 -Removing instruction jmp __b14 -Removing instruction jmp __b15 -Removing instruction jmp __b16 -Removing instruction jmp __b19 -Removing instruction jmp __b20 -Removing instruction jmp __b27 -Removing instruction jmp __b28 -Removing instruction jmp __b21 -Removing instruction jmp __b22 -Removing instruction jmp __b23 -Removing instruction jmp __b24 -Removing instruction jmp __b25 -Removing instruction jmp __b26 -Removing instruction jmp __breturn -Removing instruction jmp __b7 -Removing instruction jmp __b8 -Removing instruction jmp __b1 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b4 -Removing instruction jmp __b6 -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b2 -Removing instruction jmp __b4 -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b4 -Removing instruction jmp __b5 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b4 -Removing instruction jmp __b4 -Removing instruction jmp __b1 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Succesful ASM optimization Pass5NextJumpElimination -Removing instruction lda #0 -Removing instruction lda #>0 -Removing instruction lda #<0 -Removing instruction lda #>0 -Removing instruction lda #0 -Removing instruction lda #<0 -Removing instruction lda #>0 -Removing instruction lda.z __16+1 -Removing instruction lda #8 -Removing instruction lda #$10 -Removing instruction lda #0 -Removing instruction lda #>0 -Removing instruction lda #0 -Removing instruction lda #<0 -Removing instruction lda #>0 -Removing instruction lda #>0 -Replacing instruction ldx #0 with TAX -Removing instruction lda #1 -Removing instruction lda #0 -Removing instruction lda #<0 -Removing instruction lda #>0 -Removing instruction lda #0 -Removing instruction lda #<0 -Removing instruction lda #>0 -Replacing instruction lda #0 with TXA -Removing instruction lda #2 -Removing instruction lda #0 -Removing instruction lda #<0 -Removing instruction lda #>0 -Removing instruction lda #8 -Removing instruction lda #0 -Removing instruction lda #8 -Removing instruction lda #0 -Replacing instruction ldy.z conio_screen_layer with TAY -Removing instruction ldy.z conio_screen_layer -Removing instruction lda #>0 -Replacing instruction lda.z layer with TYA -Replacing instruction ldy.z __17 with TAY -Replacing instruction lda.z layer with TYA -Replacing instruction ldy.z __18 with TAY -Removing instruction lda.z mapbase_address_1+3 -Removing instruction lda.z tilebase_address_1+3 -Replacing instruction lda.z layer with TYA -Replacing instruction lda.z layer with TYA -Replacing instruction lda.z layer with TYA -Removing instruction lda #0 -Removing instruction ldy.z conio_screen_layer -Replacing instruction lda.z conio_screen_layer with TYA -Removing instruction lda #0 -Replacing instruction ldy.z shift with TAY -Removing instruction ldy #0 -Removing instruction ldy #0 -Removing instruction ldy #0 -Replacing instruction ldy #0 with TAY -Removing instruction lda #>0 -Succesful ASM optimization Pass5UnnecesaryLoadElimination -Replacing label __b1_from___b9 with __b1 -Replacing label __b1_from___b7 with __b1 -Replacing label __b2_from___b2 with __b2 -Replacing label __b1_from___b23 with __b1 -Replacing label __b6_from___b24 with __b6 -Replacing label __b5_from___b7 with __b5 -Replacing label __b9_from___b33 with __b9 -Replacing label __b12_from___b34 with __b12 -Replacing label __b11_from___b13 with __b11 -Replacing label __b14_from___b35 with __b14 -Replacing label __b4_from_gotoxy with __b1 -Replacing label __breturn_from___b1 with __breturn -Replacing label __b13_from___b8 with __b13 -Replacing label __b13_from___b8 with __b13 -Replacing label __b20_from___b13 with __b20 -Replacing label __b20_from___b16 with __b20 -Replacing label __b20_from___b16 with __b20 -Replacing label __b23_from___b28 with __b23 -Replacing label __b23_from___b21 with __b23 -Replacing label __b26_from___b23 with __b26 -Replacing label __b26_from___b24 with __b26 -Replacing label __b20_from___b18 with __b20 -Replacing label __b20_from___b17 with __b20 -Replacing label __b13_from___b11 with __b13 -Replacing label __b13_from___b10 with __b13 -Replacing label __b13_from___b9 with __b13 -Replacing label __b1_from___b2 with __b1 -Replacing label __breturn with __b3 -Replacing label __b4_from___b1 with __b4 -Replacing label __breturn with __b3 -Replacing label __breturn with __b3 -Replacing label __breturn with __b3 -Removing instruction __b1_from___init1: -Removing instruction main_from___b1: -Removing instruction __b3_from_conio_x16_init: -Removing instruction __b4_from___b3: -Removing instruction __b5_from___b4: -Removing instruction vera_layer_set_textcolor_from___b5: -Removing instruction __b6_from___b5: -Removing instruction vera_layer_set_backcolor_from___b6: -Removing instruction __b7_from___b6: -Removing instruction vera_layer_set_mapbase_from___b7: -Removing instruction __b8_from___b7: -Removing instruction vera_layer_set_mapbase_from___b8: -Removing instruction __b1_from___b2: -Removing instruction __b1_from___b9: -Removing instruction __b4_from___b3: -Removing instruction __b6_from___b5: -Removing instruction __b1_from___b7: -Removing instruction __b19_from_main: -Removing instruction __b20_from___b19: -Removing instruction __b16_from_bgcolor1: -Removing instruction __b21_from___b16: -Removing instruction __b22_from___b21: -Removing instruction memcpy_to_vram_from___b22: -Removing instruction __b1_from___b23: -Removing instruction __b2_from___b1: -Removing instruction __b2_from___b2: -Removing instruction __b4_from___b23: -Removing instruction __b5_from___b7: -Removing instruction __b6_from___b5: -Removing instruction __b6_from___b24: -Removing instruction __b8_from___b7: -Removing instruction gotoxy_from___b8: -Removing instruction __b25_from___b8: -Removing instruction printf_str_from___b25: -Removing instruction __b26_from___b25: -Removing instruction printf_str_from___b26: -Removing instruction __b27_from___b26: -Removing instruction printf_str_from___b27: -Removing instruction __b28_from___b27: -Removing instruction printf_str_from___b28: -Removing instruction __b29_from___b28: -Removing instruction printf_str_from___b29: -Removing instruction __b30_from___b29: -Removing instruction printf_str_from___b30: -Removing instruction __b31_from___b30: -Removing instruction printf_str_from___b31: -Removing instruction __b32_from___b31: -Removing instruction printf_str_from___b32: -Removing instruction __b9_from___b33: -Removing instruction __b9_from_vera_layer_show1: -Removing instruction __b10_from___b33: -Removing instruction vera_tile_area_from___b10: -Removing instruction __b11_from___b13: -Removing instruction __b12_from___b11: -Removing instruction __b12_from___b34: -Removing instruction __b14_from___b13: -Removing instruction __b14_from___b35: -Removing instruction __b15_from___b35: -Removing instruction __b17_from_vera_layer_hide1: -Removing instruction memcpy_in_vram_from___b17: -Removing instruction __b36_from___b17: -Removing instruction vera_layer_mode_tile_from___b36: -Removing instruction __b37_from___b36: -Removing instruction vera_layer_mode_tile_from___b37: -Removing instruction __b38_from___b37: -Removing instruction __b18_from_bgcolor2: -Removing instruction __b1_from_vera_layer_mode_text: -Removing instruction vera_layer_get_width1___breturn: -Removing instruction vera_layer_get_height1___breturn: -Removing instruction __b4_from_gotoxy: -Removing instruction __b4: -Removing instruction __b1_from___b4: -Removing instruction __b3_from___b1: -Removing instruction __b3: -Removing instruction __breturn_from___b1: -Removing instruction __breturn_from___b2: -Removing instruction __b4_from___b3: -Removing instruction __b5_from___b4: -Removing instruction __b13_from___b10: -Removing instruction __b13_from___b11: -Removing instruction __b13_from___b12: -Removing instruction __b13_from___b8: -Removing instruction __b13_from___b9: -Removing instruction __b20_from___b13: -Removing instruction __b20_from___b16: -Removing instruction __b20_from___b17: -Removing instruction __b20_from___b18: -Removing instruction __b20_from___b19: -Removing instruction __b23_from___b21: -Removing instruction __b23_from___b22: -Removing instruction __b23_from___b28: -Removing instruction __b26_from___b23: -Removing instruction __b26_from___b24: -Removing instruction __b26_from___b25: -Removing instruction __b1_from_printf_str: -Removing instruction __b1_from___b2: -Removing instruction __b3_from___b2: -Removing instruction __breturn: -Removing instruction __b4_from___b1: -Removing instruction __b3_from___b1: -Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction __init1: -Removing instruction __b1: -Removing instruction __breturn: -Removing instruction vera_layer_mode_text_from_conio_x16_init: -Removing instruction __b3: -Removing instruction __b4: -Removing instruction __b5: -Removing instruction __b6: -Removing instruction __b7: -Removing instruction __b8: -Removing instruction __b9: -Removing instruction __b2: -Removing instruction gotoxy_from___b1: -Removing instruction __breturn: -Removing instruction vera_layer_get_color_from_cputc: -Removing instruction __b7: -Removing instruction __b2: -Removing instruction __b3: -Removing instruction __b4: -Removing instruction __b6: -Removing instruction memcpy_in_vram_from_main: -Removing instruction __b19: -Removing instruction vera_layer_mode_tile_from___b19: -Removing instruction __b20: -Removing instruction textcolor1: -Removing instruction vera_layer_set_textcolor_from_textcolor1: -Removing instruction bgcolor1: -Removing instruction vera_layer_set_backcolor_from_bgcolor1: -Removing instruction __b16: -Removing instruction __b21: -Removing instruction vera_layer_mode_tile_from___b21: -Removing instruction __b22: -Removing instruction __b1_from___b22: -Removing instruction __b3: -Removing instruction memcpy_to_vram_from___b3: -Removing instruction __b23: -Removing instruction __b4: -Removing instruction vera_tile_area_from___b4: -Removing instruction __b5_from___b4: -Removing instruction vera_tile_area_from___b6: -Removing instruction __b24: -Removing instruction __b7: -Removing instruction __b8: -Removing instruction __b25: -Removing instruction __b26: -Removing instruction __b27: -Removing instruction __b28: -Removing instruction __b29: -Removing instruction __b30: -Removing instruction __b31: -Removing instruction __b32: -Removing instruction vera_layer_show1: -Removing instruction __b33: -Removing instruction __b10: -Removing instruction __b11_from___b10: -Removing instruction vera_tile_area_from___b12: -Removing instruction __b34: -Removing instruction __b13: -Removing instruction __b35: -Removing instruction __b15: -Removing instruction vera_tile_area_from___b15: -Removing instruction vera_layer_hide1: -Removing instruction __b17: -Removing instruction __b36: -Removing instruction __b37: -Removing instruction __b38: -Removing instruction textcolor2: -Removing instruction vera_layer_set_textcolor_from_textcolor2: -Removing instruction bgcolor2: -Removing instruction vera_layer_set_backcolor_from_bgcolor2: -Removing instruction __b18: -Removing instruction __breturn: -Removing instruction vera_layer_mode_tile_from_vera_layer_mode_text: -Removing instruction __b1: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __b3: -Removing instruction __b4: -Removing instruction vera_layer_get_width1: -Removing instruction __b1: -Removing instruction __b5: -Removing instruction __b6: -Removing instruction vera_layer_get_height1: -Removing instruction __b2: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __b1_from_gotoxy: -Removing instruction __breturn: -Removing instruction __b2: -Removing instruction __breturn: -Removing instruction __b1_from_memcpy_in_vram: -Removing instruction __breturn: -Removing instruction __b1_from___b2: -Removing instruction __b1: -Removing instruction __b2: -Removing instruction __b3: -Removing instruction __b4: -Removing instruction __b6: -Removing instruction __b7: -Removing instruction __b8: -Removing instruction __b12: -Removing instruction __b14: -Removing instruction __b15: -Removing instruction __b16: -Removing instruction __b19: -Removing instruction __b27: -Removing instruction vera_layer_set_mapbase_from___b27: -Removing instruction __b28: -Removing instruction __b21: -Removing instruction __b22: -Removing instruction __b24: -Removing instruction __b25: -Removing instruction __breturn: -Removing instruction __b7: -Removing instruction __b8: -Removing instruction __b1_from___b8: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b4_from___b2: -Removing instruction __b6: -Removing instruction __b1_from___b6: -Removing instruction __b4_from___b5: -Removing instruction __b1_from_memcpy_to_vram: -Removing instruction __breturn: -Removing instruction __b1_from___b2: -Removing instruction __b1_from_vera_tile_area: -Removing instruction __breturn: -Removing instruction __b2_from_vera_vram_address01: -Removing instruction __b4: -Removing instruction __b1_from___b4: -Removing instruction __b2_from___b3: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __b1: -Removing instruction __b2: -Removing instruction __b5: -Removing instruction gotoxy_from___b5: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __b1_from_insertup: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction memcpy_in_vram_from___b2: -Removing instruction __b4: -Removing instruction __b1_from___b4: -Removing instruction vera_layer_get_color_from_clearline: -Removing instruction __b4: -Removing instruction __b1_from___b4: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b1_from___b2: -Succesful ASM optimization Pass5UnusedLabelElimination -Replacing jump to rts with rts in jmp __breturn -Replacing jump to rts with rts in jmp __breturn -Replacing jump to rts with rts in jmp __breturn -Replacing jump to rts with rts in jmp __b3 -Succesful ASM optimization Pass5DoubleJumpElimination -Relabelling long label __b5_from_vera_layer_mode_tile to __b1 -Relabelling long label __b5_from___b1 to __b2 -Relabelling long label __b5_from___b2 to __b3 -Relabelling long label __b5_from___b3 to __b4 -Succesful ASM optimization Pass5RelabelLongLabels -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __b5 -Removing instruction jmp __b6 -Removing instruction jmp __b11 -Removing instruction jmp __b12 -Removing instruction jmp __b1 -Removing instruction bne __b2 -Removing instruction bcc __b3 -Succesful ASM optimization Pass5NextJumpElimination -Removing instruction ldy.z conio_screen_layer -Removing instruction ldy.z conio_screen_layer -Removing instruction ldy.z conio_screen_layer -Removing instruction lda #0 -Succesful ASM optimization Pass5UnnecesaryLoadElimination -Removing instruction __b2: -Removing instruction __breturn: -Succesful ASM optimization Pass5UnusedLabelElimination -Fixing long branch [1116] beq __b9 to bne -Fixing long branch [1124] beq __b10 to bne -Fixing long branch [1132] beq __b11 to bne -Fixing long branch [1166] beq __b17 to bne -Fixing long branch [1174] beq __b18 to bne - -FINAL SYMBOL TABLE -__constant const char BLACK = 0 -__constant const char BLUE = 6 -char CONIO_SCREEN_BANK -char CONIO_SCREEN_BANK#12 // CONIO_SCREEN_BANK zp[1]:57 625.0625 -char CONIO_SCREEN_BANK#15 // reg byte x 14.693333333333332 -char *CONIO_SCREEN_TEXT -char *CONIO_SCREEN_TEXT#12 // CONIO_SCREEN_TEXT zp[2]:18 2.000018187272727E7 -unsigned int CONIO_SCREEN_TEXT#17 // CONIO_SCREEN_TEXT_1 zp[2]:86 2.2954545454545454 -__constant char RADIX::BINARY = 2 -__constant char RADIX::DECIMAL = $a -__constant char RADIX::HEXADECIMAL = $10 -__constant char RADIX::OCTAL = 8 -__constant char SIZEOF_POINTER = 2 -__constant unsigned int STACK_BASE = $103 -__constant const char VERA_ADDRSEL = 1 -__constant char * const VERA_ADDRX_H = (char *) 40738 -__constant char * const VERA_ADDRX_L = (char *) 40736 -__constant char * const VERA_ADDRX_M = (char *) 40737 -__constant char * const VERA_CTRL = (char *) 40741 -__constant char * const VERA_DATA0 = (char *) 40739 -__constant char * const VERA_DATA1 = (char *) 40740 -__constant char * const VERA_DC_HSCALE = (char *) 40746 -__constant char * const VERA_DC_VIDEO = (char *) 40745 -__constant char * const VERA_DC_VSCALE = (char *) 40747 -__constant const char VERA_INC_1 = $10 -__constant char * const VERA_L0_CONFIG = (char *) 40749 -__constant char * const VERA_L0_MAPBASE = (char *) 40750 -__constant char * const VERA_L0_TILEBASE = (char *) 40751 -__constant char * const VERA_L1_CONFIG = (char *) 40756 -__constant char * const VERA_L1_MAPBASE = (char *) 40757 -__constant char * const VERA_L1_TILEBASE = (char *) 40758 -__constant const char VERA_LAYER0_ENABLE = $10 -__constant const char VERA_LAYER1_ENABLE = $20 -__constant const char VERA_LAYER_COLOR_DEPTH_1BPP = 0 -__constant const char VERA_LAYER_COLOR_DEPTH_2BPP = 1 -__constant const char VERA_LAYER_COLOR_DEPTH_4BPP = 2 -__constant const char VERA_LAYER_COLOR_DEPTH_8BPP = 3 -__constant const char VERA_LAYER_CONFIG_256C = 8 -__constant const unsigned int VERA_LAYER_HEIGHT[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_HEIGHT_128 = $80 -__constant const char VERA_LAYER_HEIGHT_256 = $c0 -__constant const char VERA_LAYER_HEIGHT_64 = $40 -__constant const char VERA_LAYER_HEIGHT_MASK = $c0 -__constant const char VERA_LAYER_TILEBASE_MASK = $fc -__constant const unsigned int VERA_LAYER_WIDTH[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_WIDTH_128 = $20 -__constant const char VERA_LAYER_WIDTH_256 = $30 -__constant const char VERA_LAYER_WIDTH_64 = $10 -__constant const char VERA_LAYER_WIDTH_MASK = $30 -__constant const char VERA_TILEBASE_HEIGHT_16 = 2 -__constant const char VERA_TILEBASE_WIDTH_16 = 1 -__constant const char WHITE = 1 -void __start() -void clearline() -char clearline::$1 // reg byte a 2.00000002E8 -char clearline::$2 // reg byte a 2.00000002E8 -char clearline::$5 // reg byte a 2.00000002E8 -char *clearline::addr -char *clearline::addr#0 // addr zp[2]:12 1.00000001E8 -unsigned int clearline::c -unsigned int clearline::c#1 // c zp[2]:2 2.0000000002E10 -unsigned int clearline::c#2 // c zp[2]:2 7.50000000075E9 -char clearline::color -char clearline::color#0 // reg byte x 1.6833333336666665E9 -void clrscr() -char clrscr::$0 // reg byte a 202.0 -char clrscr::$1 // zp[1]:83 40.4 -char clrscr::$2 // reg byte a 202.0 -char clrscr::$5 // reg byte a 2002.0 -char clrscr::$6 // reg byte a 2002.0 -char clrscr::$7 // reg byte a 2002.0 -char clrscr::$9 // reg byte a 202.0 -char clrscr::c -char clrscr::c#1 // reg byte y 20002.0 -char clrscr::c#2 // reg byte y 7500.75 -char *clrscr::ch -char clrscr::color -char clrscr::color#0 // color zp[1]:32 594.2352941176471 -char clrscr::l -char clrscr::l#1 // l zp[1]:10 2002.0 -char clrscr::l#2 // l zp[1]:10 200.2 -char *clrscr::line_text -char *clrscr::line_text#0 // line_text zp[2]:6 18.363636363636363 -char *clrscr::line_text#1 // line_text zp[2]:6 1001.0 -char *clrscr::line_text#2 // line_text zp[2]:6 293.2142857142857 -__constant char conio_cursor_x[2] = { 0, 0 } -__constant char conio_cursor_y[2] = { 0, 0 } -__loadstore unsigned int conio_height // zp[2]:38 6500.681818181818 -__constant unsigned int conio_line_text[2] = { 0, 0 } -__loadstore char conio_rowshift // zp[1]:24 5838150.895953758 -__loadstore unsigned int conio_rowskip // zp[2]:25 5556117.255555555 -__loadstore volatile char conio_screen_height // zp[1]:33 75000.16875000001 -__loadstore char conio_screen_layer // zp[1]:29 1357989.2490118577 -__loadstore volatile char conio_screen_width // zp[1]:15 5.1122500030612245E7 -__constant char conio_scroll_enable[2] = { 1, 1 } -__loadstore unsigned int conio_width // zp[2]:70 128.87820512820514 -void conio_x16_init() -__constant char * const conio_x16_init::BASIC_CURSOR_LINE = (char *) 214 -char conio_x16_init::line -char conio_x16_init::line#0 // line zp[1]:82 2.1999999999999997 -char conio_x16_init::line#1 // line zp[1]:82 22.0 -char conio_x16_init::line#3 // line zp[1]:82 33.0 -__stackcall void cputc(char c) -char cputc::$15 // reg byte a 20002.0 -unsigned int cputc::$16 // zp[2]:6 20002.0 -char cputc::$2 // reg byte a 20002.0 -char cputc::$4 // reg byte a 20002.0 -char cputc::$5 // reg byte a 20002.0 -char cputc::$6 // reg byte a 20002.0 -__constant char cputc::OFFSET_STACK_C = 0 -char cputc::c -char cputc::c#0 // c zp[1]:10 1764.8823529411764 -char cputc::color -char cputc::color#0 // reg byte x 1428.7142857142858 -char *cputc::conio_addr -char *cputc::conio_addr#0 // conio_addr zp[2]:8 10001.0 -char *cputc::conio_addr#1 // conio_addr zp[2]:8 6000.6 -char cputc::scroll_enable -char cputc::scroll_enable#0 // reg byte a 20002.0 -void cputln() -char cputln::$2 // reg byte a 200002.0 -char cputln::$3 // reg byte a 200002.0 -unsigned int cputln::temp -unsigned int cputln::temp#0 // temp zp[2]:4 200002.0 -unsigned int cputln::temp#1 // temp zp[2]:4 100001.0 -void cscroll() -void gotoxy(char x , char y) -char gotoxy::$5 // reg byte a 2.0000002E7 -unsigned int gotoxy::$6 // zp[2]:16 2.0000002E7 -unsigned int gotoxy::line_offset -unsigned int gotoxy::line_offset#0 // line_offset zp[2]:16 1.0000001E7 -char gotoxy::x -char gotoxy::y -char gotoxy::y#1 // reg byte x 22.0 -char gotoxy::y#2 // reg byte x 2000002.0 -char gotoxy::y#4 // reg byte x 7000004.666666666 -char gotoxy::y#5 // reg byte x 4000000.4 -void insertup() -char insertup::$3 // reg byte a 2.000000002E9 -char insertup::cy -char insertup::cy#0 // cy zp[1]:14 7.769230784615384E7 -char insertup::i -char insertup::i#1 // reg byte x 2.000000002E9 -char insertup::i#2 // reg byte x 4.000000004E8 -unsigned int insertup::line -unsigned int insertup::line#0 // line zp[2]:8 2.000000002E9 -char *insertup::start -char *insertup::start#0 // start zp[2]:8 1.000000001E9 -char insertup::width -char insertup::width#0 // width zp[1]:11 8.416666683333334E7 -char kbhit() -__constant char * const kbhit::GETIN = (char *) 65508 -__constant char * const kbhit::IN_DEV = (char *) 650 -__loadstore volatile char kbhit::ch // zp[1]:56 1001.0 -__constant char * const kbhit::chptr = &kbhit::ch -char kbhit::return -char kbhit::return#0 // reg byte a 2002.0 -char kbhit::return#1 // reg byte a 300.75 -char kbhit::return#2 // reg byte a 202.0 -char kbhit::return#3 // reg byte a 202.0 -void main() -char main::$35 // reg byte a 202.0 -char main::$40 // reg byte a 202.0 -char main::bgcolor1_color -char main::bgcolor2_color -char main::c -char main::c#1 // c zp[1]:55 1501.5 -char main::c#2 // c zp[1]:55 250.25 -char main::c1 -char main::c1#1 // reg byte x 1501.5 -char main::c1#2 // reg byte x 250.25 -char main::column -char main::column#1 // reg byte x 400.4 -char main::column#2 // reg byte x 600.5999999999999 -char main::column1 -char main::column1#1 // column1 zp[1]:41 400.4 -char main::column1#2 // column1 zp[1]:41 600.5999999999999 -char main::p -char main::p#1 // reg byte x 1501.5 -char main::p#2 // reg byte x 2002.0 -char main::r -char main::r#1 // r zp[1]:66 151.5 -char main::r#5 // r zp[1]:66 16.833333333333332 -char main::r1 -char main::r1#1 // r1 zp[1]:67 151.5 -char main::r1#5 // r1 zp[1]:67 16.833333333333332 -char main::row -char main::row#1 // row zp[1]:64 67.33333333333333 -char main::row#10 // row_1 zp[1]:65 109.36363636363637 -char main::row#3 // row_1 zp[1]:65 67.33333333333333 -char main::row#9 // row zp[1]:64 109.36363636363637 -__constant char main::s[$38] = "vera in tile mode 8 x 8, color depth 8 bits per pixel. -" -__constant char main::s1[$3a] = "in this mode, tiles are 8 pixels wide and 8 pixels tall. -" -__constant char main::s2[$2f] = "each tile can have a variation of 256 colors. -" -__constant char main::s3[$44] = "the vera palette of 256 colors, can be used by setting the palette -" -__constant char main::s4[$17] = "offset for each tile. -" -__constant char main::s5[$4b] = "here each column is displaying the same tile, but with different offsets! -" -__constant char main::s6[$3f] = "each offset aligns to multiples of 16 colors in the palette!. -" -__constant char main::s7[$3e] = "however, the first color will always be transparent (black). -" -char main::t -char main::t#1 // t zp[1]:63 151.5 -char main::t#5 // t zp[1]:63 25.25 -char main::textcolor1_color -char main::textcolor2_color -unsigned int main::tile -unsigned int main::tile#1 // tile zp[2]:36 2002.0 -unsigned int main::tile#10 // tile zp[2]:36 202.0 -unsigned int main::tile#11 // tile zp[2]:36 202.0 -unsigned int main::tile#12 // tile zp[2]:36 350.5 -unsigned int main::tile#13 // tile zp[2]:36 350.5 -unsigned int main::tile#4 // tile zp[2]:36 2002.0 -unsigned int main::tile#6 // tile zp[2]:36 517.3333333333334 -unsigned int main::tile#8 // tile zp[2]:36 517.3333333333334 -char *main::tilebase -char *main::tilebase#2 // tilebase zp[2]:72 67.33333333333333 -char *main::tilebase#7 // tilebase zp[2]:72 28.857142857142858 -__constant char 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 } -char main::vera_layer_hide1_$0 // reg byte a 22.0 -char main::vera_layer_hide1_layer -char main::vera_layer_show1_layer -void memcpy_in_vram(char dest_bank , void *dest , char dest_increment , char src_bank , void *src , char src_increment , unsigned int num) -char memcpy_in_vram::$0 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$1 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$2 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$3 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$4 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$5 // reg byte a 2.0000000002E10 -void *memcpy_in_vram::dest -void *memcpy_in_vram::dest#0 // dest zp[2]:8 6.666666673333334E8 -void *memcpy_in_vram::dest#3 // dest zp[2]:8 1.9090909093636363E9 -char memcpy_in_vram::dest_bank -char memcpy_in_vram::dest_bank#3 // dest_bank zp[1]:10 7.692307693076923E8 -char memcpy_in_vram::dest_increment -unsigned int memcpy_in_vram::i -unsigned int memcpy_in_vram::i#1 // i zp[2]:2 2.00000000002E11 -unsigned int memcpy_in_vram::i#2 // i zp[2]:2 1.00000000001E11 -unsigned int memcpy_in_vram::num -unsigned int memcpy_in_vram::num#0 // num zp[2]:4 1.000000001E9 -unsigned int memcpy_in_vram::num#4 // num zp[2]:4 5.315789473789474E9 -void *memcpy_in_vram::src -char *memcpy_in_vram::src#0 // src zp[2]:6 3.333333336666667E8 -void *memcpy_in_vram::src#3 // src zp[2]:6 5.25000000075E9 -void *memcpy_in_vram::src#4 // src zp[2]:6 2.000000002E9 -char memcpy_in_vram::src_bank -char memcpy_in_vram::src_bank#3 // reg byte y 1.6666666668333333E9 -char memcpy_in_vram::src_increment -void memcpy_to_vram(char vbank , void *vdest , void *src , unsigned int num) -char memcpy_to_vram::$0 // reg byte a 2002.0 -char memcpy_to_vram::$1 // reg byte a 2002.0 -char *memcpy_to_vram::end -__constant char *memcpy_to_vram::end#0 = (char *)(void *)main::tiles+$100 // end -unsigned int memcpy_to_vram::num -char *memcpy_to_vram::s -char *memcpy_to_vram::s#1 // s zp[2]:4 200002.0 -char *memcpy_to_vram::s#2 // s zp[2]:4 133334.66666666666 -void *memcpy_to_vram::src -char memcpy_to_vram::vbank -void *memcpy_to_vram::vdest -void *memcpy_to_vram::vdest#1 // vdest zp[2]:8 202.0 -void *memcpy_to_vram::vdest#2 // vdest zp[2]:8 525.75 -void printf_str(void (*putc)(char) , const char *s) -char printf_str::c -char printf_str::c#1 // reg byte a 1001.0 -void (*printf_str::putc)(char) -const char *printf_str::s -const char *printf_str::s#0 // s zp[2]:30 400.4 -const char *printf_str::s#10 // s zp[2]:30 101.0 -const char *printf_str::s#9 // s zp[2]:30 1552.0 -void screenlayer(char layer) -unsigned int screenlayer::$2 // zp[2]:16 202.0 -char screenlayer::$3 // reg byte a 202.0 -unsigned int screenlayer::$4 // zp[2]:53 202.0 -unsigned int screenlayer::$5 // zp[2]:58 202.0 -char screenlayer::layer -char screenlayer::vera_layer_get_height1_$0 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$1 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$2 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$3 // reg byte a 202.0 -char *screenlayer::vera_layer_get_height1_config -char *screenlayer::vera_layer_get_height1_config#0 // vera_layer_get_height1_config zp[2]:43 202.0 -char screenlayer::vera_layer_get_height1_layer -char screenlayer::vera_layer_get_height1_layer#0 // reg byte a 202.0 -unsigned int screenlayer::vera_layer_get_height1_return -unsigned int screenlayer::vera_layer_get_height1_return#0 // vera_layer_get_height1_return zp[2]:58 202.0 -unsigned int screenlayer::vera_layer_get_height1_return#1 // vera_layer_get_height1_return zp[2]:58 202.0 -char screenlayer::vera_layer_get_width1_$0 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$1 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$2 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$3 // reg byte a 202.0 -char *screenlayer::vera_layer_get_width1_config -char *screenlayer::vera_layer_get_width1_config#0 // vera_layer_get_width1_config zp[2]:34 202.0 -char screenlayer::vera_layer_get_width1_layer -char screenlayer::vera_layer_get_width1_layer#0 // reg byte a 202.0 -unsigned int screenlayer::vera_layer_get_width1_return -unsigned int screenlayer::vera_layer_get_width1_return#0 // vera_layer_get_width1_return zp[2]:16 202.0 -unsigned int screenlayer::vera_layer_get_width1_return#1 // vera_layer_get_width1_return zp[2]:16 202.0 -void screensize(char *x , char *y) -char screensize::$1 // reg byte a 202.0 -char screensize::$3 // reg byte a 202.0 -char screensize::hscale -char screensize::hscale#0 // reg byte a 202.0 -char screensize::vscale -char screensize::vscale#0 // reg byte a 202.0 -char *screensize::x -__constant char *screensize::x#0 = &conio_screen_width // x -char *screensize::y -__constant char *screensize::y#0 = &conio_screen_height // y -__constant char vera_layer_backcolor[2] = { BLUE, BLUE } -__constant char *vera_layer_config[2] = { VERA_L0_CONFIG, VERA_L1_CONFIG } -__constant char vera_layer_enable[2] = { VERA_LAYER0_ENABLE, VERA_LAYER1_ENABLE } -char vera_layer_get_backcolor(char layer) -char vera_layer_get_backcolor::layer -char vera_layer_get_backcolor::layer#0 // reg byte y 1102.0 -char vera_layer_get_backcolor::return -char vera_layer_get_backcolor::return#0 // reg byte a 202.0 -char vera_layer_get_backcolor::return#1 // reg byte a 367.33333333333337 -char vera_layer_get_color(char layer) -char vera_layer_get_color::$0 // reg byte a 2.000000002E9 -char vera_layer_get_color::$1 // reg byte a 2.000000002E9 -char vera_layer_get_color::$3 // reg byte a 2.000000002E9 -char *vera_layer_get_color::addr -char *vera_layer_get_color::addr#0 // addr zp[2]:4 2.000000002E9 -char vera_layer_get_color::layer -char vera_layer_get_color::layer#0 // reg byte x 20002.0 -char vera_layer_get_color::layer#1 // reg byte x 2.00000002E8 -char vera_layer_get_color::layer#2 // reg byte x 6.833350010000001E8 -char vera_layer_get_color::return -char vera_layer_get_color::return#0 // reg byte a 20002.0 -char vera_layer_get_color::return#1 // reg byte a 2.000000002E9 -char vera_layer_get_color::return#2 // reg byte a 2.000000002E9 -char vera_layer_get_color::return#3 // reg byte a 5.25002501E8 -char vera_layer_get_color::return#4 // reg byte a 2.00000002E8 -char vera_layer_get_mapbase_bank(char layer) -char vera_layer_get_mapbase_bank::layer -char vera_layer_get_mapbase_bank::layer#0 // reg byte y 1102.0 -char vera_layer_get_mapbase_bank::return -char vera_layer_get_mapbase_bank::return#0 // reg byte x 367.33333333333337 -char vera_layer_get_mapbase_bank::return#2 // reg byte x 202.0 -unsigned int vera_layer_get_mapbase_offset(char layer) -char vera_layer_get_mapbase_offset::$0 // reg byte a 2002.0 -char vera_layer_get_mapbase_offset::layer -char vera_layer_get_mapbase_offset::layer#0 // reg byte a 1102.0 -unsigned int vera_layer_get_mapbase_offset::return -unsigned int vera_layer_get_mapbase_offset::return#0 // return zp[2]:16 367.33333333333337 -unsigned int vera_layer_get_mapbase_offset::return#2 // return zp[2]:16 202.0 -char vera_layer_get_rowshift(char layer) -char vera_layer_get_rowshift::layer -char vera_layer_get_rowshift::layer#0 // reg byte y 1102.0 -char vera_layer_get_rowshift::return -char vera_layer_get_rowshift::return#0 // reg byte a 367.33333333333337 -char vera_layer_get_rowshift::return#2 // reg byte a 202.0 -unsigned int vera_layer_get_rowskip(char layer) -char vera_layer_get_rowskip::$0 // reg byte a 2002.0 -char vera_layer_get_rowskip::layer -char vera_layer_get_rowskip::layer#0 // reg byte a 1102.0 -unsigned int vera_layer_get_rowskip::return -unsigned int vera_layer_get_rowskip::return#0 // return zp[2]:53 367.33333333333337 -unsigned int vera_layer_get_rowskip::return#2 // return zp[2]:53 202.0 -char vera_layer_get_textcolor(char layer) -char vera_layer_get_textcolor::layer -char vera_layer_get_textcolor::layer#0 // reg byte y 1102.0 -char vera_layer_get_textcolor::return -char vera_layer_get_textcolor::return#0 // reg byte a 202.0 -char vera_layer_get_textcolor::return#1 // reg byte a 367.33333333333337 -__constant const char vera_layer_hflip[2] = { 0, 4 } -__constant char *vera_layer_mapbase[2] = { VERA_L0_MAPBASE, VERA_L1_MAPBASE } -void vera_layer_mode_text(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , unsigned int color_mode) -unsigned int vera_layer_mode_text::color_mode -char vera_layer_mode_text::layer -__constant char vera_layer_mode_text::layer#0 = 1 // layer -unsigned long vera_layer_mode_text::mapbase_address -__constant unsigned long vera_layer_mode_text::mapbase_address#0 = 0 // mapbase_address -unsigned int vera_layer_mode_text::mapheight -__constant unsigned int vera_layer_mode_text::mapheight#0 = $40 // mapheight -unsigned int vera_layer_mode_text::mapwidth -__constant unsigned int vera_layer_mode_text::mapwidth#0 = $80 // mapwidth -unsigned long vera_layer_mode_text::tilebase_address -__constant unsigned long vera_layer_mode_text::tilebase_address#0 = $f800 // tilebase_address -char vera_layer_mode_text::tileheight -__constant char vera_layer_mode_text::tileheight#0 = 8 // tileheight -char vera_layer_mode_text::tilewidth -__constant char vera_layer_mode_text::tilewidth#0 = 8 // tilewidth -void vera_layer_mode_tile(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , char color_depth) -unsigned int vera_layer_mode_tile::$1 // zp[2]:53 1001.0 -char vera_layer_mode_tile::$11 // reg byte a 2002.0 -char vera_layer_mode_tile::$12 // reg byte a 2002.0 -char vera_layer_mode_tile::$13 // reg byte a 2002.0 -char vera_layer_mode_tile::$14 // reg byte a 2002.0 -char vera_layer_mode_tile::$17 // zp[1]:61 250.25 -char vera_layer_mode_tile::$18 // zp[1]:60 273.0 -char vera_layer_mode_tile::$2 // reg byte a 2002.0 -unsigned int vera_layer_mode_tile::$6 // zp[2]:43 2002.0 -char vera_layer_mode_tile::$7 // reg byte a 2002.0 -char vera_layer_mode_tile::color_depth -char vera_layer_mode_tile::color_depth#5 // reg byte x 1001.0 -char vera_layer_mode_tile::config -char vera_layer_mode_tile::config#10 // reg byte x 2002.0 -char vera_layer_mode_tile::config#11 // reg byte x 2002.0 -char vera_layer_mode_tile::config#12 // reg byte x 2002.0 -char vera_layer_mode_tile::config#17 // reg byte x 625.625 -char vera_layer_mode_tile::config#21 // reg byte x 2002.0000000000002 -char vera_layer_mode_tile::config#25 // reg byte x 3003.0 -char vera_layer_mode_tile::config#6 // reg byte x 500.5 -char vera_layer_mode_tile::config#7 // reg byte x 500.5 -char vera_layer_mode_tile::config#8 // reg byte x 500.5 -char vera_layer_mode_tile::layer -char vera_layer_mode_tile::layer#10 // layer zp[1]:62 227.49999999999994 -char vera_layer_mode_tile::mapbase -char vera_layer_mode_tile::mapbase#0 // reg byte x 1001.0 -unsigned long vera_layer_mode_tile::mapbase_address -unsigned long vera_layer_mode_tile::mapbase_address#0 // mapbase_address zp[4]:45 2002.0 -unsigned long vera_layer_mode_tile::mapbase_address#10 // mapbase_address_1 zp[4]:74 88.97777777777777 -unsigned int vera_layer_mode_tile::mapheight -unsigned int vera_layer_mode_tile::mapheight#10 // mapheight zp[2]:68 133.46666666666667 -unsigned int vera_layer_mode_tile::mapwidth -unsigned int vera_layer_mode_tile::mapwidth#10 // mapwidth zp[2]:16 400.4 -char vera_layer_mode_tile::tilebase -char vera_layer_mode_tile::tilebase#0 // reg byte a 2002.0 -char vera_layer_mode_tile::tilebase#1 // reg byte x 1334.6666666666667 -char vera_layer_mode_tile::tilebase#10 // reg byte x 2002.0 -char vera_layer_mode_tile::tilebase#12 // reg byte x 2002.0000000000002 -char vera_layer_mode_tile::tilebase#3 // reg byte x 2002.0 -char vera_layer_mode_tile::tilebase#5 // reg byte x 2002.0 -unsigned long vera_layer_mode_tile::tilebase_address -unsigned long vera_layer_mode_tile::tilebase_address#0 // tilebase_address zp[4]:49 2002.0 -unsigned long vera_layer_mode_tile::tilebase_address#10 // tilebase_address_1 zp[4]:78 72.8 -char vera_layer_mode_tile::tileheight -char vera_layer_mode_tile::tileheight#10 // tileheight zp[1]:85 31.77777777777778 -char vera_layer_mode_tile::tilewidth -char vera_layer_mode_tile::tilewidth#10 // tilewidth zp[1]:84 33.932203389830505 -__constant char vera_layer_rowshift[2] = { 0, 0 } -__constant unsigned int vera_layer_rowskip[2] = { 0, 0 } -char vera_layer_set_backcolor(char layer , char color) -char vera_layer_set_backcolor::color -char vera_layer_set_backcolor::color#3 // reg byte a 101.0 -char vera_layer_set_backcolor::layer -char vera_layer_set_backcolor::layer#1 // reg byte y 22.0 -char vera_layer_set_backcolor::layer#2 // reg byte y 22.0 -char vera_layer_set_backcolor::layer#3 // reg byte y 123.0 -char vera_layer_set_backcolor::old -char vera_layer_set_backcolor::return -void vera_layer_set_config(char layer , char config) -char vera_layer_set_config::$0 // reg byte a 20002.0 -char *vera_layer_set_config::addr -char *vera_layer_set_config::addr#0 // addr zp[2]:34 20002.0 -char vera_layer_set_config::config -char vera_layer_set_config::config#0 // reg byte x 3667.333333333333 -char vera_layer_set_config::layer -char vera_layer_set_config::layer#0 // reg byte a 5501.0 -void vera_layer_set_mapbase(char layer , char mapbase) -char vera_layer_set_mapbase::$0 // reg byte a 20002.0 -char *vera_layer_set_mapbase::addr -char *vera_layer_set_mapbase::addr#0 // addr zp[2]:34 20002.0 -char vera_layer_set_mapbase::layer -char vera_layer_set_mapbase::layer#0 // reg byte a 1001.0 -char vera_layer_set_mapbase::layer#3 // reg byte a 11002.0 -char vera_layer_set_mapbase::mapbase -char vera_layer_set_mapbase::mapbase#0 // reg byte x 2002.0 -char vera_layer_set_mapbase::mapbase#3 // reg byte x 3667.333333333333 -void vera_layer_set_text_color_mode(char layer , char color_mode) -char *vera_layer_set_text_color_mode::addr -char *vera_layer_set_text_color_mode::addr#0 // addr zp[2]:34 2502.5 -char vera_layer_set_text_color_mode::color_mode -char vera_layer_set_text_color_mode::layer -char vera_layer_set_textcolor(char layer , char color) -char vera_layer_set_textcolor::color -char vera_layer_set_textcolor::layer -char vera_layer_set_textcolor::layer#1 // reg byte y 22.0 -char vera_layer_set_textcolor::layer#2 // reg byte y 22.0 -char vera_layer_set_textcolor::layer#3 // reg byte y 123.0 -char vera_layer_set_textcolor::old -char vera_layer_set_textcolor::return -void vera_layer_set_tilebase(char layer , char tilebase) -char vera_layer_set_tilebase::$0 // reg byte a 20002.0 -char *vera_layer_set_tilebase::addr -char *vera_layer_set_tilebase::addr#0 // addr zp[2]:34 20002.0 -char vera_layer_set_tilebase::layer -char vera_layer_set_tilebase::layer#0 // reg byte a 5501.0 -char vera_layer_set_tilebase::tilebase -char vera_layer_set_tilebase::tilebase#0 // reg byte x 3667.333333333333 -__constant char vera_layer_textcolor[2] = { WHITE, WHITE } -__constant char *vera_layer_tilebase[2] = { VERA_L0_TILEBASE, VERA_L1_TILEBASE } -__constant const char vera_layer_vflip[2] = { 0, 8 } -__constant unsigned long vera_mapbase_address[2] = { 0, 0 } -__constant char vera_mapbase_bank[2] = { 0, 0 } -__constant unsigned int vera_mapbase_offset[2] = { 0, 0 } -void vera_tile_area(char layer , unsigned int tileindex , char x , char y , char w , char h , char hflip , char vflip , char offset) -unsigned int vera_tile_area::$10 // zp[2]:8 20002.0 -unsigned int vera_tile_area::$4 // zp[2]:8 20002.0 -char vera_tile_area::$5 // reg byte a 20002.0 -char vera_tile_area::c -char vera_tile_area::c#1 // reg byte y 2.00000002E8 -char vera_tile_area::c#2 // reg byte y 7.500000075E7 -char vera_tile_area::h -char vera_tile_area::h#6 // h zp[1]:32 312500.03125 -char vera_tile_area::hflip -char vera_tile_area::hflip#0 // hflip zp[1]:40 5000.5 -char vera_tile_area::index_h -char vera_tile_area::index_h#0 // reg byte a 20002.0 -char vera_tile_area::index_h#1 // reg byte a 20002.0 -char vera_tile_area::index_h#2 // index_h zp[1]:27 4348260.956521738 -char vera_tile_area::index_l -char vera_tile_area::index_l#0 // index_l zp[1]:28 3846538.5384615385 -char vera_tile_area::layer -unsigned long vera_tile_area::mapbase -unsigned long vera_tile_area::mapbase#0 // mapbase zp[4]:20 1818.3636363636363 -unsigned long vera_tile_area::mapbase#1 // mapbase zp[4]:20 10001.0 -unsigned long vera_tile_area::mapbase#10 // mapbase zp[4]:20 3334000.4 -unsigned long vera_tile_area::mapbase#2 // mapbase zp[4]:20 20002.0 -unsigned long vera_tile_area::mapbase#3 // mapbase zp[4]:20 1.0000001E7 -char vera_tile_area::offset -char vera_tile_area::r -char vera_tile_area::r#1 // r zp[1]:11 2.0000002E7 -char vera_tile_area::r#2 // r zp[1]:11 1875000.1875 -unsigned int vera_tile_area::rowskip -unsigned int vera_tile_area::rowskip#0 // rowskip zp[2]:30 345172.4827586207 -char vera_tile_area::shift -char vera_tile_area::shift#0 // shift zp[1]:42 3333.6666666666665 -unsigned int vera_tile_area::tileindex -unsigned int vera_tile_area::tileindex#1 // tileindex zp[2]:36 667.3333333333334 -unsigned int vera_tile_area::tileindex#3 // tileindex zp[2]:36 667.3333333333334 -unsigned int vera_tile_area::tileindex#5 // tileindex zp[2]:36 3143.4285714285716 -char vera_tile_area::vera_vram_address01_$0 // reg byte a 2.0000002E7 -char vera_tile_area::vera_vram_address01_$1 // reg byte a 2.0000002E7 -char vera_tile_area::vera_vram_address01_$2 // reg byte a 2.0000002E7 -char vera_tile_area::vera_vram_address01_$3 // reg byte a 2.0000002E7 -unsigned long vera_tile_area::vera_vram_address01_bankaddr -char vera_tile_area::vera_vram_address01_incr -char vera_tile_area::vflip -char vera_tile_area::vflip#0 // vflip zp[1]:27 5000.5 -char vera_tile_area::w -char vera_tile_area::w#11 // w zp[1]:14 3125000.03125 -char vera_tile_area::x -char vera_tile_area::x#1 // x zp[1]:41 1001.0 -char vera_tile_area::x#3 // x zp[1]:41 1001.0 -char vera_tile_area::x#5 // x zp[1]:41 923.3076923076923 -char vera_tile_area::y -char vera_tile_area::y#1 // y zp[1]:10 2002.0 -char vera_tile_area::y#3 // y zp[1]:10 2002.0 -char vera_tile_area::y#5 // y zp[1]:10 200.2 -__constant unsigned long vera_tilebase_address[2] = { 0, 0 } -__constant char vera_tilebase_bank[2] = { 0, 0 } -__constant unsigned int vera_tilebase_offset[2] = { 0, 0 } - -zp[1]:82 [ conio_x16_init::line#3 conio_x16_init::line#1 conio_x16_init::line#0 ] -zp[2]:18 [ CONIO_SCREEN_TEXT#12 ] -zp[1]:57 [ CONIO_SCREEN_BANK#12 ] -zp[2]:72 [ main::tilebase#7 main::tilebase#2 ] -zp[1]:63 [ main::t#5 main::t#1 ] -reg byte x [ main::p#2 main::p#1 ] -zp[1]:64 [ main::row#9 main::row#1 ] -zp[1]:66 [ main::r#5 main::r#1 ] -zp[2]:36 [ main::tile#6 main::tile#10 main::tile#12 main::tile#1 vera_tile_area::tileindex#5 vera_tile_area::tileindex#3 vera_tile_area::tileindex#1 main::tile#8 main::tile#11 main::tile#13 main::tile#4 ] -reg byte x [ main::column#2 main::column#1 ] -zp[1]:55 [ main::c#2 main::c#1 ] -zp[1]:65 [ main::row#10 main::row#3 ] -zp[1]:67 [ main::r1#5 main::r1#1 ] -zp[1]:41 [ main::column1#2 main::column1#1 vera_tile_area::x#5 vera_tile_area::x#3 vera_tile_area::x#1 ] -reg byte x [ main::c1#2 main::c1#1 ] -reg byte y [ vera_layer_set_textcolor::layer#3 vera_layer_set_textcolor::layer#1 vera_layer_set_textcolor::layer#2 ] -reg byte y [ vera_layer_set_backcolor::layer#3 vera_layer_set_backcolor::layer#1 vera_layer_set_backcolor::layer#2 ] -reg byte a [ vera_layer_set_backcolor::color#3 ] -reg byte a [ vera_layer_set_mapbase::layer#3 vera_layer_set_mapbase::layer#0 ] -reg byte x [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::mapbase#0 ] -reg byte x [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#1 gotoxy::y#2 ] -reg byte x [ vera_layer_get_color::layer#2 vera_layer_get_color::layer#1 vera_layer_get_color::layer#0 ] -reg byte a [ vera_layer_get_color::return#3 vera_layer_get_color::return#1 vera_layer_get_color::return#2 ] -reg byte y [ memcpy_in_vram::src_bank#3 ] -reg byte x [ vera_layer_mode_tile::color_depth#5 ] -zp[1]:62 [ vera_layer_mode_tile::layer#10 ] -zp[2]:68 [ vera_layer_mode_tile::mapheight#10 ] -zp[4]:74 [ vera_layer_mode_tile::mapbase_address#10 ] -zp[4]:78 [ vera_layer_mode_tile::tilebase_address#10 ] -zp[1]:84 [ vera_layer_mode_tile::tilewidth#10 ] -zp[1]:85 [ vera_layer_mode_tile::tileheight#10 ] -reg byte x [ vera_layer_mode_tile::config#25 vera_layer_mode_tile::config#21 vera_layer_mode_tile::config#17 vera_layer_mode_tile::config#6 vera_layer_mode_tile::config#7 vera_layer_mode_tile::config#8 vera_layer_mode_tile::config#10 vera_layer_mode_tile::config#11 vera_layer_mode_tile::config#12 ] -reg byte x [ vera_layer_mode_tile::tilebase#10 vera_layer_mode_tile::tilebase#12 vera_layer_mode_tile::tilebase#1 vera_layer_mode_tile::tilebase#3 vera_layer_mode_tile::tilebase#5 ] -reg byte y [ clrscr::c#2 clrscr::c#1 ] -zp[4]:20 [ vera_tile_area::mapbase#10 vera_tile_area::mapbase#2 vera_tile_area::mapbase#3 vera_tile_area::mapbase#1 vera_tile_area::mapbase#0 ] -reg byte y [ vera_tile_area::c#2 vera_tile_area::c#1 ] -reg byte x [ insertup::i#2 insertup::i#1 ] -zp[2]:2 [ clearline::c#2 clearline::c#1 memcpy_in_vram::i#2 memcpy_in_vram::i#1 ] -zp[1]:15 [ conio_screen_width ] -zp[1]:33 [ conio_screen_height ] -zp[1]:29 [ conio_screen_layer ] -zp[2]:70 [ conio_width ] -zp[2]:38 [ conio_height ] -zp[1]:24 [ conio_rowshift ] -zp[2]:25 [ conio_rowskip ] -zp[1]:10 [ cputc::c#0 vera_tile_area::y#5 vera_tile_area::y#3 vera_tile_area::y#1 clrscr::l#2 clrscr::l#1 memcpy_in_vram::dest_bank#3 ] -reg byte a [ vera_layer_get_color::return#0 ] -reg byte x [ cputc::color#0 ] -reg byte a [ cputc::$15 ] -reg byte a [ cputc::$2 ] -reg byte a [ cputc::$4 ] -reg byte a [ cputc::$5 ] -reg byte a [ cputc::$6 ] -reg byte a [ cputc::scroll_enable#0 ] -zp[2]:6 [ cputc::$16 clrscr::line_text#2 clrscr::line_text#1 clrscr::line_text#0 memcpy_in_vram::src#3 memcpy_in_vram::src#4 memcpy_in_vram::src#0 ] -reg byte a [ kbhit::return#2 ] -reg byte a [ main::$35 ] -reg byte a [ kbhit::return#3 ] -reg byte a [ main::$40 ] -reg byte a [ main::vera_layer_hide1_$0 ] -reg byte a [ screensize::hscale#0 ] -reg byte a [ screensize::$1 ] -reg byte a [ screensize::vscale#0 ] -reg byte a [ screensize::$3 ] -reg byte y [ vera_layer_get_mapbase_bank::layer#0 ] -reg byte x [ vera_layer_get_mapbase_bank::return#2 ] -reg byte x [ CONIO_SCREEN_BANK#15 ] -reg byte a [ vera_layer_get_mapbase_offset::layer#0 ] -zp[2]:86 [ CONIO_SCREEN_TEXT#17 ] -reg byte a [ screenlayer::vera_layer_get_width1_layer#0 ] -reg byte a [ screenlayer::vera_layer_get_width1_$2 ] -reg byte a [ screenlayer::vera_layer_get_width1_$0 ] -reg byte a [ screenlayer::vera_layer_get_width1_$1 ] -reg byte a [ screenlayer::vera_layer_get_width1_$3 ] -reg byte y [ vera_layer_get_rowshift::layer#0 ] -reg byte a [ vera_layer_get_rowshift::return#2 ] -reg byte a [ screenlayer::$3 ] -reg byte a [ vera_layer_get_rowskip::layer#0 ] -reg byte a [ screenlayer::vera_layer_get_height1_layer#0 ] -reg byte a [ screenlayer::vera_layer_get_height1_$2 ] -reg byte a [ screenlayer::vera_layer_get_height1_$0 ] -reg byte a [ screenlayer::vera_layer_get_height1_$1 ] -reg byte a [ screenlayer::vera_layer_get_height1_$3 ] -zp[2]:58 [ screenlayer::vera_layer_get_height1_return#0 screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 ] -reg byte a [ vera_layer_set_mapbase::$0 ] -zp[2]:16 [ gotoxy::$6 gotoxy::line_offset#0 screenlayer::vera_layer_get_width1_return#0 screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 vera_layer_get_mapbase_offset::return#2 vera_layer_get_mapbase_offset::return#0 vera_layer_mode_tile::mapwidth#10 ] -reg byte a [ gotoxy::$5 ] -reg byte a [ vera_layer_get_color::$3 ] -reg byte a [ vera_layer_get_color::$0 ] -reg byte a [ vera_layer_get_color::$1 ] -reg byte a [ cputln::$2 ] -zp[2]:4 [ cputln::temp#0 cputln::temp#1 vera_layer_get_color::addr#0 memcpy_to_vram::s#2 memcpy_to_vram::s#1 memcpy_in_vram::num#4 memcpy_in_vram::num#0 ] -reg byte a [ cputln::$3 ] -reg byte a [ memcpy_in_vram::$0 ] -reg byte a [ memcpy_in_vram::$1 ] -reg byte a [ memcpy_in_vram::$2 ] -reg byte a [ memcpy_in_vram::$3 ] -reg byte a [ memcpy_in_vram::$4 ] -reg byte a [ memcpy_in_vram::$5 ] -reg byte a [ vera_layer_mode_tile::$14 ] -reg byte a [ vera_layer_set_config::layer#0 ] -reg byte x [ vera_layer_set_config::config#0 ] -zp[2]:53 [ vera_layer_mode_tile::$1 vera_layer_get_rowskip::return#2 screenlayer::$4 vera_layer_get_rowskip::return#0 ] -zp[1]:61 [ vera_layer_mode_tile::$17 ] -reg byte a [ vera_layer_mode_tile::$2 ] -zp[1]:60 [ vera_layer_mode_tile::$18 ] -zp[4]:45 [ vera_layer_mode_tile::mapbase_address#0 ] -reg byte x [ vera_layer_mode_tile::mapbase#0 ] -zp[2]:43 [ vera_layer_mode_tile::$6 screenlayer::vera_layer_get_height1_config#0 ] -reg byte a [ vera_layer_mode_tile::$7 ] -zp[4]:49 [ vera_layer_mode_tile::tilebase_address#0 ] -reg byte a [ vera_layer_mode_tile::tilebase#0 ] -reg byte a [ vera_layer_set_tilebase::layer#0 ] -reg byte x [ vera_layer_set_tilebase::tilebase#0 ] -reg byte a [ vera_layer_mode_tile::$13 ] -reg byte a [ vera_layer_mode_tile::$12 ] -reg byte a [ vera_layer_mode_tile::$11 ] -reg byte y [ vera_layer_get_backcolor::layer#0 ] -reg byte a [ vera_layer_get_backcolor::return#0 ] -reg byte a [ clrscr::$0 ] -zp[1]:83 [ clrscr::$1 ] -reg byte y [ vera_layer_get_textcolor::layer#0 ] -reg byte a [ vera_layer_get_textcolor::return#0 ] -reg byte a [ clrscr::$2 ] -zp[1]:32 [ clrscr::color#0 vera_tile_area::h#6 ] -reg byte a [ clrscr::$9 ] -reg byte a [ clrscr::$5 ] -reg byte a [ clrscr::$6 ] -reg byte a [ clrscr::$7 ] -reg byte a [ memcpy_to_vram::$0 ] -reg byte a [ memcpy_to_vram::$1 ] -zp[1]:42 [ vera_tile_area::shift#0 ] -zp[2]:30 [ vera_tile_area::rowskip#0 printf_str::s#9 printf_str::s#10 printf_str::s#0 ] -zp[1]:40 [ vera_tile_area::hflip#0 ] -zp[1]:27 [ vera_tile_area::vflip#0 vera_tile_area::index_h#2 ] -zp[1]:28 [ vera_tile_area::index_l#0 ] -reg byte a [ vera_tile_area::index_h#0 ] -reg byte a [ vera_tile_area::index_h#1 ] -zp[2]:8 [ vera_tile_area::$10 vera_tile_area::$4 cputc::conio_addr#0 cputc::conio_addr#1 memcpy_to_vram::vdest#2 memcpy_to_vram::vdest#1 memcpy_in_vram::dest#3 memcpy_in_vram::dest#0 insertup::start#0 insertup::line#0 ] -reg byte a [ vera_tile_area::$5 ] -reg byte a [ vera_tile_area::vera_vram_address01_$0 ] -reg byte a [ vera_tile_area::vera_vram_address01_$1 ] -reg byte a [ vera_tile_area::vera_vram_address01_$2 ] -reg byte a [ vera_tile_area::vera_vram_address01_$3 ] -reg byte a [ printf_str::c#1 ] -zp[1]:56 [ kbhit::ch ] -reg byte a [ kbhit::return#0 ] -reg byte a [ kbhit::return#1 ] -reg byte x [ vera_layer_get_mapbase_bank::return#0 ] -reg byte a [ vera_layer_get_mapbase_offset::$0 ] -reg byte a [ vera_layer_get_rowshift::return#0 ] -reg byte a [ vera_layer_get_rowskip::$0 ] -reg byte a [ vera_layer_set_config::$0 ] -reg byte a [ vera_layer_set_tilebase::$0 ] -zp[2]:34 [ vera_layer_set_tilebase::addr#0 vera_layer_set_config::addr#0 vera_layer_set_text_color_mode::addr#0 vera_layer_set_mapbase::addr#0 screenlayer::vera_layer_get_width1_config#0 ] -reg byte a [ vera_layer_get_backcolor::return#1 ] -reg byte a [ vera_layer_get_textcolor::return#1 ] -zp[1]:14 [ insertup::cy#0 vera_tile_area::w#11 ] -zp[1]:11 [ insertup::width#0 vera_tile_area::r#2 vera_tile_area::r#1 ] -reg byte a [ insertup::$3 ] -reg byte a [ clearline::$5 ] -zp[2]:12 [ clearline::addr#0 ] -reg byte a [ clearline::$1 ] -reg byte a [ clearline::$2 ] -reg byte a [ vera_layer_get_color::return#4 ] -reg byte x [ clearline::color#0 ] - - -FINAL ASSEMBLER -Score: 399171 - - // File Comments -// Example program for the Commander X16. -// Demonstrates the usage of the VERA tile map modes and layering. - // Upstart -.cpu _65c02 - // Commodore 64 PRG executable file -.file [name="tilemap_8bpp_16_x_16.prg", type="prg", segments="Program"] -.segmentdef Program [segments="Basic, Code, Data"] -.segmentdef Basic [start=$0801] -.segmentdef Code [start=$80d] -.segmentdef Data [startAfter="Code"] -.segment Basic -:BasicUpstart(__start) - // Global Constants & labels - /// The colors of the CX16 - .const BLACK = 0 - .const WHITE = 1 - .const BLUE = 6 - .const VERA_INC_1 = $10 - .const VERA_ADDRSEL = 1 - .const VERA_LAYER1_ENABLE = $20 - .const VERA_LAYER0_ENABLE = $10 - .const VERA_LAYER_WIDTH_64 = $10 - .const VERA_LAYER_WIDTH_128 = $20 - .const VERA_LAYER_WIDTH_256 = $30 - .const VERA_LAYER_WIDTH_MASK = $30 - .const VERA_LAYER_HEIGHT_64 = $40 - .const VERA_LAYER_HEIGHT_128 = $80 - .const VERA_LAYER_HEIGHT_256 = $c0 - .const VERA_LAYER_HEIGHT_MASK = $c0 - /// Bit 0-1: Color Depth (0: 1 bpp, 1: 2 bpp, 2: 4 bpp, 3: 8 bpp) - .const VERA_LAYER_COLOR_DEPTH_1BPP = 0 - .const VERA_LAYER_COLOR_DEPTH_2BPP = 1 - .const VERA_LAYER_COLOR_DEPTH_4BPP = 2 - .const VERA_LAYER_COLOR_DEPTH_8BPP = 3 - .const VERA_LAYER_CONFIG_256C = 8 - .const VERA_TILEBASE_WIDTH_16 = 1 - .const VERA_TILEBASE_HEIGHT_16 = 2 - .const VERA_LAYER_TILEBASE_MASK = $fc - .const SIZEOF_POINTER = 2 - .const STACK_BASE = $103 - /// $9F20 VRAM Address (7:0) - .label VERA_ADDRX_L = $9f20 - /// $9F21 VRAM Address (15:8) - .label VERA_ADDRX_M = $9f21 - /// $9F22 VRAM Address (7:0) - /// Bit 4-7: Address Increment The following is the amount incremented per value value:increment - /// 0:0, 1:1, 2:2, 3:4, 4:8, 5:16, 6:32, 7:64, 8:128, 9:256, 10:512, 11:40, 12:80, 13:160, 14:320, 15:640 - /// Bit 3: DECR Setting the DECR bit, will decrement instead of increment by the value set by the 'Address Increment' field. - /// Bit 0: VRAM Address (16) - .label VERA_ADDRX_H = $9f22 - /// $9F23 DATA0 VRAM Data port 0 - .label VERA_DATA0 = $9f23 - /// $9F24 DATA1 VRAM Data port 1 - .label VERA_DATA1 = $9f24 - /// $9F25 CTRL Control - /// Bit 7: Reset - /// Bit 1: DCSEL - /// Bit 2: ADDRSEL - .label VERA_CTRL = $9f25 - /// $9F29 DC_VIDEO (DCSEL=0) - /// Bit 7: Current Field Read-only bit which reflects the active interlaced field in composite and RGB modes. (0: even, 1: odd) - /// Bit 6: Sprites Enable Enable output from the Sprites renderer - /// Bit 5: Layer1 Enable Enable output from the Layer1 renderer - /// Bit 4: Layer0 Enable Enable output from the Layer0 renderer - /// Bit 2: Chroma Disable Setting 'Chroma Disable' disables output of chroma in NTSC composite mode and will give a better picture on a monochrome display. (Setting this bit will also disable the chroma output on the S-video output.) - /// Bit 0-1: Output Mode 0: Video disabled, 1: VGA output, 2: NTSC composite, 3: RGB interlaced, composite sync (via VGA connector) - .label VERA_DC_VIDEO = $9f29 - /// $9F2A DC_HSCALE (DCSEL=0) Active Display H-Scale - .label VERA_DC_HSCALE = $9f2a - /// $9F2B DC_VSCALE (DCSEL=0) Active Display V-Scale - .label VERA_DC_VSCALE = $9f2b - /// $9F2D L0_CONFIG Layer 0 Configuration - .label VERA_L0_CONFIG = $9f2d - /// $9F2E L0_MAPBASE Layer 0 Map Base Address (16:9) - .label VERA_L0_MAPBASE = $9f2e - /// Bit 0: Tile Width (0:8 pixels, 1:16 pixels) - .label VERA_L0_TILEBASE = $9f2f - /// $9F34 L1_CONFIG Layer 1 Configuration - .label VERA_L1_CONFIG = $9f34 - /// $9F35 L1_MAPBASE Layer 1 Map Base Address (16:9) - .label VERA_L1_MAPBASE = $9f35 - /// $9F36 L1_TILEBASE Layer 1 Tile Base - /// Bit 2-7: Tile Base Address (16:11) - /// Bit 1: Tile Height (0:8 pixels, 1:16 pixels) - /// Bit 0: Tile Width (0:8 pixels, 1:16 pixels) - .label VERA_L1_TILEBASE = $9f36 - // Variable holding the screen width; - .label conio_screen_width = $f - // Variable holding the screen height; - .label conio_screen_height = $21 - // Variable holding the screen layer on the VERA card with which conio interacts; - .label conio_screen_layer = $1d - // Variables holding the current map width and map height of the layer. - .label conio_width = $46 - .label conio_height = $26 - .label conio_rowshift = $18 - .label conio_rowskip = $19 - // The screen width - // The screen height - // The text screen base address, which is a 16:0 bit value in VERA VRAM. - // That is 128KB addressable space, thus 17 bits in total. - // CONIO_SCREEN_TEXT contains bits 15:0 of the address. - // CONIO_SCREEN_BANK contains bit 16, the the 64K memory bank in VERA VRAM (the upper 17th bit). - // !!! note that these values are not const for the cx16! - // This conio implements the two layers of VERA, which can be layer 0 or layer 1. - // Configuring conio to output to a different layer, will change these fields to the address base - // configured using VERA_L0_MAPBASE = 0x9f2e or VERA_L1_MAPBASE = 0x9f35. - // Using the function setscreenlayer(layer) will re-calculate using CONIO_SCREEN_TEXT and CONIO_SCREEN_BASE - // based on the values of VERA_L0_MAPBASE or VERA_L1_MAPBASE, mapping the base address of the selected layer. - // The function setscreenlayermapbase(layer,mapbase) allows to configure bit 16:9 of the - // mapbase address of the time map in VRAM of the selected layer VERA_L0_MAPBASE or VERA_L1_MAPBASE. - .label CONIO_SCREEN_TEXT = $12 - .label CONIO_SCREEN_BANK = $39 - // The screen width - // The screen height - // The text screen base address, which is a 16:0 bit value in VERA VRAM. - // That is 128KB addressable space, thus 17 bits in total. - // CONIO_SCREEN_TEXT contains bits 15:0 of the address. - // CONIO_SCREEN_BANK contains bit 16, the the 64K memory bank in VERA VRAM (the upper 17th bit). - // !!! note that these values are not const for the cx16! - // This conio implements the two layers of VERA, which can be layer 0 or layer 1. - // Configuring conio to output to a different layer, will change these fields to the address base - // configured using VERA_L0_MAPBASE = 0x9f2e or VERA_L1_MAPBASE = 0x9f35. - // Using the function setscreenlayer(layer) will re-calculate using CONIO_SCREEN_TEXT and CONIO_SCREEN_BASE - // based on the values of VERA_L0_MAPBASE or VERA_L1_MAPBASE, mapping the base address of the selected layer. - // The function setscreenlayermapbase(layer,mapbase) allows to configure bit 16:9 of the - // mapbase address of the time map in VRAM of the selected layer VERA_L0_MAPBASE or VERA_L1_MAPBASE. - .label CONIO_SCREEN_TEXT_1 = $56 -.segment Code - // __start -__start: { - // __start::__init1 - // __ma unsigned byte conio_screen_width = 0 - // [1] conio_screen_width = 0 -- vbuz1=vbuc1 - lda #0 - sta.z conio_screen_width - // __ma unsigned byte conio_screen_height = 0 - // [2] conio_screen_height = 0 -- vbuz1=vbuc1 - sta.z conio_screen_height - // __ma unsigned byte conio_screen_layer = 1 - // [3] conio_screen_layer = 1 -- vbuz1=vbuc1 - lda #1 - sta.z conio_screen_layer - // __ma word conio_width = 0 - // [4] conio_width = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z conio_width - sta.z conio_width+1 - // __ma word conio_height = 0 - // [5] conio_height = 0 -- vwuz1=vwuc1 - sta.z conio_height - sta.z conio_height+1 - // __ma byte conio_rowshift = 0 - // [6] conio_rowshift = 0 -- vbuz1=vbuc1 - sta.z conio_rowshift - // __ma word conio_rowskip = 0 - // [7] conio_rowskip = 0 -- vwuz1=vwuc1 - sta.z conio_rowskip - sta.z conio_rowskip+1 - // #pragma constructor_for(conio_x16_init, cputc, clrscr, cscroll) - // [8] call conio_x16_init - jsr conio_x16_init - // [9] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] - // __start::@1 - // [10] call main - // [65] phi from __start::@1 to main [phi:__start::@1->main] - jsr main - // __start::@return - // [11] return - rts -} - // conio_x16_init -// Set initial cursor position -conio_x16_init: { - // Position cursor at current line - .label BASIC_CURSOR_LINE = $d6 - .label line = $52 - // char line = *BASIC_CURSOR_LINE - // [12] conio_x16_init::line#0 = *conio_x16_init::BASIC_CURSOR_LINE -- vbuz1=_deref_pbuc1 - lda.z BASIC_CURSOR_LINE - sta.z line - // vera_layer_mode_text(1,(dword)0x00000,(dword)0x0F800,128,64,8,8,16) - // [13] call vera_layer_mode_text - // [171] phi from conio_x16_init to vera_layer_mode_text [phi:conio_x16_init->vera_layer_mode_text] - jsr vera_layer_mode_text - // [14] phi from conio_x16_init to conio_x16_init::@3 [phi:conio_x16_init->conio_x16_init::@3] - // conio_x16_init::@3 - // screensize(&conio_screen_width, &conio_screen_height) - // [15] call screensize - jsr screensize - // [16] phi from conio_x16_init::@3 to conio_x16_init::@4 [phi:conio_x16_init::@3->conio_x16_init::@4] - // conio_x16_init::@4 - // screenlayer(1) - // [17] call screenlayer - jsr screenlayer - // [18] phi from conio_x16_init::@4 to conio_x16_init::@5 [phi:conio_x16_init::@4->conio_x16_init::@5] - // conio_x16_init::@5 - // vera_layer_set_textcolor(1, WHITE) - // [19] call vera_layer_set_textcolor - // [223] phi from conio_x16_init::@5 to vera_layer_set_textcolor [phi:conio_x16_init::@5->vera_layer_set_textcolor] - // [223] phi vera_layer_set_textcolor::layer#3 = 1 [phi:conio_x16_init::@5->vera_layer_set_textcolor#0] -- vbuyy=vbuc1 - ldy #1 - jsr vera_layer_set_textcolor - // [20] phi from conio_x16_init::@5 to conio_x16_init::@6 [phi:conio_x16_init::@5->conio_x16_init::@6] - // conio_x16_init::@6 - // vera_layer_set_backcolor(1, BLUE) - // [21] call vera_layer_set_backcolor - // [226] phi from conio_x16_init::@6 to vera_layer_set_backcolor [phi:conio_x16_init::@6->vera_layer_set_backcolor] - // [226] phi vera_layer_set_backcolor::color#3 = BLUE [phi:conio_x16_init::@6->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLUE - // [226] phi vera_layer_set_backcolor::layer#3 = 1 [phi:conio_x16_init::@6->vera_layer_set_backcolor#1] -- vbuyy=vbuc1 - ldy #1 - jsr vera_layer_set_backcolor - // [22] phi from conio_x16_init::@6 to conio_x16_init::@7 [phi:conio_x16_init::@6->conio_x16_init::@7] - // conio_x16_init::@7 - // vera_layer_set_mapbase(0,0x20) - // [23] call vera_layer_set_mapbase - // [229] phi from conio_x16_init::@7 to vera_layer_set_mapbase [phi:conio_x16_init::@7->vera_layer_set_mapbase] - // [229] phi vera_layer_set_mapbase::mapbase#3 = $20 [phi:conio_x16_init::@7->vera_layer_set_mapbase#0] -- vbuxx=vbuc1 - ldx #$20 - // [229] phi vera_layer_set_mapbase::layer#3 = 0 [phi:conio_x16_init::@7->vera_layer_set_mapbase#1] -- vbuaa=vbuc1 - lda #0 - jsr vera_layer_set_mapbase - // [24] phi from conio_x16_init::@7 to conio_x16_init::@8 [phi:conio_x16_init::@7->conio_x16_init::@8] - // conio_x16_init::@8 - // vera_layer_set_mapbase(1,0x00) - // [25] call vera_layer_set_mapbase - // [229] phi from conio_x16_init::@8 to vera_layer_set_mapbase [phi:conio_x16_init::@8->vera_layer_set_mapbase] - // [229] phi vera_layer_set_mapbase::mapbase#3 = 0 [phi:conio_x16_init::@8->vera_layer_set_mapbase#0] -- vbuxx=vbuc1 - ldx #0 - // [229] phi vera_layer_set_mapbase::layer#3 = 1 [phi:conio_x16_init::@8->vera_layer_set_mapbase#1] -- vbuaa=vbuc1 - lda #1 - jsr vera_layer_set_mapbase - // conio_x16_init::@9 - // if(line>=CONIO_HEIGHT) - // [26] if(conio_x16_init::line#0conio_x16_init::@1] - // [28] phi conio_x16_init::line#3 = conio_x16_init::line#1 [phi:conio_x16_init::@2/conio_x16_init::@9->conio_x16_init::@1#0] -- register_copy - // conio_x16_init::@1 - __b1: - // gotoxy(0, line) - // [29] gotoxy::y#1 = conio_x16_init::line#3 -- vbuxx=vbuz1 - ldx.z line - // [30] call gotoxy - // [234] phi from conio_x16_init::@1 to gotoxy [phi:conio_x16_init::@1->gotoxy] - // [234] phi gotoxy::y#4 = gotoxy::y#1 [phi:conio_x16_init::@1->gotoxy#0] -- register_copy - jsr gotoxy - // conio_x16_init::@return - // } - // [31] return - rts -} - // cputc -// Output one character at the current cursor position -// Moves the cursor forward. Scrolls the entire screen if needed -// void cputc(__zp($a) char c) -cputc: { - .const OFFSET_STACK_C = 0 - .label __16 = 6 - .label c = $a - .label conio_addr = 8 - // [33] cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C) -- vbuz1=_stackidxbyte_vbuc1 - tsx - lda STACK_BASE+OFFSET_STACK_C,x - sta.z c - // char color = vera_layer_get_color( conio_screen_layer) - // [34] vera_layer_get_color::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [35] call vera_layer_get_color - // [247] phi from cputc to vera_layer_get_color [phi:cputc->vera_layer_get_color] - // [247] phi vera_layer_get_color::layer#2 = vera_layer_get_color::layer#0 [phi:cputc->vera_layer_get_color#0] -- register_copy - jsr vera_layer_get_color - // char color = vera_layer_get_color( conio_screen_layer) - // [36] vera_layer_get_color::return#0 = vera_layer_get_color::return#3 - // cputc::@7 - // [37] cputc::color#0 = vera_layer_get_color::return#0 -- vbuxx=vbuaa - tax - // char* conio_addr = CONIO_SCREEN_TEXT + conio_line_text[conio_screen_layer] - // [38] cputc::$15 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [39] cputc::conio_addr#0 = CONIO_SCREEN_TEXT#12 + conio_line_text[cputc::$15] -- pbuz1=pbuz2_plus_pwuc1_derefidx_vbuaa - tay - clc - lda.z CONIO_SCREEN_TEXT - adc conio_line_text,y - sta.z conio_addr - lda.z CONIO_SCREEN_TEXT+1 - adc conio_line_text+1,y - sta.z conio_addr+1 - // conio_cursor_x[conio_screen_layer] << 1 - // [40] cputc::$2 = conio_cursor_x[conio_screen_layer] << 1 -- vbuaa=pbuc1_derefidx_vbuz1_rol_1 - ldy.z conio_screen_layer - lda conio_cursor_x,y - asl - // conio_addr += conio_cursor_x[conio_screen_layer] << 1 - // [41] cputc::conio_addr#1 = cputc::conio_addr#0 + cputc::$2 -- pbuz1=pbuz1_plus_vbuaa - clc - adc.z conio_addr - sta.z conio_addr - bcc !+ - inc.z conio_addr+1 - !: - // if(c=='\n') - // [42] if(cputc::c#0==' ') goto cputc::@1 -- vbuz1_eq_vbuc1_then_la1 - lda #'\n' - cmp.z c - beq __b1 - // cputc::@2 - // *VERA_CTRL &= ~VERA_ADDRSEL - // [43] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(conio_addr) - // [44] cputc::$4 = byte0 cputc::conio_addr#1 -- vbuaa=_byte0_pbuz1 - lda.z conio_addr - // *VERA_ADDRX_L = BYTE0(conio_addr) - // [45] *VERA_ADDRX_L = cputc::$4 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // BYTE1(conio_addr) - // [46] cputc::$5 = byte1 cputc::conio_addr#1 -- vbuaa=_byte1_pbuz1 - lda.z conio_addr+1 - // *VERA_ADDRX_M = BYTE1(conio_addr) - // [47] *VERA_ADDRX_M = cputc::$5 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // CONIO_SCREEN_BANK | VERA_INC_1 - // [48] cputc::$6 = CONIO_SCREEN_BANK#12 | VERA_INC_1 -- vbuaa=vbuz1_bor_vbuc1 - lda #VERA_INC_1 - ora.z CONIO_SCREEN_BANK - // *VERA_ADDRX_H = CONIO_SCREEN_BANK | VERA_INC_1 - // [49] *VERA_ADDRX_H = cputc::$6 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_H - // *VERA_DATA0 = c - // [50] *VERA_DATA0 = cputc::c#0 -- _deref_pbuc1=vbuz1 - lda.z c - sta VERA_DATA0 - // *VERA_DATA0 = color - // [51] *VERA_DATA0 = cputc::color#0 -- _deref_pbuc1=vbuxx - stx VERA_DATA0 - // conio_cursor_x[conio_screen_layer]++; - // [52] conio_cursor_x[conio_screen_layer] = ++ conio_cursor_x[conio_screen_layer] -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 - ldx.z conio_screen_layer - inc conio_cursor_x,x - // byte scroll_enable = conio_scroll_enable[conio_screen_layer] - // [53] cputc::scroll_enable#0 = conio_scroll_enable[conio_screen_layer] -- vbuaa=pbuc1_derefidx_vbuz1 - ldy.z conio_screen_layer - lda conio_scroll_enable,y - // if(scroll_enable) - // [54] if(0!=cputc::scroll_enable#0) goto cputc::@5 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b5 - // cputc::@3 - // (unsigned int)conio_cursor_x[conio_screen_layer] == conio_width - // [55] cputc::$16 = (unsigned int)conio_cursor_x[conio_screen_layer] -- vwuz1=_word_pbuc1_derefidx_vbuz2 - lda conio_cursor_x,y - sta.z __16 - lda #0 - sta.z __16+1 - // if((unsigned int)conio_cursor_x[conio_screen_layer] == conio_width) - // [56] if(cputc::$16!=conio_width) goto cputc::@return -- vwuz1_neq_vwuz2_then_la1 - cmp.z conio_width+1 - bne __breturn - lda.z __16 - cmp.z conio_width - bne __breturn - // [57] phi from cputc::@3 to cputc::@4 [phi:cputc::@3->cputc::@4] - // cputc::@4 - // cputln() - // [58] call cputln - jsr cputln - // cputc::@return - __breturn: - // } - // [59] return - rts - // cputc::@5 - __b5: - // if(conio_cursor_x[conio_screen_layer] == CONIO_WIDTH) - // [60] if(conio_cursor_x[conio_screen_layer]!=conio_screen_width) goto cputc::@return -- pbuc1_derefidx_vbuz1_neq_vbuz2_then_la1 - lda.z conio_screen_width - ldy.z conio_screen_layer - cmp conio_cursor_x,y - bne __breturn - // [61] phi from cputc::@5 to cputc::@6 [phi:cputc::@5->cputc::@6] - // cputc::@6 - // cputln() - // [62] call cputln - jsr cputln - rts - // [63] phi from cputc::@7 to cputc::@1 [phi:cputc::@7->cputc::@1] - // cputc::@1 - __b1: - // cputln() - // [64] call cputln - jsr cputln - rts -} - // main -main: { - .label tilebase = $48 - .label t = $3f - .label tile = $24 - .label c = $37 - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - .label row = $40 - .label r = $42 - .label column1 = $29 - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - .label row_1 = $41 - .label r1 = $43 - // memcpy_in_vram(1, (char*)0xF000, VERA_INC_1, 0, (char*)0xF800, VERA_INC_1, 256*8) - // [66] 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! - // That is 65356 bytes of memory, which is 64K. Yup! One memory bank in VRAM. - // VERA VRAM holds in bank 1 many registers that interfere loading all of this data. - // So it is better to load all in bank 0, but then there is an other issue. - // So the default CX16 character set is located in bank 0, at address 0xF800. - // So we need to move this character set to bank 1, suggested is at address 0xF000. - // The CX16 by default writes textual output to layer 1 in text mode, so we need to - // realign the moved character set to 0xf000 as the new tile base for layer 1. - // We also will need to realign for layer 1 the map base from 0x00000 to 0x10000. - // This is now all easily done with a few statements in the new kickc vera lib ... - // [266] phi from main to memcpy_in_vram [phi:main->memcpy_in_vram] - // [266] phi memcpy_in_vram::num#4 = $100*8 [phi:main->memcpy_in_vram#0] -- vwuz1=vwuc1 - lda #<$100*8 - sta.z memcpy_in_vram.num - lda #>$100*8 - sta.z memcpy_in_vram.num+1 - // [266] 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 - // [266] phi memcpy_in_vram::dest#3 = (void *)(char *) 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 - // [266] phi memcpy_in_vram::src_bank#3 = 0 [phi:main->memcpy_in_vram#3] -- vbuyy=vbuc1 - ldy #0 - // [266] phi memcpy_in_vram::src#3 = (void *)(char *) 63488 [phi:main->memcpy_in_vram#4] -- pvoz1=pvoc1 - lda #<$f800 - sta.z memcpy_in_vram.src - lda #>$f800 - sta.z memcpy_in_vram.src+1 - jsr memcpy_in_vram - // [67] phi from main to main::@19 [phi:main->main::@19] - // main::@19 - // vera_layer_mode_tile(1, 0x10000, 0x1F000, 128, 64, 8, 8, 1) - // [68] call vera_layer_mode_tile - // We copy the 128 character set of 8 bytes each. - // [286] phi from main::@19 to vera_layer_mode_tile [phi:main::@19->vera_layer_mode_tile] - // [286] phi vera_layer_mode_tile::tileheight#10 = 8 [phi:main::@19->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #8 - sta.z vera_layer_mode_tile.tileheight - // [286] phi vera_layer_mode_tile::tilewidth#10 = 8 [phi:main::@19->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - sta.z vera_layer_mode_tile.tilewidth - // [286] phi vera_layer_mode_tile::tilebase_address#10 = $1f000 [phi:main::@19->vera_layer_mode_tile#2] -- vduz1=vduc1 - lda #<$1f000 - sta.z vera_layer_mode_tile.tilebase_address_1 - lda #>$1f000 - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #<$1f000>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>$1f000>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - // [286] phi vera_layer_mode_tile::mapbase_address#10 = $10000 [phi:main::@19->vera_layer_mode_tile#3] -- vduz1=vduc1 - lda #<$10000 - sta.z vera_layer_mode_tile.mapbase_address_1 - lda #>$10000 - sta.z vera_layer_mode_tile.mapbase_address_1+1 - lda #<$10000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - lda #>$10000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - // [286] phi vera_layer_mode_tile::mapheight#10 = $40 [phi:main::@19->vera_layer_mode_tile#4] -- vwuz1=vbuc1 - lda #<$40 - sta.z vera_layer_mode_tile.mapheight - lda #>$40 - sta.z vera_layer_mode_tile.mapheight+1 - // [286] phi vera_layer_mode_tile::layer#10 = 1 [phi:main::@19->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #1 - sta.z vera_layer_mode_tile.layer - // [286] phi vera_layer_mode_tile::mapwidth#10 = $80 [phi:main::@19->vera_layer_mode_tile#6] -- vwuz1=vbuc1 - lda #<$80 - sta.z vera_layer_mode_tile.mapwidth - lda #>$80 - sta.z vera_layer_mode_tile.mapwidth+1 - // [286] phi vera_layer_mode_tile::color_depth#5 = 1 [phi:main::@19->vera_layer_mode_tile#7] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_mode_tile - // [69] phi from main::@19 to main::@20 [phi:main::@19->main::@20] - // main::@20 - // screenlayer(1) - // [70] call screenlayer - jsr screenlayer - // main::textcolor1 - // vera_layer_set_textcolor(conio_screen_layer, color) - // [71] vera_layer_set_textcolor::layer#1 = conio_screen_layer -- vbuyy=vbuz1 - ldy.z conio_screen_layer - // [72] call vera_layer_set_textcolor - // [223] phi from main::textcolor1 to vera_layer_set_textcolor [phi:main::textcolor1->vera_layer_set_textcolor] - // [223] phi vera_layer_set_textcolor::layer#3 = vera_layer_set_textcolor::layer#1 [phi:main::textcolor1->vera_layer_set_textcolor#0] -- register_copy - jsr vera_layer_set_textcolor - // main::bgcolor1 - // vera_layer_set_backcolor(conio_screen_layer, color) - // [73] vera_layer_set_backcolor::layer#1 = conio_screen_layer -- vbuyy=vbuz1 - ldy.z conio_screen_layer - // [74] call vera_layer_set_backcolor - // [226] phi from main::bgcolor1 to vera_layer_set_backcolor [phi:main::bgcolor1->vera_layer_set_backcolor] - // [226] phi vera_layer_set_backcolor::color#3 = BLACK [phi:main::bgcolor1->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLACK - // [226] phi vera_layer_set_backcolor::layer#3 = vera_layer_set_backcolor::layer#1 [phi:main::bgcolor1->vera_layer_set_backcolor#1] -- register_copy - jsr vera_layer_set_backcolor - // [75] phi from main::bgcolor1 to main::@16 [phi:main::bgcolor1->main::@16] - // main::@16 - // clrscr() - // [76] call clrscr - jsr clrscr - // [77] phi from main::@16 to main::@21 [phi:main::@16->main::@21] - // main::@21 - // vera_layer_mode_tile(0, 0x14000, 0x00000, 64, 64, 16, 16, 8) - // [78] call vera_layer_mode_tile - // Now we can use the full bank 0! - // We set the mapbase of the tile demo to output to 0x12000, - // and the tilebase is set to 0x0000! - // [286] phi from main::@21 to vera_layer_mode_tile [phi:main::@21->vera_layer_mode_tile] - // [286] phi vera_layer_mode_tile::tileheight#10 = $10 [phi:main::@21->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #$10 - sta.z vera_layer_mode_tile.tileheight - // [286] phi vera_layer_mode_tile::tilewidth#10 = $10 [phi:main::@21->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - sta.z vera_layer_mode_tile.tilewidth - // [286] phi vera_layer_mode_tile::tilebase_address#10 = 0 [phi:main::@21->vera_layer_mode_tile#2] -- vduz1=vbuc1 - lda #0 - sta.z vera_layer_mode_tile.tilebase_address_1 - sta.z vera_layer_mode_tile.tilebase_address_1+1 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - // [286] phi vera_layer_mode_tile::mapbase_address#10 = $14000 [phi:main::@21->vera_layer_mode_tile#3] -- vduz1=vduc1 - lda #<$14000 - sta.z vera_layer_mode_tile.mapbase_address_1 - lda #>$14000 - sta.z vera_layer_mode_tile.mapbase_address_1+1 - lda #<$14000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - lda #>$14000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - // [286] phi vera_layer_mode_tile::mapheight#10 = $40 [phi:main::@21->vera_layer_mode_tile#4] -- vwuz1=vbuc1 - lda #<$40 - sta.z vera_layer_mode_tile.mapheight - lda #>$40 - sta.z vera_layer_mode_tile.mapheight+1 - // [286] phi vera_layer_mode_tile::layer#10 = 0 [phi:main::@21->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #0 - sta.z vera_layer_mode_tile.layer - // [286] phi vera_layer_mode_tile::mapwidth#10 = $40 [phi:main::@21->vera_layer_mode_tile#6] -- vwuz1=vbuc1 - lda #<$40 - sta.z vera_layer_mode_tile.mapwidth - lda #>$40 - sta.z vera_layer_mode_tile.mapwidth+1 - // [286] phi vera_layer_mode_tile::color_depth#5 = 8 [phi:main::@21->vera_layer_mode_tile#7] -- vbuxx=vbuc1 - ldx #8 - jsr vera_layer_mode_tile - // [79] phi from main::@21 to main::@22 [phi:main::@21->main::@22] - // main::@22 - // memcpy_to_vram(0, tilebase, tiles, 256) - // [80] call memcpy_to_vram - // [388] phi from main::@22 to memcpy_to_vram [phi:main::@22->memcpy_to_vram] - // [388] phi memcpy_to_vram::vdest#2 = (void *)(char *) 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 - jsr memcpy_to_vram - // [81] phi from main::@22 to main::@1 [phi:main::@22->main::@1] - // [81] phi main::t#5 = 1 [phi:main::@22->main::@1#0] -- vbuz1=vbuc1 - lda #1 - sta.z t - // [81] phi main::tilebase#7 = (char *) 0+$100 [phi:main::@22->main::@1#1] -- pbuz1=pbuc1 - lda #<0+$100 - sta.z tilebase - lda #>0+$100 - sta.z tilebase+1 - // [81] phi from main::@23 to main::@1 [phi:main::@23->main::@1] - // [81] phi main::t#5 = main::t#1 [phi:main::@23->main::@1#0] -- register_copy - // [81] phi main::tilebase#7 = main::tilebase#2 [phi:main::@23->main::@1#1] -- register_copy - // main::@1 - __b1: - // [82] phi from main::@1 to main::@2 [phi:main::@1->main::@2] - // [82] phi main::p#2 = 0 [phi:main::@1->main::@2#0] -- vbuxx=vbuc1 - ldx #0 - // [82] phi from main::@2 to main::@2 [phi:main::@2->main::@2] - // [82] phi main::p#2 = main::p#1 [phi:main::@2->main::@2#0] -- register_copy - // main::@2 - __b2: - // tiles[p]+=1 - // [83] main::tiles[main::p#2] = main::tiles[main::p#2] + 1 -- pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_1 - lda tiles,x - inc - sta tiles,x - // for(byte p:0..255) - // [84] main::p#1 = ++ main::p#2 -- vbuxx=_inc_vbuxx - inx - // [85] if(main::p#1!=0) goto main::@2 -- vbuxx_neq_0_then_la1 - cpx #0 - bne __b2 - // main::@3 - // memcpy_to_vram(0, tilebase, tiles, 256) - // [86] memcpy_to_vram::vdest#1 = (void *)main::tilebase#7 -- pvoz1=pvoz2 - lda.z tilebase - sta.z memcpy_to_vram.vdest - lda.z tilebase+1 - sta.z memcpy_to_vram.vdest+1 - // [87] call memcpy_to_vram - // [388] phi from main::@3 to memcpy_to_vram [phi:main::@3->memcpy_to_vram] - // [388] phi memcpy_to_vram::vdest#2 = memcpy_to_vram::vdest#1 [phi:main::@3->memcpy_to_vram#0] -- register_copy - jsr memcpy_to_vram - // main::@23 - // tilebase+=256 - // [88] main::tilebase#2 = main::tilebase#7 + $100 -- pbuz1=pbuz1_plus_vwuc1 - lda.z tilebase - clc - adc #<$100 - sta.z tilebase - lda.z tilebase+1 - adc #>$100 - sta.z tilebase+1 - // for(byte t:1..255) - // [89] main::t#1 = ++ main::t#5 -- vbuz1=_inc_vbuz1 - inc.z t - // [90] if(main::t#1!=0) goto main::@1 -- vbuz1_neq_0_then_la1 - lda.z t - bne __b1 - // [91] phi from main::@23 to main::@4 [phi:main::@23->main::@4] - // main::@4 - // vera_tile_area(0, 0, 0, 0, 40, 30, 0, 0, 0) - // [92] call vera_tile_area - //vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h, byte hflip, byte vflip, byte offset) - // [400] phi from main::@4 to vera_tile_area [phi:main::@4->vera_tile_area] - // [400] phi vera_tile_area::w#11 = $28 [phi:main::@4->vera_tile_area#0] -- vbuz1=vbuc1 - lda #$28 - sta.z vera_tile_area.w - // [400] phi vera_tile_area::h#6 = $1e [phi:main::@4->vera_tile_area#1] -- vbuz1=vbuc1 - lda #$1e - sta.z vera_tile_area.h - // [400] phi vera_tile_area::x#5 = 0 [phi:main::@4->vera_tile_area#2] -- vbuz1=vbuc1 - lda #0 - sta.z vera_tile_area.x - // [400] phi vera_tile_area::y#5 = 0 [phi:main::@4->vera_tile_area#3] -- vbuz1=vbuc1 - sta.z vera_tile_area.y - // [400] phi vera_tile_area::tileindex#5 = 0 [phi:main::@4->vera_tile_area#4] -- vwuz1=vbuc1 - sta.z vera_tile_area.tileindex - sta.z vera_tile_area.tileindex+1 - jsr vera_tile_area - // [93] phi from main::@4 to main::@5 [phi:main::@4->main::@5] - // [93] phi main::r#5 = 0 [phi:main::@4->main::@5#0] -- vbuz1=vbuc1 - lda #0 - sta.z r - // [93] phi main::row#9 = 1 [phi:main::@4->main::@5#1] -- vbuz1=vbuc1 - lda #1 - sta.z row - // [93] phi main::tile#10 = 0 [phi:main::@4->main::@5#2] -- vwuz1=vwuc1 - lda #<0 - sta.z tile - sta.z tile+1 - // [93] phi from main::@7 to main::@5 [phi:main::@7->main::@5] - // [93] phi main::r#5 = main::r#1 [phi:main::@7->main::@5#0] -- register_copy - // [93] phi main::row#9 = main::row#1 [phi:main::@7->main::@5#1] -- register_copy - // [93] phi main::tile#10 = main::tile#12 [phi:main::@7->main::@5#2] -- register_copy - // main::@5 - __b5: - // [94] phi from main::@5 to main::@6 [phi:main::@5->main::@6] - // [94] phi main::c#2 = 0 [phi:main::@5->main::@6#0] -- vbuz1=vbuc1 - lda #0 - sta.z c - // [94] phi main::column#2 = 0 [phi:main::@5->main::@6#1] -- vbuxx=vbuc1 - tax - // [94] phi main::tile#6 = main::tile#10 [phi:main::@5->main::@6#2] -- register_copy - // [94] phi from main::@24 to main::@6 [phi:main::@24->main::@6] - // [94] phi main::c#2 = main::c#1 [phi:main::@24->main::@6#0] -- register_copy - // [94] phi main::column#2 = main::column#1 [phi:main::@24->main::@6#1] -- register_copy - // [94] phi main::tile#6 = main::tile#12 [phi:main::@24->main::@6#2] -- register_copy - // main::@6 - __b6: - // vera_tile_area(0, tile, column, row, 1, 1, 0, 0, 0) - // [95] vera_tile_area::tileindex#1 = main::tile#6 - // [96] vera_tile_area::x#1 = main::column#2 -- vbuz1=vbuxx - stx.z vera_tile_area.x - // [97] vera_tile_area::y#1 = main::row#9 -- vbuz1=vbuz2 - lda.z row - sta.z vera_tile_area.y - // [98] call vera_tile_area - // [400] phi from main::@6 to vera_tile_area [phi:main::@6->vera_tile_area] - // [400] phi vera_tile_area::w#11 = 1 [phi:main::@6->vera_tile_area#0] -- vbuz1=vbuc1 - lda #1 - sta.z vera_tile_area.w - // [400] phi vera_tile_area::h#6 = 1 [phi:main::@6->vera_tile_area#1] -- vbuz1=vbuc1 - sta.z vera_tile_area.h - // [400] phi vera_tile_area::x#5 = vera_tile_area::x#1 [phi:main::@6->vera_tile_area#2] -- register_copy - // [400] phi vera_tile_area::y#5 = vera_tile_area::y#1 [phi:main::@6->vera_tile_area#3] -- register_copy - // [400] phi vera_tile_area::tileindex#5 = vera_tile_area::tileindex#1 [phi:main::@6->vera_tile_area#4] -- register_copy - jsr vera_tile_area - // main::@24 - // column+=2 - // [99] main::column#1 = main::column#2 + 2 -- vbuxx=vbuxx_plus_2 - inx - inx - // tile++; - // [100] main::tile#1 = ++ main::tile#6 -- vwuz1=_inc_vwuz1 - inc.z tile - bne !+ - inc.z tile+1 - !: - // tile &= 0xff - // [101] main::tile#12 = main::tile#1 & $ff -- vwuz1=vwuz1_band_vbuc1 - lda #$ff - and.z tile - sta.z tile - lda #0 - sta.z tile+1 - // for(byte c:0..19) - // [102] main::c#1 = ++ main::c#2 -- vbuz1=_inc_vbuz1 - inc.z c - // [103] if(main::c#1!=$14) goto main::@6 -- vbuz1_neq_vbuc1_then_la1 - lda #$14 - cmp.z c - bne __b6 - // main::@7 - // row += 2 - // [104] main::row#1 = main::row#9 + 2 -- vbuz1=vbuz1_plus_2 - lda.z row - clc - adc #2 - sta.z row - // for(byte r:0..11) - // [105] main::r#1 = ++ main::r#5 -- vbuz1=_inc_vbuz1 - inc.z r - // [106] if(main::r#1!=$c) goto main::@5 -- vbuz1_neq_vbuc1_then_la1 - lda #$c - cmp.z r - bne __b5 - // [107] phi from main::@7 to main::@8 [phi:main::@7->main::@8] - // main::@8 - // gotoxy(0,50) - // [108] call gotoxy - // [234] phi from main::@8 to gotoxy [phi:main::@8->gotoxy] - // [234] phi gotoxy::y#4 = $32 [phi:main::@8->gotoxy#0] -- vbuxx=vbuc1 - ldx #$32 - jsr gotoxy - // [109] phi from main::@8 to main::@25 [phi:main::@8->main::@25] - // main::@25 - // printf("vera in tile mode 8 x 8, color depth 8 bits per pixel.\n") - // [110] call printf_str - // [433] phi from main::@25 to printf_str [phi:main::@25->printf_str] - // [433] phi printf_str::s#10 = main::s [phi:main::@25->printf_str#0] -- pbuz1=pbuc1 - lda #s - sta.z printf_str.s+1 - jsr printf_str - // [111] phi from main::@25 to main::@26 [phi:main::@25->main::@26] - // main::@26 - // printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n") - // [112] call printf_str - // [433] phi from main::@26 to printf_str [phi:main::@26->printf_str] - // [433] phi printf_str::s#10 = main::s1 [phi:main::@26->printf_str#0] -- pbuz1=pbuc1 - lda #s1 - sta.z printf_str.s+1 - jsr printf_str - // [113] phi from main::@26 to main::@27 [phi:main::@26->main::@27] - // main::@27 - // printf("each tile can have a variation of 256 colors.\n") - // [114] call printf_str - // [433] phi from main::@27 to printf_str [phi:main::@27->printf_str] - // [433] phi printf_str::s#10 = main::s2 [phi:main::@27->printf_str#0] -- pbuz1=pbuc1 - lda #s2 - sta.z printf_str.s+1 - jsr printf_str - // [115] phi from main::@27 to main::@28 [phi:main::@27->main::@28] - // main::@28 - // printf("the vera palette of 256 colors, can be used by setting the palette\n") - // [116] call printf_str - // [433] phi from main::@28 to printf_str [phi:main::@28->printf_str] - // [433] phi printf_str::s#10 = main::s3 [phi:main::@28->printf_str#0] -- pbuz1=pbuc1 - lda #s3 - sta.z printf_str.s+1 - jsr printf_str - // [117] phi from main::@28 to main::@29 [phi:main::@28->main::@29] - // main::@29 - // printf("offset for each tile.\n") - // [118] call printf_str - // [433] phi from main::@29 to printf_str [phi:main::@29->printf_str] - // [433] phi printf_str::s#10 = main::s4 [phi:main::@29->printf_str#0] -- pbuz1=pbuc1 - lda #s4 - sta.z printf_str.s+1 - jsr printf_str - // [119] phi from main::@29 to main::@30 [phi:main::@29->main::@30] - // main::@30 - // printf("here each column is displaying the same tile, but with different offsets!\n") - // [120] call printf_str - // [433] phi from main::@30 to printf_str [phi:main::@30->printf_str] - // [433] phi printf_str::s#10 = main::s5 [phi:main::@30->printf_str#0] -- pbuz1=pbuc1 - lda #s5 - sta.z printf_str.s+1 - jsr printf_str - // [121] phi from main::@30 to main::@31 [phi:main::@30->main::@31] - // main::@31 - // printf("each offset aligns to multiples of 16 colors in the palette!.\n") - // [122] call printf_str - // [433] phi from main::@31 to printf_str [phi:main::@31->printf_str] - // [433] phi printf_str::s#10 = main::s6 [phi:main::@31->printf_str#0] -- pbuz1=pbuc1 - lda #s6 - sta.z printf_str.s+1 - jsr printf_str - // [123] phi from main::@31 to main::@32 [phi:main::@31->main::@32] - // main::@32 - // printf("however, the first color will always be transparent (black).\n") - // [124] call printf_str - // [433] phi from main::@32 to printf_str [phi:main::@32->printf_str] - // [433] phi printf_str::s#10 = main::s7 [phi:main::@32->printf_str#0] -- pbuz1=pbuc1 - lda #s7 - sta.z printf_str.s+1 - jsr printf_str - // main::vera_layer_show1 - // *VERA_DC_VIDEO |= vera_layer_enable[layer] - // [125] *VERA_DC_VIDEO = *VERA_DC_VIDEO | *vera_layer_enable -- _deref_pbuc1=_deref_pbuc1_bor__deref_pbuc2 - lda VERA_DC_VIDEO - ora vera_layer_enable - sta VERA_DC_VIDEO - // [126] phi from main::@33 main::vera_layer_show1 to main::@9 [phi:main::@33/main::vera_layer_show1->main::@9] - // main::@9 - __b9: - // kbhit() - // [127] call kbhit - jsr kbhit - // [128] kbhit::return#2 = kbhit::return#1 - // main::@33 - // [129] main::$35 = kbhit::return#2 - // while(!kbhit()) - // [130] if(0==main::$35) goto main::@9 -- 0_eq_vbuaa_then_la1 - cmp #0 - beq __b9 - // [131] phi from main::@33 to main::@10 [phi:main::@33->main::@10] - // main::@10 - // vera_tile_area(0, 0, 0, 0, 40, 30, 0, 0, 0) - // [132] call vera_tile_area - // [400] phi from main::@10 to vera_tile_area [phi:main::@10->vera_tile_area] - // [400] phi vera_tile_area::w#11 = $28 [phi:main::@10->vera_tile_area#0] -- vbuz1=vbuc1 - lda #$28 - sta.z vera_tile_area.w - // [400] phi vera_tile_area::h#6 = $1e [phi:main::@10->vera_tile_area#1] -- vbuz1=vbuc1 - lda #$1e - sta.z vera_tile_area.h - // [400] phi vera_tile_area::x#5 = 0 [phi:main::@10->vera_tile_area#2] -- vbuz1=vbuc1 - lda #0 - sta.z vera_tile_area.x - // [400] phi vera_tile_area::y#5 = 0 [phi:main::@10->vera_tile_area#3] -- vbuz1=vbuc1 - sta.z vera_tile_area.y - // [400] phi vera_tile_area::tileindex#5 = 0 [phi:main::@10->vera_tile_area#4] -- vwuz1=vbuc1 - sta.z vera_tile_area.tileindex - sta.z vera_tile_area.tileindex+1 - jsr vera_tile_area - // [133] phi from main::@10 to main::@11 [phi:main::@10->main::@11] - // [133] phi main::r1#5 = 0 [phi:main::@10->main::@11#0] -- vbuz1=vbuc1 - lda #0 - sta.z r1 - // [133] phi main::row#10 = 0 [phi:main::@10->main::@11#1] -- vbuz1=vbuc1 - sta.z row_1 - // [133] phi main::tile#11 = 0 [phi:main::@10->main::@11#2] -- vwuz1=vbuc1 - sta.z tile - sta.z tile+1 - // [133] phi from main::@13 to main::@11 [phi:main::@13->main::@11] - // [133] phi main::r1#5 = main::r1#1 [phi:main::@13->main::@11#0] -- register_copy - // [133] phi main::row#10 = main::row#3 [phi:main::@13->main::@11#1] -- register_copy - // [133] phi main::tile#11 = main::tile#13 [phi:main::@13->main::@11#2] -- register_copy - // main::@11 - __b11: - // [134] phi from main::@11 to main::@12 [phi:main::@11->main::@12] - // [134] phi main::c1#2 = 0 [phi:main::@11->main::@12#0] -- vbuxx=vbuc1 - ldx #0 - // [134] phi main::column1#2 = 0 [phi:main::@11->main::@12#1] -- vbuz1=vbuc1 - txa - sta.z column1 - // [134] phi main::tile#8 = main::tile#11 [phi:main::@11->main::@12#2] -- register_copy - // [134] phi from main::@34 to main::@12 [phi:main::@34->main::@12] - // [134] phi main::c1#2 = main::c1#1 [phi:main::@34->main::@12#0] -- register_copy - // [134] phi main::column1#2 = main::column1#1 [phi:main::@34->main::@12#1] -- register_copy - // [134] phi main::tile#8 = main::tile#13 [phi:main::@34->main::@12#2] -- register_copy - // main::@12 - __b12: - // vera_tile_area(0, tile, column, row, 2, 2, 0, 0, 0) - // [135] vera_tile_area::tileindex#3 = main::tile#8 - // [136] vera_tile_area::x#3 = main::column1#2 - // [137] vera_tile_area::y#3 = main::row#10 -- vbuz1=vbuz2 - lda.z row_1 - sta.z vera_tile_area.y - // [138] call vera_tile_area - // [400] phi from main::@12 to vera_tile_area [phi:main::@12->vera_tile_area] - // [400] phi vera_tile_area::w#11 = 2 [phi:main::@12->vera_tile_area#0] -- vbuz1=vbuc1 - lda #2 - sta.z vera_tile_area.w - // [400] phi vera_tile_area::h#6 = 2 [phi:main::@12->vera_tile_area#1] -- vbuz1=vbuc1 - sta.z vera_tile_area.h - // [400] phi vera_tile_area::x#5 = vera_tile_area::x#3 [phi:main::@12->vera_tile_area#2] -- register_copy - // [400] phi vera_tile_area::y#5 = vera_tile_area::y#3 [phi:main::@12->vera_tile_area#3] -- register_copy - // [400] phi vera_tile_area::tileindex#5 = vera_tile_area::tileindex#3 [phi:main::@12->vera_tile_area#4] -- register_copy - jsr vera_tile_area - // main::@34 - // column+=2 - // [139] main::column1#1 = main::column1#2 + 2 -- vbuz1=vbuz1_plus_2 - lda.z column1 - clc - adc #2 - sta.z column1 - // tile++; - // [140] main::tile#4 = ++ main::tile#8 -- vwuz1=_inc_vwuz1 - inc.z tile - bne !+ - inc.z tile+1 - !: - // tile &= 0xff - // [141] main::tile#13 = main::tile#4 & $ff -- vwuz1=vwuz1_band_vbuc1 - lda #$ff - and.z tile - sta.z tile - lda #0 - sta.z tile+1 - // for(byte c:0..19) - // [142] main::c1#1 = ++ main::c1#2 -- vbuxx=_inc_vbuxx - inx - // [143] if(main::c1#1!=$14) goto main::@12 -- vbuxx_neq_vbuc1_then_la1 - cpx #$14 - bne __b12 - // main::@13 - // row += 2 - // [144] main::row#3 = main::row#10 + 2 -- vbuz1=vbuz1_plus_2 - lda.z row_1 - clc - adc #2 - sta.z row_1 - // for(byte r:0..11) - // [145] main::r1#1 = ++ main::r1#5 -- vbuz1=_inc_vbuz1 - inc.z r1 - // [146] if(main::r1#1!=$c) goto main::@11 -- vbuz1_neq_vbuc1_then_la1 - lda #$c - cmp.z r1 - bne __b11 - // [147] phi from main::@13 main::@35 to main::@14 [phi:main::@13/main::@35->main::@14] - // main::@14 - __b14: - // kbhit() - // [148] call kbhit - jsr kbhit - // [149] kbhit::return#3 = kbhit::return#1 - // main::@35 - // [150] main::$40 = kbhit::return#3 - // while(!kbhit()) - // [151] if(0==main::$40) goto main::@14 -- 0_eq_vbuaa_then_la1 - cmp #0 - beq __b14 - // [152] phi from main::@35 to main::@15 [phi:main::@35->main::@15] - // main::@15 - // vera_tile_area(0, 0, 0, 0, 40, 30, 0, 0, 0) - // [153] call vera_tile_area - // Now put back the defaults ... - // [400] phi from main::@15 to vera_tile_area [phi:main::@15->vera_tile_area] - // [400] phi vera_tile_area::w#11 = $28 [phi:main::@15->vera_tile_area#0] -- vbuz1=vbuc1 - lda #$28 - sta.z vera_tile_area.w - // [400] phi vera_tile_area::h#6 = $1e [phi:main::@15->vera_tile_area#1] -- vbuz1=vbuc1 - lda #$1e - sta.z vera_tile_area.h - // [400] phi vera_tile_area::x#5 = 0 [phi:main::@15->vera_tile_area#2] -- vbuz1=vbuc1 - lda #0 - sta.z vera_tile_area.x - // [400] phi vera_tile_area::y#5 = 0 [phi:main::@15->vera_tile_area#3] -- vbuz1=vbuc1 - sta.z vera_tile_area.y - // [400] phi vera_tile_area::tileindex#5 = 0 [phi:main::@15->vera_tile_area#4] -- vwuz1=vbuc1 - sta.z vera_tile_area.tileindex - sta.z vera_tile_area.tileindex+1 - jsr vera_tile_area - // main::vera_layer_hide1 - // ~vera_layer_enable[layer] - // [154] main::vera_layer_hide1_$0 = ~ *vera_layer_enable -- vbuaa=_bnot__deref_pbuc1 - lda vera_layer_enable - eor #$ff - // *VERA_DC_VIDEO &= ~vera_layer_enable[layer] - // [155] *VERA_DC_VIDEO = *VERA_DC_VIDEO & main::vera_layer_hide1_$0 -- _deref_pbuc1=_deref_pbuc1_band_vbuaa - and VERA_DC_VIDEO - sta VERA_DC_VIDEO - // [156] phi from main::vera_layer_hide1 to main::@17 [phi:main::vera_layer_hide1->main::@17] - // main::@17 - // memcpy_in_vram(0, (char*)0xF800, VERA_INC_1, 1, (char*)0xF000, VERA_INC_1, 256*8) - // [157] call memcpy_in_vram - // [266] phi from main::@17 to memcpy_in_vram [phi:main::@17->memcpy_in_vram] - // [266] phi memcpy_in_vram::num#4 = $100*8 [phi:main::@17->memcpy_in_vram#0] -- vwuz1=vwuc1 - lda #<$100*8 - sta.z memcpy_in_vram.num - lda #>$100*8 - sta.z memcpy_in_vram.num+1 - // [266] 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 - // [266] phi memcpy_in_vram::dest#3 = (void *)(char *) 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 - // [266] phi memcpy_in_vram::src_bank#3 = 1 [phi:main::@17->memcpy_in_vram#3] -- vbuyy=vbuc1 - ldy #1 - // [266] phi memcpy_in_vram::src#3 = (void *)(char *) 61440 [phi:main::@17->memcpy_in_vram#4] -- pvoz1=pvoc1 - lda #<$f000 - sta.z memcpy_in_vram.src - lda #>$f000 - sta.z memcpy_in_vram.src+1 - jsr memcpy_in_vram - // [158] phi from main::@17 to main::@36 [phi:main::@17->main::@36] - // main::@36 - // vera_layer_mode_tile(1, 0x00000, 0x0F800, 128, 128, 8, 8, 1) - // [159] call vera_layer_mode_tile - // [286] phi from main::@36 to vera_layer_mode_tile [phi:main::@36->vera_layer_mode_tile] - // [286] phi vera_layer_mode_tile::tileheight#10 = 8 [phi:main::@36->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #8 - sta.z vera_layer_mode_tile.tileheight - // [286] phi vera_layer_mode_tile::tilewidth#10 = 8 [phi:main::@36->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - sta.z vera_layer_mode_tile.tilewidth - // [286] phi vera_layer_mode_tile::tilebase_address#10 = $f800 [phi:main::@36->vera_layer_mode_tile#2] -- vduz1=vduc1 - lda #<$f800 - sta.z vera_layer_mode_tile.tilebase_address_1 - lda #>$f800 - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #<$f800>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>$f800>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - // [286] phi vera_layer_mode_tile::mapbase_address#10 = 0 [phi:main::@36->vera_layer_mode_tile#3] -- vduz1=vbuc1 - lda #0 - sta.z vera_layer_mode_tile.mapbase_address_1 - sta.z vera_layer_mode_tile.mapbase_address_1+1 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - // [286] phi vera_layer_mode_tile::mapheight#10 = $80 [phi:main::@36->vera_layer_mode_tile#4] -- vwuz1=vbuc1 - lda #<$80 - sta.z vera_layer_mode_tile.mapheight - lda #>$80 - sta.z vera_layer_mode_tile.mapheight+1 - // [286] phi vera_layer_mode_tile::layer#10 = 1 [phi:main::@36->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #1 - sta.z vera_layer_mode_tile.layer - // [286] phi vera_layer_mode_tile::mapwidth#10 = $80 [phi:main::@36->vera_layer_mode_tile#6] -- vwuz1=vbuc1 - lda #<$80 - sta.z vera_layer_mode_tile.mapwidth - lda #>$80 - sta.z vera_layer_mode_tile.mapwidth+1 - // [286] phi vera_layer_mode_tile::color_depth#5 = 1 [phi:main::@36->vera_layer_mode_tile#7] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_mode_tile - // [160] phi from main::@36 to main::@37 [phi:main::@36->main::@37] - // main::@37 - // vera_layer_mode_tile(0, 0x00000, 0x0F800, 128, 128, 8, 8, 1) - // [161] call vera_layer_mode_tile - // [286] phi from main::@37 to vera_layer_mode_tile [phi:main::@37->vera_layer_mode_tile] - // [286] phi vera_layer_mode_tile::tileheight#10 = 8 [phi:main::@37->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #8 - sta.z vera_layer_mode_tile.tileheight - // [286] phi vera_layer_mode_tile::tilewidth#10 = 8 [phi:main::@37->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - sta.z vera_layer_mode_tile.tilewidth - // [286] phi vera_layer_mode_tile::tilebase_address#10 = $f800 [phi:main::@37->vera_layer_mode_tile#2] -- vduz1=vduc1 - lda #<$f800 - sta.z vera_layer_mode_tile.tilebase_address_1 - lda #>$f800 - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #<$f800>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>$f800>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - // [286] phi vera_layer_mode_tile::mapbase_address#10 = 0 [phi:main::@37->vera_layer_mode_tile#3] -- vduz1=vbuc1 - lda #0 - sta.z vera_layer_mode_tile.mapbase_address_1 - sta.z vera_layer_mode_tile.mapbase_address_1+1 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - // [286] phi vera_layer_mode_tile::mapheight#10 = $80 [phi:main::@37->vera_layer_mode_tile#4] -- vwuz1=vbuc1 - lda #<$80 - sta.z vera_layer_mode_tile.mapheight - lda #>$80 - sta.z vera_layer_mode_tile.mapheight+1 - // [286] phi vera_layer_mode_tile::layer#10 = 0 [phi:main::@37->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #0 - sta.z vera_layer_mode_tile.layer - // [286] phi vera_layer_mode_tile::mapwidth#10 = $80 [phi:main::@37->vera_layer_mode_tile#6] -- vwuz1=vbuc1 - lda #<$80 - sta.z vera_layer_mode_tile.mapwidth - lda #>$80 - sta.z vera_layer_mode_tile.mapwidth+1 - // [286] phi vera_layer_mode_tile::color_depth#5 = 1 [phi:main::@37->vera_layer_mode_tile#7] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_mode_tile - // [162] phi from main::@37 to main::@38 [phi:main::@37->main::@38] - // main::@38 - // screenlayer(1) - // [163] call screenlayer - jsr screenlayer - // main::textcolor2 - // vera_layer_set_textcolor(conio_screen_layer, color) - // [164] vera_layer_set_textcolor::layer#2 = conio_screen_layer -- vbuyy=vbuz1 - ldy.z conio_screen_layer - // [165] call vera_layer_set_textcolor - // [223] phi from main::textcolor2 to vera_layer_set_textcolor [phi:main::textcolor2->vera_layer_set_textcolor] - // [223] phi vera_layer_set_textcolor::layer#3 = vera_layer_set_textcolor::layer#2 [phi:main::textcolor2->vera_layer_set_textcolor#0] -- register_copy - jsr vera_layer_set_textcolor - // main::bgcolor2 - // vera_layer_set_backcolor(conio_screen_layer, color) - // [166] vera_layer_set_backcolor::layer#2 = conio_screen_layer -- vbuyy=vbuz1 - ldy.z conio_screen_layer - // [167] call vera_layer_set_backcolor - // [226] phi from main::bgcolor2 to vera_layer_set_backcolor [phi:main::bgcolor2->vera_layer_set_backcolor] - // [226] phi vera_layer_set_backcolor::color#3 = BLUE [phi:main::bgcolor2->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLUE - // [226] phi vera_layer_set_backcolor::layer#3 = vera_layer_set_backcolor::layer#2 [phi:main::bgcolor2->vera_layer_set_backcolor#1] -- register_copy - jsr vera_layer_set_backcolor - // [168] phi from main::bgcolor2 to main::@18 [phi:main::bgcolor2->main::@18] - // main::@18 - // clrscr() - // [169] call clrscr - jsr clrscr - // main::@return - // } - // [170] return - rts - .segment Data - tiles: .byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - s: .text @"vera in tile mode 8 x 8, color depth 8 bits per pixel.\n" - .byte 0 - s1: .text @"in this mode, tiles are 8 pixels wide and 8 pixels tall.\n" - .byte 0 - s2: .text @"each tile can have a variation of 256 colors.\n" - .byte 0 - s3: .text @"the vera palette of 256 colors, can be used by setting the palette\n" - .byte 0 - s4: .text @"offset for each tile.\n" - .byte 0 - s5: .text @"here each column is displaying the same tile, but with different offsets!\n" - .byte 0 - s6: .text @"each offset aligns to multiples of 16 colors in the palette!.\n" - .byte 0 - s7: .text @"however, the first color will always be transparent (black).\n" - .byte 0 -} -.segment Code - // vera_layer_mode_text -// Set a vera layer in text mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_mode: The color mode, which can be 16 or 256. -// void vera_layer_mode_text(char layer, unsigned long mapbase_address, unsigned long tilebase_address, unsigned int mapwidth, unsigned int mapheight, char tilewidth, char tileheight, unsigned int color_mode) -vera_layer_mode_text: { - .const mapbase_address = 0 - .const tilebase_address = $f800 - .const mapwidth = $80 - .const mapheight = $40 - .const tilewidth = 8 - .const tileheight = 8 - .label layer = 1 - // vera_layer_mode_tile( layer, mapbase_address, tilebase_address, mapwidth, mapheight, tilewidth, tileheight, 1 ) - // [172] call vera_layer_mode_tile - // [286] phi from vera_layer_mode_text to vera_layer_mode_tile [phi:vera_layer_mode_text->vera_layer_mode_tile] - // [286] phi vera_layer_mode_tile::tileheight#10 = vera_layer_mode_text::tileheight#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #tileheight - sta.z vera_layer_mode_tile.tileheight - // [286] phi vera_layer_mode_tile::tilewidth#10 = vera_layer_mode_text::tilewidth#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - lda #tilewidth - sta.z vera_layer_mode_tile.tilewidth - // [286] phi vera_layer_mode_tile::tilebase_address#10 = vera_layer_mode_text::tilebase_address#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#2] -- vduz1=vduc1 - lda #tilebase_address - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>tilebase_address>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - // [286] phi vera_layer_mode_tile::mapbase_address#10 = vera_layer_mode_text::mapbase_address#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#3] -- vduz1=vduc1 - lda #mapbase_address - sta.z vera_layer_mode_tile.mapbase_address_1+1 - lda #>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - lda #>mapbase_address>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - // [286] phi vera_layer_mode_tile::mapheight#10 = vera_layer_mode_text::mapheight#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#4] -- vwuz1=vwuc1 - lda #mapheight - sta.z vera_layer_mode_tile.mapheight+1 - // [286] phi vera_layer_mode_tile::layer#10 = vera_layer_mode_text::layer#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #layer - sta.z vera_layer_mode_tile.layer - // [286] phi vera_layer_mode_tile::mapwidth#10 = vera_layer_mode_text::mapwidth#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#6] -- vwuz1=vwuc1 - lda #mapwidth - sta.z vera_layer_mode_tile.mapwidth+1 - // [286] phi vera_layer_mode_tile::color_depth#5 = 1 [phi:vera_layer_mode_text->vera_layer_mode_tile#7] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_mode_tile - // [173] phi from vera_layer_mode_text to vera_layer_mode_text::@1 [phi:vera_layer_mode_text->vera_layer_mode_text::@1] - // vera_layer_mode_text::@1 - // vera_layer_set_text_color_mode( layer, VERA_LAYER_CONFIG_16C ) - // [174] call vera_layer_set_text_color_mode - jsr vera_layer_set_text_color_mode - // vera_layer_mode_text::@return - // } - // [175] return - rts -} - // screensize -// Return the current screen size. -// void screensize(char *x, char *y) -screensize: { - .label x = conio_screen_width - .label y = conio_screen_height - // char hscale = (*VERA_DC_HSCALE) >> 7 - // [176] screensize::hscale#0 = *VERA_DC_HSCALE >> 7 -- vbuaa=_deref_pbuc1_ror_7 - // VERA returns in VERA_DC_HSCALE the value of 128 when 80 columns is used in text mode, - // and the value of 64 when 40 columns is used in text mode. - // Basically, 40 columns mode in the VERA is a double scan mode. - // Same for the VERA_DC_VSCALE mode, but then the subdivision is 60 or 30 rows. - // I still need to test the other modes, but this will suffice for now for the pure text modes. - lda VERA_DC_HSCALE - rol - rol - and #1 - // 40 << hscale - // [177] screensize::$1 = $28 << screensize::hscale#0 -- vbuaa=vbuc1_rol_vbuaa - tay - lda #$28 - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // *x = 40 << hscale - // [178] *screensize::x#0 = screensize::$1 -- _deref_pbuc1=vbuaa - sta.z x - // char vscale = (*VERA_DC_VSCALE) >> 7 - // [179] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 -- vbuaa=_deref_pbuc1_ror_7 - lda VERA_DC_VSCALE - rol - rol - and #1 - // 30 << vscale - // [180] screensize::$3 = $1e << screensize::vscale#0 -- vbuaa=vbuc1_rol_vbuaa - tay - lda #$1e - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // *y = 30 << vscale - // [181] *screensize::y#0 = screensize::$3 -- _deref_pbuc1=vbuaa - sta.z y - // screensize::@return - // } - // [182] return - rts -} - // screenlayer -// Set the layer with which the conio will interact. -// - layer: value of 0 or 1. -// void screenlayer(char layer) -screenlayer: { - .label __2 = $10 - .label __4 = $35 - .label __5 = $3a - .label vera_layer_get_width1_config = $22 - .label vera_layer_get_width1_return = $10 - .label vera_layer_get_height1_config = $2b - .label vera_layer_get_height1_return = $3a - // conio_screen_layer = layer - // [183] conio_screen_layer = 1 -- vbuz1=vbuc1 - lda #1 - sta.z conio_screen_layer - // vera_layer_get_mapbase_bank(conio_screen_layer) - // [184] vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer -- vbuyy=vbuz1 - tay - // [185] call vera_layer_get_mapbase_bank - jsr vera_layer_get_mapbase_bank - // [186] vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#0 - // screenlayer::@3 - // [187] CONIO_SCREEN_BANK#15 = vera_layer_get_mapbase_bank::return#2 - // vera_layer_get_mapbase_offset(conio_screen_layer) - // [188] vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // [189] call vera_layer_get_mapbase_offset - jsr vera_layer_get_mapbase_offset - // [190] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 - // screenlayer::@4 - // [191] CONIO_SCREEN_TEXT#17 = vera_layer_get_mapbase_offset::return#2 -- vwuz1=vwuz2 - lda.z vera_layer_get_mapbase_offset.return - sta.z CONIO_SCREEN_TEXT_1 - lda.z vera_layer_get_mapbase_offset.return+1 - sta.z CONIO_SCREEN_TEXT_1+1 - // vera_layer_get_width(conio_screen_layer) - // [192] screenlayer::vera_layer_get_width1_layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // screenlayer::vera_layer_get_width1 - // byte* config = vera_layer_config[layer] - // [193] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [194] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z vera_layer_get_width1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_width1_config+1 - // *config & VERA_LAYER_WIDTH_MASK - // [195] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_WIDTH_MASK - ldy #0 - and (vera_layer_get_width1_config),y - // (*config & VERA_LAYER_WIDTH_MASK) >> 4 - // [196] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 -- vbuaa=vbuaa_ror_4 - lsr - lsr - lsr - lsr - // return VERA_LAYER_WIDTH[ (*config & VERA_LAYER_WIDTH_MASK) >> 4]; - // [197] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [198] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda VERA_LAYER_WIDTH,y - sta.z vera_layer_get_width1_return - lda VERA_LAYER_WIDTH+1,y - sta.z vera_layer_get_width1_return+1 - // screenlayer::vera_layer_get_width1_@return - // } - // [199] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 - // screenlayer::@1 - // vera_layer_get_width(conio_screen_layer) - // [200] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 - // conio_width = vera_layer_get_width(conio_screen_layer) - // [201] conio_width = screenlayer::$2 -- vwuz1=vwuz2 - lda.z __2 - sta.z conio_width - lda.z __2+1 - sta.z conio_width+1 - // vera_layer_get_rowshift(conio_screen_layer) - // [202] vera_layer_get_rowshift::layer#0 = conio_screen_layer -- vbuyy=vbuz1 - ldy.z conio_screen_layer - // [203] call vera_layer_get_rowshift - jsr vera_layer_get_rowshift - // [204] vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#0 - // screenlayer::@5 - // [205] screenlayer::$3 = vera_layer_get_rowshift::return#2 - // conio_rowshift = vera_layer_get_rowshift(conio_screen_layer) - // [206] conio_rowshift = screenlayer::$3 -- vbuz1=vbuaa - sta.z conio_rowshift - // vera_layer_get_rowskip(conio_screen_layer) - // [207] vera_layer_get_rowskip::layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // [208] call vera_layer_get_rowskip - jsr vera_layer_get_rowskip - // [209] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 - // screenlayer::@6 - // [210] screenlayer::$4 = vera_layer_get_rowskip::return#2 - // conio_rowskip = vera_layer_get_rowskip(conio_screen_layer) - // [211] conio_rowskip = screenlayer::$4 -- vwuz1=vwuz2 - lda.z __4 - sta.z conio_rowskip - lda.z __4+1 - sta.z conio_rowskip+1 - // vera_layer_get_height(conio_screen_layer) - // [212] screenlayer::vera_layer_get_height1_layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // screenlayer::vera_layer_get_height1 - // byte* config = vera_layer_config[layer] - // [213] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [214] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z vera_layer_get_height1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_height1_config+1 - // *config & VERA_LAYER_HEIGHT_MASK - // [215] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_HEIGHT_MASK - ldy #0 - and (vera_layer_get_height1_config),y - // (*config & VERA_LAYER_HEIGHT_MASK) >> 6 - // [216] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 -- vbuaa=vbuaa_ror_6 - rol - rol - rol - and #3 - // return VERA_LAYER_HEIGHT[ (*config & VERA_LAYER_HEIGHT_MASK) >> 6]; - // [217] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [218] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda VERA_LAYER_HEIGHT,y - sta.z vera_layer_get_height1_return - lda VERA_LAYER_HEIGHT+1,y - sta.z vera_layer_get_height1_return+1 - // screenlayer::vera_layer_get_height1_@return - // } - // [219] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 - // screenlayer::@2 - // vera_layer_get_height(conio_screen_layer) - // [220] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 - // conio_height = vera_layer_get_height(conio_screen_layer) - // [221] conio_height = screenlayer::$5 -- vwuz1=vwuz2 - lda.z __5 - sta.z conio_height - lda.z __5+1 - sta.z conio_height+1 - // screenlayer::@return - // } - // [222] return - rts -} - // vera_layer_set_textcolor -// Set the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15) when the VERA works in 16x16 color text mode. -// An 8 bit value (decimal between 0 and 255) when the VERA works in 256 text mode. -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_textcolor(__register(Y) char layer, char color) -vera_layer_set_textcolor: { - // vera_layer_textcolor[layer] = color - // [224] vera_layer_textcolor[vera_layer_set_textcolor::layer#3] = WHITE -- pbuc1_derefidx_vbuyy=vbuc2 - lda #WHITE - sta vera_layer_textcolor,y - // vera_layer_set_textcolor::@return - // } - // [225] return - rts -} - // vera_layer_set_backcolor -// Set the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_backcolor(__register(Y) char layer, __register(A) char color) -vera_layer_set_backcolor: { - // vera_layer_backcolor[layer] = color - // [227] vera_layer_backcolor[vera_layer_set_backcolor::layer#3] = vera_layer_set_backcolor::color#3 -- pbuc1_derefidx_vbuyy=vbuaa - sta vera_layer_backcolor,y - // vera_layer_set_backcolor::@return - // } - // [228] return - rts -} - // vera_layer_set_mapbase -// Set the base of the map layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - mapbase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// void vera_layer_set_mapbase(__register(A) char layer, __register(X) char mapbase) -vera_layer_set_mapbase: { - .label addr = $22 - // byte* addr = vera_layer_mapbase[layer] - // [230] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [231] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_mapbase,y - sta.z addr - lda vera_layer_mapbase+1,y - sta.z addr+1 - // *addr = mapbase - // [232] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - // vera_layer_set_mapbase::@return - // } - // [233] return - rts -} - // gotoxy -// Set the cursor to the specified position -// void gotoxy(char x, __register(X) char y) -gotoxy: { - .label __6 = $10 - .label line_offset = $10 - // if(y>CONIO_HEIGHT) - // [235] if(gotoxy::y#4<=conio_screen_height) goto gotoxy::@4 -- vbuxx_le_vbuz1_then_la1 - lda.z conio_screen_height - stx.z $ff - cmp.z $ff - bcs __b1 - // [237] phi from gotoxy to gotoxy::@1 [phi:gotoxy->gotoxy::@1] - // [237] phi gotoxy::y#5 = 0 [phi:gotoxy->gotoxy::@1#0] -- vbuxx=vbuc1 - ldx #0 - // [236] phi from gotoxy to gotoxy::@4 [phi:gotoxy->gotoxy::@4] - // gotoxy::@4 - // [237] phi from gotoxy::@4 to gotoxy::@1 [phi:gotoxy::@4->gotoxy::@1] - // [237] phi gotoxy::y#5 = gotoxy::y#4 [phi:gotoxy::@4->gotoxy::@1#0] -- register_copy - // gotoxy::@1 - __b1: - // if(x>=CONIO_WIDTH) - // [238] if(0gotoxy::@3] - // gotoxy::@3 - // gotoxy::@2 - // conio_cursor_x[conio_screen_layer] = x - // [240] conio_cursor_x[conio_screen_layer] = 0 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // conio_cursor_y[conio_screen_layer] = y - // [241] conio_cursor_y[conio_screen_layer] = gotoxy::y#5 -- pbuc1_derefidx_vbuz1=vbuxx - txa - sta conio_cursor_y,y - // unsigned int line_offset = (unsigned int)y << conio_rowshift - // [242] gotoxy::$6 = (unsigned int)gotoxy::y#5 -- vwuz1=_word_vbuxx - txa - sta.z __6 - lda #0 - sta.z __6+1 - // [243] gotoxy::line_offset#0 = gotoxy::$6 << conio_rowshift -- vwuz1=vwuz1_rol_vbuz2 - ldy.z conio_rowshift - beq !e+ - !: - asl.z line_offset - rol.z line_offset+1 - dey - bne !- - !e: - // conio_line_text[conio_screen_layer] = line_offset - // [244] gotoxy::$5 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [245] conio_line_text[gotoxy::$5] = gotoxy::line_offset#0 -- pwuc1_derefidx_vbuaa=vwuz1 - tay - lda.z line_offset - sta conio_line_text,y - lda.z line_offset+1 - sta conio_line_text+1,y - // gotoxy::@return - // } - // [246] return - rts -} - // vera_layer_get_color -// Get the text and back color for text output in 16 color mode. -// - layer: Value of 0 or 1. -// - return: an 8 bit value with bit 7:4 containing the back color and bit 3:0 containing the front color. -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_color(__register(X) char layer) -vera_layer_get_color: { - .label addr = 4 - // byte* addr = vera_layer_config[layer] - // [248] vera_layer_get_color::$3 = vera_layer_get_color::layer#2 << 1 -- vbuaa=vbuxx_rol_1 - txa - asl - // [249] vera_layer_get_color::addr#0 = vera_layer_config[vera_layer_get_color::$3] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // *addr & VERA_LAYER_CONFIG_256C - // [250] vera_layer_get_color::$0 = *vera_layer_get_color::addr#0 & VERA_LAYER_CONFIG_256C -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_CONFIG_256C - ldy #0 - and (addr),y - // if( *addr & VERA_LAYER_CONFIG_256C ) - // [251] if(0!=vera_layer_get_color::$0) goto vera_layer_get_color::@1 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b1 - // vera_layer_get_color::@2 - // vera_layer_backcolor[layer] << 4 - // [252] vera_layer_get_color::$1 = vera_layer_backcolor[vera_layer_get_color::layer#2] << 4 -- vbuaa=pbuc1_derefidx_vbuxx_rol_4 - lda vera_layer_backcolor,x - asl - asl - asl - asl - // return ((vera_layer_backcolor[layer] << 4) | vera_layer_textcolor[layer]); - // [253] vera_layer_get_color::return#2 = vera_layer_get_color::$1 | vera_layer_textcolor[vera_layer_get_color::layer#2] -- vbuaa=vbuaa_bor_pbuc1_derefidx_vbuxx - ora vera_layer_textcolor,x - // [254] phi from vera_layer_get_color::@1 vera_layer_get_color::@2 to vera_layer_get_color::@return [phi:vera_layer_get_color::@1/vera_layer_get_color::@2->vera_layer_get_color::@return] - // [254] phi vera_layer_get_color::return#3 = vera_layer_get_color::return#1 [phi:vera_layer_get_color::@1/vera_layer_get_color::@2->vera_layer_get_color::@return#0] -- register_copy - // vera_layer_get_color::@return - // } - // [255] return - rts - // vera_layer_get_color::@1 - __b1: - // return (vera_layer_textcolor[layer]); - // [256] vera_layer_get_color::return#1 = vera_layer_textcolor[vera_layer_get_color::layer#2] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_textcolor,x - rts -} - // cputln -// Print a newline -cputln: { - .label temp = 4 - // word temp = conio_line_text[conio_screen_layer] - // [257] cputln::$2 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [258] cputln::temp#0 = conio_line_text[cputln::$2] -- vwuz1=pwuc1_derefidx_vbuaa - // TODO: This needs to be optimized! other variations don't compile because of sections not available! - tay - lda conio_line_text,y - sta.z temp - lda conio_line_text+1,y - sta.z temp+1 - // temp += conio_rowskip - // [259] cputln::temp#1 = cputln::temp#0 + conio_rowskip -- vwuz1=vwuz1_plus_vwuz2 - clc - lda.z temp - adc.z conio_rowskip - sta.z temp - lda.z temp+1 - adc.z conio_rowskip+1 - sta.z temp+1 - // conio_line_text[conio_screen_layer] = temp - // [260] cputln::$3 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [261] conio_line_text[cputln::$3] = cputln::temp#1 -- pwuc1_derefidx_vbuaa=vwuz1 - tay - lda.z temp - sta conio_line_text,y - lda.z temp+1 - sta conio_line_text+1,y - // conio_cursor_x[conio_screen_layer] = 0 - // [262] conio_cursor_x[conio_screen_layer] = 0 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // conio_cursor_y[conio_screen_layer]++; - // [263] conio_cursor_y[conio_screen_layer] = ++ conio_cursor_y[conio_screen_layer] -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 - ldx.z conio_screen_layer - inc conio_cursor_y,x - // cscroll() - // [264] call cscroll - jsr cscroll - // cputln::@return - // } - // [265] return - rts -} - // memcpy_in_vram -// Copy block of memory (from VRAM to VRAM) -// Copies the values from the location pointed by src to the location pointed by dest. -// The method uses the VERA access ports 0 and 1 to copy data from and to in VRAM. -// - src_bank: 64K VRAM bank number to copy from (0/1). -// - src: pointer to the location to copy from. Note that the address is a 16 bit value! -// - src_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -// - dest_bank: 64K VRAM bank number to copy to (0/1). -// - dest: pointer to the location to copy to. Note that the address is a 16 bit value! -// - dest_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -// - num: The number of bytes to copy -// void memcpy_in_vram(__zp($a) char dest_bank, __zp(8) void *dest, char dest_increment, __register(Y) char src_bank, __zp(6) char *src, char src_increment, __zp(4) unsigned int num) -memcpy_in_vram: { - .label i = 2 - .label dest = 8 - .label src = 6 - .label num = 4 - .label dest_bank = $a - // *VERA_CTRL &= ~VERA_ADDRSEL - // [267] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(src) - // [268] memcpy_in_vram::$0 = byte0 memcpy_in_vram::src#3 -- vbuaa=_byte0_pvoz1 - lda.z src - // *VERA_ADDRX_L = BYTE0(src) - // [269] *VERA_ADDRX_L = memcpy_in_vram::$0 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // BYTE1(src) - // [270] memcpy_in_vram::$1 = byte1 memcpy_in_vram::src#3 -- vbuaa=_byte1_pvoz1 - lda.z src+1 - // *VERA_ADDRX_M = BYTE1(src) - // [271] *VERA_ADDRX_M = memcpy_in_vram::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // src_increment | src_bank - // [272] memcpy_in_vram::$2 = VERA_INC_1 | memcpy_in_vram::src_bank#3 -- vbuaa=vbuc1_bor_vbuyy - tya - ora #VERA_INC_1 - // *VERA_ADDRX_H = src_increment | src_bank - // [273] *VERA_ADDRX_H = memcpy_in_vram::$2 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_H - // *VERA_CTRL |= VERA_ADDRSEL - // [274] *VERA_CTRL = *VERA_CTRL | VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 - // Select DATA1 - lda #VERA_ADDRSEL - ora VERA_CTRL - sta VERA_CTRL - // BYTE0(dest) - // [275] memcpy_in_vram::$3 = byte0 memcpy_in_vram::dest#3 -- vbuaa=_byte0_pvoz1 - lda.z dest - // *VERA_ADDRX_L = BYTE0(dest) - // [276] *VERA_ADDRX_L = memcpy_in_vram::$3 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // BYTE1(dest) - // [277] memcpy_in_vram::$4 = byte1 memcpy_in_vram::dest#3 -- vbuaa=_byte1_pvoz1 - lda.z dest+1 - // *VERA_ADDRX_M = BYTE1(dest) - // [278] *VERA_ADDRX_M = memcpy_in_vram::$4 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // dest_increment | dest_bank - // [279] memcpy_in_vram::$5 = VERA_INC_1 | memcpy_in_vram::dest_bank#3 -- vbuaa=vbuc1_bor_vbuz1 - lda #VERA_INC_1 - ora.z dest_bank - // *VERA_ADDRX_H = dest_increment | dest_bank - // [280] *VERA_ADDRX_H = memcpy_in_vram::$5 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_H - // [281] phi from memcpy_in_vram to memcpy_in_vram::@1 [phi:memcpy_in_vram->memcpy_in_vram::@1] - // [281] phi memcpy_in_vram::i#2 = 0 [phi:memcpy_in_vram->memcpy_in_vram::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z i - sta.z i+1 - // Transfer the data - // memcpy_in_vram::@1 - __b1: - // for(unsigned int i=0; imemcpy_in_vram::@1] - // [281] phi memcpy_in_vram::i#2 = memcpy_in_vram::i#1 [phi:memcpy_in_vram::@2->memcpy_in_vram::@1#0] -- register_copy - jmp __b1 -} - // vera_layer_mode_tile -// Set a vera layer in tile mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_depth: The color depth in bits per pixel (BPP), which can be 1, 2, 4 or 8. -// void vera_layer_mode_tile(__zp($3e) char layer, __zp($2d) unsigned long mapbase_address, __zp($31) unsigned long tilebase_address, __zp($10) unsigned int mapwidth, __zp($44) unsigned int mapheight, __zp($54) char tilewidth, __zp($55) char tileheight, __register(X) char color_depth) -vera_layer_mode_tile: { - .label __1 = $35 - .label __6 = $2b - .label __17 = $3d - .label __18 = $3c - .label mapbase_address = $2d - .label tilebase_address = $31 - .label layer = $3e - .label mapwidth = $10 - .label mapheight = $44 - .label mapbase_address_1 = $4a - .label tileheight = $55 - .label tilebase_address_1 = $4e - .label tilewidth = $54 - // case 1: - // config |= VERA_LAYER_COLOR_DEPTH_1BPP; - // break; - // [287] if(vera_layer_mode_tile::color_depth#5==1) goto vera_layer_mode_tile::@5 -- vbuxx_eq_vbuc1_then_la1 - cpx #1 - beq __b1 - // vera_layer_mode_tile::@1 - // case 2: - // config |= VERA_LAYER_COLOR_DEPTH_2BPP; - // break; - // [288] if(vera_layer_mode_tile::color_depth#5==2) goto vera_layer_mode_tile::@5 -- vbuxx_eq_vbuc1_then_la1 - cpx #2 - beq __b2 - // vera_layer_mode_tile::@2 - // case 4: - // config |= VERA_LAYER_COLOR_DEPTH_4BPP; - // break; - // [289] if(vera_layer_mode_tile::color_depth#5==4) goto vera_layer_mode_tile::@5 -- vbuxx_eq_vbuc1_then_la1 - cpx #4 - beq __b3 - // vera_layer_mode_tile::@3 - // case 8: - // config |= VERA_LAYER_COLOR_DEPTH_8BPP; - // break; - // [290] if(vera_layer_mode_tile::color_depth#5!=8) goto vera_layer_mode_tile::@5 -- vbuxx_neq_vbuc1_then_la1 - cpx #8 - bne __b4 - // [291] phi from vera_layer_mode_tile::@3 to vera_layer_mode_tile::@4 [phi:vera_layer_mode_tile::@3->vera_layer_mode_tile::@4] - // vera_layer_mode_tile::@4 - // [292] phi from vera_layer_mode_tile::@4 to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile::@4->vera_layer_mode_tile::@5] - // [292] phi vera_layer_mode_tile::config#17 = VERA_LAYER_COLOR_DEPTH_8BPP [phi:vera_layer_mode_tile::@4->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_8BPP - jmp __b5 - // [292] phi from vera_layer_mode_tile to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile->vera_layer_mode_tile::@5] - __b1: - // [292] phi vera_layer_mode_tile::config#17 = VERA_LAYER_COLOR_DEPTH_1BPP [phi:vera_layer_mode_tile->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_1BPP - jmp __b5 - // [292] phi from vera_layer_mode_tile::@1 to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile::@1->vera_layer_mode_tile::@5] - __b2: - // [292] phi vera_layer_mode_tile::config#17 = VERA_LAYER_COLOR_DEPTH_2BPP [phi:vera_layer_mode_tile::@1->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_2BPP - jmp __b5 - // [292] phi from vera_layer_mode_tile::@2 to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile::@2->vera_layer_mode_tile::@5] - __b3: - // [292] phi vera_layer_mode_tile::config#17 = VERA_LAYER_COLOR_DEPTH_4BPP [phi:vera_layer_mode_tile::@2->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_4BPP - jmp __b5 - // [292] phi from vera_layer_mode_tile::@3 to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile::@3->vera_layer_mode_tile::@5] - __b4: - // [292] phi vera_layer_mode_tile::config#17 = 0 [phi:vera_layer_mode_tile::@3->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #0 - // vera_layer_mode_tile::@5 - __b5: - // case 32: - // config |= VERA_LAYER_WIDTH_32; - // vera_layer_rowshift[layer] = 6; - // vera_layer_rowskip[layer] = 64; - // break; - // [293] if(vera_layer_mode_tile::mapwidth#10==$20) goto vera_layer_mode_tile::@9 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$20 - bne !__b9+ - jmp __b9 - !__b9: - !: - // vera_layer_mode_tile::@6 - // case 64: - // config |= VERA_LAYER_WIDTH_64; - // vera_layer_rowshift[layer] = 7; - // vera_layer_rowskip[layer] = 128; - // break; - // [294] if(vera_layer_mode_tile::mapwidth#10==$40) goto vera_layer_mode_tile::@10 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$40 - bne !__b10+ - jmp __b10 - !__b10: - !: - // vera_layer_mode_tile::@7 - // case 128: - // config |= VERA_LAYER_WIDTH_128; - // vera_layer_rowshift[layer] = 8; - // vera_layer_rowskip[layer] = 256; - // break; - // [295] if(vera_layer_mode_tile::mapwidth#10==$80) goto vera_layer_mode_tile::@11 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$80 - bne !__b11+ - jmp __b11 - !__b11: - !: - // vera_layer_mode_tile::@8 - // case 256: - // config |= VERA_LAYER_WIDTH_256; - // vera_layer_rowshift[layer] = 9; - // vera_layer_rowskip[layer] = 512; - // break; - // [296] if(vera_layer_mode_tile::mapwidth#10!=$100) goto vera_layer_mode_tile::@13 -- vwuz1_neq_vwuc1_then_la1 - lda.z mapwidth+1 - cmp #>$100 - bne __b13 - lda.z mapwidth - cmp #<$100 - bne __b13 - // vera_layer_mode_tile::@12 - // config |= VERA_LAYER_WIDTH_256 - // [297] vera_layer_mode_tile::config#8 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_256 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_WIDTH_256 - tax - // vera_layer_rowshift[layer] = 9 - // [298] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 9 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #9 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 512 - // [299] vera_layer_mode_tile::$14 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - tya - asl - // [300] vera_layer_rowskip[vera_layer_mode_tile::$14] = $200 -- pwuc1_derefidx_vbuaa=vwuc2 - tay - lda #<$200 - sta vera_layer_rowskip,y - lda #>$200 - sta vera_layer_rowskip+1,y - // [301] phi from vera_layer_mode_tile::@10 vera_layer_mode_tile::@11 vera_layer_mode_tile::@12 vera_layer_mode_tile::@8 vera_layer_mode_tile::@9 to vera_layer_mode_tile::@13 [phi:vera_layer_mode_tile::@10/vera_layer_mode_tile::@11/vera_layer_mode_tile::@12/vera_layer_mode_tile::@8/vera_layer_mode_tile::@9->vera_layer_mode_tile::@13] - // [301] phi vera_layer_mode_tile::config#21 = vera_layer_mode_tile::config#6 [phi:vera_layer_mode_tile::@10/vera_layer_mode_tile::@11/vera_layer_mode_tile::@12/vera_layer_mode_tile::@8/vera_layer_mode_tile::@9->vera_layer_mode_tile::@13#0] -- register_copy - // vera_layer_mode_tile::@13 - __b13: - // case 32: - // config |= VERA_LAYER_HEIGHT_32; - // break; - // [302] if(vera_layer_mode_tile::mapheight#10==$20) goto vera_layer_mode_tile::@20 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$20 - beq __b20 - !: - // vera_layer_mode_tile::@14 - // case 64: - // config |= VERA_LAYER_HEIGHT_64; - // break; - // [303] if(vera_layer_mode_tile::mapheight#10==$40) goto vera_layer_mode_tile::@17 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$40 - bne !__b17+ - jmp __b17 - !__b17: - !: - // vera_layer_mode_tile::@15 - // case 128: - // config |= VERA_LAYER_HEIGHT_128; - // break; - // [304] if(vera_layer_mode_tile::mapheight#10==$80) goto vera_layer_mode_tile::@18 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$80 - bne !__b18+ - jmp __b18 - !__b18: - !: - // vera_layer_mode_tile::@16 - // case 256: - // config |= VERA_LAYER_HEIGHT_256; - // break; - // [305] if(vera_layer_mode_tile::mapheight#10!=$100) goto vera_layer_mode_tile::@20 -- vwuz1_neq_vwuc1_then_la1 - lda.z mapheight+1 - cmp #>$100 - bne __b20 - lda.z mapheight - cmp #<$100 - bne __b20 - // vera_layer_mode_tile::@19 - // config |= VERA_LAYER_HEIGHT_256 - // [306] vera_layer_mode_tile::config#12 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_256 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_256 - tax - // [307] phi from vera_layer_mode_tile::@13 vera_layer_mode_tile::@16 vera_layer_mode_tile::@17 vera_layer_mode_tile::@18 vera_layer_mode_tile::@19 to vera_layer_mode_tile::@20 [phi:vera_layer_mode_tile::@13/vera_layer_mode_tile::@16/vera_layer_mode_tile::@17/vera_layer_mode_tile::@18/vera_layer_mode_tile::@19->vera_layer_mode_tile::@20] - // [307] phi vera_layer_mode_tile::config#25 = vera_layer_mode_tile::config#21 [phi:vera_layer_mode_tile::@13/vera_layer_mode_tile::@16/vera_layer_mode_tile::@17/vera_layer_mode_tile::@18/vera_layer_mode_tile::@19->vera_layer_mode_tile::@20#0] -- register_copy - // vera_layer_mode_tile::@20 - __b20: - // vera_layer_set_config(layer, config) - // [308] vera_layer_set_config::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [309] vera_layer_set_config::config#0 = vera_layer_mode_tile::config#25 - // [310] call vera_layer_set_config - jsr vera_layer_set_config - // vera_layer_mode_tile::@27 - // WORD0(mapbase_address) - // [311] vera_layer_mode_tile::$1 = word0 vera_layer_mode_tile::mapbase_address#10 -- vwuz1=_word0_vduz2 - lda.z mapbase_address_1 - sta.z __1 - lda.z mapbase_address_1+1 - sta.z __1+1 - // vera_mapbase_offset[layer] = WORD0(mapbase_address) - // [312] vera_layer_mode_tile::$17 = vera_layer_mode_tile::layer#10 << 1 -- vbuz1=vbuz2_rol_1 - lda.z layer - asl - sta.z __17 - // [313] vera_mapbase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$1 -- pwuc1_derefidx_vbuz1=vwuz2 - // mapbase - tay - lda.z __1 - sta vera_mapbase_offset,y - lda.z __1+1 - sta vera_mapbase_offset+1,y - // BYTE2(mapbase_address) - // [314] vera_layer_mode_tile::$2 = byte2 vera_layer_mode_tile::mapbase_address#10 -- vbuaa=_byte2_vduz1 - lda.z mapbase_address_1+2 - // vera_mapbase_bank[layer] = BYTE2(mapbase_address) - // [315] vera_mapbase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$2 -- pbuc1_derefidx_vbuz1=vbuaa - ldy.z layer - sta vera_mapbase_bank,y - // vera_mapbase_address[layer] = mapbase_address - // [316] vera_layer_mode_tile::$18 = vera_layer_mode_tile::layer#10 << 2 -- vbuz1=vbuz2_rol_2 - tya - asl - asl - sta.z __18 - // [317] vera_mapbase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::mapbase_address#10 -- pduc1_derefidx_vbuz1=vduz2 - tay - lda.z mapbase_address_1 - sta vera_mapbase_address,y - lda.z mapbase_address_1+1 - sta vera_mapbase_address+1,y - lda.z mapbase_address_1+2 - sta vera_mapbase_address+2,y - lda.z mapbase_address_1+3 - sta vera_mapbase_address+3,y - // mapbase_address = mapbase_address >> 1 - // [318] vera_layer_mode_tile::mapbase_address#0 = vera_layer_mode_tile::mapbase_address#10 >> 1 -- vduz1=vduz2_ror_1 - lsr - sta.z mapbase_address+3 - lda.z mapbase_address_1+2 - ror - sta.z mapbase_address+2 - lda.z mapbase_address_1+1 - ror - sta.z mapbase_address+1 - lda.z mapbase_address_1 - ror - sta.z mapbase_address - // byte mapbase = BYTE1(mapbase_address) - // [319] vera_layer_mode_tile::mapbase#0 = byte1 vera_layer_mode_tile::mapbase_address#0 -- vbuxx=_byte1_vduz1 - ldx.z mapbase_address+1 - // vera_layer_set_mapbase(layer,mapbase) - // [320] vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [321] vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0 - // [322] call vera_layer_set_mapbase - // [229] phi from vera_layer_mode_tile::@27 to vera_layer_set_mapbase [phi:vera_layer_mode_tile::@27->vera_layer_set_mapbase] - // [229] phi vera_layer_set_mapbase::mapbase#3 = vera_layer_set_mapbase::mapbase#0 [phi:vera_layer_mode_tile::@27->vera_layer_set_mapbase#0] -- register_copy - // [229] phi vera_layer_set_mapbase::layer#3 = vera_layer_set_mapbase::layer#0 [phi:vera_layer_mode_tile::@27->vera_layer_set_mapbase#1] -- register_copy - jsr vera_layer_set_mapbase - // vera_layer_mode_tile::@28 - // WORD0(tilebase_address) - // [323] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 -- vwuz1=_word0_vduz2 - lda.z tilebase_address_1 - sta.z __6 - lda.z tilebase_address_1+1 - sta.z __6+1 - // vera_tilebase_offset[layer] = WORD0(tilebase_address) - // [324] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 -- pwuc1_derefidx_vbuz1=vwuz2 - // tilebase - ldy.z __17 - lda.z __6 - sta vera_tilebase_offset,y - lda.z __6+1 - sta vera_tilebase_offset+1,y - // BYTE2(tilebase_address) - // [325] vera_layer_mode_tile::$7 = byte2 vera_layer_mode_tile::tilebase_address#10 -- vbuaa=_byte2_vduz1 - lda.z tilebase_address_1+2 - // vera_tilebase_bank[layer] = BYTE2(tilebase_address) - // [326] vera_tilebase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$7 -- pbuc1_derefidx_vbuz1=vbuaa - ldy.z layer - sta vera_tilebase_bank,y - // vera_tilebase_address[layer] = tilebase_address - // [327] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 -- pduc1_derefidx_vbuz1=vduz2 - ldy.z __18 - lda.z tilebase_address_1 - sta vera_tilebase_address,y - lda.z tilebase_address_1+1 - sta vera_tilebase_address+1,y - lda.z tilebase_address_1+2 - sta vera_tilebase_address+2,y - lda.z tilebase_address_1+3 - sta vera_tilebase_address+3,y - // tilebase_address = tilebase_address >> 1 - // [328] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 -- vduz1=vduz2_ror_1 - lsr - sta.z tilebase_address+3 - lda.z tilebase_address_1+2 - ror - sta.z tilebase_address+2 - lda.z tilebase_address_1+1 - ror - sta.z tilebase_address+1 - lda.z tilebase_address_1 - ror - sta.z tilebase_address - // byte tilebase = BYTE1(tilebase_address) - // [329] vera_layer_mode_tile::tilebase#0 = byte1 vera_layer_mode_tile::tilebase_address#0 -- vbuaa=_byte1_vduz1 - lda.z tilebase_address+1 - // tilebase &= VERA_LAYER_TILEBASE_MASK - // [330] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK -- vbuxx=vbuaa_band_vbuc1 - and #VERA_LAYER_TILEBASE_MASK - tax - // case 8: - // tilebase |= VERA_TILEBASE_WIDTH_8; - // break; - // [331] if(vera_layer_mode_tile::tilewidth#10==8) goto vera_layer_mode_tile::@23 -- vbuz1_eq_vbuc1_then_la1 - lda #8 - cmp.z tilewidth - beq __b23 - // vera_layer_mode_tile::@21 - // case 16: - // tilebase |= VERA_TILEBASE_WIDTH_16; - // break; - // [332] if(vera_layer_mode_tile::tilewidth#10!=$10) goto vera_layer_mode_tile::@23 -- vbuz1_neq_vbuc1_then_la1 - lda #$10 - cmp.z tilewidth - bne __b23 - // vera_layer_mode_tile::@22 - // tilebase |= VERA_TILEBASE_WIDTH_16 - // [333] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_TILEBASE_WIDTH_16 - tax - // [334] phi from vera_layer_mode_tile::@21 vera_layer_mode_tile::@22 vera_layer_mode_tile::@28 to vera_layer_mode_tile::@23 [phi:vera_layer_mode_tile::@21/vera_layer_mode_tile::@22/vera_layer_mode_tile::@28->vera_layer_mode_tile::@23] - // [334] phi vera_layer_mode_tile::tilebase#12 = vera_layer_mode_tile::tilebase#1 [phi:vera_layer_mode_tile::@21/vera_layer_mode_tile::@22/vera_layer_mode_tile::@28->vera_layer_mode_tile::@23#0] -- register_copy - // vera_layer_mode_tile::@23 - __b23: - // case 8: - // tilebase |= VERA_TILEBASE_HEIGHT_8; - // break; - // [335] if(vera_layer_mode_tile::tileheight#10==8) goto vera_layer_mode_tile::@26 -- vbuz1_eq_vbuc1_then_la1 - lda #8 - cmp.z tileheight - beq __b26 - // vera_layer_mode_tile::@24 - // case 16: - // tilebase |= VERA_TILEBASE_HEIGHT_16; - // break; - // [336] if(vera_layer_mode_tile::tileheight#10!=$10) goto vera_layer_mode_tile::@26 -- vbuz1_neq_vbuc1_then_la1 - lda #$10 - cmp.z tileheight - bne __b26 - // vera_layer_mode_tile::@25 - // tilebase |= VERA_TILEBASE_HEIGHT_16 - // [337] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_TILEBASE_HEIGHT_16 - tax - // [338] phi from vera_layer_mode_tile::@23 vera_layer_mode_tile::@24 vera_layer_mode_tile::@25 to vera_layer_mode_tile::@26 [phi:vera_layer_mode_tile::@23/vera_layer_mode_tile::@24/vera_layer_mode_tile::@25->vera_layer_mode_tile::@26] - // [338] phi vera_layer_mode_tile::tilebase#10 = vera_layer_mode_tile::tilebase#12 [phi:vera_layer_mode_tile::@23/vera_layer_mode_tile::@24/vera_layer_mode_tile::@25->vera_layer_mode_tile::@26#0] -- register_copy - // vera_layer_mode_tile::@26 - __b26: - // vera_layer_set_tilebase(layer,tilebase) - // [339] vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [340] vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10 - // [341] call vera_layer_set_tilebase - jsr vera_layer_set_tilebase - // vera_layer_mode_tile::@return - // } - // [342] return - rts - // vera_layer_mode_tile::@18 - __b18: - // config |= VERA_LAYER_HEIGHT_128 - // [343] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_128 - tax - jmp __b20 - // vera_layer_mode_tile::@17 - __b17: - // config |= VERA_LAYER_HEIGHT_64 - // [344] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_64 - tax - jmp __b20 - // vera_layer_mode_tile::@11 - __b11: - // config |= VERA_LAYER_WIDTH_128 - // [345] vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_128 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_WIDTH_128 - tax - // vera_layer_rowshift[layer] = 8 - // [346] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #8 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 256 - // [347] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - tya - asl - // [348] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 -- pwuc1_derefidx_vbuaa=vwuc2 - tay - lda #<$100 - sta vera_layer_rowskip,y - lda #>$100 - sta vera_layer_rowskip+1,y - jmp __b13 - // vera_layer_mode_tile::@10 - __b10: - // config |= VERA_LAYER_WIDTH_64 - // [349] vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_64 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_WIDTH_64 - tax - // vera_layer_rowshift[layer] = 7 - // [350] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #7 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 128 - // [351] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - tya - asl - // [352] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 -- pwuc1_derefidx_vbuaa=vbuc2 - tay - lda #$80 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - jmp __b13 - // vera_layer_mode_tile::@9 - __b9: - // vera_layer_rowshift[layer] = 6 - // [353] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #6 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 64 - // [354] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - tya - asl - // [355] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 -- pwuc1_derefidx_vbuaa=vbuc2 - tay - lda #$40 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - jmp __b13 -} - // clrscr -// clears the screen and moves the cursor to the upper left-hand corner of the screen. -clrscr: { - .label __1 = $53 - .label line_text = 6 - .label color = $20 - .label l = $a - // char* line_text = CONIO_SCREEN_TEXT - // [356] clrscr::line_text#0 = (char *)CONIO_SCREEN_TEXT#17 -- pbuz1=pbuz2 - lda.z CONIO_SCREEN_TEXT_1 - sta.z line_text - lda.z CONIO_SCREEN_TEXT_1+1 - sta.z line_text+1 - // vera_layer_get_backcolor(conio_screen_layer) - // [357] vera_layer_get_backcolor::layer#0 = conio_screen_layer -- vbuyy=vbuz1 - ldy.z conio_screen_layer - // [358] call vera_layer_get_backcolor - jsr vera_layer_get_backcolor - // [359] vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#1 - // clrscr::@7 - // [360] clrscr::$0 = vera_layer_get_backcolor::return#0 - // vera_layer_get_backcolor(conio_screen_layer) << 4 - // [361] clrscr::$1 = clrscr::$0 << 4 -- vbuz1=vbuaa_rol_4 - asl - asl - asl - asl - sta.z __1 - // vera_layer_get_textcolor(conio_screen_layer) - // [362] vera_layer_get_textcolor::layer#0 = conio_screen_layer -- vbuyy=vbuz1 - ldy.z conio_screen_layer - // [363] call vera_layer_get_textcolor - jsr vera_layer_get_textcolor - // [364] vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#1 - // clrscr::@8 - // [365] clrscr::$2 = vera_layer_get_textcolor::return#0 - // char color = ( vera_layer_get_backcolor(conio_screen_layer) << 4 ) | vera_layer_get_textcolor(conio_screen_layer) - // [366] clrscr::color#0 = clrscr::$1 | clrscr::$2 -- vbuz1=vbuz2_bor_vbuaa - ora.z __1 - sta.z color - // [367] phi from clrscr::@8 to clrscr::@1 [phi:clrscr::@8->clrscr::@1] - // [367] phi clrscr::line_text#2 = clrscr::line_text#0 [phi:clrscr::@8->clrscr::@1#0] -- register_copy - // [367] phi clrscr::l#2 = 0 [phi:clrscr::@8->clrscr::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z l - // clrscr::@1 - __b1: - // for( char l=0;lclrscr::@4] - // [381] phi clrscr::c#2 = 0 [phi:clrscr::@2->clrscr::@4#0] -- vbuyy=vbuc1 - ldy #0 - // clrscr::@4 - __b4: - // for( char c=0;cclrscr::@1] - // [367] phi clrscr::line_text#2 = clrscr::line_text#1 [phi:clrscr::@6->clrscr::@1#0] -- register_copy - // [367] phi clrscr::l#2 = clrscr::l#1 [phi:clrscr::@6->clrscr::@1#1] -- register_copy - jmp __b1 - // clrscr::@5 - __b5: - // *VERA_DATA0 = ' ' - // [385] *VERA_DATA0 = ' ' -- _deref_pbuc1=vbuc2 - lda #' ' - sta VERA_DATA0 - // *VERA_DATA0 = color - // [386] *VERA_DATA0 = clrscr::color#0 -- _deref_pbuc1=vbuz1 - lda.z color - sta VERA_DATA0 - // for( char c=0;cclrscr::@4] - // [381] phi clrscr::c#2 = clrscr::c#1 [phi:clrscr::@5->clrscr::@4#0] -- register_copy - jmp __b4 -} - // memcpy_to_vram -// Copy block of memory (from RAM to VRAM) -// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination in VRAM. -// - vbank: Which 64K VRAM bank to put data into (0/1) -// - vdest: The destination address in VRAM -// - src: The source address in RAM -// - num: The number of bytes to copy -// void memcpy_to_vram(char vbank, __zp(8) void *vdest, void *src, unsigned int num) -memcpy_to_vram: { - // Transfer the data - .label end = main.tiles+$100 - .label s = 4 - .label vdest = 8 - // *VERA_CTRL &= ~VERA_ADDRSEL - // [389] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(vdest) - // [390] memcpy_to_vram::$0 = byte0 memcpy_to_vram::vdest#2 -- vbuaa=_byte0_pvoz1 - lda.z vdest - // *VERA_ADDRX_L = BYTE0(vdest) - // [391] *VERA_ADDRX_L = memcpy_to_vram::$0 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // BYTE1(vdest) - // [392] memcpy_to_vram::$1 = byte1 memcpy_to_vram::vdest#2 -- vbuaa=_byte1_pvoz1 - lda.z vdest+1 - // *VERA_ADDRX_M = BYTE1(vdest) - // [393] *VERA_ADDRX_M = memcpy_to_vram::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // *VERA_ADDRX_H = VERA_INC_1 | vbank - // [394] *VERA_ADDRX_H = VERA_INC_1 -- _deref_pbuc1=vbuc2 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // [395] phi from memcpy_to_vram to memcpy_to_vram::@1 [phi:memcpy_to_vram->memcpy_to_vram::@1] - // [395] phi memcpy_to_vram::s#2 = (char *)(void *)main::tiles [phi:memcpy_to_vram->memcpy_to_vram::@1#0] -- pbuz1=pbuc1 - lda #main.tiles - sta.z s+1 - // memcpy_to_vram::@1 - __b1: - // for(char *s = src; s!=end; s++) - // [396] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2 -- pbuz1_neq_pbuc1_then_la1 - lda.z s+1 - cmp #>end - bne __b2 - lda.z s - cmp #memcpy_to_vram::@1] - // [395] phi memcpy_to_vram::s#2 = memcpy_to_vram::s#1 [phi:memcpy_to_vram::@2->memcpy_to_vram::@1#0] -- register_copy - jmp __b1 -} - // vera_tile_area -// --- TILE FUNCTIONS --- -// void vera_tile_area(char layer, __zp($24) unsigned int tileindex, __zp($29) char x, __zp($a) char y, __zp($e) char w, __zp($20) char h, __zp($28) char hflip, __zp($1b) char vflip, char offset) -vera_tile_area: { - .label __4 = 8 - .label __10 = 8 - .label mapbase = $14 - .label shift = $2a - .label rowskip = $1e - .label hflip = $28 - .label vflip = $1b - .label index_l = $1c - .label index_h = $1b - .label r = $b - .label tileindex = $24 - .label x = $29 - .label y = $a - .label h = $20 - .label w = $e - // dword mapbase = vera_mapbase_address[layer] - // [401] vera_tile_area::mapbase#0 = *vera_mapbase_address -- vduz1=_deref_pduc1 - lda vera_mapbase_address - sta.z mapbase - lda vera_mapbase_address+1 - sta.z mapbase+1 - lda vera_mapbase_address+2 - sta.z mapbase+2 - lda vera_mapbase_address+3 - sta.z mapbase+3 - // byte shift = vera_layer_rowshift[layer] - // [402] vera_tile_area::shift#0 = *vera_layer_rowshift -- vbuz1=_deref_pbuc1 - lda vera_layer_rowshift - sta.z shift - // word rowskip = (word)1 << shift - // [403] vera_tile_area::rowskip#0 = 1 << vera_tile_area::shift#0 -- vwuz1=vwuc1_rol_vbuz2 - tay - lda #<1 - sta.z rowskip - lda #>1+1 - sta.z rowskip+1 - cpy #0 - beq !e+ - !: - asl.z rowskip - rol.z rowskip+1 - dey - bne !- - !e: - // hflip = vera_layer_hflip[hflip] - // [404] vera_tile_area::hflip#0 = *vera_layer_hflip -- vbuz1=_deref_pbuc1 - lda vera_layer_hflip - sta.z hflip - // vflip = vera_layer_vflip[vflip] - // [405] vera_tile_area::vflip#0 = *vera_layer_vflip -- vbuz1=_deref_pbuc1 - lda vera_layer_vflip - sta.z vflip - // byte index_l = BYTE0(tileindex) - // [406] vera_tile_area::index_l#0 = byte0 vera_tile_area::tileindex#5 -- vbuz1=_byte0_vwuz2 - lda.z tileindex - sta.z index_l - // byte index_h = BYTE1(tileindex) - // [407] vera_tile_area::index_h#0 = byte1 vera_tile_area::tileindex#5 -- vbuaa=_byte1_vwuz1 - lda.z tileindex+1 - // index_h |= hflip - // [408] vera_tile_area::index_h#1 = vera_tile_area::index_h#0 | vera_tile_area::hflip#0 -- vbuaa=vbuaa_bor_vbuz1 - ora.z hflip - // index_h |= vflip - // [409] vera_tile_area::index_h#2 = vera_tile_area::index_h#1 | vera_tile_area::vflip#0 -- vbuz1=vbuaa_bor_vbuz1 - ora.z index_h - sta.z index_h - // (word)y << shift - // [410] vera_tile_area::$10 = (unsigned int)vera_tile_area::y#5 -- vwuz1=_word_vbuz2 - lda.z y - sta.z __10 - lda #0 - sta.z __10+1 - // [411] vera_tile_area::$4 = vera_tile_area::$10 << vera_tile_area::shift#0 -- vwuz1=vwuz1_rol_vbuz2 - ldy.z shift - beq !e+ - !: - asl.z __4 - rol.z __4+1 - dey - bne !- - !e: - // mapbase += ((word)y << shift) - // [412] vera_tile_area::mapbase#1 = vera_tile_area::mapbase#0 + vera_tile_area::$4 -- vduz1=vduz1_plus_vwuz2 - lda.z mapbase - clc - adc.z __4 - sta.z mapbase - lda.z mapbase+1 - adc.z __4+1 - sta.z mapbase+1 - lda.z mapbase+2 - adc #0 - sta.z mapbase+2 - lda.z mapbase+3 - adc #0 - sta.z mapbase+3 - // x << 1 - // [413] vera_tile_area::$5 = vera_tile_area::x#5 << 1 -- vbuaa=vbuz1_rol_1 - lda.z x - asl - // mapbase += (x << 1) - // [414] vera_tile_area::mapbase#2 = vera_tile_area::mapbase#1 + vera_tile_area::$5 -- vduz1=vduz1_plus_vbuaa - clc - adc.z mapbase - sta.z mapbase - lda.z mapbase+1 - adc #0 - sta.z mapbase+1 - lda.z mapbase+2 - adc #0 - sta.z mapbase+2 - lda.z mapbase+3 - adc #0 - sta.z mapbase+3 - // [415] phi from vera_tile_area to vera_tile_area::@1 [phi:vera_tile_area->vera_tile_area::@1] - // [415] phi vera_tile_area::mapbase#10 = vera_tile_area::mapbase#2 [phi:vera_tile_area->vera_tile_area::@1#0] -- register_copy - // [415] phi vera_tile_area::r#2 = 0 [phi:vera_tile_area->vera_tile_area::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z r - // vera_tile_area::@1 - __b1: - // for(byte r=0; rvera_tile_area::@2] - // [426] phi vera_tile_area::c#2 = 0 [phi:vera_tile_area::vera_vram_address01->vera_tile_area::@2#0] -- vbuyy=vbuc1 - ldy #0 - // vera_tile_area::@2 - __b2: - // for(byte c=0; cvera_tile_area::@1] - // [415] phi vera_tile_area::mapbase#10 = vera_tile_area::mapbase#3 [phi:vera_tile_area::@4->vera_tile_area::@1#0] -- register_copy - // [415] phi vera_tile_area::r#2 = vera_tile_area::r#1 [phi:vera_tile_area::@4->vera_tile_area::@1#1] -- register_copy - jmp __b1 - // vera_tile_area::@3 - __b3: - // *VERA_DATA0 = index_l - // [430] *VERA_DATA0 = vera_tile_area::index_l#0 -- _deref_pbuc1=vbuz1 - lda.z index_l - sta VERA_DATA0 - // *VERA_DATA0 = index_h - // [431] *VERA_DATA0 = vera_tile_area::index_h#2 -- _deref_pbuc1=vbuz1 - lda.z index_h - sta VERA_DATA0 - // for(byte c=0; cvera_tile_area::@2] - // [426] phi vera_tile_area::c#2 = vera_tile_area::c#1 [phi:vera_tile_area::@3->vera_tile_area::@2#0] -- register_copy - jmp __b2 -} - // printf_str -/// Print a NUL-terminated string -// void printf_str(void (*putc)(char), __zp($1e) const char *s) -printf_str: { - .label s = $1e - // [434] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] - // [434] phi printf_str::s#9 = printf_str::s#10 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy - // printf_str::@1 - __b1: - // while(c=*s++) - // [435] printf_str::c#1 = *printf_str::s#9 -- vbuaa=_deref_pbuz1 - ldy #0 - lda (s),y - // [436] printf_str::s#0 = ++ printf_str::s#9 -- pbuz1=_inc_pbuz1 - inc.z s - bne !+ - inc.z s+1 - !: - // [437] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b2 - // printf_str::@return - // } - // [438] return - rts - // printf_str::@2 - __b2: - // putc(c) - // [439] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa - pha - // [440] callexecute cputc -- call_vprc1 - jsr cputc - // sideeffect stackpullpadding(1) -- _stackpullpadding_1 - pla - jmp __b1 -} - // kbhit -// Return true if there's a key waiting, return false if not -kbhit: { - .label chptr = ch - .label IN_DEV = $28a - // Current input device number - .label GETIN = $ffe4 - .label ch = $38 - // char ch = 0 - // [442] kbhit::ch = 0 -- vbuz1=vbuc1 - lda #0 - sta.z ch - // kickasm - // kickasm( uses kbhit::chptr uses kbhit::IN_DEV uses kbhit::GETIN) {{ jsr _kbhit bne L3 jmp continue1 .var via1 = $9f60 //VIA#1 .var d1pra = via1+1 _kbhit: ldy d1pra // The count of keys pressed is stored in RAM bank 0. stz d1pra // Set d1pra to zero to access RAM bank 0. lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). sty d1pra // Set d1pra to previous value. rts L3: ldy IN_DEV // Save current input device stz IN_DEV // Keyboard phy jsr GETIN // Read char, and return in .A ply sta chptr // Store the character read in ch sty IN_DEV // Restore input device ldx #>$0000 rts continue1: nop }} - // CBM GETIN API - jsr _kbhit - bne L3 - - jmp continue1 - - .var via1 = $9f60 //VIA#1 - .var d1pra = via1+1 - - _kbhit: - ldy d1pra // The count of keys pressed is stored in RAM bank 0. - stz d1pra // Set d1pra to zero to access RAM bank 0. - lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). - sty d1pra // Set d1pra to previous value. - rts - - L3: - ldy IN_DEV // Save current input device - stz IN_DEV // Keyboard - phy - jsr GETIN // Read char, and return in .A - ply - sta chptr // Store the character read in ch - sty IN_DEV // Restore input device - ldx #>$0000 - rts - - continue1: - nop - - // return ch; - // [444] kbhit::return#0 = kbhit::ch -- vbuaa=vbuz1 - lda.z ch - // kbhit::@return - // } - // [445] kbhit::return#1 = kbhit::return#0 - // [446] return - rts -} - // vera_layer_set_text_color_mode -// Set the configuration of the layer text color mode. -// - layer: Value of 0 or 1. -// - color_mode: Specifies the color mode to be VERA_LAYER_CONFIG_16 or VERA_LAYER_CONFIG_256 for text mode. -// void vera_layer_set_text_color_mode(char layer, char color_mode) -vera_layer_set_text_color_mode: { - .label addr = $22 - // byte* addr = vera_layer_config[layer] - // [447] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) -- pbuz1=_deref_qbuc1 - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER - sta.z addr - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER+1 - sta.z addr+1 - // *addr &= ~VERA_LAYER_CONFIG_256C - // [448] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C -- _deref_pbuz1=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_CONFIG_256C^$ff - ldy #0 - and (addr),y - sta (addr),y - // *addr |= color_mode - // [449] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 -- _deref_pbuz1=_deref_pbuz1 - lda (addr),y - sta (addr),y - // vera_layer_set_text_color_mode::@return - // } - // [450] return - rts -} - // vera_layer_get_mapbase_bank -// Get the map base bank of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Bank in vera vram. -// __register(X) char vera_layer_get_mapbase_bank(__register(Y) char layer) -vera_layer_get_mapbase_bank: { - // return vera_mapbase_bank[layer]; - // [451] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0] -- vbuxx=pbuc1_derefidx_vbuyy - ldx vera_mapbase_bank,y - // vera_layer_get_mapbase_bank::@return - // } - // [452] return - rts -} - // vera_layer_get_mapbase_offset -// Get the map base lower 16-bit address (offset) of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Offset in vera vram of the specified bank. -// __zp($10) unsigned int vera_layer_get_mapbase_offset(__register(A) char layer) -vera_layer_get_mapbase_offset: { - .label return = $10 - // return vera_mapbase_offset[layer]; - // [453] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [454] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda vera_mapbase_offset,y - sta.z return - lda vera_mapbase_offset+1,y - sta.z return+1 - // vera_layer_get_mapbase_offset::@return - // } - // [455] return - rts -} - // vera_layer_get_rowshift -// Get the bit shift value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Rowshift value to calculate fast from a y value to line offset in tile mode. -// __register(A) char vera_layer_get_rowshift(__register(Y) char layer) -vera_layer_get_rowshift: { - // return vera_layer_rowshift[layer]; - // [456] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0] -- vbuaa=pbuc1_derefidx_vbuyy - lda vera_layer_rowshift,y - // vera_layer_get_rowshift::@return - // } - // [457] return - rts -} - // vera_layer_get_rowskip -// Get the value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Skip value to calculate fast from a y value to line offset in tile mode. -// __zp($35) unsigned int vera_layer_get_rowskip(__register(A) char layer) -vera_layer_get_rowskip: { - .label return = $35 - // return vera_layer_rowskip[layer]; - // [458] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [459] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda vera_layer_rowskip,y - sta.z return - lda vera_layer_rowskip+1,y - sta.z return+1 - // vera_layer_get_rowskip::@return - // } - // [460] return - rts -} - // cscroll -// Scroll the entire screen if the cursor is beyond the last line -cscroll: { - // if(conio_cursor_y[conio_screen_layer]>=CONIO_HEIGHT) - // [461] if(conio_cursor_y[conio_screen_layer]=conio_height) - // [463] if(conio_cursor_y[conio_screen_layer]cscroll::@3] - // cscroll::@3 - __b3: - // cscroll::@return - // } - // [465] return - rts - // [466] phi from cscroll::@1 to cscroll::@4 [phi:cscroll::@1->cscroll::@4] - // cscroll::@4 - __b4: - // insertup() - // [467] call insertup - jsr insertup - // cscroll::@5 - // gotoxy( 0, CONIO_HEIGHT-1) - // [468] gotoxy::y#2 = conio_screen_height - 1 -- vbuxx=vbuz1_minus_1 - ldx.z conio_screen_height - dex - // [469] call gotoxy - // [234] phi from cscroll::@5 to gotoxy [phi:cscroll::@5->gotoxy] - // [234] phi gotoxy::y#4 = gotoxy::y#2 [phi:cscroll::@5->gotoxy#0] -- register_copy - jsr gotoxy - rts -} - // vera_layer_set_config -// Set the configuration of the layer. -// - layer: Value of 0 or 1. -// - config: Specifies the modes which are specified using T256C / 'Bitmap Mode' / 'Color Depth'. -// void vera_layer_set_config(__register(A) char layer, __register(X) char config) -vera_layer_set_config: { - .label addr = $22 - // byte* addr = vera_layer_config[layer] - // [470] vera_layer_set_config::$0 = vera_layer_set_config::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [471] vera_layer_set_config::addr#0 = vera_layer_config[vera_layer_set_config::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // *addr = config - // [472] *vera_layer_set_config::addr#0 = vera_layer_set_config::config#0 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - // vera_layer_set_config::@return - // } - // [473] return - rts -} - // vera_layer_set_tilebase -// Set the base of the tiles for the layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - tilebase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// void vera_layer_set_tilebase(__register(A) char layer, __register(X) char tilebase) -vera_layer_set_tilebase: { - .label addr = $22 - // byte* addr = vera_layer_tilebase[layer] - // [474] vera_layer_set_tilebase::$0 = vera_layer_set_tilebase::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [475] vera_layer_set_tilebase::addr#0 = vera_layer_tilebase[vera_layer_set_tilebase::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_tilebase,y - sta.z addr - lda vera_layer_tilebase+1,y - sta.z addr+1 - // *addr = tilebase - // [476] *vera_layer_set_tilebase::addr#0 = vera_layer_set_tilebase::tilebase#0 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - // vera_layer_set_tilebase::@return - // } - // [477] return - rts -} - // vera_layer_get_backcolor -// Get the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_backcolor(__register(Y) char layer) -vera_layer_get_backcolor: { - // return vera_layer_backcolor[layer]; - // [478] vera_layer_get_backcolor::return#1 = vera_layer_backcolor[vera_layer_get_backcolor::layer#0] -- vbuaa=pbuc1_derefidx_vbuyy - lda vera_layer_backcolor,y - // vera_layer_get_backcolor::@return - // } - // [479] return - rts -} - // vera_layer_get_textcolor -// Get the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_textcolor(__register(Y) char layer) -vera_layer_get_textcolor: { - // return vera_layer_textcolor[layer]; - // [480] vera_layer_get_textcolor::return#1 = vera_layer_textcolor[vera_layer_get_textcolor::layer#0] -- vbuaa=pbuc1_derefidx_vbuyy - lda vera_layer_textcolor,y - // vera_layer_get_textcolor::@return - // } - // [481] return - rts -} - // insertup -// Insert a new line, and scroll the upper part of the screen up. -insertup: { - .label cy = $e - .label width = $b - .label line = 8 - .label start = 8 - // unsigned byte cy = conio_cursor_y[conio_screen_layer] - // [482] insertup::cy#0 = conio_cursor_y[conio_screen_layer] -- vbuz1=pbuc1_derefidx_vbuz2 - ldy.z conio_screen_layer - lda conio_cursor_y,y - sta.z cy - // unsigned byte width = CONIO_WIDTH * 2 - // [483] insertup::width#0 = conio_screen_width << 1 -- vbuz1=vbuz2_rol_1 - lda.z conio_screen_width - asl - sta.z width - // [484] phi from insertup to insertup::@1 [phi:insertup->insertup::@1] - // [484] phi insertup::i#2 = 1 [phi:insertup->insertup::@1#0] -- vbuxx=vbuc1 - ldx #1 - // insertup::@1 - __b1: - // for(unsigned byte i=1; i<=cy; i++) - // [485] if(insertup::i#2<=insertup::cy#0) goto insertup::@2 -- vbuxx_le_vbuz1_then_la1 - lda.z cy - stx.z $ff - cmp.z $ff - bcs __b2 - // [486] phi from insertup::@1 to insertup::@3 [phi:insertup::@1->insertup::@3] - // insertup::@3 - // clearline() - // [487] call clearline - jsr clearline - // insertup::@return - // } - // [488] return - rts - // insertup::@2 - __b2: - // i-1 - // [489] insertup::$3 = insertup::i#2 - 1 -- vbuaa=vbuxx_minus_1 - txa - sec - sbc #1 - // unsigned int line = (i-1) << conio_rowshift - // [490] insertup::line#0 = insertup::$3 << conio_rowshift -- vwuz1=vbuaa_rol_vbuz2 - ldy.z conio_rowshift - sta.z line - lda #0 - sta.z line+1 - cpy #0 - beq !e+ - !: - asl.z line - rol.z line+1 - dey - bne !- - !e: - // unsigned char* start = CONIO_SCREEN_TEXT + line - // [491] insertup::start#0 = CONIO_SCREEN_TEXT#12 + insertup::line#0 -- pbuz1=pbuz2_plus_vwuz1 - clc - lda.z start - adc.z CONIO_SCREEN_TEXT - sta.z start - lda.z start+1 - adc.z CONIO_SCREEN_TEXT+1 - sta.z start+1 - // start+conio_rowskip - // [492] memcpy_in_vram::src#0 = insertup::start#0 + conio_rowskip -- pbuz1=pbuz2_plus_vwuz3 - lda.z start - clc - adc.z conio_rowskip - sta.z memcpy_in_vram.src - lda.z start+1 - adc.z conio_rowskip+1 - sta.z memcpy_in_vram.src+1 - // memcpy_in_vram(0, start, VERA_INC_1, 0, start+conio_rowskip, VERA_INC_1, width) - // [493] memcpy_in_vram::dest#0 = (void *)insertup::start#0 - // [494] memcpy_in_vram::num#0 = insertup::width#0 -- vwuz1=vbuz2 - lda.z width - sta.z memcpy_in_vram.num - lda #0 - sta.z memcpy_in_vram.num+1 - // [495] memcpy_in_vram::src#4 = (void *)memcpy_in_vram::src#0 - // memcpy_in_vram(0, start, VERA_INC_1, 0, start+conio_rowskip, VERA_INC_1, width) - // [496] call memcpy_in_vram - // [266] phi from insertup::@2 to memcpy_in_vram [phi:insertup::@2->memcpy_in_vram] - // [266] phi memcpy_in_vram::num#4 = memcpy_in_vram::num#0 [phi:insertup::@2->memcpy_in_vram#0] -- register_copy - // [266] phi memcpy_in_vram::dest_bank#3 = 0 [phi:insertup::@2->memcpy_in_vram#1] -- vbuz1=vbuc1 - sta.z memcpy_in_vram.dest_bank - // [266] phi memcpy_in_vram::dest#3 = memcpy_in_vram::dest#0 [phi:insertup::@2->memcpy_in_vram#2] -- register_copy - // [266] phi memcpy_in_vram::src_bank#3 = 0 [phi:insertup::@2->memcpy_in_vram#3] -- vbuyy=vbuc1 - tay - // [266] phi memcpy_in_vram::src#3 = memcpy_in_vram::src#4 [phi:insertup::@2->memcpy_in_vram#4] -- register_copy - jsr memcpy_in_vram - // insertup::@4 - // for(unsigned byte i=1; i<=cy; i++) - // [497] insertup::i#1 = ++ insertup::i#2 -- vbuxx=_inc_vbuxx - inx - // [484] phi from insertup::@4 to insertup::@1 [phi:insertup::@4->insertup::@1] - // [484] phi insertup::i#2 = insertup::i#1 [phi:insertup::@4->insertup::@1#0] -- register_copy - jmp __b1 -} - // clearline -clearline: { - .label addr = $c - .label c = 2 - // *VERA_CTRL &= ~VERA_ADDRSEL - // [498] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // byte* addr = CONIO_SCREEN_TEXT + conio_line_text[conio_screen_layer] - // [499] clearline::$5 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [500] clearline::addr#0 = CONIO_SCREEN_TEXT#12 + conio_line_text[clearline::$5] -- pbuz1=pbuz2_plus_pwuc1_derefidx_vbuaa - // Set address - tay - clc - lda.z CONIO_SCREEN_TEXT - adc conio_line_text,y - sta.z addr - lda.z CONIO_SCREEN_TEXT+1 - adc conio_line_text+1,y - sta.z addr+1 - // BYTE0(addr) - // [501] clearline::$1 = byte0 clearline::addr#0 -- vbuaa=_byte0_pbuz1 - lda.z addr - // *VERA_ADDRX_L = BYTE0(addr) - // [502] *VERA_ADDRX_L = clearline::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_L - // BYTE1(addr) - // [503] clearline::$2 = byte1 clearline::addr#0 -- vbuaa=_byte1_pbuz1 - lda.z addr+1 - // *VERA_ADDRX_M = BYTE1(addr) - // [504] *VERA_ADDRX_M = clearline::$2 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // *VERA_ADDRX_H = VERA_INC_1 - // [505] *VERA_ADDRX_H = VERA_INC_1 -- _deref_pbuc1=vbuc2 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // char color = vera_layer_get_color( conio_screen_layer) - // [506] vera_layer_get_color::layer#1 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [507] call vera_layer_get_color - // [247] phi from clearline to vera_layer_get_color [phi:clearline->vera_layer_get_color] - // [247] phi vera_layer_get_color::layer#2 = vera_layer_get_color::layer#1 [phi:clearline->vera_layer_get_color#0] -- register_copy - jsr vera_layer_get_color - // char color = vera_layer_get_color( conio_screen_layer) - // [508] vera_layer_get_color::return#4 = vera_layer_get_color::return#3 - // clearline::@4 - // [509] clearline::color#0 = vera_layer_get_color::return#4 -- vbuxx=vbuaa - tax - // [510] phi from clearline::@4 to clearline::@1 [phi:clearline::@4->clearline::@1] - // [510] phi clearline::c#2 = 0 [phi:clearline::@4->clearline::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z c - sta.z c+1 - // clearline::@1 - __b1: - // for( unsigned int c=0;cclearline::@1] - // [510] phi clearline::c#2 = clearline::c#1 [phi:clearline::@2->clearline::@1#0] -- register_copy - jmp __b1 -} - // File Data -.segment Data - VERA_LAYER_WIDTH: .word $20, $40, $80, $100 - VERA_LAYER_HEIGHT: .word $20, $40, $80, $100 - /// --- VERA function encapsulation --- - vera_mapbase_offset: .word 0, 0 - vera_mapbase_bank: .byte 0, 0 - vera_mapbase_address: .dword 0, 0 - vera_tilebase_offset: .word 0, 0 - vera_tilebase_bank: .byte 0, 0 - vera_tilebase_address: .dword 0, 0 - vera_layer_rowshift: .byte 0, 0 - vera_layer_rowskip: .word 0, 0 - vera_layer_hflip: .byte 0, 4 - vera_layer_vflip: .byte 0, 8 - vera_layer_config: .word VERA_L0_CONFIG, VERA_L1_CONFIG - vera_layer_enable: .byte VERA_LAYER0_ENABLE, VERA_LAYER1_ENABLE - vera_layer_mapbase: .word VERA_L0_MAPBASE, VERA_L1_MAPBASE - vera_layer_tilebase: .word VERA_L0_TILEBASE, VERA_L1_TILEBASE - vera_layer_textcolor: .byte WHITE, WHITE - vera_layer_backcolor: .byte BLUE, BLUE - // The number of bytes on the screen - // The current cursor x-position - conio_cursor_x: .byte 0, 0 - // The current cursor y-position - conio_cursor_y: .byte 0, 0 - // The current text cursor line start - conio_line_text: .word 0, 0 - // Is scrolling enabled when outputting beyond the end of the screen (1: yes, 0: no). - // If disabled the cursor just moves back to (0,0) instead - conio_scroll_enable: .byte 1, 1 - 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 deleted file mode 100644 index 1891f2ef2..000000000 --- a/src/test/ref/examples/cx16/veralib/tilemap_8bpp_16_x_16.sym +++ /dev/null @@ -1,718 +0,0 @@ -__constant const char BLACK = 0 -__constant const char BLUE = 6 -char CONIO_SCREEN_BANK -char CONIO_SCREEN_BANK#12 // CONIO_SCREEN_BANK zp[1]:57 625.0625 -char CONIO_SCREEN_BANK#15 // reg byte x 14.693333333333332 -char *CONIO_SCREEN_TEXT -char *CONIO_SCREEN_TEXT#12 // CONIO_SCREEN_TEXT zp[2]:18 2.000018187272727E7 -unsigned int CONIO_SCREEN_TEXT#17 // CONIO_SCREEN_TEXT_1 zp[2]:86 2.2954545454545454 -__constant char RADIX::BINARY = 2 -__constant char RADIX::DECIMAL = $a -__constant char RADIX::HEXADECIMAL = $10 -__constant char RADIX::OCTAL = 8 -__constant char SIZEOF_POINTER = 2 -__constant unsigned int STACK_BASE = $103 -__constant const char VERA_ADDRSEL = 1 -__constant char * const VERA_ADDRX_H = (char *) 40738 -__constant char * const VERA_ADDRX_L = (char *) 40736 -__constant char * const VERA_ADDRX_M = (char *) 40737 -__constant char * const VERA_CTRL = (char *) 40741 -__constant char * const VERA_DATA0 = (char *) 40739 -__constant char * const VERA_DATA1 = (char *) 40740 -__constant char * const VERA_DC_HSCALE = (char *) 40746 -__constant char * const VERA_DC_VIDEO = (char *) 40745 -__constant char * const VERA_DC_VSCALE = (char *) 40747 -__constant const char VERA_INC_1 = $10 -__constant char * const VERA_L0_CONFIG = (char *) 40749 -__constant char * const VERA_L0_MAPBASE = (char *) 40750 -__constant char * const VERA_L0_TILEBASE = (char *) 40751 -__constant char * const VERA_L1_CONFIG = (char *) 40756 -__constant char * const VERA_L1_MAPBASE = (char *) 40757 -__constant char * const VERA_L1_TILEBASE = (char *) 40758 -__constant const char VERA_LAYER0_ENABLE = $10 -__constant const char VERA_LAYER1_ENABLE = $20 -__constant const char VERA_LAYER_COLOR_DEPTH_1BPP = 0 -__constant const char VERA_LAYER_COLOR_DEPTH_2BPP = 1 -__constant const char VERA_LAYER_COLOR_DEPTH_4BPP = 2 -__constant const char VERA_LAYER_COLOR_DEPTH_8BPP = 3 -__constant const char VERA_LAYER_CONFIG_256C = 8 -__constant const unsigned int VERA_LAYER_HEIGHT[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_HEIGHT_128 = $80 -__constant const char VERA_LAYER_HEIGHT_256 = $c0 -__constant const char VERA_LAYER_HEIGHT_64 = $40 -__constant const char VERA_LAYER_HEIGHT_MASK = $c0 -__constant const char VERA_LAYER_TILEBASE_MASK = $fc -__constant const unsigned int VERA_LAYER_WIDTH[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_WIDTH_128 = $20 -__constant const char VERA_LAYER_WIDTH_256 = $30 -__constant const char VERA_LAYER_WIDTH_64 = $10 -__constant const char VERA_LAYER_WIDTH_MASK = $30 -__constant const char VERA_TILEBASE_HEIGHT_16 = 2 -__constant const char VERA_TILEBASE_WIDTH_16 = 1 -__constant const char WHITE = 1 -void __start() -void clearline() -char clearline::$1 // reg byte a 2.00000002E8 -char clearline::$2 // reg byte a 2.00000002E8 -char clearline::$5 // reg byte a 2.00000002E8 -char *clearline::addr -char *clearline::addr#0 // addr zp[2]:12 1.00000001E8 -unsigned int clearline::c -unsigned int clearline::c#1 // c zp[2]:2 2.0000000002E10 -unsigned int clearline::c#2 // c zp[2]:2 7.50000000075E9 -char clearline::color -char clearline::color#0 // reg byte x 1.6833333336666665E9 -void clrscr() -char clrscr::$0 // reg byte a 202.0 -char clrscr::$1 // zp[1]:83 40.4 -char clrscr::$2 // reg byte a 202.0 -char clrscr::$5 // reg byte a 2002.0 -char clrscr::$6 // reg byte a 2002.0 -char clrscr::$7 // reg byte a 2002.0 -char clrscr::$9 // reg byte a 202.0 -char clrscr::c -char clrscr::c#1 // reg byte y 20002.0 -char clrscr::c#2 // reg byte y 7500.75 -char *clrscr::ch -char clrscr::color -char clrscr::color#0 // color zp[1]:32 594.2352941176471 -char clrscr::l -char clrscr::l#1 // l zp[1]:10 2002.0 -char clrscr::l#2 // l zp[1]:10 200.2 -char *clrscr::line_text -char *clrscr::line_text#0 // line_text zp[2]:6 18.363636363636363 -char *clrscr::line_text#1 // line_text zp[2]:6 1001.0 -char *clrscr::line_text#2 // line_text zp[2]:6 293.2142857142857 -__constant char conio_cursor_x[2] = { 0, 0 } -__constant char conio_cursor_y[2] = { 0, 0 } -__loadstore unsigned int conio_height // zp[2]:38 6500.681818181818 -__constant unsigned int conio_line_text[2] = { 0, 0 } -__loadstore char conio_rowshift // zp[1]:24 5838150.895953758 -__loadstore unsigned int conio_rowskip // zp[2]:25 5556117.255555555 -__loadstore volatile char conio_screen_height // zp[1]:33 75000.16875000001 -__loadstore char conio_screen_layer // zp[1]:29 1357989.2490118577 -__loadstore volatile char conio_screen_width // zp[1]:15 5.1122500030612245E7 -__constant char conio_scroll_enable[2] = { 1, 1 } -__loadstore unsigned int conio_width // zp[2]:70 128.87820512820514 -void conio_x16_init() -__constant char * const conio_x16_init::BASIC_CURSOR_LINE = (char *) 214 -char conio_x16_init::line -char conio_x16_init::line#0 // line zp[1]:82 2.1999999999999997 -char conio_x16_init::line#1 // line zp[1]:82 22.0 -char conio_x16_init::line#3 // line zp[1]:82 33.0 -__stackcall void cputc(char c) -char cputc::$15 // reg byte a 20002.0 -unsigned int cputc::$16 // zp[2]:6 20002.0 -char cputc::$2 // reg byte a 20002.0 -char cputc::$4 // reg byte a 20002.0 -char cputc::$5 // reg byte a 20002.0 -char cputc::$6 // reg byte a 20002.0 -__constant char cputc::OFFSET_STACK_C = 0 -char cputc::c -char cputc::c#0 // c zp[1]:10 1764.8823529411764 -char cputc::color -char cputc::color#0 // reg byte x 1428.7142857142858 -char *cputc::conio_addr -char *cputc::conio_addr#0 // conio_addr zp[2]:8 10001.0 -char *cputc::conio_addr#1 // conio_addr zp[2]:8 6000.6 -char cputc::scroll_enable -char cputc::scroll_enable#0 // reg byte a 20002.0 -void cputln() -char cputln::$2 // reg byte a 200002.0 -char cputln::$3 // reg byte a 200002.0 -unsigned int cputln::temp -unsigned int cputln::temp#0 // temp zp[2]:4 200002.0 -unsigned int cputln::temp#1 // temp zp[2]:4 100001.0 -void cscroll() -void gotoxy(char x , char y) -char gotoxy::$5 // reg byte a 2.0000002E7 -unsigned int gotoxy::$6 // zp[2]:16 2.0000002E7 -unsigned int gotoxy::line_offset -unsigned int gotoxy::line_offset#0 // line_offset zp[2]:16 1.0000001E7 -char gotoxy::x -char gotoxy::y -char gotoxy::y#1 // reg byte x 22.0 -char gotoxy::y#2 // reg byte x 2000002.0 -char gotoxy::y#4 // reg byte x 7000004.666666666 -char gotoxy::y#5 // reg byte x 4000000.4 -void insertup() -char insertup::$3 // reg byte a 2.000000002E9 -char insertup::cy -char insertup::cy#0 // cy zp[1]:14 7.769230784615384E7 -char insertup::i -char insertup::i#1 // reg byte x 2.000000002E9 -char insertup::i#2 // reg byte x 4.000000004E8 -unsigned int insertup::line -unsigned int insertup::line#0 // line zp[2]:8 2.000000002E9 -char *insertup::start -char *insertup::start#0 // start zp[2]:8 1.000000001E9 -char insertup::width -char insertup::width#0 // width zp[1]:11 8.416666683333334E7 -char kbhit() -__constant char * const kbhit::GETIN = (char *) 65508 -__constant char * const kbhit::IN_DEV = (char *) 650 -__loadstore volatile char kbhit::ch // zp[1]:56 1001.0 -__constant char * const kbhit::chptr = &kbhit::ch -char kbhit::return -char kbhit::return#0 // reg byte a 2002.0 -char kbhit::return#1 // reg byte a 300.75 -char kbhit::return#2 // reg byte a 202.0 -char kbhit::return#3 // reg byte a 202.0 -void main() -char main::$35 // reg byte a 202.0 -char main::$40 // reg byte a 202.0 -char main::bgcolor1_color -char main::bgcolor2_color -char main::c -char main::c#1 // c zp[1]:55 1501.5 -char main::c#2 // c zp[1]:55 250.25 -char main::c1 -char main::c1#1 // reg byte x 1501.5 -char main::c1#2 // reg byte x 250.25 -char main::column -char main::column#1 // reg byte x 400.4 -char main::column#2 // reg byte x 600.5999999999999 -char main::column1 -char main::column1#1 // column1 zp[1]:41 400.4 -char main::column1#2 // column1 zp[1]:41 600.5999999999999 -char main::p -char main::p#1 // reg byte x 1501.5 -char main::p#2 // reg byte x 2002.0 -char main::r -char main::r#1 // r zp[1]:66 151.5 -char main::r#5 // r zp[1]:66 16.833333333333332 -char main::r1 -char main::r1#1 // r1 zp[1]:67 151.5 -char main::r1#5 // r1 zp[1]:67 16.833333333333332 -char main::row -char main::row#1 // row zp[1]:64 67.33333333333333 -char main::row#10 // row_1 zp[1]:65 109.36363636363637 -char main::row#3 // row_1 zp[1]:65 67.33333333333333 -char main::row#9 // row zp[1]:64 109.36363636363637 -__constant char main::s[$38] = "vera in tile mode 8 x 8, color depth 8 bits per pixel. -" -__constant char main::s1[$3a] = "in this mode, tiles are 8 pixels wide and 8 pixels tall. -" -__constant char main::s2[$2f] = "each tile can have a variation of 256 colors. -" -__constant char main::s3[$44] = "the vera palette of 256 colors, can be used by setting the palette -" -__constant char main::s4[$17] = "offset for each tile. -" -__constant char main::s5[$4b] = "here each column is displaying the same tile, but with different offsets! -" -__constant char main::s6[$3f] = "each offset aligns to multiples of 16 colors in the palette!. -" -__constant char main::s7[$3e] = "however, the first color will always be transparent (black). -" -char main::t -char main::t#1 // t zp[1]:63 151.5 -char main::t#5 // t zp[1]:63 25.25 -char main::textcolor1_color -char main::textcolor2_color -unsigned int main::tile -unsigned int main::tile#1 // tile zp[2]:36 2002.0 -unsigned int main::tile#10 // tile zp[2]:36 202.0 -unsigned int main::tile#11 // tile zp[2]:36 202.0 -unsigned int main::tile#12 // tile zp[2]:36 350.5 -unsigned int main::tile#13 // tile zp[2]:36 350.5 -unsigned int main::tile#4 // tile zp[2]:36 2002.0 -unsigned int main::tile#6 // tile zp[2]:36 517.3333333333334 -unsigned int main::tile#8 // tile zp[2]:36 517.3333333333334 -char *main::tilebase -char *main::tilebase#2 // tilebase zp[2]:72 67.33333333333333 -char *main::tilebase#7 // tilebase zp[2]:72 28.857142857142858 -__constant char 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 } -char main::vera_layer_hide1_$0 // reg byte a 22.0 -char main::vera_layer_hide1_layer -char main::vera_layer_show1_layer -void memcpy_in_vram(char dest_bank , void *dest , char dest_increment , char src_bank , void *src , char src_increment , unsigned int num) -char memcpy_in_vram::$0 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$1 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$2 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$3 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$4 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$5 // reg byte a 2.0000000002E10 -void *memcpy_in_vram::dest -void *memcpy_in_vram::dest#0 // dest zp[2]:8 6.666666673333334E8 -void *memcpy_in_vram::dest#3 // dest zp[2]:8 1.9090909093636363E9 -char memcpy_in_vram::dest_bank -char memcpy_in_vram::dest_bank#3 // dest_bank zp[1]:10 7.692307693076923E8 -char memcpy_in_vram::dest_increment -unsigned int memcpy_in_vram::i -unsigned int memcpy_in_vram::i#1 // i zp[2]:2 2.00000000002E11 -unsigned int memcpy_in_vram::i#2 // i zp[2]:2 1.00000000001E11 -unsigned int memcpy_in_vram::num -unsigned int memcpy_in_vram::num#0 // num zp[2]:4 1.000000001E9 -unsigned int memcpy_in_vram::num#4 // num zp[2]:4 5.315789473789474E9 -void *memcpy_in_vram::src -char *memcpy_in_vram::src#0 // src zp[2]:6 3.333333336666667E8 -void *memcpy_in_vram::src#3 // src zp[2]:6 5.25000000075E9 -void *memcpy_in_vram::src#4 // src zp[2]:6 2.000000002E9 -char memcpy_in_vram::src_bank -char memcpy_in_vram::src_bank#3 // reg byte y 1.6666666668333333E9 -char memcpy_in_vram::src_increment -void memcpy_to_vram(char vbank , void *vdest , void *src , unsigned int num) -char memcpy_to_vram::$0 // reg byte a 2002.0 -char memcpy_to_vram::$1 // reg byte a 2002.0 -char *memcpy_to_vram::end -__constant char *memcpy_to_vram::end#0 = (char *)(void *)main::tiles+$100 // end -unsigned int memcpy_to_vram::num -char *memcpy_to_vram::s -char *memcpy_to_vram::s#1 // s zp[2]:4 200002.0 -char *memcpy_to_vram::s#2 // s zp[2]:4 133334.66666666666 -void *memcpy_to_vram::src -char memcpy_to_vram::vbank -void *memcpy_to_vram::vdest -void *memcpy_to_vram::vdest#1 // vdest zp[2]:8 202.0 -void *memcpy_to_vram::vdest#2 // vdest zp[2]:8 525.75 -void printf_str(void (*putc)(char) , const char *s) -char printf_str::c -char printf_str::c#1 // reg byte a 1001.0 -void (*printf_str::putc)(char) -const char *printf_str::s -const char *printf_str::s#0 // s zp[2]:30 400.4 -const char *printf_str::s#10 // s zp[2]:30 101.0 -const char *printf_str::s#9 // s zp[2]:30 1552.0 -void screenlayer(char layer) -unsigned int screenlayer::$2 // zp[2]:16 202.0 -char screenlayer::$3 // reg byte a 202.0 -unsigned int screenlayer::$4 // zp[2]:53 202.0 -unsigned int screenlayer::$5 // zp[2]:58 202.0 -char screenlayer::layer -char screenlayer::vera_layer_get_height1_$0 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$1 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$2 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$3 // reg byte a 202.0 -char *screenlayer::vera_layer_get_height1_config -char *screenlayer::vera_layer_get_height1_config#0 // vera_layer_get_height1_config zp[2]:43 202.0 -char screenlayer::vera_layer_get_height1_layer -char screenlayer::vera_layer_get_height1_layer#0 // reg byte a 202.0 -unsigned int screenlayer::vera_layer_get_height1_return -unsigned int screenlayer::vera_layer_get_height1_return#0 // vera_layer_get_height1_return zp[2]:58 202.0 -unsigned int screenlayer::vera_layer_get_height1_return#1 // vera_layer_get_height1_return zp[2]:58 202.0 -char screenlayer::vera_layer_get_width1_$0 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$1 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$2 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$3 // reg byte a 202.0 -char *screenlayer::vera_layer_get_width1_config -char *screenlayer::vera_layer_get_width1_config#0 // vera_layer_get_width1_config zp[2]:34 202.0 -char screenlayer::vera_layer_get_width1_layer -char screenlayer::vera_layer_get_width1_layer#0 // reg byte a 202.0 -unsigned int screenlayer::vera_layer_get_width1_return -unsigned int screenlayer::vera_layer_get_width1_return#0 // vera_layer_get_width1_return zp[2]:16 202.0 -unsigned int screenlayer::vera_layer_get_width1_return#1 // vera_layer_get_width1_return zp[2]:16 202.0 -void screensize(char *x , char *y) -char screensize::$1 // reg byte a 202.0 -char screensize::$3 // reg byte a 202.0 -char screensize::hscale -char screensize::hscale#0 // reg byte a 202.0 -char screensize::vscale -char screensize::vscale#0 // reg byte a 202.0 -char *screensize::x -__constant char *screensize::x#0 = &conio_screen_width // x -char *screensize::y -__constant char *screensize::y#0 = &conio_screen_height // y -__constant char vera_layer_backcolor[2] = { BLUE, BLUE } -__constant char *vera_layer_config[2] = { VERA_L0_CONFIG, VERA_L1_CONFIG } -__constant char vera_layer_enable[2] = { VERA_LAYER0_ENABLE, VERA_LAYER1_ENABLE } -char vera_layer_get_backcolor(char layer) -char vera_layer_get_backcolor::layer -char vera_layer_get_backcolor::layer#0 // reg byte y 1102.0 -char vera_layer_get_backcolor::return -char vera_layer_get_backcolor::return#0 // reg byte a 202.0 -char vera_layer_get_backcolor::return#1 // reg byte a 367.33333333333337 -char vera_layer_get_color(char layer) -char vera_layer_get_color::$0 // reg byte a 2.000000002E9 -char vera_layer_get_color::$1 // reg byte a 2.000000002E9 -char vera_layer_get_color::$3 // reg byte a 2.000000002E9 -char *vera_layer_get_color::addr -char *vera_layer_get_color::addr#0 // addr zp[2]:4 2.000000002E9 -char vera_layer_get_color::layer -char vera_layer_get_color::layer#0 // reg byte x 20002.0 -char vera_layer_get_color::layer#1 // reg byte x 2.00000002E8 -char vera_layer_get_color::layer#2 // reg byte x 6.833350010000001E8 -char vera_layer_get_color::return -char vera_layer_get_color::return#0 // reg byte a 20002.0 -char vera_layer_get_color::return#1 // reg byte a 2.000000002E9 -char vera_layer_get_color::return#2 // reg byte a 2.000000002E9 -char vera_layer_get_color::return#3 // reg byte a 5.25002501E8 -char vera_layer_get_color::return#4 // reg byte a 2.00000002E8 -char vera_layer_get_mapbase_bank(char layer) -char vera_layer_get_mapbase_bank::layer -char vera_layer_get_mapbase_bank::layer#0 // reg byte y 1102.0 -char vera_layer_get_mapbase_bank::return -char vera_layer_get_mapbase_bank::return#0 // reg byte x 367.33333333333337 -char vera_layer_get_mapbase_bank::return#2 // reg byte x 202.0 -unsigned int vera_layer_get_mapbase_offset(char layer) -char vera_layer_get_mapbase_offset::$0 // reg byte a 2002.0 -char vera_layer_get_mapbase_offset::layer -char vera_layer_get_mapbase_offset::layer#0 // reg byte a 1102.0 -unsigned int vera_layer_get_mapbase_offset::return -unsigned int vera_layer_get_mapbase_offset::return#0 // return zp[2]:16 367.33333333333337 -unsigned int vera_layer_get_mapbase_offset::return#2 // return zp[2]:16 202.0 -char vera_layer_get_rowshift(char layer) -char vera_layer_get_rowshift::layer -char vera_layer_get_rowshift::layer#0 // reg byte y 1102.0 -char vera_layer_get_rowshift::return -char vera_layer_get_rowshift::return#0 // reg byte a 367.33333333333337 -char vera_layer_get_rowshift::return#2 // reg byte a 202.0 -unsigned int vera_layer_get_rowskip(char layer) -char vera_layer_get_rowskip::$0 // reg byte a 2002.0 -char vera_layer_get_rowskip::layer -char vera_layer_get_rowskip::layer#0 // reg byte a 1102.0 -unsigned int vera_layer_get_rowskip::return -unsigned int vera_layer_get_rowskip::return#0 // return zp[2]:53 367.33333333333337 -unsigned int vera_layer_get_rowskip::return#2 // return zp[2]:53 202.0 -char vera_layer_get_textcolor(char layer) -char vera_layer_get_textcolor::layer -char vera_layer_get_textcolor::layer#0 // reg byte y 1102.0 -char vera_layer_get_textcolor::return -char vera_layer_get_textcolor::return#0 // reg byte a 202.0 -char vera_layer_get_textcolor::return#1 // reg byte a 367.33333333333337 -__constant const char vera_layer_hflip[2] = { 0, 4 } -__constant char *vera_layer_mapbase[2] = { VERA_L0_MAPBASE, VERA_L1_MAPBASE } -void vera_layer_mode_text(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , unsigned int color_mode) -unsigned int vera_layer_mode_text::color_mode -char vera_layer_mode_text::layer -__constant char vera_layer_mode_text::layer#0 = 1 // layer -unsigned long vera_layer_mode_text::mapbase_address -__constant unsigned long vera_layer_mode_text::mapbase_address#0 = 0 // mapbase_address -unsigned int vera_layer_mode_text::mapheight -__constant unsigned int vera_layer_mode_text::mapheight#0 = $40 // mapheight -unsigned int vera_layer_mode_text::mapwidth -__constant unsigned int vera_layer_mode_text::mapwidth#0 = $80 // mapwidth -unsigned long vera_layer_mode_text::tilebase_address -__constant unsigned long vera_layer_mode_text::tilebase_address#0 = $f800 // tilebase_address -char vera_layer_mode_text::tileheight -__constant char vera_layer_mode_text::tileheight#0 = 8 // tileheight -char vera_layer_mode_text::tilewidth -__constant char vera_layer_mode_text::tilewidth#0 = 8 // tilewidth -void vera_layer_mode_tile(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , char color_depth) -unsigned int vera_layer_mode_tile::$1 // zp[2]:53 1001.0 -char vera_layer_mode_tile::$11 // reg byte a 2002.0 -char vera_layer_mode_tile::$12 // reg byte a 2002.0 -char vera_layer_mode_tile::$13 // reg byte a 2002.0 -char vera_layer_mode_tile::$14 // reg byte a 2002.0 -char vera_layer_mode_tile::$17 // zp[1]:61 250.25 -char vera_layer_mode_tile::$18 // zp[1]:60 273.0 -char vera_layer_mode_tile::$2 // reg byte a 2002.0 -unsigned int vera_layer_mode_tile::$6 // zp[2]:43 2002.0 -char vera_layer_mode_tile::$7 // reg byte a 2002.0 -char vera_layer_mode_tile::color_depth -char vera_layer_mode_tile::color_depth#5 // reg byte x 1001.0 -char vera_layer_mode_tile::config -char vera_layer_mode_tile::config#10 // reg byte x 2002.0 -char vera_layer_mode_tile::config#11 // reg byte x 2002.0 -char vera_layer_mode_tile::config#12 // reg byte x 2002.0 -char vera_layer_mode_tile::config#17 // reg byte x 625.625 -char vera_layer_mode_tile::config#21 // reg byte x 2002.0000000000002 -char vera_layer_mode_tile::config#25 // reg byte x 3003.0 -char vera_layer_mode_tile::config#6 // reg byte x 500.5 -char vera_layer_mode_tile::config#7 // reg byte x 500.5 -char vera_layer_mode_tile::config#8 // reg byte x 500.5 -char vera_layer_mode_tile::layer -char vera_layer_mode_tile::layer#10 // layer zp[1]:62 227.49999999999994 -char vera_layer_mode_tile::mapbase -char vera_layer_mode_tile::mapbase#0 // reg byte x 1001.0 -unsigned long vera_layer_mode_tile::mapbase_address -unsigned long vera_layer_mode_tile::mapbase_address#0 // mapbase_address zp[4]:45 2002.0 -unsigned long vera_layer_mode_tile::mapbase_address#10 // mapbase_address_1 zp[4]:74 88.97777777777777 -unsigned int vera_layer_mode_tile::mapheight -unsigned int vera_layer_mode_tile::mapheight#10 // mapheight zp[2]:68 133.46666666666667 -unsigned int vera_layer_mode_tile::mapwidth -unsigned int vera_layer_mode_tile::mapwidth#10 // mapwidth zp[2]:16 400.4 -char vera_layer_mode_tile::tilebase -char vera_layer_mode_tile::tilebase#0 // reg byte a 2002.0 -char vera_layer_mode_tile::tilebase#1 // reg byte x 1334.6666666666667 -char vera_layer_mode_tile::tilebase#10 // reg byte x 2002.0 -char vera_layer_mode_tile::tilebase#12 // reg byte x 2002.0000000000002 -char vera_layer_mode_tile::tilebase#3 // reg byte x 2002.0 -char vera_layer_mode_tile::tilebase#5 // reg byte x 2002.0 -unsigned long vera_layer_mode_tile::tilebase_address -unsigned long vera_layer_mode_tile::tilebase_address#0 // tilebase_address zp[4]:49 2002.0 -unsigned long vera_layer_mode_tile::tilebase_address#10 // tilebase_address_1 zp[4]:78 72.8 -char vera_layer_mode_tile::tileheight -char vera_layer_mode_tile::tileheight#10 // tileheight zp[1]:85 31.77777777777778 -char vera_layer_mode_tile::tilewidth -char vera_layer_mode_tile::tilewidth#10 // tilewidth zp[1]:84 33.932203389830505 -__constant char vera_layer_rowshift[2] = { 0, 0 } -__constant unsigned int vera_layer_rowskip[2] = { 0, 0 } -char vera_layer_set_backcolor(char layer , char color) -char vera_layer_set_backcolor::color -char vera_layer_set_backcolor::color#3 // reg byte a 101.0 -char vera_layer_set_backcolor::layer -char vera_layer_set_backcolor::layer#1 // reg byte y 22.0 -char vera_layer_set_backcolor::layer#2 // reg byte y 22.0 -char vera_layer_set_backcolor::layer#3 // reg byte y 123.0 -char vera_layer_set_backcolor::old -char vera_layer_set_backcolor::return -void vera_layer_set_config(char layer , char config) -char vera_layer_set_config::$0 // reg byte a 20002.0 -char *vera_layer_set_config::addr -char *vera_layer_set_config::addr#0 // addr zp[2]:34 20002.0 -char vera_layer_set_config::config -char vera_layer_set_config::config#0 // reg byte x 3667.333333333333 -char vera_layer_set_config::layer -char vera_layer_set_config::layer#0 // reg byte a 5501.0 -void vera_layer_set_mapbase(char layer , char mapbase) -char vera_layer_set_mapbase::$0 // reg byte a 20002.0 -char *vera_layer_set_mapbase::addr -char *vera_layer_set_mapbase::addr#0 // addr zp[2]:34 20002.0 -char vera_layer_set_mapbase::layer -char vera_layer_set_mapbase::layer#0 // reg byte a 1001.0 -char vera_layer_set_mapbase::layer#3 // reg byte a 11002.0 -char vera_layer_set_mapbase::mapbase -char vera_layer_set_mapbase::mapbase#0 // reg byte x 2002.0 -char vera_layer_set_mapbase::mapbase#3 // reg byte x 3667.333333333333 -void vera_layer_set_text_color_mode(char layer , char color_mode) -char *vera_layer_set_text_color_mode::addr -char *vera_layer_set_text_color_mode::addr#0 // addr zp[2]:34 2502.5 -char vera_layer_set_text_color_mode::color_mode -char vera_layer_set_text_color_mode::layer -char vera_layer_set_textcolor(char layer , char color) -char vera_layer_set_textcolor::color -char vera_layer_set_textcolor::layer -char vera_layer_set_textcolor::layer#1 // reg byte y 22.0 -char vera_layer_set_textcolor::layer#2 // reg byte y 22.0 -char vera_layer_set_textcolor::layer#3 // reg byte y 123.0 -char vera_layer_set_textcolor::old -char vera_layer_set_textcolor::return -void vera_layer_set_tilebase(char layer , char tilebase) -char vera_layer_set_tilebase::$0 // reg byte a 20002.0 -char *vera_layer_set_tilebase::addr -char *vera_layer_set_tilebase::addr#0 // addr zp[2]:34 20002.0 -char vera_layer_set_tilebase::layer -char vera_layer_set_tilebase::layer#0 // reg byte a 5501.0 -char vera_layer_set_tilebase::tilebase -char vera_layer_set_tilebase::tilebase#0 // reg byte x 3667.333333333333 -__constant char vera_layer_textcolor[2] = { WHITE, WHITE } -__constant char *vera_layer_tilebase[2] = { VERA_L0_TILEBASE, VERA_L1_TILEBASE } -__constant const char vera_layer_vflip[2] = { 0, 8 } -__constant unsigned long vera_mapbase_address[2] = { 0, 0 } -__constant char vera_mapbase_bank[2] = { 0, 0 } -__constant unsigned int vera_mapbase_offset[2] = { 0, 0 } -void vera_tile_area(char layer , unsigned int tileindex , char x , char y , char w , char h , char hflip , char vflip , char offset) -unsigned int vera_tile_area::$10 // zp[2]:8 20002.0 -unsigned int vera_tile_area::$4 // zp[2]:8 20002.0 -char vera_tile_area::$5 // reg byte a 20002.0 -char vera_tile_area::c -char vera_tile_area::c#1 // reg byte y 2.00000002E8 -char vera_tile_area::c#2 // reg byte y 7.500000075E7 -char vera_tile_area::h -char vera_tile_area::h#6 // h zp[1]:32 312500.03125 -char vera_tile_area::hflip -char vera_tile_area::hflip#0 // hflip zp[1]:40 5000.5 -char vera_tile_area::index_h -char vera_tile_area::index_h#0 // reg byte a 20002.0 -char vera_tile_area::index_h#1 // reg byte a 20002.0 -char vera_tile_area::index_h#2 // index_h zp[1]:27 4348260.956521738 -char vera_tile_area::index_l -char vera_tile_area::index_l#0 // index_l zp[1]:28 3846538.5384615385 -char vera_tile_area::layer -unsigned long vera_tile_area::mapbase -unsigned long vera_tile_area::mapbase#0 // mapbase zp[4]:20 1818.3636363636363 -unsigned long vera_tile_area::mapbase#1 // mapbase zp[4]:20 10001.0 -unsigned long vera_tile_area::mapbase#10 // mapbase zp[4]:20 3334000.4 -unsigned long vera_tile_area::mapbase#2 // mapbase zp[4]:20 20002.0 -unsigned long vera_tile_area::mapbase#3 // mapbase zp[4]:20 1.0000001E7 -char vera_tile_area::offset -char vera_tile_area::r -char vera_tile_area::r#1 // r zp[1]:11 2.0000002E7 -char vera_tile_area::r#2 // r zp[1]:11 1875000.1875 -unsigned int vera_tile_area::rowskip -unsigned int vera_tile_area::rowskip#0 // rowskip zp[2]:30 345172.4827586207 -char vera_tile_area::shift -char vera_tile_area::shift#0 // shift zp[1]:42 3333.6666666666665 -unsigned int vera_tile_area::tileindex -unsigned int vera_tile_area::tileindex#1 // tileindex zp[2]:36 667.3333333333334 -unsigned int vera_tile_area::tileindex#3 // tileindex zp[2]:36 667.3333333333334 -unsigned int vera_tile_area::tileindex#5 // tileindex zp[2]:36 3143.4285714285716 -char vera_tile_area::vera_vram_address01_$0 // reg byte a 2.0000002E7 -char vera_tile_area::vera_vram_address01_$1 // reg byte a 2.0000002E7 -char vera_tile_area::vera_vram_address01_$2 // reg byte a 2.0000002E7 -char vera_tile_area::vera_vram_address01_$3 // reg byte a 2.0000002E7 -unsigned long vera_tile_area::vera_vram_address01_bankaddr -char vera_tile_area::vera_vram_address01_incr -char vera_tile_area::vflip -char vera_tile_area::vflip#0 // vflip zp[1]:27 5000.5 -char vera_tile_area::w -char vera_tile_area::w#11 // w zp[1]:14 3125000.03125 -char vera_tile_area::x -char vera_tile_area::x#1 // x zp[1]:41 1001.0 -char vera_tile_area::x#3 // x zp[1]:41 1001.0 -char vera_tile_area::x#5 // x zp[1]:41 923.3076923076923 -char vera_tile_area::y -char vera_tile_area::y#1 // y zp[1]:10 2002.0 -char vera_tile_area::y#3 // y zp[1]:10 2002.0 -char vera_tile_area::y#5 // y zp[1]:10 200.2 -__constant unsigned long vera_tilebase_address[2] = { 0, 0 } -__constant char vera_tilebase_bank[2] = { 0, 0 } -__constant unsigned int vera_tilebase_offset[2] = { 0, 0 } - -zp[1]:82 [ conio_x16_init::line#3 conio_x16_init::line#1 conio_x16_init::line#0 ] -zp[2]:18 [ CONIO_SCREEN_TEXT#12 ] -zp[1]:57 [ CONIO_SCREEN_BANK#12 ] -zp[2]:72 [ main::tilebase#7 main::tilebase#2 ] -zp[1]:63 [ main::t#5 main::t#1 ] -reg byte x [ main::p#2 main::p#1 ] -zp[1]:64 [ main::row#9 main::row#1 ] -zp[1]:66 [ main::r#5 main::r#1 ] -zp[2]:36 [ main::tile#6 main::tile#10 main::tile#12 main::tile#1 vera_tile_area::tileindex#5 vera_tile_area::tileindex#3 vera_tile_area::tileindex#1 main::tile#8 main::tile#11 main::tile#13 main::tile#4 ] -reg byte x [ main::column#2 main::column#1 ] -zp[1]:55 [ main::c#2 main::c#1 ] -zp[1]:65 [ main::row#10 main::row#3 ] -zp[1]:67 [ main::r1#5 main::r1#1 ] -zp[1]:41 [ main::column1#2 main::column1#1 vera_tile_area::x#5 vera_tile_area::x#3 vera_tile_area::x#1 ] -reg byte x [ main::c1#2 main::c1#1 ] -reg byte y [ vera_layer_set_textcolor::layer#3 vera_layer_set_textcolor::layer#1 vera_layer_set_textcolor::layer#2 ] -reg byte y [ vera_layer_set_backcolor::layer#3 vera_layer_set_backcolor::layer#1 vera_layer_set_backcolor::layer#2 ] -reg byte a [ vera_layer_set_backcolor::color#3 ] -reg byte a [ vera_layer_set_mapbase::layer#3 vera_layer_set_mapbase::layer#0 ] -reg byte x [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::mapbase#0 ] -reg byte x [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#1 gotoxy::y#2 ] -reg byte x [ vera_layer_get_color::layer#2 vera_layer_get_color::layer#1 vera_layer_get_color::layer#0 ] -reg byte a [ vera_layer_get_color::return#3 vera_layer_get_color::return#1 vera_layer_get_color::return#2 ] -reg byte y [ memcpy_in_vram::src_bank#3 ] -reg byte x [ vera_layer_mode_tile::color_depth#5 ] -zp[1]:62 [ vera_layer_mode_tile::layer#10 ] -zp[2]:68 [ vera_layer_mode_tile::mapheight#10 ] -zp[4]:74 [ vera_layer_mode_tile::mapbase_address#10 ] -zp[4]:78 [ vera_layer_mode_tile::tilebase_address#10 ] -zp[1]:84 [ vera_layer_mode_tile::tilewidth#10 ] -zp[1]:85 [ vera_layer_mode_tile::tileheight#10 ] -reg byte x [ vera_layer_mode_tile::config#25 vera_layer_mode_tile::config#21 vera_layer_mode_tile::config#17 vera_layer_mode_tile::config#6 vera_layer_mode_tile::config#7 vera_layer_mode_tile::config#8 vera_layer_mode_tile::config#10 vera_layer_mode_tile::config#11 vera_layer_mode_tile::config#12 ] -reg byte x [ vera_layer_mode_tile::tilebase#10 vera_layer_mode_tile::tilebase#12 vera_layer_mode_tile::tilebase#1 vera_layer_mode_tile::tilebase#3 vera_layer_mode_tile::tilebase#5 ] -reg byte y [ clrscr::c#2 clrscr::c#1 ] -zp[4]:20 [ vera_tile_area::mapbase#10 vera_tile_area::mapbase#2 vera_tile_area::mapbase#3 vera_tile_area::mapbase#1 vera_tile_area::mapbase#0 ] -reg byte y [ vera_tile_area::c#2 vera_tile_area::c#1 ] -reg byte x [ insertup::i#2 insertup::i#1 ] -zp[2]:2 [ clearline::c#2 clearline::c#1 memcpy_in_vram::i#2 memcpy_in_vram::i#1 ] -zp[1]:15 [ conio_screen_width ] -zp[1]:33 [ conio_screen_height ] -zp[1]:29 [ conio_screen_layer ] -zp[2]:70 [ conio_width ] -zp[2]:38 [ conio_height ] -zp[1]:24 [ conio_rowshift ] -zp[2]:25 [ conio_rowskip ] -zp[1]:10 [ cputc::c#0 vera_tile_area::y#5 vera_tile_area::y#3 vera_tile_area::y#1 clrscr::l#2 clrscr::l#1 memcpy_in_vram::dest_bank#3 ] -reg byte a [ vera_layer_get_color::return#0 ] -reg byte x [ cputc::color#0 ] -reg byte a [ cputc::$15 ] -reg byte a [ cputc::$2 ] -reg byte a [ cputc::$4 ] -reg byte a [ cputc::$5 ] -reg byte a [ cputc::$6 ] -reg byte a [ cputc::scroll_enable#0 ] -zp[2]:6 [ cputc::$16 clrscr::line_text#2 clrscr::line_text#1 clrscr::line_text#0 memcpy_in_vram::src#3 memcpy_in_vram::src#4 memcpy_in_vram::src#0 ] -reg byte a [ kbhit::return#2 ] -reg byte a [ main::$35 ] -reg byte a [ kbhit::return#3 ] -reg byte a [ main::$40 ] -reg byte a [ main::vera_layer_hide1_$0 ] -reg byte a [ screensize::hscale#0 ] -reg byte a [ screensize::$1 ] -reg byte a [ screensize::vscale#0 ] -reg byte a [ screensize::$3 ] -reg byte y [ vera_layer_get_mapbase_bank::layer#0 ] -reg byte x [ vera_layer_get_mapbase_bank::return#2 ] -reg byte x [ CONIO_SCREEN_BANK#15 ] -reg byte a [ vera_layer_get_mapbase_offset::layer#0 ] -zp[2]:86 [ CONIO_SCREEN_TEXT#17 ] -reg byte a [ screenlayer::vera_layer_get_width1_layer#0 ] -reg byte a [ screenlayer::vera_layer_get_width1_$2 ] -reg byte a [ screenlayer::vera_layer_get_width1_$0 ] -reg byte a [ screenlayer::vera_layer_get_width1_$1 ] -reg byte a [ screenlayer::vera_layer_get_width1_$3 ] -reg byte y [ vera_layer_get_rowshift::layer#0 ] -reg byte a [ vera_layer_get_rowshift::return#2 ] -reg byte a [ screenlayer::$3 ] -reg byte a [ vera_layer_get_rowskip::layer#0 ] -reg byte a [ screenlayer::vera_layer_get_height1_layer#0 ] -reg byte a [ screenlayer::vera_layer_get_height1_$2 ] -reg byte a [ screenlayer::vera_layer_get_height1_$0 ] -reg byte a [ screenlayer::vera_layer_get_height1_$1 ] -reg byte a [ screenlayer::vera_layer_get_height1_$3 ] -zp[2]:58 [ screenlayer::vera_layer_get_height1_return#0 screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 ] -reg byte a [ vera_layer_set_mapbase::$0 ] -zp[2]:16 [ gotoxy::$6 gotoxy::line_offset#0 screenlayer::vera_layer_get_width1_return#0 screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 vera_layer_get_mapbase_offset::return#2 vera_layer_get_mapbase_offset::return#0 vera_layer_mode_tile::mapwidth#10 ] -reg byte a [ gotoxy::$5 ] -reg byte a [ vera_layer_get_color::$3 ] -reg byte a [ vera_layer_get_color::$0 ] -reg byte a [ vera_layer_get_color::$1 ] -reg byte a [ cputln::$2 ] -zp[2]:4 [ cputln::temp#0 cputln::temp#1 vera_layer_get_color::addr#0 memcpy_to_vram::s#2 memcpy_to_vram::s#1 memcpy_in_vram::num#4 memcpy_in_vram::num#0 ] -reg byte a [ cputln::$3 ] -reg byte a [ memcpy_in_vram::$0 ] -reg byte a [ memcpy_in_vram::$1 ] -reg byte a [ memcpy_in_vram::$2 ] -reg byte a [ memcpy_in_vram::$3 ] -reg byte a [ memcpy_in_vram::$4 ] -reg byte a [ memcpy_in_vram::$5 ] -reg byte a [ vera_layer_mode_tile::$14 ] -reg byte a [ vera_layer_set_config::layer#0 ] -reg byte x [ vera_layer_set_config::config#0 ] -zp[2]:53 [ vera_layer_mode_tile::$1 vera_layer_get_rowskip::return#2 screenlayer::$4 vera_layer_get_rowskip::return#0 ] -zp[1]:61 [ vera_layer_mode_tile::$17 ] -reg byte a [ vera_layer_mode_tile::$2 ] -zp[1]:60 [ vera_layer_mode_tile::$18 ] -zp[4]:45 [ vera_layer_mode_tile::mapbase_address#0 ] -reg byte x [ vera_layer_mode_tile::mapbase#0 ] -zp[2]:43 [ vera_layer_mode_tile::$6 screenlayer::vera_layer_get_height1_config#0 ] -reg byte a [ vera_layer_mode_tile::$7 ] -zp[4]:49 [ vera_layer_mode_tile::tilebase_address#0 ] -reg byte a [ vera_layer_mode_tile::tilebase#0 ] -reg byte a [ vera_layer_set_tilebase::layer#0 ] -reg byte x [ vera_layer_set_tilebase::tilebase#0 ] -reg byte a [ vera_layer_mode_tile::$13 ] -reg byte a [ vera_layer_mode_tile::$12 ] -reg byte a [ vera_layer_mode_tile::$11 ] -reg byte y [ vera_layer_get_backcolor::layer#0 ] -reg byte a [ vera_layer_get_backcolor::return#0 ] -reg byte a [ clrscr::$0 ] -zp[1]:83 [ clrscr::$1 ] -reg byte y [ vera_layer_get_textcolor::layer#0 ] -reg byte a [ vera_layer_get_textcolor::return#0 ] -reg byte a [ clrscr::$2 ] -zp[1]:32 [ clrscr::color#0 vera_tile_area::h#6 ] -reg byte a [ clrscr::$9 ] -reg byte a [ clrscr::$5 ] -reg byte a [ clrscr::$6 ] -reg byte a [ clrscr::$7 ] -reg byte a [ memcpy_to_vram::$0 ] -reg byte a [ memcpy_to_vram::$1 ] -zp[1]:42 [ vera_tile_area::shift#0 ] -zp[2]:30 [ vera_tile_area::rowskip#0 printf_str::s#9 printf_str::s#10 printf_str::s#0 ] -zp[1]:40 [ vera_tile_area::hflip#0 ] -zp[1]:27 [ vera_tile_area::vflip#0 vera_tile_area::index_h#2 ] -zp[1]:28 [ vera_tile_area::index_l#0 ] -reg byte a [ vera_tile_area::index_h#0 ] -reg byte a [ vera_tile_area::index_h#1 ] -zp[2]:8 [ vera_tile_area::$10 vera_tile_area::$4 cputc::conio_addr#0 cputc::conio_addr#1 memcpy_to_vram::vdest#2 memcpy_to_vram::vdest#1 memcpy_in_vram::dest#3 memcpy_in_vram::dest#0 insertup::start#0 insertup::line#0 ] -reg byte a [ vera_tile_area::$5 ] -reg byte a [ vera_tile_area::vera_vram_address01_$0 ] -reg byte a [ vera_tile_area::vera_vram_address01_$1 ] -reg byte a [ vera_tile_area::vera_vram_address01_$2 ] -reg byte a [ vera_tile_area::vera_vram_address01_$3 ] -reg byte a [ printf_str::c#1 ] -zp[1]:56 [ kbhit::ch ] -reg byte a [ kbhit::return#0 ] -reg byte a [ kbhit::return#1 ] -reg byte x [ vera_layer_get_mapbase_bank::return#0 ] -reg byte a [ vera_layer_get_mapbase_offset::$0 ] -reg byte a [ vera_layer_get_rowshift::return#0 ] -reg byte a [ vera_layer_get_rowskip::$0 ] -reg byte a [ vera_layer_set_config::$0 ] -reg byte a [ vera_layer_set_tilebase::$0 ] -zp[2]:34 [ vera_layer_set_tilebase::addr#0 vera_layer_set_config::addr#0 vera_layer_set_text_color_mode::addr#0 vera_layer_set_mapbase::addr#0 screenlayer::vera_layer_get_width1_config#0 ] -reg byte a [ vera_layer_get_backcolor::return#1 ] -reg byte a [ vera_layer_get_textcolor::return#1 ] -zp[1]:14 [ insertup::cy#0 vera_tile_area::w#11 ] -zp[1]:11 [ insertup::width#0 vera_tile_area::r#2 vera_tile_area::r#1 ] -reg byte a [ insertup::$3 ] -reg byte a [ clearline::$5 ] -zp[2]:12 [ clearline::addr#0 ] -reg byte a [ clearline::$1 ] -reg byte a [ clearline::$2 ] -reg byte a [ vera_layer_get_color::return#4 ] -reg byte x [ clearline::color#0 ] diff --git a/src/test/ref/examples/cx16/veralib/tilemap_8bpp_8_x_8.asm b/src/test/ref/examples/cx16/veralib/tilemap_8bpp_8_x_8.asm deleted file mode 100644 index dd077d733..000000000 --- a/src/test/ref/examples/cx16/veralib/tilemap_8bpp_8_x_8.asm +++ /dev/null @@ -1,2150 +0,0 @@ -// Example program for the Commander X16. -// Demonstrates the usage of the VERA tile map modes and layering. -.cpu _65c02 - // Commodore 64 PRG executable file -.file [name="tilemap_8bpp_8_x_8.prg", type="prg", segments="Program"] -.segmentdef Program [segments="Basic, Code, Data"] -.segmentdef Basic [start=$0801] -.segmentdef Code [start=$80d] -.segmentdef Data [startAfter="Code"] -.segment Basic -:BasicUpstart(__start) - /// The colors of the CX16 - .const BLACK = 0 - .const WHITE = 1 - .const BLUE = 6 - .const VERA_INC_1 = $10 - .const VERA_ADDRSEL = 1 - .const VERA_LAYER1_ENABLE = $20 - .const VERA_LAYER0_ENABLE = $10 - .const VERA_LAYER_WIDTH_64 = $10 - .const VERA_LAYER_WIDTH_128 = $20 - .const VERA_LAYER_WIDTH_256 = $30 - .const VERA_LAYER_WIDTH_MASK = $30 - .const VERA_LAYER_HEIGHT_64 = $40 - .const VERA_LAYER_HEIGHT_128 = $80 - .const VERA_LAYER_HEIGHT_256 = $c0 - .const VERA_LAYER_HEIGHT_MASK = $c0 - /// Bit 0-1: Color Depth (0: 1 bpp, 1: 2 bpp, 2: 4 bpp, 3: 8 bpp) - .const VERA_LAYER_COLOR_DEPTH_1BPP = 0 - .const VERA_LAYER_COLOR_DEPTH_2BPP = 1 - .const VERA_LAYER_COLOR_DEPTH_4BPP = 2 - .const VERA_LAYER_COLOR_DEPTH_8BPP = 3 - .const VERA_LAYER_CONFIG_256C = 8 - .const VERA_TILEBASE_WIDTH_16 = 1 - .const VERA_TILEBASE_HEIGHT_16 = 2 - .const VERA_LAYER_TILEBASE_MASK = $fc - .const SIZEOF_POINTER = 2 - .const STACK_BASE = $103 - /// $9F20 VRAM Address (7:0) - .label VERA_ADDRX_L = $9f20 - /// $9F21 VRAM Address (15:8) - .label VERA_ADDRX_M = $9f21 - /// $9F22 VRAM Address (7:0) - /// Bit 4-7: Address Increment The following is the amount incremented per value value:increment - /// 0:0, 1:1, 2:2, 3:4, 4:8, 5:16, 6:32, 7:64, 8:128, 9:256, 10:512, 11:40, 12:80, 13:160, 14:320, 15:640 - /// Bit 3: DECR Setting the DECR bit, will decrement instead of increment by the value set by the 'Address Increment' field. - /// Bit 0: VRAM Address (16) - .label VERA_ADDRX_H = $9f22 - /// $9F23 DATA0 VRAM Data port 0 - .label VERA_DATA0 = $9f23 - /// $9F24 DATA1 VRAM Data port 1 - .label VERA_DATA1 = $9f24 - /// $9F25 CTRL Control - /// Bit 7: Reset - /// Bit 1: DCSEL - /// Bit 2: ADDRSEL - .label VERA_CTRL = $9f25 - /// $9F29 DC_VIDEO (DCSEL=0) - /// Bit 7: Current Field Read-only bit which reflects the active interlaced field in composite and RGB modes. (0: even, 1: odd) - /// Bit 6: Sprites Enable Enable output from the Sprites renderer - /// Bit 5: Layer1 Enable Enable output from the Layer1 renderer - /// Bit 4: Layer0 Enable Enable output from the Layer0 renderer - /// Bit 2: Chroma Disable Setting 'Chroma Disable' disables output of chroma in NTSC composite mode and will give a better picture on a monochrome display. (Setting this bit will also disable the chroma output on the S-video output.) - /// Bit 0-1: Output Mode 0: Video disabled, 1: VGA output, 2: NTSC composite, 3: RGB interlaced, composite sync (via VGA connector) - .label VERA_DC_VIDEO = $9f29 - /// $9F2A DC_HSCALE (DCSEL=0) Active Display H-Scale - .label VERA_DC_HSCALE = $9f2a - /// $9F2B DC_VSCALE (DCSEL=0) Active Display V-Scale - .label VERA_DC_VSCALE = $9f2b - /// $9F2D L0_CONFIG Layer 0 Configuration - .label VERA_L0_CONFIG = $9f2d - /// $9F2E L0_MAPBASE Layer 0 Map Base Address (16:9) - .label VERA_L0_MAPBASE = $9f2e - /// Bit 0: Tile Width (0:8 pixels, 1:16 pixels) - .label VERA_L0_TILEBASE = $9f2f - /// $9F34 L1_CONFIG Layer 1 Configuration - .label VERA_L1_CONFIG = $9f34 - /// $9F35 L1_MAPBASE Layer 1 Map Base Address (16:9) - .label VERA_L1_MAPBASE = $9f35 - /// $9F36 L1_TILEBASE Layer 1 Tile Base - /// Bit 2-7: Tile Base Address (16:11) - /// Bit 1: Tile Height (0:8 pixels, 1:16 pixels) - /// Bit 0: Tile Width (0:8 pixels, 1:16 pixels) - .label VERA_L1_TILEBASE = $9f36 - // Variable holding the screen width; - .label conio_screen_width = $e - // Variable holding the screen height; - .label conio_screen_height = $20 - // Variable holding the screen layer on the VERA card with which conio interacts; - .label conio_screen_layer = $1c - // Variables holding the current map width and map height of the layer. - .label conio_width = $46 - .label conio_height = $26 - .label conio_rowshift = $17 - .label conio_rowskip = $18 - .label CONIO_SCREEN_BANK = $56 - // The screen width - // The screen height - // The text screen base address, which is a 16:0 bit value in VERA VRAM. - // That is 128KB addressable space, thus 17 bits in total. - // CONIO_SCREEN_TEXT contains bits 15:0 of the address. - // CONIO_SCREEN_BANK contains bit 16, the the 64K memory bank in VERA VRAM (the upper 17th bit). - // !!! note that these values are not const for the cx16! - // This conio implements the two layers of VERA, which can be layer 0 or layer 1. - // Configuring conio to output to a different layer, will change these fields to the address base - // configured using VERA_L0_MAPBASE = 0x9f2e or VERA_L1_MAPBASE = 0x9f35. - // Using the function setscreenlayer(layer) will re-calculate using CONIO_SCREEN_TEXT and CONIO_SCREEN_BASE - // based on the values of VERA_L0_MAPBASE or VERA_L1_MAPBASE, mapping the base address of the selected layer. - // The function setscreenlayermapbase(layer,mapbase) allows to configure bit 16:9 of the - // mapbase address of the time map in VRAM of the selected layer VERA_L0_MAPBASE or VERA_L1_MAPBASE. - .label CONIO_SCREEN_TEXT = $57 - // The screen width - // The screen height - // The text screen base address, which is a 16:0 bit value in VERA VRAM. - // That is 128KB addressable space, thus 17 bits in total. - // CONIO_SCREEN_TEXT contains bits 15:0 of the address. - // CONIO_SCREEN_BANK contains bit 16, the the 64K memory bank in VERA VRAM (the upper 17th bit). - // !!! note that these values are not const for the cx16! - // This conio implements the two layers of VERA, which can be layer 0 or layer 1. - // Configuring conio to output to a different layer, will change these fields to the address base - // configured using VERA_L0_MAPBASE = 0x9f2e or VERA_L1_MAPBASE = 0x9f35. - // Using the function setscreenlayer(layer) will re-calculate using CONIO_SCREEN_TEXT and CONIO_SCREEN_BASE - // based on the values of VERA_L0_MAPBASE or VERA_L1_MAPBASE, mapping the base address of the selected layer. - // The function setscreenlayermapbase(layer,mapbase) allows to configure bit 16:9 of the - // mapbase address of the time map in VRAM of the selected layer VERA_L0_MAPBASE or VERA_L1_MAPBASE. - .label CONIO_SCREEN_TEXT_1 = $11 - .label CONIO_SCREEN_BANK_1 = $3b -.segment Code -__start: { - // __ma unsigned byte conio_screen_width = 0 - lda #0 - sta.z conio_screen_width - // __ma unsigned byte conio_screen_height = 0 - sta.z conio_screen_height - // __ma unsigned byte conio_screen_layer = 1 - lda #1 - sta.z conio_screen_layer - // __ma word conio_width = 0 - lda #<0 - sta.z conio_width - sta.z conio_width+1 - // __ma word conio_height = 0 - sta.z conio_height - sta.z conio_height+1 - // __ma byte conio_rowshift = 0 - sta.z conio_rowshift - // __ma word conio_rowskip = 0 - sta.z conio_rowskip - sta.z conio_rowskip+1 - // #pragma constructor_for(conio_x16_init, cputc, clrscr, cscroll) - jsr conio_x16_init - jsr main - rts -} -// Set initial cursor position -conio_x16_init: { - // Position cursor at current line - .label BASIC_CURSOR_LINE = $d6 - .label line = $52 - // char line = *BASIC_CURSOR_LINE - lda.z BASIC_CURSOR_LINE - sta.z line - // vera_layer_mode_text(1,(dword)0x00000,(dword)0x0F800,128,64,8,8,16) - jsr vera_layer_mode_text - // screensize(&conio_screen_width, &conio_screen_height) - jsr screensize - // screenlayer(1) - jsr screenlayer - // vera_layer_set_textcolor(1, WHITE) - ldx #1 - jsr vera_layer_set_textcolor - // vera_layer_set_backcolor(1, BLUE) - lda #BLUE - ldx #1 - jsr vera_layer_set_backcolor - // vera_layer_set_mapbase(0,0x20) - ldx #$20 - lda #0 - jsr vera_layer_set_mapbase - // vera_layer_set_mapbase(1,0x00) - ldx #0 - lda #1 - jsr vera_layer_set_mapbase - // if(line>=CONIO_HEIGHT) - lda.z line - cmp.z conio_screen_height - bcc __b1 - // line=CONIO_HEIGHT-1 - ldx.z conio_screen_height - dex - stx.z line - __b1: - // gotoxy(0, line) - ldx.z line - jsr gotoxy - // } - rts -} -// Output one character at the current cursor position -// Moves the cursor forward. Scrolls the entire screen if needed -// void cputc(__zp($25) char c) -cputc: { - .const OFFSET_STACK_C = 0 - .label __16 = 2 - .label c = $25 - .label conio_addr = 8 - tsx - lda STACK_BASE+OFFSET_STACK_C,x - sta.z c - // char color = vera_layer_get_color( conio_screen_layer) - ldx.z conio_screen_layer - jsr vera_layer_get_color - // char color = vera_layer_get_color( conio_screen_layer) - tax - // char* conio_addr = CONIO_SCREEN_TEXT + conio_line_text[conio_screen_layer] - lda.z conio_screen_layer - asl - tay - clc - lda.z CONIO_SCREEN_TEXT_1 - adc conio_line_text,y - sta.z conio_addr - lda.z CONIO_SCREEN_TEXT_1+1 - adc conio_line_text+1,y - sta.z conio_addr+1 - // conio_cursor_x[conio_screen_layer] << 1 - ldy.z conio_screen_layer - lda conio_cursor_x,y - asl - // conio_addr += conio_cursor_x[conio_screen_layer] << 1 - clc - adc.z conio_addr - sta.z conio_addr - bcc !+ - inc.z conio_addr+1 - !: - // if(c=='\n') - lda #'\n' - cmp.z c - beq __b1 - // *VERA_CTRL &= ~VERA_ADDRSEL - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(conio_addr) - lda.z conio_addr - // *VERA_ADDRX_L = BYTE0(conio_addr) - // Set address - sta VERA_ADDRX_L - // BYTE1(conio_addr) - lda.z conio_addr+1 - // *VERA_ADDRX_M = BYTE1(conio_addr) - sta VERA_ADDRX_M - // CONIO_SCREEN_BANK | VERA_INC_1 - lda #VERA_INC_1 - ora.z CONIO_SCREEN_BANK_1 - // *VERA_ADDRX_H = CONIO_SCREEN_BANK | VERA_INC_1 - sta VERA_ADDRX_H - // *VERA_DATA0 = c - lda.z c - sta VERA_DATA0 - // *VERA_DATA0 = color - stx VERA_DATA0 - // conio_cursor_x[conio_screen_layer]++; - ldx.z conio_screen_layer - inc conio_cursor_x,x - // byte scroll_enable = conio_scroll_enable[conio_screen_layer] - ldy.z conio_screen_layer - lda conio_scroll_enable,y - // if(scroll_enable) - cmp #0 - bne __b5 - // (unsigned int)conio_cursor_x[conio_screen_layer] == conio_width - lda conio_cursor_x,y - sta.z __16 - lda #0 - sta.z __16+1 - // if((unsigned int)conio_cursor_x[conio_screen_layer] == conio_width) - cmp.z conio_width+1 - bne __breturn - lda.z __16 - cmp.z conio_width - bne __breturn - // cputln() - jsr cputln - __breturn: - // } - rts - __b5: - // if(conio_cursor_x[conio_screen_layer] == CONIO_WIDTH) - lda.z conio_screen_width - ldy.z conio_screen_layer - cmp conio_cursor_x,y - bne __breturn - // cputln() - jsr cputln - rts - __b1: - // cputln() - jsr cputln - rts -} -main: { - .label tilebase = $48 - .label t = $3f - .label tile = $23 - .label c = $39 - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - .label row = $40 - .label r = $42 - .label column1 = $29 - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - .label row_1 = $41 - .label r1 = $43 - // vera_layer_set_textcolor(conio_screen_layer, color) - ldx.z conio_screen_layer - jsr vera_layer_set_textcolor - // vera_layer_set_backcolor(conio_screen_layer, color) - ldx.z conio_screen_layer - lda #BLACK - jsr vera_layer_set_backcolor - // clrscr() - jsr clrscr - // vera_layer_mode_tile(0, 0x04000, 0x14000, 128, 128, 8, 8, 8) - lda #8 - sta.z vera_layer_mode_tile.tileheight - sta.z vera_layer_mode_tile.tilewidth - lda #<$14000 - sta.z vera_layer_mode_tile.tilebase_address_1 - lda #>$14000 - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #<$14000>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>$14000>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - lda #<$4000 - sta.z vera_layer_mode_tile.mapbase_address_1 - lda #>$4000 - sta.z vera_layer_mode_tile.mapbase_address_1+1 - lda #<$4000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - lda #>$4000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - lda #<$80 - sta.z vera_layer_mode_tile.mapheight - lda #>$80 - sta.z vera_layer_mode_tile.mapheight+1 - lda #0 - sta.z vera_layer_mode_tile.layer - lda #<$80 - sta.z vera_layer_mode_tile.mapwidth - lda #>$80 - sta.z vera_layer_mode_tile.mapwidth+1 - ldx #8 - jsr vera_layer_mode_tile - // memcpy_to_vram(1, tilebase, tiles, 64) - lda #<$4000 - sta.z memcpy_to_vram.vdest - lda #>$4000 - sta.z memcpy_to_vram.vdest+1 - jsr memcpy_to_vram - lda #1 - sta.z t - lda #<$4000+$40 - sta.z tilebase - lda #>$4000+$40 - sta.z tilebase+1 - __b1: - ldx #0 - __b2: - // tiles[p]+=1 - lda tiles,x - inc - sta tiles,x - // for(byte p:0..63) - inx - cpx #$40 - bne __b2 - // memcpy_to_vram(1, tilebase, tiles, 64) - lda.z tilebase - sta.z memcpy_to_vram.vdest - lda.z tilebase+1 - sta.z memcpy_to_vram.vdest+1 - jsr memcpy_to_vram - // tilebase+=64 - lda #$40 - clc - adc.z tilebase - sta.z tilebase - bcc !+ - inc.z tilebase+1 - !: - // for(byte t:1..255) - inc.z t - lda.z t - bne __b1 - // vera_tile_area(0, 0, 0, 0, 80, 60, 0, 0, 0) - //vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h, byte hflip, byte vflip, byte offset) - lda #$50 - sta.z vera_tile_area.w - lda #$3c - sta.z vera_tile_area.h - lda #0 - sta.z vera_tile_area.x - sta.z vera_tile_area.y - sta.z vera_tile_area.tileindex - sta.z vera_tile_area.tileindex+1 - jsr vera_tile_area - lda #0 - sta.z r - lda #1 - sta.z row - lda #<0 - sta.z tile - sta.z tile+1 - __b5: - lda #0 - sta.z c - ldx #1 - __b6: - // vera_tile_area(0, tile, column, row, 1, 1, 0, 0, 0) - stx.z vera_tile_area.x - lda.z row - sta.z vera_tile_area.y - lda #1 - sta.z vera_tile_area.w - sta.z vera_tile_area.h - jsr vera_tile_area - // column+=2 - inx - inx - // tile++; - inc.z tile - bne !+ - inc.z tile+1 - !: - // tile &= 0xff - lda #$ff - and.z tile - sta.z tile - lda #0 - sta.z tile+1 - // for(byte c:0..31) - inc.z c - lda #$20 - cmp.z c - bne __b6 - // row += 2 - lda.z row - clc - adc #2 - sta.z row - // for(byte r:0..7) - inc.z r - lda #8 - cmp.z r - bne __b5 - lda #0 - sta.z r1 - lda #$14 - sta.z row_1 - lda #<0 - sta.z tile - sta.z tile+1 - __b8: - ldx #0 - lda #1 - sta.z column1 - __b9: - // vera_tile_area(0, tile, column, row, 2, 2, 0, 0, 0) - lda.z row_1 - sta.z vera_tile_area.y - lda #2 - sta.z vera_tile_area.w - sta.z vera_tile_area.h - jsr vera_tile_area - // column+=2 - lda.z column1 - clc - adc #2 - sta.z column1 - // tile++; - inc.z tile - bne !+ - inc.z tile+1 - !: - // tile &= 0xff - lda #$ff - and.z tile - sta.z tile - lda #0 - sta.z tile+1 - // for(byte c:0..31) - inx - cpx #$20 - bne __b9 - // row += 2 - lda.z row_1 - clc - adc #2 - sta.z row_1 - // for(byte r:0..7) - inc.z r1 - lda #8 - cmp.z r1 - bne __b8 - // *VERA_DC_VIDEO |= vera_layer_enable[layer] - lda VERA_DC_VIDEO - ora vera_layer_enable - sta VERA_DC_VIDEO - // gotoxy(0,50) - ldx #$32 - jsr gotoxy - // printf("vera in tile mode 8 x 8, color depth 8 bits per pixel.\n") - lda #s - sta.z printf_str.s+1 - jsr printf_str - // printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n") - lda #s1 - sta.z printf_str.s+1 - jsr printf_str - // printf("each tile can have a variation of 256 colors.\n") - lda #s2 - sta.z printf_str.s+1 - jsr printf_str - // printf("the vera palette of 256 colors, can be used by setting the palette\n") - lda #s3 - sta.z printf_str.s+1 - jsr printf_str - // printf("offset for each tile.\n") - lda #s4 - sta.z printf_str.s+1 - jsr printf_str - // printf("here each column is displaying the same tile, but with different offsets!\n") - lda #s5 - sta.z printf_str.s+1 - jsr printf_str - // printf("each offset aligns to multiples of 16 colors in the palette!.\n") - lda #s6 - sta.z printf_str.s+1 - jsr printf_str - // printf("however, the first color will always be transparent (black).\n") - lda #s7 - sta.z printf_str.s+1 - jsr printf_str - __b11: - // kbhit() - jsr kbhit - // while(!kbhit()) - cmp #0 - beq __b11 - // } - rts - .segment Data - tiles: .byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - s: .text @"vera in tile mode 8 x 8, color depth 8 bits per pixel.\n" - .byte 0 - s1: .text @"in this mode, tiles are 8 pixels wide and 8 pixels tall.\n" - .byte 0 - s2: .text @"each tile can have a variation of 256 colors.\n" - .byte 0 - s3: .text @"the vera palette of 256 colors, can be used by setting the palette\n" - .byte 0 - s4: .text @"offset for each tile.\n" - .byte 0 - s5: .text @"here each column is displaying the same tile, but with different offsets!\n" - .byte 0 - s6: .text @"each offset aligns to multiples of 16 colors in the palette!.\n" - .byte 0 - s7: .text @"however, the first color will always be transparent (black).\n" - .byte 0 -} -.segment Code -// Set a vera layer in text mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_mode: The color mode, which can be 16 or 256. -// void vera_layer_mode_text(char layer, unsigned long mapbase_address, unsigned long tilebase_address, unsigned int mapwidth, unsigned int mapheight, char tilewidth, char tileheight, unsigned int color_mode) -vera_layer_mode_text: { - .const mapbase_address = 0 - .const tilebase_address = $f800 - .const mapwidth = $80 - .const mapheight = $40 - .const tilewidth = 8 - .const tileheight = 8 - .label layer = 1 - // vera_layer_mode_tile( layer, mapbase_address, tilebase_address, mapwidth, mapheight, tilewidth, tileheight, 1 ) - lda #tileheight - sta.z vera_layer_mode_tile.tileheight - lda #tilewidth - sta.z vera_layer_mode_tile.tilewidth - lda #tilebase_address - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>tilebase_address>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - lda #mapbase_address - sta.z vera_layer_mode_tile.mapbase_address_1+1 - lda #>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - lda #>mapbase_address>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - lda #mapheight - sta.z vera_layer_mode_tile.mapheight+1 - lda #layer - sta.z vera_layer_mode_tile.layer - lda #mapwidth - sta.z vera_layer_mode_tile.mapwidth+1 - ldx #1 - jsr vera_layer_mode_tile - // vera_layer_set_text_color_mode( layer, VERA_LAYER_CONFIG_16C ) - jsr vera_layer_set_text_color_mode - // } - rts -} -// Return the current screen size. -// void screensize(char *x, char *y) -screensize: { - .label x = conio_screen_width - .label y = conio_screen_height - // char hscale = (*VERA_DC_HSCALE) >> 7 - // VERA returns in VERA_DC_HSCALE the value of 128 when 80 columns is used in text mode, - // and the value of 64 when 40 columns is used in text mode. - // Basically, 40 columns mode in the VERA is a double scan mode. - // Same for the VERA_DC_VSCALE mode, but then the subdivision is 60 or 30 rows. - // I still need to test the other modes, but this will suffice for now for the pure text modes. - lda VERA_DC_HSCALE - rol - rol - and #1 - // 40 << hscale - tay - lda #$28 - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // *x = 40 << hscale - sta.z x - // char vscale = (*VERA_DC_VSCALE) >> 7 - lda VERA_DC_VSCALE - rol - rol - and #1 - // 30 << vscale - tay - lda #$1e - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // *y = 30 << vscale - sta.z y - // } - rts -} -// Set the layer with which the conio will interact. -// - layer: value of 0 or 1. -// void screenlayer(char layer) -screenlayer: { - .const layer = 1 - .label __2 = $f - .label __4 = $37 - .label __5 = $2b - .label vera_layer_get_width1_config = $21 - .label vera_layer_get_width1_return = $f - .label vera_layer_get_height1_config = $2d - .label vera_layer_get_height1_return = $2b - // conio_screen_layer = layer - lda #layer - sta.z conio_screen_layer - // vera_layer_get_mapbase_bank(conio_screen_layer) - tax - jsr vera_layer_get_mapbase_bank - sta.z CONIO_SCREEN_BANK - // vera_layer_get_mapbase_offset(conio_screen_layer) - lda.z conio_screen_layer - jsr vera_layer_get_mapbase_offset - lda.z vera_layer_get_mapbase_offset.return - sta.z CONIO_SCREEN_TEXT - lda.z vera_layer_get_mapbase_offset.return+1 - sta.z CONIO_SCREEN_TEXT+1 - // vera_layer_get_width(conio_screen_layer) - lda.z conio_screen_layer - // byte* config = vera_layer_config[layer] - asl - tay - lda vera_layer_config,y - sta.z vera_layer_get_width1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_width1_config+1 - // *config & VERA_LAYER_WIDTH_MASK - lda #VERA_LAYER_WIDTH_MASK - ldy #0 - and (vera_layer_get_width1_config),y - // (*config & VERA_LAYER_WIDTH_MASK) >> 4 - lsr - lsr - lsr - lsr - // return VERA_LAYER_WIDTH[ (*config & VERA_LAYER_WIDTH_MASK) >> 4]; - asl - tay - lda VERA_LAYER_WIDTH,y - sta.z vera_layer_get_width1_return - lda VERA_LAYER_WIDTH+1,y - sta.z vera_layer_get_width1_return+1 - // } - // vera_layer_get_width(conio_screen_layer) - // conio_width = vera_layer_get_width(conio_screen_layer) - lda.z __2 - sta.z conio_width - lda.z __2+1 - sta.z conio_width+1 - // vera_layer_get_rowshift(conio_screen_layer) - ldx.z conio_screen_layer - jsr vera_layer_get_rowshift - // conio_rowshift = vera_layer_get_rowshift(conio_screen_layer) - sta.z conio_rowshift - // vera_layer_get_rowskip(conio_screen_layer) - lda.z conio_screen_layer - jsr vera_layer_get_rowskip - // conio_rowskip = vera_layer_get_rowskip(conio_screen_layer) - lda.z __4 - sta.z conio_rowskip - lda.z __4+1 - sta.z conio_rowskip+1 - // vera_layer_get_height(conio_screen_layer) - lda.z conio_screen_layer - // byte* config = vera_layer_config[layer] - asl - tay - lda vera_layer_config,y - sta.z vera_layer_get_height1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_height1_config+1 - // *config & VERA_LAYER_HEIGHT_MASK - lda #VERA_LAYER_HEIGHT_MASK - ldy #0 - and (vera_layer_get_height1_config),y - // (*config & VERA_LAYER_HEIGHT_MASK) >> 6 - rol - rol - rol - and #3 - // return VERA_LAYER_HEIGHT[ (*config & VERA_LAYER_HEIGHT_MASK) >> 6]; - asl - tay - lda VERA_LAYER_HEIGHT,y - sta.z vera_layer_get_height1_return - lda VERA_LAYER_HEIGHT+1,y - sta.z vera_layer_get_height1_return+1 - // } - // vera_layer_get_height(conio_screen_layer) - // conio_height = vera_layer_get_height(conio_screen_layer) - lda.z __5 - sta.z conio_height - lda.z __5+1 - sta.z conio_height+1 - // } - rts -} -// Set the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15) when the VERA works in 16x16 color text mode. -// An 8 bit value (decimal between 0 and 255) when the VERA works in 256 text mode. -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_textcolor(__register(X) char layer, char color) -vera_layer_set_textcolor: { - // vera_layer_textcolor[layer] = color - lda #WHITE - sta vera_layer_textcolor,x - // } - rts -} -// Set the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_backcolor(__register(X) char layer, __register(A) char color) -vera_layer_set_backcolor: { - // vera_layer_backcolor[layer] = color - sta vera_layer_backcolor,x - // } - rts -} -// Set the base of the map layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - mapbase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// void vera_layer_set_mapbase(__register(A) char layer, __register(X) char mapbase) -vera_layer_set_mapbase: { - .label addr = $21 - // byte* addr = vera_layer_mapbase[layer] - asl - tay - lda vera_layer_mapbase,y - sta.z addr - lda vera_layer_mapbase+1,y - sta.z addr+1 - // *addr = mapbase - txa - ldy #0 - sta (addr),y - // } - rts -} -// Set the cursor to the specified position -// void gotoxy(char x, __register(X) char y) -gotoxy: { - .label __6 = $f - .label line_offset = $f - // if(y>CONIO_HEIGHT) - lda.z conio_screen_height - stx.z $ff - cmp.z $ff - bcs __b1 - ldx #0 - __b1: - // if(x>=CONIO_WIDTH) - lda.z conio_screen_width - // conio_cursor_x[conio_screen_layer] = x - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // conio_cursor_y[conio_screen_layer] = y - txa - sta conio_cursor_y,y - // unsigned int line_offset = (unsigned int)y << conio_rowshift - txa - sta.z __6 - lda #0 - sta.z __6+1 - ldy.z conio_rowshift - beq !e+ - !: - asl.z line_offset - rol.z line_offset+1 - dey - bne !- - !e: - // conio_line_text[conio_screen_layer] = line_offset - lda.z conio_screen_layer - asl - tay - lda.z line_offset - sta conio_line_text,y - lda.z line_offset+1 - sta conio_line_text+1,y - // } - rts -} -// Get the text and back color for text output in 16 color mode. -// - layer: Value of 0 or 1. -// - return: an 8 bit value with bit 7:4 containing the back color and bit 3:0 containing the front color. -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_color(__register(X) char layer) -vera_layer_get_color: { - .label addr = 8 - // byte* addr = vera_layer_config[layer] - txa - asl - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // *addr & VERA_LAYER_CONFIG_256C - lda #VERA_LAYER_CONFIG_256C - ldy #0 - and (addr),y - // if( *addr & VERA_LAYER_CONFIG_256C ) - cmp #0 - bne __b1 - // vera_layer_backcolor[layer] << 4 - lda vera_layer_backcolor,x - asl - asl - asl - asl - // return ((vera_layer_backcolor[layer] << 4) | vera_layer_textcolor[layer]); - ora vera_layer_textcolor,x - // } - rts - __b1: - // return (vera_layer_textcolor[layer]); - lda vera_layer_textcolor,x - rts -} -// Print a newline -cputln: { - .label temp = 8 - // word temp = conio_line_text[conio_screen_layer] - lda.z conio_screen_layer - asl - // TODO: This needs to be optimized! other variations don't compile because of sections not available! - tay - lda conio_line_text,y - sta.z temp - lda conio_line_text+1,y - sta.z temp+1 - // temp += conio_rowskip - clc - lda.z temp - adc.z conio_rowskip - sta.z temp - lda.z temp+1 - adc.z conio_rowskip+1 - sta.z temp+1 - // conio_line_text[conio_screen_layer] = temp - lda.z conio_screen_layer - asl - tay - lda.z temp - sta conio_line_text,y - lda.z temp+1 - sta conio_line_text+1,y - // conio_cursor_x[conio_screen_layer] = 0 - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // conio_cursor_y[conio_screen_layer]++; - ldx.z conio_screen_layer - inc conio_cursor_y,x - // cscroll() - jsr cscroll - // } - rts -} -// clears the screen and moves the cursor to the upper left-hand corner of the screen. -clrscr: { - .label __1 = $53 - .label line_text = 2 - .label color = $1f - // char* line_text = CONIO_SCREEN_TEXT - lda.z CONIO_SCREEN_TEXT - sta.z line_text - lda.z CONIO_SCREEN_TEXT+1 - sta.z line_text+1 - // vera_layer_get_backcolor(conio_screen_layer) - ldx.z conio_screen_layer - jsr vera_layer_get_backcolor - // vera_layer_get_backcolor(conio_screen_layer) << 4 - asl - asl - asl - asl - sta.z __1 - // vera_layer_get_textcolor(conio_screen_layer) - ldx.z conio_screen_layer - jsr vera_layer_get_textcolor - // char color = ( vera_layer_get_backcolor(conio_screen_layer) << 4 ) | vera_layer_get_textcolor(conio_screen_layer) - ora.z __1 - sta.z color - ldx #0 - __b1: - // for( char l=0;l$100 - bne __b13 - lda.z mapwidth - cmp #<$100 - bne __b13 - // config |= VERA_LAYER_WIDTH_256 - txa - ora #VERA_LAYER_WIDTH_256 - tax - // vera_layer_rowshift[layer] = 9 - lda #9 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 512 - tya - asl - tay - lda #<$200 - sta vera_layer_rowskip,y - lda #>$200 - sta vera_layer_rowskip+1,y - __b13: - // case 32: - // config |= VERA_LAYER_HEIGHT_32; - // break; - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$20 - beq __b20 - !: - // case 64: - // config |= VERA_LAYER_HEIGHT_64; - // break; - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$40 - bne !__b17+ - jmp __b17 - !__b17: - !: - // case 128: - // config |= VERA_LAYER_HEIGHT_128; - // break; - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$80 - bne !__b18+ - jmp __b18 - !__b18: - !: - // case 256: - // config |= VERA_LAYER_HEIGHT_256; - // break; - lda.z mapheight+1 - cmp #>$100 - bne __b20 - lda.z mapheight - cmp #<$100 - bne __b20 - // config |= VERA_LAYER_HEIGHT_256 - txa - ora #VERA_LAYER_HEIGHT_256 - tax - __b20: - // vera_layer_set_config(layer, config) - lda.z layer - jsr vera_layer_set_config - // WORD0(mapbase_address) - lda.z mapbase_address_1 - sta.z __1 - lda.z mapbase_address_1+1 - sta.z __1+1 - // vera_mapbase_offset[layer] = WORD0(mapbase_address) - lda.z layer - asl - sta.z __17 - // mapbase - tay - lda.z __1 - sta vera_mapbase_offset,y - lda.z __1+1 - sta vera_mapbase_offset+1,y - // BYTE2(mapbase_address) - lda.z mapbase_address_1+2 - // vera_mapbase_bank[layer] = BYTE2(mapbase_address) - ldy.z layer - sta vera_mapbase_bank,y - // vera_mapbase_address[layer] = mapbase_address - tya - asl - asl - sta.z __18 - tay - lda.z mapbase_address_1 - sta vera_mapbase_address,y - lda.z mapbase_address_1+1 - sta vera_mapbase_address+1,y - lda.z mapbase_address_1+2 - sta vera_mapbase_address+2,y - lda.z mapbase_address_1+3 - sta vera_mapbase_address+3,y - // mapbase_address = mapbase_address >> 1 - lsr - sta.z mapbase_address+3 - lda.z mapbase_address_1+2 - ror - sta.z mapbase_address+2 - lda.z mapbase_address_1+1 - ror - sta.z mapbase_address+1 - lda.z mapbase_address_1 - ror - sta.z mapbase_address - // byte mapbase = BYTE1(mapbase_address) - ldx.z mapbase_address+1 - // vera_layer_set_mapbase(layer,mapbase) - lda.z layer - jsr vera_layer_set_mapbase - // WORD0(tilebase_address) - lda.z tilebase_address_1 - sta.z __6 - lda.z tilebase_address_1+1 - sta.z __6+1 - // vera_tilebase_offset[layer] = WORD0(tilebase_address) - // tilebase - ldy.z __17 - lda.z __6 - sta vera_tilebase_offset,y - lda.z __6+1 - sta vera_tilebase_offset+1,y - // BYTE2(tilebase_address) - lda.z tilebase_address_1+2 - // vera_tilebase_bank[layer] = BYTE2(tilebase_address) - ldy.z layer - sta vera_tilebase_bank,y - // vera_tilebase_address[layer] = tilebase_address - ldy.z __18 - lda.z tilebase_address_1 - sta vera_tilebase_address,y - lda.z tilebase_address_1+1 - sta vera_tilebase_address+1,y - lda.z tilebase_address_1+2 - sta vera_tilebase_address+2,y - lda.z tilebase_address_1+3 - sta vera_tilebase_address+3,y - // tilebase_address = tilebase_address >> 1 - lsr - sta.z tilebase_address+3 - lda.z tilebase_address_1+2 - ror - sta.z tilebase_address+2 - lda.z tilebase_address_1+1 - ror - sta.z tilebase_address+1 - lda.z tilebase_address_1 - ror - sta.z tilebase_address - // byte tilebase = BYTE1(tilebase_address) - lda.z tilebase_address+1 - // tilebase &= VERA_LAYER_TILEBASE_MASK - and #VERA_LAYER_TILEBASE_MASK - tax - // case 8: - // tilebase |= VERA_TILEBASE_WIDTH_8; - // break; - lda #8 - cmp.z tilewidth - beq __b23 - // case 16: - // tilebase |= VERA_TILEBASE_WIDTH_16; - // break; - lda #$10 - cmp.z tilewidth - bne __b23 - // tilebase |= VERA_TILEBASE_WIDTH_16 - txa - ora #VERA_TILEBASE_WIDTH_16 - tax - __b23: - // case 8: - // tilebase |= VERA_TILEBASE_HEIGHT_8; - // break; - lda #8 - cmp.z tileheight - beq __b26 - // case 16: - // tilebase |= VERA_TILEBASE_HEIGHT_16; - // break; - lda #$10 - cmp.z tileheight - bne __b26 - // tilebase |= VERA_TILEBASE_HEIGHT_16 - txa - ora #VERA_TILEBASE_HEIGHT_16 - tax - __b26: - // vera_layer_set_tilebase(layer,tilebase) - lda.z layer - jsr vera_layer_set_tilebase - // } - rts - __b18: - // config |= VERA_LAYER_HEIGHT_128 - txa - ora #VERA_LAYER_HEIGHT_128 - tax - jmp __b20 - __b17: - // config |= VERA_LAYER_HEIGHT_64 - txa - ora #VERA_LAYER_HEIGHT_64 - tax - jmp __b20 - __b11: - // config |= VERA_LAYER_WIDTH_128 - txa - ora #VERA_LAYER_WIDTH_128 - tax - // vera_layer_rowshift[layer] = 8 - lda #8 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 256 - tya - asl - tay - lda #<$100 - sta vera_layer_rowskip,y - lda #>$100 - sta vera_layer_rowskip+1,y - jmp __b13 - __b10: - // config |= VERA_LAYER_WIDTH_64 - txa - ora #VERA_LAYER_WIDTH_64 - tax - // vera_layer_rowshift[layer] = 7 - lda #7 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 128 - tya - asl - tay - lda #$80 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - jmp __b13 - __b9: - // vera_layer_rowshift[layer] = 6 - lda #6 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 64 - tya - asl - tay - lda #$40 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - jmp __b13 -} -// Copy block of memory (from RAM to VRAM) -// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination in VRAM. -// - vbank: Which 64K VRAM bank to put data into (0/1) -// - vdest: The destination address in VRAM -// - src: The source address in RAM -// - num: The number of bytes to copy -// void memcpy_to_vram(char vbank, __zp(2) void *vdest, void *src, unsigned int num) -memcpy_to_vram: { - // Transfer the data - .label end = main.tiles+$40 - .label s = $1d - .label vdest = 2 - // *VERA_CTRL &= ~VERA_ADDRSEL - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(vdest) - lda.z vdest - // *VERA_ADDRX_L = BYTE0(vdest) - // Set address - sta VERA_ADDRX_L - // BYTE1(vdest) - lda.z vdest+1 - // *VERA_ADDRX_M = BYTE1(vdest) - sta VERA_ADDRX_M - // *VERA_ADDRX_H = VERA_INC_1 | vbank - lda #VERA_INC_1|1 - sta VERA_ADDRX_H - lda #main.tiles - sta.z s+1 - __b1: - // for(char *s = src; s!=end; s++) - lda.z s+1 - cmp #>end - bne __b2 - lda.z s - cmp #1+1 - sta.z rowskip+1 - cpy #0 - beq !e+ - !: - asl.z rowskip - rol.z rowskip+1 - dey - bne !- - !e: - // hflip = vera_layer_hflip[hflip] - lda vera_layer_hflip - sta.z hflip - // vflip = vera_layer_vflip[vflip] - lda vera_layer_vflip - sta.z vflip - // byte index_l = BYTE0(tileindex) - lda.z tileindex - sta.z index_l - // byte index_h = BYTE1(tileindex) - lda.z tileindex+1 - // index_h |= hflip - ora.z hflip - // index_h |= vflip - ora.z index_h - sta.z index_h - // (word)y << shift - lda.z y - sta.z __10 - lda #0 - sta.z __10+1 - ldy.z shift - beq !e+ - !: - asl.z __4 - rol.z __4+1 - dey - bne !- - !e: - // mapbase += ((word)y << shift) - lda.z mapbase - clc - adc.z __4 - sta.z mapbase - lda.z mapbase+1 - adc.z __4+1 - sta.z mapbase+1 - lda.z mapbase+2 - adc #0 - sta.z mapbase+2 - lda.z mapbase+3 - adc #0 - sta.z mapbase+3 - // x << 1 - lda.z x - asl - // mapbase += (x << 1) - clc - adc.z mapbase - sta.z mapbase - lda.z mapbase+1 - adc #0 - sta.z mapbase+1 - lda.z mapbase+2 - adc #0 - sta.z mapbase+2 - lda.z mapbase+3 - adc #0 - sta.z mapbase+3 - lda #0 - sta.z r - __b1: - // for(byte r=0; r$0000 - rts - - continue1: - nop - - // return ch; - lda.z ch - // } - rts -} -// Set the configuration of the layer text color mode. -// - layer: Value of 0 or 1. -// - color_mode: Specifies the color mode to be VERA_LAYER_CONFIG_16 or VERA_LAYER_CONFIG_256 for text mode. -// void vera_layer_set_text_color_mode(char layer, char color_mode) -vera_layer_set_text_color_mode: { - .label addr = $2b - // byte* addr = vera_layer_config[layer] - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER - sta.z addr - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER+1 - sta.z addr+1 - // *addr &= ~VERA_LAYER_CONFIG_256C - lda #VERA_LAYER_CONFIG_256C^$ff - ldy #0 - and (addr),y - sta (addr),y - // *addr |= color_mode - lda (addr),y - sta (addr),y - // } - rts -} -// Get the map base bank of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Bank in vera vram. -// __register(A) char vera_layer_get_mapbase_bank(__register(X) char layer) -vera_layer_get_mapbase_bank: { - // return vera_mapbase_bank[layer]; - lda vera_mapbase_bank,x - // } - rts -} -// Get the map base lower 16-bit address (offset) of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Offset in vera vram of the specified bank. -// __zp($f) unsigned int vera_layer_get_mapbase_offset(__register(A) char layer) -vera_layer_get_mapbase_offset: { - .label return = $f - // return vera_mapbase_offset[layer]; - asl - tay - lda vera_mapbase_offset,y - sta.z return - lda vera_mapbase_offset+1,y - sta.z return+1 - // } - rts -} -// Get the bit shift value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Rowshift value to calculate fast from a y value to line offset in tile mode. -// __register(A) char vera_layer_get_rowshift(__register(X) char layer) -vera_layer_get_rowshift: { - // return vera_layer_rowshift[layer]; - lda vera_layer_rowshift,x - // } - rts -} -// Get the value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Skip value to calculate fast from a y value to line offset in tile mode. -// __zp($37) unsigned int vera_layer_get_rowskip(__register(A) char layer) -vera_layer_get_rowskip: { - .label return = $37 - // return vera_layer_rowskip[layer]; - asl - tay - lda vera_layer_rowskip,y - sta.z return - lda vera_layer_rowskip+1,y - sta.z return+1 - // } - rts -} -// Scroll the entire screen if the cursor is beyond the last line -cscroll: { - // if(conio_cursor_y[conio_screen_layer]>=CONIO_HEIGHT) - ldy.z conio_screen_layer - lda conio_cursor_y,y - cmp.z conio_screen_height - bcc __b3 - // if(conio_scroll_enable[conio_screen_layer]) - lda conio_scroll_enable,y - cmp #0 - bne __b4 - // if(conio_cursor_y[conio_screen_layer]>=conio_height) - lda conio_cursor_y,y - ldy.z conio_height+1 - bne __b3 - cmp.z conio_height - __b3: - // } - rts - __b4: - // insertup() - jsr insertup - // gotoxy( 0, CONIO_HEIGHT-1) - ldx.z conio_screen_height - dex - jsr gotoxy - rts -} -// Get the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_backcolor(__register(X) char layer) -vera_layer_get_backcolor: { - // return vera_layer_backcolor[layer]; - lda vera_layer_backcolor,x - // } - rts -} -// Get the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_textcolor(__register(X) char layer) -vera_layer_get_textcolor: { - // return vera_layer_textcolor[layer]; - lda vera_layer_textcolor,x - // } - rts -} -// Set the configuration of the layer. -// - layer: Value of 0 or 1. -// - config: Specifies the modes which are specified using T256C / 'Bitmap Mode' / 'Color Depth'. -// void vera_layer_set_config(__register(A) char layer, __register(X) char config) -vera_layer_set_config: { - .label addr = $21 - // byte* addr = vera_layer_config[layer] - asl - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // *addr = config - txa - ldy #0 - sta (addr),y - // } - rts -} -// Set the base of the tiles for the layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - tilebase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// void vera_layer_set_tilebase(__register(A) char layer, __register(X) char tilebase) -vera_layer_set_tilebase: { - .label addr = $21 - // byte* addr = vera_layer_tilebase[layer] - asl - tay - lda vera_layer_tilebase,y - sta.z addr - lda vera_layer_tilebase+1,y - sta.z addr+1 - // *addr = tilebase - txa - ldy #0 - sta (addr),y - // } - rts -} -// Insert a new line, and scroll the upper part of the screen up. -insertup: { - .label cy = $d - .label width = $c - .label line = 6 - .label start = 6 - // unsigned byte cy = conio_cursor_y[conio_screen_layer] - ldy.z conio_screen_layer - lda conio_cursor_y,y - sta.z cy - // unsigned byte width = CONIO_WIDTH * 2 - lda.z conio_screen_width - asl - sta.z width - ldx #1 - __b1: - // for(unsigned byte i=1; i<=cy; i++) - lda.z cy - stx.z $ff - cmp.z $ff - bcs __b2 - // clearline() - jsr clearline - // } - rts - __b2: - // i-1 - txa - sec - sbc #1 - // unsigned int line = (i-1) << conio_rowshift - ldy.z conio_rowshift - sta.z line - lda #0 - sta.z line+1 - cpy #0 - beq !e+ - !: - asl.z line - rol.z line+1 - dey - bne !- - !e: - // unsigned char* start = CONIO_SCREEN_TEXT + line - clc - lda.z start - adc.z CONIO_SCREEN_TEXT_1 - sta.z start - lda.z start+1 - adc.z CONIO_SCREEN_TEXT_1+1 - sta.z start+1 - // start+conio_rowskip - lda.z start - clc - adc.z conio_rowskip - sta.z memcpy_in_vram.src - lda.z start+1 - adc.z conio_rowskip+1 - sta.z memcpy_in_vram.src+1 - // memcpy_in_vram(0, start, VERA_INC_1, 0, start+conio_rowskip, VERA_INC_1, width) - lda.z width - sta.z memcpy_in_vram.num - lda #0 - sta.z memcpy_in_vram.num+1 - jsr memcpy_in_vram - // for(unsigned byte i=1; i<=cy; i++) - inx - jmp __b1 -} -clearline: { - .label addr = $a - .label c = 2 - // *VERA_CTRL &= ~VERA_ADDRSEL - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // byte* addr = CONIO_SCREEN_TEXT + conio_line_text[conio_screen_layer] - lda.z conio_screen_layer - asl - // Set address - tay - clc - lda.z CONIO_SCREEN_TEXT_1 - adc conio_line_text,y - sta.z addr - lda.z CONIO_SCREEN_TEXT_1+1 - adc conio_line_text+1,y - sta.z addr+1 - // BYTE0(addr) - lda.z addr - // *VERA_ADDRX_L = BYTE0(addr) - sta VERA_ADDRX_L - // BYTE1(addr) - lda.z addr+1 - // *VERA_ADDRX_M = BYTE1(addr) - sta VERA_ADDRX_M - // *VERA_ADDRX_H = VERA_INC_1 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // char color = vera_layer_get_color( conio_screen_layer) - ldx.z conio_screen_layer - jsr vera_layer_get_color - // char color = vera_layer_get_color( conio_screen_layer) - tax - lda #<0 - sta.z c - sta.z c+1 - __b1: - // for( unsigned int c=0;c> 7 - [147] screensize::$1 = $28 << screensize::hscale#0 - [148] *screensize::x#0 = screensize::$1 - [149] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 - [150] screensize::$3 = $1e << screensize::vscale#0 - [151] *screensize::y#0 = screensize::$3 - to:screensize::@return -screensize::@return: scope:[screensize] from screensize - [152] return - to:@return - -void screenlayer(char layer) -screenlayer: scope:[screenlayer] from conio_x16_init::@4 - [153] conio_screen_layer = screenlayer::layer#0 - [154] vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer - [155] call vera_layer_get_mapbase_bank - [156] vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#0 - to:screenlayer::@3 -screenlayer::@3: scope:[screenlayer] from screenlayer - [157] CONIO_SCREEN_BANK#11 = vera_layer_get_mapbase_bank::return#2 - [158] vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer - [159] call vera_layer_get_mapbase_offset - [160] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 - to:screenlayer::@4 -screenlayer::@4: scope:[screenlayer] from screenlayer::@3 - [161] CONIO_SCREEN_TEXT#13 = vera_layer_get_mapbase_offset::return#2 - [162] 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 - [163] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 - [164] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] - [165] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK - [166] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 - [167] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 - [168] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] - to:screenlayer::vera_layer_get_width1_@return -screenlayer::vera_layer_get_width1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_width1 - [169] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 - to:screenlayer::@1 -screenlayer::@1: scope:[screenlayer] from screenlayer::vera_layer_get_width1_@return - [170] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 - [171] conio_width = screenlayer::$2 - [172] vera_layer_get_rowshift::layer#0 = conio_screen_layer - [173] call vera_layer_get_rowshift - [174] vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#0 - to:screenlayer::@5 -screenlayer::@5: scope:[screenlayer] from screenlayer::@1 - [175] screenlayer::$3 = vera_layer_get_rowshift::return#2 - [176] conio_rowshift = screenlayer::$3 - [177] vera_layer_get_rowskip::layer#0 = conio_screen_layer - [178] call vera_layer_get_rowskip - [179] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 - to:screenlayer::@6 -screenlayer::@6: scope:[screenlayer] from screenlayer::@5 - [180] screenlayer::$4 = vera_layer_get_rowskip::return#2 - [181] conio_rowskip = screenlayer::$4 - [182] screenlayer::vera_layer_get_height1_layer#0 = conio_screen_layer - to:screenlayer::vera_layer_get_height1 -screenlayer::vera_layer_get_height1: scope:[screenlayer] from screenlayer::@6 - [183] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 - [184] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] - [185] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK - [186] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 - [187] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 - [188] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] - to:screenlayer::vera_layer_get_height1_@return -screenlayer::vera_layer_get_height1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_height1 - [189] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 - to:screenlayer::@2 -screenlayer::@2: scope:[screenlayer] from screenlayer::vera_layer_get_height1_@return - [190] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 - [191] conio_height = screenlayer::$5 - to:screenlayer::@return -screenlayer::@return: scope:[screenlayer] from screenlayer::@2 - [192] return - to:@return - -char vera_layer_set_textcolor(char layer , char color) -vera_layer_set_textcolor: scope:[vera_layer_set_textcolor] from conio_x16_init::@5 main::textcolor1 - [193] vera_layer_set_textcolor::layer#2 = phi( conio_x16_init::@5/1, main::textcolor1/vera_layer_set_textcolor::layer#1 ) - [194] vera_layer_textcolor[vera_layer_set_textcolor::layer#2] = WHITE - to:vera_layer_set_textcolor::@return -vera_layer_set_textcolor::@return: scope:[vera_layer_set_textcolor] from vera_layer_set_textcolor - [195] return - to:@return - -char vera_layer_set_backcolor(char layer , char color) -vera_layer_set_backcolor: scope:[vera_layer_set_backcolor] from conio_x16_init::@6 main::bgcolor1 - [196] vera_layer_set_backcolor::color#2 = phi( conio_x16_init::@6/BLUE, main::bgcolor1/BLACK ) - [196] vera_layer_set_backcolor::layer#2 = phi( conio_x16_init::@6/1, main::bgcolor1/vera_layer_set_backcolor::layer#1 ) - [197] vera_layer_backcolor[vera_layer_set_backcolor::layer#2] = vera_layer_set_backcolor::color#2 - to:vera_layer_set_backcolor::@return -vera_layer_set_backcolor::@return: scope:[vera_layer_set_backcolor] from vera_layer_set_backcolor - [198] return - to:@return - -void vera_layer_set_mapbase(char layer , char mapbase) -vera_layer_set_mapbase: scope:[vera_layer_set_mapbase] from conio_x16_init::@7 conio_x16_init::@8 vera_layer_mode_tile::@27 - [199] vera_layer_set_mapbase::mapbase#3 = phi( conio_x16_init::@7/$20, conio_x16_init::@8/0, vera_layer_mode_tile::@27/vera_layer_set_mapbase::mapbase#0 ) - [199] vera_layer_set_mapbase::layer#3 = phi( conio_x16_init::@7/0, conio_x16_init::@8/1, vera_layer_mode_tile::@27/vera_layer_set_mapbase::layer#0 ) - [200] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 - [201] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] - [202] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 - to:vera_layer_set_mapbase::@return -vera_layer_set_mapbase::@return: scope:[vera_layer_set_mapbase] from vera_layer_set_mapbase - [203] return - to:@return - -void gotoxy(char x , char y) -gotoxy: scope:[gotoxy] from conio_x16_init::@1 cscroll::@5 main::@13 - [204] gotoxy::y#4 = phi( conio_x16_init::@1/gotoxy::y#1, cscroll::@5/gotoxy::y#2, main::@13/$32 ) - [205] if(gotoxy::y#4<=conio_screen_height) goto gotoxy::@4 - to:gotoxy::@1 -gotoxy::@4: scope:[gotoxy] from gotoxy - [206] phi() - to:gotoxy::@1 -gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@4 - [207] gotoxy::y#5 = phi( gotoxy::@4/gotoxy::y#4, gotoxy/0 ) - [208] if(0> 1 - [301] vera_layer_mode_tile::mapbase#0 = byte1 vera_layer_mode_tile::mapbase_address#0 - [302] vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#10 - [303] vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0 - [304] call vera_layer_set_mapbase - to:vera_layer_mode_tile::@28 -vera_layer_mode_tile::@28: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@27 - [305] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 - [306] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 - [307] vera_layer_mode_tile::$7 = byte2 vera_layer_mode_tile::tilebase_address#10 - [308] vera_tilebase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$7 - [309] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 - [310] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 - [311] vera_layer_mode_tile::tilebase#0 = byte1 vera_layer_mode_tile::tilebase_address#0 - [312] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK - [313] if(vera_layer_mode_tile::tilewidth#10==8) goto vera_layer_mode_tile::@23 - to:vera_layer_mode_tile::@21 -vera_layer_mode_tile::@21: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@28 - [314] if(vera_layer_mode_tile::tilewidth#10!=$10) goto vera_layer_mode_tile::@23 - to:vera_layer_mode_tile::@22 -vera_layer_mode_tile::@22: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@21 - [315] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 - to:vera_layer_mode_tile::@23 -vera_layer_mode_tile::@23: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@21 vera_layer_mode_tile::@22 vera_layer_mode_tile::@28 - [316] vera_layer_mode_tile::tilebase#12 = phi( vera_layer_mode_tile::@21/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@28/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@22/vera_layer_mode_tile::tilebase#3 ) - [317] if(vera_layer_mode_tile::tileheight#10==8) goto vera_layer_mode_tile::@26 - to:vera_layer_mode_tile::@24 -vera_layer_mode_tile::@24: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@23 - [318] if(vera_layer_mode_tile::tileheight#10!=$10) goto vera_layer_mode_tile::@26 - to:vera_layer_mode_tile::@25 -vera_layer_mode_tile::@25: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@24 - [319] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 - to:vera_layer_mode_tile::@26 -vera_layer_mode_tile::@26: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@23 vera_layer_mode_tile::@24 vera_layer_mode_tile::@25 - [320] vera_layer_mode_tile::tilebase#10 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@23/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@25/vera_layer_mode_tile::tilebase#5 ) - [321] vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#10 - [322] vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10 - [323] call vera_layer_set_tilebase - to:vera_layer_mode_tile::@return -vera_layer_mode_tile::@return: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@26 - [324] return - to:@return -vera_layer_mode_tile::@18: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@15 - [325] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 - to:vera_layer_mode_tile::@20 -vera_layer_mode_tile::@17: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@14 - [326] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 - to:vera_layer_mode_tile::@20 -vera_layer_mode_tile::@11: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@7 - [327] vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_128 - [328] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 - [329] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 - [330] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 - to:vera_layer_mode_tile::@13 -vera_layer_mode_tile::@10: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@6 - [331] vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_64 - [332] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 - [333] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 - [334] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 - to:vera_layer_mode_tile::@13 -vera_layer_mode_tile::@9: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@5 - [335] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 - [336] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 - [337] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 - to:vera_layer_mode_tile::@13 - -void memcpy_to_vram(char vbank , void *vdest , void *src , unsigned int num) -memcpy_to_vram: scope:[memcpy_to_vram] from main::@15 main::@3 - [338] memcpy_to_vram::vdest#2 = phi( main::@15/(void *)(char *) 16384, main::@3/memcpy_to_vram::vdest#1 ) - [339] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL - [340] memcpy_to_vram::$0 = byte0 memcpy_to_vram::vdest#2 - [341] *VERA_ADDRX_L = memcpy_to_vram::$0 - [342] memcpy_to_vram::$1 = byte1 memcpy_to_vram::vdest#2 - [343] *VERA_ADDRX_M = memcpy_to_vram::$1 - [344] *VERA_ADDRX_H = VERA_INC_1|1 - to:memcpy_to_vram::@1 -memcpy_to_vram::@1: scope:[memcpy_to_vram] from memcpy_to_vram memcpy_to_vram::@2 - [345] memcpy_to_vram::s#2 = phi( memcpy_to_vram/(char *)(void *)main::tiles, memcpy_to_vram::@2/memcpy_to_vram::s#1 ) - [346] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2 - to:memcpy_to_vram::@return -memcpy_to_vram::@return: scope:[memcpy_to_vram] from memcpy_to_vram::@1 - [347] return - to:@return -memcpy_to_vram::@2: scope:[memcpy_to_vram] from memcpy_to_vram::@1 - [348] *VERA_DATA0 = *memcpy_to_vram::s#2 - [349] memcpy_to_vram::s#1 = ++ memcpy_to_vram::s#2 - to:memcpy_to_vram::@1 - -void vera_tile_area(char layer , unsigned int tileindex , char x , char y , char w , char h , char hflip , char vflip , char offset) -vera_tile_area: scope:[vera_tile_area] from main::@4 main::@6 main::@9 - [350] vera_tile_area::w#9 = phi( main::@9/2, main::@4/$50, main::@6/1 ) - [350] vera_tile_area::h#4 = phi( main::@9/2, main::@4/$3c, main::@6/1 ) - [350] vera_tile_area::x#3 = phi( main::@9/vera_tile_area::x#2, main::@4/0, main::@6/vera_tile_area::x#1 ) - [350] vera_tile_area::y#3 = phi( main::@9/vera_tile_area::y#2, main::@4/0, main::@6/vera_tile_area::y#1 ) - [350] vera_tile_area::tileindex#3 = phi( main::@9/vera_tile_area::tileindex#2, main::@4/0, main::@6/vera_tile_area::tileindex#1 ) - [351] vera_tile_area::mapbase#0 = *vera_mapbase_address - [352] vera_tile_area::shift#0 = *vera_layer_rowshift - [353] vera_tile_area::rowskip#0 = 1 << vera_tile_area::shift#0 - [354] vera_tile_area::hflip#0 = *vera_layer_hflip - [355] vera_tile_area::vflip#0 = *vera_layer_vflip - [356] vera_tile_area::index_l#0 = byte0 vera_tile_area::tileindex#3 - [357] vera_tile_area::index_h#0 = byte1 vera_tile_area::tileindex#3 - [358] vera_tile_area::index_h#1 = vera_tile_area::index_h#0 | vera_tile_area::hflip#0 - [359] vera_tile_area::index_h#2 = vera_tile_area::index_h#1 | vera_tile_area::vflip#0 - [360] vera_tile_area::$10 = (unsigned int)vera_tile_area::y#3 - [361] vera_tile_area::$4 = vera_tile_area::$10 << vera_tile_area::shift#0 - [362] vera_tile_area::mapbase#1 = vera_tile_area::mapbase#0 + vera_tile_area::$4 - [363] vera_tile_area::$5 = vera_tile_area::x#3 << 1 - [364] vera_tile_area::mapbase#2 = vera_tile_area::mapbase#1 + vera_tile_area::$5 - to:vera_tile_area::@1 -vera_tile_area::@1: scope:[vera_tile_area] from vera_tile_area vera_tile_area::@4 - [365] vera_tile_area::mapbase#10 = phi( vera_tile_area/vera_tile_area::mapbase#2, vera_tile_area::@4/vera_tile_area::mapbase#3 ) - [365] vera_tile_area::r#2 = phi( vera_tile_area/0, vera_tile_area::@4/vera_tile_area::r#1 ) - [366] if(vera_tile_area::r#2$0000 - rts - - continue1: - nop - }} - [394] kbhit::return#0 = kbhit::ch - to:kbhit::@return -kbhit::@return: scope:[kbhit] from kbhit - [395] kbhit::return#1 = kbhit::return#0 - [396] return - to:@return - -void vera_layer_set_text_color_mode(char layer , char color_mode) -vera_layer_set_text_color_mode: scope:[vera_layer_set_text_color_mode] from vera_layer_mode_text::@1 - [397] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) - [398] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C - [399] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 - to:vera_layer_set_text_color_mode::@return -vera_layer_set_text_color_mode::@return: scope:[vera_layer_set_text_color_mode] from vera_layer_set_text_color_mode - [400] return - to:@return - -char vera_layer_get_mapbase_bank(char layer) -vera_layer_get_mapbase_bank: scope:[vera_layer_get_mapbase_bank] from screenlayer - [401] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0] - to:vera_layer_get_mapbase_bank::@return -vera_layer_get_mapbase_bank::@return: scope:[vera_layer_get_mapbase_bank] from vera_layer_get_mapbase_bank - [402] return - to:@return - -unsigned int vera_layer_get_mapbase_offset(char layer) -vera_layer_get_mapbase_offset: scope:[vera_layer_get_mapbase_offset] from screenlayer::@3 - [403] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 - [404] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] - to:vera_layer_get_mapbase_offset::@return -vera_layer_get_mapbase_offset::@return: scope:[vera_layer_get_mapbase_offset] from vera_layer_get_mapbase_offset - [405] return - to:@return - -char vera_layer_get_rowshift(char layer) -vera_layer_get_rowshift: scope:[vera_layer_get_rowshift] from screenlayer::@1 - [406] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0] - to:vera_layer_get_rowshift::@return -vera_layer_get_rowshift::@return: scope:[vera_layer_get_rowshift] from vera_layer_get_rowshift - [407] return - to:@return - -unsigned int vera_layer_get_rowskip(char layer) -vera_layer_get_rowskip: scope:[vera_layer_get_rowskip] from screenlayer::@5 - [408] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 - [409] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] - to:vera_layer_get_rowskip::@return -vera_layer_get_rowskip::@return: scope:[vera_layer_get_rowskip] from vera_layer_get_rowskip - [410] return - to:@return - -void cscroll() -cscroll: scope:[cscroll] from cputln - [411] if(conio_cursor_y[conio_screen_layer]> 1 - vera_layer_mode_tile::mapbase_address#0 = vera_layer_mode_tile::$3 - vera_layer_mode_tile::mapbase#0 = byte1 vera_layer_mode_tile::mapbase_address#0 - vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#7 - vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0 - call vera_layer_set_mapbase - to:vera_layer_mode_tile::@34 -vera_layer_mode_tile::@34: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@33 - vera_layer_mode_tile::tileheight#7 = phi( vera_layer_mode_tile::@33/vera_layer_mode_tile::tileheight#8 ) - vera_layer_mode_tile::tilewidth#2 = phi( vera_layer_mode_tile::@33/vera_layer_mode_tile::tilewidth#4 ) - vera_layer_mode_tile::layer#8 = phi( vera_layer_mode_tile::@33/vera_layer_mode_tile::layer#7 ) - vera_layer_mode_tile::tilebase_address#3 = phi( vera_layer_mode_tile::@33/vera_layer_mode_tile::tilebase_address#4 ) - vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#3 - vera_layer_mode_tile::$17 = vera_layer_mode_tile::layer#8 * SIZEOF_UNSIGNED_INT - vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 - vera_layer_mode_tile::$7 = byte2 vera_layer_mode_tile::tilebase_address#3 - vera_tilebase_bank[vera_layer_mode_tile::layer#8] = vera_layer_mode_tile::$7 - vera_layer_mode_tile::$18 = vera_layer_mode_tile::layer#8 * SIZEOF_UNSIGNED_LONG - vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#3 - vera_layer_mode_tile::$8 = vera_layer_mode_tile::tilebase_address#3 >> 1 - vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::$8 - vera_layer_mode_tile::tilebase#0 = byte1 vera_layer_mode_tile::tilebase_address#0 - vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK - if(vera_layer_mode_tile::tilewidth#2==8) goto vera_layer_mode_tile::@26 - to:vera_layer_mode_tile::@25 -vera_layer_mode_tile::@26: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@34 - vera_layer_mode_tile::layer#35 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::layer#8 ) - vera_layer_mode_tile::tileheight#5 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::tileheight#7 ) - vera_layer_mode_tile::tilebase#6 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::tilebase#1 ) - vera_layer_mode_tile::tilebase#2 = vera_layer_mode_tile::tilebase#6 | VERA_TILEBASE_WIDTH_8 - to:vera_layer_mode_tile::@28 -vera_layer_mode_tile::@25: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@34 - vera_layer_mode_tile::layer#34 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::layer#8 ) - vera_layer_mode_tile::tileheight#4 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::tileheight#7 ) - vera_layer_mode_tile::tilebase#11 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::tilebase#1 ) - vera_layer_mode_tile::tilewidth#3 = phi( vera_layer_mode_tile::@34/vera_layer_mode_tile::tilewidth#2 ) - if(vera_layer_mode_tile::tilewidth#3==$10) goto vera_layer_mode_tile::@27 - to:vera_layer_mode_tile::@28 -vera_layer_mode_tile::@27: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@25 - vera_layer_mode_tile::layer#36 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::layer#34 ) - vera_layer_mode_tile::tileheight#6 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::tileheight#4 ) - vera_layer_mode_tile::tilebase#7 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::tilebase#11 ) - vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#7 | VERA_TILEBASE_WIDTH_16 - to:vera_layer_mode_tile::@28 -vera_layer_mode_tile::@28: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@25 vera_layer_mode_tile::@26 vera_layer_mode_tile::@27 - vera_layer_mode_tile::layer#30 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::layer#34, vera_layer_mode_tile::@26/vera_layer_mode_tile::layer#35, vera_layer_mode_tile::@27/vera_layer_mode_tile::layer#36 ) - vera_layer_mode_tile::tilebase#12 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::tilebase#11, vera_layer_mode_tile::@26/vera_layer_mode_tile::tilebase#2, vera_layer_mode_tile::@27/vera_layer_mode_tile::tilebase#3 ) - vera_layer_mode_tile::tileheight#2 = phi( vera_layer_mode_tile::@25/vera_layer_mode_tile::tileheight#4, vera_layer_mode_tile::@26/vera_layer_mode_tile::tileheight#5, vera_layer_mode_tile::@27/vera_layer_mode_tile::tileheight#6 ) - if(vera_layer_mode_tile::tileheight#2==8) goto vera_layer_mode_tile::@30 - to:vera_layer_mode_tile::@29 -vera_layer_mode_tile::@30: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@28 - vera_layer_mode_tile::layer#20 = phi( vera_layer_mode_tile::@28/vera_layer_mode_tile::layer#30 ) - vera_layer_mode_tile::tilebase#8 = phi( vera_layer_mode_tile::@28/vera_layer_mode_tile::tilebase#12 ) - vera_layer_mode_tile::tilebase#4 = vera_layer_mode_tile::tilebase#8 | VERA_TILEBASE_HEIGHT_8 - to:vera_layer_mode_tile::@32 -vera_layer_mode_tile::@29: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@28 - vera_layer_mode_tile::layer#19 = phi( vera_layer_mode_tile::@28/vera_layer_mode_tile::layer#30 ) - vera_layer_mode_tile::tilebase#13 = phi( vera_layer_mode_tile::@28/vera_layer_mode_tile::tilebase#12 ) - vera_layer_mode_tile::tileheight#3 = phi( vera_layer_mode_tile::@28/vera_layer_mode_tile::tileheight#2 ) - if(vera_layer_mode_tile::tileheight#3==$10) goto vera_layer_mode_tile::@31 - to:vera_layer_mode_tile::@32 -vera_layer_mode_tile::@31: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@29 - vera_layer_mode_tile::layer#21 = phi( vera_layer_mode_tile::@29/vera_layer_mode_tile::layer#19 ) - vera_layer_mode_tile::tilebase#9 = phi( vera_layer_mode_tile::@29/vera_layer_mode_tile::tilebase#13 ) - vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#9 | VERA_TILEBASE_HEIGHT_16 - to:vera_layer_mode_tile::@32 -vera_layer_mode_tile::@32: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@29 vera_layer_mode_tile::@30 vera_layer_mode_tile::@31 - vera_layer_mode_tile::tilebase#10 = phi( vera_layer_mode_tile::@29/vera_layer_mode_tile::tilebase#13, vera_layer_mode_tile::@30/vera_layer_mode_tile::tilebase#4, vera_layer_mode_tile::@31/vera_layer_mode_tile::tilebase#5 ) - vera_layer_mode_tile::layer#9 = phi( vera_layer_mode_tile::@29/vera_layer_mode_tile::layer#19, vera_layer_mode_tile::@30/vera_layer_mode_tile::layer#20, vera_layer_mode_tile::@31/vera_layer_mode_tile::layer#21 ) - vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#9 - vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10 - call vera_layer_set_tilebase - to:vera_layer_mode_tile::@35 -vera_layer_mode_tile::@35: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@32 - to:vera_layer_mode_tile::@return -vera_layer_mode_tile::@return: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@35 - return - to:@return - -void vera_layer_mode_text(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , unsigned int color_mode) -vera_layer_mode_text: scope:[vera_layer_mode_text] from conio_x16_init - vera_layer_mode_text::color_mode#3 = phi( conio_x16_init/vera_layer_mode_text::color_mode#0 ) - vera_layer_mode_text::tileheight#1 = phi( conio_x16_init/vera_layer_mode_text::tileheight#0 ) - vera_layer_mode_text::tilewidth#1 = phi( conio_x16_init/vera_layer_mode_text::tilewidth#0 ) - vera_layer_mode_text::mapheight#1 = phi( conio_x16_init/vera_layer_mode_text::mapheight#0 ) - vera_layer_mode_text::mapwidth#1 = phi( conio_x16_init/vera_layer_mode_text::mapwidth#0 ) - vera_layer_mode_text::tilebase_address#1 = phi( conio_x16_init/vera_layer_mode_text::tilebase_address#0 ) - vera_layer_mode_text::mapbase_address#1 = phi( conio_x16_init/vera_layer_mode_text::mapbase_address#0 ) - vera_layer_mode_text::layer#1 = phi( conio_x16_init/vera_layer_mode_text::layer#0 ) - vera_layer_mode_tile::layer#0 = vera_layer_mode_text::layer#1 - vera_layer_mode_tile::mapbase_address#1 = vera_layer_mode_text::mapbase_address#1 - vera_layer_mode_tile::tilebase_address#1 = vera_layer_mode_text::tilebase_address#1 - vera_layer_mode_tile::mapwidth#0 = vera_layer_mode_text::mapwidth#1 - vera_layer_mode_tile::mapheight#0 = vera_layer_mode_text::mapheight#1 - vera_layer_mode_tile::tilewidth#0 = vera_layer_mode_text::tilewidth#1 - vera_layer_mode_tile::tileheight#0 = vera_layer_mode_text::tileheight#1 - vera_layer_mode_tile::color_depth#0 = 1 - call vera_layer_mode_tile - to:vera_layer_mode_text::@4 -vera_layer_mode_text::@4: scope:[vera_layer_mode_text] from vera_layer_mode_text - vera_layer_mode_text::layer#4 = phi( vera_layer_mode_text/vera_layer_mode_text::layer#1 ) - vera_layer_mode_text::color_mode#1 = phi( vera_layer_mode_text/vera_layer_mode_text::color_mode#3 ) - if(vera_layer_mode_text::color_mode#1==$10) goto vera_layer_mode_text::@2 - to:vera_layer_mode_text::@1 -vera_layer_mode_text::@2: scope:[vera_layer_mode_text] from vera_layer_mode_text::@4 - vera_layer_mode_text::layer#2 = phi( vera_layer_mode_text::@4/vera_layer_mode_text::layer#4 ) - vera_layer_set_text_color_mode::layer#0 = vera_layer_mode_text::layer#2 - vera_layer_set_text_color_mode::color_mode#0 = VERA_LAYER_CONFIG_16C - call vera_layer_set_text_color_mode - to:vera_layer_mode_text::@5 -vera_layer_mode_text::@5: scope:[vera_layer_mode_text] from vera_layer_mode_text::@2 - to:vera_layer_mode_text::@return -vera_layer_mode_text::@1: scope:[vera_layer_mode_text] from vera_layer_mode_text::@4 - vera_layer_mode_text::layer#5 = phi( vera_layer_mode_text::@4/vera_layer_mode_text::layer#4 ) - vera_layer_mode_text::color_mode#2 = phi( vera_layer_mode_text::@4/vera_layer_mode_text::color_mode#1 ) - if(vera_layer_mode_text::color_mode#2==$100) goto vera_layer_mode_text::@3 - to:vera_layer_mode_text::@return -vera_layer_mode_text::@3: scope:[vera_layer_mode_text] from vera_layer_mode_text::@1 - vera_layer_mode_text::layer#3 = phi( vera_layer_mode_text::@1/vera_layer_mode_text::layer#5 ) - vera_layer_set_text_color_mode::layer#1 = vera_layer_mode_text::layer#3 - vera_layer_set_text_color_mode::color_mode#1 = VERA_LAYER_CONFIG_256C - call vera_layer_set_text_color_mode - to:vera_layer_mode_text::@6 -vera_layer_mode_text::@6: scope:[vera_layer_mode_text] from vera_layer_mode_text::@3 - to:vera_layer_mode_text::@return -vera_layer_mode_text::@return: scope:[vera_layer_mode_text] from vera_layer_mode_text::@1 vera_layer_mode_text::@5 vera_layer_mode_text::@6 - return - to:@return - -void vera_tile_area(char layer , unsigned int tileindex , char x , char y , char w , char h , char hflip , char vflip , char offset) -vera_tile_area: scope:[vera_tile_area] from main::@10 main::@4 main::@6 - vera_tile_area::w#9 = phi( main::@10/vera_tile_area::w#2, main::@4/vera_tile_area::w#0, main::@6/vera_tile_area::w#1 ) - vera_tile_area::h#4 = phi( main::@10/vera_tile_area::h#2, main::@4/vera_tile_area::h#0, main::@6/vera_tile_area::h#1 ) - vera_tile_area::x#3 = phi( main::@10/vera_tile_area::x#2, main::@4/vera_tile_area::x#0, main::@6/vera_tile_area::x#1 ) - vera_tile_area::y#3 = phi( main::@10/vera_tile_area::y#2, main::@4/vera_tile_area::y#0, main::@6/vera_tile_area::y#1 ) - vera_tile_area::tileindex#3 = phi( main::@10/vera_tile_area::tileindex#2, main::@4/vera_tile_area::tileindex#0, main::@6/vera_tile_area::tileindex#1 ) - vera_tile_area::offset#4 = phi( main::@10/vera_tile_area::offset#3, main::@4/vera_tile_area::offset#1, main::@6/vera_tile_area::offset#2 ) - vera_tile_area::vflip#4 = phi( main::@10/vera_tile_area::vflip#3, main::@4/vera_tile_area::vflip#1, main::@6/vera_tile_area::vflip#2 ) - vera_tile_area::hflip#4 = phi( main::@10/vera_tile_area::hflip#3, main::@4/vera_tile_area::hflip#1, main::@6/vera_tile_area::hflip#2 ) - vera_tile_area::layer#3 = phi( main::@10/vera_tile_area::layer#2, main::@4/vera_tile_area::layer#0, main::@6/vera_tile_area::layer#1 ) - vera_tile_area::$9 = vera_tile_area::layer#3 * SIZEOF_UNSIGNED_LONG - vera_tile_area::mapbase#0 = vera_mapbase_address[vera_tile_area::$9] - vera_tile_area::shift#0 = vera_layer_rowshift[vera_tile_area::layer#3] - vera_tile_area::rowskip#0 = (unsigned int)1 << vera_tile_area::shift#0 - vera_tile_area::hflip#0 = vera_layer_hflip[vera_tile_area::hflip#4] - vera_tile_area::vflip#0 = vera_layer_vflip[vera_tile_area::vflip#4] - vera_tile_area::$1 = vera_tile_area::offset#4 << 4 - vera_tile_area::offset#0 = vera_tile_area::$1 - vera_tile_area::index_l#0 = byte0 vera_tile_area::tileindex#3 - vera_tile_area::index_h#0 = byte1 vera_tile_area::tileindex#3 - vera_tile_area::index_h#1 = vera_tile_area::index_h#0 | vera_tile_area::hflip#0 - vera_tile_area::index_h#2 = vera_tile_area::index_h#1 | vera_tile_area::vflip#0 - vera_tile_area::index_h#3 = vera_tile_area::index_h#2 | vera_tile_area::offset#0 - vera_tile_area::$10 = (unsigned int)vera_tile_area::y#3 - vera_tile_area::$4 = vera_tile_area::$10 << vera_tile_area::shift#0 - vera_tile_area::mapbase#1 = vera_tile_area::mapbase#0 + vera_tile_area::$4 - vera_tile_area::$5 = vera_tile_area::x#3 << 1 - vera_tile_area::mapbase#2 = vera_tile_area::mapbase#1 + vera_tile_area::$5 - vera_tile_area::r#0 = 0 - to:vera_tile_area::@1 -vera_tile_area::@1: scope:[vera_tile_area] from vera_tile_area vera_tile_area::@5 - vera_tile_area::rowskip#7 = phi( vera_tile_area/vera_tile_area::rowskip#0, vera_tile_area::@5/vera_tile_area::rowskip#1 ) - vera_tile_area::index_h#9 = phi( vera_tile_area/vera_tile_area::index_h#3, vera_tile_area::@5/vera_tile_area::index_h#10 ) - vera_tile_area::index_l#6 = phi( vera_tile_area/vera_tile_area::index_l#0, vera_tile_area::@5/vera_tile_area::index_l#7 ) - vera_tile_area::w#8 = phi( vera_tile_area/vera_tile_area::w#9, vera_tile_area::@5/vera_tile_area::w#10 ) - vera_tile_area::mapbase#6 = phi( vera_tile_area/vera_tile_area::mapbase#2, vera_tile_area::@5/vera_tile_area::mapbase#3 ) - vera_tile_area::h#3 = phi( vera_tile_area/vera_tile_area::h#4, vera_tile_area::@5/vera_tile_area::h#5 ) - vera_tile_area::r#2 = phi( vera_tile_area/vera_tile_area::r#0, vera_tile_area::@5/vera_tile_area::r#1 ) - vera_tile_area::$6 = vera_tile_area::r#2 < vera_tile_area::h#3 - if(vera_tile_area::$6) goto vera_tile_area::@2 - to:vera_tile_area::@return -vera_tile_area::@2: scope:[vera_tile_area] from vera_tile_area::@1 - vera_tile_area::h#10 = phi( vera_tile_area::@1/vera_tile_area::h#3 ) - vera_tile_area::r#8 = phi( vera_tile_area::@1/vera_tile_area::r#2 ) - vera_tile_area::rowskip#6 = phi( vera_tile_area::@1/vera_tile_area::rowskip#7 ) - vera_tile_area::index_h#8 = phi( vera_tile_area::@1/vera_tile_area::index_h#9 ) - vera_tile_area::index_l#5 = phi( vera_tile_area::@1/vera_tile_area::index_l#6 ) - vera_tile_area::w#7 = phi( vera_tile_area::@1/vera_tile_area::w#8 ) - vera_tile_area::mapbase#4 = phi( vera_tile_area::@1/vera_tile_area::mapbase#6 ) - vera_tile_area::vera_vram_address01_bankaddr#0 = vera_tile_area::mapbase#4 - vera_tile_area::vera_vram_address01_incr#0 = VERA_INC_1 - to:vera_tile_area::vera_vram_address01 -vera_tile_area::vera_vram_address01: scope:[vera_tile_area] from vera_tile_area::@2 - vera_tile_area::h#9 = phi( vera_tile_area::@2/vera_tile_area::h#10 ) - vera_tile_area::r#7 = phi( vera_tile_area::@2/vera_tile_area::r#8 ) - vera_tile_area::rowskip#5 = phi( vera_tile_area::@2/vera_tile_area::rowskip#6 ) - vera_tile_area::mapbase#10 = phi( vera_tile_area::@2/vera_tile_area::mapbase#4 ) - vera_tile_area::index_h#7 = phi( vera_tile_area::@2/vera_tile_area::index_h#8 ) - vera_tile_area::index_l#4 = phi( vera_tile_area::@2/vera_tile_area::index_l#5 ) - vera_tile_area::w#6 = phi( vera_tile_area::@2/vera_tile_area::w#7 ) - vera_tile_area::vera_vram_address01_incr#1 = phi( vera_tile_area::@2/vera_tile_area::vera_vram_address01_incr#0 ) - vera_tile_area::vera_vram_address01_bankaddr#1 = phi( vera_tile_area::@2/vera_tile_area::vera_vram_address01_bankaddr#0 ) - *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL - vera_tile_area::vera_vram_address01_$0 = byte0 vera_tile_area::vera_vram_address01_bankaddr#1 - *VERA_ADDRX_L = vera_tile_area::vera_vram_address01_$0 - vera_tile_area::vera_vram_address01_$1 = byte1 vera_tile_area::vera_vram_address01_bankaddr#1 - *VERA_ADDRX_M = vera_tile_area::vera_vram_address01_$1 - vera_tile_area::vera_vram_address01_$2 = byte2 vera_tile_area::vera_vram_address01_bankaddr#1 - vera_tile_area::vera_vram_address01_$3 = vera_tile_area::vera_vram_address01_$2 | vera_tile_area::vera_vram_address01_incr#1 - *VERA_ADDRX_H = vera_tile_area::vera_vram_address01_$3 - to:vera_tile_area::@6 -vera_tile_area::@6: scope:[vera_tile_area] from vera_tile_area::vera_vram_address01 - vera_tile_area::h#8 = phi( vera_tile_area::vera_vram_address01/vera_tile_area::h#9 ) - vera_tile_area::r#6 = phi( vera_tile_area::vera_vram_address01/vera_tile_area::r#7 ) - vera_tile_area::rowskip#4 = phi( vera_tile_area::vera_vram_address01/vera_tile_area::rowskip#5 ) - vera_tile_area::mapbase#9 = phi( vera_tile_area::vera_vram_address01/vera_tile_area::mapbase#10 ) - vera_tile_area::index_h#6 = phi( vera_tile_area::vera_vram_address01/vera_tile_area::index_h#7 ) - vera_tile_area::index_l#3 = phi( vera_tile_area::vera_vram_address01/vera_tile_area::index_l#4 ) - vera_tile_area::w#5 = phi( vera_tile_area::vera_vram_address01/vera_tile_area::w#6 ) - vera_tile_area::c#0 = 0 - to:vera_tile_area::@3 -vera_tile_area::@3: scope:[vera_tile_area] from vera_tile_area::@4 vera_tile_area::@6 - vera_tile_area::h#6 = phi( vera_tile_area::@4/vera_tile_area::h#7, vera_tile_area::@6/vera_tile_area::h#8 ) - vera_tile_area::r#4 = phi( vera_tile_area::@4/vera_tile_area::r#5, vera_tile_area::@6/vera_tile_area::r#6 ) - vera_tile_area::rowskip#2 = phi( vera_tile_area::@4/vera_tile_area::rowskip#3, vera_tile_area::@6/vera_tile_area::rowskip#4 ) - vera_tile_area::mapbase#7 = phi( vera_tile_area::@4/vera_tile_area::mapbase#8, vera_tile_area::@6/vera_tile_area::mapbase#9 ) - vera_tile_area::index_h#5 = phi( vera_tile_area::@4/vera_tile_area::index_h#4, vera_tile_area::@6/vera_tile_area::index_h#6 ) - vera_tile_area::index_l#2 = phi( vera_tile_area::@4/vera_tile_area::index_l#1, vera_tile_area::@6/vera_tile_area::index_l#3 ) - vera_tile_area::w#3 = phi( vera_tile_area::@4/vera_tile_area::w#4, vera_tile_area::@6/vera_tile_area::w#5 ) - vera_tile_area::c#2 = phi( vera_tile_area::@4/vera_tile_area::c#1, vera_tile_area::@6/vera_tile_area::c#0 ) - vera_tile_area::$8 = vera_tile_area::c#2 < vera_tile_area::w#3 - if(vera_tile_area::$8) goto vera_tile_area::@4 - to:vera_tile_area::@5 -vera_tile_area::@4: scope:[vera_tile_area] from vera_tile_area::@3 - vera_tile_area::h#7 = phi( vera_tile_area::@3/vera_tile_area::h#6 ) - vera_tile_area::r#5 = phi( vera_tile_area::@3/vera_tile_area::r#4 ) - vera_tile_area::rowskip#3 = phi( vera_tile_area::@3/vera_tile_area::rowskip#2 ) - vera_tile_area::mapbase#8 = phi( vera_tile_area::@3/vera_tile_area::mapbase#7 ) - vera_tile_area::w#4 = phi( vera_tile_area::@3/vera_tile_area::w#3 ) - vera_tile_area::c#3 = phi( vera_tile_area::@3/vera_tile_area::c#2 ) - vera_tile_area::index_h#4 = phi( vera_tile_area::@3/vera_tile_area::index_h#5 ) - vera_tile_area::index_l#1 = phi( vera_tile_area::@3/vera_tile_area::index_l#2 ) - *VERA_DATA0 = vera_tile_area::index_l#1 - *VERA_DATA0 = vera_tile_area::index_h#4 - vera_tile_area::c#1 = ++ vera_tile_area::c#3 - to:vera_tile_area::@3 -vera_tile_area::@5: scope:[vera_tile_area] from vera_tile_area::@3 - vera_tile_area::index_h#10 = phi( vera_tile_area::@3/vera_tile_area::index_h#5 ) - vera_tile_area::index_l#7 = phi( vera_tile_area::@3/vera_tile_area::index_l#2 ) - vera_tile_area::w#10 = phi( vera_tile_area::@3/vera_tile_area::w#3 ) - vera_tile_area::h#5 = phi( vera_tile_area::@3/vera_tile_area::h#6 ) - vera_tile_area::r#3 = phi( vera_tile_area::@3/vera_tile_area::r#4 ) - vera_tile_area::rowskip#1 = phi( vera_tile_area::@3/vera_tile_area::rowskip#2 ) - vera_tile_area::mapbase#5 = phi( vera_tile_area::@3/vera_tile_area::mapbase#7 ) - vera_tile_area::mapbase#3 = vera_tile_area::mapbase#5 + vera_tile_area::rowskip#1 - vera_tile_area::r#1 = ++ vera_tile_area::r#3 - to:vera_tile_area::@1 -vera_tile_area::@return: scope:[vera_tile_area] from vera_tile_area::@1 - return - to:@return - -void clrscr() -clrscr: scope:[clrscr] from main::@15 - CONIO_SCREEN_BANK#33 = phi( main::@15/CONIO_SCREEN_BANK#37 ) - CONIO_SCREEN_TEXT#7 = phi( main::@15/CONIO_SCREEN_TEXT#16 ) - clrscr::line_text#0 = CONIO_SCREEN_TEXT#7 - vera_layer_get_backcolor::layer#0 = conio_screen_layer - call vera_layer_get_backcolor - vera_layer_get_backcolor::return#2 = vera_layer_get_backcolor::return#1 - to:clrscr::@7 -clrscr::@7: scope:[clrscr] from clrscr - CONIO_SCREEN_BANK#27 = phi( clrscr/CONIO_SCREEN_BANK#33 ) - clrscr::line_text#8 = phi( clrscr/clrscr::line_text#0 ) - vera_layer_get_backcolor::return#4 = phi( clrscr/vera_layer_get_backcolor::return#2 ) - clrscr::$0 = vera_layer_get_backcolor::return#4 - clrscr::$1 = clrscr::$0 << 4 - vera_layer_get_textcolor::layer#0 = conio_screen_layer - call vera_layer_get_textcolor - vera_layer_get_textcolor::return#2 = vera_layer_get_textcolor::return#1 - to:clrscr::@8 -clrscr::@8: scope:[clrscr] from clrscr::@7 - CONIO_SCREEN_BANK#21 = phi( clrscr::@7/CONIO_SCREEN_BANK#27 ) - clrscr::line_text#6 = phi( clrscr::@7/clrscr::line_text#8 ) - vera_layer_get_textcolor::return#4 = phi( clrscr::@7/vera_layer_get_textcolor::return#2 ) - clrscr::$2 = vera_layer_get_textcolor::return#4 - clrscr::color#0 = clrscr::$1 | clrscr::$2 - clrscr::l#0 = 0 - to:clrscr::@1 -clrscr::@1: scope:[clrscr] from clrscr::@6 clrscr::@8 - clrscr::color#4 = phi( clrscr::@6/clrscr::color#5, clrscr::@8/clrscr::color#0 ) - CONIO_SCREEN_BANK#14 = phi( clrscr::@6/CONIO_SCREEN_BANK#20, clrscr::@8/CONIO_SCREEN_BANK#21 ) - clrscr::line_text#4 = phi( clrscr::@6/clrscr::line_text#1, clrscr::@8/clrscr::line_text#6 ) - clrscr::l#2 = phi( clrscr::@6/clrscr::l#1, clrscr::@8/clrscr::l#0 ) - clrscr::$4 = clrscr::l#2 < conio_height - if(clrscr::$4) goto clrscr::@2 - to:clrscr::@3 -clrscr::@2: scope:[clrscr] from clrscr::@1 - clrscr::l#5 = phi( clrscr::@1/clrscr::l#2 ) - clrscr::color#3 = phi( clrscr::@1/clrscr::color#4 ) - CONIO_SCREEN_BANK#7 = phi( clrscr::@1/CONIO_SCREEN_BANK#14 ) - clrscr::line_text#2 = phi( clrscr::@1/clrscr::line_text#4 ) - clrscr::ch#0 = clrscr::line_text#2 - *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL - clrscr::$5 = byte0 clrscr::ch#0 - *VERA_ADDRX_L = clrscr::$5 - clrscr::$6 = byte1 clrscr::ch#0 - *VERA_ADDRX_M = clrscr::$6 - clrscr::$7 = CONIO_SCREEN_BANK#7 | VERA_INC_1 - *VERA_ADDRX_H = clrscr::$7 - clrscr::c#0 = 0 - to:clrscr::@4 -clrscr::@3: scope:[clrscr] from clrscr::@1 - conio_cursor_x[conio_screen_layer] = 0 - conio_cursor_y[conio_screen_layer] = 0 - clrscr::$9 = conio_screen_layer * SIZEOF_UNSIGNED_INT - conio_line_text[clrscr::$9] = 0 - to:clrscr::@return -clrscr::@4: scope:[clrscr] from clrscr::@2 clrscr::@5 - CONIO_SCREEN_BANK#28 = phi( clrscr::@2/CONIO_SCREEN_BANK#7, clrscr::@5/CONIO_SCREEN_BANK#34 ) - clrscr::l#4 = phi( clrscr::@2/clrscr::l#5, clrscr::@5/clrscr::l#6 ) - clrscr::line_text#5 = phi( clrscr::@2/clrscr::line_text#2, clrscr::@5/clrscr::line_text#7 ) - clrscr::color#2 = phi( clrscr::@2/clrscr::color#3, clrscr::@5/clrscr::color#1 ) - clrscr::c#2 = phi( clrscr::@2/clrscr::c#0, clrscr::@5/clrscr::c#1 ) - clrscr::$8 = clrscr::c#2 < conio_width - if(clrscr::$8) goto clrscr::@5 - to:clrscr::@6 -clrscr::@5: scope:[clrscr] from clrscr::@4 - CONIO_SCREEN_BANK#34 = phi( clrscr::@4/CONIO_SCREEN_BANK#28 ) - clrscr::l#6 = phi( clrscr::@4/clrscr::l#4 ) - clrscr::line_text#7 = phi( clrscr::@4/clrscr::line_text#5 ) - clrscr::c#3 = phi( clrscr::@4/clrscr::c#2 ) - clrscr::color#1 = phi( clrscr::@4/clrscr::color#2 ) - *VERA_DATA0 = ' ' - *VERA_DATA0 = clrscr::color#1 - clrscr::c#1 = ++ clrscr::c#3 - to:clrscr::@4 -clrscr::@6: scope:[clrscr] from clrscr::@4 - clrscr::color#5 = phi( clrscr::@4/clrscr::color#2 ) - CONIO_SCREEN_BANK#20 = phi( clrscr::@4/CONIO_SCREEN_BANK#28 ) - clrscr::l#3 = phi( clrscr::@4/clrscr::l#4 ) - clrscr::line_text#3 = phi( clrscr::@4/clrscr::line_text#5 ) - clrscr::line_text#1 = clrscr::line_text#3 + conio_rowskip - clrscr::l#1 = ++ clrscr::l#3 - to:clrscr::@1 -clrscr::@return: scope:[clrscr] from clrscr::@3 - return - to:@return - -void gotoxy(char x , char y) -gotoxy: scope:[gotoxy] from conio_x16_init::@1 cscroll::@5 main::@16 - gotoxy::x#6 = phi( conio_x16_init::@1/gotoxy::x#1, cscroll::@5/gotoxy::x#2, main::@16/gotoxy::x#3 ) - gotoxy::y#4 = phi( conio_x16_init::@1/gotoxy::y#1, cscroll::@5/gotoxy::y#2, main::@16/gotoxy::y#3 ) - gotoxy::$0 = gotoxy::y#4 > conio_screen_height - gotoxy::$1 = ! gotoxy::$0 - if(gotoxy::$1) goto gotoxy::@1 - to:gotoxy::@3 -gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 - gotoxy::y#6 = phi( gotoxy/gotoxy::y#4, gotoxy::@3/gotoxy::y#0 ) - gotoxy::x#4 = phi( gotoxy/gotoxy::x#6, gotoxy::@3/gotoxy::x#7 ) - gotoxy::$2 = gotoxy::x#4 >= conio_screen_width - gotoxy::$3 = ! gotoxy::$2 - if(gotoxy::$3) goto gotoxy::@2 - to:gotoxy::@4 -gotoxy::@3: scope:[gotoxy] from gotoxy - gotoxy::x#7 = phi( gotoxy/gotoxy::x#6 ) - gotoxy::y#0 = 0 - to:gotoxy::@1 -gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@4 - gotoxy::y#5 = phi( gotoxy::@1/gotoxy::y#6, gotoxy::@4/gotoxy::y#7 ) - gotoxy::x#5 = phi( gotoxy::@1/gotoxy::x#4, gotoxy::@4/gotoxy::x#0 ) - conio_cursor_x[conio_screen_layer] = gotoxy::x#5 - conio_cursor_y[conio_screen_layer] = gotoxy::y#5 - gotoxy::$6 = (unsigned int)gotoxy::y#5 - gotoxy::line_offset#0 = gotoxy::$6 << conio_rowshift - gotoxy::$5 = conio_screen_layer * SIZEOF_UNSIGNED_INT - conio_line_text[gotoxy::$5] = gotoxy::line_offset#0 - to:gotoxy::@return -gotoxy::@4: scope:[gotoxy] from gotoxy::@1 - gotoxy::y#7 = phi( gotoxy::@1/gotoxy::y#6 ) - gotoxy::x#0 = 0 - to:gotoxy::@2 -gotoxy::@return: scope:[gotoxy] from gotoxy::@2 - return - to:@return - -void screensize(char *x , char *y) -screensize: scope:[screensize] from conio_x16_init::@3 - screensize::y#1 = phi( conio_x16_init::@3/screensize::y#0 ) - screensize::x#1 = phi( conio_x16_init::@3/screensize::x#0 ) - screensize::hscale#0 = *VERA_DC_HSCALE >> 7 - screensize::$1 = $28 << screensize::hscale#0 - *screensize::x#1 = screensize::$1 - screensize::vscale#0 = *VERA_DC_VSCALE >> 7 - screensize::$3 = $1e << screensize::vscale#0 - *screensize::y#1 = screensize::$3 - to:screensize::@return -screensize::@return: scope:[screensize] from screensize - return - to:@return - -__stackcall void cputc(char c) -cputc: scope:[cputc] from - CONIO_SCREEN_BANK#22 = phi( ) - CONIO_SCREEN_TEXT#17 = phi( ) - cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C) - vera_layer_get_color::layer#0 = conio_screen_layer - call vera_layer_get_color - vera_layer_get_color::return#3 = vera_layer_get_color::return#2 - to:cputc::@7 -cputc::@7: scope:[cputc] from cputc - CONIO_SCREEN_BANK#15 = phi( cputc/CONIO_SCREEN_BANK#22 ) - cputc::c#1 = phi( cputc/cputc::c#0 ) - CONIO_SCREEN_TEXT#8 = phi( cputc/CONIO_SCREEN_TEXT#17 ) - vera_layer_get_color::return#6 = phi( cputc/vera_layer_get_color::return#3 ) - cputc::color#0 = vera_layer_get_color::return#6 - cputc::$15 = conio_screen_layer * SIZEOF_UNSIGNED_INT - cputc::conio_addr#0 = CONIO_SCREEN_TEXT#8 + conio_line_text[cputc::$15] - cputc::$2 = conio_cursor_x[conio_screen_layer] << 1 - cputc::conio_addr#1 = cputc::conio_addr#0 + cputc::$2 - cputc::$3 = cputc::c#1 == ' -' - if(cputc::$3) goto cputc::@1 - to:cputc::@2 -cputc::@1: scope:[cputc] from cputc::@7 - CONIO_SCREEN_TEXT#49 = phi( cputc::@7/CONIO_SCREEN_TEXT#8 ) - call cputln - to:cputc::@8 -cputc::@8: scope:[cputc] from cputc::@1 - to:cputc::@return -cputc::@2: scope:[cputc] from cputc::@7 - CONIO_SCREEN_TEXT#57 = phi( cputc::@7/CONIO_SCREEN_TEXT#8 ) - cputc::color#1 = phi( cputc::@7/cputc::color#0 ) - cputc::c#2 = phi( cputc::@7/cputc::c#1 ) - CONIO_SCREEN_BANK#8 = phi( cputc::@7/CONIO_SCREEN_BANK#15 ) - cputc::conio_addr#2 = phi( cputc::@7/cputc::conio_addr#1 ) - *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL - cputc::$4 = byte0 cputc::conio_addr#2 - *VERA_ADDRX_L = cputc::$4 - cputc::$5 = byte1 cputc::conio_addr#2 - *VERA_ADDRX_M = cputc::$5 - cputc::$6 = CONIO_SCREEN_BANK#8 | VERA_INC_1 - *VERA_ADDRX_H = cputc::$6 - *VERA_DATA0 = cputc::c#2 - *VERA_DATA0 = cputc::color#1 - conio_cursor_x[conio_screen_layer] = ++ conio_cursor_x[conio_screen_layer] - cputc::scroll_enable#0 = conio_scroll_enable[conio_screen_layer] - cputc::$17 = 0 != cputc::scroll_enable#0 - if(cputc::$17) goto cputc::@5 - to:cputc::@3 -cputc::@5: scope:[cputc] from cputc::@2 - CONIO_SCREEN_TEXT#55 = phi( cputc::@2/CONIO_SCREEN_TEXT#57 ) - cputc::$11 = conio_cursor_x[conio_screen_layer] == conio_screen_width - cputc::$12 = ! cputc::$11 - if(cputc::$12) goto cputc::@return - to:cputc::@6 -cputc::@3: scope:[cputc] from cputc::@2 - CONIO_SCREEN_TEXT#54 = phi( cputc::@2/CONIO_SCREEN_TEXT#57 ) - cputc::$16 = (unsigned int)conio_cursor_x[conio_screen_layer] - cputc::$8 = cputc::$16 == conio_width - cputc::$9 = ! cputc::$8 - if(cputc::$9) goto cputc::@return - to:cputc::@4 -cputc::@4: scope:[cputc] from cputc::@3 - CONIO_SCREEN_TEXT#50 = phi( cputc::@3/CONIO_SCREEN_TEXT#54 ) - call cputln - to:cputc::@9 -cputc::@9: scope:[cputc] from cputc::@4 - to:cputc::@return -cputc::@6: scope:[cputc] from cputc::@5 - CONIO_SCREEN_TEXT#51 = phi( cputc::@5/CONIO_SCREEN_TEXT#55 ) - call cputln - to:cputc::@10 -cputc::@10: scope:[cputc] from cputc::@6 - to:cputc::@return -cputc::@return: scope:[cputc] from cputc::@10 cputc::@3 cputc::@5 cputc::@8 cputc::@9 - return - to:@return - -void cputln() -cputln: scope:[cputln] from cputc::@1 cputc::@4 cputc::@6 - CONIO_SCREEN_TEXT#46 = phi( cputc::@1/CONIO_SCREEN_TEXT#49, cputc::@4/CONIO_SCREEN_TEXT#50, cputc::@6/CONIO_SCREEN_TEXT#51 ) - cputln::$2 = conio_screen_layer * SIZEOF_UNSIGNED_INT - cputln::temp#0 = conio_line_text[cputln::$2] - cputln::temp#1 = cputln::temp#0 + conio_rowskip - cputln::$3 = conio_screen_layer * SIZEOF_UNSIGNED_INT - conio_line_text[cputln::$3] = cputln::temp#1 - conio_cursor_x[conio_screen_layer] = 0 - conio_cursor_y[conio_screen_layer] = ++ conio_cursor_y[conio_screen_layer] - call cscroll - to:cputln::@1 -cputln::@1: scope:[cputln] from cputln - to:cputln::@return -cputln::@return: scope:[cputln] from cputln::@1 - return - to:@return - -char kbhit() -kbhit: scope:[kbhit] from main::@13 - kbhit::ch = 0 - kickasm( uses kbhit::chptr uses kbhit::IN_DEV uses kbhit::GETIN) {{ jsr _kbhit - bne L3 - - jmp continue1 - - .var via1 = $9f60 //VIA#1 - .var d1pra = via1+1 - - _kbhit: - ldy d1pra // The count of keys pressed is stored in RAM bank 0. - stz d1pra // Set d1pra to zero to access RAM bank 0. - lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). - sty d1pra // Set d1pra to previous value. - rts - - L3: - ldy IN_DEV // Save current input device - stz IN_DEV // Keyboard - phy - jsr GETIN // Read char, and return in .A - ply - sta chptr // Store the character read in ch - sty IN_DEV // Restore input device - ldx #>$0000 - rts - - continue1: - nop - }} - kbhit::return#0 = kbhit::ch - to:kbhit::@return -kbhit::@return: scope:[kbhit] from kbhit - kbhit::return#3 = phi( kbhit/kbhit::return#0 ) - kbhit::return#1 = kbhit::return#3 - return - to:@return - -void conio_x16_init() -conio_x16_init: scope:[conio_x16_init] from __start::__init1 - CONIO_SCREEN_TEXT#31 = phi( __start::__init1/CONIO_SCREEN_TEXT#4 ) - CONIO_SCREEN_BANK#29 = phi( __start::__init1/CONIO_SCREEN_BANK#4 ) - conio_x16_init::line#0 = *conio_x16_init::BASIC_CURSOR_LINE - vera_layer_mode_text::layer#0 = 1 - vera_layer_mode_text::mapbase_address#0 = (unsigned long)0 - vera_layer_mode_text::tilebase_address#0 = (unsigned long)$f800 - vera_layer_mode_text::mapwidth#0 = $80 - vera_layer_mode_text::mapheight#0 = $40 - vera_layer_mode_text::tilewidth#0 = 8 - vera_layer_mode_text::tileheight#0 = 8 - vera_layer_mode_text::color_mode#0 = $10 - call vera_layer_mode_text - to:conio_x16_init::@3 -conio_x16_init::@3: scope:[conio_x16_init] from conio_x16_init - conio_x16_init::line#9 = phi( conio_x16_init/conio_x16_init::line#0 ) - CONIO_SCREEN_TEXT#24 = phi( conio_x16_init/CONIO_SCREEN_TEXT#31 ) - CONIO_SCREEN_BANK#23 = phi( conio_x16_init/CONIO_SCREEN_BANK#29 ) - screensize::x#0 = &conio_screen_width - screensize::y#0 = &conio_screen_height - call screensize - to:conio_x16_init::@4 -conio_x16_init::@4: scope:[conio_x16_init] from conio_x16_init::@3 - conio_x16_init::line#8 = phi( conio_x16_init::@3/conio_x16_init::line#9 ) - CONIO_SCREEN_TEXT#18 = phi( conio_x16_init::@3/CONIO_SCREEN_TEXT#24 ) - CONIO_SCREEN_BANK#16 = phi( conio_x16_init::@3/CONIO_SCREEN_BANK#23 ) - screenlayer::layer#0 = 1 - call screenlayer - to:conio_x16_init::@5 -conio_x16_init::@5: scope:[conio_x16_init] from conio_x16_init::@4 - conio_x16_init::line#7 = phi( conio_x16_init::@4/conio_x16_init::line#8 ) - CONIO_SCREEN_TEXT#9 = phi( conio_x16_init::@4/CONIO_SCREEN_TEXT#3 ) - CONIO_SCREEN_BANK#9 = phi( conio_x16_init::@4/CONIO_SCREEN_BANK#3 ) - CONIO_SCREEN_BANK#0 = CONIO_SCREEN_BANK#9 - CONIO_SCREEN_TEXT#0 = CONIO_SCREEN_TEXT#9 - vera_layer_set_textcolor::layer#0 = 1 - vera_layer_set_textcolor::color#0 = WHITE - call vera_layer_set_textcolor - vera_layer_set_textcolor::return#2 = vera_layer_set_textcolor::return#1 - to:conio_x16_init::@6 -conio_x16_init::@6: scope:[conio_x16_init] from conio_x16_init::@5 - CONIO_SCREEN_TEXT#45 = phi( conio_x16_init::@5/CONIO_SCREEN_TEXT#0 ) - CONIO_SCREEN_BANK#40 = phi( conio_x16_init::@5/CONIO_SCREEN_BANK#0 ) - conio_x16_init::line#6 = phi( conio_x16_init::@5/conio_x16_init::line#7 ) - vera_layer_set_backcolor::layer#0 = 1 - vera_layer_set_backcolor::color#0 = BLUE - call vera_layer_set_backcolor - vera_layer_set_backcolor::return#2 = vera_layer_set_backcolor::return#1 - to:conio_x16_init::@7 -conio_x16_init::@7: scope:[conio_x16_init] from conio_x16_init::@6 - CONIO_SCREEN_TEXT#41 = phi( conio_x16_init::@6/CONIO_SCREEN_TEXT#45 ) - CONIO_SCREEN_BANK#38 = phi( conio_x16_init::@6/CONIO_SCREEN_BANK#40 ) - conio_x16_init::line#5 = phi( conio_x16_init::@6/conio_x16_init::line#6 ) - vera_layer_set_mapbase::layer#1 = 0 - vera_layer_set_mapbase::mapbase#1 = $20 - call vera_layer_set_mapbase - to:conio_x16_init::@8 -conio_x16_init::@8: scope:[conio_x16_init] from conio_x16_init::@7 - CONIO_SCREEN_TEXT#37 = phi( conio_x16_init::@7/CONIO_SCREEN_TEXT#41 ) - CONIO_SCREEN_BANK#35 = phi( conio_x16_init::@7/CONIO_SCREEN_BANK#38 ) - conio_x16_init::line#4 = phi( conio_x16_init::@7/conio_x16_init::line#5 ) - vera_layer_set_mapbase::layer#2 = 1 - vera_layer_set_mapbase::mapbase#2 = 0 - call vera_layer_set_mapbase - to:conio_x16_init::@9 -conio_x16_init::@9: scope:[conio_x16_init] from conio_x16_init::@8 - CONIO_SCREEN_TEXT#33 = phi( conio_x16_init::@8/CONIO_SCREEN_TEXT#37 ) - CONIO_SCREEN_BANK#31 = phi( conio_x16_init::@8/CONIO_SCREEN_BANK#35 ) - conio_x16_init::line#2 = phi( conio_x16_init::@8/conio_x16_init::line#4 ) - conio_x16_init::$7 = conio_x16_init::line#2 >= conio_screen_height - conio_x16_init::$8 = ! conio_x16_init::$7 - if(conio_x16_init::$8) goto conio_x16_init::@1 - to:conio_x16_init::@2 -conio_x16_init::@1: scope:[conio_x16_init] from conio_x16_init::@2 conio_x16_init::@9 - CONIO_SCREEN_TEXT#25 = phi( conio_x16_init::@2/CONIO_SCREEN_TEXT#32, conio_x16_init::@9/CONIO_SCREEN_TEXT#33 ) - CONIO_SCREEN_BANK#24 = phi( conio_x16_init::@2/CONIO_SCREEN_BANK#30, conio_x16_init::@9/CONIO_SCREEN_BANK#31 ) - conio_x16_init::line#3 = phi( conio_x16_init::@2/conio_x16_init::line#1, conio_x16_init::@9/conio_x16_init::line#2 ) - gotoxy::x#1 = 0 - gotoxy::y#1 = conio_x16_init::line#3 - call gotoxy - to:conio_x16_init::@10 -conio_x16_init::@10: scope:[conio_x16_init] from conio_x16_init::@1 - CONIO_SCREEN_TEXT#19 = phi( conio_x16_init::@1/CONIO_SCREEN_TEXT#25 ) - CONIO_SCREEN_BANK#17 = phi( conio_x16_init::@1/CONIO_SCREEN_BANK#24 ) - to:conio_x16_init::@return -conio_x16_init::@2: scope:[conio_x16_init] from conio_x16_init::@9 - CONIO_SCREEN_TEXT#32 = phi( conio_x16_init::@9/CONIO_SCREEN_TEXT#33 ) - CONIO_SCREEN_BANK#30 = phi( conio_x16_init::@9/CONIO_SCREEN_BANK#31 ) - conio_x16_init::$9 = conio_screen_height - 1 - conio_x16_init::line#1 = conio_x16_init::$9 - to:conio_x16_init::@1 -conio_x16_init::@return: scope:[conio_x16_init] from conio_x16_init::@10 - CONIO_SCREEN_TEXT#10 = phi( conio_x16_init::@10/CONIO_SCREEN_TEXT#19 ) - CONIO_SCREEN_BANK#10 = phi( conio_x16_init::@10/CONIO_SCREEN_BANK#17 ) - CONIO_SCREEN_BANK#1 = CONIO_SCREEN_BANK#10 - CONIO_SCREEN_TEXT#1 = CONIO_SCREEN_TEXT#10 - return - to:@return - -void clearline() -clearline: scope:[clearline] from insertup::@3 - CONIO_SCREEN_TEXT#11 = phi( insertup::@3/CONIO_SCREEN_TEXT#20 ) - *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL - clearline::$5 = conio_screen_layer * SIZEOF_UNSIGNED_INT - clearline::addr#0 = CONIO_SCREEN_TEXT#11 + conio_line_text[clearline::$5] - clearline::$1 = byte0 clearline::addr#0 - *VERA_ADDRX_L = clearline::$1 - clearline::$2 = byte1 clearline::addr#0 - *VERA_ADDRX_M = clearline::$2 - *VERA_ADDRX_H = VERA_INC_1 - vera_layer_get_color::layer#1 = conio_screen_layer - call vera_layer_get_color - vera_layer_get_color::return#4 = vera_layer_get_color::return#2 - to:clearline::@4 -clearline::@4: scope:[clearline] from clearline - vera_layer_get_color::return#7 = phi( clearline/vera_layer_get_color::return#4 ) - clearline::color#0 = vera_layer_get_color::return#7 - clearline::c#0 = 0 - to:clearline::@1 -clearline::@1: scope:[clearline] from clearline::@2 clearline::@4 - clearline::color#2 = phi( clearline::@2/clearline::color#1, clearline::@4/clearline::color#0 ) - clearline::c#2 = phi( clearline::@2/clearline::c#1, clearline::@4/clearline::c#0 ) - clearline::$4 = clearline::c#2 < conio_screen_width - if(clearline::$4) goto clearline::@2 - to:clearline::@3 -clearline::@2: scope:[clearline] from clearline::@1 - clearline::c#3 = phi( clearline::@1/clearline::c#2 ) - clearline::color#1 = phi( clearline::@1/clearline::color#2 ) - *VERA_DATA0 = ' ' - *VERA_DATA0 = clearline::color#1 - clearline::c#1 = ++ clearline::c#3 - to:clearline::@1 -clearline::@3: scope:[clearline] from clearline::@1 - conio_cursor_x[conio_screen_layer] = 0 - to:clearline::@return -clearline::@return: scope:[clearline] from clearline::@3 - return - to:@return - -void insertup() -insertup: scope:[insertup] from cscroll::@4 - CONIO_SCREEN_TEXT#26 = phi( cscroll::@4/CONIO_SCREEN_TEXT#34 ) - insertup::cy#0 = conio_cursor_y[conio_screen_layer] - insertup::width#0 = conio_screen_width * 2 - insertup::i#0 = 1 - to:insertup::@1 -insertup::@1: scope:[insertup] from insertup insertup::@4 - insertup::width#2 = phi( insertup/insertup::width#0, insertup::@4/insertup::width#3 ) - CONIO_SCREEN_TEXT#21 = phi( insertup/CONIO_SCREEN_TEXT#26, insertup::@4/CONIO_SCREEN_TEXT#27 ) - insertup::cy#1 = phi( insertup/insertup::cy#0, insertup::@4/insertup::cy#2 ) - insertup::i#2 = phi( insertup/insertup::i#0, insertup::@4/insertup::i#1 ) - insertup::$2 = insertup::i#2 <= insertup::cy#1 - if(insertup::$2) goto insertup::@2 - to:insertup::@3 -insertup::@2: scope:[insertup] from insertup::@1 - insertup::cy#3 = phi( insertup::@1/insertup::cy#1 ) - insertup::width#1 = phi( insertup::@1/insertup::width#2 ) - CONIO_SCREEN_TEXT#12 = phi( insertup::@1/CONIO_SCREEN_TEXT#21 ) - insertup::i#3 = phi( insertup::@1/insertup::i#2 ) - insertup::$3 = insertup::i#3 - 1 - insertup::line#0 = insertup::$3 << conio_rowshift - insertup::start#0 = CONIO_SCREEN_TEXT#12 + insertup::line#0 - insertup::$6 = insertup::start#0 + conio_rowskip - memcpy_in_vram::dest_bank#0 = 0 - memcpy_in_vram::dest#0 = (void *)insertup::start#0 - memcpy_in_vram::dest_increment#0 = VERA_INC_1 - memcpy_in_vram::src_bank#0 = 0 - memcpy_in_vram::src#0 = (void *)insertup::$6 - memcpy_in_vram::src_increment#0 = VERA_INC_1 - memcpy_in_vram::num#0 = insertup::width#1 - call memcpy_in_vram - to:insertup::@4 -insertup::@4: scope:[insertup] from insertup::@2 - insertup::width#3 = phi( insertup::@2/insertup::width#1 ) - CONIO_SCREEN_TEXT#27 = phi( insertup::@2/CONIO_SCREEN_TEXT#12 ) - insertup::cy#2 = phi( insertup::@2/insertup::cy#3 ) - insertup::i#4 = phi( insertup::@2/insertup::i#3 ) - insertup::i#1 = ++ insertup::i#4 - to:insertup::@1 -insertup::@3: scope:[insertup] from insertup::@1 - CONIO_SCREEN_TEXT#20 = phi( insertup::@1/CONIO_SCREEN_TEXT#21 ) - call clearline - to:insertup::@5 -insertup::@5: scope:[insertup] from insertup::@3 - to:insertup::@return -insertup::@return: scope:[insertup] from insertup::@5 - return - to:@return - -void cscroll() -cscroll: scope:[cscroll] from cputln - CONIO_SCREEN_TEXT#42 = phi( cputln/CONIO_SCREEN_TEXT#46 ) - cscroll::$0 = conio_cursor_y[conio_screen_layer] >= conio_screen_height - cscroll::$1 = ! cscroll::$0 - if(cscroll::$1) goto cscroll::@return - to:cscroll::@1 -cscroll::@1: scope:[cscroll] from cscroll - CONIO_SCREEN_TEXT#38 = phi( cscroll/CONIO_SCREEN_TEXT#42 ) - cscroll::$7 = 0 != conio_scroll_enable[conio_screen_layer] - if(cscroll::$7) goto cscroll::@4 - to:cscroll::@2 -cscroll::@4: scope:[cscroll] from cscroll::@1 - CONIO_SCREEN_TEXT#34 = phi( cscroll::@1/CONIO_SCREEN_TEXT#38 ) - call insertup - to:cscroll::@5 -cscroll::@5: scope:[cscroll] from cscroll::@4 - cscroll::$5 = conio_screen_height - 1 - gotoxy::x#2 = 0 - gotoxy::y#2 = cscroll::$5 - call gotoxy - to:cscroll::@6 -cscroll::@6: scope:[cscroll] from cscroll::@5 - to:cscroll::@return -cscroll::@2: scope:[cscroll] from cscroll::@1 - cscroll::$2 = conio_cursor_y[conio_screen_layer] >= conio_height - cscroll::$3 = ! cscroll::$2 - if(cscroll::$3) goto cscroll::@return - to:cscroll::@3 -cscroll::@3: scope:[cscroll] from cscroll::@2 - to:cscroll::@return -cscroll::@return: scope:[cscroll] from cscroll cscroll::@2 cscroll::@3 cscroll::@6 - return - to:@return - -void screenlayer(char layer) -screenlayer: scope:[screenlayer] from conio_x16_init::@4 - screenlayer::layer#1 = phi( conio_x16_init::@4/screenlayer::layer#0 ) - conio_screen_layer = screenlayer::layer#1 - vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer - call vera_layer_get_mapbase_bank - vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#1 - to:screenlayer::@3 -screenlayer::@3: scope:[screenlayer] from screenlayer - vera_layer_get_mapbase_bank::return#4 = phi( screenlayer/vera_layer_get_mapbase_bank::return#2 ) - screenlayer::$0 = vera_layer_get_mapbase_bank::return#4 - CONIO_SCREEN_BANK#2 = screenlayer::$0 - vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer - call vera_layer_get_mapbase_offset - vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#1 - to:screenlayer::@4 -screenlayer::@4: scope:[screenlayer] from screenlayer::@3 - CONIO_SCREEN_BANK#47 = 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 = (char *)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 - CONIO_SCREEN_TEXT#56 = phi( screenlayer::@4/CONIO_SCREEN_TEXT#2 ) - CONIO_SCREEN_BANK#45 = phi( screenlayer::@4/CONIO_SCREEN_BANK#47 ) - screenlayer::vera_layer_get_width1_layer#1 = phi( screenlayer::@4/screenlayer::vera_layer_get_width1_layer#0 ) - screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#1 * SIZEOF_POINTER - screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] - screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK - screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 - screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 * SIZEOF_UNSIGNED_INT - screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] - to:screenlayer::vera_layer_get_width1_@return -screenlayer::vera_layer_get_width1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_width1 - CONIO_SCREEN_TEXT#52 = phi( screenlayer::vera_layer_get_width1/CONIO_SCREEN_TEXT#56 ) - CONIO_SCREEN_BANK#43 = phi( screenlayer::vera_layer_get_width1/CONIO_SCREEN_BANK#45 ) - screenlayer::vera_layer_get_width1_return#2 = phi( screenlayer::vera_layer_get_width1/screenlayer::vera_layer_get_width1_return#0 ) - screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#2 - to:screenlayer::@1 -screenlayer::@1: scope:[screenlayer] from screenlayer::vera_layer_get_width1_@return - CONIO_SCREEN_TEXT#47 = phi( screenlayer::vera_layer_get_width1_@return/CONIO_SCREEN_TEXT#52 ) - CONIO_SCREEN_BANK#41 = phi( screenlayer::vera_layer_get_width1_@return/CONIO_SCREEN_BANK#43 ) - screenlayer::vera_layer_get_width1_return#3 = phi( screenlayer::vera_layer_get_width1_@return/screenlayer::vera_layer_get_width1_return#1 ) - screenlayer::$2 = screenlayer::vera_layer_get_width1_return#3 - conio_width = screenlayer::$2 - vera_layer_get_rowshift::layer#0 = conio_screen_layer - call vera_layer_get_rowshift - vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#1 - to:screenlayer::@5 -screenlayer::@5: scope:[screenlayer] from screenlayer::@1 - CONIO_SCREEN_TEXT#43 = phi( screenlayer::@1/CONIO_SCREEN_TEXT#47 ) - CONIO_SCREEN_BANK#39 = phi( screenlayer::@1/CONIO_SCREEN_BANK#41 ) - vera_layer_get_rowshift::return#4 = phi( screenlayer::@1/vera_layer_get_rowshift::return#2 ) - screenlayer::$3 = vera_layer_get_rowshift::return#4 - conio_rowshift = screenlayer::$3 - vera_layer_get_rowskip::layer#0 = conio_screen_layer - call vera_layer_get_rowskip - vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#1 - to:screenlayer::@6 -screenlayer::@6: scope:[screenlayer] from screenlayer::@5 - CONIO_SCREEN_TEXT#39 = phi( screenlayer::@5/CONIO_SCREEN_TEXT#43 ) - CONIO_SCREEN_BANK#36 = phi( screenlayer::@5/CONIO_SCREEN_BANK#39 ) - vera_layer_get_rowskip::return#4 = phi( screenlayer::@5/vera_layer_get_rowskip::return#2 ) - screenlayer::$4 = vera_layer_get_rowskip::return#4 - conio_rowskip = screenlayer::$4 - screenlayer::vera_layer_get_height1_layer#0 = conio_screen_layer - to:screenlayer::vera_layer_get_height1 -screenlayer::vera_layer_get_height1: scope:[screenlayer] from screenlayer::@6 - CONIO_SCREEN_TEXT#35 = phi( screenlayer::@6/CONIO_SCREEN_TEXT#39 ) - CONIO_SCREEN_BANK#32 = phi( screenlayer::@6/CONIO_SCREEN_BANK#36 ) - screenlayer::vera_layer_get_height1_layer#1 = phi( screenlayer::@6/screenlayer::vera_layer_get_height1_layer#0 ) - screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#1 * SIZEOF_POINTER - screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] - screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK - screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 - screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 * SIZEOF_UNSIGNED_INT - screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] - to:screenlayer::vera_layer_get_height1_@return -screenlayer::vera_layer_get_height1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_height1 - CONIO_SCREEN_TEXT#28 = phi( screenlayer::vera_layer_get_height1/CONIO_SCREEN_TEXT#35 ) - CONIO_SCREEN_BANK#25 = phi( screenlayer::vera_layer_get_height1/CONIO_SCREEN_BANK#32 ) - screenlayer::vera_layer_get_height1_return#2 = phi( screenlayer::vera_layer_get_height1/screenlayer::vera_layer_get_height1_return#0 ) - screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#2 - to:screenlayer::@2 -screenlayer::@2: scope:[screenlayer] from screenlayer::vera_layer_get_height1_@return - CONIO_SCREEN_TEXT#22 = phi( screenlayer::vera_layer_get_height1_@return/CONIO_SCREEN_TEXT#28 ) - CONIO_SCREEN_BANK#18 = phi( screenlayer::vera_layer_get_height1_@return/CONIO_SCREEN_BANK#25 ) - screenlayer::vera_layer_get_height1_return#3 = phi( screenlayer::vera_layer_get_height1_@return/screenlayer::vera_layer_get_height1_return#1 ) - screenlayer::$5 = screenlayer::vera_layer_get_height1_return#3 - conio_height = screenlayer::$5 - to:screenlayer::@return -screenlayer::@return: scope:[screenlayer] from screenlayer::@2 - CONIO_SCREEN_TEXT#13 = phi( screenlayer::@2/CONIO_SCREEN_TEXT#22 ) - CONIO_SCREEN_BANK#11 = phi( screenlayer::@2/CONIO_SCREEN_BANK#18 ) - CONIO_SCREEN_BANK#3 = CONIO_SCREEN_BANK#11 - CONIO_SCREEN_TEXT#3 = CONIO_SCREEN_TEXT#13 - return - to:@return - -void printf_str(void (*putc)(char) , const char *s) -printf_str: scope:[printf_str] from main::@26 main::@27 main::@28 main::@29 main::@30 main::@31 main::@32 main::@33 - printf_str::putc#10 = phi( main::@26/printf_str::putc#0, main::@27/printf_str::putc#1, main::@28/printf_str::putc#2, main::@29/printf_str::putc#3, main::@30/printf_str::putc#4, main::@31/printf_str::putc#5, main::@32/printf_str::putc#6, main::@33/printf_str::putc#7 ) - printf_str::s#10 = phi( main::@26/printf_str::s#1, main::@27/printf_str::s#2, main::@28/printf_str::s#3, main::@29/printf_str::s#4, main::@30/printf_str::s#5, main::@31/printf_str::s#6, main::@32/printf_str::s#7, main::@33/printf_str::s#8 ) - printf_str::c#0 = 0 - to:printf_str::@1 -printf_str::@1: scope:[printf_str] from printf_str printf_str::@2 - printf_str::putc#9 = phi( printf_str/printf_str::putc#10, printf_str::@2/printf_str::putc#8 ) - printf_str::s#9 = phi( printf_str/printf_str::s#10, printf_str::@2/printf_str::s#11 ) - printf_str::c#1 = *printf_str::s#9 - printf_str::$0 = printf_str::c#1 - printf_str::s#0 = ++ printf_str::s#9 - printf_str::$2 = 0 != printf_str::$0 - if(printf_str::$2) goto printf_str::@2 - to:printf_str::@return -printf_str::@2: scope:[printf_str] from printf_str::@1 - printf_str::s#11 = phi( printf_str::@1/printf_str::s#0 ) - printf_str::putc#8 = phi( printf_str::@1/printf_str::putc#9 ) - printf_str::c#2 = phi( printf_str::@1/printf_str::c#1 ) - stackpush(char) = printf_str::c#2 - callexecute *printf_str::putc#8 - sideeffect stackpullpadding(1) - to:printf_str::@1 -printf_str::@return: scope:[printf_str] from printf_str::@1 - return - to:@return - -void main() -main: scope:[main] from __start::@1 - CONIO_SCREEN_BANK#50 = phi( __start::@1/CONIO_SCREEN_BANK#26 ) - CONIO_SCREEN_TEXT#53 = phi( __start::@1/CONIO_SCREEN_TEXT#30 ) - main::textcolor1_color#0 = WHITE - to:main::textcolor1 -main::textcolor1: scope:[main] from main - CONIO_SCREEN_BANK#49 = phi( main/CONIO_SCREEN_BANK#50 ) - CONIO_SCREEN_TEXT#48 = phi( main/CONIO_SCREEN_TEXT#53 ) - main::textcolor1_color#1 = phi( main/main::textcolor1_color#0 ) - vera_layer_set_textcolor::layer#1 = conio_screen_layer - vera_layer_set_textcolor::color#1 = main::textcolor1_color#1 - call vera_layer_set_textcolor - vera_layer_set_textcolor::return#3 = vera_layer_set_textcolor::return#1 - to:main::@17 -main::@17: scope:[main] from main::textcolor1 - CONIO_SCREEN_BANK#48 = phi( main::textcolor1/CONIO_SCREEN_BANK#49 ) - CONIO_SCREEN_TEXT#44 = phi( main::textcolor1/CONIO_SCREEN_TEXT#48 ) - to:main::@14 -main::@14: scope:[main] from main::@17 - CONIO_SCREEN_BANK#46 = phi( main::@17/CONIO_SCREEN_BANK#48 ) - CONIO_SCREEN_TEXT#40 = phi( main::@17/CONIO_SCREEN_TEXT#44 ) - main::bgcolor1_color#0 = BLACK - to:main::bgcolor1 -main::bgcolor1: scope:[main] from main::@14 - CONIO_SCREEN_BANK#44 = phi( main::@14/CONIO_SCREEN_BANK#46 ) - CONIO_SCREEN_TEXT#36 = phi( main::@14/CONIO_SCREEN_TEXT#40 ) - main::bgcolor1_color#1 = phi( main::@14/main::bgcolor1_color#0 ) - vera_layer_set_backcolor::layer#1 = conio_screen_layer - vera_layer_set_backcolor::color#1 = main::bgcolor1_color#1 - call vera_layer_set_backcolor - vera_layer_set_backcolor::return#3 = vera_layer_set_backcolor::return#1 - to:main::@18 -main::@18: scope:[main] from main::bgcolor1 - CONIO_SCREEN_BANK#42 = phi( main::bgcolor1/CONIO_SCREEN_BANK#44 ) - CONIO_SCREEN_TEXT#29 = phi( main::bgcolor1/CONIO_SCREEN_TEXT#36 ) - to:main::@15 -main::@15: scope:[main] from main::@18 - CONIO_SCREEN_BANK#37 = phi( main::@18/CONIO_SCREEN_BANK#42 ) - CONIO_SCREEN_TEXT#16 = phi( main::@18/CONIO_SCREEN_TEXT#29 ) - call clrscr - to:main::@19 -main::@19: scope:[main] from main::@15 - vera_layer_mode_tile::layer#1 = 0 - vera_layer_mode_tile::mapbase_address#2 = $4000 - vera_layer_mode_tile::tilebase_address#2 = $14000 - vera_layer_mode_tile::mapwidth#1 = $80 - vera_layer_mode_tile::mapheight#1 = $80 - vera_layer_mode_tile::tilewidth#1 = 8 - vera_layer_mode_tile::tileheight#1 = 8 - vera_layer_mode_tile::color_depth#1 = 8 - call vera_layer_mode_tile - to:main::@20 -main::@20: scope:[main] from main::@19 - main::tilebase#0 = (char *)$4000 - memcpy_to_vram::vbank#0 = 1 - memcpy_to_vram::vdest#0 = (void *)main::tilebase#0 - memcpy_to_vram::src#0 = (void *)main::tiles - memcpy_to_vram::num#0 = $40 - call memcpy_to_vram - to:main::@21 -main::@21: scope:[main] from main::@20 - main::tilebase#3 = phi( main::@20/main::tilebase#0 ) - main::tilebase#1 = main::tilebase#3 + $40 - main::t#0 = 1 - to:main::@1 -main::@1: scope:[main] from main::@21 main::@22 - main::t#5 = phi( main::@21/main::t#0, main::@22/main::t#1 ) - main::tilebase#7 = phi( main::@21/main::tilebase#1, main::@22/main::tilebase#2 ) - main::p#0 = 0 - to:main::@2 -main::@2: scope:[main] from main::@1 main::@2 - main::t#4 = phi( main::@1/main::t#5, main::@2/main::t#4 ) - main::tilebase#6 = phi( main::@1/main::tilebase#7, main::@2/main::tilebase#6 ) - main::p#2 = phi( main::@1/main::p#0, main::@2/main::p#1 ) - main::tiles[main::p#2] = main::tiles[main::p#2] + 1 - main::p#1 = main::p#2 + rangenext(0,$3f) - main::$16 = main::p#1 != rangelast(0,$3f) - if(main::$16) goto main::@2 - to:main::@3 -main::@3: scope:[main] from main::@2 - main::t#3 = phi( main::@2/main::t#4 ) - main::tilebase#4 = phi( main::@2/main::tilebase#6 ) - memcpy_to_vram::vbank#1 = 1 - memcpy_to_vram::vdest#1 = (void *)main::tilebase#4 - memcpy_to_vram::src#1 = (void *)main::tiles - memcpy_to_vram::num#1 = $40 - call memcpy_to_vram - to:main::@22 -main::@22: scope:[main] from main::@3 - main::t#2 = phi( main::@3/main::t#3 ) - main::tilebase#5 = phi( main::@3/main::tilebase#4 ) - main::tilebase#2 = main::tilebase#5 + $40 - main::t#1 = main::t#2 + rangenext(1,$ff) - main::$18 = main::t#1 != rangelast(1,$ff) - if(main::$18) goto main::@1 - to:main::@4 -main::@4: scope:[main] from main::@22 - vera_tile_area::layer#0 = 0 - vera_tile_area::tileindex#0 = 0 - vera_tile_area::x#0 = 0 - vera_tile_area::y#0 = 0 - vera_tile_area::w#0 = $50 - vera_tile_area::h#0 = $3c - vera_tile_area::hflip#1 = 0 - vera_tile_area::vflip#1 = 0 - vera_tile_area::offset#1 = 0 - call vera_tile_area - to:main::@23 -main::@23: scope:[main] from main::@4 - main::tile#0 = 0 - main::row#0 = 1 - main::r#0 = 0 - to:main::@5 -main::@5: scope:[main] from main::@23 main::@7 - main::r#5 = phi( main::@23/main::r#0, main::@7/main::r#1 ) - main::row#9 = phi( main::@23/main::row#0, main::@7/main::row#1 ) - main::tile#10 = phi( main::@23/main::tile#0, main::@7/main::tile#12 ) - main::column#0 = 1 - main::c#0 = 0 - to:main::@6 -main::@6: scope:[main] from main::@24 main::@5 - main::r#4 = phi( main::@24/main::r#3, main::@5/main::r#5 ) - main::c#3 = phi( main::@24/main::c#1, main::@5/main::c#0 ) - main::row#4 = phi( main::@24/main::row#8, main::@5/main::row#9 ) - main::column#2 = phi( main::@24/main::column#1, main::@5/main::column#0 ) - main::tile#6 = phi( main::@24/main::tile#2, main::@5/main::tile#10 ) - vera_tile_area::layer#1 = 0 - vera_tile_area::tileindex#1 = main::tile#6 - vera_tile_area::x#1 = main::column#2 - vera_tile_area::y#1 = main::row#4 - vera_tile_area::w#1 = 1 - vera_tile_area::h#1 = 1 - vera_tile_area::hflip#2 = 0 - vera_tile_area::vflip#2 = 0 - vera_tile_area::offset#2 = 0 - call vera_tile_area - to:main::@24 -main::@24: scope:[main] from main::@6 - main::r#3 = phi( main::@6/main::r#4 ) - main::row#8 = phi( main::@6/main::row#4 ) - main::c#2 = phi( main::@6/main::c#3 ) - main::tile#7 = phi( main::@6/main::tile#6 ) - main::column#3 = phi( main::@6/main::column#2 ) - main::column#1 = main::column#3 + 2 - main::tile#1 = ++ main::tile#7 - main::tile#2 = main::tile#1 & $ff - main::c#1 = main::c#2 + rangenext(0,$1f) - main::$20 = main::c#1 != rangelast(0,$1f) - if(main::$20) goto main::@6 - to:main::@7 -main::@7: scope:[main] from main::@24 - main::tile#12 = phi( main::@24/main::tile#2 ) - main::r#2 = phi( main::@24/main::r#3 ) - main::row#5 = phi( main::@24/main::row#8 ) - main::row#1 = main::row#5 + 2 - main::r#1 = main::r#2 + rangenext(0,7) - main::$21 = main::r#1 != rangelast(0,7) - if(main::$21) goto main::@5 - to:main::@8 -main::@8: scope:[main] from main::@7 - main::tile#3 = 0 - main::row#2 = $14 - main::r1#0 = 0 - to:main::@9 -main::@9: scope:[main] from main::@11 main::@8 - main::r1#5 = phi( main::@11/main::r1#1, main::@8/main::r1#0 ) - main::row#11 = phi( main::@11/main::row#3, main::@8/main::row#2 ) - main::tile#11 = phi( main::@11/main::tile#13, main::@8/main::tile#3 ) - main::column1#0 = 1 - main::c1#0 = 0 - to:main::@10 -main::@10: scope:[main] from main::@25 main::@9 - main::r1#4 = phi( main::@25/main::r1#3, main::@9/main::r1#5 ) - main::c1#3 = phi( main::@25/main::c1#1, main::@9/main::c1#0 ) - main::row#6 = phi( main::@25/main::row#10, main::@9/main::row#11 ) - main::column1#2 = phi( main::@25/main::column1#1, main::@9/main::column1#0 ) - main::tile#8 = phi( main::@25/main::tile#5, main::@9/main::tile#11 ) - vera_tile_area::layer#2 = 0 - vera_tile_area::tileindex#2 = main::tile#8 - vera_tile_area::x#2 = main::column1#2 - vera_tile_area::y#2 = main::row#6 - vera_tile_area::w#2 = 2 - vera_tile_area::h#2 = 2 - vera_tile_area::hflip#3 = 0 - vera_tile_area::vflip#3 = 0 - vera_tile_area::offset#3 = 0 - call vera_tile_area - to:main::@25 -main::@25: scope:[main] from main::@10 - main::r1#3 = phi( main::@10/main::r1#4 ) - main::row#10 = phi( main::@10/main::row#6 ) - main::c1#2 = phi( main::@10/main::c1#3 ) - main::tile#9 = phi( main::@10/main::tile#8 ) - main::column1#3 = phi( main::@10/main::column1#2 ) - main::column1#1 = main::column1#3 + 2 - main::tile#4 = ++ main::tile#9 - main::tile#5 = main::tile#4 & $ff - main::c1#1 = main::c1#2 + rangenext(0,$1f) - main::$23 = main::c1#1 != rangelast(0,$1f) - if(main::$23) goto main::@10 - to:main::@11 -main::@11: scope:[main] from main::@25 - main::tile#13 = phi( main::@25/main::tile#5 ) - main::r1#2 = phi( main::@25/main::r1#3 ) - main::row#7 = phi( main::@25/main::row#10 ) - main::row#3 = main::row#7 + 2 - main::r1#1 = main::r1#2 + rangenext(0,7) - main::$24 = main::r1#1 != rangelast(0,7) - if(main::$24) goto main::@9 - to:main::@12 -main::@12: scope:[main] from main::@11 - main::vera_layer_show1_layer#0 = 0 - to:main::vera_layer_show1 -main::vera_layer_show1: scope:[main] from main::@12 - main::vera_layer_show1_layer#1 = phi( main::@12/main::vera_layer_show1_layer#0 ) - *VERA_DC_VIDEO = *VERA_DC_VIDEO | vera_layer_enable[main::vera_layer_show1_layer#1] - to:main::@16 -main::@16: scope:[main] from main::vera_layer_show1 - gotoxy::x#3 = 0 - gotoxy::y#3 = $32 - call gotoxy - to:main::@26 -main::@26: scope:[main] from main::@16 - printf_str::putc#0 = &cputc - printf_str::s#1 = main::s - call printf_str - to:main::@27 -main::@27: scope:[main] from main::@26 - printf_str::putc#1 = &cputc - printf_str::s#2 = main::s1 - call printf_str - to:main::@28 -main::@28: scope:[main] from main::@27 - printf_str::putc#2 = &cputc - printf_str::s#3 = main::s2 - call printf_str - to:main::@29 -main::@29: scope:[main] from main::@28 - printf_str::putc#3 = &cputc - printf_str::s#4 = main::s3 - call printf_str - to:main::@30 -main::@30: scope:[main] from main::@29 - printf_str::putc#4 = &cputc - printf_str::s#5 = main::s4 - call printf_str - to:main::@31 -main::@31: scope:[main] from main::@30 - printf_str::putc#5 = &cputc - printf_str::s#6 = main::s5 - call printf_str - to:main::@32 -main::@32: scope:[main] from main::@31 - printf_str::putc#6 = &cputc - printf_str::s#7 = main::s6 - call printf_str - to:main::@33 -main::@33: scope:[main] from main::@32 - printf_str::putc#7 = &cputc - printf_str::s#8 = main::s7 - call printf_str - to:main::@34 -main::@34: scope:[main] from main::@33 - to:main::@13 -main::@13: scope:[main] from main::@34 main::@35 - call kbhit - kbhit::return#2 = kbhit::return#1 - to:main::@35 -main::@35: scope:[main] from main::@13 - kbhit::return#4 = phi( main::@13/kbhit::return#2 ) - main::$25 = kbhit::return#4 - main::$27 = 0 != main::$25 - main::$26 = ! main::$27 - if(main::$26) goto main::@13 - to:main::@return -main::@return: scope:[main] from main::@35 - return - to:@return - -void __start() -__start: scope:[__start] from - to:__start::__init1 -__start::__init1: scope:[__start] from __start - CONIO_SCREEN_TEXT#4 = DEFAULT_SCREEN - CONIO_SCREEN_BANK#4 = 0 - conio_screen_width = 0 - conio_screen_height = 0 - conio_screen_layer = 1 - conio_width = 0 - conio_height = 0 - conio_rowshift = 0 - conio_rowskip = 0 - call conio_x16_init - to:__start::@2 -__start::@2: scope:[__start] from __start::__init1 - CONIO_SCREEN_TEXT#14 = phi( __start::__init1/CONIO_SCREEN_TEXT#1 ) - CONIO_SCREEN_BANK#12 = phi( __start::__init1/CONIO_SCREEN_BANK#1 ) - CONIO_SCREEN_BANK#5 = CONIO_SCREEN_BANK#12 - CONIO_SCREEN_TEXT#5 = CONIO_SCREEN_TEXT#14 - to:__start::@1 -__start::@1: scope:[__start] from __start::@2 - CONIO_SCREEN_BANK#26 = phi( __start::@2/CONIO_SCREEN_BANK#5 ) - CONIO_SCREEN_TEXT#30 = phi( __start::@2/CONIO_SCREEN_TEXT#5 ) - call main - to:__start::@3 -__start::@3: scope:[__start] from __start::@1 - CONIO_SCREEN_BANK#19 = phi( __start::@1/CONIO_SCREEN_BANK#26 ) - CONIO_SCREEN_TEXT#23 = phi( __start::@1/CONIO_SCREEN_TEXT#30 ) - to:__start::@return -__start::@return: scope:[__start] from __start::@3 - CONIO_SCREEN_BANK#13 = phi( __start::@3/CONIO_SCREEN_BANK#19 ) - CONIO_SCREEN_TEXT#15 = phi( __start::@3/CONIO_SCREEN_TEXT#23 ) - CONIO_SCREEN_TEXT#6 = CONIO_SCREEN_TEXT#15 - CONIO_SCREEN_BANK#6 = CONIO_SCREEN_BANK#13 - return - to:@return - -SYMBOL TABLE SSA -__constant const char BLACK = 0 -__constant const char BLUE = 6 -char CONIO_SCREEN_BANK -char CONIO_SCREEN_BANK#0 -char CONIO_SCREEN_BANK#1 -char CONIO_SCREEN_BANK#10 -char CONIO_SCREEN_BANK#11 -char CONIO_SCREEN_BANK#12 -char CONIO_SCREEN_BANK#13 -char CONIO_SCREEN_BANK#14 -char CONIO_SCREEN_BANK#15 -char CONIO_SCREEN_BANK#16 -char CONIO_SCREEN_BANK#17 -char CONIO_SCREEN_BANK#18 -char CONIO_SCREEN_BANK#19 -char CONIO_SCREEN_BANK#2 -char CONIO_SCREEN_BANK#20 -char CONIO_SCREEN_BANK#21 -char CONIO_SCREEN_BANK#22 -char CONIO_SCREEN_BANK#23 -char CONIO_SCREEN_BANK#24 -char CONIO_SCREEN_BANK#25 -char CONIO_SCREEN_BANK#26 -char CONIO_SCREEN_BANK#27 -char CONIO_SCREEN_BANK#28 -char CONIO_SCREEN_BANK#29 -char CONIO_SCREEN_BANK#3 -char CONIO_SCREEN_BANK#30 -char CONIO_SCREEN_BANK#31 -char CONIO_SCREEN_BANK#32 -char CONIO_SCREEN_BANK#33 -char CONIO_SCREEN_BANK#34 -char CONIO_SCREEN_BANK#35 -char CONIO_SCREEN_BANK#36 -char CONIO_SCREEN_BANK#37 -char CONIO_SCREEN_BANK#38 -char CONIO_SCREEN_BANK#39 -char CONIO_SCREEN_BANK#4 -char CONIO_SCREEN_BANK#40 -char CONIO_SCREEN_BANK#41 -char CONIO_SCREEN_BANK#42 -char CONIO_SCREEN_BANK#43 -char CONIO_SCREEN_BANK#44 -char CONIO_SCREEN_BANK#45 -char CONIO_SCREEN_BANK#46 -char CONIO_SCREEN_BANK#47 -char CONIO_SCREEN_BANK#48 -char CONIO_SCREEN_BANK#49 -char CONIO_SCREEN_BANK#5 -char CONIO_SCREEN_BANK#50 -char CONIO_SCREEN_BANK#6 -char CONIO_SCREEN_BANK#7 -char CONIO_SCREEN_BANK#8 -char CONIO_SCREEN_BANK#9 -char *CONIO_SCREEN_TEXT -char *CONIO_SCREEN_TEXT#0 -char *CONIO_SCREEN_TEXT#1 -char *CONIO_SCREEN_TEXT#10 -char *CONIO_SCREEN_TEXT#11 -char *CONIO_SCREEN_TEXT#12 -char *CONIO_SCREEN_TEXT#13 -char *CONIO_SCREEN_TEXT#14 -char *CONIO_SCREEN_TEXT#15 -char *CONIO_SCREEN_TEXT#16 -char *CONIO_SCREEN_TEXT#17 -char *CONIO_SCREEN_TEXT#18 -char *CONIO_SCREEN_TEXT#19 -char *CONIO_SCREEN_TEXT#2 -char *CONIO_SCREEN_TEXT#20 -char *CONIO_SCREEN_TEXT#21 -char *CONIO_SCREEN_TEXT#22 -char *CONIO_SCREEN_TEXT#23 -char *CONIO_SCREEN_TEXT#24 -char *CONIO_SCREEN_TEXT#25 -char *CONIO_SCREEN_TEXT#26 -char *CONIO_SCREEN_TEXT#27 -char *CONIO_SCREEN_TEXT#28 -char *CONIO_SCREEN_TEXT#29 -char *CONIO_SCREEN_TEXT#3 -char *CONIO_SCREEN_TEXT#30 -char *CONIO_SCREEN_TEXT#31 -char *CONIO_SCREEN_TEXT#32 -char *CONIO_SCREEN_TEXT#33 -char *CONIO_SCREEN_TEXT#34 -char *CONIO_SCREEN_TEXT#35 -char *CONIO_SCREEN_TEXT#36 -char *CONIO_SCREEN_TEXT#37 -char *CONIO_SCREEN_TEXT#38 -char *CONIO_SCREEN_TEXT#39 -char *CONIO_SCREEN_TEXT#4 -char *CONIO_SCREEN_TEXT#40 -char *CONIO_SCREEN_TEXT#41 -char *CONIO_SCREEN_TEXT#42 -char *CONIO_SCREEN_TEXT#43 -char *CONIO_SCREEN_TEXT#44 -char *CONIO_SCREEN_TEXT#45 -char *CONIO_SCREEN_TEXT#46 -char *CONIO_SCREEN_TEXT#47 -char *CONIO_SCREEN_TEXT#48 -char *CONIO_SCREEN_TEXT#49 -char *CONIO_SCREEN_TEXT#5 -char *CONIO_SCREEN_TEXT#50 -char *CONIO_SCREEN_TEXT#51 -char *CONIO_SCREEN_TEXT#52 -char *CONIO_SCREEN_TEXT#53 -char *CONIO_SCREEN_TEXT#54 -char *CONIO_SCREEN_TEXT#55 -char *CONIO_SCREEN_TEXT#56 -char *CONIO_SCREEN_TEXT#57 -char *CONIO_SCREEN_TEXT#6 -char *CONIO_SCREEN_TEXT#7 -char *CONIO_SCREEN_TEXT#8 -char *CONIO_SCREEN_TEXT#9 -__constant char * const DEFAULT_SCREEN = (char *)0 -__constant char RADIX::BINARY = 2 -__constant char RADIX::DECIMAL = $a -__constant char RADIX::HEXADECIMAL = $10 -__constant char RADIX::OCTAL = 8 -__constant char SIZEOF_POINTER = 2 -__constant char SIZEOF_UNSIGNED_INT = 2 -__constant char SIZEOF_UNSIGNED_LONG = 4 -__constant unsigned int STACK_BASE = $103 -__constant const char VERA_ADDRSEL = 1 -__constant char * const VERA_ADDRX_H = (char *)$9f22 -__constant char * const VERA_ADDRX_L = (char *)$9f20 -__constant char * const VERA_ADDRX_M = (char *)$9f21 -__constant char * const VERA_CTRL = (char *)$9f25 -__constant char * const VERA_DATA0 = (char *)$9f23 -__constant char * const VERA_DATA1 = (char *)$9f24 -__constant char * const VERA_DC_HSCALE = (char *)$9f2a -__constant char * const VERA_DC_VIDEO = (char *)$9f29 -__constant char * const VERA_DC_VSCALE = (char *)$9f2b -__constant const char VERA_INC_1 = $10 -__constant char * const VERA_L0_CONFIG = (char *)$9f2d -__constant char * const VERA_L0_MAPBASE = (char *)$9f2e -__constant char * const VERA_L0_TILEBASE = (char *)$9f2f -__constant char * const VERA_L1_CONFIG = (char *)$9f34 -__constant char * const VERA_L1_MAPBASE = (char *)$9f35 -__constant char * const VERA_L1_TILEBASE = (char *)$9f36 -__constant const char VERA_LAYER0_ENABLE = $10 -__constant const char VERA_LAYER1_ENABLE = $20 -__constant const char VERA_LAYER_COLOR_DEPTH_1BPP = 0 -__constant const char VERA_LAYER_COLOR_DEPTH_2BPP = 1 -__constant const char VERA_LAYER_COLOR_DEPTH_4BPP = 2 -__constant const char VERA_LAYER_COLOR_DEPTH_8BPP = 3 -__constant const char VERA_LAYER_CONFIG_16C = 0 -__constant const char VERA_LAYER_CONFIG_256C = 8 -__constant const unsigned int VERA_LAYER_HEIGHT[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_HEIGHT_128 = $80 -__constant const char VERA_LAYER_HEIGHT_256 = $c0 -__constant const char VERA_LAYER_HEIGHT_32 = 0 -__constant const char VERA_LAYER_HEIGHT_64 = $40 -__constant const char VERA_LAYER_HEIGHT_MASK = $c0 -__constant const char VERA_LAYER_TILEBASE_MASK = $fc -__constant const unsigned int VERA_LAYER_WIDTH[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_WIDTH_128 = $20 -__constant const char VERA_LAYER_WIDTH_256 = $30 -__constant const char VERA_LAYER_WIDTH_32 = 0 -__constant const char VERA_LAYER_WIDTH_64 = $10 -__constant const char VERA_LAYER_WIDTH_MASK = $30 -__constant const char VERA_TILEBASE_HEIGHT_16 = 2 -__constant const char VERA_TILEBASE_HEIGHT_8 = 0 -__constant const char VERA_TILEBASE_WIDTH_16 = 1 -__constant const char VERA_TILEBASE_WIDTH_8 = 0 -__constant const char WHITE = 1 -void __start() -void clearline() -char clearline::$1 -char clearline::$2 -bool clearline::$4 -char clearline::$5 -char *clearline::addr -char *clearline::addr#0 -unsigned int clearline::c -unsigned int clearline::c#0 -unsigned int clearline::c#1 -unsigned int clearline::c#2 -unsigned int clearline::c#3 -char clearline::color -char clearline::color#0 -char clearline::color#1 -char clearline::color#2 -void clrscr() -char clrscr::$0 -char clrscr::$1 -char clrscr::$2 -bool clrscr::$4 -char clrscr::$5 -char clrscr::$6 -char clrscr::$7 -bool clrscr::$8 -char clrscr::$9 -char clrscr::c -char clrscr::c#0 -char clrscr::c#1 -char clrscr::c#2 -char clrscr::c#3 -char *clrscr::ch -char *clrscr::ch#0 -char clrscr::color -char clrscr::color#0 -char clrscr::color#1 -char clrscr::color#2 -char clrscr::color#3 -char clrscr::color#4 -char clrscr::color#5 -char clrscr::l -char clrscr::l#0 -char clrscr::l#1 -char clrscr::l#2 -char clrscr::l#3 -char clrscr::l#4 -char clrscr::l#5 -char clrscr::l#6 -char *clrscr::line_text -char *clrscr::line_text#0 -char *clrscr::line_text#1 -char *clrscr::line_text#2 -char *clrscr::line_text#3 -char *clrscr::line_text#4 -char *clrscr::line_text#5 -char *clrscr::line_text#6 -char *clrscr::line_text#7 -char *clrscr::line_text#8 -__constant char conio_cursor_x[2] = { 0, 0 } -__constant char conio_cursor_y[2] = { 0, 0 } -__loadstore unsigned int conio_height -__constant unsigned int conio_line_text[2] = { 0, 0 } -__loadstore char conio_rowshift -__loadstore unsigned int conio_rowskip -__loadstore volatile char conio_screen_height -__loadstore char conio_screen_layer -__loadstore volatile char conio_screen_width -__constant char conio_scroll_enable[2] = { 1, 1 } -__loadstore unsigned int conio_width -void conio_x16_init() -bool conio_x16_init::$7 -bool conio_x16_init::$8 -number conio_x16_init::$9 -__constant char * const conio_x16_init::BASIC_CURSOR_LINE = (char *)$d6 -char conio_x16_init::line -char conio_x16_init::line#0 -char conio_x16_init::line#1 -char conio_x16_init::line#2 -char conio_x16_init::line#3 -char conio_x16_init::line#4 -char conio_x16_init::line#5 -char conio_x16_init::line#6 -char conio_x16_init::line#7 -char conio_x16_init::line#8 -char conio_x16_init::line#9 -__stackcall void cputc(char c) -bool cputc::$11 -bool cputc::$12 -char cputc::$15 -unsigned int cputc::$16 -bool cputc::$17 -char cputc::$2 -bool cputc::$3 -char cputc::$4 -char cputc::$5 -char cputc::$6 -bool cputc::$8 -bool cputc::$9 -__constant char cputc::OFFSET_STACK_C = 0 -char cputc::c -char cputc::c#0 -char cputc::c#1 -char cputc::c#2 -char cputc::color -char cputc::color#0 -char cputc::color#1 -char *cputc::conio_addr -char *cputc::conio_addr#0 -char *cputc::conio_addr#1 -char *cputc::conio_addr#2 -char cputc::scroll_enable -char cputc::scroll_enable#0 -void cputln() -char cputln::$2 -char cputln::$3 -unsigned int cputln::temp -unsigned int cputln::temp#0 -unsigned int cputln::temp#1 -void cscroll() -bool cscroll::$0 -bool cscroll::$1 -bool cscroll::$2 -bool cscroll::$3 -number cscroll::$5 -bool cscroll::$7 -void gotoxy(char x , char y) -bool gotoxy::$0 -bool gotoxy::$1 -bool gotoxy::$2 -bool gotoxy::$3 -char gotoxy::$5 -unsigned int gotoxy::$6 -unsigned int gotoxy::line_offset -unsigned int gotoxy::line_offset#0 -char gotoxy::x -char gotoxy::x#0 -char gotoxy::x#1 -char gotoxy::x#2 -char gotoxy::x#3 -char gotoxy::x#4 -char gotoxy::x#5 -char gotoxy::x#6 -char gotoxy::x#7 -char gotoxy::y -char gotoxy::y#0 -char gotoxy::y#1 -char gotoxy::y#2 -char gotoxy::y#3 -char gotoxy::y#4 -char gotoxy::y#5 -char gotoxy::y#6 -char gotoxy::y#7 -void insertup() -bool insertup::$2 -number insertup::$3 -char *insertup::$6 -char insertup::cy -char insertup::cy#0 -char insertup::cy#1 -char insertup::cy#2 -char insertup::cy#3 -char insertup::i -char insertup::i#0 -char insertup::i#1 -char insertup::i#2 -char insertup::i#3 -char insertup::i#4 -unsigned int insertup::line -unsigned int insertup::line#0 -char *insertup::start -char *insertup::start#0 -char insertup::width -char insertup::width#0 -char insertup::width#1 -char insertup::width#2 -char insertup::width#3 -char kbhit() -__constant char * const kbhit::GETIN = (char *)$ffe4 -__constant char * const kbhit::IN_DEV = (char *)$28a -__loadstore volatile char kbhit::ch -__constant char * const kbhit::chptr = &kbhit::ch -char kbhit::return -char kbhit::return#0 -char kbhit::return#1 -char kbhit::return#2 -char kbhit::return#3 -char kbhit::return#4 -void main() -bool main::$16 -bool main::$18 -bool main::$20 -bool main::$21 -bool main::$23 -bool main::$24 -char main::$25 -bool main::$26 -bool main::$27 -char main::bgcolor1_color -char main::bgcolor1_color#0 -char main::bgcolor1_color#1 -char main::c -char main::c#0 -char main::c#1 -char main::c#2 -char main::c#3 -char main::c1 -char main::c1#0 -char main::c1#1 -char main::c1#2 -char main::c1#3 -char main::column -char main::column#0 -char main::column#1 -char main::column#2 -char main::column#3 -char main::column1 -char main::column1#0 -char main::column1#1 -char main::column1#2 -char main::column1#3 -char main::p -char main::p#0 -char main::p#1 -char main::p#2 -char main::r -char main::r#0 -char main::r#1 -char main::r#2 -char main::r#3 -char main::r#4 -char main::r#5 -char main::r1 -char main::r1#0 -char main::r1#1 -char main::r1#2 -char main::r1#3 -char main::r1#4 -char main::r1#5 -char main::row -char main::row#0 -char main::row#1 -char main::row#10 -char main::row#11 -char main::row#2 -char main::row#3 -char main::row#4 -char main::row#5 -char main::row#6 -char main::row#7 -char main::row#8 -char main::row#9 -__constant char main::s[$38] = "vera in tile mode 8 x 8, color depth 8 bits per pixel. -" -__constant char main::s1[$3a] = "in this mode, tiles are 8 pixels wide and 8 pixels tall. -" -__constant char main::s2[$2f] = "each tile can have a variation of 256 colors. -" -__constant char main::s3[$44] = "the vera palette of 256 colors, can be used by setting the palette -" -__constant char main::s4[$17] = "offset for each tile. -" -__constant char main::s5[$4b] = "here each column is displaying the same tile, but with different offsets! -" -__constant char main::s6[$3f] = "each offset aligns to multiples of 16 colors in the palette!. -" -__constant char main::s7[$3e] = "however, the first color will always be transparent (black). -" -char main::t -char main::t#0 -char main::t#1 -char main::t#2 -char main::t#3 -char main::t#4 -char main::t#5 -char main::textcolor1_color -char main::textcolor1_color#0 -char main::textcolor1_color#1 -unsigned int main::tile -unsigned int main::tile#0 -unsigned int main::tile#1 -unsigned int main::tile#10 -unsigned int main::tile#11 -unsigned int main::tile#12 -unsigned int main::tile#13 -unsigned int main::tile#2 -unsigned int main::tile#3 -unsigned int main::tile#4 -unsigned int main::tile#5 -unsigned int main::tile#6 -unsigned int main::tile#7 -unsigned int main::tile#8 -unsigned int main::tile#9 -char *main::tilebase -char *main::tilebase#0 -char *main::tilebase#1 -char *main::tilebase#2 -char *main::tilebase#3 -char *main::tilebase#4 -char *main::tilebase#5 -char *main::tilebase#6 -char *main::tilebase#7 -__constant char main::tiles[$40] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } -char main::vera_layer_show1_layer -char main::vera_layer_show1_layer#0 -char main::vera_layer_show1_layer#1 -void memcpy_in_vram(char dest_bank , void *dest , char dest_increment , char src_bank , void *src , char src_increment , unsigned int num) -char memcpy_in_vram::$0 -char memcpy_in_vram::$1 -char memcpy_in_vram::$2 -char memcpy_in_vram::$3 -char memcpy_in_vram::$4 -char memcpy_in_vram::$5 -bool memcpy_in_vram::$6 -void *memcpy_in_vram::dest -void *memcpy_in_vram::dest#0 -void *memcpy_in_vram::dest#1 -char memcpy_in_vram::dest_bank -char memcpy_in_vram::dest_bank#0 -char memcpy_in_vram::dest_bank#1 -char memcpy_in_vram::dest_increment -char memcpy_in_vram::dest_increment#0 -char memcpy_in_vram::dest_increment#1 -unsigned int memcpy_in_vram::i -unsigned int memcpy_in_vram::i#0 -unsigned int memcpy_in_vram::i#1 -unsigned int memcpy_in_vram::i#2 -unsigned int memcpy_in_vram::i#3 -unsigned int memcpy_in_vram::num -unsigned int memcpy_in_vram::num#0 -unsigned int memcpy_in_vram::num#1 -unsigned int memcpy_in_vram::num#2 -unsigned int memcpy_in_vram::num#3 -void *memcpy_in_vram::src -void *memcpy_in_vram::src#0 -void *memcpy_in_vram::src#1 -char memcpy_in_vram::src_bank -char memcpy_in_vram::src_bank#0 -char memcpy_in_vram::src_bank#1 -char memcpy_in_vram::src_increment -char memcpy_in_vram::src_increment#0 -char memcpy_in_vram::src_increment#1 -void memcpy_to_vram(char vbank , void *vdest , void *src , unsigned int num) -char memcpy_to_vram::$0 -char memcpy_to_vram::$1 -char memcpy_to_vram::$2 -bool memcpy_to_vram::$4 -char *memcpy_to_vram::$5 -char *memcpy_to_vram::end -char *memcpy_to_vram::end#0 -char *memcpy_to_vram::end#1 -char *memcpy_to_vram::end#2 -unsigned int memcpy_to_vram::num -unsigned int memcpy_to_vram::num#0 -unsigned int memcpy_to_vram::num#1 -unsigned int memcpy_to_vram::num#2 -char *memcpy_to_vram::s -char *memcpy_to_vram::s#0 -char *memcpy_to_vram::s#1 -char *memcpy_to_vram::s#2 -char *memcpy_to_vram::s#3 -void *memcpy_to_vram::src -void *memcpy_to_vram::src#0 -void *memcpy_to_vram::src#1 -void *memcpy_to_vram::src#2 -char memcpy_to_vram::vbank -char memcpy_to_vram::vbank#0 -char memcpy_to_vram::vbank#1 -char memcpy_to_vram::vbank#2 -void *memcpy_to_vram::vdest -void *memcpy_to_vram::vdest#0 -void *memcpy_to_vram::vdest#1 -void *memcpy_to_vram::vdest#2 -void printf_str(void (*putc)(char) , const char *s) -char printf_str::$0 -bool printf_str::$2 -char printf_str::c -char printf_str::c#0 -char printf_str::c#1 -char printf_str::c#2 -void (*printf_str::putc)(char) -void (*printf_str::putc#0)(char) -void (*printf_str::putc#1)(char) -void (*printf_str::putc#10)(char) -void (*printf_str::putc#2)(char) -void (*printf_str::putc#3)(char) -void (*printf_str::putc#4)(char) -void (*printf_str::putc#5)(char) -void (*printf_str::putc#6)(char) -void (*printf_str::putc#7)(char) -void (*printf_str::putc#8)(char) -void (*printf_str::putc#9)(char) -const char *printf_str::s -const char *printf_str::s#0 -const char *printf_str::s#1 -const char *printf_str::s#10 -const char *printf_str::s#11 -const char *printf_str::s#2 -const char *printf_str::s#3 -const char *printf_str::s#4 -const char *printf_str::s#5 -const char *printf_str::s#6 -const char *printf_str::s#7 -const char *printf_str::s#8 -const char *printf_str::s#9 -void screenlayer(char layer) -char screenlayer::$0 -unsigned int screenlayer::$1 -unsigned int screenlayer::$2 -char screenlayer::$3 -unsigned int screenlayer::$4 -unsigned int screenlayer::$5 -char screenlayer::layer -char screenlayer::layer#0 -char screenlayer::layer#1 -char screenlayer::vera_layer_get_height1_$0 -char screenlayer::vera_layer_get_height1_$1 -char screenlayer::vera_layer_get_height1_$2 -char screenlayer::vera_layer_get_height1_$3 -char *screenlayer::vera_layer_get_height1_config -char *screenlayer::vera_layer_get_height1_config#0 -char screenlayer::vera_layer_get_height1_layer -char screenlayer::vera_layer_get_height1_layer#0 -char screenlayer::vera_layer_get_height1_layer#1 -unsigned int screenlayer::vera_layer_get_height1_return -unsigned int screenlayer::vera_layer_get_height1_return#0 -unsigned int screenlayer::vera_layer_get_height1_return#1 -unsigned int screenlayer::vera_layer_get_height1_return#2 -unsigned int screenlayer::vera_layer_get_height1_return#3 -char screenlayer::vera_layer_get_width1_$0 -char screenlayer::vera_layer_get_width1_$1 -char screenlayer::vera_layer_get_width1_$2 -char screenlayer::vera_layer_get_width1_$3 -char *screenlayer::vera_layer_get_width1_config -char *screenlayer::vera_layer_get_width1_config#0 -char screenlayer::vera_layer_get_width1_layer -char screenlayer::vera_layer_get_width1_layer#0 -char screenlayer::vera_layer_get_width1_layer#1 -unsigned int screenlayer::vera_layer_get_width1_return -unsigned int screenlayer::vera_layer_get_width1_return#0 -unsigned int screenlayer::vera_layer_get_width1_return#1 -unsigned int screenlayer::vera_layer_get_width1_return#2 -unsigned int screenlayer::vera_layer_get_width1_return#3 -void screensize(char *x , char *y) -number screensize::$1 -number screensize::$3 -char screensize::hscale -char screensize::hscale#0 -char screensize::vscale -char screensize::vscale#0 -char *screensize::x -char *screensize::x#0 -char *screensize::x#1 -char *screensize::y -char *screensize::y#0 -char *screensize::y#1 -__constant char vera_layer_backcolor[2] = { BLUE, BLUE } -__constant char *vera_layer_config[2] = { VERA_L0_CONFIG, VERA_L1_CONFIG } -__constant char vera_layer_enable[2] = { VERA_LAYER0_ENABLE, VERA_LAYER1_ENABLE } -char vera_layer_get_backcolor(char layer) -char vera_layer_get_backcolor::layer -char vera_layer_get_backcolor::layer#0 -char vera_layer_get_backcolor::layer#1 -char vera_layer_get_backcolor::return -char vera_layer_get_backcolor::return#0 -char vera_layer_get_backcolor::return#1 -char vera_layer_get_backcolor::return#2 -char vera_layer_get_backcolor::return#3 -char vera_layer_get_backcolor::return#4 -char vera_layer_get_color(char layer) -char vera_layer_get_color::$0 -char vera_layer_get_color::$1 -char vera_layer_get_color::$2 -char vera_layer_get_color::$3 -bool vera_layer_get_color::$4 -char *vera_layer_get_color::addr -char *vera_layer_get_color::addr#0 -char vera_layer_get_color::layer -char vera_layer_get_color::layer#0 -char vera_layer_get_color::layer#1 -char vera_layer_get_color::layer#2 -char vera_layer_get_color::layer#3 -char vera_layer_get_color::layer#4 -char vera_layer_get_color::return -char vera_layer_get_color::return#0 -char vera_layer_get_color::return#1 -char vera_layer_get_color::return#2 -char vera_layer_get_color::return#3 -char vera_layer_get_color::return#4 -char vera_layer_get_color::return#5 -char vera_layer_get_color::return#6 -char vera_layer_get_color::return#7 -char vera_layer_get_mapbase_bank(char layer) -char vera_layer_get_mapbase_bank::layer -char vera_layer_get_mapbase_bank::layer#0 -char vera_layer_get_mapbase_bank::layer#1 -char vera_layer_get_mapbase_bank::return -char vera_layer_get_mapbase_bank::return#0 -char vera_layer_get_mapbase_bank::return#1 -char vera_layer_get_mapbase_bank::return#2 -char vera_layer_get_mapbase_bank::return#3 -char vera_layer_get_mapbase_bank::return#4 -unsigned int vera_layer_get_mapbase_offset(char layer) -char vera_layer_get_mapbase_offset::$0 -char vera_layer_get_mapbase_offset::layer -char vera_layer_get_mapbase_offset::layer#0 -char vera_layer_get_mapbase_offset::layer#1 -unsigned int vera_layer_get_mapbase_offset::return -unsigned int vera_layer_get_mapbase_offset::return#0 -unsigned int vera_layer_get_mapbase_offset::return#1 -unsigned int vera_layer_get_mapbase_offset::return#2 -unsigned int vera_layer_get_mapbase_offset::return#3 -unsigned int vera_layer_get_mapbase_offset::return#4 -char vera_layer_get_rowshift(char layer) -char vera_layer_get_rowshift::layer -char vera_layer_get_rowshift::layer#0 -char vera_layer_get_rowshift::layer#1 -char vera_layer_get_rowshift::return -char vera_layer_get_rowshift::return#0 -char vera_layer_get_rowshift::return#1 -char vera_layer_get_rowshift::return#2 -char vera_layer_get_rowshift::return#3 -char vera_layer_get_rowshift::return#4 -unsigned int vera_layer_get_rowskip(char layer) -char vera_layer_get_rowskip::$0 -char vera_layer_get_rowskip::layer -char vera_layer_get_rowskip::layer#0 -char vera_layer_get_rowskip::layer#1 -unsigned int vera_layer_get_rowskip::return -unsigned int vera_layer_get_rowskip::return#0 -unsigned int vera_layer_get_rowskip::return#1 -unsigned int vera_layer_get_rowskip::return#2 -unsigned int vera_layer_get_rowskip::return#3 -unsigned int vera_layer_get_rowskip::return#4 -char vera_layer_get_textcolor(char layer) -char vera_layer_get_textcolor::layer -char vera_layer_get_textcolor::layer#0 -char vera_layer_get_textcolor::layer#1 -char vera_layer_get_textcolor::return -char vera_layer_get_textcolor::return#0 -char vera_layer_get_textcolor::return#1 -char vera_layer_get_textcolor::return#2 -char vera_layer_get_textcolor::return#3 -char vera_layer_get_textcolor::return#4 -__constant const char vera_layer_hflip[2] = { 0, 4 } -__constant char *vera_layer_mapbase[2] = { VERA_L0_MAPBASE, VERA_L1_MAPBASE } -void vera_layer_mode_text(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , unsigned int color_mode) -unsigned int vera_layer_mode_text::color_mode -unsigned int vera_layer_mode_text::color_mode#0 -unsigned int vera_layer_mode_text::color_mode#1 -unsigned int vera_layer_mode_text::color_mode#2 -unsigned int vera_layer_mode_text::color_mode#3 -char vera_layer_mode_text::layer -char vera_layer_mode_text::layer#0 -char vera_layer_mode_text::layer#1 -char vera_layer_mode_text::layer#2 -char vera_layer_mode_text::layer#3 -char vera_layer_mode_text::layer#4 -char vera_layer_mode_text::layer#5 -unsigned long vera_layer_mode_text::mapbase_address -unsigned long vera_layer_mode_text::mapbase_address#0 -unsigned long vera_layer_mode_text::mapbase_address#1 -unsigned int vera_layer_mode_text::mapheight -unsigned int vera_layer_mode_text::mapheight#0 -unsigned int vera_layer_mode_text::mapheight#1 -unsigned int vera_layer_mode_text::mapwidth -unsigned int vera_layer_mode_text::mapwidth#0 -unsigned int vera_layer_mode_text::mapwidth#1 -unsigned long vera_layer_mode_text::tilebase_address -unsigned long vera_layer_mode_text::tilebase_address#0 -unsigned long vera_layer_mode_text::tilebase_address#1 -char vera_layer_mode_text::tileheight -char vera_layer_mode_text::tileheight#0 -char vera_layer_mode_text::tileheight#1 -char vera_layer_mode_text::tilewidth -char vera_layer_mode_text::tilewidth#0 -char vera_layer_mode_text::tilewidth#1 -void vera_layer_mode_tile(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , char color_depth) -unsigned int vera_layer_mode_tile::$1 -char vera_layer_mode_tile::$11 -char vera_layer_mode_tile::$12 -char vera_layer_mode_tile::$13 -char vera_layer_mode_tile::$14 -char vera_layer_mode_tile::$15 -char vera_layer_mode_tile::$16 -char vera_layer_mode_tile::$17 -char vera_layer_mode_tile::$18 -char vera_layer_mode_tile::$2 -unsigned long vera_layer_mode_tile::$3 -unsigned int vera_layer_mode_tile::$6 -char vera_layer_mode_tile::$7 -unsigned long vera_layer_mode_tile::$8 -char vera_layer_mode_tile::color_depth -char vera_layer_mode_tile::color_depth#0 -char vera_layer_mode_tile::color_depth#1 -char vera_layer_mode_tile::color_depth#2 -char vera_layer_mode_tile::color_depth#3 -char vera_layer_mode_tile::color_depth#4 -char vera_layer_mode_tile::color_depth#5 -char vera_layer_mode_tile::config -char vera_layer_mode_tile::config#0 -char vera_layer_mode_tile::config#1 -char vera_layer_mode_tile::config#10 -char vera_layer_mode_tile::config#11 -char vera_layer_mode_tile::config#12 -char vera_layer_mode_tile::config#13 -char vera_layer_mode_tile::config#14 -char vera_layer_mode_tile::config#15 -char vera_layer_mode_tile::config#16 -char vera_layer_mode_tile::config#17 -char vera_layer_mode_tile::config#18 -char vera_layer_mode_tile::config#19 -char vera_layer_mode_tile::config#2 -char vera_layer_mode_tile::config#20 -char vera_layer_mode_tile::config#21 -char vera_layer_mode_tile::config#22 -char vera_layer_mode_tile::config#23 -char vera_layer_mode_tile::config#24 -char vera_layer_mode_tile::config#25 -char vera_layer_mode_tile::config#26 -char vera_layer_mode_tile::config#27 -char vera_layer_mode_tile::config#28 -char vera_layer_mode_tile::config#29 -char vera_layer_mode_tile::config#3 -char vera_layer_mode_tile::config#30 -char vera_layer_mode_tile::config#31 -char vera_layer_mode_tile::config#32 -char vera_layer_mode_tile::config#33 -char vera_layer_mode_tile::config#34 -char vera_layer_mode_tile::config#35 -char vera_layer_mode_tile::config#36 -char vera_layer_mode_tile::config#4 -char vera_layer_mode_tile::config#5 -char vera_layer_mode_tile::config#6 -char vera_layer_mode_tile::config#7 -char vera_layer_mode_tile::config#8 -char vera_layer_mode_tile::config#9 -char vera_layer_mode_tile::layer -char vera_layer_mode_tile::layer#0 -char vera_layer_mode_tile::layer#1 -char vera_layer_mode_tile::layer#10 -char vera_layer_mode_tile::layer#11 -char vera_layer_mode_tile::layer#12 -char vera_layer_mode_tile::layer#13 -char vera_layer_mode_tile::layer#14 -char vera_layer_mode_tile::layer#15 -char vera_layer_mode_tile::layer#16 -char vera_layer_mode_tile::layer#17 -char vera_layer_mode_tile::layer#18 -char vera_layer_mode_tile::layer#19 -char vera_layer_mode_tile::layer#2 -char vera_layer_mode_tile::layer#20 -char vera_layer_mode_tile::layer#21 -char vera_layer_mode_tile::layer#22 -char vera_layer_mode_tile::layer#23 -char vera_layer_mode_tile::layer#24 -char vera_layer_mode_tile::layer#25 -char vera_layer_mode_tile::layer#26 -char vera_layer_mode_tile::layer#27 -char vera_layer_mode_tile::layer#28 -char vera_layer_mode_tile::layer#29 -char vera_layer_mode_tile::layer#3 -char vera_layer_mode_tile::layer#30 -char vera_layer_mode_tile::layer#31 -char vera_layer_mode_tile::layer#32 -char vera_layer_mode_tile::layer#33 -char vera_layer_mode_tile::layer#34 -char vera_layer_mode_tile::layer#35 -char vera_layer_mode_tile::layer#36 -char vera_layer_mode_tile::layer#4 -char vera_layer_mode_tile::layer#5 -char vera_layer_mode_tile::layer#6 -char vera_layer_mode_tile::layer#7 -char vera_layer_mode_tile::layer#8 -char vera_layer_mode_tile::layer#9 -char vera_layer_mode_tile::mapbase -char vera_layer_mode_tile::mapbase#0 -unsigned long vera_layer_mode_tile::mapbase_address -unsigned long vera_layer_mode_tile::mapbase_address#0 -unsigned long vera_layer_mode_tile::mapbase_address#1 -unsigned long vera_layer_mode_tile::mapbase_address#10 -unsigned long vera_layer_mode_tile::mapbase_address#11 -unsigned long vera_layer_mode_tile::mapbase_address#12 -unsigned long vera_layer_mode_tile::mapbase_address#13 -unsigned long vera_layer_mode_tile::mapbase_address#14 -unsigned long vera_layer_mode_tile::mapbase_address#15 -unsigned long vera_layer_mode_tile::mapbase_address#16 -unsigned long vera_layer_mode_tile::mapbase_address#17 -unsigned long vera_layer_mode_tile::mapbase_address#18 -unsigned long vera_layer_mode_tile::mapbase_address#19 -unsigned long vera_layer_mode_tile::mapbase_address#2 -unsigned long vera_layer_mode_tile::mapbase_address#20 -unsigned long vera_layer_mode_tile::mapbase_address#21 -unsigned long vera_layer_mode_tile::mapbase_address#22 -unsigned long vera_layer_mode_tile::mapbase_address#23 -unsigned long vera_layer_mode_tile::mapbase_address#24 -unsigned long vera_layer_mode_tile::mapbase_address#25 -unsigned long vera_layer_mode_tile::mapbase_address#26 -unsigned long vera_layer_mode_tile::mapbase_address#27 -unsigned long vera_layer_mode_tile::mapbase_address#28 -unsigned long vera_layer_mode_tile::mapbase_address#3 -unsigned long vera_layer_mode_tile::mapbase_address#4 -unsigned long vera_layer_mode_tile::mapbase_address#5 -unsigned long vera_layer_mode_tile::mapbase_address#6 -unsigned long vera_layer_mode_tile::mapbase_address#7 -unsigned long vera_layer_mode_tile::mapbase_address#8 -unsigned long vera_layer_mode_tile::mapbase_address#9 -unsigned int vera_layer_mode_tile::mapheight -unsigned int vera_layer_mode_tile::mapheight#0 -unsigned int vera_layer_mode_tile::mapheight#1 -unsigned int vera_layer_mode_tile::mapheight#10 -unsigned int vera_layer_mode_tile::mapheight#11 -unsigned int vera_layer_mode_tile::mapheight#12 -unsigned int vera_layer_mode_tile::mapheight#13 -unsigned int vera_layer_mode_tile::mapheight#14 -unsigned int vera_layer_mode_tile::mapheight#15 -unsigned int vera_layer_mode_tile::mapheight#16 -unsigned int vera_layer_mode_tile::mapheight#17 -unsigned int vera_layer_mode_tile::mapheight#18 -unsigned int vera_layer_mode_tile::mapheight#19 -unsigned int vera_layer_mode_tile::mapheight#2 -unsigned int vera_layer_mode_tile::mapheight#20 -unsigned int vera_layer_mode_tile::mapheight#21 -unsigned int vera_layer_mode_tile::mapheight#3 -unsigned int vera_layer_mode_tile::mapheight#4 -unsigned int vera_layer_mode_tile::mapheight#5 -unsigned int vera_layer_mode_tile::mapheight#6 -unsigned int vera_layer_mode_tile::mapheight#7 -unsigned int vera_layer_mode_tile::mapheight#8 -unsigned int vera_layer_mode_tile::mapheight#9 -unsigned int vera_layer_mode_tile::mapwidth -unsigned int vera_layer_mode_tile::mapwidth#0 -unsigned int vera_layer_mode_tile::mapwidth#1 -unsigned int vera_layer_mode_tile::mapwidth#10 -unsigned int vera_layer_mode_tile::mapwidth#11 -unsigned int vera_layer_mode_tile::mapwidth#12 -unsigned int vera_layer_mode_tile::mapwidth#13 -unsigned int vera_layer_mode_tile::mapwidth#2 -unsigned int vera_layer_mode_tile::mapwidth#3 -unsigned int vera_layer_mode_tile::mapwidth#4 -unsigned int vera_layer_mode_tile::mapwidth#5 -unsigned int vera_layer_mode_tile::mapwidth#6 -unsigned int vera_layer_mode_tile::mapwidth#7 -unsigned int vera_layer_mode_tile::mapwidth#8 -unsigned int vera_layer_mode_tile::mapwidth#9 -char vera_layer_mode_tile::tilebase -char vera_layer_mode_tile::tilebase#0 -char vera_layer_mode_tile::tilebase#1 -char vera_layer_mode_tile::tilebase#10 -char vera_layer_mode_tile::tilebase#11 -char vera_layer_mode_tile::tilebase#12 -char vera_layer_mode_tile::tilebase#13 -char vera_layer_mode_tile::tilebase#2 -char vera_layer_mode_tile::tilebase#3 -char vera_layer_mode_tile::tilebase#4 -char vera_layer_mode_tile::tilebase#5 -char vera_layer_mode_tile::tilebase#6 -char vera_layer_mode_tile::tilebase#7 -char vera_layer_mode_tile::tilebase#8 -char vera_layer_mode_tile::tilebase#9 -unsigned long vera_layer_mode_tile::tilebase_address -unsigned long vera_layer_mode_tile::tilebase_address#0 -unsigned long vera_layer_mode_tile::tilebase_address#1 -unsigned long vera_layer_mode_tile::tilebase_address#10 -unsigned long vera_layer_mode_tile::tilebase_address#11 -unsigned long vera_layer_mode_tile::tilebase_address#12 -unsigned long vera_layer_mode_tile::tilebase_address#13 -unsigned long vera_layer_mode_tile::tilebase_address#14 -unsigned long vera_layer_mode_tile::tilebase_address#15 -unsigned long vera_layer_mode_tile::tilebase_address#16 -unsigned long vera_layer_mode_tile::tilebase_address#17 -unsigned long vera_layer_mode_tile::tilebase_address#18 -unsigned long vera_layer_mode_tile::tilebase_address#19 -unsigned long vera_layer_mode_tile::tilebase_address#2 -unsigned long vera_layer_mode_tile::tilebase_address#20 -unsigned long vera_layer_mode_tile::tilebase_address#21 -unsigned long vera_layer_mode_tile::tilebase_address#22 -unsigned long vera_layer_mode_tile::tilebase_address#23 -unsigned long vera_layer_mode_tile::tilebase_address#24 -unsigned long vera_layer_mode_tile::tilebase_address#25 -unsigned long vera_layer_mode_tile::tilebase_address#26 -unsigned long vera_layer_mode_tile::tilebase_address#27 -unsigned long vera_layer_mode_tile::tilebase_address#28 -unsigned long vera_layer_mode_tile::tilebase_address#29 -unsigned long vera_layer_mode_tile::tilebase_address#3 -unsigned long vera_layer_mode_tile::tilebase_address#4 -unsigned long vera_layer_mode_tile::tilebase_address#5 -unsigned long vera_layer_mode_tile::tilebase_address#6 -unsigned long vera_layer_mode_tile::tilebase_address#7 -unsigned long vera_layer_mode_tile::tilebase_address#8 -unsigned long vera_layer_mode_tile::tilebase_address#9 -char vera_layer_mode_tile::tileheight -char vera_layer_mode_tile::tileheight#0 -char vera_layer_mode_tile::tileheight#1 -char vera_layer_mode_tile::tileheight#10 -char vera_layer_mode_tile::tileheight#11 -char vera_layer_mode_tile::tileheight#12 -char vera_layer_mode_tile::tileheight#13 -char vera_layer_mode_tile::tileheight#14 -char vera_layer_mode_tile::tileheight#15 -char vera_layer_mode_tile::tileheight#16 -char vera_layer_mode_tile::tileheight#17 -char vera_layer_mode_tile::tileheight#18 -char vera_layer_mode_tile::tileheight#19 -char vera_layer_mode_tile::tileheight#2 -char vera_layer_mode_tile::tileheight#20 -char vera_layer_mode_tile::tileheight#21 -char vera_layer_mode_tile::tileheight#22 -char vera_layer_mode_tile::tileheight#23 -char vera_layer_mode_tile::tileheight#24 -char vera_layer_mode_tile::tileheight#25 -char vera_layer_mode_tile::tileheight#26 -char vera_layer_mode_tile::tileheight#27 -char vera_layer_mode_tile::tileheight#28 -char vera_layer_mode_tile::tileheight#29 -char vera_layer_mode_tile::tileheight#3 -char vera_layer_mode_tile::tileheight#30 -char vera_layer_mode_tile::tileheight#31 -char vera_layer_mode_tile::tileheight#32 -char vera_layer_mode_tile::tileheight#33 -char vera_layer_mode_tile::tileheight#4 -char vera_layer_mode_tile::tileheight#5 -char vera_layer_mode_tile::tileheight#6 -char vera_layer_mode_tile::tileheight#7 -char vera_layer_mode_tile::tileheight#8 -char vera_layer_mode_tile::tileheight#9 -char vera_layer_mode_tile::tilewidth -char vera_layer_mode_tile::tilewidth#0 -char vera_layer_mode_tile::tilewidth#1 -char vera_layer_mode_tile::tilewidth#10 -char vera_layer_mode_tile::tilewidth#11 -char vera_layer_mode_tile::tilewidth#12 -char vera_layer_mode_tile::tilewidth#13 -char vera_layer_mode_tile::tilewidth#14 -char vera_layer_mode_tile::tilewidth#15 -char vera_layer_mode_tile::tilewidth#16 -char vera_layer_mode_tile::tilewidth#17 -char vera_layer_mode_tile::tilewidth#18 -char vera_layer_mode_tile::tilewidth#19 -char vera_layer_mode_tile::tilewidth#2 -char vera_layer_mode_tile::tilewidth#20 -char vera_layer_mode_tile::tilewidth#21 -char vera_layer_mode_tile::tilewidth#22 -char vera_layer_mode_tile::tilewidth#23 -char vera_layer_mode_tile::tilewidth#24 -char vera_layer_mode_tile::tilewidth#25 -char vera_layer_mode_tile::tilewidth#26 -char vera_layer_mode_tile::tilewidth#27 -char vera_layer_mode_tile::tilewidth#28 -char vera_layer_mode_tile::tilewidth#29 -char vera_layer_mode_tile::tilewidth#3 -char vera_layer_mode_tile::tilewidth#4 -char vera_layer_mode_tile::tilewidth#5 -char vera_layer_mode_tile::tilewidth#6 -char vera_layer_mode_tile::tilewidth#7 -char vera_layer_mode_tile::tilewidth#8 -char vera_layer_mode_tile::tilewidth#9 -__constant char vera_layer_rowshift[2] = { 0, 0 } -__constant unsigned int vera_layer_rowskip[2] = { 0, 0 } -char vera_layer_set_backcolor(char layer , char color) -char vera_layer_set_backcolor::color -char vera_layer_set_backcolor::color#0 -char vera_layer_set_backcolor::color#1 -char vera_layer_set_backcolor::color#2 -char vera_layer_set_backcolor::layer -char vera_layer_set_backcolor::layer#0 -char vera_layer_set_backcolor::layer#1 -char vera_layer_set_backcolor::layer#2 -char vera_layer_set_backcolor::old -char vera_layer_set_backcolor::old#0 -char vera_layer_set_backcolor::return -char vera_layer_set_backcolor::return#0 -char vera_layer_set_backcolor::return#1 -char vera_layer_set_backcolor::return#2 -char vera_layer_set_backcolor::return#3 -char vera_layer_set_backcolor::return#4 -void vera_layer_set_config(char layer , char config) -char vera_layer_set_config::$0 -char *vera_layer_set_config::addr -char *vera_layer_set_config::addr#0 -char vera_layer_set_config::config -char vera_layer_set_config::config#0 -char vera_layer_set_config::config#1 -char vera_layer_set_config::layer -char vera_layer_set_config::layer#0 -char vera_layer_set_config::layer#1 -void vera_layer_set_mapbase(char layer , char mapbase) -char vera_layer_set_mapbase::$0 -char *vera_layer_set_mapbase::addr -char *vera_layer_set_mapbase::addr#0 -char vera_layer_set_mapbase::layer -char vera_layer_set_mapbase::layer#0 -char vera_layer_set_mapbase::layer#1 -char vera_layer_set_mapbase::layer#2 -char vera_layer_set_mapbase::layer#3 -char vera_layer_set_mapbase::mapbase -char vera_layer_set_mapbase::mapbase#0 -char vera_layer_set_mapbase::mapbase#1 -char vera_layer_set_mapbase::mapbase#2 -char vera_layer_set_mapbase::mapbase#3 -void vera_layer_set_text_color_mode(char layer , char color_mode) -char vera_layer_set_text_color_mode::$0 -char *vera_layer_set_text_color_mode::addr -char *vera_layer_set_text_color_mode::addr#0 -char vera_layer_set_text_color_mode::color_mode -char vera_layer_set_text_color_mode::color_mode#0 -char vera_layer_set_text_color_mode::color_mode#1 -char vera_layer_set_text_color_mode::color_mode#2 -char vera_layer_set_text_color_mode::layer -char vera_layer_set_text_color_mode::layer#0 -char vera_layer_set_text_color_mode::layer#1 -char vera_layer_set_text_color_mode::layer#2 -char vera_layer_set_textcolor(char layer , char color) -char vera_layer_set_textcolor::color -char vera_layer_set_textcolor::color#0 -char vera_layer_set_textcolor::color#1 -char vera_layer_set_textcolor::color#2 -char vera_layer_set_textcolor::layer -char vera_layer_set_textcolor::layer#0 -char vera_layer_set_textcolor::layer#1 -char vera_layer_set_textcolor::layer#2 -char vera_layer_set_textcolor::old -char vera_layer_set_textcolor::old#0 -char vera_layer_set_textcolor::return -char vera_layer_set_textcolor::return#0 -char vera_layer_set_textcolor::return#1 -char vera_layer_set_textcolor::return#2 -char vera_layer_set_textcolor::return#3 -char vera_layer_set_textcolor::return#4 -void vera_layer_set_tilebase(char layer , char tilebase) -char vera_layer_set_tilebase::$0 -char *vera_layer_set_tilebase::addr -char *vera_layer_set_tilebase::addr#0 -char vera_layer_set_tilebase::layer -char vera_layer_set_tilebase::layer#0 -char vera_layer_set_tilebase::layer#1 -char vera_layer_set_tilebase::tilebase -char vera_layer_set_tilebase::tilebase#0 -char vera_layer_set_tilebase::tilebase#1 -__constant char vera_layer_textcolor[2] = { WHITE, WHITE } -__constant char *vera_layer_tilebase[2] = { VERA_L0_TILEBASE, VERA_L1_TILEBASE } -__constant const char vera_layer_vflip[2] = { 0, 8 } -__constant unsigned long vera_mapbase_address[2] = { 0, 0 } -__constant char vera_mapbase_bank[2] = { 0, 0 } -__constant unsigned int vera_mapbase_offset[2] = { 0, 0 } -void vera_tile_area(char layer , unsigned int tileindex , char x , char y , char w , char h , char hflip , char vflip , char offset) -char vera_tile_area::$1 -unsigned int vera_tile_area::$10 -unsigned int vera_tile_area::$4 -char vera_tile_area::$5 -bool vera_tile_area::$6 -bool vera_tile_area::$8 -char vera_tile_area::$9 -char vera_tile_area::c -char vera_tile_area::c#0 -char vera_tile_area::c#1 -char vera_tile_area::c#2 -char vera_tile_area::c#3 -char vera_tile_area::h -char vera_tile_area::h#0 -char vera_tile_area::h#1 -char vera_tile_area::h#10 -char vera_tile_area::h#2 -char vera_tile_area::h#3 -char vera_tile_area::h#4 -char vera_tile_area::h#5 -char vera_tile_area::h#6 -char vera_tile_area::h#7 -char vera_tile_area::h#8 -char vera_tile_area::h#9 -char vera_tile_area::hflip -char vera_tile_area::hflip#0 -char vera_tile_area::hflip#1 -char vera_tile_area::hflip#2 -char vera_tile_area::hflip#3 -char vera_tile_area::hflip#4 -char vera_tile_area::index_h -char vera_tile_area::index_h#0 -char vera_tile_area::index_h#1 -char vera_tile_area::index_h#10 -char vera_tile_area::index_h#2 -char vera_tile_area::index_h#3 -char vera_tile_area::index_h#4 -char vera_tile_area::index_h#5 -char vera_tile_area::index_h#6 -char vera_tile_area::index_h#7 -char vera_tile_area::index_h#8 -char vera_tile_area::index_h#9 -char vera_tile_area::index_l -char vera_tile_area::index_l#0 -char vera_tile_area::index_l#1 -char vera_tile_area::index_l#2 -char vera_tile_area::index_l#3 -char vera_tile_area::index_l#4 -char vera_tile_area::index_l#5 -char vera_tile_area::index_l#6 -char vera_tile_area::index_l#7 -char vera_tile_area::layer -char vera_tile_area::layer#0 -char vera_tile_area::layer#1 -char vera_tile_area::layer#2 -char vera_tile_area::layer#3 -unsigned long vera_tile_area::mapbase -unsigned long vera_tile_area::mapbase#0 -unsigned long vera_tile_area::mapbase#1 -unsigned long vera_tile_area::mapbase#10 -unsigned long vera_tile_area::mapbase#2 -unsigned long vera_tile_area::mapbase#3 -unsigned long vera_tile_area::mapbase#4 -unsigned long vera_tile_area::mapbase#5 -unsigned long vera_tile_area::mapbase#6 -unsigned long vera_tile_area::mapbase#7 -unsigned long vera_tile_area::mapbase#8 -unsigned long vera_tile_area::mapbase#9 -char vera_tile_area::offset -char vera_tile_area::offset#0 -char vera_tile_area::offset#1 -char vera_tile_area::offset#2 -char vera_tile_area::offset#3 -char vera_tile_area::offset#4 -char vera_tile_area::r -char vera_tile_area::r#0 -char vera_tile_area::r#1 -char vera_tile_area::r#2 -char vera_tile_area::r#3 -char vera_tile_area::r#4 -char vera_tile_area::r#5 -char vera_tile_area::r#6 -char vera_tile_area::r#7 -char vera_tile_area::r#8 -unsigned int vera_tile_area::rowskip -unsigned int vera_tile_area::rowskip#0 -unsigned int vera_tile_area::rowskip#1 -unsigned int vera_tile_area::rowskip#2 -unsigned int vera_tile_area::rowskip#3 -unsigned int vera_tile_area::rowskip#4 -unsigned int vera_tile_area::rowskip#5 -unsigned int vera_tile_area::rowskip#6 -unsigned int vera_tile_area::rowskip#7 -char vera_tile_area::shift -char vera_tile_area::shift#0 -unsigned int vera_tile_area::tileindex -unsigned int vera_tile_area::tileindex#0 -unsigned int vera_tile_area::tileindex#1 -unsigned int vera_tile_area::tileindex#2 -unsigned int vera_tile_area::tileindex#3 -char vera_tile_area::vera_vram_address01_$0 -char vera_tile_area::vera_vram_address01_$1 -char vera_tile_area::vera_vram_address01_$2 -char vera_tile_area::vera_vram_address01_$3 -unsigned long vera_tile_area::vera_vram_address01_bankaddr -unsigned long vera_tile_area::vera_vram_address01_bankaddr#0 -unsigned long vera_tile_area::vera_vram_address01_bankaddr#1 -char vera_tile_area::vera_vram_address01_incr -char vera_tile_area::vera_vram_address01_incr#0 -char vera_tile_area::vera_vram_address01_incr#1 -char vera_tile_area::vflip -char vera_tile_area::vflip#0 -char vera_tile_area::vflip#1 -char vera_tile_area::vflip#2 -char vera_tile_area::vflip#3 -char vera_tile_area::vflip#4 -char vera_tile_area::w -char vera_tile_area::w#0 -char vera_tile_area::w#1 -char vera_tile_area::w#10 -char vera_tile_area::w#2 -char vera_tile_area::w#3 -char vera_tile_area::w#4 -char vera_tile_area::w#5 -char vera_tile_area::w#6 -char vera_tile_area::w#7 -char vera_tile_area::w#8 -char vera_tile_area::w#9 -char vera_tile_area::x -char vera_tile_area::x#0 -char vera_tile_area::x#1 -char vera_tile_area::x#2 -char vera_tile_area::x#3 -char vera_tile_area::y -char vera_tile_area::y#0 -char vera_tile_area::y#1 -char vera_tile_area::y#2 -char vera_tile_area::y#3 -__constant unsigned long vera_tilebase_address[2] = { 0, 0 } -__constant char vera_tilebase_bank[2] = { 0, 0 } -__constant unsigned int vera_tilebase_offset[2] = { 0, 0 } - -Adding number conversion cast (unumber) 0 in vera_layer_get_color::$4 = 0 != vera_layer_get_color::$0 -Adding number conversion cast (unumber) 4 in vera_layer_get_color::$1 = vera_layer_backcolor[vera_layer_get_color::layer#4] << 4 -Adding number conversion cast (unumber) 1 in if(vera_layer_mode_tile::color_depth#2==1) goto vera_layer_mode_tile::@4 -Adding number conversion cast (unumber) 2 in if(vera_layer_mode_tile::color_depth#3==2) goto vera_layer_mode_tile::@5 -Adding number conversion cast (unumber) 4 in if(vera_layer_mode_tile::color_depth#4==4) goto vera_layer_mode_tile::@6 -Adding number conversion cast (unumber) 8 in if(vera_layer_mode_tile::color_depth#5==8) goto vera_layer_mode_tile::@7 -Adding number conversion cast (unumber) $20 in if(vera_layer_mode_tile::mapwidth#2==$20) goto vera_layer_mode_tile::@12 -Adding number conversion cast (unumber) 6 in vera_layer_rowshift[vera_layer_mode_tile::layer#2] = 6 -Adding number conversion cast (unumber) $40 in vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 -Adding number conversion cast (unumber) $40 in if(vera_layer_mode_tile::mapwidth#3==$40) goto vera_layer_mode_tile::@13 -Adding number conversion cast (unumber) 7 in vera_layer_rowshift[vera_layer_mode_tile::layer#3] = 7 -Adding number conversion cast (unumber) $80 in vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 -Adding number conversion cast (unumber) $80 in if(vera_layer_mode_tile::mapwidth#4==$80) goto vera_layer_mode_tile::@14 -Adding number conversion cast (unumber) 8 in vera_layer_rowshift[vera_layer_mode_tile::layer#4] = 8 -Adding number conversion cast (unumber) $100 in vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 -Adding number conversion cast (unumber) $100 in if(vera_layer_mode_tile::mapwidth#5==$100) goto vera_layer_mode_tile::@15 -Adding number conversion cast (unumber) 9 in vera_layer_rowshift[vera_layer_mode_tile::layer#5] = 9 -Adding number conversion cast (unumber) $200 in vera_layer_rowskip[vera_layer_mode_tile::$14] = $200 -Adding number conversion cast (unumber) $20 in if(vera_layer_mode_tile::mapheight#2==$20) goto vera_layer_mode_tile::@20 -Adding number conversion cast (unumber) $40 in if(vera_layer_mode_tile::mapheight#3==$40) goto vera_layer_mode_tile::@21 -Adding number conversion cast (unumber) $80 in if(vera_layer_mode_tile::mapheight#4==$80) goto vera_layer_mode_tile::@22 -Adding number conversion cast (unumber) $100 in if(vera_layer_mode_tile::mapheight#5==$100) goto vera_layer_mode_tile::@23 -Adding number conversion cast (unumber) 1 in vera_layer_mode_tile::$3 = vera_layer_mode_tile::mapbase_address#3 >> 1 -Adding number conversion cast (unumber) 1 in vera_layer_mode_tile::$8 = vera_layer_mode_tile::tilebase_address#3 >> 1 -Adding number conversion cast (unumber) 8 in if(vera_layer_mode_tile::tilewidth#2==8) goto vera_layer_mode_tile::@26 -Adding number conversion cast (unumber) $10 in if(vera_layer_mode_tile::tilewidth#3==$10) goto vera_layer_mode_tile::@27 -Adding number conversion cast (unumber) 8 in if(vera_layer_mode_tile::tileheight#2==8) goto vera_layer_mode_tile::@30 -Adding number conversion cast (unumber) $10 in if(vera_layer_mode_tile::tileheight#3==$10) goto vera_layer_mode_tile::@31 -Adding number conversion cast (unumber) 1 in vera_layer_mode_tile::color_depth#0 = 1 -Adding number conversion cast (unumber) $10 in if(vera_layer_mode_text::color_mode#1==$10) goto vera_layer_mode_text::@2 -Adding number conversion cast (unumber) $100 in if(vera_layer_mode_text::color_mode#2==$100) goto vera_layer_mode_text::@3 -Adding number conversion cast (unumber) 4 in vera_tile_area::$1 = vera_tile_area::offset#4 << 4 -Adding number conversion cast (unumber) 1 in vera_tile_area::$5 = vera_tile_area::x#3 << 1 -Adding number conversion cast (unumber) 4 in clrscr::$1 = clrscr::$0 << 4 -Adding number conversion cast (unumber) 0 in conio_cursor_x[conio_screen_layer] = 0 -Adding number conversion cast (unumber) 0 in conio_cursor_y[conio_screen_layer] = 0 -Adding number conversion cast (unumber) 0 in conio_line_text[clrscr::$9] = 0 -Adding number conversion cast (unumber) 0 in gotoxy::y#0 = 0 -Adding number conversion cast (unumber) 0 in gotoxy::x#0 = 0 -Adding number conversion cast (unumber) 7 in screensize::hscale#0 = *VERA_DC_HSCALE >> 7 -Adding number conversion cast (unumber) $28 in screensize::$1 = $28 << screensize::hscale#0 -Adding number conversion cast (unumber) screensize::$1 in screensize::$1 = (unumber)$28 << screensize::hscale#0 -Adding number conversion cast (unumber) 7 in screensize::vscale#0 = *VERA_DC_VSCALE >> 7 -Adding number conversion cast (unumber) $1e in screensize::$3 = $1e << screensize::vscale#0 -Adding number conversion cast (unumber) screensize::$3 in screensize::$3 = (unumber)$1e << screensize::vscale#0 -Adding number conversion cast (unumber) 1 in cputc::$2 = conio_cursor_x[conio_screen_layer] << 1 -Adding number conversion cast (unumber) 0 in cputc::$17 = 0 != cputc::scroll_enable#0 -Adding number conversion cast (unumber) 0 in conio_cursor_x[conio_screen_layer] = 0 -Adding number conversion cast (unumber) 1 in vera_layer_mode_text::layer#0 = 1 -Adding number conversion cast (unumber) $80 in vera_layer_mode_text::mapwidth#0 = $80 -Adding number conversion cast (unumber) $40 in vera_layer_mode_text::mapheight#0 = $40 -Adding number conversion cast (unumber) 8 in vera_layer_mode_text::tilewidth#0 = 8 -Adding number conversion cast (unumber) 8 in vera_layer_mode_text::tileheight#0 = 8 -Adding number conversion cast (unumber) $10 in vera_layer_mode_text::color_mode#0 = $10 -Adding number conversion cast (unumber) 1 in screenlayer::layer#0 = 1 -Adding number conversion cast (unumber) 1 in vera_layer_set_textcolor::layer#0 = 1 -Adding number conversion cast (unumber) 1 in vera_layer_set_backcolor::layer#0 = 1 -Adding number conversion cast (unumber) 0 in vera_layer_set_mapbase::layer#1 = 0 -Adding number conversion cast (unumber) $20 in vera_layer_set_mapbase::mapbase#1 = $20 -Adding number conversion cast (unumber) 1 in vera_layer_set_mapbase::layer#2 = 1 -Adding number conversion cast (unumber) 0 in vera_layer_set_mapbase::mapbase#2 = 0 -Adding number conversion cast (unumber) 0 in gotoxy::x#1 = 0 -Adding number conversion cast (unumber) 1 in conio_x16_init::$9 = conio_screen_height - 1 -Adding number conversion cast (unumber) conio_x16_init::$9 in conio_x16_init::$9 = conio_screen_height - (unumber)1 -Adding number conversion cast (unumber) 0 in conio_cursor_x[conio_screen_layer] = 0 -Adding number conversion cast (unumber) 2 in insertup::width#0 = conio_screen_width * 2 -Adding number conversion cast (unumber) 1 in insertup::$3 = insertup::i#3 - 1 -Adding number conversion cast (unumber) insertup::$3 in insertup::$3 = insertup::i#3 - (unumber)1 -Adding number conversion cast (unumber) 0 in memcpy_in_vram::dest_bank#0 = 0 -Adding number conversion cast (unumber) 0 in memcpy_in_vram::src_bank#0 = 0 -Adding number conversion cast (unumber) 0 in cscroll::$7 = 0 != conio_scroll_enable[conio_screen_layer] -Adding number conversion cast (unumber) 1 in cscroll::$5 = conio_screen_height - 1 -Adding number conversion cast (unumber) cscroll::$5 in cscroll::$5 = conio_screen_height - (unumber)1 -Adding number conversion cast (unumber) 0 in gotoxy::x#2 = 0 -Adding number conversion cast (unumber) 4 in screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 -Adding number conversion cast (unumber) 6 in screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 -Adding number conversion cast (unumber) 0 in printf_str::$2 = 0 != printf_str::$0 -Adding number conversion cast (unumber) 0 in vera_layer_mode_tile::layer#1 = 0 -Adding number conversion cast (unumber) $4000 in vera_layer_mode_tile::mapbase_address#2 = $4000 -Adding number conversion cast (unumber) $14000 in vera_layer_mode_tile::tilebase_address#2 = $14000 -Adding number conversion cast (unumber) $80 in vera_layer_mode_tile::mapwidth#1 = $80 -Adding number conversion cast (unumber) $80 in vera_layer_mode_tile::mapheight#1 = $80 -Adding number conversion cast (unumber) 8 in vera_layer_mode_tile::tilewidth#1 = 8 -Adding number conversion cast (unumber) 8 in vera_layer_mode_tile::tileheight#1 = 8 -Adding number conversion cast (unumber) 8 in vera_layer_mode_tile::color_depth#1 = 8 -Adding number conversion cast (unumber) 1 in memcpy_to_vram::vbank#0 = 1 -Adding number conversion cast (unumber) $40 in memcpy_to_vram::num#0 = $40 -Adding number conversion cast (unumber) $40 in main::tilebase#1 = main::tilebase#3 + $40 -Adding number conversion cast (unumber) 1 in main::tiles[main::p#2] = main::tiles[main::p#2] + 1 -Adding number conversion cast (unumber) 1 in memcpy_to_vram::vbank#1 = 1 -Adding number conversion cast (unumber) $40 in memcpy_to_vram::num#1 = $40 -Adding number conversion cast (unumber) $40 in main::tilebase#2 = main::tilebase#5 + $40 -Adding number conversion cast (unumber) 0 in vera_tile_area::layer#0 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::tileindex#0 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::x#0 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::y#0 = 0 -Adding number conversion cast (unumber) $50 in vera_tile_area::w#0 = $50 -Adding number conversion cast (unumber) $3c in vera_tile_area::h#0 = $3c -Adding number conversion cast (unumber) 0 in vera_tile_area::hflip#1 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::vflip#1 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::offset#1 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::layer#1 = 0 -Adding number conversion cast (unumber) 1 in vera_tile_area::w#1 = 1 -Adding number conversion cast (unumber) 1 in vera_tile_area::h#1 = 1 -Adding number conversion cast (unumber) 0 in vera_tile_area::hflip#2 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::vflip#2 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::offset#2 = 0 -Adding number conversion cast (unumber) 2 in main::column#1 = main::column#3 + 2 -Adding number conversion cast (unumber) $ff in main::tile#2 = main::tile#1 & $ff -Adding number conversion cast (unumber) 2 in main::row#1 = main::row#5 + 2 -Adding number conversion cast (unumber) 0 in main::tile#3 = 0 -Adding number conversion cast (unumber) $14 in main::row#2 = $14 -Adding number conversion cast (unumber) 0 in vera_tile_area::layer#2 = 0 -Adding number conversion cast (unumber) 2 in vera_tile_area::w#2 = 2 -Adding number conversion cast (unumber) 2 in vera_tile_area::h#2 = 2 -Adding number conversion cast (unumber) 0 in vera_tile_area::hflip#3 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::vflip#3 = 0 -Adding number conversion cast (unumber) 0 in vera_tile_area::offset#3 = 0 -Adding number conversion cast (unumber) 2 in main::column1#1 = main::column1#3 + 2 -Adding number conversion cast (unumber) $ff in main::tile#5 = main::tile#4 & $ff -Adding number conversion cast (unumber) 2 in main::row#3 = main::row#7 + 2 -Adding number conversion cast (unumber) 0 in main::vera_layer_show1_layer#0 = 0 -Adding number conversion cast (unumber) 0 in gotoxy::x#3 = 0 -Adding number conversion cast (unumber) $32 in gotoxy::y#3 = $32 -Adding number conversion cast (unumber) 0 in main::$27 = 0 != main::$25 -Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memcpy_to_vram::s#0 = (char *)memcpy_to_vram::src#2 -Inlining cast vera_layer_rowshift[vera_layer_mode_tile::layer#2] = (unumber)6 -Inlining cast vera_layer_rowskip[vera_layer_mode_tile::$11] = (unumber)$40 -Inlining cast vera_layer_rowshift[vera_layer_mode_tile::layer#3] = (unumber)7 -Inlining cast vera_layer_rowskip[vera_layer_mode_tile::$12] = (unumber)$80 -Inlining cast vera_layer_rowshift[vera_layer_mode_tile::layer#4] = (unumber)8 -Inlining cast vera_layer_rowskip[vera_layer_mode_tile::$13] = (unumber)$100 -Inlining cast vera_layer_rowshift[vera_layer_mode_tile::layer#5] = (unumber)9 -Inlining cast vera_layer_rowskip[vera_layer_mode_tile::$14] = (unumber)$200 -Inlining cast vera_layer_mode_tile::color_depth#0 = (unumber)1 -Inlining cast conio_cursor_x[conio_screen_layer] = (unumber)0 -Inlining cast conio_cursor_y[conio_screen_layer] = (unumber)0 -Inlining cast conio_line_text[clrscr::$9] = (unumber)0 -Inlining cast gotoxy::y#0 = (unumber)0 -Inlining cast gotoxy::x#0 = (unumber)0 -Inlining cast conio_cursor_x[conio_screen_layer] = (unumber)0 -Inlining cast vera_layer_mode_text::layer#0 = (unumber)1 -Inlining cast vera_layer_mode_text::mapwidth#0 = (unumber)$80 -Inlining cast vera_layer_mode_text::mapheight#0 = (unumber)$40 -Inlining cast vera_layer_mode_text::tilewidth#0 = (unumber)8 -Inlining cast vera_layer_mode_text::tileheight#0 = (unumber)8 -Inlining cast vera_layer_mode_text::color_mode#0 = (unumber)$10 -Inlining cast screenlayer::layer#0 = (unumber)1 -Inlining cast vera_layer_set_textcolor::layer#0 = (unumber)1 -Inlining cast vera_layer_set_backcolor::layer#0 = (unumber)1 -Inlining cast vera_layer_set_mapbase::layer#1 = (unumber)0 -Inlining cast vera_layer_set_mapbase::mapbase#1 = (unumber)$20 -Inlining cast vera_layer_set_mapbase::layer#2 = (unumber)1 -Inlining cast vera_layer_set_mapbase::mapbase#2 = (unumber)0 -Inlining cast gotoxy::x#1 = (unumber)0 -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 vera_layer_mode_tile::layer#1 = (unumber)0 -Inlining cast vera_layer_mode_tile::mapbase_address#2 = (unumber)$4000 -Inlining cast vera_layer_mode_tile::tilebase_address#2 = (unumber)$14000 -Inlining cast vera_layer_mode_tile::mapwidth#1 = (unumber)$80 -Inlining cast vera_layer_mode_tile::mapheight#1 = (unumber)$80 -Inlining cast vera_layer_mode_tile::tilewidth#1 = (unumber)8 -Inlining cast vera_layer_mode_tile::tileheight#1 = (unumber)8 -Inlining cast vera_layer_mode_tile::color_depth#1 = (unumber)8 -Inlining cast memcpy_to_vram::vbank#0 = (unumber)1 -Inlining cast memcpy_to_vram::num#0 = (unumber)$40 -Inlining cast memcpy_to_vram::vbank#1 = (unumber)1 -Inlining cast memcpy_to_vram::num#1 = (unumber)$40 -Inlining cast vera_tile_area::layer#0 = (unumber)0 -Inlining cast vera_tile_area::tileindex#0 = (unumber)0 -Inlining cast vera_tile_area::x#0 = (unumber)0 -Inlining cast vera_tile_area::y#0 = (unumber)0 -Inlining cast vera_tile_area::w#0 = (unumber)$50 -Inlining cast vera_tile_area::h#0 = (unumber)$3c -Inlining cast vera_tile_area::hflip#1 = (unumber)0 -Inlining cast vera_tile_area::vflip#1 = (unumber)0 -Inlining cast vera_tile_area::offset#1 = (unumber)0 -Inlining cast vera_tile_area::layer#1 = (unumber)0 -Inlining cast vera_tile_area::w#1 = (unumber)1 -Inlining cast vera_tile_area::h#1 = (unumber)1 -Inlining cast vera_tile_area::hflip#2 = (unumber)0 -Inlining cast vera_tile_area::vflip#2 = (unumber)0 -Inlining cast vera_tile_area::offset#2 = (unumber)0 -Inlining cast main::tile#3 = (unumber)0 -Inlining cast main::row#2 = (unumber)$14 -Inlining cast vera_tile_area::layer#2 = (unumber)0 -Inlining cast vera_tile_area::w#2 = (unumber)2 -Inlining cast vera_tile_area::h#2 = (unumber)2 -Inlining cast vera_tile_area::hflip#3 = (unumber)0 -Inlining cast vera_tile_area::vflip#3 = (unumber)0 -Inlining cast vera_tile_area::offset#3 = (unumber)0 -Inlining cast main::vera_layer_show1_layer#0 = (unumber)0 -Inlining cast gotoxy::x#3 = (unumber)0 -Inlining cast gotoxy::y#3 = (unumber)$32 -Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (char *) 40736 -Simplifying constant pointer cast (char *) 40737 -Simplifying constant pointer cast (char *) 40738 -Simplifying constant pointer cast (char *) 40739 -Simplifying constant pointer cast (char *) 40740 -Simplifying constant pointer cast (char *) 40741 -Simplifying constant pointer cast (char *) 40745 -Simplifying constant pointer cast (char *) 40746 -Simplifying constant pointer cast (char *) 40747 -Simplifying constant pointer cast (char *) 40749 -Simplifying constant pointer cast (char *) 40750 -Simplifying constant pointer cast (char *) 40751 -Simplifying constant pointer cast (char *) 40756 -Simplifying constant pointer cast (char *) 40757 -Simplifying constant pointer cast (char *) 40758 -Simplifying constant pointer cast (char *) 0 -Simplifying constant pointer cast (char *) 650 -Simplifying constant pointer cast (char *) 65508 -Simplifying constant pointer cast (char *) 214 -Simplifying constant integer cast 0 -Simplifying constant integer cast 4 -Simplifying constant integer cast 1 -Simplifying constant integer cast 2 -Simplifying constant integer cast 4 -Simplifying constant integer cast 8 -Simplifying constant integer cast $20 -Simplifying constant integer cast 6 -Simplifying constant integer cast $40 -Simplifying constant integer cast $40 -Simplifying constant integer cast 7 -Simplifying constant integer cast $80 -Simplifying constant integer cast $80 -Simplifying constant integer cast 8 -Simplifying constant integer cast $100 -Simplifying constant integer cast $100 -Simplifying constant integer cast 9 -Simplifying constant integer cast $200 -Simplifying constant integer cast $20 -Simplifying constant integer cast $40 -Simplifying constant integer cast $80 -Simplifying constant integer cast $100 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 8 -Simplifying constant integer cast $10 -Simplifying constant integer cast 8 -Simplifying constant integer cast $10 -Simplifying constant integer cast 1 -Simplifying constant integer cast $10 -Simplifying constant integer cast $100 -Simplifying constant integer cast 1 -Simplifying constant integer cast 4 -Simplifying constant integer cast 1 -Simplifying constant integer cast 4 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 7 -Simplifying constant integer cast $28 -Simplifying constant integer cast 7 -Simplifying constant integer cast $1e -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast $f800 -Simplifying constant integer cast $80 -Simplifying constant integer cast $40 -Simplifying constant integer cast 8 -Simplifying constant integer cast 8 -Simplifying constant integer cast $10 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast $20 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 2 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 4 -Simplifying constant integer cast 6 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast $4000 -Simplifying constant integer cast $14000 -Simplifying constant integer cast $80 -Simplifying constant integer cast $80 -Simplifying constant integer cast 8 -Simplifying constant integer cast 8 -Simplifying constant integer cast 8 -Simplifying constant pointer cast (char *) 16384 -Simplifying constant integer cast 1 -Simplifying constant integer cast $40 -Simplifying constant integer cast $40 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast $40 -Simplifying constant integer cast $40 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast $50 -Simplifying constant integer cast $3c -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 2 -Simplifying constant integer cast $ff -Simplifying constant integer cast 2 -Simplifying constant integer cast 0 -Simplifying constant integer cast $14 -Simplifying constant integer cast 0 -Simplifying constant integer cast 2 -Simplifying constant integer cast 2 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 2 -Simplifying constant integer cast $ff -Simplifying constant integer cast 2 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast $32 -Simplifying constant integer cast 0 -Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) $20 -Finalized unsigned number type (char) 6 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) 7 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (char) 9 -Finalized unsigned number type (unsigned int) $200 -Finalized unsigned number type (char) $20 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) $10 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) $10 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) $10 -Finalized unsigned number type (unsigned int) $100 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 7 -Finalized unsigned number type (char) $28 -Finalized unsigned number type (char) 7 -Finalized unsigned number type (char) $1e -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) $10 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $20 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 4 -Finalized unsigned number type (char) 6 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (unsigned int) $4000 -Finalized unsigned number type (unsigned long) $14000 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) $80 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 8 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) $40 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $50 -Finalized unsigned number type (char) $3c -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 1 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) $ff -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $14 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) $ff -Finalized unsigned number type (char) 2 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) 0 -Finalized unsigned number type (char) $32 -Finalized unsigned number type (char) 0 -Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to char in screensize::$1 = $28 << screensize::hscale#0 -Inferred type updated to char in screensize::$3 = $1e << screensize::vscale#0 -Inferred type updated to char in conio_x16_init::$9 = conio_screen_height - 1 -Inferred type updated to char in insertup::$3 = insertup::i#3 - 1 -Inferred type updated to char in cscroll::$5 = conio_screen_height - 1 -Inversing boolean not [350] gotoxy::$1 = gotoxy::y#4 <= conio_screen_height from [349] gotoxy::$0 = gotoxy::y#4 > conio_screen_height -Inversing boolean not [354] gotoxy::$3 = gotoxy::x#4 < conio_screen_width from [353] gotoxy::$2 = gotoxy::x#4 >= conio_screen_width -Inversing boolean not [407] cputc::$12 = conio_cursor_x[conio_screen_layer] != conio_screen_width from [406] cputc::$11 = conio_cursor_x[conio_screen_layer] == conio_screen_width -Inversing boolean not [412] cputc::$9 = cputc::$16 != conio_width from [411] cputc::$8 = cputc::$16 == conio_width -Inversing boolean not [475] conio_x16_init::$8 = conio_x16_init::line#2 < conio_screen_height from [474] conio_x16_init::$7 = conio_x16_init::line#2 >= conio_screen_height -Inversing boolean not [540] cscroll::$1 = conio_cursor_y[conio_screen_layer] < conio_screen_height from [539] cscroll::$0 = conio_cursor_y[conio_screen_layer] >= conio_screen_height -Inversing boolean not [552] cscroll::$3 = conio_cursor_y[conio_screen_layer] < conio_height from [551] cscroll::$2 = conio_cursor_y[conio_screen_layer] >= conio_height -Inversing boolean not [781] main::$26 = 0 == main::$25 from [780] main::$27 = 0 != main::$25 -Successful SSA optimization Pass2UnaryNotSimplification -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#3 kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#2 screenlayer::vera_layer_get_width1_return#1 screenlayer::vera_layer_get_width1_return#3 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#2 screenlayer::vera_layer_get_height1_return#1 screenlayer::vera_layer_get_height1_return#3 screenlayer::$5 conio_height -Alias memcpy_to_vram::s#2 = memcpy_to_vram::s#3 -Alias memcpy_to_vram::end#1 = memcpy_to_vram::end#2 -Alias memcpy_in_vram::i#2 = memcpy_in_vram::i#3 -Alias memcpy_in_vram::num#1 = memcpy_in_vram::num#3 -Alias vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#3 vera_layer_get_mapbase_bank::return#1 -Alias vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#3 vera_layer_get_mapbase_offset::return#1 -Alias vera_layer_set_textcolor::return#0 = vera_layer_set_textcolor::old#0 vera_layer_set_textcolor::return#4 vera_layer_set_textcolor::return#1 -Alias vera_layer_get_textcolor::return#0 = vera_layer_get_textcolor::return#3 vera_layer_get_textcolor::return#1 -Alias vera_layer_set_backcolor::return#0 = vera_layer_set_backcolor::old#0 vera_layer_set_backcolor::return#4 vera_layer_set_backcolor::return#1 -Alias vera_layer_get_backcolor::return#0 = vera_layer_get_backcolor::return#3 vera_layer_get_backcolor::return#1 -Alias vera_layer_get_color::layer#2 = vera_layer_get_color::layer#3 vera_layer_get_color::layer#4 -Alias vera_layer_get_color::return#1 = vera_layer_get_color::$2 -Alias vera_layer_get_color::return#2 = vera_layer_get_color::return#5 -Alias vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#3 vera_layer_get_rowshift::return#1 -Alias vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#3 vera_layer_get_rowskip::return#1 -Alias vera_layer_mode_tile::config#0 = vera_layer_mode_tile::config#13 vera_layer_mode_tile::config#26 vera_layer_mode_tile::config#14 vera_layer_mode_tile::config#27 vera_layer_mode_tile::config#15 vera_layer_mode_tile::config#28 vera_layer_mode_tile::config#16 -Alias vera_layer_mode_tile::mapwidth#10 = vera_layer_mode_tile::mapwidth#7 vera_layer_mode_tile::mapwidth#11 vera_layer_mode_tile::mapwidth#12 vera_layer_mode_tile::mapwidth#8 vera_layer_mode_tile::mapwidth#13 vera_layer_mode_tile::mapwidth#9 vera_layer_mode_tile::mapwidth#6 -Alias vera_layer_mode_tile::layer#22 = vera_layer_mode_tile::layer#23 vera_layer_mode_tile::layer#31 vera_layer_mode_tile::layer#32 vera_layer_mode_tile::layer#24 vera_layer_mode_tile::layer#33 vera_layer_mode_tile::layer#25 vera_layer_mode_tile::layer#26 -Alias vera_layer_mode_tile::mapheight#14 = vera_layer_mode_tile::mapheight#15 vera_layer_mode_tile::mapheight#19 vera_layer_mode_tile::mapheight#20 vera_layer_mode_tile::mapheight#16 vera_layer_mode_tile::mapheight#21 vera_layer_mode_tile::mapheight#17 vera_layer_mode_tile::mapheight#18 -Alias vera_layer_mode_tile::mapbase_address#21 = vera_layer_mode_tile::mapbase_address#22 vera_layer_mode_tile::mapbase_address#26 vera_layer_mode_tile::mapbase_address#27 vera_layer_mode_tile::mapbase_address#23 vera_layer_mode_tile::mapbase_address#28 vera_layer_mode_tile::mapbase_address#24 vera_layer_mode_tile::mapbase_address#25 -Alias vera_layer_mode_tile::tilebase_address#22 = vera_layer_mode_tile::tilebase_address#23 vera_layer_mode_tile::tilebase_address#27 vera_layer_mode_tile::tilebase_address#28 vera_layer_mode_tile::tilebase_address#24 vera_layer_mode_tile::tilebase_address#29 vera_layer_mode_tile::tilebase_address#25 vera_layer_mode_tile::tilebase_address#26 -Alias vera_layer_mode_tile::tilewidth#22 = vera_layer_mode_tile::tilewidth#23 vera_layer_mode_tile::tilewidth#27 vera_layer_mode_tile::tilewidth#28 vera_layer_mode_tile::tilewidth#24 vera_layer_mode_tile::tilewidth#29 vera_layer_mode_tile::tilewidth#25 vera_layer_mode_tile::tilewidth#26 -Alias vera_layer_mode_tile::tileheight#26 = vera_layer_mode_tile::tileheight#27 vera_layer_mode_tile::tileheight#31 vera_layer_mode_tile::tileheight#32 vera_layer_mode_tile::tileheight#28 vera_layer_mode_tile::tileheight#33 vera_layer_mode_tile::tileheight#29 vera_layer_mode_tile::tileheight#30 -Alias vera_layer_mode_tile::color_depth#2 = vera_layer_mode_tile::color_depth#3 vera_layer_mode_tile::color_depth#4 vera_layer_mode_tile::color_depth#5 -Alias vera_layer_mode_tile::config#17 = vera_layer_mode_tile::config#29 vera_layer_mode_tile::config#30 vera_layer_mode_tile::config#18 vera_layer_mode_tile::config#31 vera_layer_mode_tile::config#19 vera_layer_mode_tile::config#32 vera_layer_mode_tile::config#20 -Alias vera_layer_mode_tile::layer#10 = vera_layer_mode_tile::layer#2 vera_layer_mode_tile::layer#11 vera_layer_mode_tile::layer#3 vera_layer_mode_tile::layer#12 vera_layer_mode_tile::layer#4 vera_layer_mode_tile::layer#13 vera_layer_mode_tile::layer#5 -Alias vera_layer_mode_tile::mapheight#10 = vera_layer_mode_tile::mapheight#7 vera_layer_mode_tile::mapheight#11 vera_layer_mode_tile::mapheight#12 vera_layer_mode_tile::mapheight#8 vera_layer_mode_tile::mapheight#13 vera_layer_mode_tile::mapheight#9 vera_layer_mode_tile::mapheight#6 -Alias vera_layer_mode_tile::mapbase_address#13 = vera_layer_mode_tile::mapbase_address#14 vera_layer_mode_tile::mapbase_address#18 vera_layer_mode_tile::mapbase_address#19 vera_layer_mode_tile::mapbase_address#15 vera_layer_mode_tile::mapbase_address#20 vera_layer_mode_tile::mapbase_address#16 vera_layer_mode_tile::mapbase_address#17 -Alias vera_layer_mode_tile::tilebase_address#14 = vera_layer_mode_tile::tilebase_address#15 vera_layer_mode_tile::tilebase_address#19 vera_layer_mode_tile::tilebase_address#20 vera_layer_mode_tile::tilebase_address#16 vera_layer_mode_tile::tilebase_address#21 vera_layer_mode_tile::tilebase_address#17 vera_layer_mode_tile::tilebase_address#18 -Alias vera_layer_mode_tile::tilewidth#14 = vera_layer_mode_tile::tilewidth#15 vera_layer_mode_tile::tilewidth#19 vera_layer_mode_tile::tilewidth#20 vera_layer_mode_tile::tilewidth#16 vera_layer_mode_tile::tilewidth#21 vera_layer_mode_tile::tilewidth#17 vera_layer_mode_tile::tilewidth#18 -Alias vera_layer_mode_tile::tileheight#18 = vera_layer_mode_tile::tileheight#19 vera_layer_mode_tile::tileheight#23 vera_layer_mode_tile::tileheight#24 vera_layer_mode_tile::tileheight#20 vera_layer_mode_tile::tileheight#25 vera_layer_mode_tile::tileheight#21 vera_layer_mode_tile::tileheight#22 -Alias vera_layer_mode_tile::mapwidth#2 = vera_layer_mode_tile::mapwidth#3 vera_layer_mode_tile::mapwidth#4 vera_layer_mode_tile::mapwidth#5 -Alias vera_layer_mode_tile::config#21 = vera_layer_mode_tile::config#33 vera_layer_mode_tile::config#34 vera_layer_mode_tile::config#22 vera_layer_mode_tile::config#35 vera_layer_mode_tile::config#23 vera_layer_mode_tile::config#36 vera_layer_mode_tile::config#24 -Alias vera_layer_mode_tile::layer#14 = vera_layer_mode_tile::layer#15 vera_layer_mode_tile::layer#27 vera_layer_mode_tile::layer#28 vera_layer_mode_tile::layer#16 vera_layer_mode_tile::layer#29 vera_layer_mode_tile::layer#17 vera_layer_mode_tile::layer#18 -Alias vera_layer_mode_tile::mapbase_address#10 = vera_layer_mode_tile::mapbase_address#6 vera_layer_mode_tile::mapbase_address#11 vera_layer_mode_tile::mapbase_address#7 vera_layer_mode_tile::mapbase_address#12 vera_layer_mode_tile::mapbase_address#8 vera_layer_mode_tile::mapbase_address#5 vera_layer_mode_tile::mapbase_address#9 -Alias vera_layer_mode_tile::tilebase_address#10 = vera_layer_mode_tile::tilebase_address#7 vera_layer_mode_tile::tilebase_address#11 vera_layer_mode_tile::tilebase_address#12 vera_layer_mode_tile::tilebase_address#8 vera_layer_mode_tile::tilebase_address#13 vera_layer_mode_tile::tilebase_address#9 vera_layer_mode_tile::tilebase_address#6 -Alias vera_layer_mode_tile::tilewidth#10 = vera_layer_mode_tile::tilewidth#7 vera_layer_mode_tile::tilewidth#11 vera_layer_mode_tile::tilewidth#12 vera_layer_mode_tile::tilewidth#8 vera_layer_mode_tile::tilewidth#13 vera_layer_mode_tile::tilewidth#9 vera_layer_mode_tile::tilewidth#6 -Alias vera_layer_mode_tile::tileheight#10 = vera_layer_mode_tile::tileheight#11 vera_layer_mode_tile::tileheight#15 vera_layer_mode_tile::tileheight#16 vera_layer_mode_tile::tileheight#12 vera_layer_mode_tile::tileheight#17 vera_layer_mode_tile::tileheight#13 vera_layer_mode_tile::tileheight#14 -Alias vera_layer_mode_tile::mapheight#2 = vera_layer_mode_tile::mapheight#3 vera_layer_mode_tile::mapheight#4 vera_layer_mode_tile::mapheight#5 -Alias vera_layer_mode_tile::mapbase_address#3 = vera_layer_mode_tile::mapbase_address#4 -Alias vera_layer_mode_tile::layer#34 = vera_layer_mode_tile::layer#7 vera_layer_mode_tile::layer#6 vera_layer_mode_tile::layer#8 vera_layer_mode_tile::layer#35 vera_layer_mode_tile::layer#36 -Alias vera_layer_mode_tile::tilebase_address#3 = vera_layer_mode_tile::tilebase_address#4 vera_layer_mode_tile::tilebase_address#5 -Alias vera_layer_mode_tile::tilewidth#2 = vera_layer_mode_tile::tilewidth#4 vera_layer_mode_tile::tilewidth#5 vera_layer_mode_tile::tilewidth#3 -Alias vera_layer_mode_tile::tileheight#4 = vera_layer_mode_tile::tileheight#8 vera_layer_mode_tile::tileheight#9 vera_layer_mode_tile::tileheight#7 vera_layer_mode_tile::tileheight#5 vera_layer_mode_tile::tileheight#6 -Alias vera_layer_mode_tile::mapbase_address#0 = vera_layer_mode_tile::$3 -Alias vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::$8 -Alias vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#6 vera_layer_mode_tile::tilebase#11 vera_layer_mode_tile::tilebase#7 -Alias vera_layer_mode_tile::tilebase#12 = vera_layer_mode_tile::tilebase#8 vera_layer_mode_tile::tilebase#13 vera_layer_mode_tile::tilebase#9 -Alias vera_layer_mode_tile::layer#19 = vera_layer_mode_tile::layer#20 vera_layer_mode_tile::layer#30 vera_layer_mode_tile::layer#21 -Alias vera_layer_mode_tile::tileheight#2 = vera_layer_mode_tile::tileheight#3 -Alias vera_layer_mode_text::color_mode#1 = vera_layer_mode_text::color_mode#3 vera_layer_mode_text::color_mode#2 -Alias vera_layer_mode_text::layer#1 = vera_layer_mode_text::layer#4 vera_layer_mode_text::layer#2 vera_layer_mode_text::layer#5 vera_layer_mode_text::layer#3 -Alias vera_tile_area::offset#0 = vera_tile_area::$1 -Alias vera_tile_area::mapbase#10 = vera_tile_area::mapbase#4 vera_tile_area::mapbase#6 vera_tile_area::vera_vram_address01_bankaddr#0 vera_tile_area::vera_vram_address01_bankaddr#1 vera_tile_area::mapbase#9 -Alias vera_tile_area::w#5 = vera_tile_area::w#7 vera_tile_area::w#8 vera_tile_area::w#6 -Alias vera_tile_area::index_l#3 = vera_tile_area::index_l#5 vera_tile_area::index_l#6 vera_tile_area::index_l#4 -Alias vera_tile_area::index_h#6 = vera_tile_area::index_h#8 vera_tile_area::index_h#9 vera_tile_area::index_h#7 -Alias vera_tile_area::rowskip#4 = vera_tile_area::rowskip#6 vera_tile_area::rowskip#7 vera_tile_area::rowskip#5 -Alias vera_tile_area::r#2 = vera_tile_area::r#8 vera_tile_area::r#7 vera_tile_area::r#6 -Alias vera_tile_area::h#10 = vera_tile_area::h#3 vera_tile_area::h#9 vera_tile_area::h#8 -Alias vera_tile_area::vera_vram_address01_incr#0 = vera_tile_area::vera_vram_address01_incr#1 -Alias vera_tile_area::index_l#1 = vera_tile_area::index_l#2 vera_tile_area::index_l#7 -Alias vera_tile_area::index_h#10 = vera_tile_area::index_h#4 vera_tile_area::index_h#5 -Alias vera_tile_area::c#2 = vera_tile_area::c#3 -Alias vera_tile_area::w#10 = vera_tile_area::w#4 vera_tile_area::w#3 -Alias vera_tile_area::mapbase#5 = vera_tile_area::mapbase#8 vera_tile_area::mapbase#7 -Alias vera_tile_area::rowskip#1 = vera_tile_area::rowskip#3 vera_tile_area::rowskip#2 -Alias vera_tile_area::r#3 = vera_tile_area::r#5 vera_tile_area::r#4 -Alias vera_tile_area::h#5 = vera_tile_area::h#7 vera_tile_area::h#6 -Alias vera_layer_get_backcolor::return#2 = vera_layer_get_backcolor::return#4 -Alias clrscr::line_text#0 = clrscr::line_text#8 clrscr::line_text#6 -Alias CONIO_SCREEN_BANK#21 = CONIO_SCREEN_BANK#27 CONIO_SCREEN_BANK#33 -Alias vera_layer_get_textcolor::return#2 = vera_layer_get_textcolor::return#4 -Alias clrscr::line_text#2 = clrscr::line_text#4 clrscr::ch#0 -Alias CONIO_SCREEN_BANK#14 = CONIO_SCREEN_BANK#7 -Alias clrscr::color#3 = clrscr::color#4 -Alias clrscr::l#2 = clrscr::l#5 -Alias clrscr::color#1 = clrscr::color#2 clrscr::color#5 -Alias clrscr::c#2 = clrscr::c#3 -Alias clrscr::line_text#3 = clrscr::line_text#7 clrscr::line_text#5 -Alias clrscr::l#3 = clrscr::l#6 clrscr::l#4 -Alias CONIO_SCREEN_BANK#20 = CONIO_SCREEN_BANK#34 CONIO_SCREEN_BANK#28 -Alias gotoxy::x#6 = gotoxy::x#7 -Alias gotoxy::y#6 = gotoxy::y#7 -Alias vera_layer_get_color::return#3 = vera_layer_get_color::return#6 -Alias CONIO_SCREEN_TEXT#17 = CONIO_SCREEN_TEXT#8 CONIO_SCREEN_TEXT#49 CONIO_SCREEN_TEXT#57 CONIO_SCREEN_TEXT#55 CONIO_SCREEN_TEXT#54 CONIO_SCREEN_TEXT#50 CONIO_SCREEN_TEXT#51 -Alias cputc::c#0 = cputc::c#1 cputc::c#2 -Alias CONIO_SCREEN_BANK#15 = CONIO_SCREEN_BANK#22 CONIO_SCREEN_BANK#8 -Alias cputc::conio_addr#1 = cputc::conio_addr#2 -Alias cputc::color#0 = cputc::color#1 -Alias CONIO_SCREEN_BANK#16 = CONIO_SCREEN_BANK#23 CONIO_SCREEN_BANK#29 -Alias CONIO_SCREEN_TEXT#18 = CONIO_SCREEN_TEXT#24 CONIO_SCREEN_TEXT#31 -Alias conio_x16_init::line#0 = conio_x16_init::line#9 conio_x16_init::line#8 conio_x16_init::line#7 conio_x16_init::line#6 conio_x16_init::line#5 conio_x16_init::line#4 conio_x16_init::line#2 -Alias CONIO_SCREEN_BANK#0 = CONIO_SCREEN_BANK#9 CONIO_SCREEN_BANK#40 CONIO_SCREEN_BANK#38 CONIO_SCREEN_BANK#35 CONIO_SCREEN_BANK#31 CONIO_SCREEN_BANK#30 -Alias CONIO_SCREEN_TEXT#0 = CONIO_SCREEN_TEXT#9 CONIO_SCREEN_TEXT#45 CONIO_SCREEN_TEXT#41 CONIO_SCREEN_TEXT#37 CONIO_SCREEN_TEXT#33 CONIO_SCREEN_TEXT#32 -Alias CONIO_SCREEN_BANK#1 = CONIO_SCREEN_BANK#17 CONIO_SCREEN_BANK#24 CONIO_SCREEN_BANK#10 -Alias CONIO_SCREEN_TEXT#1 = CONIO_SCREEN_TEXT#19 CONIO_SCREEN_TEXT#25 CONIO_SCREEN_TEXT#10 -Alias conio_x16_init::line#1 = conio_x16_init::$9 -Alias vera_layer_get_color::return#4 = vera_layer_get_color::return#7 -Alias clearline::color#1 = clearline::color#2 -Alias clearline::c#2 = clearline::c#3 -Alias insertup::i#2 = insertup::i#3 insertup::i#4 -Alias CONIO_SCREEN_TEXT#12 = CONIO_SCREEN_TEXT#21 CONIO_SCREEN_TEXT#27 CONIO_SCREEN_TEXT#20 -Alias insertup::width#1 = insertup::width#2 insertup::width#3 -Alias insertup::cy#1 = insertup::cy#3 insertup::cy#2 -Alias CONIO_SCREEN_TEXT#34 = CONIO_SCREEN_TEXT#38 CONIO_SCREEN_TEXT#42 -Alias gotoxy::y#2 = cscroll::$5 -Alias vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#4 -Alias CONIO_SCREEN_BANK#11 = CONIO_SCREEN_BANK#2 screenlayer::$0 CONIO_SCREEN_BANK#47 CONIO_SCREEN_BANK#45 CONIO_SCREEN_BANK#43 CONIO_SCREEN_BANK#41 CONIO_SCREEN_BANK#39 CONIO_SCREEN_BANK#36 CONIO_SCREEN_BANK#32 CONIO_SCREEN_BANK#25 CONIO_SCREEN_BANK#18 CONIO_SCREEN_BANK#3 -Alias vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#4 -Alias screenlayer::vera_layer_get_width1_layer#0 = screenlayer::vera_layer_get_width1_layer#1 -Alias CONIO_SCREEN_TEXT#13 = CONIO_SCREEN_TEXT#56 CONIO_SCREEN_TEXT#2 CONIO_SCREEN_TEXT#52 CONIO_SCREEN_TEXT#47 CONIO_SCREEN_TEXT#43 CONIO_SCREEN_TEXT#39 CONIO_SCREEN_TEXT#35 CONIO_SCREEN_TEXT#28 CONIO_SCREEN_TEXT#22 CONIO_SCREEN_TEXT#3 -Alias vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#4 -Alias vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#4 -Alias screenlayer::vera_layer_get_height1_layer#0 = screenlayer::vera_layer_get_height1_layer#1 -Alias printf_str::c#1 = printf_str::$0 printf_str::c#2 -Alias printf_str::putc#8 = printf_str::putc#9 -Alias printf_str::s#0 = printf_str::s#11 -Alias main::textcolor1_color#0 = main::textcolor1_color#1 -Alias CONIO_SCREEN_TEXT#16 = CONIO_SCREEN_TEXT#48 CONIO_SCREEN_TEXT#53 CONIO_SCREEN_TEXT#44 CONIO_SCREEN_TEXT#40 CONIO_SCREEN_TEXT#36 CONIO_SCREEN_TEXT#29 -Alias CONIO_SCREEN_BANK#37 = CONIO_SCREEN_BANK#49 CONIO_SCREEN_BANK#50 CONIO_SCREEN_BANK#48 CONIO_SCREEN_BANK#46 CONIO_SCREEN_BANK#44 CONIO_SCREEN_BANK#42 -Alias main::bgcolor1_color#0 = main::bgcolor1_color#1 -Alias main::tilebase#0 = main::tilebase#3 -Alias main::tilebase#4 = main::tilebase#6 main::tilebase#5 -Alias main::t#2 = main::t#3 main::t#4 -Alias main::column#2 = main::column#3 -Alias main::tile#6 = main::tile#7 -Alias main::c#2 = main::c#3 -Alias main::row#4 = main::row#8 main::row#5 -Alias main::r#2 = main::r#3 main::r#4 -Alias main::tile#12 = main::tile#2 -Alias main::column1#2 = main::column1#3 -Alias main::tile#8 = main::tile#9 -Alias main::c1#2 = main::c1#3 -Alias main::row#10 = main::row#6 main::row#7 -Alias main::r1#2 = main::r1#3 main::r1#4 -Alias main::tile#13 = main::tile#5 -Alias main::vera_layer_show1_layer#0 = main::vera_layer_show1_layer#1 -Alias kbhit::return#2 = kbhit::return#4 -Alias CONIO_SCREEN_BANK#12 = CONIO_SCREEN_BANK#5 CONIO_SCREEN_BANK#26 CONIO_SCREEN_BANK#19 CONIO_SCREEN_BANK#13 CONIO_SCREEN_BANK#6 -Alias CONIO_SCREEN_TEXT#14 = CONIO_SCREEN_TEXT#5 CONIO_SCREEN_TEXT#30 CONIO_SCREEN_TEXT#23 CONIO_SCREEN_TEXT#15 CONIO_SCREEN_TEXT#6 -Successful SSA optimization Pass2AliasElimination -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#3 kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#2 screenlayer::vera_layer_get_width1_return#1 screenlayer::vera_layer_get_width1_return#3 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#2 screenlayer::vera_layer_get_height1_return#1 screenlayer::vera_layer_get_height1_return#3 screenlayer::$5 conio_height -Alias vera_layer_mode_tile::mapwidth#10 = vera_layer_mode_tile::mapwidth#2 -Alias vera_layer_mode_tile::layer#10 = vera_layer_mode_tile::layer#22 vera_layer_mode_tile::layer#14 vera_layer_mode_tile::layer#34 vera_layer_mode_tile::layer#19 vera_layer_mode_tile::layer#9 -Alias vera_layer_mode_tile::mapheight#10 = vera_layer_mode_tile::mapheight#14 vera_layer_mode_tile::mapheight#2 -Alias vera_layer_mode_tile::mapbase_address#10 = vera_layer_mode_tile::mapbase_address#13 vera_layer_mode_tile::mapbase_address#21 vera_layer_mode_tile::mapbase_address#3 -Alias vera_layer_mode_tile::tilebase_address#10 = vera_layer_mode_tile::tilebase_address#14 vera_layer_mode_tile::tilebase_address#22 vera_layer_mode_tile::tilebase_address#3 -Alias vera_layer_mode_tile::tilewidth#10 = vera_layer_mode_tile::tilewidth#14 vera_layer_mode_tile::tilewidth#22 vera_layer_mode_tile::tilewidth#2 -Alias vera_layer_mode_tile::tileheight#10 = vera_layer_mode_tile::tileheight#18 vera_layer_mode_tile::tileheight#26 vera_layer_mode_tile::tileheight#4 vera_layer_mode_tile::tileheight#2 -Alias gotoxy::x#4 = gotoxy::x#6 -Alias gotoxy::y#5 = gotoxy::y#6 -Alias CONIO_SCREEN_BANK#0 = CONIO_SCREEN_BANK#1 -Alias CONIO_SCREEN_TEXT#0 = CONIO_SCREEN_TEXT#1 -Successful SSA optimization Pass2AliasElimination -Alias candidate removed (volatile)kbhit::return#0 = kbhit::ch kbhit::return#3 kbhit::return#1 -Alias candidate removed (volatile)screenlayer::vera_layer_get_width1_return#0 = screenlayer::vera_layer_get_width1_return#2 screenlayer::vera_layer_get_width1_return#1 screenlayer::vera_layer_get_width1_return#3 screenlayer::$2 conio_width -Alias candidate removed (volatile)conio_rowshift = screenlayer::$3 -Alias candidate removed (volatile)conio_rowskip = screenlayer::$4 -Alias candidate removed (volatile)screenlayer::vera_layer_get_height1_return#0 = screenlayer::vera_layer_get_height1_return#2 screenlayer::vera_layer_get_height1_return#1 screenlayer::vera_layer_get_height1_return#3 screenlayer::$5 conio_height -Identical Phi Values memcpy_to_vram::end#1 memcpy_to_vram::end#0 -Identical Phi Values memcpy_in_vram::src#1 memcpy_in_vram::src#0 -Identical Phi Values memcpy_in_vram::src_increment#1 memcpy_in_vram::src_increment#0 -Identical Phi Values memcpy_in_vram::src_bank#1 memcpy_in_vram::src_bank#0 -Identical Phi Values memcpy_in_vram::dest#1 memcpy_in_vram::dest#0 -Identical Phi Values memcpy_in_vram::dest_increment#1 memcpy_in_vram::dest_increment#0 -Identical Phi Values memcpy_in_vram::dest_bank#1 memcpy_in_vram::dest_bank#0 -Identical Phi Values memcpy_in_vram::num#2 memcpy_in_vram::num#0 -Identical Phi Values memcpy_in_vram::num#1 memcpy_in_vram::num#2 -Identical Phi Values vera_layer_set_config::layer#1 vera_layer_set_config::layer#0 -Identical Phi Values vera_layer_set_config::config#1 vera_layer_set_config::config#0 -Identical Phi Values vera_layer_get_mapbase_bank::layer#1 vera_layer_get_mapbase_bank::layer#0 -Identical Phi Values vera_layer_get_mapbase_offset::layer#1 vera_layer_get_mapbase_offset::layer#0 -Identical Phi Values vera_layer_set_tilebase::layer#1 vera_layer_set_tilebase::layer#0 -Identical Phi Values vera_layer_set_tilebase::tilebase#1 vera_layer_set_tilebase::tilebase#0 -Identical Phi Values vera_layer_get_textcolor::layer#1 vera_layer_get_textcolor::layer#0 -Identical Phi Values vera_layer_get_backcolor::layer#1 vera_layer_get_backcolor::layer#0 -Identical Phi Values vera_layer_get_rowshift::layer#1 vera_layer_get_rowshift::layer#0 -Identical Phi Values vera_layer_get_rowskip::layer#1 vera_layer_get_rowskip::layer#0 -Identical Phi Values vera_layer_mode_text::layer#1 vera_layer_mode_text::layer#0 -Identical Phi Values vera_layer_mode_text::mapbase_address#1 vera_layer_mode_text::mapbase_address#0 -Identical Phi Values vera_layer_mode_text::tilebase_address#1 vera_layer_mode_text::tilebase_address#0 -Identical Phi Values vera_layer_mode_text::mapwidth#1 vera_layer_mode_text::mapwidth#0 -Identical Phi Values vera_layer_mode_text::mapheight#1 vera_layer_mode_text::mapheight#0 -Identical Phi Values vera_layer_mode_text::tilewidth#1 vera_layer_mode_text::tilewidth#0 -Identical Phi Values vera_layer_mode_text::tileheight#1 vera_layer_mode_text::tileheight#0 -Identical Phi Values vera_layer_mode_text::color_mode#1 vera_layer_mode_text::color_mode#0 -Identical Phi Values vera_tile_area::w#10 vera_tile_area::w#5 -Identical Phi Values vera_tile_area::index_l#1 vera_tile_area::index_l#3 -Identical Phi Values vera_tile_area::index_h#10 vera_tile_area::index_h#6 -Identical Phi Values vera_tile_area::mapbase#5 vera_tile_area::mapbase#10 -Identical Phi Values vera_tile_area::rowskip#1 vera_tile_area::rowskip#4 -Identical Phi Values vera_tile_area::r#3 vera_tile_area::r#2 -Identical Phi Values vera_tile_area::h#5 vera_tile_area::h#10 -Identical Phi Values CONIO_SCREEN_TEXT#7 CONIO_SCREEN_TEXT#16 -Identical Phi Values CONIO_SCREEN_BANK#21 CONIO_SCREEN_BANK#37 -Identical Phi Values clrscr::color#1 clrscr::color#3 -Identical Phi Values clrscr::line_text#3 clrscr::line_text#2 -Identical Phi Values clrscr::l#3 clrscr::l#2 -Identical Phi Values CONIO_SCREEN_BANK#20 CONIO_SCREEN_BANK#14 -Identical Phi Values screensize::x#1 screensize::x#0 -Identical Phi Values screensize::y#1 screensize::y#0 -Identical Phi Values CONIO_SCREEN_TEXT#46 CONIO_SCREEN_TEXT#17 -Identical Phi Values kbhit::return#3 kbhit::return#0 -Identical Phi Values CONIO_SCREEN_BANK#16 CONIO_SCREEN_BANK#4 -Identical Phi Values CONIO_SCREEN_TEXT#18 CONIO_SCREEN_TEXT#4 -Identical Phi Values CONIO_SCREEN_BANK#0 CONIO_SCREEN_BANK#11 -Identical Phi Values CONIO_SCREEN_TEXT#0 CONIO_SCREEN_TEXT#13 -Identical Phi Values CONIO_SCREEN_TEXT#11 CONIO_SCREEN_TEXT#12 -Identical Phi Values clearline::color#1 clearline::color#0 -Identical Phi Values CONIO_SCREEN_TEXT#26 CONIO_SCREEN_TEXT#34 -Identical Phi Values insertup::cy#1 insertup::cy#0 -Identical Phi Values CONIO_SCREEN_TEXT#12 CONIO_SCREEN_TEXT#26 -Identical Phi Values insertup::width#1 insertup::width#0 -Identical Phi Values CONIO_SCREEN_TEXT#34 CONIO_SCREEN_TEXT#46 -Identical Phi Values screenlayer::layer#1 screenlayer::layer#0 -Identical Phi Values screenlayer::vera_layer_get_width1_return#2 screenlayer::vera_layer_get_width1_return#0 -Identical Phi Values screenlayer::vera_layer_get_width1_return#3 screenlayer::vera_layer_get_width1_return#1 -Identical Phi Values screenlayer::vera_layer_get_height1_return#2 screenlayer::vera_layer_get_height1_return#0 -Identical Phi Values screenlayer::vera_layer_get_height1_return#3 screenlayer::vera_layer_get_height1_return#1 -Identical Phi Values printf_str::putc#8 printf_str::putc#10 -Identical Phi Values CONIO_SCREEN_TEXT#16 CONIO_SCREEN_TEXT#14 -Identical Phi Values CONIO_SCREEN_BANK#37 CONIO_SCREEN_BANK#12 -Identical Phi Values main::tilebase#4 main::tilebase#7 -Identical Phi Values main::t#2 main::t#5 -Identical Phi Values main::row#4 main::row#9 -Identical Phi Values main::r#2 main::r#5 -Identical Phi Values main::row#10 main::row#11 -Identical Phi Values main::r1#2 main::r1#5 -Identical Phi Values CONIO_SCREEN_BANK#12 CONIO_SCREEN_BANK#0 -Identical Phi Values CONIO_SCREEN_TEXT#14 CONIO_SCREEN_TEXT#0 -Successful SSA optimization Pass2IdenticalPhiElimination -Identical Phi Values vera_tile_area::h#10 vera_tile_area::h#4 -Identical Phi Values vera_tile_area::w#5 vera_tile_area::w#9 -Identical Phi Values vera_tile_area::index_l#3 vera_tile_area::index_l#0 -Identical Phi Values vera_tile_area::index_h#6 vera_tile_area::index_h#3 -Identical Phi Values vera_tile_area::rowskip#4 vera_tile_area::rowskip#0 -Identical Phi Values CONIO_SCREEN_BANK#14 CONIO_SCREEN_BANK#11 -Identical Phi Values clrscr::color#3 clrscr::color#0 -Successful SSA optimization Pass2IdenticalPhiElimination -Simple Condition memcpy_to_vram::$4 [13] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2 -Simple Condition memcpy_in_vram::$6 [35] if(memcpy_in_vram::i#2> 7 - [147] screensize::$1 = $28 << screensize::hscale#0 - [148] *screensize::x#0 = screensize::$1 - [149] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 - [150] screensize::$3 = $1e << screensize::vscale#0 - [151] *screensize::y#0 = screensize::$3 - to:screensize::@return -screensize::@return: scope:[screensize] from screensize - [152] return - to:@return - -void screenlayer(char layer) -screenlayer: scope:[screenlayer] from conio_x16_init::@4 - [153] conio_screen_layer = screenlayer::layer#0 - [154] vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer - [155] call vera_layer_get_mapbase_bank - [156] vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#0 - to:screenlayer::@3 -screenlayer::@3: scope:[screenlayer] from screenlayer - [157] CONIO_SCREEN_BANK#11 = vera_layer_get_mapbase_bank::return#2 - [158] vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer - [159] call vera_layer_get_mapbase_offset - [160] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 - to:screenlayer::@4 -screenlayer::@4: scope:[screenlayer] from screenlayer::@3 - [161] CONIO_SCREEN_TEXT#13 = vera_layer_get_mapbase_offset::return#2 - [162] 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 - [163] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 - [164] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] - [165] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK - [166] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 - [167] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 - [168] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] - to:screenlayer::vera_layer_get_width1_@return -screenlayer::vera_layer_get_width1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_width1 - [169] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 - to:screenlayer::@1 -screenlayer::@1: scope:[screenlayer] from screenlayer::vera_layer_get_width1_@return - [170] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 - [171] conio_width = screenlayer::$2 - [172] vera_layer_get_rowshift::layer#0 = conio_screen_layer - [173] call vera_layer_get_rowshift - [174] vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#0 - to:screenlayer::@5 -screenlayer::@5: scope:[screenlayer] from screenlayer::@1 - [175] screenlayer::$3 = vera_layer_get_rowshift::return#2 - [176] conio_rowshift = screenlayer::$3 - [177] vera_layer_get_rowskip::layer#0 = conio_screen_layer - [178] call vera_layer_get_rowskip - [179] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 - to:screenlayer::@6 -screenlayer::@6: scope:[screenlayer] from screenlayer::@5 - [180] screenlayer::$4 = vera_layer_get_rowskip::return#2 - [181] conio_rowskip = screenlayer::$4 - [182] screenlayer::vera_layer_get_height1_layer#0 = conio_screen_layer - to:screenlayer::vera_layer_get_height1 -screenlayer::vera_layer_get_height1: scope:[screenlayer] from screenlayer::@6 - [183] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 - [184] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] - [185] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK - [186] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 - [187] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 - [188] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] - to:screenlayer::vera_layer_get_height1_@return -screenlayer::vera_layer_get_height1_@return: scope:[screenlayer] from screenlayer::vera_layer_get_height1 - [189] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 - to:screenlayer::@2 -screenlayer::@2: scope:[screenlayer] from screenlayer::vera_layer_get_height1_@return - [190] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 - [191] conio_height = screenlayer::$5 - to:screenlayer::@return -screenlayer::@return: scope:[screenlayer] from screenlayer::@2 - [192] return - to:@return - -char vera_layer_set_textcolor(char layer , char color) -vera_layer_set_textcolor: scope:[vera_layer_set_textcolor] from conio_x16_init::@5 main::textcolor1 - [193] vera_layer_set_textcolor::layer#2 = phi( conio_x16_init::@5/1, main::textcolor1/vera_layer_set_textcolor::layer#1 ) - [194] vera_layer_textcolor[vera_layer_set_textcolor::layer#2] = WHITE - to:vera_layer_set_textcolor::@return -vera_layer_set_textcolor::@return: scope:[vera_layer_set_textcolor] from vera_layer_set_textcolor - [195] return - to:@return - -char vera_layer_set_backcolor(char layer , char color) -vera_layer_set_backcolor: scope:[vera_layer_set_backcolor] from conio_x16_init::@6 main::bgcolor1 - [196] vera_layer_set_backcolor::color#2 = phi( conio_x16_init::@6/BLUE, main::bgcolor1/BLACK ) - [196] vera_layer_set_backcolor::layer#2 = phi( conio_x16_init::@6/1, main::bgcolor1/vera_layer_set_backcolor::layer#1 ) - [197] vera_layer_backcolor[vera_layer_set_backcolor::layer#2] = vera_layer_set_backcolor::color#2 - to:vera_layer_set_backcolor::@return -vera_layer_set_backcolor::@return: scope:[vera_layer_set_backcolor] from vera_layer_set_backcolor - [198] return - to:@return - -void vera_layer_set_mapbase(char layer , char mapbase) -vera_layer_set_mapbase: scope:[vera_layer_set_mapbase] from conio_x16_init::@7 conio_x16_init::@8 vera_layer_mode_tile::@27 - [199] vera_layer_set_mapbase::mapbase#3 = phi( conio_x16_init::@7/$20, conio_x16_init::@8/0, vera_layer_mode_tile::@27/vera_layer_set_mapbase::mapbase#0 ) - [199] vera_layer_set_mapbase::layer#3 = phi( conio_x16_init::@7/0, conio_x16_init::@8/1, vera_layer_mode_tile::@27/vera_layer_set_mapbase::layer#0 ) - [200] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 - [201] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] - [202] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 - to:vera_layer_set_mapbase::@return -vera_layer_set_mapbase::@return: scope:[vera_layer_set_mapbase] from vera_layer_set_mapbase - [203] return - to:@return - -void gotoxy(char x , char y) -gotoxy: scope:[gotoxy] from conio_x16_init::@1 cscroll::@5 main::@13 - [204] gotoxy::y#4 = phi( conio_x16_init::@1/gotoxy::y#1, cscroll::@5/gotoxy::y#2, main::@13/$32 ) - [205] if(gotoxy::y#4<=conio_screen_height) goto gotoxy::@4 - to:gotoxy::@1 -gotoxy::@4: scope:[gotoxy] from gotoxy - [206] phi() - to:gotoxy::@1 -gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@4 - [207] gotoxy::y#5 = phi( gotoxy::@4/gotoxy::y#4, gotoxy/0 ) - [208] if(0> 1 - [301] vera_layer_mode_tile::mapbase#0 = byte1 vera_layer_mode_tile::mapbase_address#0 - [302] vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#10 - [303] vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0 - [304] call vera_layer_set_mapbase - to:vera_layer_mode_tile::@28 -vera_layer_mode_tile::@28: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@27 - [305] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 - [306] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 - [307] vera_layer_mode_tile::$7 = byte2 vera_layer_mode_tile::tilebase_address#10 - [308] vera_tilebase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$7 - [309] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 - [310] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 - [311] vera_layer_mode_tile::tilebase#0 = byte1 vera_layer_mode_tile::tilebase_address#0 - [312] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK - [313] if(vera_layer_mode_tile::tilewidth#10==8) goto vera_layer_mode_tile::@23 - to:vera_layer_mode_tile::@21 -vera_layer_mode_tile::@21: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@28 - [314] if(vera_layer_mode_tile::tilewidth#10!=$10) goto vera_layer_mode_tile::@23 - to:vera_layer_mode_tile::@22 -vera_layer_mode_tile::@22: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@21 - [315] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 - to:vera_layer_mode_tile::@23 -vera_layer_mode_tile::@23: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@21 vera_layer_mode_tile::@22 vera_layer_mode_tile::@28 - [316] vera_layer_mode_tile::tilebase#12 = phi( vera_layer_mode_tile::@21/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@28/vera_layer_mode_tile::tilebase#1, vera_layer_mode_tile::@22/vera_layer_mode_tile::tilebase#3 ) - [317] if(vera_layer_mode_tile::tileheight#10==8) goto vera_layer_mode_tile::@26 - to:vera_layer_mode_tile::@24 -vera_layer_mode_tile::@24: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@23 - [318] if(vera_layer_mode_tile::tileheight#10!=$10) goto vera_layer_mode_tile::@26 - to:vera_layer_mode_tile::@25 -vera_layer_mode_tile::@25: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@24 - [319] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 - to:vera_layer_mode_tile::@26 -vera_layer_mode_tile::@26: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@23 vera_layer_mode_tile::@24 vera_layer_mode_tile::@25 - [320] vera_layer_mode_tile::tilebase#10 = phi( vera_layer_mode_tile::@24/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@23/vera_layer_mode_tile::tilebase#12, vera_layer_mode_tile::@25/vera_layer_mode_tile::tilebase#5 ) - [321] vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#10 - [322] vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10 - [323] call vera_layer_set_tilebase - to:vera_layer_mode_tile::@return -vera_layer_mode_tile::@return: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@26 - [324] return - to:@return -vera_layer_mode_tile::@18: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@15 - [325] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 - to:vera_layer_mode_tile::@20 -vera_layer_mode_tile::@17: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@14 - [326] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 - to:vera_layer_mode_tile::@20 -vera_layer_mode_tile::@11: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@7 - [327] vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_128 - [328] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 - [329] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 - [330] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 - to:vera_layer_mode_tile::@13 -vera_layer_mode_tile::@10: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@6 - [331] vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_64 - [332] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 - [333] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 - [334] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 - to:vera_layer_mode_tile::@13 -vera_layer_mode_tile::@9: scope:[vera_layer_mode_tile] from vera_layer_mode_tile::@5 - [335] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 - [336] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 - [337] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 - to:vera_layer_mode_tile::@13 - -void memcpy_to_vram(char vbank , void *vdest , void *src , unsigned int num) -memcpy_to_vram: scope:[memcpy_to_vram] from main::@15 main::@3 - [338] memcpy_to_vram::vdest#2 = phi( main::@15/(void *)(char *) 16384, main::@3/memcpy_to_vram::vdest#1 ) - [339] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL - [340] memcpy_to_vram::$0 = byte0 memcpy_to_vram::vdest#2 - [341] *VERA_ADDRX_L = memcpy_to_vram::$0 - [342] memcpy_to_vram::$1 = byte1 memcpy_to_vram::vdest#2 - [343] *VERA_ADDRX_M = memcpy_to_vram::$1 - [344] *VERA_ADDRX_H = VERA_INC_1|1 - to:memcpy_to_vram::@1 -memcpy_to_vram::@1: scope:[memcpy_to_vram] from memcpy_to_vram memcpy_to_vram::@2 - [345] memcpy_to_vram::s#2 = phi( memcpy_to_vram/(char *)(void *)main::tiles, memcpy_to_vram::@2/memcpy_to_vram::s#1 ) - [346] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2 - to:memcpy_to_vram::@return -memcpy_to_vram::@return: scope:[memcpy_to_vram] from memcpy_to_vram::@1 - [347] return - to:@return -memcpy_to_vram::@2: scope:[memcpy_to_vram] from memcpy_to_vram::@1 - [348] *VERA_DATA0 = *memcpy_to_vram::s#2 - [349] memcpy_to_vram::s#1 = ++ memcpy_to_vram::s#2 - to:memcpy_to_vram::@1 - -void vera_tile_area(char layer , unsigned int tileindex , char x , char y , char w , char h , char hflip , char vflip , char offset) -vera_tile_area: scope:[vera_tile_area] from main::@4 main::@6 main::@9 - [350] vera_tile_area::w#9 = phi( main::@9/2, main::@4/$50, main::@6/1 ) - [350] vera_tile_area::h#4 = phi( main::@9/2, main::@4/$3c, main::@6/1 ) - [350] vera_tile_area::x#3 = phi( main::@9/vera_tile_area::x#2, main::@4/0, main::@6/vera_tile_area::x#1 ) - [350] vera_tile_area::y#3 = phi( main::@9/vera_tile_area::y#2, main::@4/0, main::@6/vera_tile_area::y#1 ) - [350] vera_tile_area::tileindex#3 = phi( main::@9/vera_tile_area::tileindex#2, main::@4/0, main::@6/vera_tile_area::tileindex#1 ) - [351] vera_tile_area::mapbase#0 = *vera_mapbase_address - [352] vera_tile_area::shift#0 = *vera_layer_rowshift - [353] vera_tile_area::rowskip#0 = 1 << vera_tile_area::shift#0 - [354] vera_tile_area::hflip#0 = *vera_layer_hflip - [355] vera_tile_area::vflip#0 = *vera_layer_vflip - [356] vera_tile_area::index_l#0 = byte0 vera_tile_area::tileindex#3 - [357] vera_tile_area::index_h#0 = byte1 vera_tile_area::tileindex#3 - [358] vera_tile_area::index_h#1 = vera_tile_area::index_h#0 | vera_tile_area::hflip#0 - [359] vera_tile_area::index_h#2 = vera_tile_area::index_h#1 | vera_tile_area::vflip#0 - [360] vera_tile_area::$10 = (unsigned int)vera_tile_area::y#3 - [361] vera_tile_area::$4 = vera_tile_area::$10 << vera_tile_area::shift#0 - [362] vera_tile_area::mapbase#1 = vera_tile_area::mapbase#0 + vera_tile_area::$4 - [363] vera_tile_area::$5 = vera_tile_area::x#3 << 1 - [364] vera_tile_area::mapbase#2 = vera_tile_area::mapbase#1 + vera_tile_area::$5 - to:vera_tile_area::@1 -vera_tile_area::@1: scope:[vera_tile_area] from vera_tile_area vera_tile_area::@4 - [365] vera_tile_area::mapbase#10 = phi( vera_tile_area/vera_tile_area::mapbase#2, vera_tile_area::@4/vera_tile_area::mapbase#3 ) - [365] vera_tile_area::r#2 = phi( vera_tile_area/0, vera_tile_area::@4/vera_tile_area::r#1 ) - [366] if(vera_tile_area::r#2$0000 - rts - - continue1: - nop - }} - [394] kbhit::return#0 = kbhit::ch - to:kbhit::@return -kbhit::@return: scope:[kbhit] from kbhit - [395] kbhit::return#1 = kbhit::return#0 - [396] return - to:@return - -void vera_layer_set_text_color_mode(char layer , char color_mode) -vera_layer_set_text_color_mode: scope:[vera_layer_set_text_color_mode] from vera_layer_mode_text::@1 - [397] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) - [398] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C - [399] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 - to:vera_layer_set_text_color_mode::@return -vera_layer_set_text_color_mode::@return: scope:[vera_layer_set_text_color_mode] from vera_layer_set_text_color_mode - [400] return - to:@return - -char vera_layer_get_mapbase_bank(char layer) -vera_layer_get_mapbase_bank: scope:[vera_layer_get_mapbase_bank] from screenlayer - [401] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0] - to:vera_layer_get_mapbase_bank::@return -vera_layer_get_mapbase_bank::@return: scope:[vera_layer_get_mapbase_bank] from vera_layer_get_mapbase_bank - [402] return - to:@return - -unsigned int vera_layer_get_mapbase_offset(char layer) -vera_layer_get_mapbase_offset: scope:[vera_layer_get_mapbase_offset] from screenlayer::@3 - [403] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 - [404] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] - to:vera_layer_get_mapbase_offset::@return -vera_layer_get_mapbase_offset::@return: scope:[vera_layer_get_mapbase_offset] from vera_layer_get_mapbase_offset - [405] return - to:@return - -char vera_layer_get_rowshift(char layer) -vera_layer_get_rowshift: scope:[vera_layer_get_rowshift] from screenlayer::@1 - [406] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0] - to:vera_layer_get_rowshift::@return -vera_layer_get_rowshift::@return: scope:[vera_layer_get_rowshift] from vera_layer_get_rowshift - [407] return - to:@return - -unsigned int vera_layer_get_rowskip(char layer) -vera_layer_get_rowskip: scope:[vera_layer_get_rowskip] from screenlayer::@5 - [408] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 - [409] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] - to:vera_layer_get_rowskip::@return -vera_layer_get_rowskip::@return: scope:[vera_layer_get_rowskip] from vera_layer_get_rowskip - [410] return - to:@return - -void cscroll() -cscroll: scope:[cscroll] from cputln - [411] if(conio_cursor_y[conio_screen_layer]> 7 [ screensize::hscale#0 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::hscale#0 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::hscale#0 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for mem[1] [ conio_x16_init::line#3 conio_x16_init::line#1 conio_x16_init::line#0 ] -Statement [147] screensize::$1 = $28 << screensize::hscale#0 [ screensize::$1 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$1 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$1 ] { } ) always clobbers reg byte a -Statement [149] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 [ screensize::vscale#0 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::vscale#0 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::vscale#0 ] { } ) always clobbers reg byte a -Statement [150] screensize::$3 = $1e << screensize::vscale#0 [ screensize::$3 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$3 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$3 ] { } ) always clobbers reg byte a -Statement [153] conio_screen_layer = screenlayer::layer#0 [ conio_screen_layer ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } ) always clobbers reg byte a -Statement [160] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 [ conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::return#2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for mem[1] [ CONIO_SCREEN_BANK#11 ] -Statement [161] CONIO_SCREEN_TEXT#13 = vera_layer_get_mapbase_offset::return#2 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } ) always clobbers reg byte a -Statement [163] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$2 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$2 ] { } ) always clobbers reg byte a -Statement [164] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_config#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_config#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_config#0 ] { } ) always clobbers reg byte a -Statement [165] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$0 ] { } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for mem[1] [ conio_x16_init::line#3 conio_x16_init::line#1 conio_x16_init::line#0 ] -Removing always clobbered register reg byte y as potential for mem[1] [ CONIO_SCREEN_BANK#11 ] -Statement [166] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$1 ] { } ) always clobbers reg byte a -Statement [167] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$3 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$3 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$3 ] { } ) always clobbers reg byte a -Statement [168] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#0 ] { } ) always clobbers reg byte a -Statement [169] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#1 ] { } ) always clobbers reg byte a -Statement [170] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } ) always clobbers reg byte a -Statement [171] conio_width = screenlayer::$2 [ conio_screen_layer conio_width CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } ) always clobbers reg byte a -Statement [179] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::return#2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [180] screenlayer::$4 = vera_layer_get_rowskip::return#2 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$4 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$4 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$4 ] { } ) always clobbers reg byte a -Statement [181] conio_rowskip = screenlayer::$4 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } ) always clobbers reg byte a -Statement [183] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$2 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$2 ] { } ) always clobbers reg byte a -Statement [184] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_config#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_config#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_config#0 ] { } ) always clobbers reg byte a -Statement [185] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$0 ] { } ) always clobbers reg byte a reg byte y -Statement [186] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$1 ] { } ) always clobbers reg byte a -Statement [187] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$3 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$3 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$3 ] { } ) always clobbers reg byte a -Statement [188] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#0 ] { } ) always clobbers reg byte a -Statement [189] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#1 ] { } ) always clobbers reg byte a -Statement [190] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$5 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$5 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$5 ] { } ) always clobbers reg byte a -Statement [191] conio_height = screenlayer::$5 [ conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } ) always clobbers reg byte a -Statement [194] vera_layer_textcolor[vera_layer_set_textcolor::layer#2] = WHITE [ ] ( vera_layer_set_textcolor:19 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::vera_layer_set_textcolor:19 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } main:10::vera_layer_set_textcolor:67 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { { vera_layer_set_textcolor::layer#1 = vera_layer_set_textcolor::layer#2 conio_screen_layer } } ) always clobbers reg byte a -Statement [200] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] ( vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } conio_x16_init:8::vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } conio_x16_init:8::vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } main:10::vera_layer_mode_tile:73::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:113 [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::mapbase#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:207 [ vera_layer_mode_tile::layer#10 ] -Removing always clobbered register reg byte a as potential for mem[1] [ vera_layer_mode_tile::tilewidth#10 ] -Removing always clobbered register reg byte a as potential for mem[1] [ vera_layer_mode_tile::tileheight#10 ] -Removing always clobbered register reg byte a as potential for zp[1]:206 [ vera_layer_mode_tile::$17 ] -Removing always clobbered register reg byte a as potential for zp[1]:205 [ vera_layer_mode_tile::$18 ] -Statement [201] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] ( vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } conio_x16_init:8::vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } conio_x16_init:8::vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } main:10::vera_layer_mode_tile:73::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [202] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 [ ] ( vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } main:10::vera_layer_mode_tile:73::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for zp[1]:207 [ vera_layer_mode_tile::layer#10 ] -Removing always clobbered register reg byte y as potential for mem[1] [ vera_layer_mode_tile::tilewidth#10 ] -Removing always clobbered register reg byte y as potential for mem[1] [ vera_layer_mode_tile::tileheight#10 ] -Removing always clobbered register reg byte y as potential for zp[1]:206 [ vera_layer_mode_tile::$17 ] -Removing always clobbered register reg byte y as potential for zp[1]:205 [ vera_layer_mode_tile::$18 ] -Statement [208] if(0> 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [305] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } ) always clobbers reg byte a -Statement [306] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } ) always clobbers reg byte a -Statement [309] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [310] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } ) always clobbers reg byte a -Statement [312] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } ) always clobbers reg byte a -Statement [315] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } ) always clobbers reg byte a -Statement [319] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } ) always clobbers reg byte a -Statement [325] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } ) always clobbers reg byte a -Statement [326] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } ) always clobbers reg byte a -Statement [327] vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_128 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } ) always clobbers reg byte a -Statement [328] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } ) always clobbers reg byte a -Statement [329] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } ) always clobbers reg byte a -Statement [330] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } ) always clobbers reg byte a -Statement [331] vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_64 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } ) always clobbers reg byte a -Statement [332] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } ) always clobbers reg byte a -Statement [333] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } ) always clobbers reg byte a -Statement [334] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } ) always clobbers reg byte a -Statement [335] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } ) always clobbers reg byte a -Statement [336] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } ) always clobbers reg byte a -Statement [337] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } ) always clobbers reg byte a -Statement [339] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL [ memcpy_to_vram::vdest#2 ] ( main:10::memcpy_to_vram:75 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip memcpy_to_vram::vdest#2 ] { } main:10::memcpy_to_vram:82 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::tilebase#7 main::t#5 memcpy_to_vram::vdest#2 ] { { memcpy_to_vram::vdest#1 = memcpy_to_vram::vdest#2 } } ) always clobbers reg byte a -Statement [344] *VERA_ADDRX_H = VERA_INC_1|1 [ ] ( main:10::memcpy_to_vram:75 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip ] { } main:10::memcpy_to_vram:82 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::tilebase#7 main::t#5 ] { { memcpy_to_vram::vdest#1 = memcpy_to_vram::vdest#2 } } ) always clobbers reg byte a -Statement [346] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2 [ memcpy_to_vram::s#2 ] ( main:10::memcpy_to_vram:75 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip memcpy_to_vram::s#2 ] { } main:10::memcpy_to_vram:82 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::tilebase#7 main::t#5 memcpy_to_vram::s#2 ] { { memcpy_to_vram::vdest#1 = memcpy_to_vram::vdest#2 } } ) always clobbers reg byte a -Statement [348] *VERA_DATA0 = *memcpy_to_vram::s#2 [ memcpy_to_vram::s#2 ] ( main:10::memcpy_to_vram:75 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip memcpy_to_vram::s#2 ] { } main:10::memcpy_to_vram:82 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::tilebase#7 main::t#5 memcpy_to_vram::s#2 ] { { memcpy_to_vram::vdest#1 = memcpy_to_vram::vdest#2 } } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for mem[1] [ main::t#5 main::t#1 ] -Statement [351] vera_tile_area::mapbase#0 = *vera_mapbase_address [ vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:122 [ vera_tile_area::y#3 vera_tile_area::y#2 vera_tile_area::y#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:127 [ vera_tile_area::x#3 vera_tile_area::x#2 vera_tile_area::x#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:68 [ vera_tile_area::h#4 ] -Removing always clobbered register reg byte a as potential for zp[1]:62 [ vera_tile_area::w#9 ] -Statement [353] vera_tile_area::rowskip#0 = 1 << vera_tile_area::shift#0 [ vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:126 [ vera_tile_area::shift#0 ] -Statement [360] vera_tile_area::$10 = (unsigned int)vera_tile_area::y#3 [ vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:61 [ vera_tile_area::index_l#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:60 [ vera_tile_area::index_h#2 ] -Statement [361] vera_tile_area::$4 = vera_tile_area::$10 << vera_tile_area::shift#0 [ vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [362] vera_tile_area::mapbase#1 = vera_tile_area::mapbase#0 + vera_tile_area::$4 [ vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [363] vera_tile_area::$5 = vera_tile_area::x#3 << 1 [ vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [364] vera_tile_area::mapbase#2 = vera_tile_area::mapbase#1 + vera_tile_area::$5 [ vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [368] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL [ vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:40 [ vera_tile_area::r#2 vera_tile_area::r#1 ] -Statement [374] vera_tile_area::vera_vram_address01_$3 = vera_tile_area::vera_vram_address01_$2 | VERA_INC_1 [ vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [378] vera_tile_area::mapbase#3 = vera_tile_area::mapbase#10 + vera_tile_area::rowskip#0 [ vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [385] printf_str::c#1 = *printf_str::s#9 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] ( main:10::printf_str:120 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:122 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:124 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:126 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:128 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:130 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:132 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:134 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } ) always clobbers reg byte a reg byte y -Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [392] kbhit::ch = 0 [ kbhit::ch ] ( main:10::kbhit:136 [ kbhit::ch ] { { kbhit::return#1 = kbhit::return#2 } } ) always clobbers reg byte a -Statement [397] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) [ vera_layer_set_text_color_mode::addr#0 ] ( vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } ) always clobbers reg byte a -Statement [398] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C [ vera_layer_set_text_color_mode::addr#0 ] ( vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } ) always clobbers reg byte a reg byte y -Statement [399] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 [ ] ( vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 ] { } ) always clobbers reg byte a reg byte y -Statement [403] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 [ vera_layer_get_mapbase_offset::$0 ] ( screenlayer:17::vera_layer_get_mapbase_offset:159 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:8::screenlayer:17::vera_layer_get_mapbase_offset:159 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [404] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] [ vera_layer_get_mapbase_offset::return#0 ] ( screenlayer:17::vera_layer_get_mapbase_offset:159 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:8::screenlayer:17::vera_layer_get_mapbase_offset:159 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [408] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 [ vera_layer_get_rowskip::$0 ] ( screenlayer:17::vera_layer_get_rowskip:178 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:8::screenlayer:17::vera_layer_get_rowskip:178 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [409] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] [ vera_layer_get_rowskip::return#0 ] ( screenlayer:17::vera_layer_get_rowskip:178 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:8::screenlayer:17::vera_layer_get_rowskip:178 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [411] if(conio_cursor_y[conio_screen_layer]> 7 [ screensize::hscale#0 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::hscale#0 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::hscale#0 ] { } ) always clobbers reg byte a -Statement [147] screensize::$1 = $28 << screensize::hscale#0 [ screensize::$1 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$1 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$1 ] { } ) always clobbers reg byte a -Statement [149] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 [ screensize::vscale#0 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::vscale#0 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::vscale#0 ] { } ) always clobbers reg byte a -Statement [150] screensize::$3 = $1e << screensize::vscale#0 [ screensize::$3 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$3 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$3 ] { } ) always clobbers reg byte a -Statement [153] conio_screen_layer = screenlayer::layer#0 [ conio_screen_layer ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } ) always clobbers reg byte a -Statement [160] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 [ conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::return#2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [161] CONIO_SCREEN_TEXT#13 = vera_layer_get_mapbase_offset::return#2 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } ) always clobbers reg byte a -Statement [163] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$2 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$2 ] { } ) always clobbers reg byte a -Statement [164] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_config#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_config#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_config#0 ] { } ) always clobbers reg byte a -Statement [165] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$0 ] { } ) always clobbers reg byte a reg byte y -Statement [166] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$1 ] { } ) always clobbers reg byte a -Statement [167] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$3 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$3 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$3 ] { } ) always clobbers reg byte a -Statement [168] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#0 ] { } ) always clobbers reg byte a -Statement [169] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#1 ] { } ) always clobbers reg byte a -Statement [170] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } ) always clobbers reg byte a -Statement [171] conio_width = screenlayer::$2 [ conio_screen_layer conio_width CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } ) always clobbers reg byte a -Statement [179] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::return#2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [180] screenlayer::$4 = vera_layer_get_rowskip::return#2 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$4 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$4 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$4 ] { } ) always clobbers reg byte a -Statement [181] conio_rowskip = screenlayer::$4 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } ) always clobbers reg byte a -Statement [183] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$2 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$2 ] { } ) always clobbers reg byte a -Statement [184] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_config#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_config#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_config#0 ] { } ) always clobbers reg byte a -Statement [185] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$0 ] { } ) always clobbers reg byte a reg byte y -Statement [186] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$1 ] { } ) always clobbers reg byte a -Statement [187] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$3 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$3 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$3 ] { } ) always clobbers reg byte a -Statement [188] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#0 ] { } ) always clobbers reg byte a -Statement [189] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#1 ] { } ) always clobbers reg byte a -Statement [190] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$5 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$5 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$5 ] { } ) always clobbers reg byte a -Statement [191] conio_height = screenlayer::$5 [ conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } ) always clobbers reg byte a -Statement [194] vera_layer_textcolor[vera_layer_set_textcolor::layer#2] = WHITE [ ] ( vera_layer_set_textcolor:19 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::vera_layer_set_textcolor:19 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } main:10::vera_layer_set_textcolor:67 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { { vera_layer_set_textcolor::layer#1 = vera_layer_set_textcolor::layer#2 conio_screen_layer } } ) always clobbers reg byte a -Statement [200] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] ( vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } conio_x16_init:8::vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } conio_x16_init:8::vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } main:10::vera_layer_mode_tile:73::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [201] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] ( vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } conio_x16_init:8::vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } conio_x16_init:8::vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } main:10::vera_layer_mode_tile:73::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [202] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 [ ] ( vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } main:10::vera_layer_mode_tile:73::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a reg byte y -Statement [205] if(gotoxy::y#4<=conio_screen_height) goto gotoxy::@4 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] ( gotoxy:30 [ conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#1 = gotoxy::y#4 conio_x16_init::line#3 } } conio_x16_init:8::gotoxy:30 [ conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#1 = gotoxy::y#4 conio_x16_init::line#3 } } main:10::gotoxy:118 [ conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { } main:10::printf_str:120::cputc:390::cputln:58::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:122::cputc:390::cputln:58::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:124::cputc:390::cputln:58::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:126::cputc:390::cputln:58::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:128::cputc:390::cputln:58::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:130::cputc:390::cputln:58::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:132::cputc:390::cputln:58::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:134::cputc:390::cputln:58::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:120::cputc:390::cputln:62::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:122::cputc:390::cputln:62::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:124::cputc:390::cputln:62::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:126::cputc:390::cputln:62::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:128::cputc:390::cputln:62::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:130::cputc:390::cputln:62::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:132::cputc:390::cputln:62::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:134::cputc:390::cputln:62::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:120::cputc:390::cputln:64::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:122::cputc:390::cputln:64::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:124::cputc:390::cputln:64::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:126::cputc:390::cputln:64::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:128::cputc:390::cputln:64::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:130::cputc:390::cputln:64::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:132::cputc:390::cputln:64::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:134::cputc:390::cputln:64::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } ) always clobbers reg byte a -Statement [208] if(0> 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [305] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } ) always clobbers reg byte a -Statement [306] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } ) always clobbers reg byte a -Statement [309] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [310] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } ) always clobbers reg byte a -Statement [312] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } ) always clobbers reg byte a -Statement [315] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } ) always clobbers reg byte a -Statement [319] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } ) always clobbers reg byte a -Statement [325] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } ) always clobbers reg byte a -Statement [326] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } ) always clobbers reg byte a -Statement [327] vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_128 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } ) always clobbers reg byte a -Statement [328] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } ) always clobbers reg byte a -Statement [329] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } ) always clobbers reg byte a -Statement [330] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } ) always clobbers reg byte a -Statement [331] vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_64 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } ) always clobbers reg byte a -Statement [332] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } ) always clobbers reg byte a -Statement [333] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } ) always clobbers reg byte a -Statement [334] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } ) always clobbers reg byte a -Statement [335] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } ) always clobbers reg byte a -Statement [336] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } ) always clobbers reg byte a -Statement [337] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } ) always clobbers reg byte a -Statement [339] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL [ memcpy_to_vram::vdest#2 ] ( main:10::memcpy_to_vram:75 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip memcpy_to_vram::vdest#2 ] { } main:10::memcpy_to_vram:82 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::tilebase#7 main::t#5 memcpy_to_vram::vdest#2 ] { { memcpy_to_vram::vdest#1 = memcpy_to_vram::vdest#2 } } ) always clobbers reg byte a -Statement [344] *VERA_ADDRX_H = VERA_INC_1|1 [ ] ( main:10::memcpy_to_vram:75 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip ] { } main:10::memcpy_to_vram:82 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::tilebase#7 main::t#5 ] { { memcpy_to_vram::vdest#1 = memcpy_to_vram::vdest#2 } } ) always clobbers reg byte a -Statement [346] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2 [ memcpy_to_vram::s#2 ] ( main:10::memcpy_to_vram:75 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip memcpy_to_vram::s#2 ] { } main:10::memcpy_to_vram:82 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::tilebase#7 main::t#5 memcpy_to_vram::s#2 ] { { memcpy_to_vram::vdest#1 = memcpy_to_vram::vdest#2 } } ) always clobbers reg byte a -Statement [348] *VERA_DATA0 = *memcpy_to_vram::s#2 [ memcpy_to_vram::s#2 ] ( main:10::memcpy_to_vram:75 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip memcpy_to_vram::s#2 ] { } main:10::memcpy_to_vram:82 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::tilebase#7 main::t#5 memcpy_to_vram::s#2 ] { { memcpy_to_vram::vdest#1 = memcpy_to_vram::vdest#2 } } ) always clobbers reg byte a reg byte y -Statement [351] vera_tile_area::mapbase#0 = *vera_mapbase_address [ vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [353] vera_tile_area::rowskip#0 = 1 << vera_tile_area::shift#0 [ vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [360] vera_tile_area::$10 = (unsigned int)vera_tile_area::y#3 [ vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [361] vera_tile_area::$4 = vera_tile_area::$10 << vera_tile_area::shift#0 [ vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [362] vera_tile_area::mapbase#1 = vera_tile_area::mapbase#0 + vera_tile_area::$4 [ vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [363] vera_tile_area::$5 = vera_tile_area::x#3 << 1 [ vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [364] vera_tile_area::mapbase#2 = vera_tile_area::mapbase#1 + vera_tile_area::$5 [ vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [368] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL [ vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [374] vera_tile_area::vera_vram_address01_$3 = vera_tile_area::vera_vram_address01_$2 | VERA_INC_1 [ vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [378] vera_tile_area::mapbase#3 = vera_tile_area::mapbase#10 + vera_tile_area::rowskip#0 [ vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [385] printf_str::c#1 = *printf_str::s#9 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] ( main:10::printf_str:120 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:122 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:124 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:126 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:128 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:130 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:132 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:134 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } ) always clobbers reg byte a reg byte y -Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [392] kbhit::ch = 0 [ kbhit::ch ] ( main:10::kbhit:136 [ kbhit::ch ] { { kbhit::return#1 = kbhit::return#2 } } ) always clobbers reg byte a -Statement [397] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) [ vera_layer_set_text_color_mode::addr#0 ] ( vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } ) always clobbers reg byte a -Statement [398] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C [ vera_layer_set_text_color_mode::addr#0 ] ( vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } ) always clobbers reg byte a reg byte y -Statement [399] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 [ ] ( vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 ] { } ) always clobbers reg byte a reg byte y -Statement [403] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 [ vera_layer_get_mapbase_offset::$0 ] ( screenlayer:17::vera_layer_get_mapbase_offset:159 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:8::screenlayer:17::vera_layer_get_mapbase_offset:159 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [404] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] [ vera_layer_get_mapbase_offset::return#0 ] ( screenlayer:17::vera_layer_get_mapbase_offset:159 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:8::screenlayer:17::vera_layer_get_mapbase_offset:159 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [408] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 [ vera_layer_get_rowskip::$0 ] ( screenlayer:17::vera_layer_get_rowskip:178 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:8::screenlayer:17::vera_layer_get_rowskip:178 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [409] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] [ vera_layer_get_rowskip::return#0 ] ( screenlayer:17::vera_layer_get_rowskip:178 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:8::screenlayer:17::vera_layer_get_rowskip:178 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [411] if(conio_cursor_y[conio_screen_layer]> 7 [ screensize::hscale#0 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::hscale#0 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::hscale#0 ] { } ) always clobbers reg byte a -Statement [147] screensize::$1 = $28 << screensize::hscale#0 [ screensize::$1 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$1 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$1 ] { } ) always clobbers reg byte a -Statement [149] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 [ screensize::vscale#0 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::vscale#0 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::vscale#0 ] { } ) always clobbers reg byte a -Statement [150] screensize::$3 = $1e << screensize::vscale#0 [ screensize::$3 ] ( screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$3 ] { } conio_x16_init:8::screensize:15 [ conio_screen_width conio_screen_height conio_x16_init::line#0 screensize::$3 ] { } ) always clobbers reg byte a -Statement [153] conio_screen_layer = screenlayer::layer#0 [ conio_screen_layer ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer ] { { vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_bank::return#0 = vera_layer_get_mapbase_bank::return#2 } } ) always clobbers reg byte a -Statement [160] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 [ conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::return#2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::return#2 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [161] CONIO_SCREEN_TEXT#13 = vera_layer_get_mapbase_offset::return#2 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } ) always clobbers reg byte a -Statement [163] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$2 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$2 ] { } ) always clobbers reg byte a -Statement [164] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_config#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_config#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_config#0 ] { } ) always clobbers reg byte a -Statement [165] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$0 ] { } ) always clobbers reg byte a reg byte y -Statement [166] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$1 ] { } ) always clobbers reg byte a -Statement [167] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$3 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$3 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_$3 ] { } ) always clobbers reg byte a -Statement [168] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#0 ] { } ) always clobbers reg byte a -Statement [169] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_width1_return#1 ] { } ) always clobbers reg byte a -Statement [170] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 [ conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$2 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } ) always clobbers reg byte a -Statement [171] conio_width = screenlayer::$2 [ conio_screen_layer conio_width CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { { vera_layer_get_rowshift::layer#0 = conio_screen_layer } { vera_layer_get_rowshift::return#0 = vera_layer_get_rowshift::return#2 } } ) always clobbers reg byte a -Statement [179] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::return#2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::return#2 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [180] screenlayer::$4 = vera_layer_get_rowskip::return#2 [ conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$4 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$4 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$4 ] { } ) always clobbers reg byte a -Statement [181] conio_rowskip = screenlayer::$4 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } ) always clobbers reg byte a -Statement [183] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$2 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$2 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$2 ] { } ) always clobbers reg byte a -Statement [184] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_config#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_config#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_config#0 ] { } ) always clobbers reg byte a -Statement [185] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$0 ] { } ) always clobbers reg byte a reg byte y -Statement [186] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$1 ] { } ) always clobbers reg byte a -Statement [187] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$3 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$3 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_$3 ] { } ) always clobbers reg byte a -Statement [188] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#0 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#0 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#0 ] { } ) always clobbers reg byte a -Statement [189] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#1 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#1 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::vera_layer_get_height1_return#1 ] { } ) always clobbers reg byte a -Statement [190] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 [ conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$5 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$5 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 screenlayer::$5 ] { } ) always clobbers reg byte a -Statement [191] conio_height = screenlayer::$5 [ conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] ( screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::screenlayer:17 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } ) always clobbers reg byte a -Statement [194] vera_layer_textcolor[vera_layer_set_textcolor::layer#2] = WHITE [ ] ( vera_layer_set_textcolor:19 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::vera_layer_set_textcolor:19 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } main:10::vera_layer_set_textcolor:67 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { { vera_layer_set_textcolor::layer#1 = vera_layer_set_textcolor::layer#2 conio_screen_layer } } ) always clobbers reg byte a -Statement [200] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] ( vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } conio_x16_init:8::vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } conio_x16_init:8::vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { } main:10::vera_layer_mode_tile:73::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::$0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [201] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] ( vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } conio_x16_init:8::vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } conio_x16_init:8::vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { } main:10::vera_layer_mode_tile:73::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::addr#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [202] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 [ ] ( vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::vera_layer_set_mapbase:23 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } conio_x16_init:8::vera_layer_set_mapbase:25 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip conio_x16_init::line#0 CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 ] { } main:10::vera_layer_mode_tile:73::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142::vera_layer_set_mapbase:304 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a reg byte y -Statement [205] if(gotoxy::y#4<=conio_screen_height) goto gotoxy::@4 [ conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] ( gotoxy:30 [ conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#1 = gotoxy::y#4 conio_x16_init::line#3 } } conio_x16_init:8::gotoxy:30 [ conio_width conio_height conio_rowskip CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#1 = gotoxy::y#4 conio_x16_init::line#3 } } main:10::gotoxy:118 [ conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { } main:10::printf_str:120::cputc:390::cputln:58::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:122::cputc:390::cputln:58::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:124::cputc:390::cputln:58::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:126::cputc:390::cputln:58::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:128::cputc:390::cputln:58::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:130::cputc:390::cputln:58::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:132::cputc:390::cputln:58::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:134::cputc:390::cputln:58::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:120::cputc:390::cputln:62::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:122::cputc:390::cputln:62::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:124::cputc:390::cputln:62::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:126::cputc:390::cputln:62::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:128::cputc:390::cputln:62::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:130::cputc:390::cputln:62::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:132::cputc:390::cputln:62::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:134::cputc:390::cputln:62::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:120::cputc:390::cputln:64::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:122::cputc:390::cputln:64::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:124::cputc:390::cputln:64::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:126::cputc:390::cputln:64::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:128::cputc:390::cputln:64::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:130::cputc:390::cputln:64::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:132::cputc:390::cputln:64::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } main:10::printf_str:134::cputc:390::cputln:64::cscroll:234::gotoxy:419 [ printf_str::s#0 conio_width conio_height conio_rowskip conio_screen_width conio_screen_height conio_screen_layer conio_rowshift gotoxy::y#4 ] { { gotoxy::y#2 = gotoxy::y#4 } } ) always clobbers reg byte a -Statement [208] if(0> 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::mapbase_address#0 ] { { vera_layer_set_mapbase::layer#0 = vera_layer_set_mapbase::layer#3 vera_layer_mode_tile::layer#10 } { vera_layer_set_mapbase::mapbase#0 = vera_layer_set_mapbase::mapbase#3 vera_layer_mode_tile::mapbase#0 } } ) always clobbers reg byte a -Statement [305] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$17 vera_layer_mode_tile::$18 vera_layer_mode_tile::$6 ] { } ) always clobbers reg byte a -Statement [306] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::$18 ] { } ) always clobbers reg byte a -Statement [309] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 ] { } ) always clobbers reg byte a -Statement [310] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase_address#0 ] { } ) always clobbers reg byte a -Statement [312] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#1 ] { } ) always clobbers reg byte a -Statement [315] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::tilebase#3 ] { } ) always clobbers reg byte a -Statement [319] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::tilebase#5 ] { } ) always clobbers reg byte a -Statement [325] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#11 ] { } ) always clobbers reg byte a -Statement [326] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#10 ] { } ) always clobbers reg byte a -Statement [327] vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_128 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } ) always clobbers reg byte a -Statement [328] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } ) always clobbers reg byte a -Statement [329] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 vera_layer_mode_tile::$13 ] { } ) always clobbers reg byte a -Statement [330] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#7 ] { } ) always clobbers reg byte a -Statement [331] vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_64 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } ) always clobbers reg byte a -Statement [332] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } ) always clobbers reg byte a -Statement [333] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 vera_layer_mode_tile::$12 ] { } ) always clobbers reg byte a -Statement [334] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#6 ] { } ) always clobbers reg byte a -Statement [335] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } ) always clobbers reg byte a -Statement [336] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 vera_layer_mode_tile::$11 ] { } ) always clobbers reg byte a -Statement [337] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 [ vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] ( main:10::vera_layer_mode_tile:73 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_mode_tile:142 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_mode_tile::layer#10 vera_layer_mode_tile::mapheight#10 vera_layer_mode_tile::mapbase_address#10 vera_layer_mode_tile::tilebase_address#10 vera_layer_mode_tile::tilewidth#10 vera_layer_mode_tile::tileheight#10 vera_layer_mode_tile::config#17 ] { } ) always clobbers reg byte a -Statement [339] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL [ memcpy_to_vram::vdest#2 ] ( main:10::memcpy_to_vram:75 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip memcpy_to_vram::vdest#2 ] { } main:10::memcpy_to_vram:82 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::tilebase#7 main::t#5 memcpy_to_vram::vdest#2 ] { { memcpy_to_vram::vdest#1 = memcpy_to_vram::vdest#2 } } ) always clobbers reg byte a -Statement [344] *VERA_ADDRX_H = VERA_INC_1|1 [ ] ( main:10::memcpy_to_vram:75 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip ] { } main:10::memcpy_to_vram:82 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::tilebase#7 main::t#5 ] { { memcpy_to_vram::vdest#1 = memcpy_to_vram::vdest#2 } } ) always clobbers reg byte a -Statement [346] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2 [ memcpy_to_vram::s#2 ] ( main:10::memcpy_to_vram:75 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip memcpy_to_vram::s#2 ] { } main:10::memcpy_to_vram:82 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::tilebase#7 main::t#5 memcpy_to_vram::s#2 ] { { memcpy_to_vram::vdest#1 = memcpy_to_vram::vdest#2 } } ) always clobbers reg byte a -Statement [348] *VERA_DATA0 = *memcpy_to_vram::s#2 [ memcpy_to_vram::s#2 ] ( main:10::memcpy_to_vram:75 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip memcpy_to_vram::s#2 ] { } main:10::memcpy_to_vram:82 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::tilebase#7 main::t#5 memcpy_to_vram::s#2 ] { { memcpy_to_vram::vdest#1 = memcpy_to_vram::vdest#2 } } ) always clobbers reg byte a reg byte y -Statement [351] vera_tile_area::mapbase#0 = *vera_mapbase_address [ vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [353] vera_tile_area::rowskip#0 = 1 << vera_tile_area::shift#0 [ vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::tileindex#3 vera_tile_area::y#3 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [360] vera_tile_area::$10 = (unsigned int)vera_tile_area::y#3 [ vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::shift#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$10 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [361] vera_tile_area::$4 = vera_tile_area::$10 << vera_tile_area::shift#0 [ vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::mapbase#0 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::$4 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [362] vera_tile_area::mapbase#1 = vera_tile_area::mapbase#0 + vera_tile_area::$4 [ vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::x#3 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [363] vera_tile_area::$5 = vera_tile_area::x#3 << 1 [ vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#1 vera_tile_area::$5 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [364] vera_tile_area::mapbase#2 = vera_tile_area::mapbase#1 + vera_tile_area::$5 [ vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::mapbase#2 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [368] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL [ vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [374] vera_tile_area::vera_vram_address01_$3 = vera_tile_area::vera_vram_address01_$2 | VERA_INC_1 [ vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#10 vera_tile_area::vera_vram_address01_$3 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [378] vera_tile_area::mapbase#3 = vera_tile_area::mapbase#10 + vera_tile_area::rowskip#0 [ vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] ( main:10::vera_tile_area:87 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] { } main:10::vera_tile_area:93 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#9 main::r#5 main::tile#6 main::column#2 main::c#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] { { vera_tile_area::tileindex#1 = vera_tile_area::tileindex#3 main::tile#6 } { vera_tile_area::y#1 = vera_tile_area::y#3 main::row#9 } { vera_tile_area::x#1 = vera_tile_area::x#3 main::column#2 } } main:10::vera_tile_area:107 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip main::row#11 main::r1#5 main::tile#8 main::column1#2 main::c1#2 vera_tile_area::h#4 vera_tile_area::w#9 vera_tile_area::rowskip#0 vera_tile_area::index_l#0 vera_tile_area::index_h#2 vera_tile_area::r#2 vera_tile_area::mapbase#3 ] { { vera_tile_area::tileindex#2 = vera_tile_area::tileindex#3 main::tile#8 } { vera_tile_area::y#2 = vera_tile_area::y#3 main::row#11 } { vera_tile_area::x#2 = vera_tile_area::x#3 main::column1#2 } } ) always clobbers reg byte a -Statement [385] printf_str::c#1 = *printf_str::s#9 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] ( main:10::printf_str:120 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:122 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:124 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:126 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:128 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:130 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:132 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } main:10::printf_str:134 [ conio_screen_width conio_screen_height conio_screen_layer conio_width conio_height conio_rowshift conio_rowskip printf_str::s#9 printf_str::c#1 ] { } ) always clobbers reg byte a reg byte y -Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [392] kbhit::ch = 0 [ kbhit::ch ] ( main:10::kbhit:136 [ kbhit::ch ] { { kbhit::return#1 = kbhit::return#2 } } ) always clobbers reg byte a -Statement [397] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) [ vera_layer_set_text_color_mode::addr#0 ] ( vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } ) always clobbers reg byte a -Statement [398] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C [ vera_layer_set_text_color_mode::addr#0 ] ( vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 vera_layer_set_text_color_mode::addr#0 ] { } ) always clobbers reg byte a reg byte y -Statement [399] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 [ ] ( vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 ] { } conio_x16_init:8::vera_layer_mode_text:13::vera_layer_set_text_color_mode:144 [ conio_screen_width conio_screen_height conio_x16_init::line#0 ] { } ) always clobbers reg byte a reg byte y -Statement [403] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 [ vera_layer_get_mapbase_offset::$0 ] ( screenlayer:17::vera_layer_get_mapbase_offset:159 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:8::screenlayer:17::vera_layer_get_mapbase_offset:159 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::$0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [404] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] [ vera_layer_get_mapbase_offset::return#0 ] ( screenlayer:17::vera_layer_get_mapbase_offset:159 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } conio_x16_init:8::screenlayer:17::vera_layer_get_mapbase_offset:159 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer CONIO_SCREEN_BANK#11 vera_layer_get_mapbase_offset::return#0 ] { { vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer } { vera_layer_get_mapbase_offset::return#0 = vera_layer_get_mapbase_offset::return#2 } } ) always clobbers reg byte a -Statement [408] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 [ vera_layer_get_rowskip::$0 ] ( screenlayer:17::vera_layer_get_rowskip:178 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:8::screenlayer:17::vera_layer_get_rowskip:178 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::$0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [409] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] [ vera_layer_get_rowskip::return#0 ] ( screenlayer:17::vera_layer_get_rowskip:178 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } conio_x16_init:8::screenlayer:17::vera_layer_get_rowskip:178 [ conio_screen_width conio_screen_height conio_x16_init::line#0 conio_screen_layer conio_width conio_rowshift CONIO_SCREEN_BANK#11 CONIO_SCREEN_TEXT#13 vera_layer_get_rowskip::return#0 ] { { vera_layer_get_rowskip::layer#0 = conio_screen_layer } { vera_layer_get_rowskip::return#0 = vera_layer_get_rowskip::return#2 } } ) always clobbers reg byte a -Statement [411] if(conio_cursor_y[conio_screen_layer]0 - sta.z conio_width+1 - // [5] conio_height = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z conio_height - lda #>0 - sta.z conio_height+1 - // [6] conio_rowshift = 0 -- vbuz1=vbuc1 - lda #0 - sta.z conio_rowshift - // [7] conio_rowskip = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z conio_rowskip - lda #>0 - sta.z conio_rowskip+1 - // [8] call conio_x16_init - jsr conio_x16_init - // [9] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] - __b1_from___init1: - jmp __b1 - // __start::@1 - __b1: - // [10] call main - // [65] phi from __start::@1 to main [phi:__start::@1->main] - main_from___b1: - jsr main - jmp __breturn - // __start::@return - __breturn: - // [11] return - rts -} - // conio_x16_init -// Set initial cursor position -conio_x16_init: { - // Position cursor at current line - .label BASIC_CURSOR_LINE = $d6 - .label line = $52 - // [12] conio_x16_init::line#0 = *conio_x16_init::BASIC_CURSOR_LINE -- vbuz1=_deref_pbuc1 - lda.z BASIC_CURSOR_LINE - sta.z line - // [13] call vera_layer_mode_text - // [141] phi from conio_x16_init to vera_layer_mode_text [phi:conio_x16_init->vera_layer_mode_text] - vera_layer_mode_text_from_conio_x16_init: - jsr vera_layer_mode_text - // [14] phi from conio_x16_init to conio_x16_init::@3 [phi:conio_x16_init->conio_x16_init::@3] - __b3_from_conio_x16_init: - jmp __b3 - // conio_x16_init::@3 - __b3: - // [15] call screensize - jsr screensize - // [16] phi from conio_x16_init::@3 to conio_x16_init::@4 [phi:conio_x16_init::@3->conio_x16_init::@4] - __b4_from___b3: - jmp __b4 - // conio_x16_init::@4 - __b4: - // [17] call screenlayer - jsr screenlayer - // [18] phi from conio_x16_init::@4 to conio_x16_init::@5 [phi:conio_x16_init::@4->conio_x16_init::@5] - __b5_from___b4: - jmp __b5 - // conio_x16_init::@5 - __b5: - // [19] call vera_layer_set_textcolor - // [193] phi from conio_x16_init::@5 to vera_layer_set_textcolor [phi:conio_x16_init::@5->vera_layer_set_textcolor] - vera_layer_set_textcolor_from___b5: - // [193] phi vera_layer_set_textcolor::layer#2 = 1 [phi:conio_x16_init::@5->vera_layer_set_textcolor#0] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_set_textcolor - // [20] phi from conio_x16_init::@5 to conio_x16_init::@6 [phi:conio_x16_init::@5->conio_x16_init::@6] - __b6_from___b5: - jmp __b6 - // conio_x16_init::@6 - __b6: - // [21] call vera_layer_set_backcolor - // [196] phi from conio_x16_init::@6 to vera_layer_set_backcolor [phi:conio_x16_init::@6->vera_layer_set_backcolor] - vera_layer_set_backcolor_from___b6: - // [196] phi vera_layer_set_backcolor::color#2 = BLUE [phi:conio_x16_init::@6->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLUE - // [196] phi vera_layer_set_backcolor::layer#2 = 1 [phi:conio_x16_init::@6->vera_layer_set_backcolor#1] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_set_backcolor - // [22] phi from conio_x16_init::@6 to conio_x16_init::@7 [phi:conio_x16_init::@6->conio_x16_init::@7] - __b7_from___b6: - jmp __b7 - // conio_x16_init::@7 - __b7: - // [23] call vera_layer_set_mapbase - // [199] phi from conio_x16_init::@7 to vera_layer_set_mapbase [phi:conio_x16_init::@7->vera_layer_set_mapbase] - vera_layer_set_mapbase_from___b7: - // [199] phi vera_layer_set_mapbase::mapbase#3 = $20 [phi:conio_x16_init::@7->vera_layer_set_mapbase#0] -- vbuxx=vbuc1 - ldx #$20 - // [199] phi vera_layer_set_mapbase::layer#3 = 0 [phi:conio_x16_init::@7->vera_layer_set_mapbase#1] -- vbuaa=vbuc1 - lda #0 - jsr vera_layer_set_mapbase - // [24] phi from conio_x16_init::@7 to conio_x16_init::@8 [phi:conio_x16_init::@7->conio_x16_init::@8] - __b8_from___b7: - jmp __b8 - // conio_x16_init::@8 - __b8: - // [25] call vera_layer_set_mapbase - // [199] phi from conio_x16_init::@8 to vera_layer_set_mapbase [phi:conio_x16_init::@8->vera_layer_set_mapbase] - vera_layer_set_mapbase_from___b8: - // [199] phi vera_layer_set_mapbase::mapbase#3 = 0 [phi:conio_x16_init::@8->vera_layer_set_mapbase#0] -- vbuxx=vbuc1 - ldx #0 - // [199] phi vera_layer_set_mapbase::layer#3 = 1 [phi:conio_x16_init::@8->vera_layer_set_mapbase#1] -- vbuaa=vbuc1 - lda #1 - jsr vera_layer_set_mapbase - jmp __b9 - // conio_x16_init::@9 - __b9: - // [26] if(conio_x16_init::line#0conio_x16_init::@1] - __b1_from___b2: - __b1_from___b9: - // [28] phi conio_x16_init::line#3 = conio_x16_init::line#1 [phi:conio_x16_init::@2/conio_x16_init::@9->conio_x16_init::@1#0] -- register_copy - jmp __b1 - // conio_x16_init::@1 - __b1: - // [29] gotoxy::y#1 = conio_x16_init::line#3 -- vbuxx=vbuz1 - ldx.z line - // [30] call gotoxy - // [204] phi from conio_x16_init::@1 to gotoxy [phi:conio_x16_init::@1->gotoxy] - gotoxy_from___b1: - // [204] phi gotoxy::y#4 = gotoxy::y#1 [phi:conio_x16_init::@1->gotoxy#0] -- register_copy - jsr gotoxy - jmp __breturn - // conio_x16_init::@return - __breturn: - // [31] return - rts -} - // cputc -// Output one character at the current cursor position -// Moves the cursor forward. Scrolls the entire screen if needed -// void cputc(__zp($25) char c) -cputc: { - .const OFFSET_STACK_C = 0 - .label __16 = 2 - .label c = $25 - .label conio_addr = 8 - // [33] cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C) -- vbuz1=_stackidxbyte_vbuc1 - tsx - lda STACK_BASE+OFFSET_STACK_C,x - sta.z c - // [34] vera_layer_get_color::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [35] call vera_layer_get_color - // [217] phi from cputc to vera_layer_get_color [phi:cputc->vera_layer_get_color] - vera_layer_get_color_from_cputc: - // [217] phi vera_layer_get_color::layer#2 = vera_layer_get_color::layer#0 [phi:cputc->vera_layer_get_color#0] -- register_copy - jsr vera_layer_get_color - // [36] vera_layer_get_color::return#3 = vera_layer_get_color::return#2 - jmp __b7 - // cputc::@7 - __b7: - // [37] cputc::color#0 = vera_layer_get_color::return#3 -- vbuxx=vbuaa - tax - // [38] cputc::$15 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [39] cputc::conio_addr#0 = CONIO_SCREEN_TEXT#17 + conio_line_text[cputc::$15] -- pbuz1=pbuz2_plus_pwuc1_derefidx_vbuaa - tay - clc - lda.z CONIO_SCREEN_TEXT_1 - adc conio_line_text,y - sta.z conio_addr - lda.z CONIO_SCREEN_TEXT_1+1 - adc conio_line_text+1,y - sta.z conio_addr+1 - // [40] cputc::$2 = conio_cursor_x[conio_screen_layer] << 1 -- vbuaa=pbuc1_derefidx_vbuz1_rol_1 - ldy.z conio_screen_layer - lda conio_cursor_x,y - asl - // [41] cputc::conio_addr#1 = cputc::conio_addr#0 + cputc::$2 -- pbuz1=pbuz1_plus_vbuaa - clc - adc.z conio_addr - sta.z conio_addr - bcc !+ - inc.z conio_addr+1 - !: - // [42] if(cputc::c#0==' ') goto cputc::@1 -- vbuz1_eq_vbuc1_then_la1 - lda #'\n' - cmp.z c - beq __b1_from___b7 - jmp __b2 - // cputc::@2 - __b2: - // [43] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // [44] cputc::$4 = byte0 cputc::conio_addr#1 -- vbuaa=_byte0_pbuz1 - lda.z conio_addr - // [45] *VERA_ADDRX_L = cputc::$4 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // [46] cputc::$5 = byte1 cputc::conio_addr#1 -- vbuaa=_byte1_pbuz1 - lda.z conio_addr+1 - // [47] *VERA_ADDRX_M = cputc::$5 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // [48] cputc::$6 = CONIO_SCREEN_BANK#15 | VERA_INC_1 -- vbuaa=vbuz1_bor_vbuc1 - lda #VERA_INC_1 - ora.z CONIO_SCREEN_BANK_1 - // [49] *VERA_ADDRX_H = cputc::$6 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_H - // [50] *VERA_DATA0 = cputc::c#0 -- _deref_pbuc1=vbuz1 - lda.z c - sta VERA_DATA0 - // [51] *VERA_DATA0 = cputc::color#0 -- _deref_pbuc1=vbuxx - stx VERA_DATA0 - // [52] conio_cursor_x[conio_screen_layer] = ++ conio_cursor_x[conio_screen_layer] -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 - ldx.z conio_screen_layer - inc conio_cursor_x,x - // [53] cputc::scroll_enable#0 = conio_scroll_enable[conio_screen_layer] -- vbuaa=pbuc1_derefidx_vbuz1 - ldy.z conio_screen_layer - lda conio_scroll_enable,y - // [54] if(0!=cputc::scroll_enable#0) goto cputc::@5 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b5 - jmp __b3 - // cputc::@3 - __b3: - // [55] cputc::$16 = (unsigned int)conio_cursor_x[conio_screen_layer] -- vwuz1=_word_pbuc1_derefidx_vbuz2 - ldy.z conio_screen_layer - lda conio_cursor_x,y - sta.z __16 - lda #0 - sta.z __16+1 - // [56] if(cputc::$16!=conio_width) goto cputc::@return -- vwuz1_neq_vwuz2_then_la1 - lda.z __16+1 - cmp.z conio_width+1 - bne __breturn - lda.z __16 - cmp.z conio_width - bne __breturn - // [57] phi from cputc::@3 to cputc::@4 [phi:cputc::@3->cputc::@4] - __b4_from___b3: - jmp __b4 - // cputc::@4 - __b4: - // [58] call cputln - jsr cputln - jmp __breturn - // cputc::@return - __breturn: - // [59] return - rts - // cputc::@5 - __b5: - // [60] if(conio_cursor_x[conio_screen_layer]!=conio_screen_width) goto cputc::@return -- pbuc1_derefidx_vbuz1_neq_vbuz2_then_la1 - lda.z conio_screen_width - ldy.z conio_screen_layer - cmp conio_cursor_x,y - bne __breturn - // [61] phi from cputc::@5 to cputc::@6 [phi:cputc::@5->cputc::@6] - __b6_from___b5: - jmp __b6 - // cputc::@6 - __b6: - // [62] call cputln - jsr cputln - jmp __breturn - // [63] phi from cputc::@7 to cputc::@1 [phi:cputc::@7->cputc::@1] - __b1_from___b7: - jmp __b1 - // cputc::@1 - __b1: - // [64] call cputln - jsr cputln - jmp __breturn -} - // main -main: { - .label tilebase = $48 - .label t = $3f - .label tile = $23 - .label c = $39 - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - .label row = $40 - .label r = $42 - .label column1 = $29 - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - .label row_1 = $41 - .label r1 = $43 - jmp textcolor1 - // main::textcolor1 - textcolor1: - // [66] vera_layer_set_textcolor::layer#1 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [67] call vera_layer_set_textcolor - // [193] phi from main::textcolor1 to vera_layer_set_textcolor [phi:main::textcolor1->vera_layer_set_textcolor] - vera_layer_set_textcolor_from_textcolor1: - // [193] phi vera_layer_set_textcolor::layer#2 = vera_layer_set_textcolor::layer#1 [phi:main::textcolor1->vera_layer_set_textcolor#0] -- register_copy - jsr vera_layer_set_textcolor - jmp bgcolor1 - // main::bgcolor1 - bgcolor1: - // [68] vera_layer_set_backcolor::layer#1 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [69] call vera_layer_set_backcolor - // [196] phi from main::bgcolor1 to vera_layer_set_backcolor [phi:main::bgcolor1->vera_layer_set_backcolor] - vera_layer_set_backcolor_from_bgcolor1: - // [196] phi vera_layer_set_backcolor::color#2 = BLACK [phi:main::bgcolor1->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLACK - // [196] phi vera_layer_set_backcolor::layer#2 = vera_layer_set_backcolor::layer#1 [phi:main::bgcolor1->vera_layer_set_backcolor#1] -- register_copy - jsr vera_layer_set_backcolor - // [70] phi from main::bgcolor1 to main::@12 [phi:main::bgcolor1->main::@12] - __b12_from_bgcolor1: - jmp __b12 - // main::@12 - __b12: - // [71] call clrscr - jsr clrscr - // [72] phi from main::@12 to main::@14 [phi:main::@12->main::@14] - __b14_from___b12: - jmp __b14 - // main::@14 - __b14: - // [73] call vera_layer_mode_tile - // [268] phi from main::@14 to vera_layer_mode_tile [phi:main::@14->vera_layer_mode_tile] - vera_layer_mode_tile_from___b14: - // [268] phi vera_layer_mode_tile::tileheight#10 = 8 [phi:main::@14->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #8 - sta.z vera_layer_mode_tile.tileheight - // [268] phi vera_layer_mode_tile::tilewidth#10 = 8 [phi:main::@14->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - lda #8 - sta.z vera_layer_mode_tile.tilewidth - // [268] phi vera_layer_mode_tile::tilebase_address#10 = $14000 [phi:main::@14->vera_layer_mode_tile#2] -- vduz1=vduc1 - lda #<$14000 - sta.z vera_layer_mode_tile.tilebase_address_1 - lda #>$14000 - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #<$14000>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>$14000>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - // [268] phi vera_layer_mode_tile::mapbase_address#10 = $4000 [phi:main::@14->vera_layer_mode_tile#3] -- vduz1=vduc1 - lda #<$4000 - sta.z vera_layer_mode_tile.mapbase_address_1 - lda #>$4000 - sta.z vera_layer_mode_tile.mapbase_address_1+1 - lda #<$4000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - lda #>$4000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - // [268] phi vera_layer_mode_tile::mapheight#10 = $80 [phi:main::@14->vera_layer_mode_tile#4] -- vwuz1=vbuc1 - lda #<$80 - sta.z vera_layer_mode_tile.mapheight - lda #>$80 - sta.z vera_layer_mode_tile.mapheight+1 - // [268] phi vera_layer_mode_tile::layer#10 = 0 [phi:main::@14->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #0 - sta.z vera_layer_mode_tile.layer - // [268] phi vera_layer_mode_tile::mapwidth#10 = $80 [phi:main::@14->vera_layer_mode_tile#6] -- vwuz1=vbuc1 - lda #<$80 - sta.z vera_layer_mode_tile.mapwidth - lda #>$80 - sta.z vera_layer_mode_tile.mapwidth+1 - // [268] phi vera_layer_mode_tile::color_depth#2 = 8 [phi:main::@14->vera_layer_mode_tile#7] -- vbuxx=vbuc1 - ldx #8 - jsr vera_layer_mode_tile - // [74] phi from main::@14 to main::@15 [phi:main::@14->main::@15] - __b15_from___b14: - jmp __b15 - // main::@15 - __b15: - // [75] call memcpy_to_vram - // [338] phi from main::@15 to memcpy_to_vram [phi:main::@15->memcpy_to_vram] - memcpy_to_vram_from___b15: - // [338] phi memcpy_to_vram::vdest#2 = (void *)(char *) 16384 [phi:main::@15->memcpy_to_vram#0] -- pvoz1=pvoc1 - lda #<$4000 - sta.z memcpy_to_vram.vdest - lda #>$4000 - sta.z memcpy_to_vram.vdest+1 - jsr memcpy_to_vram - // [76] phi from main::@15 to main::@1 [phi:main::@15->main::@1] - __b1_from___b15: - // [76] phi main::t#5 = 1 [phi:main::@15->main::@1#0] -- vbuz1=vbuc1 - lda #1 - sta.z t - // [76] phi main::tilebase#7 = (char *) 16384+$40 [phi:main::@15->main::@1#1] -- pbuz1=pbuc1 - lda #<$4000+$40 - sta.z tilebase - lda #>$4000+$40 - sta.z tilebase+1 - jmp __b1 - // [76] phi from main::@16 to main::@1 [phi:main::@16->main::@1] - __b1_from___b16: - // [76] phi main::t#5 = main::t#1 [phi:main::@16->main::@1#0] -- register_copy - // [76] phi main::tilebase#7 = main::tilebase#2 [phi:main::@16->main::@1#1] -- register_copy - jmp __b1 - // main::@1 - __b1: - // [77] phi from main::@1 to main::@2 [phi:main::@1->main::@2] - __b2_from___b1: - // [77] phi main::p#2 = 0 [phi:main::@1->main::@2#0] -- vbuxx=vbuc1 - ldx #0 - jmp __b2 - // [77] phi from main::@2 to main::@2 [phi:main::@2->main::@2] - __b2_from___b2: - // [77] phi main::p#2 = main::p#1 [phi:main::@2->main::@2#0] -- register_copy - jmp __b2 - // main::@2 - __b2: - // [78] main::tiles[main::p#2] = main::tiles[main::p#2] + 1 -- pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_1 - lda tiles,x - inc - sta tiles,x - // [79] main::p#1 = ++ main::p#2 -- vbuxx=_inc_vbuxx - inx - // [80] if(main::p#1!=$40) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 - cpx #$40 - bne __b2_from___b2 - jmp __b3 - // main::@3 - __b3: - // [81] memcpy_to_vram::vdest#1 = (void *)main::tilebase#7 -- pvoz1=pvoz2 - lda.z tilebase - sta.z memcpy_to_vram.vdest - lda.z tilebase+1 - sta.z memcpy_to_vram.vdest+1 - // [82] call memcpy_to_vram - // [338] phi from main::@3 to memcpy_to_vram [phi:main::@3->memcpy_to_vram] - memcpy_to_vram_from___b3: - // [338] phi memcpy_to_vram::vdest#2 = memcpy_to_vram::vdest#1 [phi:main::@3->memcpy_to_vram#0] -- register_copy - jsr memcpy_to_vram - jmp __b16 - // main::@16 - __b16: - // [83] main::tilebase#2 = main::tilebase#7 + $40 -- pbuz1=pbuz1_plus_vbuc1 - lda #$40 - clc - adc.z tilebase - sta.z tilebase - bcc !+ - inc.z tilebase+1 - !: - // [84] main::t#1 = ++ main::t#5 -- vbuz1=_inc_vbuz1 - inc.z t - // [85] if(main::t#1!=0) goto main::@1 -- vbuz1_neq_0_then_la1 - lda.z t - bne __b1_from___b16 - // [86] phi from main::@16 to main::@4 [phi:main::@16->main::@4] - __b4_from___b16: - jmp __b4 - // main::@4 - __b4: - // [87] call vera_tile_area - //vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h, byte hflip, byte vflip, byte offset) - // [350] phi from main::@4 to vera_tile_area [phi:main::@4->vera_tile_area] - vera_tile_area_from___b4: - // [350] phi vera_tile_area::w#9 = $50 [phi:main::@4->vera_tile_area#0] -- vbuz1=vbuc1 - lda #$50 - sta.z vera_tile_area.w - // [350] phi vera_tile_area::h#4 = $3c [phi:main::@4->vera_tile_area#1] -- vbuz1=vbuc1 - lda #$3c - sta.z vera_tile_area.h - // [350] phi vera_tile_area::x#3 = 0 [phi:main::@4->vera_tile_area#2] -- vbuz1=vbuc1 - lda #0 - sta.z vera_tile_area.x - // [350] phi vera_tile_area::y#3 = 0 [phi:main::@4->vera_tile_area#3] -- vbuz1=vbuc1 - lda #0 - sta.z vera_tile_area.y - // [350] phi vera_tile_area::tileindex#3 = 0 [phi:main::@4->vera_tile_area#4] -- vwuz1=vbuc1 - lda #<0 - sta.z vera_tile_area.tileindex - lda #>0 - sta.z vera_tile_area.tileindex+1 - jsr vera_tile_area - // [88] phi from main::@4 to main::@5 [phi:main::@4->main::@5] - __b5_from___b4: - // [88] phi main::r#5 = 0 [phi:main::@4->main::@5#0] -- vbuz1=vbuc1 - lda #0 - sta.z r - // [88] phi main::row#9 = 1 [phi:main::@4->main::@5#1] -- vbuz1=vbuc1 - lda #1 - sta.z row - // [88] phi main::tile#10 = 0 [phi:main::@4->main::@5#2] -- vwuz1=vwuc1 - lda #<0 - sta.z tile - lda #>0 - sta.z tile+1 - jmp __b5 - // [88] phi from main::@7 to main::@5 [phi:main::@7->main::@5] - __b5_from___b7: - // [88] phi main::r#5 = main::r#1 [phi:main::@7->main::@5#0] -- register_copy - // [88] phi main::row#9 = main::row#1 [phi:main::@7->main::@5#1] -- register_copy - // [88] phi main::tile#10 = main::tile#12 [phi:main::@7->main::@5#2] -- register_copy - jmp __b5 - // main::@5 - __b5: - // [89] phi from main::@5 to main::@6 [phi:main::@5->main::@6] - __b6_from___b5: - // [89] phi main::c#2 = 0 [phi:main::@5->main::@6#0] -- vbuz1=vbuc1 - lda #0 - sta.z c - // [89] phi main::column#2 = 1 [phi:main::@5->main::@6#1] -- vbuxx=vbuc1 - ldx #1 - // [89] phi main::tile#6 = main::tile#10 [phi:main::@5->main::@6#2] -- register_copy - jmp __b6 - // [89] phi from main::@17 to main::@6 [phi:main::@17->main::@6] - __b6_from___b17: - // [89] phi main::c#2 = main::c#1 [phi:main::@17->main::@6#0] -- register_copy - // [89] phi main::column#2 = main::column#1 [phi:main::@17->main::@6#1] -- register_copy - // [89] phi main::tile#6 = main::tile#12 [phi:main::@17->main::@6#2] -- register_copy - jmp __b6 - // main::@6 - __b6: - // [90] vera_tile_area::tileindex#1 = main::tile#6 - // [91] vera_tile_area::x#1 = main::column#2 -- vbuz1=vbuxx - stx.z vera_tile_area.x - // [92] vera_tile_area::y#1 = main::row#9 -- vbuz1=vbuz2 - lda.z row - sta.z vera_tile_area.y - // [93] call vera_tile_area - // [350] phi from main::@6 to vera_tile_area [phi:main::@6->vera_tile_area] - vera_tile_area_from___b6: - // [350] phi vera_tile_area::w#9 = 1 [phi:main::@6->vera_tile_area#0] -- vbuz1=vbuc1 - lda #1 - sta.z vera_tile_area.w - // [350] phi vera_tile_area::h#4 = 1 [phi:main::@6->vera_tile_area#1] -- vbuz1=vbuc1 - lda #1 - sta.z vera_tile_area.h - // [350] phi vera_tile_area::x#3 = vera_tile_area::x#1 [phi:main::@6->vera_tile_area#2] -- register_copy - // [350] phi vera_tile_area::y#3 = vera_tile_area::y#1 [phi:main::@6->vera_tile_area#3] -- register_copy - // [350] phi vera_tile_area::tileindex#3 = vera_tile_area::tileindex#1 [phi:main::@6->vera_tile_area#4] -- register_copy - jsr vera_tile_area - jmp __b17 - // main::@17 - __b17: - // [94] main::column#1 = main::column#2 + 2 -- vbuxx=vbuxx_plus_2 - inx - inx - // [95] main::tile#1 = ++ main::tile#6 -- vwuz1=_inc_vwuz1 - inc.z tile - bne !+ - inc.z tile+1 - !: - // [96] main::tile#12 = main::tile#1 & $ff -- vwuz1=vwuz1_band_vbuc1 - lda #$ff - and.z tile - sta.z tile - lda #0 - sta.z tile+1 - // [97] main::c#1 = ++ main::c#2 -- vbuz1=_inc_vbuz1 - inc.z c - // [98] if(main::c#1!=$20) goto main::@6 -- vbuz1_neq_vbuc1_then_la1 - lda #$20 - cmp.z c - bne __b6_from___b17 - jmp __b7 - // main::@7 - __b7: - // [99] main::row#1 = main::row#9 + 2 -- vbuz1=vbuz1_plus_2 - lda.z row - clc - adc #2 - sta.z row - // [100] main::r#1 = ++ main::r#5 -- vbuz1=_inc_vbuz1 - inc.z r - // [101] if(main::r#1!=8) goto main::@5 -- vbuz1_neq_vbuc1_then_la1 - lda #8 - cmp.z r - bne __b5_from___b7 - // [102] phi from main::@7 to main::@8 [phi:main::@7->main::@8] - __b8_from___b7: - // [102] phi main::r1#5 = 0 [phi:main::@7->main::@8#0] -- vbuz1=vbuc1 - lda #0 - sta.z r1 - // [102] phi main::row#11 = $14 [phi:main::@7->main::@8#1] -- vbuz1=vbuc1 - lda #$14 - sta.z row_1 - // [102] phi main::tile#11 = 0 [phi:main::@7->main::@8#2] -- vwuz1=vbuc1 - lda #<0 - sta.z tile - lda #>0 - sta.z tile+1 - jmp __b8 - // [102] phi from main::@10 to main::@8 [phi:main::@10->main::@8] - __b8_from___b10: - // [102] phi main::r1#5 = main::r1#1 [phi:main::@10->main::@8#0] -- register_copy - // [102] phi main::row#11 = main::row#3 [phi:main::@10->main::@8#1] -- register_copy - // [102] phi main::tile#11 = main::tile#13 [phi:main::@10->main::@8#2] -- register_copy - jmp __b8 - // main::@8 - __b8: - // [103] phi from main::@8 to main::@9 [phi:main::@8->main::@9] - __b9_from___b8: - // [103] phi main::c1#2 = 0 [phi:main::@8->main::@9#0] -- vbuxx=vbuc1 - ldx #0 - // [103] phi main::column1#2 = 1 [phi:main::@8->main::@9#1] -- vbuz1=vbuc1 - lda #1 - sta.z column1 - // [103] phi main::tile#8 = main::tile#11 [phi:main::@8->main::@9#2] -- register_copy - jmp __b9 - // [103] phi from main::@18 to main::@9 [phi:main::@18->main::@9] - __b9_from___b18: - // [103] phi main::c1#2 = main::c1#1 [phi:main::@18->main::@9#0] -- register_copy - // [103] phi main::column1#2 = main::column1#1 [phi:main::@18->main::@9#1] -- register_copy - // [103] phi main::tile#8 = main::tile#13 [phi:main::@18->main::@9#2] -- register_copy - jmp __b9 - // main::@9 - __b9: - // [104] vera_tile_area::tileindex#2 = main::tile#8 - // [105] vera_tile_area::x#2 = main::column1#2 - // [106] vera_tile_area::y#2 = main::row#11 -- vbuz1=vbuz2 - lda.z row_1 - sta.z vera_tile_area.y - // [107] call vera_tile_area - // [350] phi from main::@9 to vera_tile_area [phi:main::@9->vera_tile_area] - vera_tile_area_from___b9: - // [350] phi vera_tile_area::w#9 = 2 [phi:main::@9->vera_tile_area#0] -- vbuz1=vbuc1 - lda #2 - sta.z vera_tile_area.w - // [350] phi vera_tile_area::h#4 = 2 [phi:main::@9->vera_tile_area#1] -- vbuz1=vbuc1 - lda #2 - sta.z vera_tile_area.h - // [350] phi vera_tile_area::x#3 = vera_tile_area::x#2 [phi:main::@9->vera_tile_area#2] -- register_copy - // [350] phi vera_tile_area::y#3 = vera_tile_area::y#2 [phi:main::@9->vera_tile_area#3] -- register_copy - // [350] phi vera_tile_area::tileindex#3 = vera_tile_area::tileindex#2 [phi:main::@9->vera_tile_area#4] -- register_copy - jsr vera_tile_area - jmp __b18 - // main::@18 - __b18: - // [108] main::column1#1 = main::column1#2 + 2 -- vbuz1=vbuz1_plus_2 - lda.z column1 - clc - adc #2 - sta.z column1 - // [109] main::tile#4 = ++ main::tile#8 -- vwuz1=_inc_vwuz1 - inc.z tile - bne !+ - inc.z tile+1 - !: - // [110] main::tile#13 = main::tile#4 & $ff -- vwuz1=vwuz1_band_vbuc1 - lda #$ff - and.z tile - sta.z tile - lda #0 - sta.z tile+1 - // [111] main::c1#1 = ++ main::c1#2 -- vbuxx=_inc_vbuxx - inx - // [112] if(main::c1#1!=$20) goto main::@9 -- vbuxx_neq_vbuc1_then_la1 - cpx #$20 - bne __b9_from___b18 - jmp __b10 - // main::@10 - __b10: - // [113] main::row#3 = main::row#11 + 2 -- vbuz1=vbuz1_plus_2 - lda.z row_1 - clc - adc #2 - sta.z row_1 - // [114] main::r1#1 = ++ main::r1#5 -- vbuz1=_inc_vbuz1 - inc.z r1 - // [115] if(main::r1#1!=8) goto main::@8 -- vbuz1_neq_vbuc1_then_la1 - lda #8 - cmp.z r1 - bne __b8_from___b10 - jmp vera_layer_show1 - // main::vera_layer_show1 - vera_layer_show1: - // [116] *VERA_DC_VIDEO = *VERA_DC_VIDEO | *vera_layer_enable -- _deref_pbuc1=_deref_pbuc1_bor__deref_pbuc2 - lda VERA_DC_VIDEO - ora vera_layer_enable - sta VERA_DC_VIDEO - // [117] phi from main::vera_layer_show1 to main::@13 [phi:main::vera_layer_show1->main::@13] - __b13_from_vera_layer_show1: - jmp __b13 - // main::@13 - __b13: - // [118] call gotoxy - // [204] phi from main::@13 to gotoxy [phi:main::@13->gotoxy] - gotoxy_from___b13: - // [204] phi gotoxy::y#4 = $32 [phi:main::@13->gotoxy#0] -- vbuxx=vbuc1 - ldx #$32 - jsr gotoxy - // [119] phi from main::@13 to main::@19 [phi:main::@13->main::@19] - __b19_from___b13: - jmp __b19 - // main::@19 - __b19: - // [120] call printf_str - // [383] phi from main::@19 to printf_str [phi:main::@19->printf_str] - printf_str_from___b19: - // [383] phi printf_str::s#10 = main::s [phi:main::@19->printf_str#0] -- pbuz1=pbuc1 - lda #s - sta.z printf_str.s+1 - jsr printf_str - // [121] phi from main::@19 to main::@20 [phi:main::@19->main::@20] - __b20_from___b19: - jmp __b20 - // main::@20 - __b20: - // [122] call printf_str - // [383] phi from main::@20 to printf_str [phi:main::@20->printf_str] - printf_str_from___b20: - // [383] phi printf_str::s#10 = main::s1 [phi:main::@20->printf_str#0] -- pbuz1=pbuc1 - lda #s1 - sta.z printf_str.s+1 - jsr printf_str - // [123] phi from main::@20 to main::@21 [phi:main::@20->main::@21] - __b21_from___b20: - jmp __b21 - // main::@21 - __b21: - // [124] call printf_str - // [383] phi from main::@21 to printf_str [phi:main::@21->printf_str] - printf_str_from___b21: - // [383] phi printf_str::s#10 = main::s2 [phi:main::@21->printf_str#0] -- pbuz1=pbuc1 - lda #s2 - sta.z printf_str.s+1 - jsr printf_str - // [125] phi from main::@21 to main::@22 [phi:main::@21->main::@22] - __b22_from___b21: - jmp __b22 - // main::@22 - __b22: - // [126] call printf_str - // [383] phi from main::@22 to printf_str [phi:main::@22->printf_str] - printf_str_from___b22: - // [383] phi printf_str::s#10 = main::s3 [phi:main::@22->printf_str#0] -- pbuz1=pbuc1 - lda #s3 - sta.z printf_str.s+1 - jsr printf_str - // [127] phi from main::@22 to main::@23 [phi:main::@22->main::@23] - __b23_from___b22: - jmp __b23 - // main::@23 - __b23: - // [128] call printf_str - // [383] phi from main::@23 to printf_str [phi:main::@23->printf_str] - printf_str_from___b23: - // [383] phi printf_str::s#10 = main::s4 [phi:main::@23->printf_str#0] -- pbuz1=pbuc1 - lda #s4 - sta.z printf_str.s+1 - jsr printf_str - // [129] phi from main::@23 to main::@24 [phi:main::@23->main::@24] - __b24_from___b23: - jmp __b24 - // main::@24 - __b24: - // [130] call printf_str - // [383] phi from main::@24 to printf_str [phi:main::@24->printf_str] - printf_str_from___b24: - // [383] phi printf_str::s#10 = main::s5 [phi:main::@24->printf_str#0] -- pbuz1=pbuc1 - lda #s5 - sta.z printf_str.s+1 - jsr printf_str - // [131] phi from main::@24 to main::@25 [phi:main::@24->main::@25] - __b25_from___b24: - jmp __b25 - // main::@25 - __b25: - // [132] call printf_str - // [383] phi from main::@25 to printf_str [phi:main::@25->printf_str] - printf_str_from___b25: - // [383] phi printf_str::s#10 = main::s6 [phi:main::@25->printf_str#0] -- pbuz1=pbuc1 - lda #s6 - sta.z printf_str.s+1 - jsr printf_str - // [133] phi from main::@25 to main::@26 [phi:main::@25->main::@26] - __b26_from___b25: - jmp __b26 - // main::@26 - __b26: - // [134] call printf_str - // [383] phi from main::@26 to printf_str [phi:main::@26->printf_str] - printf_str_from___b26: - // [383] phi printf_str::s#10 = main::s7 [phi:main::@26->printf_str#0] -- pbuz1=pbuc1 - lda #s7 - sta.z printf_str.s+1 - jsr printf_str - // [135] phi from main::@26 main::@27 to main::@11 [phi:main::@26/main::@27->main::@11] - __b11_from___b26: - __b11_from___b27: - jmp __b11 - // main::@11 - __b11: - // [136] call kbhit - jsr kbhit - // [137] kbhit::return#2 = kbhit::return#1 - jmp __b27 - // main::@27 - __b27: - // [138] main::$25 = kbhit::return#2 - // [139] if(0==main::$25) goto main::@11 -- 0_eq_vbuaa_then_la1 - cmp #0 - beq __b11_from___b27 - jmp __breturn - // main::@return - __breturn: - // [140] return - rts - .segment Data - tiles: .byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - s: .text @"vera in tile mode 8 x 8, color depth 8 bits per pixel.\n" - .byte 0 - s1: .text @"in this mode, tiles are 8 pixels wide and 8 pixels tall.\n" - .byte 0 - s2: .text @"each tile can have a variation of 256 colors.\n" - .byte 0 - s3: .text @"the vera palette of 256 colors, can be used by setting the palette\n" - .byte 0 - s4: .text @"offset for each tile.\n" - .byte 0 - s5: .text @"here each column is displaying the same tile, but with different offsets!\n" - .byte 0 - s6: .text @"each offset aligns to multiples of 16 colors in the palette!.\n" - .byte 0 - s7: .text @"however, the first color will always be transparent (black).\n" - .byte 0 -} -.segment Code - // vera_layer_mode_text -// Set a vera layer in text mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_mode: The color mode, which can be 16 or 256. -// void vera_layer_mode_text(char layer, unsigned long mapbase_address, unsigned long tilebase_address, unsigned int mapwidth, unsigned int mapheight, char tilewidth, char tileheight, unsigned int color_mode) -vera_layer_mode_text: { - .const mapbase_address = 0 - .const tilebase_address = $f800 - .const mapwidth = $80 - .const mapheight = $40 - .const tilewidth = 8 - .const tileheight = 8 - .label layer = 1 - // [142] call vera_layer_mode_tile - // [268] phi from vera_layer_mode_text to vera_layer_mode_tile [phi:vera_layer_mode_text->vera_layer_mode_tile] - vera_layer_mode_tile_from_vera_layer_mode_text: - // [268] phi vera_layer_mode_tile::tileheight#10 = vera_layer_mode_text::tileheight#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #tileheight - sta.z vera_layer_mode_tile.tileheight - // [268] phi vera_layer_mode_tile::tilewidth#10 = vera_layer_mode_text::tilewidth#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - lda #tilewidth - sta.z vera_layer_mode_tile.tilewidth - // [268] phi vera_layer_mode_tile::tilebase_address#10 = vera_layer_mode_text::tilebase_address#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#2] -- vduz1=vduc1 - lda #tilebase_address - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>tilebase_address>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - // [268] phi vera_layer_mode_tile::mapbase_address#10 = vera_layer_mode_text::mapbase_address#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#3] -- vduz1=vduc1 - lda #mapbase_address - sta.z vera_layer_mode_tile.mapbase_address_1+1 - lda #>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - lda #>mapbase_address>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - // [268] phi vera_layer_mode_tile::mapheight#10 = vera_layer_mode_text::mapheight#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#4] -- vwuz1=vwuc1 - lda #mapheight - sta.z vera_layer_mode_tile.mapheight+1 - // [268] phi vera_layer_mode_tile::layer#10 = vera_layer_mode_text::layer#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #layer - sta.z vera_layer_mode_tile.layer - // [268] phi vera_layer_mode_tile::mapwidth#10 = vera_layer_mode_text::mapwidth#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#6] -- vwuz1=vwuc1 - lda #mapwidth - sta.z vera_layer_mode_tile.mapwidth+1 - // [268] phi vera_layer_mode_tile::color_depth#2 = 1 [phi:vera_layer_mode_text->vera_layer_mode_tile#7] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_mode_tile - // [143] phi from vera_layer_mode_text to vera_layer_mode_text::@1 [phi:vera_layer_mode_text->vera_layer_mode_text::@1] - __b1_from_vera_layer_mode_text: - jmp __b1 - // vera_layer_mode_text::@1 - __b1: - // [144] call vera_layer_set_text_color_mode - jsr vera_layer_set_text_color_mode - jmp __breturn - // vera_layer_mode_text::@return - __breturn: - // [145] return - rts -} - // screensize -// Return the current screen size. -// void screensize(char *x, char *y) -screensize: { - .label x = conio_screen_width - .label y = conio_screen_height - // [146] screensize::hscale#0 = *VERA_DC_HSCALE >> 7 -- vbuaa=_deref_pbuc1_ror_7 - // VERA returns in VERA_DC_HSCALE the value of 128 when 80 columns is used in text mode, - // and the value of 64 when 40 columns is used in text mode. - // Basically, 40 columns mode in the VERA is a double scan mode. - // Same for the VERA_DC_VSCALE mode, but then the subdivision is 60 or 30 rows. - // I still need to test the other modes, but this will suffice for now for the pure text modes. - lda VERA_DC_HSCALE - rol - rol - and #1 - // [147] screensize::$1 = $28 << screensize::hscale#0 -- vbuaa=vbuc1_rol_vbuaa - tay - lda #$28 - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // [148] *screensize::x#0 = screensize::$1 -- _deref_pbuc1=vbuaa - sta.z x - // [149] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 -- vbuaa=_deref_pbuc1_ror_7 - lda VERA_DC_VSCALE - rol - rol - and #1 - // [150] screensize::$3 = $1e << screensize::vscale#0 -- vbuaa=vbuc1_rol_vbuaa - tay - lda #$1e - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // [151] *screensize::y#0 = screensize::$3 -- _deref_pbuc1=vbuaa - sta.z y - jmp __breturn - // screensize::@return - __breturn: - // [152] return - rts -} - // screenlayer -// Set the layer with which the conio will interact. -// - layer: value of 0 or 1. -// void screenlayer(char layer) -screenlayer: { - .const layer = 1 - .label __2 = $f - .label __4 = $37 - .label __5 = $2b - .label vera_layer_get_width1_config = $21 - .label vera_layer_get_width1_return = $f - .label vera_layer_get_height1_config = $2d - .label vera_layer_get_height1_return = $2b - // [153] conio_screen_layer = screenlayer::layer#0 -- vbuz1=vbuc1 - lda #layer - sta.z conio_screen_layer - // [154] vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [155] call vera_layer_get_mapbase_bank - jsr vera_layer_get_mapbase_bank - // [156] vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#0 - jmp __b3 - // screenlayer::@3 - __b3: - // [157] CONIO_SCREEN_BANK#11 = vera_layer_get_mapbase_bank::return#2 -- vbuz1=vbuaa - sta.z CONIO_SCREEN_BANK - // [158] vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // [159] call vera_layer_get_mapbase_offset - jsr vera_layer_get_mapbase_offset - // [160] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 - jmp __b4 - // screenlayer::@4 - __b4: - // [161] CONIO_SCREEN_TEXT#13 = vera_layer_get_mapbase_offset::return#2 -- vwuz1=vwuz2 - lda.z vera_layer_get_mapbase_offset.return - sta.z CONIO_SCREEN_TEXT - lda.z vera_layer_get_mapbase_offset.return+1 - sta.z CONIO_SCREEN_TEXT+1 - // [162] screenlayer::vera_layer_get_width1_layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - jmp vera_layer_get_width1 - // screenlayer::vera_layer_get_width1 - vera_layer_get_width1: - // [163] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [164] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z vera_layer_get_width1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_width1_config+1 - // [165] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_WIDTH_MASK - ldy #0 - and (vera_layer_get_width1_config),y - // [166] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 -- vbuaa=vbuaa_ror_4 - lsr - lsr - lsr - lsr - // [167] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [168] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda VERA_LAYER_WIDTH,y - sta.z vera_layer_get_width1_return - lda VERA_LAYER_WIDTH+1,y - sta.z vera_layer_get_width1_return+1 - jmp vera_layer_get_width1___breturn - // screenlayer::vera_layer_get_width1_@return - vera_layer_get_width1___breturn: - // [169] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 - jmp __b1 - // screenlayer::@1 - __b1: - // [170] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 - // [171] conio_width = screenlayer::$2 -- vwuz1=vwuz2 - lda.z __2 - sta.z conio_width - lda.z __2+1 - sta.z conio_width+1 - // [172] vera_layer_get_rowshift::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [173] call vera_layer_get_rowshift - jsr vera_layer_get_rowshift - // [174] vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#0 - jmp __b5 - // screenlayer::@5 - __b5: - // [175] screenlayer::$3 = vera_layer_get_rowshift::return#2 - // [176] conio_rowshift = screenlayer::$3 -- vbuz1=vbuaa - sta.z conio_rowshift - // [177] vera_layer_get_rowskip::layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // [178] call vera_layer_get_rowskip - jsr vera_layer_get_rowskip - // [179] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 - jmp __b6 - // screenlayer::@6 - __b6: - // [180] screenlayer::$4 = vera_layer_get_rowskip::return#2 - // [181] conio_rowskip = screenlayer::$4 -- vwuz1=vwuz2 - lda.z __4 - sta.z conio_rowskip - lda.z __4+1 - sta.z conio_rowskip+1 - // [182] screenlayer::vera_layer_get_height1_layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - jmp vera_layer_get_height1 - // screenlayer::vera_layer_get_height1 - vera_layer_get_height1: - // [183] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [184] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z vera_layer_get_height1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_height1_config+1 - // [185] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_HEIGHT_MASK - ldy #0 - and (vera_layer_get_height1_config),y - // [186] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 -- vbuaa=vbuaa_ror_6 - rol - rol - rol - and #3 - // [187] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [188] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda VERA_LAYER_HEIGHT,y - sta.z vera_layer_get_height1_return - lda VERA_LAYER_HEIGHT+1,y - sta.z vera_layer_get_height1_return+1 - jmp vera_layer_get_height1___breturn - // screenlayer::vera_layer_get_height1_@return - vera_layer_get_height1___breturn: - // [189] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 - jmp __b2 - // screenlayer::@2 - __b2: - // [190] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 - // [191] conio_height = screenlayer::$5 -- vwuz1=vwuz2 - lda.z __5 - sta.z conio_height - lda.z __5+1 - sta.z conio_height+1 - jmp __breturn - // screenlayer::@return - __breturn: - // [192] return - rts -} - // vera_layer_set_textcolor -// Set the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15) when the VERA works in 16x16 color text mode. -// An 8 bit value (decimal between 0 and 255) when the VERA works in 256 text mode. -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_textcolor(__register(X) char layer, char color) -vera_layer_set_textcolor: { - // [194] vera_layer_textcolor[vera_layer_set_textcolor::layer#2] = WHITE -- pbuc1_derefidx_vbuxx=vbuc2 - lda #WHITE - sta vera_layer_textcolor,x - jmp __breturn - // vera_layer_set_textcolor::@return - __breturn: - // [195] return - rts -} - // vera_layer_set_backcolor -// Set the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_backcolor(__register(X) char layer, __register(A) char color) -vera_layer_set_backcolor: { - // [197] vera_layer_backcolor[vera_layer_set_backcolor::layer#2] = vera_layer_set_backcolor::color#2 -- pbuc1_derefidx_vbuxx=vbuaa - sta vera_layer_backcolor,x - jmp __breturn - // vera_layer_set_backcolor::@return - __breturn: - // [198] return - rts -} - // vera_layer_set_mapbase -// Set the base of the map layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - mapbase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// void vera_layer_set_mapbase(__register(A) char layer, __register(X) char mapbase) -vera_layer_set_mapbase: { - .label addr = $21 - // [200] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [201] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_mapbase,y - sta.z addr - lda vera_layer_mapbase+1,y - sta.z addr+1 - // [202] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - jmp __breturn - // vera_layer_set_mapbase::@return - __breturn: - // [203] return - rts -} - // gotoxy -// Set the cursor to the specified position -// void gotoxy(char x, __register(X) char y) -gotoxy: { - .label __6 = $f - .label line_offset = $f - // [205] if(gotoxy::y#4<=conio_screen_height) goto gotoxy::@4 -- vbuxx_le_vbuz1_then_la1 - lda.z conio_screen_height - stx.z $ff - cmp.z $ff - bcs __b4_from_gotoxy - // [207] phi from gotoxy to gotoxy::@1 [phi:gotoxy->gotoxy::@1] - __b1_from_gotoxy: - // [207] phi gotoxy::y#5 = 0 [phi:gotoxy->gotoxy::@1#0] -- vbuxx=vbuc1 - ldx #0 - jmp __b1 - // [206] phi from gotoxy to gotoxy::@4 [phi:gotoxy->gotoxy::@4] - __b4_from_gotoxy: - jmp __b4 - // gotoxy::@4 - __b4: - // [207] phi from gotoxy::@4 to gotoxy::@1 [phi:gotoxy::@4->gotoxy::@1] - __b1_from___b4: - // [207] phi gotoxy::y#5 = gotoxy::y#4 [phi:gotoxy::@4->gotoxy::@1#0] -- register_copy - jmp __b1 - // gotoxy::@1 - __b1: - // [208] if(0gotoxy::@3] - __b3_from___b1: - jmp __b3 - // gotoxy::@3 - __b3: - jmp __b2 - // gotoxy::@2 - __b2: - // [210] conio_cursor_x[conio_screen_layer] = 0 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // [211] conio_cursor_y[conio_screen_layer] = gotoxy::y#5 -- pbuc1_derefidx_vbuz1=vbuxx - ldy.z conio_screen_layer - txa - sta conio_cursor_y,y - // [212] gotoxy::$6 = (unsigned int)gotoxy::y#5 -- vwuz1=_word_vbuxx - txa - sta.z __6 - lda #0 - sta.z __6+1 - // [213] gotoxy::line_offset#0 = gotoxy::$6 << conio_rowshift -- vwuz1=vwuz1_rol_vbuz2 - ldy.z conio_rowshift - beq !e+ - !: - asl.z line_offset - rol.z line_offset+1 - dey - bne !- - !e: - // [214] gotoxy::$5 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [215] conio_line_text[gotoxy::$5] = gotoxy::line_offset#0 -- pwuc1_derefidx_vbuaa=vwuz1 - tay - lda.z line_offset - sta conio_line_text,y - lda.z line_offset+1 - sta conio_line_text+1,y - jmp __breturn - // gotoxy::@return - __breturn: - // [216] return - rts -} - // vera_layer_get_color -// Get the text and back color for text output in 16 color mode. -// - layer: Value of 0 or 1. -// - return: an 8 bit value with bit 7:4 containing the back color and bit 3:0 containing the front color. -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_color(__register(X) char layer) -vera_layer_get_color: { - .label addr = 8 - // [218] vera_layer_get_color::$3 = vera_layer_get_color::layer#2 << 1 -- vbuaa=vbuxx_rol_1 - txa - asl - // [219] vera_layer_get_color::addr#0 = vera_layer_config[vera_layer_get_color::$3] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // [220] vera_layer_get_color::$0 = *vera_layer_get_color::addr#0 & VERA_LAYER_CONFIG_256C -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_CONFIG_256C - ldy #0 - and (addr),y - // [221] if(0!=vera_layer_get_color::$0) goto vera_layer_get_color::@1 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b1 - jmp __b2 - // vera_layer_get_color::@2 - __b2: - // [222] vera_layer_get_color::$1 = vera_layer_backcolor[vera_layer_get_color::layer#2] << 4 -- vbuaa=pbuc1_derefidx_vbuxx_rol_4 - lda vera_layer_backcolor,x - asl - asl - asl - asl - // [223] vera_layer_get_color::return#1 = vera_layer_get_color::$1 | vera_layer_textcolor[vera_layer_get_color::layer#2] -- vbuaa=vbuaa_bor_pbuc1_derefidx_vbuxx - ora vera_layer_textcolor,x - // [224] phi from vera_layer_get_color::@1 vera_layer_get_color::@2 to vera_layer_get_color::@return [phi:vera_layer_get_color::@1/vera_layer_get_color::@2->vera_layer_get_color::@return] - __breturn_from___b1: - __breturn_from___b2: - // [224] phi vera_layer_get_color::return#2 = vera_layer_get_color::return#0 [phi:vera_layer_get_color::@1/vera_layer_get_color::@2->vera_layer_get_color::@return#0] -- register_copy - jmp __breturn - // vera_layer_get_color::@return - __breturn: - // [225] return - rts - // vera_layer_get_color::@1 - __b1: - // [226] vera_layer_get_color::return#0 = vera_layer_textcolor[vera_layer_get_color::layer#2] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_textcolor,x - jmp __breturn_from___b1 -} - // cputln -// Print a newline -cputln: { - .label temp = 8 - // [227] cputln::$2 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [228] cputln::temp#0 = conio_line_text[cputln::$2] -- vwuz1=pwuc1_derefidx_vbuaa - // TODO: This needs to be optimized! other variations don't compile because of sections not available! - tay - lda conio_line_text,y - sta.z temp - lda conio_line_text+1,y - sta.z temp+1 - // [229] cputln::temp#1 = cputln::temp#0 + conio_rowskip -- vwuz1=vwuz1_plus_vwuz2 - clc - lda.z temp - adc.z conio_rowskip - sta.z temp - lda.z temp+1 - adc.z conio_rowskip+1 - sta.z temp+1 - // [230] cputln::$3 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [231] conio_line_text[cputln::$3] = cputln::temp#1 -- pwuc1_derefidx_vbuaa=vwuz1 - tay - lda.z temp - sta conio_line_text,y - lda.z temp+1 - sta conio_line_text+1,y - // [232] conio_cursor_x[conio_screen_layer] = 0 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // [233] conio_cursor_y[conio_screen_layer] = ++ conio_cursor_y[conio_screen_layer] -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 - ldx.z conio_screen_layer - inc conio_cursor_y,x - // [234] call cscroll - jsr cscroll - jmp __breturn - // cputln::@return - __breturn: - // [235] return - rts -} - // clrscr -// clears the screen and moves the cursor to the upper left-hand corner of the screen. -clrscr: { - .label __1 = $53 - .label line_text = 2 - .label color = $1f - // [236] clrscr::line_text#0 = (char *)CONIO_SCREEN_TEXT#13 -- pbuz1=pbuz2 - lda.z CONIO_SCREEN_TEXT - sta.z line_text - lda.z CONIO_SCREEN_TEXT+1 - sta.z line_text+1 - // [237] vera_layer_get_backcolor::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [238] call vera_layer_get_backcolor - jsr vera_layer_get_backcolor - // [239] vera_layer_get_backcolor::return#2 = vera_layer_get_backcolor::return#0 - jmp __b7 - // clrscr::@7 - __b7: - // [240] clrscr::$0 = vera_layer_get_backcolor::return#2 - // [241] clrscr::$1 = clrscr::$0 << 4 -- vbuz1=vbuaa_rol_4 - asl - asl - asl - asl - sta.z __1 - // [242] vera_layer_get_textcolor::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [243] call vera_layer_get_textcolor - jsr vera_layer_get_textcolor - // [244] vera_layer_get_textcolor::return#2 = vera_layer_get_textcolor::return#0 - jmp __b8 - // clrscr::@8 - __b8: - // [245] clrscr::$2 = vera_layer_get_textcolor::return#2 - // [246] clrscr::color#0 = clrscr::$1 | clrscr::$2 -- vbuz1=vbuz2_bor_vbuaa - ora.z __1 - sta.z color - // [247] phi from clrscr::@8 to clrscr::@1 [phi:clrscr::@8->clrscr::@1] - __b1_from___b8: - // [247] phi clrscr::line_text#2 = clrscr::line_text#0 [phi:clrscr::@8->clrscr::@1#0] -- register_copy - // [247] phi clrscr::l#2 = 0 [phi:clrscr::@8->clrscr::@1#1] -- vbuxx=vbuc1 - ldx #0 - jmp __b1 - // clrscr::@1 - __b1: - // [248] if(clrscr::l#2clrscr::@4] - __b4_from___b2: - // [261] phi clrscr::c#2 = 0 [phi:clrscr::@2->clrscr::@4#0] -- vbuyy=vbuc1 - ldy #0 - jmp __b4 - // clrscr::@4 - __b4: - // [262] if(clrscr::c#2clrscr::@1] - __b1_from___b6: - // [247] phi clrscr::line_text#2 = clrscr::line_text#1 [phi:clrscr::@6->clrscr::@1#0] -- register_copy - // [247] phi clrscr::l#2 = clrscr::l#1 [phi:clrscr::@6->clrscr::@1#1] -- register_copy - jmp __b1 - // clrscr::@5 - __b5: - // [265] *VERA_DATA0 = ' ' -- _deref_pbuc1=vbuc2 - lda #' ' - sta VERA_DATA0 - // [266] *VERA_DATA0 = clrscr::color#0 -- _deref_pbuc1=vbuz1 - lda.z color - sta VERA_DATA0 - // [267] clrscr::c#1 = ++ clrscr::c#2 -- vbuyy=_inc_vbuyy - iny - // [261] phi from clrscr::@5 to clrscr::@4 [phi:clrscr::@5->clrscr::@4] - __b4_from___b5: - // [261] phi clrscr::c#2 = clrscr::c#1 [phi:clrscr::@5->clrscr::@4#0] -- register_copy - jmp __b4 -} - // vera_layer_mode_tile -// Set a vera layer in tile mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_depth: The color depth in bits per pixel (BPP), which can be 1, 2, 4 or 8. -// void vera_layer_mode_tile(__zp($3e) char layer, __zp($2f) unsigned long mapbase_address, __zp($33) unsigned long tilebase_address, __zp($f) unsigned int mapwidth, __zp($44) unsigned int mapheight, __zp($54) char tilewidth, __zp($55) char tileheight, __register(X) char color_depth) -vera_layer_mode_tile: { - .label __1 = $37 - .label __6 = $2d - .label __17 = $3d - .label __18 = $3c - .label mapbase_address = $2f - .label tilebase_address = $33 - .label mapwidth = $f - .label layer = $3e - .label mapheight = $44 - .label mapbase_address_1 = $4a - .label tilebase_address_1 = $4e - .label tilewidth = $54 - .label tileheight = $55 - // [269] if(vera_layer_mode_tile::color_depth#2==1) goto vera_layer_mode_tile::@5 -- vbuxx_eq_vbuc1_then_la1 - cpx #1 - beq __b5_from_vera_layer_mode_tile - jmp __b1 - // vera_layer_mode_tile::@1 - __b1: - // [270] if(vera_layer_mode_tile::color_depth#2==2) goto vera_layer_mode_tile::@5 -- vbuxx_eq_vbuc1_then_la1 - cpx #2 - beq __b5_from___b1 - jmp __b2 - // vera_layer_mode_tile::@2 - __b2: - // [271] if(vera_layer_mode_tile::color_depth#2==4) goto vera_layer_mode_tile::@5 -- vbuxx_eq_vbuc1_then_la1 - cpx #4 - beq __b5_from___b2 - jmp __b3 - // vera_layer_mode_tile::@3 - __b3: - // [272] if(vera_layer_mode_tile::color_depth#2!=8) goto vera_layer_mode_tile::@5 -- vbuxx_neq_vbuc1_then_la1 - cpx #8 - bne __b5_from___b3 - // [273] phi from vera_layer_mode_tile::@3 to vera_layer_mode_tile::@4 [phi:vera_layer_mode_tile::@3->vera_layer_mode_tile::@4] - __b4_from___b3: - jmp __b4 - // vera_layer_mode_tile::@4 - __b4: - // [274] phi from vera_layer_mode_tile::@4 to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile::@4->vera_layer_mode_tile::@5] - __b5_from___b4: - // [274] phi vera_layer_mode_tile::config#17 = VERA_LAYER_COLOR_DEPTH_8BPP [phi:vera_layer_mode_tile::@4->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_8BPP - jmp __b5 - // [274] phi from vera_layer_mode_tile to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile->vera_layer_mode_tile::@5] - __b5_from_vera_layer_mode_tile: - // [274] phi vera_layer_mode_tile::config#17 = VERA_LAYER_COLOR_DEPTH_1BPP [phi:vera_layer_mode_tile->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_1BPP - jmp __b5 - // [274] phi from vera_layer_mode_tile::@1 to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile::@1->vera_layer_mode_tile::@5] - __b5_from___b1: - // [274] phi vera_layer_mode_tile::config#17 = VERA_LAYER_COLOR_DEPTH_2BPP [phi:vera_layer_mode_tile::@1->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_2BPP - jmp __b5 - // [274] phi from vera_layer_mode_tile::@2 to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile::@2->vera_layer_mode_tile::@5] - __b5_from___b2: - // [274] phi vera_layer_mode_tile::config#17 = VERA_LAYER_COLOR_DEPTH_4BPP [phi:vera_layer_mode_tile::@2->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_4BPP - jmp __b5 - // [274] phi from vera_layer_mode_tile::@3 to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile::@3->vera_layer_mode_tile::@5] - __b5_from___b3: - // [274] phi vera_layer_mode_tile::config#17 = 0 [phi:vera_layer_mode_tile::@3->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #0 - jmp __b5 - // vera_layer_mode_tile::@5 - __b5: - // [275] if(vera_layer_mode_tile::mapwidth#10==$20) goto vera_layer_mode_tile::@9 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$20 - beq __b9 - !: - jmp __b6 - // vera_layer_mode_tile::@6 - __b6: - // [276] if(vera_layer_mode_tile::mapwidth#10==$40) goto vera_layer_mode_tile::@10 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$40 - beq __b10 - !: - jmp __b7 - // vera_layer_mode_tile::@7 - __b7: - // [277] if(vera_layer_mode_tile::mapwidth#10==$80) goto vera_layer_mode_tile::@11 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$80 - beq __b11 - !: - jmp __b8 - // vera_layer_mode_tile::@8 - __b8: - // [278] if(vera_layer_mode_tile::mapwidth#10!=$100) goto vera_layer_mode_tile::@13 -- vwuz1_neq_vwuc1_then_la1 - lda.z mapwidth+1 - cmp #>$100 - bne __b13_from___b8 - lda.z mapwidth - cmp #<$100 - bne __b13_from___b8 - jmp __b12 - // vera_layer_mode_tile::@12 - __b12: - // [279] vera_layer_mode_tile::config#8 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_256 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_WIDTH_256 - tax - // [280] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 9 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #9 - ldy.z layer - sta vera_layer_rowshift,y - // [281] vera_layer_mode_tile::$14 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - lda.z layer - asl - // [282] vera_layer_rowskip[vera_layer_mode_tile::$14] = $200 -- pwuc1_derefidx_vbuaa=vwuc2 - tay - lda #<$200 - sta vera_layer_rowskip,y - lda #>$200 - sta vera_layer_rowskip+1,y - // [283] phi from vera_layer_mode_tile::@10 vera_layer_mode_tile::@11 vera_layer_mode_tile::@12 vera_layer_mode_tile::@8 vera_layer_mode_tile::@9 to vera_layer_mode_tile::@13 [phi:vera_layer_mode_tile::@10/vera_layer_mode_tile::@11/vera_layer_mode_tile::@12/vera_layer_mode_tile::@8/vera_layer_mode_tile::@9->vera_layer_mode_tile::@13] - __b13_from___b10: - __b13_from___b11: - __b13_from___b12: - __b13_from___b8: - __b13_from___b9: - // [283] phi vera_layer_mode_tile::config#21 = vera_layer_mode_tile::config#6 [phi:vera_layer_mode_tile::@10/vera_layer_mode_tile::@11/vera_layer_mode_tile::@12/vera_layer_mode_tile::@8/vera_layer_mode_tile::@9->vera_layer_mode_tile::@13#0] -- register_copy - jmp __b13 - // vera_layer_mode_tile::@13 - __b13: - // [284] if(vera_layer_mode_tile::mapheight#10==$20) goto vera_layer_mode_tile::@20 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$20 - beq __b20_from___b13 - !: - jmp __b14 - // vera_layer_mode_tile::@14 - __b14: - // [285] if(vera_layer_mode_tile::mapheight#10==$40) goto vera_layer_mode_tile::@17 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$40 - beq __b17 - !: - jmp __b15 - // vera_layer_mode_tile::@15 - __b15: - // [286] if(vera_layer_mode_tile::mapheight#10==$80) goto vera_layer_mode_tile::@18 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$80 - beq __b18 - !: - jmp __b16 - // vera_layer_mode_tile::@16 - __b16: - // [287] if(vera_layer_mode_tile::mapheight#10!=$100) goto vera_layer_mode_tile::@20 -- vwuz1_neq_vwuc1_then_la1 - lda.z mapheight+1 - cmp #>$100 - bne __b20_from___b16 - lda.z mapheight - cmp #<$100 - bne __b20_from___b16 - jmp __b19 - // vera_layer_mode_tile::@19 - __b19: - // [288] vera_layer_mode_tile::config#12 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_256 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_256 - tax - // [289] phi from vera_layer_mode_tile::@13 vera_layer_mode_tile::@16 vera_layer_mode_tile::@17 vera_layer_mode_tile::@18 vera_layer_mode_tile::@19 to vera_layer_mode_tile::@20 [phi:vera_layer_mode_tile::@13/vera_layer_mode_tile::@16/vera_layer_mode_tile::@17/vera_layer_mode_tile::@18/vera_layer_mode_tile::@19->vera_layer_mode_tile::@20] - __b20_from___b13: - __b20_from___b16: - __b20_from___b17: - __b20_from___b18: - __b20_from___b19: - // [289] phi vera_layer_mode_tile::config#25 = vera_layer_mode_tile::config#21 [phi:vera_layer_mode_tile::@13/vera_layer_mode_tile::@16/vera_layer_mode_tile::@17/vera_layer_mode_tile::@18/vera_layer_mode_tile::@19->vera_layer_mode_tile::@20#0] -- register_copy - jmp __b20 - // vera_layer_mode_tile::@20 - __b20: - // [290] vera_layer_set_config::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [291] vera_layer_set_config::config#0 = vera_layer_mode_tile::config#25 - // [292] call vera_layer_set_config - jsr vera_layer_set_config - jmp __b27 - // vera_layer_mode_tile::@27 - __b27: - // [293] vera_layer_mode_tile::$1 = word0 vera_layer_mode_tile::mapbase_address#10 -- vwuz1=_word0_vduz2 - lda.z mapbase_address_1 - sta.z __1 - lda.z mapbase_address_1+1 - sta.z __1+1 - // [294] vera_layer_mode_tile::$17 = vera_layer_mode_tile::layer#10 << 1 -- vbuz1=vbuz2_rol_1 - lda.z layer - asl - sta.z __17 - // [295] vera_mapbase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$1 -- pwuc1_derefidx_vbuz1=vwuz2 - // mapbase - ldy.z __17 - lda.z __1 - sta vera_mapbase_offset,y - lda.z __1+1 - sta vera_mapbase_offset+1,y - // [296] vera_layer_mode_tile::$2 = byte2 vera_layer_mode_tile::mapbase_address#10 -- vbuaa=_byte2_vduz1 - lda.z mapbase_address_1+2 - // [297] vera_mapbase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$2 -- pbuc1_derefidx_vbuz1=vbuaa - ldy.z layer - sta vera_mapbase_bank,y - // [298] vera_layer_mode_tile::$18 = vera_layer_mode_tile::layer#10 << 2 -- vbuz1=vbuz2_rol_2 - lda.z layer - asl - asl - sta.z __18 - // [299] vera_mapbase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::mapbase_address#10 -- pduc1_derefidx_vbuz1=vduz2 - ldy.z __18 - lda.z mapbase_address_1 - sta vera_mapbase_address,y - lda.z mapbase_address_1+1 - sta vera_mapbase_address+1,y - lda.z mapbase_address_1+2 - sta vera_mapbase_address+2,y - lda.z mapbase_address_1+3 - sta vera_mapbase_address+3,y - // [300] vera_layer_mode_tile::mapbase_address#0 = vera_layer_mode_tile::mapbase_address#10 >> 1 -- vduz1=vduz2_ror_1 - lda.z mapbase_address_1+3 - lsr - sta.z mapbase_address+3 - lda.z mapbase_address_1+2 - ror - sta.z mapbase_address+2 - lda.z mapbase_address_1+1 - ror - sta.z mapbase_address+1 - lda.z mapbase_address_1 - ror - sta.z mapbase_address - // [301] vera_layer_mode_tile::mapbase#0 = byte1 vera_layer_mode_tile::mapbase_address#0 -- vbuxx=_byte1_vduz1 - ldx.z mapbase_address+1 - // [302] vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [303] vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0 - // [304] call vera_layer_set_mapbase - // [199] phi from vera_layer_mode_tile::@27 to vera_layer_set_mapbase [phi:vera_layer_mode_tile::@27->vera_layer_set_mapbase] - vera_layer_set_mapbase_from___b27: - // [199] phi vera_layer_set_mapbase::mapbase#3 = vera_layer_set_mapbase::mapbase#0 [phi:vera_layer_mode_tile::@27->vera_layer_set_mapbase#0] -- register_copy - // [199] phi vera_layer_set_mapbase::layer#3 = vera_layer_set_mapbase::layer#0 [phi:vera_layer_mode_tile::@27->vera_layer_set_mapbase#1] -- register_copy - jsr vera_layer_set_mapbase - jmp __b28 - // vera_layer_mode_tile::@28 - __b28: - // [305] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 -- vwuz1=_word0_vduz2 - lda.z tilebase_address_1 - sta.z __6 - lda.z tilebase_address_1+1 - sta.z __6+1 - // [306] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 -- pwuc1_derefidx_vbuz1=vwuz2 - // tilebase - ldy.z __17 - lda.z __6 - sta vera_tilebase_offset,y - lda.z __6+1 - sta vera_tilebase_offset+1,y - // [307] vera_layer_mode_tile::$7 = byte2 vera_layer_mode_tile::tilebase_address#10 -- vbuaa=_byte2_vduz1 - lda.z tilebase_address_1+2 - // [308] vera_tilebase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$7 -- pbuc1_derefidx_vbuz1=vbuaa - ldy.z layer - sta vera_tilebase_bank,y - // [309] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 -- pduc1_derefidx_vbuz1=vduz2 - ldy.z __18 - lda.z tilebase_address_1 - sta vera_tilebase_address,y - lda.z tilebase_address_1+1 - sta vera_tilebase_address+1,y - lda.z tilebase_address_1+2 - sta vera_tilebase_address+2,y - lda.z tilebase_address_1+3 - sta vera_tilebase_address+3,y - // [310] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 -- vduz1=vduz2_ror_1 - lda.z tilebase_address_1+3 - lsr - sta.z tilebase_address+3 - lda.z tilebase_address_1+2 - ror - sta.z tilebase_address+2 - lda.z tilebase_address_1+1 - ror - sta.z tilebase_address+1 - lda.z tilebase_address_1 - ror - sta.z tilebase_address - // [311] vera_layer_mode_tile::tilebase#0 = byte1 vera_layer_mode_tile::tilebase_address#0 -- vbuaa=_byte1_vduz1 - lda.z tilebase_address+1 - // [312] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK -- vbuxx=vbuaa_band_vbuc1 - and #VERA_LAYER_TILEBASE_MASK - tax - // [313] if(vera_layer_mode_tile::tilewidth#10==8) goto vera_layer_mode_tile::@23 -- vbuz1_eq_vbuc1_then_la1 - lda #8 - cmp.z tilewidth - beq __b23_from___b28 - jmp __b21 - // vera_layer_mode_tile::@21 - __b21: - // [314] if(vera_layer_mode_tile::tilewidth#10!=$10) goto vera_layer_mode_tile::@23 -- vbuz1_neq_vbuc1_then_la1 - lda #$10 - cmp.z tilewidth - bne __b23_from___b21 - jmp __b22 - // vera_layer_mode_tile::@22 - __b22: - // [315] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_TILEBASE_WIDTH_16 - tax - // [316] phi from vera_layer_mode_tile::@21 vera_layer_mode_tile::@22 vera_layer_mode_tile::@28 to vera_layer_mode_tile::@23 [phi:vera_layer_mode_tile::@21/vera_layer_mode_tile::@22/vera_layer_mode_tile::@28->vera_layer_mode_tile::@23] - __b23_from___b21: - __b23_from___b22: - __b23_from___b28: - // [316] phi vera_layer_mode_tile::tilebase#12 = vera_layer_mode_tile::tilebase#1 [phi:vera_layer_mode_tile::@21/vera_layer_mode_tile::@22/vera_layer_mode_tile::@28->vera_layer_mode_tile::@23#0] -- register_copy - jmp __b23 - // vera_layer_mode_tile::@23 - __b23: - // [317] if(vera_layer_mode_tile::tileheight#10==8) goto vera_layer_mode_tile::@26 -- vbuz1_eq_vbuc1_then_la1 - lda #8 - cmp.z tileheight - beq __b26_from___b23 - jmp __b24 - // vera_layer_mode_tile::@24 - __b24: - // [318] if(vera_layer_mode_tile::tileheight#10!=$10) goto vera_layer_mode_tile::@26 -- vbuz1_neq_vbuc1_then_la1 - lda #$10 - cmp.z tileheight - bne __b26_from___b24 - jmp __b25 - // vera_layer_mode_tile::@25 - __b25: - // [319] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_TILEBASE_HEIGHT_16 - tax - // [320] phi from vera_layer_mode_tile::@23 vera_layer_mode_tile::@24 vera_layer_mode_tile::@25 to vera_layer_mode_tile::@26 [phi:vera_layer_mode_tile::@23/vera_layer_mode_tile::@24/vera_layer_mode_tile::@25->vera_layer_mode_tile::@26] - __b26_from___b23: - __b26_from___b24: - __b26_from___b25: - // [320] phi vera_layer_mode_tile::tilebase#10 = vera_layer_mode_tile::tilebase#12 [phi:vera_layer_mode_tile::@23/vera_layer_mode_tile::@24/vera_layer_mode_tile::@25->vera_layer_mode_tile::@26#0] -- register_copy - jmp __b26 - // vera_layer_mode_tile::@26 - __b26: - // [321] vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [322] vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10 - // [323] call vera_layer_set_tilebase - jsr vera_layer_set_tilebase - jmp __breturn - // vera_layer_mode_tile::@return - __breturn: - // [324] return - rts - // vera_layer_mode_tile::@18 - __b18: - // [325] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_128 - tax - jmp __b20_from___b18 - // vera_layer_mode_tile::@17 - __b17: - // [326] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_64 - tax - jmp __b20_from___b17 - // vera_layer_mode_tile::@11 - __b11: - // [327] vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_128 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_WIDTH_128 - tax - // [328] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #8 - ldy.z layer - sta vera_layer_rowshift,y - // [329] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - lda.z layer - asl - // [330] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 -- pwuc1_derefidx_vbuaa=vwuc2 - tay - lda #<$100 - sta vera_layer_rowskip,y - lda #>$100 - sta vera_layer_rowskip+1,y - jmp __b13_from___b11 - // vera_layer_mode_tile::@10 - __b10: - // [331] vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_64 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_WIDTH_64 - tax - // [332] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #7 - ldy.z layer - sta vera_layer_rowshift,y - // [333] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - lda.z layer - asl - // [334] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 -- pwuc1_derefidx_vbuaa=vbuc2 - tay - lda #$80 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - jmp __b13_from___b10 - // vera_layer_mode_tile::@9 - __b9: - // [335] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #6 - ldy.z layer - sta vera_layer_rowshift,y - // [336] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - lda.z layer - asl - // [337] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 -- pwuc1_derefidx_vbuaa=vbuc2 - tay - lda #$40 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - jmp __b13_from___b9 -} - // memcpy_to_vram -// Copy block of memory (from RAM to VRAM) -// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination in VRAM. -// - vbank: Which 64K VRAM bank to put data into (0/1) -// - vdest: The destination address in VRAM -// - src: The source address in RAM -// - num: The number of bytes to copy -// void memcpy_to_vram(char vbank, __zp(2) void *vdest, void *src, unsigned int num) -memcpy_to_vram: { - // Transfer the data - .label end = main.tiles+$40 - .label s = $1d - .label vdest = 2 - // [339] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // [340] memcpy_to_vram::$0 = byte0 memcpy_to_vram::vdest#2 -- vbuaa=_byte0_pvoz1 - lda.z vdest - // [341] *VERA_ADDRX_L = memcpy_to_vram::$0 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // [342] memcpy_to_vram::$1 = byte1 memcpy_to_vram::vdest#2 -- vbuaa=_byte1_pvoz1 - lda.z vdest+1 - // [343] *VERA_ADDRX_M = memcpy_to_vram::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // [344] *VERA_ADDRX_H = VERA_INC_1|1 -- _deref_pbuc1=vbuc2 - lda #VERA_INC_1|1 - sta VERA_ADDRX_H - // [345] phi from memcpy_to_vram to memcpy_to_vram::@1 [phi:memcpy_to_vram->memcpy_to_vram::@1] - __b1_from_memcpy_to_vram: - // [345] phi memcpy_to_vram::s#2 = (char *)(void *)main::tiles [phi:memcpy_to_vram->memcpy_to_vram::@1#0] -- pbuz1=pbuc1 - lda #main.tiles - sta.z s+1 - jmp __b1 - // memcpy_to_vram::@1 - __b1: - // [346] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2 -- pbuz1_neq_pbuc1_then_la1 - lda.z s+1 - cmp #>end - bne __b2 - lda.z s - cmp #memcpy_to_vram::@1] - __b1_from___b2: - // [345] phi memcpy_to_vram::s#2 = memcpy_to_vram::s#1 [phi:memcpy_to_vram::@2->memcpy_to_vram::@1#0] -- register_copy - jmp __b1 -} - // vera_tile_area -// --- TILE FUNCTIONS --- -// void vera_tile_area(char layer, __zp($23) unsigned int tileindex, __zp($29) char x, __zp($25) char y, __zp($d) char w, __zp($1f) char h, __zp($28) char hflip, __zp($1a) char vflip, char offset) -vera_tile_area: { - .label __4 = 2 - .label __10 = 2 - .label mapbase = $13 - .label shift = $2a - .label rowskip = 8 - .label hflip = $28 - .label vflip = $1a - .label index_l = $1b - .label index_h = $1a - .label r = $c - .label tileindex = $23 - .label x = $29 - .label y = $25 - .label h = $1f - .label w = $d - // [351] vera_tile_area::mapbase#0 = *vera_mapbase_address -- vduz1=_deref_pduc1 - lda vera_mapbase_address - sta.z mapbase - lda vera_mapbase_address+1 - sta.z mapbase+1 - lda vera_mapbase_address+2 - sta.z mapbase+2 - lda vera_mapbase_address+3 - sta.z mapbase+3 - // [352] vera_tile_area::shift#0 = *vera_layer_rowshift -- vbuz1=_deref_pbuc1 - lda vera_layer_rowshift - sta.z shift - // [353] vera_tile_area::rowskip#0 = 1 << vera_tile_area::shift#0 -- vwuz1=vwuc1_rol_vbuz2 - ldy.z shift - lda #<1 - sta.z rowskip - lda #>1+1 - sta.z rowskip+1 - cpy #0 - beq !e+ - !: - asl.z rowskip - rol.z rowskip+1 - dey - bne !- - !e: - // [354] vera_tile_area::hflip#0 = *vera_layer_hflip -- vbuz1=_deref_pbuc1 - lda vera_layer_hflip - sta.z hflip - // [355] vera_tile_area::vflip#0 = *vera_layer_vflip -- vbuz1=_deref_pbuc1 - lda vera_layer_vflip - sta.z vflip - // [356] vera_tile_area::index_l#0 = byte0 vera_tile_area::tileindex#3 -- vbuz1=_byte0_vwuz2 - lda.z tileindex - sta.z index_l - // [357] vera_tile_area::index_h#0 = byte1 vera_tile_area::tileindex#3 -- vbuaa=_byte1_vwuz1 - lda.z tileindex+1 - // [358] vera_tile_area::index_h#1 = vera_tile_area::index_h#0 | vera_tile_area::hflip#0 -- vbuaa=vbuaa_bor_vbuz1 - ora.z hflip - // [359] vera_tile_area::index_h#2 = vera_tile_area::index_h#1 | vera_tile_area::vflip#0 -- vbuz1=vbuaa_bor_vbuz1 - ora.z index_h - sta.z index_h - // [360] vera_tile_area::$10 = (unsigned int)vera_tile_area::y#3 -- vwuz1=_word_vbuz2 - lda.z y - sta.z __10 - lda #0 - sta.z __10+1 - // [361] vera_tile_area::$4 = vera_tile_area::$10 << vera_tile_area::shift#0 -- vwuz1=vwuz1_rol_vbuz2 - ldy.z shift - beq !e+ - !: - asl.z __4 - rol.z __4+1 - dey - bne !- - !e: - // [362] vera_tile_area::mapbase#1 = vera_tile_area::mapbase#0 + vera_tile_area::$4 -- vduz1=vduz1_plus_vwuz2 - lda.z mapbase - clc - adc.z __4 - sta.z mapbase - lda.z mapbase+1 - adc.z __4+1 - sta.z mapbase+1 - lda.z mapbase+2 - adc #0 - sta.z mapbase+2 - lda.z mapbase+3 - adc #0 - sta.z mapbase+3 - // [363] vera_tile_area::$5 = vera_tile_area::x#3 << 1 -- vbuaa=vbuz1_rol_1 - lda.z x - asl - // [364] vera_tile_area::mapbase#2 = vera_tile_area::mapbase#1 + vera_tile_area::$5 -- vduz1=vduz1_plus_vbuaa - clc - adc.z mapbase - sta.z mapbase - lda.z mapbase+1 - adc #0 - sta.z mapbase+1 - lda.z mapbase+2 - adc #0 - sta.z mapbase+2 - lda.z mapbase+3 - adc #0 - sta.z mapbase+3 - // [365] phi from vera_tile_area to vera_tile_area::@1 [phi:vera_tile_area->vera_tile_area::@1] - __b1_from_vera_tile_area: - // [365] phi vera_tile_area::mapbase#10 = vera_tile_area::mapbase#2 [phi:vera_tile_area->vera_tile_area::@1#0] -- register_copy - // [365] phi vera_tile_area::r#2 = 0 [phi:vera_tile_area->vera_tile_area::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z r - jmp __b1 - // vera_tile_area::@1 - __b1: - // [366] if(vera_tile_area::r#2vera_tile_area::@2] - __b2_from_vera_vram_address01: - // [376] phi vera_tile_area::c#2 = 0 [phi:vera_tile_area::vera_vram_address01->vera_tile_area::@2#0] -- vbuyy=vbuc1 - ldy #0 - jmp __b2 - // vera_tile_area::@2 - __b2: - // [377] if(vera_tile_area::c#2vera_tile_area::@1] - __b1_from___b4: - // [365] phi vera_tile_area::mapbase#10 = vera_tile_area::mapbase#3 [phi:vera_tile_area::@4->vera_tile_area::@1#0] -- register_copy - // [365] phi vera_tile_area::r#2 = vera_tile_area::r#1 [phi:vera_tile_area::@4->vera_tile_area::@1#1] -- register_copy - jmp __b1 - // vera_tile_area::@3 - __b3: - // [380] *VERA_DATA0 = vera_tile_area::index_l#0 -- _deref_pbuc1=vbuz1 - lda.z index_l - sta VERA_DATA0 - // [381] *VERA_DATA0 = vera_tile_area::index_h#2 -- _deref_pbuc1=vbuz1 - lda.z index_h - sta VERA_DATA0 - // [382] vera_tile_area::c#1 = ++ vera_tile_area::c#2 -- vbuyy=_inc_vbuyy - iny - // [376] phi from vera_tile_area::@3 to vera_tile_area::@2 [phi:vera_tile_area::@3->vera_tile_area::@2] - __b2_from___b3: - // [376] phi vera_tile_area::c#2 = vera_tile_area::c#1 [phi:vera_tile_area::@3->vera_tile_area::@2#0] -- register_copy - jmp __b2 -} - // printf_str -/// Print a NUL-terminated string -// void printf_str(void (*putc)(char), __zp($1d) const char *s) -printf_str: { - .label s = $1d - // [384] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] - __b1_from_printf_str: - __b1_from___b2: - // [384] phi printf_str::s#9 = printf_str::s#10 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy - jmp __b1 - // printf_str::@1 - __b1: - // [385] printf_str::c#1 = *printf_str::s#9 -- vbuaa=_deref_pbuz1 - ldy #0 - lda (s),y - // [386] printf_str::s#0 = ++ printf_str::s#9 -- pbuz1=_inc_pbuz1 - inc.z s - bne !+ - inc.z s+1 - !: - // [387] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b2 - jmp __breturn - // printf_str::@return - __breturn: - // [388] return - rts - // printf_str::@2 - __b2: - // [389] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa - pha - // [390] callexecute cputc -- call_vprc1 - jsr cputc - // sideeffect stackpullpadding(1) -- _stackpullpadding_1 - pla - jmp __b1_from___b2 -} - // kbhit -// Return true if there's a key waiting, return false if not -kbhit: { - .label chptr = ch - .label IN_DEV = $28a - // Current input device number - .label GETIN = $ffe4 - .label ch = $3a - // [392] kbhit::ch = 0 -- vbuz1=vbuc1 - lda #0 - sta.z ch - // kickasm( uses kbhit::chptr uses kbhit::IN_DEV uses kbhit::GETIN) {{ jsr _kbhit bne L3 jmp continue1 .var via1 = $9f60 //VIA#1 .var d1pra = via1+1 _kbhit: ldy d1pra // The count of keys pressed is stored in RAM bank 0. stz d1pra // Set d1pra to zero to access RAM bank 0. lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). sty d1pra // Set d1pra to previous value. rts L3: ldy IN_DEV // Save current input device stz IN_DEV // Keyboard phy jsr GETIN // Read char, and return in .A ply sta chptr // Store the character read in ch sty IN_DEV // Restore input device ldx #>$0000 rts continue1: nop }} - // CBM GETIN API - jsr _kbhit - bne L3 - - jmp continue1 - - .var via1 = $9f60 //VIA#1 - .var d1pra = via1+1 - - _kbhit: - ldy d1pra // The count of keys pressed is stored in RAM bank 0. - stz d1pra // Set d1pra to zero to access RAM bank 0. - lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). - sty d1pra // Set d1pra to previous value. - rts - - L3: - ldy IN_DEV // Save current input device - stz IN_DEV // Keyboard - phy - jsr GETIN // Read char, and return in .A - ply - sta chptr // Store the character read in ch - sty IN_DEV // Restore input device - ldx #>$0000 - rts - - continue1: - nop - - // [394] kbhit::return#0 = kbhit::ch -- vbuaa=vbuz1 - lda.z ch - jmp __breturn - // kbhit::@return - __breturn: - // [395] kbhit::return#1 = kbhit::return#0 - // [396] return - rts -} - // vera_layer_set_text_color_mode -// Set the configuration of the layer text color mode. -// - layer: Value of 0 or 1. -// - color_mode: Specifies the color mode to be VERA_LAYER_CONFIG_16 or VERA_LAYER_CONFIG_256 for text mode. -// void vera_layer_set_text_color_mode(char layer, char color_mode) -vera_layer_set_text_color_mode: { - .label addr = $2b - // [397] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) -- pbuz1=_deref_qbuc1 - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER - sta.z addr - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER+1 - sta.z addr+1 - // [398] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C -- _deref_pbuz1=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_CONFIG_256C^$ff - ldy #0 - and (addr),y - ldy #0 - sta (addr),y - // [399] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 -- _deref_pbuz1=_deref_pbuz1 - ldy #0 - lda (addr),y - ldy #0 - sta (addr),y - jmp __breturn - // vera_layer_set_text_color_mode::@return - __breturn: - // [400] return - rts -} - // vera_layer_get_mapbase_bank -// Get the map base bank of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Bank in vera vram. -// __register(A) char vera_layer_get_mapbase_bank(__register(X) char layer) -vera_layer_get_mapbase_bank: { - // [401] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_mapbase_bank,x - jmp __breturn - // vera_layer_get_mapbase_bank::@return - __breturn: - // [402] return - rts -} - // vera_layer_get_mapbase_offset -// Get the map base lower 16-bit address (offset) of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Offset in vera vram of the specified bank. -// __zp($f) unsigned int vera_layer_get_mapbase_offset(__register(A) char layer) -vera_layer_get_mapbase_offset: { - .label return = $f - // [403] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [404] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda vera_mapbase_offset,y - sta.z return - lda vera_mapbase_offset+1,y - sta.z return+1 - jmp __breturn - // vera_layer_get_mapbase_offset::@return - __breturn: - // [405] return - rts -} - // vera_layer_get_rowshift -// Get the bit shift value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Rowshift value to calculate fast from a y value to line offset in tile mode. -// __register(A) char vera_layer_get_rowshift(__register(X) char layer) -vera_layer_get_rowshift: { - // [406] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_rowshift,x - jmp __breturn - // vera_layer_get_rowshift::@return - __breturn: - // [407] return - rts -} - // vera_layer_get_rowskip -// Get the value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Skip value to calculate fast from a y value to line offset in tile mode. -// __zp($37) unsigned int vera_layer_get_rowskip(__register(A) char layer) -vera_layer_get_rowskip: { - .label return = $37 - // [408] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [409] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda vera_layer_rowskip,y - sta.z return - lda vera_layer_rowskip+1,y - sta.z return+1 - jmp __breturn - // vera_layer_get_rowskip::@return - __breturn: - // [410] return - rts -} - // cscroll -// Scroll the entire screen if the cursor is beyond the last line -cscroll: { - // [411] if(conio_cursor_y[conio_screen_layer]cscroll::@3] - __b3_from___b2: - jmp __b3 - // cscroll::@3 - __b3: - jmp __breturn - // cscroll::@return - __breturn: - // [415] return - rts - // [416] phi from cscroll::@1 to cscroll::@4 [phi:cscroll::@1->cscroll::@4] - __b4_from___b1: - jmp __b4 - // cscroll::@4 - __b4: - // [417] call insertup - jsr insertup - jmp __b5 - // cscroll::@5 - __b5: - // [418] gotoxy::y#2 = conio_screen_height - 1 -- vbuxx=vbuz1_minus_1 - ldx.z conio_screen_height - dex - // [419] call gotoxy - // [204] phi from cscroll::@5 to gotoxy [phi:cscroll::@5->gotoxy] - gotoxy_from___b5: - // [204] phi gotoxy::y#4 = gotoxy::y#2 [phi:cscroll::@5->gotoxy#0] -- register_copy - jsr gotoxy - jmp __breturn -} - // vera_layer_get_backcolor -// Get the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_backcolor(__register(X) char layer) -vera_layer_get_backcolor: { - // [420] vera_layer_get_backcolor::return#0 = vera_layer_backcolor[vera_layer_get_backcolor::layer#0] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_backcolor,x - jmp __breturn - // vera_layer_get_backcolor::@return - __breturn: - // [421] return - rts -} - // vera_layer_get_textcolor -// Get the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_textcolor(__register(X) char layer) -vera_layer_get_textcolor: { - // [422] vera_layer_get_textcolor::return#0 = vera_layer_textcolor[vera_layer_get_textcolor::layer#0] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_textcolor,x - jmp __breturn - // vera_layer_get_textcolor::@return - __breturn: - // [423] return - rts -} - // vera_layer_set_config -// Set the configuration of the layer. -// - layer: Value of 0 or 1. -// - config: Specifies the modes which are specified using T256C / 'Bitmap Mode' / 'Color Depth'. -// void vera_layer_set_config(__register(A) char layer, __register(X) char config) -vera_layer_set_config: { - .label addr = $21 - // [424] vera_layer_set_config::$0 = vera_layer_set_config::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [425] vera_layer_set_config::addr#0 = vera_layer_config[vera_layer_set_config::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // [426] *vera_layer_set_config::addr#0 = vera_layer_set_config::config#0 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - jmp __breturn - // vera_layer_set_config::@return - __breturn: - // [427] return - rts -} - // vera_layer_set_tilebase -// Set the base of the tiles for the layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - tilebase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// void vera_layer_set_tilebase(__register(A) char layer, __register(X) char tilebase) -vera_layer_set_tilebase: { - .label addr = $21 - // [428] vera_layer_set_tilebase::$0 = vera_layer_set_tilebase::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [429] vera_layer_set_tilebase::addr#0 = vera_layer_tilebase[vera_layer_set_tilebase::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_tilebase,y - sta.z addr - lda vera_layer_tilebase+1,y - sta.z addr+1 - // [430] *vera_layer_set_tilebase::addr#0 = vera_layer_set_tilebase::tilebase#0 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - jmp __breturn - // vera_layer_set_tilebase::@return - __breturn: - // [431] return - rts -} - // insertup -// Insert a new line, and scroll the upper part of the screen up. -insertup: { - .label cy = $d - .label width = $c - .label line = 6 - .label start = 6 - // [432] insertup::cy#0 = conio_cursor_y[conio_screen_layer] -- vbuz1=pbuc1_derefidx_vbuz2 - ldy.z conio_screen_layer - lda conio_cursor_y,y - sta.z cy - // [433] insertup::width#0 = conio_screen_width << 1 -- vbuz1=vbuz2_rol_1 - lda.z conio_screen_width - asl - sta.z width - // [434] phi from insertup to insertup::@1 [phi:insertup->insertup::@1] - __b1_from_insertup: - // [434] phi insertup::i#2 = 1 [phi:insertup->insertup::@1#0] -- vbuxx=vbuc1 - ldx #1 - jmp __b1 - // insertup::@1 - __b1: - // [435] if(insertup::i#2<=insertup::cy#0) goto insertup::@2 -- vbuxx_le_vbuz1_then_la1 - lda.z cy - stx.z $ff - cmp.z $ff - bcs __b2 - // [436] phi from insertup::@1 to insertup::@3 [phi:insertup::@1->insertup::@3] - __b3_from___b1: - jmp __b3 - // insertup::@3 - __b3: - // [437] call clearline - jsr clearline - jmp __breturn - // insertup::@return - __breturn: - // [438] return - rts - // insertup::@2 - __b2: - // [439] insertup::$3 = insertup::i#2 - 1 -- vbuaa=vbuxx_minus_1 - txa - sec - sbc #1 - // [440] insertup::line#0 = insertup::$3 << conio_rowshift -- vwuz1=vbuaa_rol_vbuz2 - ldy.z conio_rowshift - sta.z line - lda #0 - sta.z line+1 - cpy #0 - beq !e+ - !: - asl.z line - rol.z line+1 - dey - bne !- - !e: - // [441] insertup::start#0 = CONIO_SCREEN_TEXT#17 + insertup::line#0 -- pbuz1=pbuz2_plus_vwuz1 - clc - lda.z start - adc.z CONIO_SCREEN_TEXT_1 - sta.z start - lda.z start+1 - adc.z CONIO_SCREEN_TEXT_1+1 - sta.z start+1 - // [442] memcpy_in_vram::src#0 = insertup::start#0 + conio_rowskip -- pbuz1=pbuz2_plus_vwuz3 - lda.z start - clc - adc.z conio_rowskip - sta.z memcpy_in_vram.src - lda.z start+1 - adc.z conio_rowskip+1 - sta.z memcpy_in_vram.src+1 - // [443] memcpy_in_vram::dest#0 = (void *)insertup::start#0 - // [444] memcpy_in_vram::num#0 = insertup::width#0 -- vwuz1=vbuz2 - lda.z width - sta.z memcpy_in_vram.num - lda #0 - sta.z memcpy_in_vram.num+1 - // [445] call memcpy_in_vram - jsr memcpy_in_vram - jmp __b4 - // insertup::@4 - __b4: - // [446] insertup::i#1 = ++ insertup::i#2 -- vbuxx=_inc_vbuxx - inx - // [434] phi from insertup::@4 to insertup::@1 [phi:insertup::@4->insertup::@1] - __b1_from___b4: - // [434] phi insertup::i#2 = insertup::i#1 [phi:insertup::@4->insertup::@1#0] -- register_copy - jmp __b1 -} - // clearline -clearline: { - .label addr = $a - .label c = 2 - // [447] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // [448] clearline::$5 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [449] clearline::addr#0 = CONIO_SCREEN_TEXT#17 + conio_line_text[clearline::$5] -- pbuz1=pbuz2_plus_pwuc1_derefidx_vbuaa - // Set address - tay - clc - lda.z CONIO_SCREEN_TEXT_1 - adc conio_line_text,y - sta.z addr - lda.z CONIO_SCREEN_TEXT_1+1 - adc conio_line_text+1,y - sta.z addr+1 - // [450] clearline::$1 = byte0 clearline::addr#0 -- vbuaa=_byte0_pbuz1 - lda.z addr - // [451] *VERA_ADDRX_L = clearline::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_L - // [452] clearline::$2 = byte1 clearline::addr#0 -- vbuaa=_byte1_pbuz1 - lda.z addr+1 - // [453] *VERA_ADDRX_M = clearline::$2 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // [454] *VERA_ADDRX_H = VERA_INC_1 -- _deref_pbuc1=vbuc2 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // [455] vera_layer_get_color::layer#1 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [456] call vera_layer_get_color - // [217] phi from clearline to vera_layer_get_color [phi:clearline->vera_layer_get_color] - vera_layer_get_color_from_clearline: - // [217] phi vera_layer_get_color::layer#2 = vera_layer_get_color::layer#1 [phi:clearline->vera_layer_get_color#0] -- register_copy - jsr vera_layer_get_color - // [457] vera_layer_get_color::return#4 = vera_layer_get_color::return#2 - jmp __b4 - // clearline::@4 - __b4: - // [458] clearline::color#0 = vera_layer_get_color::return#4 -- vbuxx=vbuaa - tax - // [459] phi from clearline::@4 to clearline::@1 [phi:clearline::@4->clearline::@1] - __b1_from___b4: - // [459] phi clearline::c#2 = 0 [phi:clearline::@4->clearline::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z c - lda #>0 - sta.z c+1 - jmp __b1 - // clearline::@1 - __b1: - // [460] if(clearline::c#2clearline::@1] - __b1_from___b2: - // [459] phi clearline::c#2 = clearline::c#1 [phi:clearline::@2->clearline::@1#0] -- register_copy - jmp __b1 -} - // memcpy_in_vram -// Copy block of memory (from VRAM to VRAM) -// Copies the values from the location pointed by src to the location pointed by dest. -// The method uses the VERA access ports 0 and 1 to copy data from and to in VRAM. -// - src_bank: 64K VRAM bank number to copy from (0/1). -// - src: pointer to the location to copy from. Note that the address is a 16 bit value! -// - src_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -// - dest_bank: 64K VRAM bank number to copy to (0/1). -// - dest: pointer to the location to copy to. Note that the address is a 16 bit value! -// - dest_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -// - num: The number of bytes to copy -// void memcpy_in_vram(char dest_bank, __zp(6) void *dest, char dest_increment, char src_bank, __zp($a) char *src, char src_increment, __zp(4) unsigned int num) -memcpy_in_vram: { - .label i = 2 - .label dest = 6 - .label src = $a - .label num = 4 - // [466] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // [467] memcpy_in_vram::$0 = byte0 (void *)memcpy_in_vram::src#0 -- vbuaa=_byte0_pvoz1 - lda.z src - // [468] *VERA_ADDRX_L = memcpy_in_vram::$0 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // [469] memcpy_in_vram::$1 = byte1 (void *)memcpy_in_vram::src#0 -- vbuaa=_byte1_pvoz1 - lda.z src+1 - // [470] *VERA_ADDRX_M = memcpy_in_vram::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // [471] *VERA_ADDRX_H = VERA_INC_1 -- _deref_pbuc1=vbuc2 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // [472] *VERA_CTRL = *VERA_CTRL | VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 - // Select DATA1 - lda #VERA_ADDRSEL - ora VERA_CTRL - sta VERA_CTRL - // [473] memcpy_in_vram::$3 = byte0 memcpy_in_vram::dest#0 -- vbuaa=_byte0_pvoz1 - lda.z dest - // [474] *VERA_ADDRX_L = memcpy_in_vram::$3 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // [475] memcpy_in_vram::$4 = byte1 memcpy_in_vram::dest#0 -- vbuaa=_byte1_pvoz1 - lda.z dest+1 - // [476] *VERA_ADDRX_M = memcpy_in_vram::$4 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // [477] *VERA_ADDRX_H = VERA_INC_1 -- _deref_pbuc1=vbuc2 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // [478] phi from memcpy_in_vram to memcpy_in_vram::@1 [phi:memcpy_in_vram->memcpy_in_vram::@1] - __b1_from_memcpy_in_vram: - // [478] phi memcpy_in_vram::i#2 = 0 [phi:memcpy_in_vram->memcpy_in_vram::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z i - lda #>0 - sta.z i+1 - jmp __b1 - // Transfer the data - // memcpy_in_vram::@1 - __b1: - // [479] if(memcpy_in_vram::i#2memcpy_in_vram::@1] - __b1_from___b2: - // [478] phi memcpy_in_vram::i#2 = memcpy_in_vram::i#1 [phi:memcpy_in_vram::@2->memcpy_in_vram::@1#0] -- register_copy - jmp __b1 -} - // File Data -.segment Data - VERA_LAYER_WIDTH: .word $20, $40, $80, $100 - VERA_LAYER_HEIGHT: .word $20, $40, $80, $100 - /// --- VERA function encapsulation --- - vera_mapbase_offset: .word 0, 0 - vera_mapbase_bank: .byte 0, 0 - vera_mapbase_address: .dword 0, 0 - vera_tilebase_offset: .word 0, 0 - vera_tilebase_bank: .byte 0, 0 - vera_tilebase_address: .dword 0, 0 - vera_layer_rowshift: .byte 0, 0 - vera_layer_rowskip: .word 0, 0 - vera_layer_hflip: .byte 0, 4 - vera_layer_vflip: .byte 0, 8 - vera_layer_config: .word VERA_L0_CONFIG, VERA_L1_CONFIG - vera_layer_enable: .byte VERA_LAYER0_ENABLE, VERA_LAYER1_ENABLE - vera_layer_mapbase: .word VERA_L0_MAPBASE, VERA_L1_MAPBASE - vera_layer_tilebase: .word VERA_L0_TILEBASE, VERA_L1_TILEBASE - vera_layer_textcolor: .byte WHITE, WHITE - vera_layer_backcolor: .byte BLUE, BLUE - // The number of bytes on the screen - // The current cursor x-position - conio_cursor_x: .byte 0, 0 - // The current cursor y-position - conio_cursor_y: .byte 0, 0 - // The current text cursor line start - conio_line_text: .word 0, 0 - // Is scrolling enabled when outputting beyond the end of the screen (1: yes, 0: no). - // If disabled the cursor just moves back to (0,0) instead - conio_scroll_enable: .byte 1, 1 - -ASSEMBLER OPTIMIZATIONS -Removing instruction jmp __init1 -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b3 -Removing instruction jmp __b4 -Removing instruction jmp __b5 -Removing instruction jmp __b6 -Removing instruction jmp __b7 -Removing instruction jmp __b8 -Removing instruction jmp __b9 -Removing instruction jmp __b2 -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b7 -Removing instruction jmp __b2 -Removing instruction jmp __b3 -Removing instruction jmp __b4 -Removing instruction jmp __breturn -Removing instruction jmp __b6 -Removing instruction jmp __b1 -Removing instruction jmp textcolor1 -Removing instruction jmp bgcolor1 -Removing instruction jmp __b12 -Removing instruction jmp __b14 -Removing instruction jmp __b15 -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __b3 -Removing instruction jmp __b16 -Removing instruction jmp __b4 -Removing instruction jmp __b5 -Removing instruction jmp __b6 -Removing instruction jmp __b17 -Removing instruction jmp __b7 -Removing instruction jmp __b8 -Removing instruction jmp __b9 -Removing instruction jmp __b18 -Removing instruction jmp __b10 -Removing instruction jmp vera_layer_show1 -Removing instruction jmp __b13 -Removing instruction jmp __b19 -Removing instruction jmp __b20 -Removing instruction jmp __b21 -Removing instruction jmp __b22 -Removing instruction jmp __b23 -Removing instruction jmp __b24 -Removing instruction jmp __b25 -Removing instruction jmp __b26 -Removing instruction jmp __b11 -Removing instruction jmp __b27 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b3 -Removing instruction jmp __b4 -Removing instruction jmp vera_layer_get_width1 -Removing instruction jmp vera_layer_get_width1___breturn -Removing instruction jmp __b1 -Removing instruction jmp __b5 -Removing instruction jmp __b6 -Removing instruction jmp vera_layer_get_height1 -Removing instruction jmp vera_layer_get_height1___breturn -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b4 -Removing instruction jmp __b1 -Removing instruction jmp __b3 -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b7 -Removing instruction jmp __b8 -Removing instruction jmp __b1 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b4 -Removing instruction jmp __b6 -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __b3 -Removing instruction jmp __b4 -Removing instruction jmp __b5 -Removing instruction jmp __b6 -Removing instruction jmp __b7 -Removing instruction jmp __b8 -Removing instruction jmp __b12 -Removing instruction jmp __b13 -Removing instruction jmp __b14 -Removing instruction jmp __b15 -Removing instruction jmp __b16 -Removing instruction jmp __b19 -Removing instruction jmp __b20 -Removing instruction jmp __b27 -Removing instruction jmp __b28 -Removing instruction jmp __b21 -Removing instruction jmp __b22 -Removing instruction jmp __b23 -Removing instruction jmp __b24 -Removing instruction jmp __b25 -Removing instruction jmp __b26 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b2 -Removing instruction jmp __b4 -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b4 -Removing instruction jmp __b5 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b4 -Removing instruction jmp __b4 -Removing instruction jmp __b1 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Succesful ASM optimization Pass5NextJumpElimination -Removing instruction lda #0 -Removing instruction lda #>0 -Removing instruction lda #<0 -Removing instruction lda #>0 -Removing instruction lda #0 -Removing instruction lda #<0 -Removing instruction lda #>0 -Removing instruction lda.z __16+1 -Removing instruction lda #8 -Removing instruction lda #0 -Removing instruction lda #<0 -Removing instruction lda #>0 -Removing instruction lda #>0 -Removing instruction lda #1 -Removing instruction lda #>0 -Removing instruction lda #2 -Replacing instruction ldx.z conio_screen_layer with TAX -Removing instruction ldy.z conio_screen_layer -Removing instruction lda #0 -Removing instruction ldy.z conio_screen_layer -Replacing instruction lda.z conio_screen_layer with TYA -Removing instruction lda #0 -Replacing instruction lda.z layer with TYA -Replacing instruction ldy.z __17 with TAY -Replacing instruction lda.z layer with TYA -Replacing instruction ldy.z __18 with TAY -Removing instruction lda.z mapbase_address_1+3 -Removing instruction lda.z tilebase_address_1+3 -Replacing instruction lda.z layer with TYA -Replacing instruction lda.z layer with TYA -Replacing instruction lda.z layer with TYA -Replacing instruction ldy.z shift with TAY -Removing instruction ldy #0 -Removing instruction ldy #0 -Removing instruction ldy #0 -Removing instruction lda #>0 -Removing instruction lda #>0 -Succesful ASM optimization Pass5UnnecesaryLoadElimination -Replacing label __b1_from___b9 with __b1 -Replacing label __b1_from___b7 with __b1 -Replacing label __b2_from___b2 with __b2 -Replacing label __b1_from___b16 with __b1 -Replacing label __b6_from___b17 with __b6 -Replacing label __b5_from___b7 with __b5 -Replacing label __b9_from___b18 with __b9 -Replacing label __b8_from___b10 with __b8 -Replacing label __b11_from___b27 with __b11 -Replacing label __b4_from_gotoxy with __b1 -Replacing label __breturn_from___b1 with __breturn -Replacing label __b13_from___b8 with __b13 -Replacing label __b13_from___b8 with __b13 -Replacing label __b20_from___b13 with __b20 -Replacing label __b20_from___b16 with __b20 -Replacing label __b20_from___b16 with __b20 -Replacing label __b23_from___b28 with __b23 -Replacing label __b23_from___b21 with __b23 -Replacing label __b26_from___b23 with __b26 -Replacing label __b26_from___b24 with __b26 -Replacing label __b20_from___b18 with __b20 -Replacing label __b20_from___b17 with __b20 -Replacing label __b13_from___b11 with __b13 -Replacing label __b13_from___b10 with __b13 -Replacing label __b13_from___b9 with __b13 -Replacing label __b1_from___b2 with __b1 -Replacing label __breturn with __b3 -Replacing label __b4_from___b1 with __b4 -Replacing label __breturn with __b3 -Replacing label __breturn with __b3 -Replacing label __breturn with __b3 -Removing instruction __b1_from___init1: -Removing instruction main_from___b1: -Removing instruction __b3_from_conio_x16_init: -Removing instruction __b4_from___b3: -Removing instruction __b5_from___b4: -Removing instruction vera_layer_set_textcolor_from___b5: -Removing instruction __b6_from___b5: -Removing instruction vera_layer_set_backcolor_from___b6: -Removing instruction __b7_from___b6: -Removing instruction vera_layer_set_mapbase_from___b7: -Removing instruction __b8_from___b7: -Removing instruction vera_layer_set_mapbase_from___b8: -Removing instruction __b1_from___b2: -Removing instruction __b1_from___b9: -Removing instruction __b4_from___b3: -Removing instruction __b6_from___b5: -Removing instruction __b1_from___b7: -Removing instruction __b12_from_bgcolor1: -Removing instruction __b14_from___b12: -Removing instruction vera_layer_mode_tile_from___b14: -Removing instruction __b15_from___b14: -Removing instruction memcpy_to_vram_from___b15: -Removing instruction __b1_from___b16: -Removing instruction __b2_from___b1: -Removing instruction __b2_from___b2: -Removing instruction __b4_from___b16: -Removing instruction __b5_from___b7: -Removing instruction __b6_from___b5: -Removing instruction __b6_from___b17: -Removing instruction __b8_from___b10: -Removing instruction __b9_from___b8: -Removing instruction __b9_from___b18: -Removing instruction __b13_from_vera_layer_show1: -Removing instruction gotoxy_from___b13: -Removing instruction __b19_from___b13: -Removing instruction printf_str_from___b19: -Removing instruction __b20_from___b19: -Removing instruction printf_str_from___b20: -Removing instruction __b21_from___b20: -Removing instruction printf_str_from___b21: -Removing instruction __b22_from___b21: -Removing instruction printf_str_from___b22: -Removing instruction __b23_from___b22: -Removing instruction printf_str_from___b23: -Removing instruction __b24_from___b23: -Removing instruction printf_str_from___b24: -Removing instruction __b25_from___b24: -Removing instruction printf_str_from___b25: -Removing instruction __b26_from___b25: -Removing instruction printf_str_from___b26: -Removing instruction __b11_from___b26: -Removing instruction __b11_from___b27: -Removing instruction __b1_from_vera_layer_mode_text: -Removing instruction vera_layer_get_width1___breturn: -Removing instruction vera_layer_get_height1___breturn: -Removing instruction __b4_from_gotoxy: -Removing instruction __b4: -Removing instruction __b1_from___b4: -Removing instruction __b3_from___b1: -Removing instruction __b3: -Removing instruction __breturn_from___b1: -Removing instruction __breturn_from___b2: -Removing instruction __b4_from___b3: -Removing instruction __b5_from___b4: -Removing instruction __b13_from___b10: -Removing instruction __b13_from___b11: -Removing instruction __b13_from___b12: -Removing instruction __b13_from___b8: -Removing instruction __b13_from___b9: -Removing instruction __b20_from___b13: -Removing instruction __b20_from___b16: -Removing instruction __b20_from___b17: -Removing instruction __b20_from___b18: -Removing instruction __b20_from___b19: -Removing instruction __b23_from___b21: -Removing instruction __b23_from___b22: -Removing instruction __b23_from___b28: -Removing instruction __b26_from___b23: -Removing instruction __b26_from___b24: -Removing instruction __b26_from___b25: -Removing instruction __b1_from_printf_str: -Removing instruction __b1_from___b2: -Removing instruction __b3_from___b2: -Removing instruction __breturn: -Removing instruction __b4_from___b1: -Removing instruction __b3_from___b1: -Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction __init1: -Removing instruction __b1: -Removing instruction __breturn: -Removing instruction vera_layer_mode_text_from_conio_x16_init: -Removing instruction __b3: -Removing instruction __b4: -Removing instruction __b5: -Removing instruction __b6: -Removing instruction __b7: -Removing instruction __b8: -Removing instruction __b9: -Removing instruction __b2: -Removing instruction gotoxy_from___b1: -Removing instruction __breturn: -Removing instruction vera_layer_get_color_from_cputc: -Removing instruction __b7: -Removing instruction __b2: -Removing instruction __b3: -Removing instruction __b4: -Removing instruction __b6: -Removing instruction textcolor1: -Removing instruction vera_layer_set_textcolor_from_textcolor1: -Removing instruction bgcolor1: -Removing instruction vera_layer_set_backcolor_from_bgcolor1: -Removing instruction __b12: -Removing instruction __b14: -Removing instruction __b15: -Removing instruction __b1_from___b15: -Removing instruction __b3: -Removing instruction memcpy_to_vram_from___b3: -Removing instruction __b16: -Removing instruction __b4: -Removing instruction vera_tile_area_from___b4: -Removing instruction __b5_from___b4: -Removing instruction vera_tile_area_from___b6: -Removing instruction __b17: -Removing instruction __b7: -Removing instruction __b8_from___b7: -Removing instruction vera_tile_area_from___b9: -Removing instruction __b18: -Removing instruction __b10: -Removing instruction vera_layer_show1: -Removing instruction __b13: -Removing instruction __b19: -Removing instruction __b20: -Removing instruction __b21: -Removing instruction __b22: -Removing instruction __b23: -Removing instruction __b24: -Removing instruction __b25: -Removing instruction __b26: -Removing instruction __b27: -Removing instruction __breturn: -Removing instruction vera_layer_mode_tile_from_vera_layer_mode_text: -Removing instruction __b1: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __b3: -Removing instruction __b4: -Removing instruction vera_layer_get_width1: -Removing instruction __b1: -Removing instruction __b5: -Removing instruction __b6: -Removing instruction vera_layer_get_height1: -Removing instruction __b2: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __b1_from_gotoxy: -Removing instruction __breturn: -Removing instruction __b2: -Removing instruction __breturn: -Removing instruction __b7: -Removing instruction __b8: -Removing instruction __b1_from___b8: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b4_from___b2: -Removing instruction __b6: -Removing instruction __b1_from___b6: -Removing instruction __b4_from___b5: -Removing instruction __b1: -Removing instruction __b2: -Removing instruction __b3: -Removing instruction __b4: -Removing instruction __b6: -Removing instruction __b7: -Removing instruction __b8: -Removing instruction __b12: -Removing instruction __b14: -Removing instruction __b15: -Removing instruction __b16: -Removing instruction __b19: -Removing instruction __b27: -Removing instruction vera_layer_set_mapbase_from___b27: -Removing instruction __b28: -Removing instruction __b21: -Removing instruction __b22: -Removing instruction __b24: -Removing instruction __b25: -Removing instruction __breturn: -Removing instruction __b1_from_memcpy_to_vram: -Removing instruction __breturn: -Removing instruction __b1_from___b2: -Removing instruction __b1_from_vera_tile_area: -Removing instruction __breturn: -Removing instruction __b2_from_vera_vram_address01: -Removing instruction __b4: -Removing instruction __b1_from___b4: -Removing instruction __b2_from___b3: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __b1: -Removing instruction __b2: -Removing instruction __b5: -Removing instruction gotoxy_from___b5: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __b1_from_insertup: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b4: -Removing instruction __b1_from___b4: -Removing instruction vera_layer_get_color_from_clearline: -Removing instruction __b4: -Removing instruction __b1_from___b4: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b1_from___b2: -Removing instruction __b1_from_memcpy_in_vram: -Removing instruction __breturn: -Removing instruction __b1_from___b2: -Succesful ASM optimization Pass5UnusedLabelElimination -Replacing jump to rts with rts in jmp __breturn -Replacing jump to rts with rts in jmp __breturn -Replacing jump to rts with rts in jmp __breturn -Replacing jump to rts with rts in jmp __b3 -Succesful ASM optimization Pass5DoubleJumpElimination -Relabelling long label __b5_from_vera_layer_mode_tile to __b1 -Relabelling long label __b5_from___b1 to __b2 -Relabelling long label __b5_from___b2 to __b3 -Relabelling long label __b5_from___b3 to __b4 -Succesful ASM optimization Pass5RelabelLongLabels -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __b5 -Removing instruction jmp __b6 -Removing instruction jmp __b8 -Removing instruction jmp __b9 -Removing instruction jmp __b1 -Removing instruction bne __b2 -Removing instruction bcc __b3 -Succesful ASM optimization Pass5NextJumpElimination -Removing instruction ldy.z conio_screen_layer -Removing instruction ldy.z conio_screen_layer -Removing instruction ldy.z conio_screen_layer -Succesful ASM optimization Pass5UnnecesaryLoadElimination -Removing instruction __b2: -Removing instruction __breturn: -Succesful ASM optimization Pass5UnusedLabelElimination -Fixing long branch [963] beq __b9 to bne -Fixing long branch [971] beq __b10 to bne -Fixing long branch [979] beq __b11 to bne -Fixing long branch [1013] beq __b17 to bne -Fixing long branch [1021] beq __b18 to bne - -FINAL SYMBOL TABLE -__constant const char BLACK = 0 -__constant const char BLUE = 6 -char CONIO_SCREEN_BANK -char CONIO_SCREEN_BANK#11 // CONIO_SCREEN_BANK zp[1]:86 12.813953488372093 -char CONIO_SCREEN_BANK#15 // CONIO_SCREEN_BANK_1 zp[1]:59 625.0625 -char *CONIO_SCREEN_TEXT -unsigned int CONIO_SCREEN_TEXT#13 // CONIO_SCREEN_TEXT zp[2]:87 1.8363636363636364 -char *CONIO_SCREEN_TEXT#17 // CONIO_SCREEN_TEXT_1 zp[2]:17 2.0370555611111112E7 -__constant char RADIX::BINARY = 2 -__constant char RADIX::DECIMAL = $a -__constant char RADIX::HEXADECIMAL = $10 -__constant char RADIX::OCTAL = 8 -__constant char SIZEOF_POINTER = 2 -__constant unsigned int STACK_BASE = $103 -__constant const char VERA_ADDRSEL = 1 -__constant char * const VERA_ADDRX_H = (char *) 40738 -__constant char * const VERA_ADDRX_L = (char *) 40736 -__constant char * const VERA_ADDRX_M = (char *) 40737 -__constant char * const VERA_CTRL = (char *) 40741 -__constant char * const VERA_DATA0 = (char *) 40739 -__constant char * const VERA_DATA1 = (char *) 40740 -__constant char * const VERA_DC_HSCALE = (char *) 40746 -__constant char * const VERA_DC_VIDEO = (char *) 40745 -__constant char * const VERA_DC_VSCALE = (char *) 40747 -__constant const char VERA_INC_1 = $10 -__constant char * const VERA_L0_CONFIG = (char *) 40749 -__constant char * const VERA_L0_MAPBASE = (char *) 40750 -__constant char * const VERA_L0_TILEBASE = (char *) 40751 -__constant char * const VERA_L1_CONFIG = (char *) 40756 -__constant char * const VERA_L1_MAPBASE = (char *) 40757 -__constant char * const VERA_L1_TILEBASE = (char *) 40758 -__constant const char VERA_LAYER0_ENABLE = $10 -__constant const char VERA_LAYER1_ENABLE = $20 -__constant const char VERA_LAYER_COLOR_DEPTH_1BPP = 0 -__constant const char VERA_LAYER_COLOR_DEPTH_2BPP = 1 -__constant const char VERA_LAYER_COLOR_DEPTH_4BPP = 2 -__constant const char VERA_LAYER_COLOR_DEPTH_8BPP = 3 -__constant const char VERA_LAYER_CONFIG_256C = 8 -__constant const unsigned int VERA_LAYER_HEIGHT[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_HEIGHT_128 = $80 -__constant const char VERA_LAYER_HEIGHT_256 = $c0 -__constant const char VERA_LAYER_HEIGHT_64 = $40 -__constant const char VERA_LAYER_HEIGHT_MASK = $c0 -__constant const char VERA_LAYER_TILEBASE_MASK = $fc -__constant const unsigned int VERA_LAYER_WIDTH[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_WIDTH_128 = $20 -__constant const char VERA_LAYER_WIDTH_256 = $30 -__constant const char VERA_LAYER_WIDTH_64 = $10 -__constant const char VERA_LAYER_WIDTH_MASK = $30 -__constant const char VERA_TILEBASE_HEIGHT_16 = 2 -__constant const char VERA_TILEBASE_WIDTH_16 = 1 -__constant const char WHITE = 1 -void __start() -void clearline() -char clearline::$1 // reg byte a 2.00000002E8 -char clearline::$2 // reg byte a 2.00000002E8 -char clearline::$5 // reg byte a 2.00000002E8 -char *clearline::addr -char *clearline::addr#0 // addr zp[2]:10 1.00000001E8 -unsigned int clearline::c -unsigned int clearline::c#1 // c zp[2]:2 2.0000000002E10 -unsigned int clearline::c#2 // c zp[2]:2 7.50000000075E9 -char clearline::color -char clearline::color#0 // reg byte x 1.6833333336666665E9 -void clrscr() -char clrscr::$0 // reg byte a 202.0 -char clrscr::$1 // zp[1]:83 40.4 -char clrscr::$2 // reg byte a 202.0 -char clrscr::$5 // reg byte a 2002.0 -char clrscr::$6 // reg byte a 2002.0 -char clrscr::$7 // reg byte a 2002.0 -char clrscr::$9 // reg byte a 202.0 -char clrscr::c -char clrscr::c#1 // reg byte y 20002.0 -char clrscr::c#2 // reg byte y 7500.75 -char *clrscr::ch -char clrscr::color -char clrscr::color#0 // color zp[1]:31 594.2352941176471 -char clrscr::l -char clrscr::l#1 // reg byte x 2002.0 -char clrscr::l#2 // reg byte x 200.2 -char *clrscr::line_text -char *clrscr::line_text#0 // line_text zp[2]:2 18.363636363636363 -char *clrscr::line_text#1 // line_text zp[2]:2 1001.0 -char *clrscr::line_text#2 // line_text zp[2]:2 293.2142857142857 -__constant char conio_cursor_x[2] = { 0, 0 } -__constant char conio_cursor_y[2] = { 0, 0 } -__loadstore unsigned int conio_height // zp[2]:38 5561.694444444444 -__constant unsigned int conio_line_text[2] = { 0, 0 } -__loadstore char conio_rowshift // zp[1]:23 5287958.664921466 -__loadstore unsigned int conio_rowskip // zp[2]:24 4878541.980487805 -__loadstore volatile char conio_screen_height // zp[1]:32 70588.39411764707 -__loadstore char conio_screen_layer // zp[1]:28 1296495.313207547 -__loadstore volatile char conio_screen_width // zp[1]:14 4.8878097590243906E7 -__constant char conio_scroll_enable[2] = { 1, 1 } -__loadstore unsigned int conio_width // zp[2]:70 110.46703296703298 -void conio_x16_init() -__constant char * const conio_x16_init::BASIC_CURSOR_LINE = (char *) 214 -char conio_x16_init::line -char conio_x16_init::line#0 // line zp[1]:82 2.1999999999999997 -char conio_x16_init::line#1 // line zp[1]:82 22.0 -char conio_x16_init::line#3 // line zp[1]:82 33.0 -__stackcall void cputc(char c) -char cputc::$15 // reg byte a 20002.0 -unsigned int cputc::$16 // zp[2]:2 20002.0 -char cputc::$2 // reg byte a 20002.0 -char cputc::$4 // reg byte a 20002.0 -char cputc::$5 // reg byte a 20002.0 -char cputc::$6 // reg byte a 20002.0 -__constant char cputc::OFFSET_STACK_C = 0 -char cputc::c -char cputc::c#0 // c zp[1]:37 1764.8823529411764 -char cputc::color -char cputc::color#0 // reg byte x 1428.7142857142858 -char *cputc::conio_addr -char *cputc::conio_addr#0 // conio_addr zp[2]:8 10001.0 -char *cputc::conio_addr#1 // conio_addr zp[2]:8 6000.6 -char cputc::scroll_enable -char cputc::scroll_enable#0 // reg byte a 20002.0 -void cputln() -char cputln::$2 // reg byte a 200002.0 -char cputln::$3 // reg byte a 200002.0 -unsigned int cputln::temp -unsigned int cputln::temp#0 // temp zp[2]:8 200002.0 -unsigned int cputln::temp#1 // temp zp[2]:8 100001.0 -void cscroll() -void gotoxy(char x , char y) -char gotoxy::$5 // reg byte a 2.0000002E7 -unsigned int gotoxy::$6 // zp[2]:15 2.0000002E7 -unsigned int gotoxy::line_offset -unsigned int gotoxy::line_offset#0 // line_offset zp[2]:15 1.0000001E7 -char gotoxy::x -char gotoxy::y -char gotoxy::y#1 // reg byte x 22.0 -char gotoxy::y#2 // reg byte x 2000002.0 -char gotoxy::y#4 // reg byte x 7000004.666666666 -char gotoxy::y#5 // reg byte x 4000000.4 -void insertup() -char insertup::$3 // reg byte a 2.000000002E9 -char insertup::cy -char insertup::cy#0 // cy zp[1]:13 8.416666683333334E7 -char insertup::i -char insertup::i#1 // reg byte x 2.000000002E9 -char insertup::i#2 // reg byte x 4.444444448888889E8 -unsigned int insertup::line -unsigned int insertup::line#0 // line zp[2]:6 2.000000002E9 -char *insertup::start -char *insertup::start#0 // start zp[2]:6 1.000000001E9 -char insertup::width -char insertup::width#0 // width zp[1]:12 9.1818182E7 -char kbhit() -__constant char * const kbhit::GETIN = (char *) 65508 -__constant char * const kbhit::IN_DEV = (char *) 650 -__loadstore volatile char kbhit::ch // zp[1]:58 1001.0 -__constant char * const kbhit::chptr = &kbhit::ch -char kbhit::return -char kbhit::return#0 // reg byte a 2002.0 -char kbhit::return#1 // reg byte a 367.33333333333337 -char kbhit::return#2 // reg byte a 202.0 -void main() -char main::$25 // reg byte a 202.0 -char main::bgcolor1_color -char main::c -char main::c#1 // c zp[1]:57 1501.5 -char main::c#2 // c zp[1]:57 250.25 -char main::c1 -char main::c1#1 // reg byte x 1501.5 -char main::c1#2 // reg byte x 250.25 -char main::column -char main::column#1 // reg byte x 400.4 -char main::column#2 // reg byte x 600.5999999999999 -char main::column1 -char main::column1#1 // column1 zp[1]:41 400.4 -char main::column1#2 // column1 zp[1]:41 600.5999999999999 -char main::p -char main::p#1 // reg byte x 1501.5 -char main::p#2 // reg byte x 2002.0 -char main::r -char main::r#1 // r zp[1]:66 151.5 -char main::r#5 // r zp[1]:66 16.833333333333332 -char main::r1 -char main::r1#1 // r1 zp[1]:67 151.5 -char main::r1#5 // r1 zp[1]:67 16.833333333333332 -char main::row -char main::row#1 // row zp[1]:64 67.33333333333333 -char main::row#11 // row_1 zp[1]:65 109.36363636363637 -char main::row#3 // row_1 zp[1]:65 67.33333333333333 -char main::row#9 // row zp[1]:64 109.36363636363637 -__constant char main::s[$38] = "vera in tile mode 8 x 8, color depth 8 bits per pixel. -" -__constant char main::s1[$3a] = "in this mode, tiles are 8 pixels wide and 8 pixels tall. -" -__constant char main::s2[$2f] = "each tile can have a variation of 256 colors. -" -__constant char main::s3[$44] = "the vera palette of 256 colors, can be used by setting the palette -" -__constant char main::s4[$17] = "offset for each tile. -" -__constant char main::s5[$4b] = "here each column is displaying the same tile, but with different offsets! -" -__constant char main::s6[$3f] = "each offset aligns to multiples of 16 colors in the palette!. -" -__constant char main::s7[$3e] = "however, the first color will always be transparent (black). -" -char main::t -char main::t#1 // t zp[1]:63 151.5 -char main::t#5 // t zp[1]:63 25.25 -char main::textcolor1_color -unsigned int main::tile -unsigned int main::tile#1 // tile zp[2]:35 2002.0 -unsigned int main::tile#10 // tile zp[2]:35 202.0 -unsigned int main::tile#11 // tile zp[2]:35 202.0 -unsigned int main::tile#12 // tile zp[2]:35 350.5 -unsigned int main::tile#13 // tile zp[2]:35 350.5 -unsigned int main::tile#4 // tile zp[2]:35 2002.0 -unsigned int main::tile#6 // tile zp[2]:35 517.3333333333334 -unsigned int main::tile#8 // tile zp[2]:35 517.3333333333334 -char *main::tilebase -char *main::tilebase#2 // tilebase zp[2]:72 67.33333333333333 -char *main::tilebase#7 // tilebase zp[2]:72 28.857142857142858 -__constant char main::tiles[$40] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } -char main::vera_layer_show1_layer -void memcpy_in_vram(char dest_bank , void *dest , char dest_increment , char src_bank , void *src , char src_increment , unsigned int num) -char memcpy_in_vram::$0 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$1 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$3 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$4 // reg byte a 2.0000000002E10 -void *memcpy_in_vram::dest -void *memcpy_in_vram::dest#0 // dest zp[2]:6 1.9090909093636363E9 -char memcpy_in_vram::dest_bank -char memcpy_in_vram::dest_increment -unsigned int memcpy_in_vram::i -unsigned int memcpy_in_vram::i#1 // i zp[2]:2 2.0000000000002E13 -unsigned int memcpy_in_vram::i#2 // i zp[2]:2 1.0000000000001E13 -unsigned int memcpy_in_vram::num -unsigned int memcpy_in_vram::num#0 // num zp[2]:4 5.882941176471765E11 -void *memcpy_in_vram::src -char *memcpy_in_vram::src#0 // src zp[2]:10 1.6666666683333334E8 -char memcpy_in_vram::src_bank -char memcpy_in_vram::src_increment -void memcpy_to_vram(char vbank , void *vdest , void *src , unsigned int num) -char memcpy_to_vram::$0 // reg byte a 2002.0 -char memcpy_to_vram::$1 // reg byte a 2002.0 -char *memcpy_to_vram::end -__constant char *memcpy_to_vram::end#0 = (char *)(void *)main::tiles+$40 // end -unsigned int memcpy_to_vram::num -char *memcpy_to_vram::s -char *memcpy_to_vram::s#1 // s zp[2]:29 200002.0 -char *memcpy_to_vram::s#2 // s zp[2]:29 133334.66666666666 -void *memcpy_to_vram::src -char memcpy_to_vram::vbank -void *memcpy_to_vram::vdest -void *memcpy_to_vram::vdest#1 // vdest zp[2]:2 202.0 -void *memcpy_to_vram::vdest#2 // vdest zp[2]:2 525.75 -void printf_str(void (*putc)(char) , const char *s) -char printf_str::c -char printf_str::c#1 // reg byte a 1001.0 -void (*printf_str::putc)(char) -const char *printf_str::s -const char *printf_str::s#0 // s zp[2]:29 400.4 -const char *printf_str::s#10 // s zp[2]:29 101.0 -const char *printf_str::s#9 // s zp[2]:29 1552.0 -void screenlayer(char layer) -unsigned int screenlayer::$2 // zp[2]:15 202.0 -char screenlayer::$3 // reg byte a 202.0 -unsigned int screenlayer::$4 // zp[2]:55 202.0 -unsigned int screenlayer::$5 // zp[2]:43 202.0 -char screenlayer::layer -__constant char screenlayer::layer#0 = 1 // layer -char screenlayer::vera_layer_get_height1_$0 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$1 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$2 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$3 // reg byte a 202.0 -char *screenlayer::vera_layer_get_height1_config -char *screenlayer::vera_layer_get_height1_config#0 // vera_layer_get_height1_config zp[2]:45 202.0 -char screenlayer::vera_layer_get_height1_layer -char screenlayer::vera_layer_get_height1_layer#0 // reg byte a 202.0 -unsigned int screenlayer::vera_layer_get_height1_return -unsigned int screenlayer::vera_layer_get_height1_return#0 // vera_layer_get_height1_return zp[2]:43 202.0 -unsigned int screenlayer::vera_layer_get_height1_return#1 // vera_layer_get_height1_return zp[2]:43 202.0 -char screenlayer::vera_layer_get_width1_$0 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$1 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$2 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$3 // reg byte a 202.0 -char *screenlayer::vera_layer_get_width1_config -char *screenlayer::vera_layer_get_width1_config#0 // vera_layer_get_width1_config zp[2]:33 202.0 -char screenlayer::vera_layer_get_width1_layer -char screenlayer::vera_layer_get_width1_layer#0 // reg byte a 202.0 -unsigned int screenlayer::vera_layer_get_width1_return -unsigned int screenlayer::vera_layer_get_width1_return#0 // vera_layer_get_width1_return zp[2]:15 202.0 -unsigned int screenlayer::vera_layer_get_width1_return#1 // vera_layer_get_width1_return zp[2]:15 202.0 -void screensize(char *x , char *y) -char screensize::$1 // reg byte a 202.0 -char screensize::$3 // reg byte a 202.0 -char screensize::hscale -char screensize::hscale#0 // reg byte a 202.0 -char screensize::vscale -char screensize::vscale#0 // reg byte a 202.0 -char *screensize::x -__constant char *screensize::x#0 = &conio_screen_width // x -char *screensize::y -__constant char *screensize::y#0 = &conio_screen_height // y -__constant char vera_layer_backcolor[2] = { BLUE, BLUE } -__constant char *vera_layer_config[2] = { VERA_L0_CONFIG, VERA_L1_CONFIG } -__constant char vera_layer_enable[2] = { VERA_LAYER0_ENABLE, VERA_LAYER1_ENABLE } -char vera_layer_get_backcolor(char layer) -char vera_layer_get_backcolor::layer -char vera_layer_get_backcolor::layer#0 // reg byte x 1102.0 -char vera_layer_get_backcolor::return -char vera_layer_get_backcolor::return#0 // reg byte a 367.33333333333337 -char vera_layer_get_backcolor::return#2 // reg byte a 202.0 -char vera_layer_get_color(char layer) -char vera_layer_get_color::$0 // reg byte a 2.000000002E9 -char vera_layer_get_color::$1 // reg byte a 2.000000002E9 -char vera_layer_get_color::$3 // reg byte a 2.000000002E9 -char *vera_layer_get_color::addr -char *vera_layer_get_color::addr#0 // addr zp[2]:8 2.000000002E9 -char vera_layer_get_color::layer -char vera_layer_get_color::layer#0 // reg byte x 20002.0 -char vera_layer_get_color::layer#1 // reg byte x 2.00000002E8 -char vera_layer_get_color::layer#2 // reg byte x 6.833350010000001E8 -char vera_layer_get_color::return -char vera_layer_get_color::return#0 // reg byte a 2.000000002E9 -char vera_layer_get_color::return#1 // reg byte a 2.000000002E9 -char vera_layer_get_color::return#2 // reg byte a 5.25002501E8 -char vera_layer_get_color::return#3 // reg byte a 20002.0 -char vera_layer_get_color::return#4 // reg byte a 2.00000002E8 -char vera_layer_get_mapbase_bank(char layer) -char vera_layer_get_mapbase_bank::layer -char vera_layer_get_mapbase_bank::layer#0 // reg byte x 1102.0 -char vera_layer_get_mapbase_bank::return -char vera_layer_get_mapbase_bank::return#0 // reg byte a 367.33333333333337 -char vera_layer_get_mapbase_bank::return#2 // reg byte a 202.0 -unsigned int vera_layer_get_mapbase_offset(char layer) -char vera_layer_get_mapbase_offset::$0 // reg byte a 2002.0 -char vera_layer_get_mapbase_offset::layer -char vera_layer_get_mapbase_offset::layer#0 // reg byte a 1102.0 -unsigned int vera_layer_get_mapbase_offset::return -unsigned int vera_layer_get_mapbase_offset::return#0 // return zp[2]:15 367.33333333333337 -unsigned int vera_layer_get_mapbase_offset::return#2 // return zp[2]:15 202.0 -char vera_layer_get_rowshift(char layer) -char vera_layer_get_rowshift::layer -char vera_layer_get_rowshift::layer#0 // reg byte x 1102.0 -char vera_layer_get_rowshift::return -char vera_layer_get_rowshift::return#0 // reg byte a 367.33333333333337 -char vera_layer_get_rowshift::return#2 // reg byte a 202.0 -unsigned int vera_layer_get_rowskip(char layer) -char vera_layer_get_rowskip::$0 // reg byte a 2002.0 -char vera_layer_get_rowskip::layer -char vera_layer_get_rowskip::layer#0 // reg byte a 1102.0 -unsigned int vera_layer_get_rowskip::return -unsigned int vera_layer_get_rowskip::return#0 // return zp[2]:55 367.33333333333337 -unsigned int vera_layer_get_rowskip::return#2 // return zp[2]:55 202.0 -char vera_layer_get_textcolor(char layer) -char vera_layer_get_textcolor::layer -char vera_layer_get_textcolor::layer#0 // reg byte x 1102.0 -char vera_layer_get_textcolor::return -char vera_layer_get_textcolor::return#0 // reg byte a 367.33333333333337 -char vera_layer_get_textcolor::return#2 // reg byte a 202.0 -__constant const char vera_layer_hflip[2] = { 0, 4 } -__constant char *vera_layer_mapbase[2] = { VERA_L0_MAPBASE, VERA_L1_MAPBASE } -void vera_layer_mode_text(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , unsigned int color_mode) -unsigned int vera_layer_mode_text::color_mode -char vera_layer_mode_text::layer -__constant char vera_layer_mode_text::layer#0 = 1 // layer -unsigned long vera_layer_mode_text::mapbase_address -__constant unsigned long vera_layer_mode_text::mapbase_address#0 = 0 // mapbase_address -unsigned int vera_layer_mode_text::mapheight -__constant unsigned int vera_layer_mode_text::mapheight#0 = $40 // mapheight -unsigned int vera_layer_mode_text::mapwidth -__constant unsigned int vera_layer_mode_text::mapwidth#0 = $80 // mapwidth -unsigned long vera_layer_mode_text::tilebase_address -__constant unsigned long vera_layer_mode_text::tilebase_address#0 = $f800 // tilebase_address -char vera_layer_mode_text::tileheight -__constant char vera_layer_mode_text::tileheight#0 = 8 // tileheight -char vera_layer_mode_text::tilewidth -__constant char vera_layer_mode_text::tilewidth#0 = 8 // tilewidth -void vera_layer_mode_tile(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , char color_depth) -unsigned int vera_layer_mode_tile::$1 // zp[2]:55 1001.0 -char vera_layer_mode_tile::$11 // reg byte a 2002.0 -char vera_layer_mode_tile::$12 // reg byte a 2002.0 -char vera_layer_mode_tile::$13 // reg byte a 2002.0 -char vera_layer_mode_tile::$14 // reg byte a 2002.0 -char vera_layer_mode_tile::$17 // zp[1]:61 250.25 -char vera_layer_mode_tile::$18 // zp[1]:60 273.0 -char vera_layer_mode_tile::$2 // reg byte a 2002.0 -unsigned int vera_layer_mode_tile::$6 // zp[2]:45 2002.0 -char vera_layer_mode_tile::$7 // reg byte a 2002.0 -char vera_layer_mode_tile::color_depth -char vera_layer_mode_tile::color_depth#2 // reg byte x 1001.0 -char vera_layer_mode_tile::config -char vera_layer_mode_tile::config#10 // reg byte x 2002.0 -char vera_layer_mode_tile::config#11 // reg byte x 2002.0 -char vera_layer_mode_tile::config#12 // reg byte x 2002.0 -char vera_layer_mode_tile::config#17 // reg byte x 625.625 -char vera_layer_mode_tile::config#21 // reg byte x 2002.0000000000002 -char vera_layer_mode_tile::config#25 // reg byte x 3003.0 -char vera_layer_mode_tile::config#6 // reg byte x 500.5 -char vera_layer_mode_tile::config#7 // reg byte x 500.5 -char vera_layer_mode_tile::config#8 // reg byte x 500.5 -char vera_layer_mode_tile::layer -char vera_layer_mode_tile::layer#10 // layer zp[1]:62 227.49999999999994 -char vera_layer_mode_tile::mapbase -char vera_layer_mode_tile::mapbase#0 // reg byte x 1001.0 -unsigned long vera_layer_mode_tile::mapbase_address -unsigned long vera_layer_mode_tile::mapbase_address#0 // mapbase_address zp[4]:47 2002.0 -unsigned long vera_layer_mode_tile::mapbase_address#10 // mapbase_address_1 zp[4]:74 88.97777777777777 -unsigned int vera_layer_mode_tile::mapheight -unsigned int vera_layer_mode_tile::mapheight#10 // mapheight zp[2]:68 133.46666666666667 -unsigned int vera_layer_mode_tile::mapwidth -unsigned int vera_layer_mode_tile::mapwidth#10 // mapwidth zp[2]:15 400.4 -char vera_layer_mode_tile::tilebase -char vera_layer_mode_tile::tilebase#0 // reg byte a 2002.0 -char vera_layer_mode_tile::tilebase#1 // reg byte x 1334.6666666666667 -char vera_layer_mode_tile::tilebase#10 // reg byte x 2002.0 -char vera_layer_mode_tile::tilebase#12 // reg byte x 2002.0000000000002 -char vera_layer_mode_tile::tilebase#3 // reg byte x 2002.0 -char vera_layer_mode_tile::tilebase#5 // reg byte x 2002.0 -unsigned long vera_layer_mode_tile::tilebase_address -unsigned long vera_layer_mode_tile::tilebase_address#0 // tilebase_address zp[4]:51 2002.0 -unsigned long vera_layer_mode_tile::tilebase_address#10 // tilebase_address_1 zp[4]:78 72.8 -char vera_layer_mode_tile::tileheight -char vera_layer_mode_tile::tileheight#10 // tileheight zp[1]:85 31.77777777777778 -char vera_layer_mode_tile::tilewidth -char vera_layer_mode_tile::tilewidth#10 // tilewidth zp[1]:84 33.932203389830505 -__constant char vera_layer_rowshift[2] = { 0, 0 } -__constant unsigned int vera_layer_rowskip[2] = { 0, 0 } -char vera_layer_set_backcolor(char layer , char color) -char vera_layer_set_backcolor::color -char vera_layer_set_backcolor::color#2 // reg byte a 101.0 -char vera_layer_set_backcolor::layer -char vera_layer_set_backcolor::layer#1 // reg byte x 22.0 -char vera_layer_set_backcolor::layer#2 // reg byte x 112.0 -char vera_layer_set_backcolor::old -char vera_layer_set_backcolor::return -void vera_layer_set_config(char layer , char config) -char vera_layer_set_config::$0 // reg byte a 20002.0 -char *vera_layer_set_config::addr -char *vera_layer_set_config::addr#0 // addr zp[2]:33 20002.0 -char vera_layer_set_config::config -char vera_layer_set_config::config#0 // reg byte x 3667.333333333333 -char vera_layer_set_config::layer -char vera_layer_set_config::layer#0 // reg byte a 5501.0 -void vera_layer_set_mapbase(char layer , char mapbase) -char vera_layer_set_mapbase::$0 // reg byte a 20002.0 -char *vera_layer_set_mapbase::addr -char *vera_layer_set_mapbase::addr#0 // addr zp[2]:33 20002.0 -char vera_layer_set_mapbase::layer -char vera_layer_set_mapbase::layer#0 // reg byte a 1001.0 -char vera_layer_set_mapbase::layer#3 // reg byte a 11002.0 -char vera_layer_set_mapbase::mapbase -char vera_layer_set_mapbase::mapbase#0 // reg byte x 2002.0 -char vera_layer_set_mapbase::mapbase#3 // reg byte x 3667.333333333333 -void vera_layer_set_text_color_mode(char layer , char color_mode) -char *vera_layer_set_text_color_mode::addr -char *vera_layer_set_text_color_mode::addr#0 // addr zp[2]:43 2502.5 -char vera_layer_set_text_color_mode::color_mode -char vera_layer_set_text_color_mode::layer -char vera_layer_set_textcolor(char layer , char color) -char vera_layer_set_textcolor::color -char vera_layer_set_textcolor::layer -char vera_layer_set_textcolor::layer#1 // reg byte x 22.0 -char vera_layer_set_textcolor::layer#2 // reg byte x 112.0 -char vera_layer_set_textcolor::old -char vera_layer_set_textcolor::return -void vera_layer_set_tilebase(char layer , char tilebase) -char vera_layer_set_tilebase::$0 // reg byte a 20002.0 -char *vera_layer_set_tilebase::addr -char *vera_layer_set_tilebase::addr#0 // addr zp[2]:33 20002.0 -char vera_layer_set_tilebase::layer -char vera_layer_set_tilebase::layer#0 // reg byte a 5501.0 -char vera_layer_set_tilebase::tilebase -char vera_layer_set_tilebase::tilebase#0 // reg byte x 3667.333333333333 -__constant char vera_layer_textcolor[2] = { WHITE, WHITE } -__constant char *vera_layer_tilebase[2] = { VERA_L0_TILEBASE, VERA_L1_TILEBASE } -__constant const char vera_layer_vflip[2] = { 0, 8 } -__constant unsigned long vera_mapbase_address[2] = { 0, 0 } -__constant char vera_mapbase_bank[2] = { 0, 0 } -__constant unsigned int vera_mapbase_offset[2] = { 0, 0 } -void vera_tile_area(char layer , unsigned int tileindex , char x , char y , char w , char h , char hflip , char vflip , char offset) -unsigned int vera_tile_area::$10 // zp[2]:2 20002.0 -unsigned int vera_tile_area::$4 // zp[2]:2 20002.0 -char vera_tile_area::$5 // reg byte a 20002.0 -char vera_tile_area::c -char vera_tile_area::c#1 // reg byte y 2.00000002E8 -char vera_tile_area::c#2 // reg byte y 7.500000075E7 -char vera_tile_area::h -char vera_tile_area::h#4 // h zp[1]:31 312500.03125 -char vera_tile_area::hflip -char vera_tile_area::hflip#0 // hflip zp[1]:40 5000.5 -char vera_tile_area::index_h -char vera_tile_area::index_h#0 // reg byte a 20002.0 -char vera_tile_area::index_h#1 // reg byte a 20002.0 -char vera_tile_area::index_h#2 // index_h zp[1]:26 4348260.956521738 -char vera_tile_area::index_l -char vera_tile_area::index_l#0 // index_l zp[1]:27 3846538.5384615385 -char vera_tile_area::layer -unsigned long vera_tile_area::mapbase -unsigned long vera_tile_area::mapbase#0 // mapbase zp[4]:19 1818.3636363636363 -unsigned long vera_tile_area::mapbase#1 // mapbase zp[4]:19 10001.0 -unsigned long vera_tile_area::mapbase#10 // mapbase zp[4]:19 3334000.4 -unsigned long vera_tile_area::mapbase#2 // mapbase zp[4]:19 20002.0 -unsigned long vera_tile_area::mapbase#3 // mapbase zp[4]:19 1.0000001E7 -char vera_tile_area::offset -char vera_tile_area::r -char vera_tile_area::r#1 // r zp[1]:12 2.0000002E7 -char vera_tile_area::r#2 // r zp[1]:12 1875000.1875 -unsigned int vera_tile_area::rowskip -unsigned int vera_tile_area::rowskip#0 // rowskip zp[2]:8 345172.4827586207 -char vera_tile_area::shift -char vera_tile_area::shift#0 // shift zp[1]:42 3333.6666666666665 -unsigned int vera_tile_area::tileindex -unsigned int vera_tile_area::tileindex#1 // tileindex zp[2]:35 667.3333333333334 -unsigned int vera_tile_area::tileindex#2 // tileindex zp[2]:35 667.3333333333334 -unsigned int vera_tile_area::tileindex#3 // tileindex zp[2]:35 3143.4285714285716 -char vera_tile_area::vera_vram_address01_$0 // reg byte a 2.0000002E7 -char vera_tile_area::vera_vram_address01_$1 // reg byte a 2.0000002E7 -char vera_tile_area::vera_vram_address01_$2 // reg byte a 2.0000002E7 -char vera_tile_area::vera_vram_address01_$3 // reg byte a 2.0000002E7 -unsigned long vera_tile_area::vera_vram_address01_bankaddr -char vera_tile_area::vera_vram_address01_incr -char vera_tile_area::vflip -char vera_tile_area::vflip#0 // vflip zp[1]:26 5000.5 -char vera_tile_area::w -char vera_tile_area::w#9 // w zp[1]:13 3125000.03125 -char vera_tile_area::x -char vera_tile_area::x#1 // x zp[1]:41 1001.0 -char vera_tile_area::x#2 // x zp[1]:41 1001.0 -char vera_tile_area::x#3 // x zp[1]:41 923.3076923076923 -char vera_tile_area::y -char vera_tile_area::y#1 // y zp[1]:37 2002.0 -char vera_tile_area::y#2 // y zp[1]:37 2002.0 -char vera_tile_area::y#3 // y zp[1]:37 200.2 -__constant unsigned long vera_tilebase_address[2] = { 0, 0 } -__constant char vera_tilebase_bank[2] = { 0, 0 } -__constant unsigned int vera_tilebase_offset[2] = { 0, 0 } - -zp[1]:82 [ conio_x16_init::line#3 conio_x16_init::line#1 conio_x16_init::line#0 ] -zp[2]:17 [ CONIO_SCREEN_TEXT#17 ] -zp[1]:59 [ CONIO_SCREEN_BANK#15 ] -zp[2]:72 [ main::tilebase#7 main::tilebase#2 ] -zp[1]:63 [ main::t#5 main::t#1 ] -reg byte x [ main::p#2 main::p#1 ] -zp[1]:64 [ main::row#9 main::row#1 ] -zp[1]:66 [ main::r#5 main::r#1 ] -zp[2]:35 [ main::tile#6 main::tile#10 main::tile#12 main::tile#1 vera_tile_area::tileindex#3 vera_tile_area::tileindex#2 vera_tile_area::tileindex#1 main::tile#8 main::tile#11 main::tile#13 main::tile#4 ] -reg byte x [ main::column#2 main::column#1 ] -zp[1]:57 [ main::c#2 main::c#1 ] -zp[1]:65 [ main::row#11 main::row#3 ] -zp[1]:67 [ main::r1#5 main::r1#1 ] -zp[1]:41 [ main::column1#2 main::column1#1 vera_tile_area::x#3 vera_tile_area::x#2 vera_tile_area::x#1 ] -reg byte x [ main::c1#2 main::c1#1 ] -reg byte x [ vera_layer_set_textcolor::layer#2 vera_layer_set_textcolor::layer#1 ] -reg byte x [ vera_layer_set_backcolor::layer#2 vera_layer_set_backcolor::layer#1 ] -reg byte a [ vera_layer_set_backcolor::color#2 ] -reg byte a [ vera_layer_set_mapbase::layer#3 vera_layer_set_mapbase::layer#0 ] -reg byte x [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::mapbase#0 ] -reg byte x [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#1 gotoxy::y#2 ] -reg byte x [ vera_layer_get_color::layer#2 vera_layer_get_color::layer#1 vera_layer_get_color::layer#0 ] -reg byte a [ vera_layer_get_color::return#2 vera_layer_get_color::return#0 vera_layer_get_color::return#1 ] -reg byte x [ clrscr::l#2 clrscr::l#1 ] -reg byte y [ clrscr::c#2 clrscr::c#1 ] -reg byte x [ vera_layer_mode_tile::color_depth#2 ] -zp[1]:62 [ vera_layer_mode_tile::layer#10 ] -zp[2]:68 [ vera_layer_mode_tile::mapheight#10 ] -zp[4]:74 [ vera_layer_mode_tile::mapbase_address#10 ] -zp[4]:78 [ vera_layer_mode_tile::tilebase_address#10 ] -zp[1]:84 [ vera_layer_mode_tile::tilewidth#10 ] -zp[1]:85 [ vera_layer_mode_tile::tileheight#10 ] -reg byte x [ vera_layer_mode_tile::config#25 vera_layer_mode_tile::config#21 vera_layer_mode_tile::config#17 vera_layer_mode_tile::config#6 vera_layer_mode_tile::config#7 vera_layer_mode_tile::config#8 vera_layer_mode_tile::config#10 vera_layer_mode_tile::config#11 vera_layer_mode_tile::config#12 ] -reg byte x [ vera_layer_mode_tile::tilebase#10 vera_layer_mode_tile::tilebase#12 vera_layer_mode_tile::tilebase#1 vera_layer_mode_tile::tilebase#3 vera_layer_mode_tile::tilebase#5 ] -zp[4]:19 [ vera_tile_area::mapbase#10 vera_tile_area::mapbase#2 vera_tile_area::mapbase#3 vera_tile_area::mapbase#1 vera_tile_area::mapbase#0 ] -reg byte y [ vera_tile_area::c#2 vera_tile_area::c#1 ] -zp[2]:29 [ printf_str::s#9 printf_str::s#10 printf_str::s#0 memcpy_to_vram::s#2 memcpy_to_vram::s#1 ] -reg byte x [ insertup::i#2 insertup::i#1 ] -zp[1]:14 [ conio_screen_width ] -zp[1]:32 [ conio_screen_height ] -zp[1]:28 [ conio_screen_layer ] -zp[2]:70 [ conio_width ] -zp[2]:38 [ conio_height ] -zp[1]:23 [ conio_rowshift ] -zp[2]:24 [ conio_rowskip ] -zp[1]:37 [ cputc::c#0 vera_tile_area::y#3 vera_tile_area::y#2 vera_tile_area::y#1 ] -reg byte a [ vera_layer_get_color::return#3 ] -reg byte x [ cputc::color#0 ] -reg byte a [ cputc::$15 ] -reg byte a [ cputc::$2 ] -reg byte a [ cputc::$4 ] -reg byte a [ cputc::$5 ] -reg byte a [ cputc::$6 ] -reg byte a [ cputc::scroll_enable#0 ] -reg byte a [ kbhit::return#2 ] -reg byte a [ main::$25 ] -reg byte a [ screensize::hscale#0 ] -reg byte a [ screensize::$1 ] -reg byte a [ screensize::vscale#0 ] -reg byte a [ screensize::$3 ] -reg byte x [ vera_layer_get_mapbase_bank::layer#0 ] -reg byte a [ vera_layer_get_mapbase_bank::return#2 ] -zp[1]:86 [ CONIO_SCREEN_BANK#11 ] -reg byte a [ vera_layer_get_mapbase_offset::layer#0 ] -zp[2]:87 [ CONIO_SCREEN_TEXT#13 ] -reg byte a [ screenlayer::vera_layer_get_width1_layer#0 ] -reg byte a [ screenlayer::vera_layer_get_width1_$2 ] -reg byte a [ screenlayer::vera_layer_get_width1_$0 ] -reg byte a [ screenlayer::vera_layer_get_width1_$1 ] -reg byte a [ screenlayer::vera_layer_get_width1_$3 ] -reg byte x [ vera_layer_get_rowshift::layer#0 ] -reg byte a [ vera_layer_get_rowshift::return#2 ] -reg byte a [ screenlayer::$3 ] -reg byte a [ vera_layer_get_rowskip::layer#0 ] -reg byte a [ screenlayer::vera_layer_get_height1_layer#0 ] -reg byte a [ screenlayer::vera_layer_get_height1_$2 ] -reg byte a [ screenlayer::vera_layer_get_height1_$0 ] -reg byte a [ screenlayer::vera_layer_get_height1_$1 ] -reg byte a [ screenlayer::vera_layer_get_height1_$3 ] -reg byte a [ vera_layer_set_mapbase::$0 ] -zp[2]:15 [ gotoxy::$6 gotoxy::line_offset#0 screenlayer::vera_layer_get_width1_return#0 screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 vera_layer_get_mapbase_offset::return#2 vera_layer_get_mapbase_offset::return#0 vera_layer_mode_tile::mapwidth#10 ] -reg byte a [ gotoxy::$5 ] -reg byte a [ vera_layer_get_color::$3 ] -reg byte a [ vera_layer_get_color::$0 ] -reg byte a [ vera_layer_get_color::$1 ] -reg byte a [ cputln::$2 ] -reg byte a [ cputln::$3 ] -reg byte x [ vera_layer_get_backcolor::layer#0 ] -reg byte a [ vera_layer_get_backcolor::return#2 ] -reg byte a [ clrscr::$0 ] -zp[1]:83 [ clrscr::$1 ] -reg byte x [ vera_layer_get_textcolor::layer#0 ] -reg byte a [ vera_layer_get_textcolor::return#2 ] -reg byte a [ clrscr::$2 ] -zp[1]:31 [ clrscr::color#0 vera_tile_area::h#4 ] -reg byte a [ clrscr::$9 ] -reg byte a [ clrscr::$5 ] -reg byte a [ clrscr::$6 ] -reg byte a [ clrscr::$7 ] -reg byte a [ vera_layer_mode_tile::$14 ] -reg byte a [ vera_layer_set_config::layer#0 ] -reg byte x [ vera_layer_set_config::config#0 ] -zp[2]:55 [ vera_layer_mode_tile::$1 vera_layer_get_rowskip::return#2 screenlayer::$4 vera_layer_get_rowskip::return#0 ] -zp[1]:61 [ vera_layer_mode_tile::$17 ] -reg byte a [ vera_layer_mode_tile::$2 ] -zp[1]:60 [ vera_layer_mode_tile::$18 ] -zp[4]:47 [ vera_layer_mode_tile::mapbase_address#0 ] -reg byte x [ vera_layer_mode_tile::mapbase#0 ] -zp[2]:45 [ vera_layer_mode_tile::$6 screenlayer::vera_layer_get_height1_config#0 ] -reg byte a [ vera_layer_mode_tile::$7 ] -zp[4]:51 [ vera_layer_mode_tile::tilebase_address#0 ] -reg byte a [ vera_layer_mode_tile::tilebase#0 ] -reg byte a [ vera_layer_set_tilebase::layer#0 ] -reg byte x [ vera_layer_set_tilebase::tilebase#0 ] -reg byte a [ vera_layer_mode_tile::$13 ] -reg byte a [ vera_layer_mode_tile::$12 ] -reg byte a [ vera_layer_mode_tile::$11 ] -reg byte a [ memcpy_to_vram::$0 ] -reg byte a [ memcpy_to_vram::$1 ] -zp[1]:42 [ vera_tile_area::shift#0 ] -zp[2]:8 [ vera_tile_area::rowskip#0 cputc::conio_addr#0 cputc::conio_addr#1 cputln::temp#0 cputln::temp#1 vera_layer_get_color::addr#0 ] -zp[1]:40 [ vera_tile_area::hflip#0 ] -zp[1]:26 [ vera_tile_area::vflip#0 vera_tile_area::index_h#2 ] -zp[1]:27 [ vera_tile_area::index_l#0 ] -reg byte a [ vera_tile_area::index_h#0 ] -reg byte a [ vera_tile_area::index_h#1 ] -zp[2]:2 [ vera_tile_area::$10 vera_tile_area::$4 cputc::$16 memcpy_in_vram::i#2 memcpy_in_vram::i#1 clearline::c#2 clearline::c#1 memcpy_to_vram::vdest#2 memcpy_to_vram::vdest#1 clrscr::line_text#2 clrscr::line_text#1 clrscr::line_text#0 ] -reg byte a [ vera_tile_area::$5 ] -reg byte a [ vera_tile_area::vera_vram_address01_$0 ] -reg byte a [ vera_tile_area::vera_vram_address01_$1 ] -reg byte a [ vera_tile_area::vera_vram_address01_$2 ] -reg byte a [ vera_tile_area::vera_vram_address01_$3 ] -reg byte a [ printf_str::c#1 ] -zp[1]:58 [ kbhit::ch ] -reg byte a [ kbhit::return#0 ] -reg byte a [ kbhit::return#1 ] -zp[2]:43 [ vera_layer_set_text_color_mode::addr#0 screenlayer::vera_layer_get_height1_return#0 screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 ] -reg byte a [ vera_layer_get_mapbase_bank::return#0 ] -reg byte a [ vera_layer_get_mapbase_offset::$0 ] -reg byte a [ vera_layer_get_rowshift::return#0 ] -reg byte a [ vera_layer_get_rowskip::$0 ] -reg byte a [ vera_layer_get_backcolor::return#0 ] -reg byte a [ vera_layer_get_textcolor::return#0 ] -reg byte a [ vera_layer_set_config::$0 ] -reg byte a [ vera_layer_set_tilebase::$0 ] -zp[2]:33 [ vera_layer_set_tilebase::addr#0 vera_layer_set_config::addr#0 vera_layer_set_mapbase::addr#0 screenlayer::vera_layer_get_width1_config#0 ] -zp[1]:13 [ insertup::cy#0 vera_tile_area::w#9 ] -zp[1]:12 [ insertup::width#0 vera_tile_area::r#2 vera_tile_area::r#1 ] -reg byte a [ insertup::$3 ] -zp[2]:6 [ insertup::line#0 insertup::start#0 memcpy_in_vram::dest#0 ] -zp[2]:4 [ memcpy_in_vram::num#0 ] -reg byte a [ clearline::$5 ] -zp[2]:10 [ clearline::addr#0 memcpy_in_vram::src#0 ] -reg byte a [ clearline::$1 ] -reg byte a [ clearline::$2 ] -reg byte a [ vera_layer_get_color::return#4 ] -reg byte x [ clearline::color#0 ] -reg byte a [ memcpy_in_vram::$0 ] -reg byte a [ memcpy_in_vram::$1 ] -reg byte a [ memcpy_in_vram::$3 ] -reg byte a [ memcpy_in_vram::$4 ] - - -FINAL ASSEMBLER -Score: 449677 - - // File Comments -// Example program for the Commander X16. -// Demonstrates the usage of the VERA tile map modes and layering. - // Upstart -.cpu _65c02 - // Commodore 64 PRG executable file -.file [name="tilemap_8bpp_8_x_8.prg", type="prg", segments="Program"] -.segmentdef Program [segments="Basic, Code, Data"] -.segmentdef Basic [start=$0801] -.segmentdef Code [start=$80d] -.segmentdef Data [startAfter="Code"] -.segment Basic -:BasicUpstart(__start) - // Global Constants & labels - /// The colors of the CX16 - .const BLACK = 0 - .const WHITE = 1 - .const BLUE = 6 - .const VERA_INC_1 = $10 - .const VERA_ADDRSEL = 1 - .const VERA_LAYER1_ENABLE = $20 - .const VERA_LAYER0_ENABLE = $10 - .const VERA_LAYER_WIDTH_64 = $10 - .const VERA_LAYER_WIDTH_128 = $20 - .const VERA_LAYER_WIDTH_256 = $30 - .const VERA_LAYER_WIDTH_MASK = $30 - .const VERA_LAYER_HEIGHT_64 = $40 - .const VERA_LAYER_HEIGHT_128 = $80 - .const VERA_LAYER_HEIGHT_256 = $c0 - .const VERA_LAYER_HEIGHT_MASK = $c0 - /// Bit 0-1: Color Depth (0: 1 bpp, 1: 2 bpp, 2: 4 bpp, 3: 8 bpp) - .const VERA_LAYER_COLOR_DEPTH_1BPP = 0 - .const VERA_LAYER_COLOR_DEPTH_2BPP = 1 - .const VERA_LAYER_COLOR_DEPTH_4BPP = 2 - .const VERA_LAYER_COLOR_DEPTH_8BPP = 3 - .const VERA_LAYER_CONFIG_256C = 8 - .const VERA_TILEBASE_WIDTH_16 = 1 - .const VERA_TILEBASE_HEIGHT_16 = 2 - .const VERA_LAYER_TILEBASE_MASK = $fc - .const SIZEOF_POINTER = 2 - .const STACK_BASE = $103 - /// $9F20 VRAM Address (7:0) - .label VERA_ADDRX_L = $9f20 - /// $9F21 VRAM Address (15:8) - .label VERA_ADDRX_M = $9f21 - /// $9F22 VRAM Address (7:0) - /// Bit 4-7: Address Increment The following is the amount incremented per value value:increment - /// 0:0, 1:1, 2:2, 3:4, 4:8, 5:16, 6:32, 7:64, 8:128, 9:256, 10:512, 11:40, 12:80, 13:160, 14:320, 15:640 - /// Bit 3: DECR Setting the DECR bit, will decrement instead of increment by the value set by the 'Address Increment' field. - /// Bit 0: VRAM Address (16) - .label VERA_ADDRX_H = $9f22 - /// $9F23 DATA0 VRAM Data port 0 - .label VERA_DATA0 = $9f23 - /// $9F24 DATA1 VRAM Data port 1 - .label VERA_DATA1 = $9f24 - /// $9F25 CTRL Control - /// Bit 7: Reset - /// Bit 1: DCSEL - /// Bit 2: ADDRSEL - .label VERA_CTRL = $9f25 - /// $9F29 DC_VIDEO (DCSEL=0) - /// Bit 7: Current Field Read-only bit which reflects the active interlaced field in composite and RGB modes. (0: even, 1: odd) - /// Bit 6: Sprites Enable Enable output from the Sprites renderer - /// Bit 5: Layer1 Enable Enable output from the Layer1 renderer - /// Bit 4: Layer0 Enable Enable output from the Layer0 renderer - /// Bit 2: Chroma Disable Setting 'Chroma Disable' disables output of chroma in NTSC composite mode and will give a better picture on a monochrome display. (Setting this bit will also disable the chroma output on the S-video output.) - /// Bit 0-1: Output Mode 0: Video disabled, 1: VGA output, 2: NTSC composite, 3: RGB interlaced, composite sync (via VGA connector) - .label VERA_DC_VIDEO = $9f29 - /// $9F2A DC_HSCALE (DCSEL=0) Active Display H-Scale - .label VERA_DC_HSCALE = $9f2a - /// $9F2B DC_VSCALE (DCSEL=0) Active Display V-Scale - .label VERA_DC_VSCALE = $9f2b - /// $9F2D L0_CONFIG Layer 0 Configuration - .label VERA_L0_CONFIG = $9f2d - /// $9F2E L0_MAPBASE Layer 0 Map Base Address (16:9) - .label VERA_L0_MAPBASE = $9f2e - /// Bit 0: Tile Width (0:8 pixels, 1:16 pixels) - .label VERA_L0_TILEBASE = $9f2f - /// $9F34 L1_CONFIG Layer 1 Configuration - .label VERA_L1_CONFIG = $9f34 - /// $9F35 L1_MAPBASE Layer 1 Map Base Address (16:9) - .label VERA_L1_MAPBASE = $9f35 - /// $9F36 L1_TILEBASE Layer 1 Tile Base - /// Bit 2-7: Tile Base Address (16:11) - /// Bit 1: Tile Height (0:8 pixels, 1:16 pixels) - /// Bit 0: Tile Width (0:8 pixels, 1:16 pixels) - .label VERA_L1_TILEBASE = $9f36 - // Variable holding the screen width; - .label conio_screen_width = $e - // Variable holding the screen height; - .label conio_screen_height = $20 - // Variable holding the screen layer on the VERA card with which conio interacts; - .label conio_screen_layer = $1c - // Variables holding the current map width and map height of the layer. - .label conio_width = $46 - .label conio_height = $26 - .label conio_rowshift = $17 - .label conio_rowskip = $18 - .label CONIO_SCREEN_BANK = $56 - // The screen width - // The screen height - // The text screen base address, which is a 16:0 bit value in VERA VRAM. - // That is 128KB addressable space, thus 17 bits in total. - // CONIO_SCREEN_TEXT contains bits 15:0 of the address. - // CONIO_SCREEN_BANK contains bit 16, the the 64K memory bank in VERA VRAM (the upper 17th bit). - // !!! note that these values are not const for the cx16! - // This conio implements the two layers of VERA, which can be layer 0 or layer 1. - // Configuring conio to output to a different layer, will change these fields to the address base - // configured using VERA_L0_MAPBASE = 0x9f2e or VERA_L1_MAPBASE = 0x9f35. - // Using the function setscreenlayer(layer) will re-calculate using CONIO_SCREEN_TEXT and CONIO_SCREEN_BASE - // based on the values of VERA_L0_MAPBASE or VERA_L1_MAPBASE, mapping the base address of the selected layer. - // The function setscreenlayermapbase(layer,mapbase) allows to configure bit 16:9 of the - // mapbase address of the time map in VRAM of the selected layer VERA_L0_MAPBASE or VERA_L1_MAPBASE. - .label CONIO_SCREEN_TEXT = $57 - // The screen width - // The screen height - // The text screen base address, which is a 16:0 bit value in VERA VRAM. - // That is 128KB addressable space, thus 17 bits in total. - // CONIO_SCREEN_TEXT contains bits 15:0 of the address. - // CONIO_SCREEN_BANK contains bit 16, the the 64K memory bank in VERA VRAM (the upper 17th bit). - // !!! note that these values are not const for the cx16! - // This conio implements the two layers of VERA, which can be layer 0 or layer 1. - // Configuring conio to output to a different layer, will change these fields to the address base - // configured using VERA_L0_MAPBASE = 0x9f2e or VERA_L1_MAPBASE = 0x9f35. - // Using the function setscreenlayer(layer) will re-calculate using CONIO_SCREEN_TEXT and CONIO_SCREEN_BASE - // based on the values of VERA_L0_MAPBASE or VERA_L1_MAPBASE, mapping the base address of the selected layer. - // The function setscreenlayermapbase(layer,mapbase) allows to configure bit 16:9 of the - // mapbase address of the time map in VRAM of the selected layer VERA_L0_MAPBASE or VERA_L1_MAPBASE. - .label CONIO_SCREEN_TEXT_1 = $11 - .label CONIO_SCREEN_BANK_1 = $3b -.segment Code - // __start -__start: { - // __start::__init1 - // __ma unsigned byte conio_screen_width = 0 - // [1] conio_screen_width = 0 -- vbuz1=vbuc1 - lda #0 - sta.z conio_screen_width - // __ma unsigned byte conio_screen_height = 0 - // [2] conio_screen_height = 0 -- vbuz1=vbuc1 - sta.z conio_screen_height - // __ma unsigned byte conio_screen_layer = 1 - // [3] conio_screen_layer = 1 -- vbuz1=vbuc1 - lda #1 - sta.z conio_screen_layer - // __ma word conio_width = 0 - // [4] conio_width = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z conio_width - sta.z conio_width+1 - // __ma word conio_height = 0 - // [5] conio_height = 0 -- vwuz1=vwuc1 - sta.z conio_height - sta.z conio_height+1 - // __ma byte conio_rowshift = 0 - // [6] conio_rowshift = 0 -- vbuz1=vbuc1 - sta.z conio_rowshift - // __ma word conio_rowskip = 0 - // [7] conio_rowskip = 0 -- vwuz1=vwuc1 - sta.z conio_rowskip - sta.z conio_rowskip+1 - // #pragma constructor_for(conio_x16_init, cputc, clrscr, cscroll) - // [8] call conio_x16_init - jsr conio_x16_init - // [9] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] - // __start::@1 - // [10] call main - // [65] phi from __start::@1 to main [phi:__start::@1->main] - jsr main - // __start::@return - // [11] return - rts -} - // conio_x16_init -// Set initial cursor position -conio_x16_init: { - // Position cursor at current line - .label BASIC_CURSOR_LINE = $d6 - .label line = $52 - // char line = *BASIC_CURSOR_LINE - // [12] conio_x16_init::line#0 = *conio_x16_init::BASIC_CURSOR_LINE -- vbuz1=_deref_pbuc1 - lda.z BASIC_CURSOR_LINE - sta.z line - // vera_layer_mode_text(1,(dword)0x00000,(dword)0x0F800,128,64,8,8,16) - // [13] call vera_layer_mode_text - // [141] phi from conio_x16_init to vera_layer_mode_text [phi:conio_x16_init->vera_layer_mode_text] - jsr vera_layer_mode_text - // [14] phi from conio_x16_init to conio_x16_init::@3 [phi:conio_x16_init->conio_x16_init::@3] - // conio_x16_init::@3 - // screensize(&conio_screen_width, &conio_screen_height) - // [15] call screensize - jsr screensize - // [16] phi from conio_x16_init::@3 to conio_x16_init::@4 [phi:conio_x16_init::@3->conio_x16_init::@4] - // conio_x16_init::@4 - // screenlayer(1) - // [17] call screenlayer - jsr screenlayer - // [18] phi from conio_x16_init::@4 to conio_x16_init::@5 [phi:conio_x16_init::@4->conio_x16_init::@5] - // conio_x16_init::@5 - // vera_layer_set_textcolor(1, WHITE) - // [19] call vera_layer_set_textcolor - // [193] phi from conio_x16_init::@5 to vera_layer_set_textcolor [phi:conio_x16_init::@5->vera_layer_set_textcolor] - // [193] phi vera_layer_set_textcolor::layer#2 = 1 [phi:conio_x16_init::@5->vera_layer_set_textcolor#0] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_set_textcolor - // [20] phi from conio_x16_init::@5 to conio_x16_init::@6 [phi:conio_x16_init::@5->conio_x16_init::@6] - // conio_x16_init::@6 - // vera_layer_set_backcolor(1, BLUE) - // [21] call vera_layer_set_backcolor - // [196] phi from conio_x16_init::@6 to vera_layer_set_backcolor [phi:conio_x16_init::@6->vera_layer_set_backcolor] - // [196] phi vera_layer_set_backcolor::color#2 = BLUE [phi:conio_x16_init::@6->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLUE - // [196] phi vera_layer_set_backcolor::layer#2 = 1 [phi:conio_x16_init::@6->vera_layer_set_backcolor#1] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_set_backcolor - // [22] phi from conio_x16_init::@6 to conio_x16_init::@7 [phi:conio_x16_init::@6->conio_x16_init::@7] - // conio_x16_init::@7 - // vera_layer_set_mapbase(0,0x20) - // [23] call vera_layer_set_mapbase - // [199] phi from conio_x16_init::@7 to vera_layer_set_mapbase [phi:conio_x16_init::@7->vera_layer_set_mapbase] - // [199] phi vera_layer_set_mapbase::mapbase#3 = $20 [phi:conio_x16_init::@7->vera_layer_set_mapbase#0] -- vbuxx=vbuc1 - ldx #$20 - // [199] phi vera_layer_set_mapbase::layer#3 = 0 [phi:conio_x16_init::@7->vera_layer_set_mapbase#1] -- vbuaa=vbuc1 - lda #0 - jsr vera_layer_set_mapbase - // [24] phi from conio_x16_init::@7 to conio_x16_init::@8 [phi:conio_x16_init::@7->conio_x16_init::@8] - // conio_x16_init::@8 - // vera_layer_set_mapbase(1,0x00) - // [25] call vera_layer_set_mapbase - // [199] phi from conio_x16_init::@8 to vera_layer_set_mapbase [phi:conio_x16_init::@8->vera_layer_set_mapbase] - // [199] phi vera_layer_set_mapbase::mapbase#3 = 0 [phi:conio_x16_init::@8->vera_layer_set_mapbase#0] -- vbuxx=vbuc1 - ldx #0 - // [199] phi vera_layer_set_mapbase::layer#3 = 1 [phi:conio_x16_init::@8->vera_layer_set_mapbase#1] -- vbuaa=vbuc1 - lda #1 - jsr vera_layer_set_mapbase - // conio_x16_init::@9 - // if(line>=CONIO_HEIGHT) - // [26] if(conio_x16_init::line#0conio_x16_init::@1] - // [28] phi conio_x16_init::line#3 = conio_x16_init::line#1 [phi:conio_x16_init::@2/conio_x16_init::@9->conio_x16_init::@1#0] -- register_copy - // conio_x16_init::@1 - __b1: - // gotoxy(0, line) - // [29] gotoxy::y#1 = conio_x16_init::line#3 -- vbuxx=vbuz1 - ldx.z line - // [30] call gotoxy - // [204] phi from conio_x16_init::@1 to gotoxy [phi:conio_x16_init::@1->gotoxy] - // [204] phi gotoxy::y#4 = gotoxy::y#1 [phi:conio_x16_init::@1->gotoxy#0] -- register_copy - jsr gotoxy - // conio_x16_init::@return - // } - // [31] return - rts -} - // cputc -// Output one character at the current cursor position -// Moves the cursor forward. Scrolls the entire screen if needed -// void cputc(__zp($25) char c) -cputc: { - .const OFFSET_STACK_C = 0 - .label __16 = 2 - .label c = $25 - .label conio_addr = 8 - // [33] cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C) -- vbuz1=_stackidxbyte_vbuc1 - tsx - lda STACK_BASE+OFFSET_STACK_C,x - sta.z c - // char color = vera_layer_get_color( conio_screen_layer) - // [34] vera_layer_get_color::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [35] call vera_layer_get_color - // [217] phi from cputc to vera_layer_get_color [phi:cputc->vera_layer_get_color] - // [217] phi vera_layer_get_color::layer#2 = vera_layer_get_color::layer#0 [phi:cputc->vera_layer_get_color#0] -- register_copy - jsr vera_layer_get_color - // char color = vera_layer_get_color( conio_screen_layer) - // [36] vera_layer_get_color::return#3 = vera_layer_get_color::return#2 - // cputc::@7 - // [37] cputc::color#0 = vera_layer_get_color::return#3 -- vbuxx=vbuaa - tax - // char* conio_addr = CONIO_SCREEN_TEXT + conio_line_text[conio_screen_layer] - // [38] cputc::$15 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [39] cputc::conio_addr#0 = CONIO_SCREEN_TEXT#17 + conio_line_text[cputc::$15] -- pbuz1=pbuz2_plus_pwuc1_derefidx_vbuaa - tay - clc - lda.z CONIO_SCREEN_TEXT_1 - adc conio_line_text,y - sta.z conio_addr - lda.z CONIO_SCREEN_TEXT_1+1 - adc conio_line_text+1,y - sta.z conio_addr+1 - // conio_cursor_x[conio_screen_layer] << 1 - // [40] cputc::$2 = conio_cursor_x[conio_screen_layer] << 1 -- vbuaa=pbuc1_derefidx_vbuz1_rol_1 - ldy.z conio_screen_layer - lda conio_cursor_x,y - asl - // conio_addr += conio_cursor_x[conio_screen_layer] << 1 - // [41] cputc::conio_addr#1 = cputc::conio_addr#0 + cputc::$2 -- pbuz1=pbuz1_plus_vbuaa - clc - adc.z conio_addr - sta.z conio_addr - bcc !+ - inc.z conio_addr+1 - !: - // if(c=='\n') - // [42] if(cputc::c#0==' ') goto cputc::@1 -- vbuz1_eq_vbuc1_then_la1 - lda #'\n' - cmp.z c - beq __b1 - // cputc::@2 - // *VERA_CTRL &= ~VERA_ADDRSEL - // [43] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(conio_addr) - // [44] cputc::$4 = byte0 cputc::conio_addr#1 -- vbuaa=_byte0_pbuz1 - lda.z conio_addr - // *VERA_ADDRX_L = BYTE0(conio_addr) - // [45] *VERA_ADDRX_L = cputc::$4 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // BYTE1(conio_addr) - // [46] cputc::$5 = byte1 cputc::conio_addr#1 -- vbuaa=_byte1_pbuz1 - lda.z conio_addr+1 - // *VERA_ADDRX_M = BYTE1(conio_addr) - // [47] *VERA_ADDRX_M = cputc::$5 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // CONIO_SCREEN_BANK | VERA_INC_1 - // [48] cputc::$6 = CONIO_SCREEN_BANK#15 | VERA_INC_1 -- vbuaa=vbuz1_bor_vbuc1 - lda #VERA_INC_1 - ora.z CONIO_SCREEN_BANK_1 - // *VERA_ADDRX_H = CONIO_SCREEN_BANK | VERA_INC_1 - // [49] *VERA_ADDRX_H = cputc::$6 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_H - // *VERA_DATA0 = c - // [50] *VERA_DATA0 = cputc::c#0 -- _deref_pbuc1=vbuz1 - lda.z c - sta VERA_DATA0 - // *VERA_DATA0 = color - // [51] *VERA_DATA0 = cputc::color#0 -- _deref_pbuc1=vbuxx - stx VERA_DATA0 - // conio_cursor_x[conio_screen_layer]++; - // [52] conio_cursor_x[conio_screen_layer] = ++ conio_cursor_x[conio_screen_layer] -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 - ldx.z conio_screen_layer - inc conio_cursor_x,x - // byte scroll_enable = conio_scroll_enable[conio_screen_layer] - // [53] cputc::scroll_enable#0 = conio_scroll_enable[conio_screen_layer] -- vbuaa=pbuc1_derefidx_vbuz1 - ldy.z conio_screen_layer - lda conio_scroll_enable,y - // if(scroll_enable) - // [54] if(0!=cputc::scroll_enable#0) goto cputc::@5 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b5 - // cputc::@3 - // (unsigned int)conio_cursor_x[conio_screen_layer] == conio_width - // [55] cputc::$16 = (unsigned int)conio_cursor_x[conio_screen_layer] -- vwuz1=_word_pbuc1_derefidx_vbuz2 - lda conio_cursor_x,y - sta.z __16 - lda #0 - sta.z __16+1 - // if((unsigned int)conio_cursor_x[conio_screen_layer] == conio_width) - // [56] if(cputc::$16!=conio_width) goto cputc::@return -- vwuz1_neq_vwuz2_then_la1 - cmp.z conio_width+1 - bne __breturn - lda.z __16 - cmp.z conio_width - bne __breturn - // [57] phi from cputc::@3 to cputc::@4 [phi:cputc::@3->cputc::@4] - // cputc::@4 - // cputln() - // [58] call cputln - jsr cputln - // cputc::@return - __breturn: - // } - // [59] return - rts - // cputc::@5 - __b5: - // if(conio_cursor_x[conio_screen_layer] == CONIO_WIDTH) - // [60] if(conio_cursor_x[conio_screen_layer]!=conio_screen_width) goto cputc::@return -- pbuc1_derefidx_vbuz1_neq_vbuz2_then_la1 - lda.z conio_screen_width - ldy.z conio_screen_layer - cmp conio_cursor_x,y - bne __breturn - // [61] phi from cputc::@5 to cputc::@6 [phi:cputc::@5->cputc::@6] - // cputc::@6 - // cputln() - // [62] call cputln - jsr cputln - rts - // [63] phi from cputc::@7 to cputc::@1 [phi:cputc::@7->cputc::@1] - // cputc::@1 - __b1: - // cputln() - // [64] call cputln - jsr cputln - rts -} - // main -main: { - .label tilebase = $48 - .label t = $3f - .label tile = $23 - .label c = $39 - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - .label row = $40 - .label r = $42 - .label column1 = $29 - // Draw 4 squares with each tile, starting from row 4, width 1, height 1, separated by 2 characters. - .label row_1 = $41 - .label r1 = $43 - // main::textcolor1 - // vera_layer_set_textcolor(conio_screen_layer, color) - // [66] vera_layer_set_textcolor::layer#1 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [67] call vera_layer_set_textcolor - // [193] phi from main::textcolor1 to vera_layer_set_textcolor [phi:main::textcolor1->vera_layer_set_textcolor] - // [193] phi vera_layer_set_textcolor::layer#2 = vera_layer_set_textcolor::layer#1 [phi:main::textcolor1->vera_layer_set_textcolor#0] -- register_copy - jsr vera_layer_set_textcolor - // main::bgcolor1 - // vera_layer_set_backcolor(conio_screen_layer, color) - // [68] vera_layer_set_backcolor::layer#1 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [69] call vera_layer_set_backcolor - // [196] phi from main::bgcolor1 to vera_layer_set_backcolor [phi:main::bgcolor1->vera_layer_set_backcolor] - // [196] phi vera_layer_set_backcolor::color#2 = BLACK [phi:main::bgcolor1->vera_layer_set_backcolor#0] -- vbuaa=vbuc1 - lda #BLACK - // [196] phi vera_layer_set_backcolor::layer#2 = vera_layer_set_backcolor::layer#1 [phi:main::bgcolor1->vera_layer_set_backcolor#1] -- register_copy - jsr vera_layer_set_backcolor - // [70] phi from main::bgcolor1 to main::@12 [phi:main::bgcolor1->main::@12] - // main::@12 - // clrscr() - // [71] call clrscr - jsr clrscr - // [72] phi from main::@12 to main::@14 [phi:main::@12->main::@14] - // main::@14 - // vera_layer_mode_tile(0, 0x04000, 0x14000, 128, 128, 8, 8, 8) - // [73] call vera_layer_mode_tile - // [268] phi from main::@14 to vera_layer_mode_tile [phi:main::@14->vera_layer_mode_tile] - // [268] phi vera_layer_mode_tile::tileheight#10 = 8 [phi:main::@14->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #8 - sta.z vera_layer_mode_tile.tileheight - // [268] phi vera_layer_mode_tile::tilewidth#10 = 8 [phi:main::@14->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - sta.z vera_layer_mode_tile.tilewidth - // [268] phi vera_layer_mode_tile::tilebase_address#10 = $14000 [phi:main::@14->vera_layer_mode_tile#2] -- vduz1=vduc1 - lda #<$14000 - sta.z vera_layer_mode_tile.tilebase_address_1 - lda #>$14000 - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #<$14000>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>$14000>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - // [268] phi vera_layer_mode_tile::mapbase_address#10 = $4000 [phi:main::@14->vera_layer_mode_tile#3] -- vduz1=vduc1 - lda #<$4000 - sta.z vera_layer_mode_tile.mapbase_address_1 - lda #>$4000 - sta.z vera_layer_mode_tile.mapbase_address_1+1 - lda #<$4000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - lda #>$4000>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - // [268] phi vera_layer_mode_tile::mapheight#10 = $80 [phi:main::@14->vera_layer_mode_tile#4] -- vwuz1=vbuc1 - lda #<$80 - sta.z vera_layer_mode_tile.mapheight - lda #>$80 - sta.z vera_layer_mode_tile.mapheight+1 - // [268] phi vera_layer_mode_tile::layer#10 = 0 [phi:main::@14->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #0 - sta.z vera_layer_mode_tile.layer - // [268] phi vera_layer_mode_tile::mapwidth#10 = $80 [phi:main::@14->vera_layer_mode_tile#6] -- vwuz1=vbuc1 - lda #<$80 - sta.z vera_layer_mode_tile.mapwidth - lda #>$80 - sta.z vera_layer_mode_tile.mapwidth+1 - // [268] phi vera_layer_mode_tile::color_depth#2 = 8 [phi:main::@14->vera_layer_mode_tile#7] -- vbuxx=vbuc1 - ldx #8 - jsr vera_layer_mode_tile - // [74] phi from main::@14 to main::@15 [phi:main::@14->main::@15] - // main::@15 - // memcpy_to_vram(1, tilebase, tiles, 64) - // [75] call memcpy_to_vram - // [338] phi from main::@15 to memcpy_to_vram [phi:main::@15->memcpy_to_vram] - // [338] phi memcpy_to_vram::vdest#2 = (void *)(char *) 16384 [phi:main::@15->memcpy_to_vram#0] -- pvoz1=pvoc1 - lda #<$4000 - sta.z memcpy_to_vram.vdest - lda #>$4000 - sta.z memcpy_to_vram.vdest+1 - jsr memcpy_to_vram - // [76] phi from main::@15 to main::@1 [phi:main::@15->main::@1] - // [76] phi main::t#5 = 1 [phi:main::@15->main::@1#0] -- vbuz1=vbuc1 - lda #1 - sta.z t - // [76] phi main::tilebase#7 = (char *) 16384+$40 [phi:main::@15->main::@1#1] -- pbuz1=pbuc1 - lda #<$4000+$40 - sta.z tilebase - lda #>$4000+$40 - sta.z tilebase+1 - // [76] phi from main::@16 to main::@1 [phi:main::@16->main::@1] - // [76] phi main::t#5 = main::t#1 [phi:main::@16->main::@1#0] -- register_copy - // [76] phi main::tilebase#7 = main::tilebase#2 [phi:main::@16->main::@1#1] -- register_copy - // main::@1 - __b1: - // [77] phi from main::@1 to main::@2 [phi:main::@1->main::@2] - // [77] phi main::p#2 = 0 [phi:main::@1->main::@2#0] -- vbuxx=vbuc1 - ldx #0 - // [77] phi from main::@2 to main::@2 [phi:main::@2->main::@2] - // [77] phi main::p#2 = main::p#1 [phi:main::@2->main::@2#0] -- register_copy - // main::@2 - __b2: - // tiles[p]+=1 - // [78] main::tiles[main::p#2] = main::tiles[main::p#2] + 1 -- pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_1 - lda tiles,x - inc - sta tiles,x - // for(byte p:0..63) - // [79] main::p#1 = ++ main::p#2 -- vbuxx=_inc_vbuxx - inx - // [80] if(main::p#1!=$40) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 - cpx #$40 - bne __b2 - // main::@3 - // memcpy_to_vram(1, tilebase, tiles, 64) - // [81] memcpy_to_vram::vdest#1 = (void *)main::tilebase#7 -- pvoz1=pvoz2 - lda.z tilebase - sta.z memcpy_to_vram.vdest - lda.z tilebase+1 - sta.z memcpy_to_vram.vdest+1 - // [82] call memcpy_to_vram - // [338] phi from main::@3 to memcpy_to_vram [phi:main::@3->memcpy_to_vram] - // [338] phi memcpy_to_vram::vdest#2 = memcpy_to_vram::vdest#1 [phi:main::@3->memcpy_to_vram#0] -- register_copy - jsr memcpy_to_vram - // main::@16 - // tilebase+=64 - // [83] main::tilebase#2 = main::tilebase#7 + $40 -- pbuz1=pbuz1_plus_vbuc1 - lda #$40 - clc - adc.z tilebase - sta.z tilebase - bcc !+ - inc.z tilebase+1 - !: - // for(byte t:1..255) - // [84] main::t#1 = ++ main::t#5 -- vbuz1=_inc_vbuz1 - inc.z t - // [85] if(main::t#1!=0) goto main::@1 -- vbuz1_neq_0_then_la1 - lda.z t - bne __b1 - // [86] phi from main::@16 to main::@4 [phi:main::@16->main::@4] - // main::@4 - // vera_tile_area(0, 0, 0, 0, 80, 60, 0, 0, 0) - // [87] call vera_tile_area - //vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h, byte hflip, byte vflip, byte offset) - // [350] phi from main::@4 to vera_tile_area [phi:main::@4->vera_tile_area] - // [350] phi vera_tile_area::w#9 = $50 [phi:main::@4->vera_tile_area#0] -- vbuz1=vbuc1 - lda #$50 - sta.z vera_tile_area.w - // [350] phi vera_tile_area::h#4 = $3c [phi:main::@4->vera_tile_area#1] -- vbuz1=vbuc1 - lda #$3c - sta.z vera_tile_area.h - // [350] phi vera_tile_area::x#3 = 0 [phi:main::@4->vera_tile_area#2] -- vbuz1=vbuc1 - lda #0 - sta.z vera_tile_area.x - // [350] phi vera_tile_area::y#3 = 0 [phi:main::@4->vera_tile_area#3] -- vbuz1=vbuc1 - sta.z vera_tile_area.y - // [350] phi vera_tile_area::tileindex#3 = 0 [phi:main::@4->vera_tile_area#4] -- vwuz1=vbuc1 - sta.z vera_tile_area.tileindex - sta.z vera_tile_area.tileindex+1 - jsr vera_tile_area - // [88] phi from main::@4 to main::@5 [phi:main::@4->main::@5] - // [88] phi main::r#5 = 0 [phi:main::@4->main::@5#0] -- vbuz1=vbuc1 - lda #0 - sta.z r - // [88] phi main::row#9 = 1 [phi:main::@4->main::@5#1] -- vbuz1=vbuc1 - lda #1 - sta.z row - // [88] phi main::tile#10 = 0 [phi:main::@4->main::@5#2] -- vwuz1=vwuc1 - lda #<0 - sta.z tile - sta.z tile+1 - // [88] phi from main::@7 to main::@5 [phi:main::@7->main::@5] - // [88] phi main::r#5 = main::r#1 [phi:main::@7->main::@5#0] -- register_copy - // [88] phi main::row#9 = main::row#1 [phi:main::@7->main::@5#1] -- register_copy - // [88] phi main::tile#10 = main::tile#12 [phi:main::@7->main::@5#2] -- register_copy - // main::@5 - __b5: - // [89] phi from main::@5 to main::@6 [phi:main::@5->main::@6] - // [89] phi main::c#2 = 0 [phi:main::@5->main::@6#0] -- vbuz1=vbuc1 - lda #0 - sta.z c - // [89] phi main::column#2 = 1 [phi:main::@5->main::@6#1] -- vbuxx=vbuc1 - ldx #1 - // [89] phi main::tile#6 = main::tile#10 [phi:main::@5->main::@6#2] -- register_copy - // [89] phi from main::@17 to main::@6 [phi:main::@17->main::@6] - // [89] phi main::c#2 = main::c#1 [phi:main::@17->main::@6#0] -- register_copy - // [89] phi main::column#2 = main::column#1 [phi:main::@17->main::@6#1] -- register_copy - // [89] phi main::tile#6 = main::tile#12 [phi:main::@17->main::@6#2] -- register_copy - // main::@6 - __b6: - // vera_tile_area(0, tile, column, row, 1, 1, 0, 0, 0) - // [90] vera_tile_area::tileindex#1 = main::tile#6 - // [91] vera_tile_area::x#1 = main::column#2 -- vbuz1=vbuxx - stx.z vera_tile_area.x - // [92] vera_tile_area::y#1 = main::row#9 -- vbuz1=vbuz2 - lda.z row - sta.z vera_tile_area.y - // [93] call vera_tile_area - // [350] phi from main::@6 to vera_tile_area [phi:main::@6->vera_tile_area] - // [350] phi vera_tile_area::w#9 = 1 [phi:main::@6->vera_tile_area#0] -- vbuz1=vbuc1 - lda #1 - sta.z vera_tile_area.w - // [350] phi vera_tile_area::h#4 = 1 [phi:main::@6->vera_tile_area#1] -- vbuz1=vbuc1 - sta.z vera_tile_area.h - // [350] phi vera_tile_area::x#3 = vera_tile_area::x#1 [phi:main::@6->vera_tile_area#2] -- register_copy - // [350] phi vera_tile_area::y#3 = vera_tile_area::y#1 [phi:main::@6->vera_tile_area#3] -- register_copy - // [350] phi vera_tile_area::tileindex#3 = vera_tile_area::tileindex#1 [phi:main::@6->vera_tile_area#4] -- register_copy - jsr vera_tile_area - // main::@17 - // column+=2 - // [94] main::column#1 = main::column#2 + 2 -- vbuxx=vbuxx_plus_2 - inx - inx - // tile++; - // [95] main::tile#1 = ++ main::tile#6 -- vwuz1=_inc_vwuz1 - inc.z tile - bne !+ - inc.z tile+1 - !: - // tile &= 0xff - // [96] main::tile#12 = main::tile#1 & $ff -- vwuz1=vwuz1_band_vbuc1 - lda #$ff - and.z tile - sta.z tile - lda #0 - sta.z tile+1 - // for(byte c:0..31) - // [97] main::c#1 = ++ main::c#2 -- vbuz1=_inc_vbuz1 - inc.z c - // [98] if(main::c#1!=$20) goto main::@6 -- vbuz1_neq_vbuc1_then_la1 - lda #$20 - cmp.z c - bne __b6 - // main::@7 - // row += 2 - // [99] main::row#1 = main::row#9 + 2 -- vbuz1=vbuz1_plus_2 - lda.z row - clc - adc #2 - sta.z row - // for(byte r:0..7) - // [100] main::r#1 = ++ main::r#5 -- vbuz1=_inc_vbuz1 - inc.z r - // [101] if(main::r#1!=8) goto main::@5 -- vbuz1_neq_vbuc1_then_la1 - lda #8 - cmp.z r - bne __b5 - // [102] phi from main::@7 to main::@8 [phi:main::@7->main::@8] - // [102] phi main::r1#5 = 0 [phi:main::@7->main::@8#0] -- vbuz1=vbuc1 - lda #0 - sta.z r1 - // [102] phi main::row#11 = $14 [phi:main::@7->main::@8#1] -- vbuz1=vbuc1 - lda #$14 - sta.z row_1 - // [102] phi main::tile#11 = 0 [phi:main::@7->main::@8#2] -- vwuz1=vbuc1 - lda #<0 - sta.z tile - sta.z tile+1 - // [102] phi from main::@10 to main::@8 [phi:main::@10->main::@8] - // [102] phi main::r1#5 = main::r1#1 [phi:main::@10->main::@8#0] -- register_copy - // [102] phi main::row#11 = main::row#3 [phi:main::@10->main::@8#1] -- register_copy - // [102] phi main::tile#11 = main::tile#13 [phi:main::@10->main::@8#2] -- register_copy - // main::@8 - __b8: - // [103] phi from main::@8 to main::@9 [phi:main::@8->main::@9] - // [103] phi main::c1#2 = 0 [phi:main::@8->main::@9#0] -- vbuxx=vbuc1 - ldx #0 - // [103] phi main::column1#2 = 1 [phi:main::@8->main::@9#1] -- vbuz1=vbuc1 - lda #1 - sta.z column1 - // [103] phi main::tile#8 = main::tile#11 [phi:main::@8->main::@9#2] -- register_copy - // [103] phi from main::@18 to main::@9 [phi:main::@18->main::@9] - // [103] phi main::c1#2 = main::c1#1 [phi:main::@18->main::@9#0] -- register_copy - // [103] phi main::column1#2 = main::column1#1 [phi:main::@18->main::@9#1] -- register_copy - // [103] phi main::tile#8 = main::tile#13 [phi:main::@18->main::@9#2] -- register_copy - // main::@9 - __b9: - // vera_tile_area(0, tile, column, row, 2, 2, 0, 0, 0) - // [104] vera_tile_area::tileindex#2 = main::tile#8 - // [105] vera_tile_area::x#2 = main::column1#2 - // [106] vera_tile_area::y#2 = main::row#11 -- vbuz1=vbuz2 - lda.z row_1 - sta.z vera_tile_area.y - // [107] call vera_tile_area - // [350] phi from main::@9 to vera_tile_area [phi:main::@9->vera_tile_area] - // [350] phi vera_tile_area::w#9 = 2 [phi:main::@9->vera_tile_area#0] -- vbuz1=vbuc1 - lda #2 - sta.z vera_tile_area.w - // [350] phi vera_tile_area::h#4 = 2 [phi:main::@9->vera_tile_area#1] -- vbuz1=vbuc1 - sta.z vera_tile_area.h - // [350] phi vera_tile_area::x#3 = vera_tile_area::x#2 [phi:main::@9->vera_tile_area#2] -- register_copy - // [350] phi vera_tile_area::y#3 = vera_tile_area::y#2 [phi:main::@9->vera_tile_area#3] -- register_copy - // [350] phi vera_tile_area::tileindex#3 = vera_tile_area::tileindex#2 [phi:main::@9->vera_tile_area#4] -- register_copy - jsr vera_tile_area - // main::@18 - // column+=2 - // [108] main::column1#1 = main::column1#2 + 2 -- vbuz1=vbuz1_plus_2 - lda.z column1 - clc - adc #2 - sta.z column1 - // tile++; - // [109] main::tile#4 = ++ main::tile#8 -- vwuz1=_inc_vwuz1 - inc.z tile - bne !+ - inc.z tile+1 - !: - // tile &= 0xff - // [110] main::tile#13 = main::tile#4 & $ff -- vwuz1=vwuz1_band_vbuc1 - lda #$ff - and.z tile - sta.z tile - lda #0 - sta.z tile+1 - // for(byte c:0..31) - // [111] main::c1#1 = ++ main::c1#2 -- vbuxx=_inc_vbuxx - inx - // [112] if(main::c1#1!=$20) goto main::@9 -- vbuxx_neq_vbuc1_then_la1 - cpx #$20 - bne __b9 - // main::@10 - // row += 2 - // [113] main::row#3 = main::row#11 + 2 -- vbuz1=vbuz1_plus_2 - lda.z row_1 - clc - adc #2 - sta.z row_1 - // for(byte r:0..7) - // [114] main::r1#1 = ++ main::r1#5 -- vbuz1=_inc_vbuz1 - inc.z r1 - // [115] if(main::r1#1!=8) goto main::@8 -- vbuz1_neq_vbuc1_then_la1 - lda #8 - cmp.z r1 - bne __b8 - // main::vera_layer_show1 - // *VERA_DC_VIDEO |= vera_layer_enable[layer] - // [116] *VERA_DC_VIDEO = *VERA_DC_VIDEO | *vera_layer_enable -- _deref_pbuc1=_deref_pbuc1_bor__deref_pbuc2 - lda VERA_DC_VIDEO - ora vera_layer_enable - sta VERA_DC_VIDEO - // [117] phi from main::vera_layer_show1 to main::@13 [phi:main::vera_layer_show1->main::@13] - // main::@13 - // gotoxy(0,50) - // [118] call gotoxy - // [204] phi from main::@13 to gotoxy [phi:main::@13->gotoxy] - // [204] phi gotoxy::y#4 = $32 [phi:main::@13->gotoxy#0] -- vbuxx=vbuc1 - ldx #$32 - jsr gotoxy - // [119] phi from main::@13 to main::@19 [phi:main::@13->main::@19] - // main::@19 - // printf("vera in tile mode 8 x 8, color depth 8 bits per pixel.\n") - // [120] call printf_str - // [383] phi from main::@19 to printf_str [phi:main::@19->printf_str] - // [383] phi printf_str::s#10 = main::s [phi:main::@19->printf_str#0] -- pbuz1=pbuc1 - lda #s - sta.z printf_str.s+1 - jsr printf_str - // [121] phi from main::@19 to main::@20 [phi:main::@19->main::@20] - // main::@20 - // printf("in this mode, tiles are 8 pixels wide and 8 pixels tall.\n") - // [122] call printf_str - // [383] phi from main::@20 to printf_str [phi:main::@20->printf_str] - // [383] phi printf_str::s#10 = main::s1 [phi:main::@20->printf_str#0] -- pbuz1=pbuc1 - lda #s1 - sta.z printf_str.s+1 - jsr printf_str - // [123] phi from main::@20 to main::@21 [phi:main::@20->main::@21] - // main::@21 - // printf("each tile can have a variation of 256 colors.\n") - // [124] call printf_str - // [383] phi from main::@21 to printf_str [phi:main::@21->printf_str] - // [383] phi printf_str::s#10 = main::s2 [phi:main::@21->printf_str#0] -- pbuz1=pbuc1 - lda #s2 - sta.z printf_str.s+1 - jsr printf_str - // [125] phi from main::@21 to main::@22 [phi:main::@21->main::@22] - // main::@22 - // printf("the vera palette of 256 colors, can be used by setting the palette\n") - // [126] call printf_str - // [383] phi from main::@22 to printf_str [phi:main::@22->printf_str] - // [383] phi printf_str::s#10 = main::s3 [phi:main::@22->printf_str#0] -- pbuz1=pbuc1 - lda #s3 - sta.z printf_str.s+1 - jsr printf_str - // [127] phi from main::@22 to main::@23 [phi:main::@22->main::@23] - // main::@23 - // printf("offset for each tile.\n") - // [128] call printf_str - // [383] phi from main::@23 to printf_str [phi:main::@23->printf_str] - // [383] phi printf_str::s#10 = main::s4 [phi:main::@23->printf_str#0] -- pbuz1=pbuc1 - lda #s4 - sta.z printf_str.s+1 - jsr printf_str - // [129] phi from main::@23 to main::@24 [phi:main::@23->main::@24] - // main::@24 - // printf("here each column is displaying the same tile, but with different offsets!\n") - // [130] call printf_str - // [383] phi from main::@24 to printf_str [phi:main::@24->printf_str] - // [383] phi printf_str::s#10 = main::s5 [phi:main::@24->printf_str#0] -- pbuz1=pbuc1 - lda #s5 - sta.z printf_str.s+1 - jsr printf_str - // [131] phi from main::@24 to main::@25 [phi:main::@24->main::@25] - // main::@25 - // printf("each offset aligns to multiples of 16 colors in the palette!.\n") - // [132] call printf_str - // [383] phi from main::@25 to printf_str [phi:main::@25->printf_str] - // [383] phi printf_str::s#10 = main::s6 [phi:main::@25->printf_str#0] -- pbuz1=pbuc1 - lda #s6 - sta.z printf_str.s+1 - jsr printf_str - // [133] phi from main::@25 to main::@26 [phi:main::@25->main::@26] - // main::@26 - // printf("however, the first color will always be transparent (black).\n") - // [134] call printf_str - // [383] phi from main::@26 to printf_str [phi:main::@26->printf_str] - // [383] phi printf_str::s#10 = main::s7 [phi:main::@26->printf_str#0] -- pbuz1=pbuc1 - lda #s7 - sta.z printf_str.s+1 - jsr printf_str - // [135] phi from main::@26 main::@27 to main::@11 [phi:main::@26/main::@27->main::@11] - // main::@11 - __b11: - // kbhit() - // [136] call kbhit - jsr kbhit - // [137] kbhit::return#2 = kbhit::return#1 - // main::@27 - // [138] main::$25 = kbhit::return#2 - // while(!kbhit()) - // [139] if(0==main::$25) goto main::@11 -- 0_eq_vbuaa_then_la1 - cmp #0 - beq __b11 - // main::@return - // } - // [140] return - rts - .segment Data - tiles: .byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - s: .text @"vera in tile mode 8 x 8, color depth 8 bits per pixel.\n" - .byte 0 - s1: .text @"in this mode, tiles are 8 pixels wide and 8 pixels tall.\n" - .byte 0 - s2: .text @"each tile can have a variation of 256 colors.\n" - .byte 0 - s3: .text @"the vera palette of 256 colors, can be used by setting the palette\n" - .byte 0 - s4: .text @"offset for each tile.\n" - .byte 0 - s5: .text @"here each column is displaying the same tile, but with different offsets!\n" - .byte 0 - s6: .text @"each offset aligns to multiples of 16 colors in the palette!.\n" - .byte 0 - s7: .text @"however, the first color will always be transparent (black).\n" - .byte 0 -} -.segment Code - // vera_layer_mode_text -// Set a vera layer in text mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_mode: The color mode, which can be 16 or 256. -// void vera_layer_mode_text(char layer, unsigned long mapbase_address, unsigned long tilebase_address, unsigned int mapwidth, unsigned int mapheight, char tilewidth, char tileheight, unsigned int color_mode) -vera_layer_mode_text: { - .const mapbase_address = 0 - .const tilebase_address = $f800 - .const mapwidth = $80 - .const mapheight = $40 - .const tilewidth = 8 - .const tileheight = 8 - .label layer = 1 - // vera_layer_mode_tile( layer, mapbase_address, tilebase_address, mapwidth, mapheight, tilewidth, tileheight, 1 ) - // [142] call vera_layer_mode_tile - // [268] phi from vera_layer_mode_text to vera_layer_mode_tile [phi:vera_layer_mode_text->vera_layer_mode_tile] - // [268] phi vera_layer_mode_tile::tileheight#10 = vera_layer_mode_text::tileheight#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#0] -- vbuz1=vbuc1 - lda #tileheight - sta.z vera_layer_mode_tile.tileheight - // [268] phi vera_layer_mode_tile::tilewidth#10 = vera_layer_mode_text::tilewidth#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#1] -- vbuz1=vbuc1 - lda #tilewidth - sta.z vera_layer_mode_tile.tilewidth - // [268] phi vera_layer_mode_tile::tilebase_address#10 = vera_layer_mode_text::tilebase_address#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#2] -- vduz1=vduc1 - lda #tilebase_address - sta.z vera_layer_mode_tile.tilebase_address_1+1 - lda #>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+2 - lda #>tilebase_address>>$10 - sta.z vera_layer_mode_tile.tilebase_address_1+3 - // [268] phi vera_layer_mode_tile::mapbase_address#10 = vera_layer_mode_text::mapbase_address#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#3] -- vduz1=vduc1 - lda #mapbase_address - sta.z vera_layer_mode_tile.mapbase_address_1+1 - lda #>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+2 - lda #>mapbase_address>>$10 - sta.z vera_layer_mode_tile.mapbase_address_1+3 - // [268] phi vera_layer_mode_tile::mapheight#10 = vera_layer_mode_text::mapheight#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#4] -- vwuz1=vwuc1 - lda #mapheight - sta.z vera_layer_mode_tile.mapheight+1 - // [268] phi vera_layer_mode_tile::layer#10 = vera_layer_mode_text::layer#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#5] -- vbuz1=vbuc1 - lda #layer - sta.z vera_layer_mode_tile.layer - // [268] phi vera_layer_mode_tile::mapwidth#10 = vera_layer_mode_text::mapwidth#0 [phi:vera_layer_mode_text->vera_layer_mode_tile#6] -- vwuz1=vwuc1 - lda #mapwidth - sta.z vera_layer_mode_tile.mapwidth+1 - // [268] phi vera_layer_mode_tile::color_depth#2 = 1 [phi:vera_layer_mode_text->vera_layer_mode_tile#7] -- vbuxx=vbuc1 - ldx #1 - jsr vera_layer_mode_tile - // [143] phi from vera_layer_mode_text to vera_layer_mode_text::@1 [phi:vera_layer_mode_text->vera_layer_mode_text::@1] - // vera_layer_mode_text::@1 - // vera_layer_set_text_color_mode( layer, VERA_LAYER_CONFIG_16C ) - // [144] call vera_layer_set_text_color_mode - jsr vera_layer_set_text_color_mode - // vera_layer_mode_text::@return - // } - // [145] return - rts -} - // screensize -// Return the current screen size. -// void screensize(char *x, char *y) -screensize: { - .label x = conio_screen_width - .label y = conio_screen_height - // char hscale = (*VERA_DC_HSCALE) >> 7 - // [146] screensize::hscale#0 = *VERA_DC_HSCALE >> 7 -- vbuaa=_deref_pbuc1_ror_7 - // VERA returns in VERA_DC_HSCALE the value of 128 when 80 columns is used in text mode, - // and the value of 64 when 40 columns is used in text mode. - // Basically, 40 columns mode in the VERA is a double scan mode. - // Same for the VERA_DC_VSCALE mode, but then the subdivision is 60 or 30 rows. - // I still need to test the other modes, but this will suffice for now for the pure text modes. - lda VERA_DC_HSCALE - rol - rol - and #1 - // 40 << hscale - // [147] screensize::$1 = $28 << screensize::hscale#0 -- vbuaa=vbuc1_rol_vbuaa - tay - lda #$28 - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // *x = 40 << hscale - // [148] *screensize::x#0 = screensize::$1 -- _deref_pbuc1=vbuaa - sta.z x - // char vscale = (*VERA_DC_VSCALE) >> 7 - // [149] screensize::vscale#0 = *VERA_DC_VSCALE >> 7 -- vbuaa=_deref_pbuc1_ror_7 - lda VERA_DC_VSCALE - rol - rol - and #1 - // 30 << vscale - // [150] screensize::$3 = $1e << screensize::vscale#0 -- vbuaa=vbuc1_rol_vbuaa - tay - lda #$1e - cpy #0 - beq !e+ - !: - asl - dey - bne !- - !e: - // *y = 30 << vscale - // [151] *screensize::y#0 = screensize::$3 -- _deref_pbuc1=vbuaa - sta.z y - // screensize::@return - // } - // [152] return - rts -} - // screenlayer -// Set the layer with which the conio will interact. -// - layer: value of 0 or 1. -// void screenlayer(char layer) -screenlayer: { - .const layer = 1 - .label __2 = $f - .label __4 = $37 - .label __5 = $2b - .label vera_layer_get_width1_config = $21 - .label vera_layer_get_width1_return = $f - .label vera_layer_get_height1_config = $2d - .label vera_layer_get_height1_return = $2b - // conio_screen_layer = layer - // [153] conio_screen_layer = screenlayer::layer#0 -- vbuz1=vbuc1 - lda #layer - sta.z conio_screen_layer - // vera_layer_get_mapbase_bank(conio_screen_layer) - // [154] vera_layer_get_mapbase_bank::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - tax - // [155] call vera_layer_get_mapbase_bank - jsr vera_layer_get_mapbase_bank - // [156] vera_layer_get_mapbase_bank::return#2 = vera_layer_get_mapbase_bank::return#0 - // screenlayer::@3 - // [157] CONIO_SCREEN_BANK#11 = vera_layer_get_mapbase_bank::return#2 -- vbuz1=vbuaa - sta.z CONIO_SCREEN_BANK - // vera_layer_get_mapbase_offset(conio_screen_layer) - // [158] vera_layer_get_mapbase_offset::layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // [159] call vera_layer_get_mapbase_offset - jsr vera_layer_get_mapbase_offset - // [160] vera_layer_get_mapbase_offset::return#2 = vera_layer_get_mapbase_offset::return#0 - // screenlayer::@4 - // [161] CONIO_SCREEN_TEXT#13 = vera_layer_get_mapbase_offset::return#2 -- vwuz1=vwuz2 - lda.z vera_layer_get_mapbase_offset.return - sta.z CONIO_SCREEN_TEXT - lda.z vera_layer_get_mapbase_offset.return+1 - sta.z CONIO_SCREEN_TEXT+1 - // vera_layer_get_width(conio_screen_layer) - // [162] screenlayer::vera_layer_get_width1_layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // screenlayer::vera_layer_get_width1 - // byte* config = vera_layer_config[layer] - // [163] screenlayer::vera_layer_get_width1_$2 = screenlayer::vera_layer_get_width1_layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [164] screenlayer::vera_layer_get_width1_config#0 = vera_layer_config[screenlayer::vera_layer_get_width1_$2] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z vera_layer_get_width1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_width1_config+1 - // *config & VERA_LAYER_WIDTH_MASK - // [165] screenlayer::vera_layer_get_width1_$0 = *screenlayer::vera_layer_get_width1_config#0 & VERA_LAYER_WIDTH_MASK -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_WIDTH_MASK - ldy #0 - and (vera_layer_get_width1_config),y - // (*config & VERA_LAYER_WIDTH_MASK) >> 4 - // [166] screenlayer::vera_layer_get_width1_$1 = screenlayer::vera_layer_get_width1_$0 >> 4 -- vbuaa=vbuaa_ror_4 - lsr - lsr - lsr - lsr - // return VERA_LAYER_WIDTH[ (*config & VERA_LAYER_WIDTH_MASK) >> 4]; - // [167] screenlayer::vera_layer_get_width1_$3 = screenlayer::vera_layer_get_width1_$1 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [168] screenlayer::vera_layer_get_width1_return#0 = VERA_LAYER_WIDTH[screenlayer::vera_layer_get_width1_$3] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda VERA_LAYER_WIDTH,y - sta.z vera_layer_get_width1_return - lda VERA_LAYER_WIDTH+1,y - sta.z vera_layer_get_width1_return+1 - // screenlayer::vera_layer_get_width1_@return - // } - // [169] screenlayer::vera_layer_get_width1_return#1 = screenlayer::vera_layer_get_width1_return#0 - // screenlayer::@1 - // vera_layer_get_width(conio_screen_layer) - // [170] screenlayer::$2 = screenlayer::vera_layer_get_width1_return#1 - // conio_width = vera_layer_get_width(conio_screen_layer) - // [171] conio_width = screenlayer::$2 -- vwuz1=vwuz2 - lda.z __2 - sta.z conio_width - lda.z __2+1 - sta.z conio_width+1 - // vera_layer_get_rowshift(conio_screen_layer) - // [172] vera_layer_get_rowshift::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [173] call vera_layer_get_rowshift - jsr vera_layer_get_rowshift - // [174] vera_layer_get_rowshift::return#2 = vera_layer_get_rowshift::return#0 - // screenlayer::@5 - // [175] screenlayer::$3 = vera_layer_get_rowshift::return#2 - // conio_rowshift = vera_layer_get_rowshift(conio_screen_layer) - // [176] conio_rowshift = screenlayer::$3 -- vbuz1=vbuaa - sta.z conio_rowshift - // vera_layer_get_rowskip(conio_screen_layer) - // [177] vera_layer_get_rowskip::layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // [178] call vera_layer_get_rowskip - jsr vera_layer_get_rowskip - // [179] vera_layer_get_rowskip::return#2 = vera_layer_get_rowskip::return#0 - // screenlayer::@6 - // [180] screenlayer::$4 = vera_layer_get_rowskip::return#2 - // conio_rowskip = vera_layer_get_rowskip(conio_screen_layer) - // [181] conio_rowskip = screenlayer::$4 -- vwuz1=vwuz2 - lda.z __4 - sta.z conio_rowskip - lda.z __4+1 - sta.z conio_rowskip+1 - // vera_layer_get_height(conio_screen_layer) - // [182] screenlayer::vera_layer_get_height1_layer#0 = conio_screen_layer -- vbuaa=vbuz1 - lda.z conio_screen_layer - // screenlayer::vera_layer_get_height1 - // byte* config = vera_layer_config[layer] - // [183] screenlayer::vera_layer_get_height1_$2 = screenlayer::vera_layer_get_height1_layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [184] screenlayer::vera_layer_get_height1_config#0 = vera_layer_config[screenlayer::vera_layer_get_height1_$2] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z vera_layer_get_height1_config - lda vera_layer_config+1,y - sta.z vera_layer_get_height1_config+1 - // *config & VERA_LAYER_HEIGHT_MASK - // [185] screenlayer::vera_layer_get_height1_$0 = *screenlayer::vera_layer_get_height1_config#0 & VERA_LAYER_HEIGHT_MASK -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_HEIGHT_MASK - ldy #0 - and (vera_layer_get_height1_config),y - // (*config & VERA_LAYER_HEIGHT_MASK) >> 6 - // [186] screenlayer::vera_layer_get_height1_$1 = screenlayer::vera_layer_get_height1_$0 >> 6 -- vbuaa=vbuaa_ror_6 - rol - rol - rol - and #3 - // return VERA_LAYER_HEIGHT[ (*config & VERA_LAYER_HEIGHT_MASK) >> 6]; - // [187] screenlayer::vera_layer_get_height1_$3 = screenlayer::vera_layer_get_height1_$1 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [188] screenlayer::vera_layer_get_height1_return#0 = VERA_LAYER_HEIGHT[screenlayer::vera_layer_get_height1_$3] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda VERA_LAYER_HEIGHT,y - sta.z vera_layer_get_height1_return - lda VERA_LAYER_HEIGHT+1,y - sta.z vera_layer_get_height1_return+1 - // screenlayer::vera_layer_get_height1_@return - // } - // [189] screenlayer::vera_layer_get_height1_return#1 = screenlayer::vera_layer_get_height1_return#0 - // screenlayer::@2 - // vera_layer_get_height(conio_screen_layer) - // [190] screenlayer::$5 = screenlayer::vera_layer_get_height1_return#1 - // conio_height = vera_layer_get_height(conio_screen_layer) - // [191] conio_height = screenlayer::$5 -- vwuz1=vwuz2 - lda.z __5 - sta.z conio_height - lda.z __5+1 - sta.z conio_height+1 - // screenlayer::@return - // } - // [192] return - rts -} - // vera_layer_set_textcolor -// Set the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15) when the VERA works in 16x16 color text mode. -// An 8 bit value (decimal between 0 and 255) when the VERA works in 256 text mode. -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_textcolor(__register(X) char layer, char color) -vera_layer_set_textcolor: { - // vera_layer_textcolor[layer] = color - // [194] vera_layer_textcolor[vera_layer_set_textcolor::layer#2] = WHITE -- pbuc1_derefidx_vbuxx=vbuc2 - lda #WHITE - sta vera_layer_textcolor,x - // vera_layer_set_textcolor::@return - // } - // [195] return - rts -} - // vera_layer_set_backcolor -// Set the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - color: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// char vera_layer_set_backcolor(__register(X) char layer, __register(A) char color) -vera_layer_set_backcolor: { - // vera_layer_backcolor[layer] = color - // [197] vera_layer_backcolor[vera_layer_set_backcolor::layer#2] = vera_layer_set_backcolor::color#2 -- pbuc1_derefidx_vbuxx=vbuaa - sta vera_layer_backcolor,x - // vera_layer_set_backcolor::@return - // } - // [198] return - rts -} - // vera_layer_set_mapbase -// Set the base of the map layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - mapbase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// void vera_layer_set_mapbase(__register(A) char layer, __register(X) char mapbase) -vera_layer_set_mapbase: { - .label addr = $21 - // byte* addr = vera_layer_mapbase[layer] - // [200] vera_layer_set_mapbase::$0 = vera_layer_set_mapbase::layer#3 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [201] vera_layer_set_mapbase::addr#0 = vera_layer_mapbase[vera_layer_set_mapbase::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_mapbase,y - sta.z addr - lda vera_layer_mapbase+1,y - sta.z addr+1 - // *addr = mapbase - // [202] *vera_layer_set_mapbase::addr#0 = vera_layer_set_mapbase::mapbase#3 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - // vera_layer_set_mapbase::@return - // } - // [203] return - rts -} - // gotoxy -// Set the cursor to the specified position -// void gotoxy(char x, __register(X) char y) -gotoxy: { - .label __6 = $f - .label line_offset = $f - // if(y>CONIO_HEIGHT) - // [205] if(gotoxy::y#4<=conio_screen_height) goto gotoxy::@4 -- vbuxx_le_vbuz1_then_la1 - lda.z conio_screen_height - stx.z $ff - cmp.z $ff - bcs __b1 - // [207] phi from gotoxy to gotoxy::@1 [phi:gotoxy->gotoxy::@1] - // [207] phi gotoxy::y#5 = 0 [phi:gotoxy->gotoxy::@1#0] -- vbuxx=vbuc1 - ldx #0 - // [206] phi from gotoxy to gotoxy::@4 [phi:gotoxy->gotoxy::@4] - // gotoxy::@4 - // [207] phi from gotoxy::@4 to gotoxy::@1 [phi:gotoxy::@4->gotoxy::@1] - // [207] phi gotoxy::y#5 = gotoxy::y#4 [phi:gotoxy::@4->gotoxy::@1#0] -- register_copy - // gotoxy::@1 - __b1: - // if(x>=CONIO_WIDTH) - // [208] if(0gotoxy::@3] - // gotoxy::@3 - // gotoxy::@2 - // conio_cursor_x[conio_screen_layer] = x - // [210] conio_cursor_x[conio_screen_layer] = 0 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // conio_cursor_y[conio_screen_layer] = y - // [211] conio_cursor_y[conio_screen_layer] = gotoxy::y#5 -- pbuc1_derefidx_vbuz1=vbuxx - txa - sta conio_cursor_y,y - // unsigned int line_offset = (unsigned int)y << conio_rowshift - // [212] gotoxy::$6 = (unsigned int)gotoxy::y#5 -- vwuz1=_word_vbuxx - txa - sta.z __6 - lda #0 - sta.z __6+1 - // [213] gotoxy::line_offset#0 = gotoxy::$6 << conio_rowshift -- vwuz1=vwuz1_rol_vbuz2 - ldy.z conio_rowshift - beq !e+ - !: - asl.z line_offset - rol.z line_offset+1 - dey - bne !- - !e: - // conio_line_text[conio_screen_layer] = line_offset - // [214] gotoxy::$5 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [215] conio_line_text[gotoxy::$5] = gotoxy::line_offset#0 -- pwuc1_derefidx_vbuaa=vwuz1 - tay - lda.z line_offset - sta conio_line_text,y - lda.z line_offset+1 - sta conio_line_text+1,y - // gotoxy::@return - // } - // [216] return - rts -} - // vera_layer_get_color -// Get the text and back color for text output in 16 color mode. -// - layer: Value of 0 or 1. -// - return: an 8 bit value with bit 7:4 containing the back color and bit 3:0 containing the front color. -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_color(__register(X) char layer) -vera_layer_get_color: { - .label addr = 8 - // byte* addr = vera_layer_config[layer] - // [218] vera_layer_get_color::$3 = vera_layer_get_color::layer#2 << 1 -- vbuaa=vbuxx_rol_1 - txa - asl - // [219] vera_layer_get_color::addr#0 = vera_layer_config[vera_layer_get_color::$3] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // *addr & VERA_LAYER_CONFIG_256C - // [220] vera_layer_get_color::$0 = *vera_layer_get_color::addr#0 & VERA_LAYER_CONFIG_256C -- vbuaa=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_CONFIG_256C - ldy #0 - and (addr),y - // if( *addr & VERA_LAYER_CONFIG_256C ) - // [221] if(0!=vera_layer_get_color::$0) goto vera_layer_get_color::@1 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b1 - // vera_layer_get_color::@2 - // vera_layer_backcolor[layer] << 4 - // [222] vera_layer_get_color::$1 = vera_layer_backcolor[vera_layer_get_color::layer#2] << 4 -- vbuaa=pbuc1_derefidx_vbuxx_rol_4 - lda vera_layer_backcolor,x - asl - asl - asl - asl - // return ((vera_layer_backcolor[layer] << 4) | vera_layer_textcolor[layer]); - // [223] vera_layer_get_color::return#1 = vera_layer_get_color::$1 | vera_layer_textcolor[vera_layer_get_color::layer#2] -- vbuaa=vbuaa_bor_pbuc1_derefidx_vbuxx - ora vera_layer_textcolor,x - // [224] phi from vera_layer_get_color::@1 vera_layer_get_color::@2 to vera_layer_get_color::@return [phi:vera_layer_get_color::@1/vera_layer_get_color::@2->vera_layer_get_color::@return] - // [224] phi vera_layer_get_color::return#2 = vera_layer_get_color::return#0 [phi:vera_layer_get_color::@1/vera_layer_get_color::@2->vera_layer_get_color::@return#0] -- register_copy - // vera_layer_get_color::@return - // } - // [225] return - rts - // vera_layer_get_color::@1 - __b1: - // return (vera_layer_textcolor[layer]); - // [226] vera_layer_get_color::return#0 = vera_layer_textcolor[vera_layer_get_color::layer#2] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_textcolor,x - rts -} - // cputln -// Print a newline -cputln: { - .label temp = 8 - // word temp = conio_line_text[conio_screen_layer] - // [227] cputln::$2 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [228] cputln::temp#0 = conio_line_text[cputln::$2] -- vwuz1=pwuc1_derefidx_vbuaa - // TODO: This needs to be optimized! other variations don't compile because of sections not available! - tay - lda conio_line_text,y - sta.z temp - lda conio_line_text+1,y - sta.z temp+1 - // temp += conio_rowskip - // [229] cputln::temp#1 = cputln::temp#0 + conio_rowskip -- vwuz1=vwuz1_plus_vwuz2 - clc - lda.z temp - adc.z conio_rowskip - sta.z temp - lda.z temp+1 - adc.z conio_rowskip+1 - sta.z temp+1 - // conio_line_text[conio_screen_layer] = temp - // [230] cputln::$3 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [231] conio_line_text[cputln::$3] = cputln::temp#1 -- pwuc1_derefidx_vbuaa=vwuz1 - tay - lda.z temp - sta conio_line_text,y - lda.z temp+1 - sta conio_line_text+1,y - // conio_cursor_x[conio_screen_layer] = 0 - // [232] conio_cursor_x[conio_screen_layer] = 0 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #0 - ldy.z conio_screen_layer - sta conio_cursor_x,y - // conio_cursor_y[conio_screen_layer]++; - // [233] conio_cursor_y[conio_screen_layer] = ++ conio_cursor_y[conio_screen_layer] -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 - ldx.z conio_screen_layer - inc conio_cursor_y,x - // cscroll() - // [234] call cscroll - jsr cscroll - // cputln::@return - // } - // [235] return - rts -} - // clrscr -// clears the screen and moves the cursor to the upper left-hand corner of the screen. -clrscr: { - .label __1 = $53 - .label line_text = 2 - .label color = $1f - // char* line_text = CONIO_SCREEN_TEXT - // [236] clrscr::line_text#0 = (char *)CONIO_SCREEN_TEXT#13 -- pbuz1=pbuz2 - lda.z CONIO_SCREEN_TEXT - sta.z line_text - lda.z CONIO_SCREEN_TEXT+1 - sta.z line_text+1 - // vera_layer_get_backcolor(conio_screen_layer) - // [237] vera_layer_get_backcolor::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [238] call vera_layer_get_backcolor - jsr vera_layer_get_backcolor - // [239] vera_layer_get_backcolor::return#2 = vera_layer_get_backcolor::return#0 - // clrscr::@7 - // [240] clrscr::$0 = vera_layer_get_backcolor::return#2 - // vera_layer_get_backcolor(conio_screen_layer) << 4 - // [241] clrscr::$1 = clrscr::$0 << 4 -- vbuz1=vbuaa_rol_4 - asl - asl - asl - asl - sta.z __1 - // vera_layer_get_textcolor(conio_screen_layer) - // [242] vera_layer_get_textcolor::layer#0 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [243] call vera_layer_get_textcolor - jsr vera_layer_get_textcolor - // [244] vera_layer_get_textcolor::return#2 = vera_layer_get_textcolor::return#0 - // clrscr::@8 - // [245] clrscr::$2 = vera_layer_get_textcolor::return#2 - // char color = ( vera_layer_get_backcolor(conio_screen_layer) << 4 ) | vera_layer_get_textcolor(conio_screen_layer) - // [246] clrscr::color#0 = clrscr::$1 | clrscr::$2 -- vbuz1=vbuz2_bor_vbuaa - ora.z __1 - sta.z color - // [247] phi from clrscr::@8 to clrscr::@1 [phi:clrscr::@8->clrscr::@1] - // [247] phi clrscr::line_text#2 = clrscr::line_text#0 [phi:clrscr::@8->clrscr::@1#0] -- register_copy - // [247] phi clrscr::l#2 = 0 [phi:clrscr::@8->clrscr::@1#1] -- vbuxx=vbuc1 - ldx #0 - // clrscr::@1 - __b1: - // for( char l=0;lclrscr::@4] - // [261] phi clrscr::c#2 = 0 [phi:clrscr::@2->clrscr::@4#0] -- vbuyy=vbuc1 - ldy #0 - // clrscr::@4 - __b4: - // for( char c=0;cclrscr::@1] - // [247] phi clrscr::line_text#2 = clrscr::line_text#1 [phi:clrscr::@6->clrscr::@1#0] -- register_copy - // [247] phi clrscr::l#2 = clrscr::l#1 [phi:clrscr::@6->clrscr::@1#1] -- register_copy - jmp __b1 - // clrscr::@5 - __b5: - // *VERA_DATA0 = ' ' - // [265] *VERA_DATA0 = ' ' -- _deref_pbuc1=vbuc2 - lda #' ' - sta VERA_DATA0 - // *VERA_DATA0 = color - // [266] *VERA_DATA0 = clrscr::color#0 -- _deref_pbuc1=vbuz1 - lda.z color - sta VERA_DATA0 - // for( char c=0;cclrscr::@4] - // [261] phi clrscr::c#2 = clrscr::c#1 [phi:clrscr::@5->clrscr::@4#0] -- register_copy - jmp __b4 -} - // vera_layer_mode_tile -// Set a vera layer in tile mode and configure the: -// - layer: Value of 0 or 1. -// - mapbase_address: A dword typed address (4 bytes), that specifies the full address of the map base. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective mapbase vera register. -// Note that the register only specifies bits 16:9 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 512 bytes. -// - tilebase_address: A dword typed address (4 bytes), that specifies the base address of the tile map. -// The function does the translation from the dword that contains the 17 bit address, -// to the respective tilebase vera register. -// Note that the resulting vera register holds only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// - mapwidth: The width of the map in number of tiles. -// - mapheight: The height of the map in number of tiles. -// - tilewidth: The width of a tile, which can be 8 or 16 pixels. -// - tileheight: The height of a tile, which can be 8 or 16 pixels. -// - color_depth: The color depth in bits per pixel (BPP), which can be 1, 2, 4 or 8. -// void vera_layer_mode_tile(__zp($3e) char layer, __zp($2f) unsigned long mapbase_address, __zp($33) unsigned long tilebase_address, __zp($f) unsigned int mapwidth, __zp($44) unsigned int mapheight, __zp($54) char tilewidth, __zp($55) char tileheight, __register(X) char color_depth) -vera_layer_mode_tile: { - .label __1 = $37 - .label __6 = $2d - .label __17 = $3d - .label __18 = $3c - .label mapbase_address = $2f - .label tilebase_address = $33 - .label mapwidth = $f - .label layer = $3e - .label mapheight = $44 - .label mapbase_address_1 = $4a - .label tilebase_address_1 = $4e - .label tilewidth = $54 - .label tileheight = $55 - // case 1: - // config |= VERA_LAYER_COLOR_DEPTH_1BPP; - // break; - // [269] if(vera_layer_mode_tile::color_depth#2==1) goto vera_layer_mode_tile::@5 -- vbuxx_eq_vbuc1_then_la1 - cpx #1 - beq __b1 - // vera_layer_mode_tile::@1 - // case 2: - // config |= VERA_LAYER_COLOR_DEPTH_2BPP; - // break; - // [270] if(vera_layer_mode_tile::color_depth#2==2) goto vera_layer_mode_tile::@5 -- vbuxx_eq_vbuc1_then_la1 - cpx #2 - beq __b2 - // vera_layer_mode_tile::@2 - // case 4: - // config |= VERA_LAYER_COLOR_DEPTH_4BPP; - // break; - // [271] if(vera_layer_mode_tile::color_depth#2==4) goto vera_layer_mode_tile::@5 -- vbuxx_eq_vbuc1_then_la1 - cpx #4 - beq __b3 - // vera_layer_mode_tile::@3 - // case 8: - // config |= VERA_LAYER_COLOR_DEPTH_8BPP; - // break; - // [272] if(vera_layer_mode_tile::color_depth#2!=8) goto vera_layer_mode_tile::@5 -- vbuxx_neq_vbuc1_then_la1 - cpx #8 - bne __b4 - // [273] phi from vera_layer_mode_tile::@3 to vera_layer_mode_tile::@4 [phi:vera_layer_mode_tile::@3->vera_layer_mode_tile::@4] - // vera_layer_mode_tile::@4 - // [274] phi from vera_layer_mode_tile::@4 to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile::@4->vera_layer_mode_tile::@5] - // [274] phi vera_layer_mode_tile::config#17 = VERA_LAYER_COLOR_DEPTH_8BPP [phi:vera_layer_mode_tile::@4->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_8BPP - jmp __b5 - // [274] phi from vera_layer_mode_tile to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile->vera_layer_mode_tile::@5] - __b1: - // [274] phi vera_layer_mode_tile::config#17 = VERA_LAYER_COLOR_DEPTH_1BPP [phi:vera_layer_mode_tile->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_1BPP - jmp __b5 - // [274] phi from vera_layer_mode_tile::@1 to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile::@1->vera_layer_mode_tile::@5] - __b2: - // [274] phi vera_layer_mode_tile::config#17 = VERA_LAYER_COLOR_DEPTH_2BPP [phi:vera_layer_mode_tile::@1->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_2BPP - jmp __b5 - // [274] phi from vera_layer_mode_tile::@2 to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile::@2->vera_layer_mode_tile::@5] - __b3: - // [274] phi vera_layer_mode_tile::config#17 = VERA_LAYER_COLOR_DEPTH_4BPP [phi:vera_layer_mode_tile::@2->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #VERA_LAYER_COLOR_DEPTH_4BPP - jmp __b5 - // [274] phi from vera_layer_mode_tile::@3 to vera_layer_mode_tile::@5 [phi:vera_layer_mode_tile::@3->vera_layer_mode_tile::@5] - __b4: - // [274] phi vera_layer_mode_tile::config#17 = 0 [phi:vera_layer_mode_tile::@3->vera_layer_mode_tile::@5#0] -- vbuxx=vbuc1 - ldx #0 - // vera_layer_mode_tile::@5 - __b5: - // case 32: - // config |= VERA_LAYER_WIDTH_32; - // vera_layer_rowshift[layer] = 6; - // vera_layer_rowskip[layer] = 64; - // break; - // [275] if(vera_layer_mode_tile::mapwidth#10==$20) goto vera_layer_mode_tile::@9 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$20 - bne !__b9+ - jmp __b9 - !__b9: - !: - // vera_layer_mode_tile::@6 - // case 64: - // config |= VERA_LAYER_WIDTH_64; - // vera_layer_rowshift[layer] = 7; - // vera_layer_rowskip[layer] = 128; - // break; - // [276] if(vera_layer_mode_tile::mapwidth#10==$40) goto vera_layer_mode_tile::@10 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$40 - bne !__b10+ - jmp __b10 - !__b10: - !: - // vera_layer_mode_tile::@7 - // case 128: - // config |= VERA_LAYER_WIDTH_128; - // vera_layer_rowshift[layer] = 8; - // vera_layer_rowskip[layer] = 256; - // break; - // [277] if(vera_layer_mode_tile::mapwidth#10==$80) goto vera_layer_mode_tile::@11 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapwidth+1 - bne !+ - lda.z mapwidth - cmp #$80 - bne !__b11+ - jmp __b11 - !__b11: - !: - // vera_layer_mode_tile::@8 - // case 256: - // config |= VERA_LAYER_WIDTH_256; - // vera_layer_rowshift[layer] = 9; - // vera_layer_rowskip[layer] = 512; - // break; - // [278] if(vera_layer_mode_tile::mapwidth#10!=$100) goto vera_layer_mode_tile::@13 -- vwuz1_neq_vwuc1_then_la1 - lda.z mapwidth+1 - cmp #>$100 - bne __b13 - lda.z mapwidth - cmp #<$100 - bne __b13 - // vera_layer_mode_tile::@12 - // config |= VERA_LAYER_WIDTH_256 - // [279] vera_layer_mode_tile::config#8 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_256 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_WIDTH_256 - tax - // vera_layer_rowshift[layer] = 9 - // [280] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 9 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #9 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 512 - // [281] vera_layer_mode_tile::$14 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - tya - asl - // [282] vera_layer_rowskip[vera_layer_mode_tile::$14] = $200 -- pwuc1_derefidx_vbuaa=vwuc2 - tay - lda #<$200 - sta vera_layer_rowskip,y - lda #>$200 - sta vera_layer_rowskip+1,y - // [283] phi from vera_layer_mode_tile::@10 vera_layer_mode_tile::@11 vera_layer_mode_tile::@12 vera_layer_mode_tile::@8 vera_layer_mode_tile::@9 to vera_layer_mode_tile::@13 [phi:vera_layer_mode_tile::@10/vera_layer_mode_tile::@11/vera_layer_mode_tile::@12/vera_layer_mode_tile::@8/vera_layer_mode_tile::@9->vera_layer_mode_tile::@13] - // [283] phi vera_layer_mode_tile::config#21 = vera_layer_mode_tile::config#6 [phi:vera_layer_mode_tile::@10/vera_layer_mode_tile::@11/vera_layer_mode_tile::@12/vera_layer_mode_tile::@8/vera_layer_mode_tile::@9->vera_layer_mode_tile::@13#0] -- register_copy - // vera_layer_mode_tile::@13 - __b13: - // case 32: - // config |= VERA_LAYER_HEIGHT_32; - // break; - // [284] if(vera_layer_mode_tile::mapheight#10==$20) goto vera_layer_mode_tile::@20 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$20 - beq __b20 - !: - // vera_layer_mode_tile::@14 - // case 64: - // config |= VERA_LAYER_HEIGHT_64; - // break; - // [285] if(vera_layer_mode_tile::mapheight#10==$40) goto vera_layer_mode_tile::@17 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$40 - bne !__b17+ - jmp __b17 - !__b17: - !: - // vera_layer_mode_tile::@15 - // case 128: - // config |= VERA_LAYER_HEIGHT_128; - // break; - // [286] if(vera_layer_mode_tile::mapheight#10==$80) goto vera_layer_mode_tile::@18 -- vwuz1_eq_vbuc1_then_la1 - lda.z mapheight+1 - bne !+ - lda.z mapheight - cmp #$80 - bne !__b18+ - jmp __b18 - !__b18: - !: - // vera_layer_mode_tile::@16 - // case 256: - // config |= VERA_LAYER_HEIGHT_256; - // break; - // [287] if(vera_layer_mode_tile::mapheight#10!=$100) goto vera_layer_mode_tile::@20 -- vwuz1_neq_vwuc1_then_la1 - lda.z mapheight+1 - cmp #>$100 - bne __b20 - lda.z mapheight - cmp #<$100 - bne __b20 - // vera_layer_mode_tile::@19 - // config |= VERA_LAYER_HEIGHT_256 - // [288] vera_layer_mode_tile::config#12 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_256 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_256 - tax - // [289] phi from vera_layer_mode_tile::@13 vera_layer_mode_tile::@16 vera_layer_mode_tile::@17 vera_layer_mode_tile::@18 vera_layer_mode_tile::@19 to vera_layer_mode_tile::@20 [phi:vera_layer_mode_tile::@13/vera_layer_mode_tile::@16/vera_layer_mode_tile::@17/vera_layer_mode_tile::@18/vera_layer_mode_tile::@19->vera_layer_mode_tile::@20] - // [289] phi vera_layer_mode_tile::config#25 = vera_layer_mode_tile::config#21 [phi:vera_layer_mode_tile::@13/vera_layer_mode_tile::@16/vera_layer_mode_tile::@17/vera_layer_mode_tile::@18/vera_layer_mode_tile::@19->vera_layer_mode_tile::@20#0] -- register_copy - // vera_layer_mode_tile::@20 - __b20: - // vera_layer_set_config(layer, config) - // [290] vera_layer_set_config::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [291] vera_layer_set_config::config#0 = vera_layer_mode_tile::config#25 - // [292] call vera_layer_set_config - jsr vera_layer_set_config - // vera_layer_mode_tile::@27 - // WORD0(mapbase_address) - // [293] vera_layer_mode_tile::$1 = word0 vera_layer_mode_tile::mapbase_address#10 -- vwuz1=_word0_vduz2 - lda.z mapbase_address_1 - sta.z __1 - lda.z mapbase_address_1+1 - sta.z __1+1 - // vera_mapbase_offset[layer] = WORD0(mapbase_address) - // [294] vera_layer_mode_tile::$17 = vera_layer_mode_tile::layer#10 << 1 -- vbuz1=vbuz2_rol_1 - lda.z layer - asl - sta.z __17 - // [295] vera_mapbase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$1 -- pwuc1_derefidx_vbuz1=vwuz2 - // mapbase - tay - lda.z __1 - sta vera_mapbase_offset,y - lda.z __1+1 - sta vera_mapbase_offset+1,y - // BYTE2(mapbase_address) - // [296] vera_layer_mode_tile::$2 = byte2 vera_layer_mode_tile::mapbase_address#10 -- vbuaa=_byte2_vduz1 - lda.z mapbase_address_1+2 - // vera_mapbase_bank[layer] = BYTE2(mapbase_address) - // [297] vera_mapbase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$2 -- pbuc1_derefidx_vbuz1=vbuaa - ldy.z layer - sta vera_mapbase_bank,y - // vera_mapbase_address[layer] = mapbase_address - // [298] vera_layer_mode_tile::$18 = vera_layer_mode_tile::layer#10 << 2 -- vbuz1=vbuz2_rol_2 - tya - asl - asl - sta.z __18 - // [299] vera_mapbase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::mapbase_address#10 -- pduc1_derefidx_vbuz1=vduz2 - tay - lda.z mapbase_address_1 - sta vera_mapbase_address,y - lda.z mapbase_address_1+1 - sta vera_mapbase_address+1,y - lda.z mapbase_address_1+2 - sta vera_mapbase_address+2,y - lda.z mapbase_address_1+3 - sta vera_mapbase_address+3,y - // mapbase_address = mapbase_address >> 1 - // [300] vera_layer_mode_tile::mapbase_address#0 = vera_layer_mode_tile::mapbase_address#10 >> 1 -- vduz1=vduz2_ror_1 - lsr - sta.z mapbase_address+3 - lda.z mapbase_address_1+2 - ror - sta.z mapbase_address+2 - lda.z mapbase_address_1+1 - ror - sta.z mapbase_address+1 - lda.z mapbase_address_1 - ror - sta.z mapbase_address - // byte mapbase = BYTE1(mapbase_address) - // [301] vera_layer_mode_tile::mapbase#0 = byte1 vera_layer_mode_tile::mapbase_address#0 -- vbuxx=_byte1_vduz1 - ldx.z mapbase_address+1 - // vera_layer_set_mapbase(layer,mapbase) - // [302] vera_layer_set_mapbase::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [303] vera_layer_set_mapbase::mapbase#0 = vera_layer_mode_tile::mapbase#0 - // [304] call vera_layer_set_mapbase - // [199] phi from vera_layer_mode_tile::@27 to vera_layer_set_mapbase [phi:vera_layer_mode_tile::@27->vera_layer_set_mapbase] - // [199] phi vera_layer_set_mapbase::mapbase#3 = vera_layer_set_mapbase::mapbase#0 [phi:vera_layer_mode_tile::@27->vera_layer_set_mapbase#0] -- register_copy - // [199] phi vera_layer_set_mapbase::layer#3 = vera_layer_set_mapbase::layer#0 [phi:vera_layer_mode_tile::@27->vera_layer_set_mapbase#1] -- register_copy - jsr vera_layer_set_mapbase - // vera_layer_mode_tile::@28 - // WORD0(tilebase_address) - // [305] vera_layer_mode_tile::$6 = word0 vera_layer_mode_tile::tilebase_address#10 -- vwuz1=_word0_vduz2 - lda.z tilebase_address_1 - sta.z __6 - lda.z tilebase_address_1+1 - sta.z __6+1 - // vera_tilebase_offset[layer] = WORD0(tilebase_address) - // [306] vera_tilebase_offset[vera_layer_mode_tile::$17] = vera_layer_mode_tile::$6 -- pwuc1_derefidx_vbuz1=vwuz2 - // tilebase - ldy.z __17 - lda.z __6 - sta vera_tilebase_offset,y - lda.z __6+1 - sta vera_tilebase_offset+1,y - // BYTE2(tilebase_address) - // [307] vera_layer_mode_tile::$7 = byte2 vera_layer_mode_tile::tilebase_address#10 -- vbuaa=_byte2_vduz1 - lda.z tilebase_address_1+2 - // vera_tilebase_bank[layer] = BYTE2(tilebase_address) - // [308] vera_tilebase_bank[vera_layer_mode_tile::layer#10] = vera_layer_mode_tile::$7 -- pbuc1_derefidx_vbuz1=vbuaa - ldy.z layer - sta vera_tilebase_bank,y - // vera_tilebase_address[layer] = tilebase_address - // [309] vera_tilebase_address[vera_layer_mode_tile::$18] = vera_layer_mode_tile::tilebase_address#10 -- pduc1_derefidx_vbuz1=vduz2 - ldy.z __18 - lda.z tilebase_address_1 - sta vera_tilebase_address,y - lda.z tilebase_address_1+1 - sta vera_tilebase_address+1,y - lda.z tilebase_address_1+2 - sta vera_tilebase_address+2,y - lda.z tilebase_address_1+3 - sta vera_tilebase_address+3,y - // tilebase_address = tilebase_address >> 1 - // [310] vera_layer_mode_tile::tilebase_address#0 = vera_layer_mode_tile::tilebase_address#10 >> 1 -- vduz1=vduz2_ror_1 - lsr - sta.z tilebase_address+3 - lda.z tilebase_address_1+2 - ror - sta.z tilebase_address+2 - lda.z tilebase_address_1+1 - ror - sta.z tilebase_address+1 - lda.z tilebase_address_1 - ror - sta.z tilebase_address - // byte tilebase = BYTE1(tilebase_address) - // [311] vera_layer_mode_tile::tilebase#0 = byte1 vera_layer_mode_tile::tilebase_address#0 -- vbuaa=_byte1_vduz1 - lda.z tilebase_address+1 - // tilebase &= VERA_LAYER_TILEBASE_MASK - // [312] vera_layer_mode_tile::tilebase#1 = vera_layer_mode_tile::tilebase#0 & VERA_LAYER_TILEBASE_MASK -- vbuxx=vbuaa_band_vbuc1 - and #VERA_LAYER_TILEBASE_MASK - tax - // case 8: - // tilebase |= VERA_TILEBASE_WIDTH_8; - // break; - // [313] if(vera_layer_mode_tile::tilewidth#10==8) goto vera_layer_mode_tile::@23 -- vbuz1_eq_vbuc1_then_la1 - lda #8 - cmp.z tilewidth - beq __b23 - // vera_layer_mode_tile::@21 - // case 16: - // tilebase |= VERA_TILEBASE_WIDTH_16; - // break; - // [314] if(vera_layer_mode_tile::tilewidth#10!=$10) goto vera_layer_mode_tile::@23 -- vbuz1_neq_vbuc1_then_la1 - lda #$10 - cmp.z tilewidth - bne __b23 - // vera_layer_mode_tile::@22 - // tilebase |= VERA_TILEBASE_WIDTH_16 - // [315] vera_layer_mode_tile::tilebase#3 = vera_layer_mode_tile::tilebase#1 | VERA_TILEBASE_WIDTH_16 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_TILEBASE_WIDTH_16 - tax - // [316] phi from vera_layer_mode_tile::@21 vera_layer_mode_tile::@22 vera_layer_mode_tile::@28 to vera_layer_mode_tile::@23 [phi:vera_layer_mode_tile::@21/vera_layer_mode_tile::@22/vera_layer_mode_tile::@28->vera_layer_mode_tile::@23] - // [316] phi vera_layer_mode_tile::tilebase#12 = vera_layer_mode_tile::tilebase#1 [phi:vera_layer_mode_tile::@21/vera_layer_mode_tile::@22/vera_layer_mode_tile::@28->vera_layer_mode_tile::@23#0] -- register_copy - // vera_layer_mode_tile::@23 - __b23: - // case 8: - // tilebase |= VERA_TILEBASE_HEIGHT_8; - // break; - // [317] if(vera_layer_mode_tile::tileheight#10==8) goto vera_layer_mode_tile::@26 -- vbuz1_eq_vbuc1_then_la1 - lda #8 - cmp.z tileheight - beq __b26 - // vera_layer_mode_tile::@24 - // case 16: - // tilebase |= VERA_TILEBASE_HEIGHT_16; - // break; - // [318] if(vera_layer_mode_tile::tileheight#10!=$10) goto vera_layer_mode_tile::@26 -- vbuz1_neq_vbuc1_then_la1 - lda #$10 - cmp.z tileheight - bne __b26 - // vera_layer_mode_tile::@25 - // tilebase |= VERA_TILEBASE_HEIGHT_16 - // [319] vera_layer_mode_tile::tilebase#5 = vera_layer_mode_tile::tilebase#12 | VERA_TILEBASE_HEIGHT_16 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_TILEBASE_HEIGHT_16 - tax - // [320] phi from vera_layer_mode_tile::@23 vera_layer_mode_tile::@24 vera_layer_mode_tile::@25 to vera_layer_mode_tile::@26 [phi:vera_layer_mode_tile::@23/vera_layer_mode_tile::@24/vera_layer_mode_tile::@25->vera_layer_mode_tile::@26] - // [320] phi vera_layer_mode_tile::tilebase#10 = vera_layer_mode_tile::tilebase#12 [phi:vera_layer_mode_tile::@23/vera_layer_mode_tile::@24/vera_layer_mode_tile::@25->vera_layer_mode_tile::@26#0] -- register_copy - // vera_layer_mode_tile::@26 - __b26: - // vera_layer_set_tilebase(layer,tilebase) - // [321] vera_layer_set_tilebase::layer#0 = vera_layer_mode_tile::layer#10 -- vbuaa=vbuz1 - lda.z layer - // [322] vera_layer_set_tilebase::tilebase#0 = vera_layer_mode_tile::tilebase#10 - // [323] call vera_layer_set_tilebase - jsr vera_layer_set_tilebase - // vera_layer_mode_tile::@return - // } - // [324] return - rts - // vera_layer_mode_tile::@18 - __b18: - // config |= VERA_LAYER_HEIGHT_128 - // [325] vera_layer_mode_tile::config#11 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_128 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_128 - tax - jmp __b20 - // vera_layer_mode_tile::@17 - __b17: - // config |= VERA_LAYER_HEIGHT_64 - // [326] vera_layer_mode_tile::config#10 = vera_layer_mode_tile::config#21 | VERA_LAYER_HEIGHT_64 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_HEIGHT_64 - tax - jmp __b20 - // vera_layer_mode_tile::@11 - __b11: - // config |= VERA_LAYER_WIDTH_128 - // [327] vera_layer_mode_tile::config#7 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_128 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_WIDTH_128 - tax - // vera_layer_rowshift[layer] = 8 - // [328] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 8 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #8 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 256 - // [329] vera_layer_mode_tile::$13 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - tya - asl - // [330] vera_layer_rowskip[vera_layer_mode_tile::$13] = $100 -- pwuc1_derefidx_vbuaa=vwuc2 - tay - lda #<$100 - sta vera_layer_rowskip,y - lda #>$100 - sta vera_layer_rowskip+1,y - jmp __b13 - // vera_layer_mode_tile::@10 - __b10: - // config |= VERA_LAYER_WIDTH_64 - // [331] vera_layer_mode_tile::config#6 = vera_layer_mode_tile::config#17 | VERA_LAYER_WIDTH_64 -- vbuxx=vbuxx_bor_vbuc1 - txa - ora #VERA_LAYER_WIDTH_64 - tax - // vera_layer_rowshift[layer] = 7 - // [332] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 7 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #7 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 128 - // [333] vera_layer_mode_tile::$12 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - tya - asl - // [334] vera_layer_rowskip[vera_layer_mode_tile::$12] = $80 -- pwuc1_derefidx_vbuaa=vbuc2 - tay - lda #$80 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - jmp __b13 - // vera_layer_mode_tile::@9 - __b9: - // vera_layer_rowshift[layer] = 6 - // [335] vera_layer_rowshift[vera_layer_mode_tile::layer#10] = 6 -- pbuc1_derefidx_vbuz1=vbuc2 - lda #6 - ldy.z layer - sta vera_layer_rowshift,y - // vera_layer_rowskip[layer] = 64 - // [336] vera_layer_mode_tile::$11 = vera_layer_mode_tile::layer#10 << 1 -- vbuaa=vbuz1_rol_1 - tya - asl - // [337] vera_layer_rowskip[vera_layer_mode_tile::$11] = $40 -- pwuc1_derefidx_vbuaa=vbuc2 - tay - lda #$40 - sta vera_layer_rowskip,y - lda #0 - sta vera_layer_rowskip+1,y - jmp __b13 -} - // memcpy_to_vram -// Copy block of memory (from RAM to VRAM) -// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination in VRAM. -// - vbank: Which 64K VRAM bank to put data into (0/1) -// - vdest: The destination address in VRAM -// - src: The source address in RAM -// - num: The number of bytes to copy -// void memcpy_to_vram(char vbank, __zp(2) void *vdest, void *src, unsigned int num) -memcpy_to_vram: { - // Transfer the data - .label end = main.tiles+$40 - .label s = $1d - .label vdest = 2 - // *VERA_CTRL &= ~VERA_ADDRSEL - // [339] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(vdest) - // [340] memcpy_to_vram::$0 = byte0 memcpy_to_vram::vdest#2 -- vbuaa=_byte0_pvoz1 - lda.z vdest - // *VERA_ADDRX_L = BYTE0(vdest) - // [341] *VERA_ADDRX_L = memcpy_to_vram::$0 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // BYTE1(vdest) - // [342] memcpy_to_vram::$1 = byte1 memcpy_to_vram::vdest#2 -- vbuaa=_byte1_pvoz1 - lda.z vdest+1 - // *VERA_ADDRX_M = BYTE1(vdest) - // [343] *VERA_ADDRX_M = memcpy_to_vram::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // *VERA_ADDRX_H = VERA_INC_1 | vbank - // [344] *VERA_ADDRX_H = VERA_INC_1|1 -- _deref_pbuc1=vbuc2 - lda #VERA_INC_1|1 - sta VERA_ADDRX_H - // [345] phi from memcpy_to_vram to memcpy_to_vram::@1 [phi:memcpy_to_vram->memcpy_to_vram::@1] - // [345] phi memcpy_to_vram::s#2 = (char *)(void *)main::tiles [phi:memcpy_to_vram->memcpy_to_vram::@1#0] -- pbuz1=pbuc1 - lda #main.tiles - sta.z s+1 - // memcpy_to_vram::@1 - __b1: - // for(char *s = src; s!=end; s++) - // [346] if(memcpy_to_vram::s#2!=memcpy_to_vram::end#0) goto memcpy_to_vram::@2 -- pbuz1_neq_pbuc1_then_la1 - lda.z s+1 - cmp #>end - bne __b2 - lda.z s - cmp #memcpy_to_vram::@1] - // [345] phi memcpy_to_vram::s#2 = memcpy_to_vram::s#1 [phi:memcpy_to_vram::@2->memcpy_to_vram::@1#0] -- register_copy - jmp __b1 -} - // vera_tile_area -// --- TILE FUNCTIONS --- -// void vera_tile_area(char layer, __zp($23) unsigned int tileindex, __zp($29) char x, __zp($25) char y, __zp($d) char w, __zp($1f) char h, __zp($28) char hflip, __zp($1a) char vflip, char offset) -vera_tile_area: { - .label __4 = 2 - .label __10 = 2 - .label mapbase = $13 - .label shift = $2a - .label rowskip = 8 - .label hflip = $28 - .label vflip = $1a - .label index_l = $1b - .label index_h = $1a - .label r = $c - .label tileindex = $23 - .label x = $29 - .label y = $25 - .label h = $1f - .label w = $d - // dword mapbase = vera_mapbase_address[layer] - // [351] vera_tile_area::mapbase#0 = *vera_mapbase_address -- vduz1=_deref_pduc1 - lda vera_mapbase_address - sta.z mapbase - lda vera_mapbase_address+1 - sta.z mapbase+1 - lda vera_mapbase_address+2 - sta.z mapbase+2 - lda vera_mapbase_address+3 - sta.z mapbase+3 - // byte shift = vera_layer_rowshift[layer] - // [352] vera_tile_area::shift#0 = *vera_layer_rowshift -- vbuz1=_deref_pbuc1 - lda vera_layer_rowshift - sta.z shift - // word rowskip = (word)1 << shift - // [353] vera_tile_area::rowskip#0 = 1 << vera_tile_area::shift#0 -- vwuz1=vwuc1_rol_vbuz2 - tay - lda #<1 - sta.z rowskip - lda #>1+1 - sta.z rowskip+1 - cpy #0 - beq !e+ - !: - asl.z rowskip - rol.z rowskip+1 - dey - bne !- - !e: - // hflip = vera_layer_hflip[hflip] - // [354] vera_tile_area::hflip#0 = *vera_layer_hflip -- vbuz1=_deref_pbuc1 - lda vera_layer_hflip - sta.z hflip - // vflip = vera_layer_vflip[vflip] - // [355] vera_tile_area::vflip#0 = *vera_layer_vflip -- vbuz1=_deref_pbuc1 - lda vera_layer_vflip - sta.z vflip - // byte index_l = BYTE0(tileindex) - // [356] vera_tile_area::index_l#0 = byte0 vera_tile_area::tileindex#3 -- vbuz1=_byte0_vwuz2 - lda.z tileindex - sta.z index_l - // byte index_h = BYTE1(tileindex) - // [357] vera_tile_area::index_h#0 = byte1 vera_tile_area::tileindex#3 -- vbuaa=_byte1_vwuz1 - lda.z tileindex+1 - // index_h |= hflip - // [358] vera_tile_area::index_h#1 = vera_tile_area::index_h#0 | vera_tile_area::hflip#0 -- vbuaa=vbuaa_bor_vbuz1 - ora.z hflip - // index_h |= vflip - // [359] vera_tile_area::index_h#2 = vera_tile_area::index_h#1 | vera_tile_area::vflip#0 -- vbuz1=vbuaa_bor_vbuz1 - ora.z index_h - sta.z index_h - // (word)y << shift - // [360] vera_tile_area::$10 = (unsigned int)vera_tile_area::y#3 -- vwuz1=_word_vbuz2 - lda.z y - sta.z __10 - lda #0 - sta.z __10+1 - // [361] vera_tile_area::$4 = vera_tile_area::$10 << vera_tile_area::shift#0 -- vwuz1=vwuz1_rol_vbuz2 - ldy.z shift - beq !e+ - !: - asl.z __4 - rol.z __4+1 - dey - bne !- - !e: - // mapbase += ((word)y << shift) - // [362] vera_tile_area::mapbase#1 = vera_tile_area::mapbase#0 + vera_tile_area::$4 -- vduz1=vduz1_plus_vwuz2 - lda.z mapbase - clc - adc.z __4 - sta.z mapbase - lda.z mapbase+1 - adc.z __4+1 - sta.z mapbase+1 - lda.z mapbase+2 - adc #0 - sta.z mapbase+2 - lda.z mapbase+3 - adc #0 - sta.z mapbase+3 - // x << 1 - // [363] vera_tile_area::$5 = vera_tile_area::x#3 << 1 -- vbuaa=vbuz1_rol_1 - lda.z x - asl - // mapbase += (x << 1) - // [364] vera_tile_area::mapbase#2 = vera_tile_area::mapbase#1 + vera_tile_area::$5 -- vduz1=vduz1_plus_vbuaa - clc - adc.z mapbase - sta.z mapbase - lda.z mapbase+1 - adc #0 - sta.z mapbase+1 - lda.z mapbase+2 - adc #0 - sta.z mapbase+2 - lda.z mapbase+3 - adc #0 - sta.z mapbase+3 - // [365] phi from vera_tile_area to vera_tile_area::@1 [phi:vera_tile_area->vera_tile_area::@1] - // [365] phi vera_tile_area::mapbase#10 = vera_tile_area::mapbase#2 [phi:vera_tile_area->vera_tile_area::@1#0] -- register_copy - // [365] phi vera_tile_area::r#2 = 0 [phi:vera_tile_area->vera_tile_area::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z r - // vera_tile_area::@1 - __b1: - // for(byte r=0; rvera_tile_area::@2] - // [376] phi vera_tile_area::c#2 = 0 [phi:vera_tile_area::vera_vram_address01->vera_tile_area::@2#0] -- vbuyy=vbuc1 - ldy #0 - // vera_tile_area::@2 - __b2: - // for(byte c=0; cvera_tile_area::@1] - // [365] phi vera_tile_area::mapbase#10 = vera_tile_area::mapbase#3 [phi:vera_tile_area::@4->vera_tile_area::@1#0] -- register_copy - // [365] phi vera_tile_area::r#2 = vera_tile_area::r#1 [phi:vera_tile_area::@4->vera_tile_area::@1#1] -- register_copy - jmp __b1 - // vera_tile_area::@3 - __b3: - // *VERA_DATA0 = index_l - // [380] *VERA_DATA0 = vera_tile_area::index_l#0 -- _deref_pbuc1=vbuz1 - lda.z index_l - sta VERA_DATA0 - // *VERA_DATA0 = index_h - // [381] *VERA_DATA0 = vera_tile_area::index_h#2 -- _deref_pbuc1=vbuz1 - lda.z index_h - sta VERA_DATA0 - // for(byte c=0; cvera_tile_area::@2] - // [376] phi vera_tile_area::c#2 = vera_tile_area::c#1 [phi:vera_tile_area::@3->vera_tile_area::@2#0] -- register_copy - jmp __b2 -} - // printf_str -/// Print a NUL-terminated string -// void printf_str(void (*putc)(char), __zp($1d) const char *s) -printf_str: { - .label s = $1d - // [384] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] - // [384] phi printf_str::s#9 = printf_str::s#10 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy - // printf_str::@1 - __b1: - // while(c=*s++) - // [385] printf_str::c#1 = *printf_str::s#9 -- vbuaa=_deref_pbuz1 - ldy #0 - lda (s),y - // [386] printf_str::s#0 = ++ printf_str::s#9 -- pbuz1=_inc_pbuz1 - inc.z s - bne !+ - inc.z s+1 - !: - // [387] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 - cmp #0 - bne __b2 - // printf_str::@return - // } - // [388] return - rts - // printf_str::@2 - __b2: - // putc(c) - // [389] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa - pha - // [390] callexecute cputc -- call_vprc1 - jsr cputc - // sideeffect stackpullpadding(1) -- _stackpullpadding_1 - pla - jmp __b1 -} - // kbhit -// Return true if there's a key waiting, return false if not -kbhit: { - .label chptr = ch - .label IN_DEV = $28a - // Current input device number - .label GETIN = $ffe4 - .label ch = $3a - // char ch = 0 - // [392] kbhit::ch = 0 -- vbuz1=vbuc1 - lda #0 - sta.z ch - // kickasm - // kickasm( uses kbhit::chptr uses kbhit::IN_DEV uses kbhit::GETIN) {{ jsr _kbhit bne L3 jmp continue1 .var via1 = $9f60 //VIA#1 .var d1pra = via1+1 _kbhit: ldy d1pra // The count of keys pressed is stored in RAM bank 0. stz d1pra // Set d1pra to zero to access RAM bank 0. lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). sty d1pra // Set d1pra to previous value. rts L3: ldy IN_DEV // Save current input device stz IN_DEV // Keyboard phy jsr GETIN // Read char, and return in .A ply sta chptr // Store the character read in ch sty IN_DEV // Restore input device ldx #>$0000 rts continue1: nop }} - // CBM GETIN API - jsr _kbhit - bne L3 - - jmp continue1 - - .var via1 = $9f60 //VIA#1 - .var d1pra = via1+1 - - _kbhit: - ldy d1pra // The count of keys pressed is stored in RAM bank 0. - stz d1pra // Set d1pra to zero to access RAM bank 0. - lda $A00A // Get number of characters from this address in the ROM of the CX16 (ROM 38). - sty d1pra // Set d1pra to previous value. - rts - - L3: - ldy IN_DEV // Save current input device - stz IN_DEV // Keyboard - phy - jsr GETIN // Read char, and return in .A - ply - sta chptr // Store the character read in ch - sty IN_DEV // Restore input device - ldx #>$0000 - rts - - continue1: - nop - - // return ch; - // [394] kbhit::return#0 = kbhit::ch -- vbuaa=vbuz1 - lda.z ch - // kbhit::@return - // } - // [395] kbhit::return#1 = kbhit::return#0 - // [396] return - rts -} - // vera_layer_set_text_color_mode -// Set the configuration of the layer text color mode. -// - layer: Value of 0 or 1. -// - color_mode: Specifies the color mode to be VERA_LAYER_CONFIG_16 or VERA_LAYER_CONFIG_256 for text mode. -// void vera_layer_set_text_color_mode(char layer, char color_mode) -vera_layer_set_text_color_mode: { - .label addr = $2b - // byte* addr = vera_layer_config[layer] - // [397] vera_layer_set_text_color_mode::addr#0 = *(vera_layer_config+vera_layer_mode_text::layer#0*SIZEOF_POINTER) -- pbuz1=_deref_qbuc1 - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER - sta.z addr - lda vera_layer_config+vera_layer_mode_text.layer*SIZEOF_POINTER+1 - sta.z addr+1 - // *addr &= ~VERA_LAYER_CONFIG_256C - // [398] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 & ~VERA_LAYER_CONFIG_256C -- _deref_pbuz1=_deref_pbuz1_band_vbuc1 - lda #VERA_LAYER_CONFIG_256C^$ff - ldy #0 - and (addr),y - sta (addr),y - // *addr |= color_mode - // [399] *vera_layer_set_text_color_mode::addr#0 = *vera_layer_set_text_color_mode::addr#0 -- _deref_pbuz1=_deref_pbuz1 - lda (addr),y - sta (addr),y - // vera_layer_set_text_color_mode::@return - // } - // [400] return - rts -} - // vera_layer_get_mapbase_bank -// Get the map base bank of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Bank in vera vram. -// __register(A) char vera_layer_get_mapbase_bank(__register(X) char layer) -vera_layer_get_mapbase_bank: { - // return vera_mapbase_bank[layer]; - // [401] vera_layer_get_mapbase_bank::return#0 = vera_mapbase_bank[vera_layer_get_mapbase_bank::layer#0] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_mapbase_bank,x - // vera_layer_get_mapbase_bank::@return - // } - // [402] return - rts -} - // vera_layer_get_mapbase_offset -// Get the map base lower 16-bit address (offset) of the tiles for the layer. -// - layer: Value of 0 or 1. -// - return: Offset in vera vram of the specified bank. -// __zp($f) unsigned int vera_layer_get_mapbase_offset(__register(A) char layer) -vera_layer_get_mapbase_offset: { - .label return = $f - // return vera_mapbase_offset[layer]; - // [403] vera_layer_get_mapbase_offset::$0 = vera_layer_get_mapbase_offset::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [404] vera_layer_get_mapbase_offset::return#0 = vera_mapbase_offset[vera_layer_get_mapbase_offset::$0] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda vera_mapbase_offset,y - sta.z return - lda vera_mapbase_offset+1,y - sta.z return+1 - // vera_layer_get_mapbase_offset::@return - // } - // [405] return - rts -} - // vera_layer_get_rowshift -// Get the bit shift value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Rowshift value to calculate fast from a y value to line offset in tile mode. -// __register(A) char vera_layer_get_rowshift(__register(X) char layer) -vera_layer_get_rowshift: { - // return vera_layer_rowshift[layer]; - // [406] vera_layer_get_rowshift::return#0 = vera_layer_rowshift[vera_layer_get_rowshift::layer#0] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_rowshift,x - // vera_layer_get_rowshift::@return - // } - // [407] return - rts -} - // vera_layer_get_rowskip -// Get the value required to skip a whole line fast. -// - layer: Value of 0 or 1. -// - return: Skip value to calculate fast from a y value to line offset in tile mode. -// __zp($37) unsigned int vera_layer_get_rowskip(__register(A) char layer) -vera_layer_get_rowskip: { - .label return = $37 - // return vera_layer_rowskip[layer]; - // [408] vera_layer_get_rowskip::$0 = vera_layer_get_rowskip::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [409] vera_layer_get_rowskip::return#0 = vera_layer_rowskip[vera_layer_get_rowskip::$0] -- vwuz1=pwuc1_derefidx_vbuaa - tay - lda vera_layer_rowskip,y - sta.z return - lda vera_layer_rowskip+1,y - sta.z return+1 - // vera_layer_get_rowskip::@return - // } - // [410] return - rts -} - // cscroll -// Scroll the entire screen if the cursor is beyond the last line -cscroll: { - // if(conio_cursor_y[conio_screen_layer]>=CONIO_HEIGHT) - // [411] if(conio_cursor_y[conio_screen_layer]=conio_height) - // [413] if(conio_cursor_y[conio_screen_layer]cscroll::@3] - // cscroll::@3 - __b3: - // cscroll::@return - // } - // [415] return - rts - // [416] phi from cscroll::@1 to cscroll::@4 [phi:cscroll::@1->cscroll::@4] - // cscroll::@4 - __b4: - // insertup() - // [417] call insertup - jsr insertup - // cscroll::@5 - // gotoxy( 0, CONIO_HEIGHT-1) - // [418] gotoxy::y#2 = conio_screen_height - 1 -- vbuxx=vbuz1_minus_1 - ldx.z conio_screen_height - dex - // [419] call gotoxy - // [204] phi from cscroll::@5 to gotoxy [phi:cscroll::@5->gotoxy] - // [204] phi gotoxy::y#4 = gotoxy::y#2 [phi:cscroll::@5->gotoxy#0] -- register_copy - jsr gotoxy - rts -} - // vera_layer_get_backcolor -// Get the back color for text output. The old back text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_backcolor(__register(X) char layer) -vera_layer_get_backcolor: { - // return vera_layer_backcolor[layer]; - // [420] vera_layer_get_backcolor::return#0 = vera_layer_backcolor[vera_layer_get_backcolor::layer#0] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_backcolor,x - // vera_layer_get_backcolor::@return - // } - // [421] return - rts -} - // vera_layer_get_textcolor -// Get the front color for text output. The old front text color setting is returned. -// - layer: Value of 0 or 1. -// - return: a 4 bit value ( decimal between 0 and 15). -// This will only work when the VERA is in 16 color mode! -// Note that on the VERA, the transparent color has value 0. -// __register(A) char vera_layer_get_textcolor(__register(X) char layer) -vera_layer_get_textcolor: { - // return vera_layer_textcolor[layer]; - // [422] vera_layer_get_textcolor::return#0 = vera_layer_textcolor[vera_layer_get_textcolor::layer#0] -- vbuaa=pbuc1_derefidx_vbuxx - lda vera_layer_textcolor,x - // vera_layer_get_textcolor::@return - // } - // [423] return - rts -} - // vera_layer_set_config -// Set the configuration of the layer. -// - layer: Value of 0 or 1. -// - config: Specifies the modes which are specified using T256C / 'Bitmap Mode' / 'Color Depth'. -// void vera_layer_set_config(__register(A) char layer, __register(X) char config) -vera_layer_set_config: { - .label addr = $21 - // byte* addr = vera_layer_config[layer] - // [424] vera_layer_set_config::$0 = vera_layer_set_config::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [425] vera_layer_set_config::addr#0 = vera_layer_config[vera_layer_set_config::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_config,y - sta.z addr - lda vera_layer_config+1,y - sta.z addr+1 - // *addr = config - // [426] *vera_layer_set_config::addr#0 = vera_layer_set_config::config#0 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - // vera_layer_set_config::@return - // } - // [427] return - rts -} - // vera_layer_set_tilebase -// Set the base of the tiles for the layer with which the conio will interact. -// - layer: Value of 0 or 1. -// - tilebase: Specifies the base address of the tile map. -// Note that the register only specifies bits 16:11 of the address, -// so the resulting address in the VERA VRAM is always aligned to a multiple of 2048 bytes! -// void vera_layer_set_tilebase(__register(A) char layer, __register(X) char tilebase) -vera_layer_set_tilebase: { - .label addr = $21 - // byte* addr = vera_layer_tilebase[layer] - // [428] vera_layer_set_tilebase::$0 = vera_layer_set_tilebase::layer#0 << 1 -- vbuaa=vbuaa_rol_1 - asl - // [429] vera_layer_set_tilebase::addr#0 = vera_layer_tilebase[vera_layer_set_tilebase::$0] -- pbuz1=qbuc1_derefidx_vbuaa - tay - lda vera_layer_tilebase,y - sta.z addr - lda vera_layer_tilebase+1,y - sta.z addr+1 - // *addr = tilebase - // [430] *vera_layer_set_tilebase::addr#0 = vera_layer_set_tilebase::tilebase#0 -- _deref_pbuz1=vbuxx - txa - ldy #0 - sta (addr),y - // vera_layer_set_tilebase::@return - // } - // [431] return - rts -} - // insertup -// Insert a new line, and scroll the upper part of the screen up. -insertup: { - .label cy = $d - .label width = $c - .label line = 6 - .label start = 6 - // unsigned byte cy = conio_cursor_y[conio_screen_layer] - // [432] insertup::cy#0 = conio_cursor_y[conio_screen_layer] -- vbuz1=pbuc1_derefidx_vbuz2 - ldy.z conio_screen_layer - lda conio_cursor_y,y - sta.z cy - // unsigned byte width = CONIO_WIDTH * 2 - // [433] insertup::width#0 = conio_screen_width << 1 -- vbuz1=vbuz2_rol_1 - lda.z conio_screen_width - asl - sta.z width - // [434] phi from insertup to insertup::@1 [phi:insertup->insertup::@1] - // [434] phi insertup::i#2 = 1 [phi:insertup->insertup::@1#0] -- vbuxx=vbuc1 - ldx #1 - // insertup::@1 - __b1: - // for(unsigned byte i=1; i<=cy; i++) - // [435] if(insertup::i#2<=insertup::cy#0) goto insertup::@2 -- vbuxx_le_vbuz1_then_la1 - lda.z cy - stx.z $ff - cmp.z $ff - bcs __b2 - // [436] phi from insertup::@1 to insertup::@3 [phi:insertup::@1->insertup::@3] - // insertup::@3 - // clearline() - // [437] call clearline - jsr clearline - // insertup::@return - // } - // [438] return - rts - // insertup::@2 - __b2: - // i-1 - // [439] insertup::$3 = insertup::i#2 - 1 -- vbuaa=vbuxx_minus_1 - txa - sec - sbc #1 - // unsigned int line = (i-1) << conio_rowshift - // [440] insertup::line#0 = insertup::$3 << conio_rowshift -- vwuz1=vbuaa_rol_vbuz2 - ldy.z conio_rowshift - sta.z line - lda #0 - sta.z line+1 - cpy #0 - beq !e+ - !: - asl.z line - rol.z line+1 - dey - bne !- - !e: - // unsigned char* start = CONIO_SCREEN_TEXT + line - // [441] insertup::start#0 = CONIO_SCREEN_TEXT#17 + insertup::line#0 -- pbuz1=pbuz2_plus_vwuz1 - clc - lda.z start - adc.z CONIO_SCREEN_TEXT_1 - sta.z start - lda.z start+1 - adc.z CONIO_SCREEN_TEXT_1+1 - sta.z start+1 - // start+conio_rowskip - // [442] memcpy_in_vram::src#0 = insertup::start#0 + conio_rowskip -- pbuz1=pbuz2_plus_vwuz3 - lda.z start - clc - adc.z conio_rowskip - sta.z memcpy_in_vram.src - lda.z start+1 - adc.z conio_rowskip+1 - sta.z memcpy_in_vram.src+1 - // memcpy_in_vram(0, start, VERA_INC_1, 0, start+conio_rowskip, VERA_INC_1, width) - // [443] memcpy_in_vram::dest#0 = (void *)insertup::start#0 - // [444] memcpy_in_vram::num#0 = insertup::width#0 -- vwuz1=vbuz2 - lda.z width - sta.z memcpy_in_vram.num - lda #0 - sta.z memcpy_in_vram.num+1 - // [445] call memcpy_in_vram - jsr memcpy_in_vram - // insertup::@4 - // for(unsigned byte i=1; i<=cy; i++) - // [446] insertup::i#1 = ++ insertup::i#2 -- vbuxx=_inc_vbuxx - inx - // [434] phi from insertup::@4 to insertup::@1 [phi:insertup::@4->insertup::@1] - // [434] phi insertup::i#2 = insertup::i#1 [phi:insertup::@4->insertup::@1#0] -- register_copy - jmp __b1 -} - // clearline -clearline: { - .label addr = $a - .label c = 2 - // *VERA_CTRL &= ~VERA_ADDRSEL - // [447] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // byte* addr = CONIO_SCREEN_TEXT + conio_line_text[conio_screen_layer] - // [448] clearline::$5 = conio_screen_layer << 1 -- vbuaa=vbuz1_rol_1 - lda.z conio_screen_layer - asl - // [449] clearline::addr#0 = CONIO_SCREEN_TEXT#17 + conio_line_text[clearline::$5] -- pbuz1=pbuz2_plus_pwuc1_derefidx_vbuaa - // Set address - tay - clc - lda.z CONIO_SCREEN_TEXT_1 - adc conio_line_text,y - sta.z addr - lda.z CONIO_SCREEN_TEXT_1+1 - adc conio_line_text+1,y - sta.z addr+1 - // BYTE0(addr) - // [450] clearline::$1 = byte0 clearline::addr#0 -- vbuaa=_byte0_pbuz1 - lda.z addr - // *VERA_ADDRX_L = BYTE0(addr) - // [451] *VERA_ADDRX_L = clearline::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_L - // BYTE1(addr) - // [452] clearline::$2 = byte1 clearline::addr#0 -- vbuaa=_byte1_pbuz1 - lda.z addr+1 - // *VERA_ADDRX_M = BYTE1(addr) - // [453] *VERA_ADDRX_M = clearline::$2 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // *VERA_ADDRX_H = VERA_INC_1 - // [454] *VERA_ADDRX_H = VERA_INC_1 -- _deref_pbuc1=vbuc2 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // char color = vera_layer_get_color( conio_screen_layer) - // [455] vera_layer_get_color::layer#1 = conio_screen_layer -- vbuxx=vbuz1 - ldx.z conio_screen_layer - // [456] call vera_layer_get_color - // [217] phi from clearline to vera_layer_get_color [phi:clearline->vera_layer_get_color] - // [217] phi vera_layer_get_color::layer#2 = vera_layer_get_color::layer#1 [phi:clearline->vera_layer_get_color#0] -- register_copy - jsr vera_layer_get_color - // char color = vera_layer_get_color( conio_screen_layer) - // [457] vera_layer_get_color::return#4 = vera_layer_get_color::return#2 - // clearline::@4 - // [458] clearline::color#0 = vera_layer_get_color::return#4 -- vbuxx=vbuaa - tax - // [459] phi from clearline::@4 to clearline::@1 [phi:clearline::@4->clearline::@1] - // [459] phi clearline::c#2 = 0 [phi:clearline::@4->clearline::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z c - sta.z c+1 - // clearline::@1 - __b1: - // for( unsigned int c=0;cclearline::@1] - // [459] phi clearline::c#2 = clearline::c#1 [phi:clearline::@2->clearline::@1#0] -- register_copy - jmp __b1 -} - // memcpy_in_vram -// Copy block of memory (from VRAM to VRAM) -// Copies the values from the location pointed by src to the location pointed by dest. -// The method uses the VERA access ports 0 and 1 to copy data from and to in VRAM. -// - src_bank: 64K VRAM bank number to copy from (0/1). -// - src: pointer to the location to copy from. Note that the address is a 16 bit value! -// - src_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -// - dest_bank: 64K VRAM bank number to copy to (0/1). -// - dest: pointer to the location to copy to. Note that the address is a 16 bit value! -// - dest_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -// - num: The number of bytes to copy -// void memcpy_in_vram(char dest_bank, __zp(6) void *dest, char dest_increment, char src_bank, __zp($a) char *src, char src_increment, __zp(4) unsigned int num) -memcpy_in_vram: { - .label i = 2 - .label dest = 6 - .label src = $a - .label num = 4 - // *VERA_CTRL &= ~VERA_ADDRSEL - // [466] *VERA_CTRL = *VERA_CTRL & ~VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 - // Select DATA0 - lda #VERA_ADDRSEL^$ff - and VERA_CTRL - sta VERA_CTRL - // BYTE0(src) - // [467] memcpy_in_vram::$0 = byte0 (void *)memcpy_in_vram::src#0 -- vbuaa=_byte0_pvoz1 - lda.z src - // *VERA_ADDRX_L = BYTE0(src) - // [468] *VERA_ADDRX_L = memcpy_in_vram::$0 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // BYTE1(src) - // [469] memcpy_in_vram::$1 = byte1 (void *)memcpy_in_vram::src#0 -- vbuaa=_byte1_pvoz1 - lda.z src+1 - // *VERA_ADDRX_M = BYTE1(src) - // [470] *VERA_ADDRX_M = memcpy_in_vram::$1 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // *VERA_ADDRX_H = src_increment | src_bank - // [471] *VERA_ADDRX_H = VERA_INC_1 -- _deref_pbuc1=vbuc2 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // *VERA_CTRL |= VERA_ADDRSEL - // [472] *VERA_CTRL = *VERA_CTRL | VERA_ADDRSEL -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 - // Select DATA1 - lda #VERA_ADDRSEL - ora VERA_CTRL - sta VERA_CTRL - // BYTE0(dest) - // [473] memcpy_in_vram::$3 = byte0 memcpy_in_vram::dest#0 -- vbuaa=_byte0_pvoz1 - lda.z dest - // *VERA_ADDRX_L = BYTE0(dest) - // [474] *VERA_ADDRX_L = memcpy_in_vram::$3 -- _deref_pbuc1=vbuaa - // Set address - sta VERA_ADDRX_L - // BYTE1(dest) - // [475] memcpy_in_vram::$4 = byte1 memcpy_in_vram::dest#0 -- vbuaa=_byte1_pvoz1 - lda.z dest+1 - // *VERA_ADDRX_M = BYTE1(dest) - // [476] *VERA_ADDRX_M = memcpy_in_vram::$4 -- _deref_pbuc1=vbuaa - sta VERA_ADDRX_M - // *VERA_ADDRX_H = dest_increment | dest_bank - // [477] *VERA_ADDRX_H = VERA_INC_1 -- _deref_pbuc1=vbuc2 - lda #VERA_INC_1 - sta VERA_ADDRX_H - // [478] phi from memcpy_in_vram to memcpy_in_vram::@1 [phi:memcpy_in_vram->memcpy_in_vram::@1] - // [478] phi memcpy_in_vram::i#2 = 0 [phi:memcpy_in_vram->memcpy_in_vram::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z i - sta.z i+1 - // Transfer the data - // memcpy_in_vram::@1 - __b1: - // for(unsigned int i=0; imemcpy_in_vram::@1] - // [478] phi memcpy_in_vram::i#2 = memcpy_in_vram::i#1 [phi:memcpy_in_vram::@2->memcpy_in_vram::@1#0] -- register_copy - jmp __b1 -} - // File Data -.segment Data - VERA_LAYER_WIDTH: .word $20, $40, $80, $100 - VERA_LAYER_HEIGHT: .word $20, $40, $80, $100 - /// --- VERA function encapsulation --- - vera_mapbase_offset: .word 0, 0 - vera_mapbase_bank: .byte 0, 0 - vera_mapbase_address: .dword 0, 0 - vera_tilebase_offset: .word 0, 0 - vera_tilebase_bank: .byte 0, 0 - vera_tilebase_address: .dword 0, 0 - vera_layer_rowshift: .byte 0, 0 - vera_layer_rowskip: .word 0, 0 - vera_layer_hflip: .byte 0, 4 - vera_layer_vflip: .byte 0, 8 - vera_layer_config: .word VERA_L0_CONFIG, VERA_L1_CONFIG - vera_layer_enable: .byte VERA_LAYER0_ENABLE, VERA_LAYER1_ENABLE - vera_layer_mapbase: .word VERA_L0_MAPBASE, VERA_L1_MAPBASE - vera_layer_tilebase: .word VERA_L0_TILEBASE, VERA_L1_TILEBASE - vera_layer_textcolor: .byte WHITE, WHITE - vera_layer_backcolor: .byte BLUE, BLUE - // The number of bytes on the screen - // The current cursor x-position - conio_cursor_x: .byte 0, 0 - // The current cursor y-position - conio_cursor_y: .byte 0, 0 - // The current text cursor line start - conio_line_text: .word 0, 0 - // Is scrolling enabled when outputting beyond the end of the screen (1: yes, 0: no). - // If disabled the cursor just moves back to (0,0) instead - conio_scroll_enable: .byte 1, 1 - diff --git a/src/test/ref/examples/cx16/veralib/tilemap_8bpp_8_x_8.sym b/src/test/ref/examples/cx16/veralib/tilemap_8bpp_8_x_8.sym deleted file mode 100644 index 03872ec88..000000000 --- a/src/test/ref/examples/cx16/veralib/tilemap_8bpp_8_x_8.sym +++ /dev/null @@ -1,698 +0,0 @@ -__constant const char BLACK = 0 -__constant const char BLUE = 6 -char CONIO_SCREEN_BANK -char CONIO_SCREEN_BANK#11 // CONIO_SCREEN_BANK zp[1]:86 12.813953488372093 -char CONIO_SCREEN_BANK#15 // CONIO_SCREEN_BANK_1 zp[1]:59 625.0625 -char *CONIO_SCREEN_TEXT -unsigned int CONIO_SCREEN_TEXT#13 // CONIO_SCREEN_TEXT zp[2]:87 1.8363636363636364 -char *CONIO_SCREEN_TEXT#17 // CONIO_SCREEN_TEXT_1 zp[2]:17 2.0370555611111112E7 -__constant char RADIX::BINARY = 2 -__constant char RADIX::DECIMAL = $a -__constant char RADIX::HEXADECIMAL = $10 -__constant char RADIX::OCTAL = 8 -__constant char SIZEOF_POINTER = 2 -__constant unsigned int STACK_BASE = $103 -__constant const char VERA_ADDRSEL = 1 -__constant char * const VERA_ADDRX_H = (char *) 40738 -__constant char * const VERA_ADDRX_L = (char *) 40736 -__constant char * const VERA_ADDRX_M = (char *) 40737 -__constant char * const VERA_CTRL = (char *) 40741 -__constant char * const VERA_DATA0 = (char *) 40739 -__constant char * const VERA_DATA1 = (char *) 40740 -__constant char * const VERA_DC_HSCALE = (char *) 40746 -__constant char * const VERA_DC_VIDEO = (char *) 40745 -__constant char * const VERA_DC_VSCALE = (char *) 40747 -__constant const char VERA_INC_1 = $10 -__constant char * const VERA_L0_CONFIG = (char *) 40749 -__constant char * const VERA_L0_MAPBASE = (char *) 40750 -__constant char * const VERA_L0_TILEBASE = (char *) 40751 -__constant char * const VERA_L1_CONFIG = (char *) 40756 -__constant char * const VERA_L1_MAPBASE = (char *) 40757 -__constant char * const VERA_L1_TILEBASE = (char *) 40758 -__constant const char VERA_LAYER0_ENABLE = $10 -__constant const char VERA_LAYER1_ENABLE = $20 -__constant const char VERA_LAYER_COLOR_DEPTH_1BPP = 0 -__constant const char VERA_LAYER_COLOR_DEPTH_2BPP = 1 -__constant const char VERA_LAYER_COLOR_DEPTH_4BPP = 2 -__constant const char VERA_LAYER_COLOR_DEPTH_8BPP = 3 -__constant const char VERA_LAYER_CONFIG_256C = 8 -__constant const unsigned int VERA_LAYER_HEIGHT[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_HEIGHT_128 = $80 -__constant const char VERA_LAYER_HEIGHT_256 = $c0 -__constant const char VERA_LAYER_HEIGHT_64 = $40 -__constant const char VERA_LAYER_HEIGHT_MASK = $c0 -__constant const char VERA_LAYER_TILEBASE_MASK = $fc -__constant const unsigned int VERA_LAYER_WIDTH[4] = { $20, $40, $80, $100 } -__constant const char VERA_LAYER_WIDTH_128 = $20 -__constant const char VERA_LAYER_WIDTH_256 = $30 -__constant const char VERA_LAYER_WIDTH_64 = $10 -__constant const char VERA_LAYER_WIDTH_MASK = $30 -__constant const char VERA_TILEBASE_HEIGHT_16 = 2 -__constant const char VERA_TILEBASE_WIDTH_16 = 1 -__constant const char WHITE = 1 -void __start() -void clearline() -char clearline::$1 // reg byte a 2.00000002E8 -char clearline::$2 // reg byte a 2.00000002E8 -char clearline::$5 // reg byte a 2.00000002E8 -char *clearline::addr -char *clearline::addr#0 // addr zp[2]:10 1.00000001E8 -unsigned int clearline::c -unsigned int clearline::c#1 // c zp[2]:2 2.0000000002E10 -unsigned int clearline::c#2 // c zp[2]:2 7.50000000075E9 -char clearline::color -char clearline::color#0 // reg byte x 1.6833333336666665E9 -void clrscr() -char clrscr::$0 // reg byte a 202.0 -char clrscr::$1 // zp[1]:83 40.4 -char clrscr::$2 // reg byte a 202.0 -char clrscr::$5 // reg byte a 2002.0 -char clrscr::$6 // reg byte a 2002.0 -char clrscr::$7 // reg byte a 2002.0 -char clrscr::$9 // reg byte a 202.0 -char clrscr::c -char clrscr::c#1 // reg byte y 20002.0 -char clrscr::c#2 // reg byte y 7500.75 -char *clrscr::ch -char clrscr::color -char clrscr::color#0 // color zp[1]:31 594.2352941176471 -char clrscr::l -char clrscr::l#1 // reg byte x 2002.0 -char clrscr::l#2 // reg byte x 200.2 -char *clrscr::line_text -char *clrscr::line_text#0 // line_text zp[2]:2 18.363636363636363 -char *clrscr::line_text#1 // line_text zp[2]:2 1001.0 -char *clrscr::line_text#2 // line_text zp[2]:2 293.2142857142857 -__constant char conio_cursor_x[2] = { 0, 0 } -__constant char conio_cursor_y[2] = { 0, 0 } -__loadstore unsigned int conio_height // zp[2]:38 5561.694444444444 -__constant unsigned int conio_line_text[2] = { 0, 0 } -__loadstore char conio_rowshift // zp[1]:23 5287958.664921466 -__loadstore unsigned int conio_rowskip // zp[2]:24 4878541.980487805 -__loadstore volatile char conio_screen_height // zp[1]:32 70588.39411764707 -__loadstore char conio_screen_layer // zp[1]:28 1296495.313207547 -__loadstore volatile char conio_screen_width // zp[1]:14 4.8878097590243906E7 -__constant char conio_scroll_enable[2] = { 1, 1 } -__loadstore unsigned int conio_width // zp[2]:70 110.46703296703298 -void conio_x16_init() -__constant char * const conio_x16_init::BASIC_CURSOR_LINE = (char *) 214 -char conio_x16_init::line -char conio_x16_init::line#0 // line zp[1]:82 2.1999999999999997 -char conio_x16_init::line#1 // line zp[1]:82 22.0 -char conio_x16_init::line#3 // line zp[1]:82 33.0 -__stackcall void cputc(char c) -char cputc::$15 // reg byte a 20002.0 -unsigned int cputc::$16 // zp[2]:2 20002.0 -char cputc::$2 // reg byte a 20002.0 -char cputc::$4 // reg byte a 20002.0 -char cputc::$5 // reg byte a 20002.0 -char cputc::$6 // reg byte a 20002.0 -__constant char cputc::OFFSET_STACK_C = 0 -char cputc::c -char cputc::c#0 // c zp[1]:37 1764.8823529411764 -char cputc::color -char cputc::color#0 // reg byte x 1428.7142857142858 -char *cputc::conio_addr -char *cputc::conio_addr#0 // conio_addr zp[2]:8 10001.0 -char *cputc::conio_addr#1 // conio_addr zp[2]:8 6000.6 -char cputc::scroll_enable -char cputc::scroll_enable#0 // reg byte a 20002.0 -void cputln() -char cputln::$2 // reg byte a 200002.0 -char cputln::$3 // reg byte a 200002.0 -unsigned int cputln::temp -unsigned int cputln::temp#0 // temp zp[2]:8 200002.0 -unsigned int cputln::temp#1 // temp zp[2]:8 100001.0 -void cscroll() -void gotoxy(char x , char y) -char gotoxy::$5 // reg byte a 2.0000002E7 -unsigned int gotoxy::$6 // zp[2]:15 2.0000002E7 -unsigned int gotoxy::line_offset -unsigned int gotoxy::line_offset#0 // line_offset zp[2]:15 1.0000001E7 -char gotoxy::x -char gotoxy::y -char gotoxy::y#1 // reg byte x 22.0 -char gotoxy::y#2 // reg byte x 2000002.0 -char gotoxy::y#4 // reg byte x 7000004.666666666 -char gotoxy::y#5 // reg byte x 4000000.4 -void insertup() -char insertup::$3 // reg byte a 2.000000002E9 -char insertup::cy -char insertup::cy#0 // cy zp[1]:13 8.416666683333334E7 -char insertup::i -char insertup::i#1 // reg byte x 2.000000002E9 -char insertup::i#2 // reg byte x 4.444444448888889E8 -unsigned int insertup::line -unsigned int insertup::line#0 // line zp[2]:6 2.000000002E9 -char *insertup::start -char *insertup::start#0 // start zp[2]:6 1.000000001E9 -char insertup::width -char insertup::width#0 // width zp[1]:12 9.1818182E7 -char kbhit() -__constant char * const kbhit::GETIN = (char *) 65508 -__constant char * const kbhit::IN_DEV = (char *) 650 -__loadstore volatile char kbhit::ch // zp[1]:58 1001.0 -__constant char * const kbhit::chptr = &kbhit::ch -char kbhit::return -char kbhit::return#0 // reg byte a 2002.0 -char kbhit::return#1 // reg byte a 367.33333333333337 -char kbhit::return#2 // reg byte a 202.0 -void main() -char main::$25 // reg byte a 202.0 -char main::bgcolor1_color -char main::c -char main::c#1 // c zp[1]:57 1501.5 -char main::c#2 // c zp[1]:57 250.25 -char main::c1 -char main::c1#1 // reg byte x 1501.5 -char main::c1#2 // reg byte x 250.25 -char main::column -char main::column#1 // reg byte x 400.4 -char main::column#2 // reg byte x 600.5999999999999 -char main::column1 -char main::column1#1 // column1 zp[1]:41 400.4 -char main::column1#2 // column1 zp[1]:41 600.5999999999999 -char main::p -char main::p#1 // reg byte x 1501.5 -char main::p#2 // reg byte x 2002.0 -char main::r -char main::r#1 // r zp[1]:66 151.5 -char main::r#5 // r zp[1]:66 16.833333333333332 -char main::r1 -char main::r1#1 // r1 zp[1]:67 151.5 -char main::r1#5 // r1 zp[1]:67 16.833333333333332 -char main::row -char main::row#1 // row zp[1]:64 67.33333333333333 -char main::row#11 // row_1 zp[1]:65 109.36363636363637 -char main::row#3 // row_1 zp[1]:65 67.33333333333333 -char main::row#9 // row zp[1]:64 109.36363636363637 -__constant char main::s[$38] = "vera in tile mode 8 x 8, color depth 8 bits per pixel. -" -__constant char main::s1[$3a] = "in this mode, tiles are 8 pixels wide and 8 pixels tall. -" -__constant char main::s2[$2f] = "each tile can have a variation of 256 colors. -" -__constant char main::s3[$44] = "the vera palette of 256 colors, can be used by setting the palette -" -__constant char main::s4[$17] = "offset for each tile. -" -__constant char main::s5[$4b] = "here each column is displaying the same tile, but with different offsets! -" -__constant char main::s6[$3f] = "each offset aligns to multiples of 16 colors in the palette!. -" -__constant char main::s7[$3e] = "however, the first color will always be transparent (black). -" -char main::t -char main::t#1 // t zp[1]:63 151.5 -char main::t#5 // t zp[1]:63 25.25 -char main::textcolor1_color -unsigned int main::tile -unsigned int main::tile#1 // tile zp[2]:35 2002.0 -unsigned int main::tile#10 // tile zp[2]:35 202.0 -unsigned int main::tile#11 // tile zp[2]:35 202.0 -unsigned int main::tile#12 // tile zp[2]:35 350.5 -unsigned int main::tile#13 // tile zp[2]:35 350.5 -unsigned int main::tile#4 // tile zp[2]:35 2002.0 -unsigned int main::tile#6 // tile zp[2]:35 517.3333333333334 -unsigned int main::tile#8 // tile zp[2]:35 517.3333333333334 -char *main::tilebase -char *main::tilebase#2 // tilebase zp[2]:72 67.33333333333333 -char *main::tilebase#7 // tilebase zp[2]:72 28.857142857142858 -__constant char main::tiles[$40] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } -char main::vera_layer_show1_layer -void memcpy_in_vram(char dest_bank , void *dest , char dest_increment , char src_bank , void *src , char src_increment , unsigned int num) -char memcpy_in_vram::$0 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$1 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$3 // reg byte a 2.0000000002E10 -char memcpy_in_vram::$4 // reg byte a 2.0000000002E10 -void *memcpy_in_vram::dest -void *memcpy_in_vram::dest#0 // dest zp[2]:6 1.9090909093636363E9 -char memcpy_in_vram::dest_bank -char memcpy_in_vram::dest_increment -unsigned int memcpy_in_vram::i -unsigned int memcpy_in_vram::i#1 // i zp[2]:2 2.0000000000002E13 -unsigned int memcpy_in_vram::i#2 // i zp[2]:2 1.0000000000001E13 -unsigned int memcpy_in_vram::num -unsigned int memcpy_in_vram::num#0 // num zp[2]:4 5.882941176471765E11 -void *memcpy_in_vram::src -char *memcpy_in_vram::src#0 // src zp[2]:10 1.6666666683333334E8 -char memcpy_in_vram::src_bank -char memcpy_in_vram::src_increment -void memcpy_to_vram(char vbank , void *vdest , void *src , unsigned int num) -char memcpy_to_vram::$0 // reg byte a 2002.0 -char memcpy_to_vram::$1 // reg byte a 2002.0 -char *memcpy_to_vram::end -__constant char *memcpy_to_vram::end#0 = (char *)(void *)main::tiles+$40 // end -unsigned int memcpy_to_vram::num -char *memcpy_to_vram::s -char *memcpy_to_vram::s#1 // s zp[2]:29 200002.0 -char *memcpy_to_vram::s#2 // s zp[2]:29 133334.66666666666 -void *memcpy_to_vram::src -char memcpy_to_vram::vbank -void *memcpy_to_vram::vdest -void *memcpy_to_vram::vdest#1 // vdest zp[2]:2 202.0 -void *memcpy_to_vram::vdest#2 // vdest zp[2]:2 525.75 -void printf_str(void (*putc)(char) , const char *s) -char printf_str::c -char printf_str::c#1 // reg byte a 1001.0 -void (*printf_str::putc)(char) -const char *printf_str::s -const char *printf_str::s#0 // s zp[2]:29 400.4 -const char *printf_str::s#10 // s zp[2]:29 101.0 -const char *printf_str::s#9 // s zp[2]:29 1552.0 -void screenlayer(char layer) -unsigned int screenlayer::$2 // zp[2]:15 202.0 -char screenlayer::$3 // reg byte a 202.0 -unsigned int screenlayer::$4 // zp[2]:55 202.0 -unsigned int screenlayer::$5 // zp[2]:43 202.0 -char screenlayer::layer -__constant char screenlayer::layer#0 = 1 // layer -char screenlayer::vera_layer_get_height1_$0 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$1 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$2 // reg byte a 202.0 -char screenlayer::vera_layer_get_height1_$3 // reg byte a 202.0 -char *screenlayer::vera_layer_get_height1_config -char *screenlayer::vera_layer_get_height1_config#0 // vera_layer_get_height1_config zp[2]:45 202.0 -char screenlayer::vera_layer_get_height1_layer -char screenlayer::vera_layer_get_height1_layer#0 // reg byte a 202.0 -unsigned int screenlayer::vera_layer_get_height1_return -unsigned int screenlayer::vera_layer_get_height1_return#0 // vera_layer_get_height1_return zp[2]:43 202.0 -unsigned int screenlayer::vera_layer_get_height1_return#1 // vera_layer_get_height1_return zp[2]:43 202.0 -char screenlayer::vera_layer_get_width1_$0 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$1 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$2 // reg byte a 202.0 -char screenlayer::vera_layer_get_width1_$3 // reg byte a 202.0 -char *screenlayer::vera_layer_get_width1_config -char *screenlayer::vera_layer_get_width1_config#0 // vera_layer_get_width1_config zp[2]:33 202.0 -char screenlayer::vera_layer_get_width1_layer -char screenlayer::vera_layer_get_width1_layer#0 // reg byte a 202.0 -unsigned int screenlayer::vera_layer_get_width1_return -unsigned int screenlayer::vera_layer_get_width1_return#0 // vera_layer_get_width1_return zp[2]:15 202.0 -unsigned int screenlayer::vera_layer_get_width1_return#1 // vera_layer_get_width1_return zp[2]:15 202.0 -void screensize(char *x , char *y) -char screensize::$1 // reg byte a 202.0 -char screensize::$3 // reg byte a 202.0 -char screensize::hscale -char screensize::hscale#0 // reg byte a 202.0 -char screensize::vscale -char screensize::vscale#0 // reg byte a 202.0 -char *screensize::x -__constant char *screensize::x#0 = &conio_screen_width // x -char *screensize::y -__constant char *screensize::y#0 = &conio_screen_height // y -__constant char vera_layer_backcolor[2] = { BLUE, BLUE } -__constant char *vera_layer_config[2] = { VERA_L0_CONFIG, VERA_L1_CONFIG } -__constant char vera_layer_enable[2] = { VERA_LAYER0_ENABLE, VERA_LAYER1_ENABLE } -char vera_layer_get_backcolor(char layer) -char vera_layer_get_backcolor::layer -char vera_layer_get_backcolor::layer#0 // reg byte x 1102.0 -char vera_layer_get_backcolor::return -char vera_layer_get_backcolor::return#0 // reg byte a 367.33333333333337 -char vera_layer_get_backcolor::return#2 // reg byte a 202.0 -char vera_layer_get_color(char layer) -char vera_layer_get_color::$0 // reg byte a 2.000000002E9 -char vera_layer_get_color::$1 // reg byte a 2.000000002E9 -char vera_layer_get_color::$3 // reg byte a 2.000000002E9 -char *vera_layer_get_color::addr -char *vera_layer_get_color::addr#0 // addr zp[2]:8 2.000000002E9 -char vera_layer_get_color::layer -char vera_layer_get_color::layer#0 // reg byte x 20002.0 -char vera_layer_get_color::layer#1 // reg byte x 2.00000002E8 -char vera_layer_get_color::layer#2 // reg byte x 6.833350010000001E8 -char vera_layer_get_color::return -char vera_layer_get_color::return#0 // reg byte a 2.000000002E9 -char vera_layer_get_color::return#1 // reg byte a 2.000000002E9 -char vera_layer_get_color::return#2 // reg byte a 5.25002501E8 -char vera_layer_get_color::return#3 // reg byte a 20002.0 -char vera_layer_get_color::return#4 // reg byte a 2.00000002E8 -char vera_layer_get_mapbase_bank(char layer) -char vera_layer_get_mapbase_bank::layer -char vera_layer_get_mapbase_bank::layer#0 // reg byte x 1102.0 -char vera_layer_get_mapbase_bank::return -char vera_layer_get_mapbase_bank::return#0 // reg byte a 367.33333333333337 -char vera_layer_get_mapbase_bank::return#2 // reg byte a 202.0 -unsigned int vera_layer_get_mapbase_offset(char layer) -char vera_layer_get_mapbase_offset::$0 // reg byte a 2002.0 -char vera_layer_get_mapbase_offset::layer -char vera_layer_get_mapbase_offset::layer#0 // reg byte a 1102.0 -unsigned int vera_layer_get_mapbase_offset::return -unsigned int vera_layer_get_mapbase_offset::return#0 // return zp[2]:15 367.33333333333337 -unsigned int vera_layer_get_mapbase_offset::return#2 // return zp[2]:15 202.0 -char vera_layer_get_rowshift(char layer) -char vera_layer_get_rowshift::layer -char vera_layer_get_rowshift::layer#0 // reg byte x 1102.0 -char vera_layer_get_rowshift::return -char vera_layer_get_rowshift::return#0 // reg byte a 367.33333333333337 -char vera_layer_get_rowshift::return#2 // reg byte a 202.0 -unsigned int vera_layer_get_rowskip(char layer) -char vera_layer_get_rowskip::$0 // reg byte a 2002.0 -char vera_layer_get_rowskip::layer -char vera_layer_get_rowskip::layer#0 // reg byte a 1102.0 -unsigned int vera_layer_get_rowskip::return -unsigned int vera_layer_get_rowskip::return#0 // return zp[2]:55 367.33333333333337 -unsigned int vera_layer_get_rowskip::return#2 // return zp[2]:55 202.0 -char vera_layer_get_textcolor(char layer) -char vera_layer_get_textcolor::layer -char vera_layer_get_textcolor::layer#0 // reg byte x 1102.0 -char vera_layer_get_textcolor::return -char vera_layer_get_textcolor::return#0 // reg byte a 367.33333333333337 -char vera_layer_get_textcolor::return#2 // reg byte a 202.0 -__constant const char vera_layer_hflip[2] = { 0, 4 } -__constant char *vera_layer_mapbase[2] = { VERA_L0_MAPBASE, VERA_L1_MAPBASE } -void vera_layer_mode_text(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , unsigned int color_mode) -unsigned int vera_layer_mode_text::color_mode -char vera_layer_mode_text::layer -__constant char vera_layer_mode_text::layer#0 = 1 // layer -unsigned long vera_layer_mode_text::mapbase_address -__constant unsigned long vera_layer_mode_text::mapbase_address#0 = 0 // mapbase_address -unsigned int vera_layer_mode_text::mapheight -__constant unsigned int vera_layer_mode_text::mapheight#0 = $40 // mapheight -unsigned int vera_layer_mode_text::mapwidth -__constant unsigned int vera_layer_mode_text::mapwidth#0 = $80 // mapwidth -unsigned long vera_layer_mode_text::tilebase_address -__constant unsigned long vera_layer_mode_text::tilebase_address#0 = $f800 // tilebase_address -char vera_layer_mode_text::tileheight -__constant char vera_layer_mode_text::tileheight#0 = 8 // tileheight -char vera_layer_mode_text::tilewidth -__constant char vera_layer_mode_text::tilewidth#0 = 8 // tilewidth -void vera_layer_mode_tile(char layer , unsigned long mapbase_address , unsigned long tilebase_address , unsigned int mapwidth , unsigned int mapheight , char tilewidth , char tileheight , char color_depth) -unsigned int vera_layer_mode_tile::$1 // zp[2]:55 1001.0 -char vera_layer_mode_tile::$11 // reg byte a 2002.0 -char vera_layer_mode_tile::$12 // reg byte a 2002.0 -char vera_layer_mode_tile::$13 // reg byte a 2002.0 -char vera_layer_mode_tile::$14 // reg byte a 2002.0 -char vera_layer_mode_tile::$17 // zp[1]:61 250.25 -char vera_layer_mode_tile::$18 // zp[1]:60 273.0 -char vera_layer_mode_tile::$2 // reg byte a 2002.0 -unsigned int vera_layer_mode_tile::$6 // zp[2]:45 2002.0 -char vera_layer_mode_tile::$7 // reg byte a 2002.0 -char vera_layer_mode_tile::color_depth -char vera_layer_mode_tile::color_depth#2 // reg byte x 1001.0 -char vera_layer_mode_tile::config -char vera_layer_mode_tile::config#10 // reg byte x 2002.0 -char vera_layer_mode_tile::config#11 // reg byte x 2002.0 -char vera_layer_mode_tile::config#12 // reg byte x 2002.0 -char vera_layer_mode_tile::config#17 // reg byte x 625.625 -char vera_layer_mode_tile::config#21 // reg byte x 2002.0000000000002 -char vera_layer_mode_tile::config#25 // reg byte x 3003.0 -char vera_layer_mode_tile::config#6 // reg byte x 500.5 -char vera_layer_mode_tile::config#7 // reg byte x 500.5 -char vera_layer_mode_tile::config#8 // reg byte x 500.5 -char vera_layer_mode_tile::layer -char vera_layer_mode_tile::layer#10 // layer zp[1]:62 227.49999999999994 -char vera_layer_mode_tile::mapbase -char vera_layer_mode_tile::mapbase#0 // reg byte x 1001.0 -unsigned long vera_layer_mode_tile::mapbase_address -unsigned long vera_layer_mode_tile::mapbase_address#0 // mapbase_address zp[4]:47 2002.0 -unsigned long vera_layer_mode_tile::mapbase_address#10 // mapbase_address_1 zp[4]:74 88.97777777777777 -unsigned int vera_layer_mode_tile::mapheight -unsigned int vera_layer_mode_tile::mapheight#10 // mapheight zp[2]:68 133.46666666666667 -unsigned int vera_layer_mode_tile::mapwidth -unsigned int vera_layer_mode_tile::mapwidth#10 // mapwidth zp[2]:15 400.4 -char vera_layer_mode_tile::tilebase -char vera_layer_mode_tile::tilebase#0 // reg byte a 2002.0 -char vera_layer_mode_tile::tilebase#1 // reg byte x 1334.6666666666667 -char vera_layer_mode_tile::tilebase#10 // reg byte x 2002.0 -char vera_layer_mode_tile::tilebase#12 // reg byte x 2002.0000000000002 -char vera_layer_mode_tile::tilebase#3 // reg byte x 2002.0 -char vera_layer_mode_tile::tilebase#5 // reg byte x 2002.0 -unsigned long vera_layer_mode_tile::tilebase_address -unsigned long vera_layer_mode_tile::tilebase_address#0 // tilebase_address zp[4]:51 2002.0 -unsigned long vera_layer_mode_tile::tilebase_address#10 // tilebase_address_1 zp[4]:78 72.8 -char vera_layer_mode_tile::tileheight -char vera_layer_mode_tile::tileheight#10 // tileheight zp[1]:85 31.77777777777778 -char vera_layer_mode_tile::tilewidth -char vera_layer_mode_tile::tilewidth#10 // tilewidth zp[1]:84 33.932203389830505 -__constant char vera_layer_rowshift[2] = { 0, 0 } -__constant unsigned int vera_layer_rowskip[2] = { 0, 0 } -char vera_layer_set_backcolor(char layer , char color) -char vera_layer_set_backcolor::color -char vera_layer_set_backcolor::color#2 // reg byte a 101.0 -char vera_layer_set_backcolor::layer -char vera_layer_set_backcolor::layer#1 // reg byte x 22.0 -char vera_layer_set_backcolor::layer#2 // reg byte x 112.0 -char vera_layer_set_backcolor::old -char vera_layer_set_backcolor::return -void vera_layer_set_config(char layer , char config) -char vera_layer_set_config::$0 // reg byte a 20002.0 -char *vera_layer_set_config::addr -char *vera_layer_set_config::addr#0 // addr zp[2]:33 20002.0 -char vera_layer_set_config::config -char vera_layer_set_config::config#0 // reg byte x 3667.333333333333 -char vera_layer_set_config::layer -char vera_layer_set_config::layer#0 // reg byte a 5501.0 -void vera_layer_set_mapbase(char layer , char mapbase) -char vera_layer_set_mapbase::$0 // reg byte a 20002.0 -char *vera_layer_set_mapbase::addr -char *vera_layer_set_mapbase::addr#0 // addr zp[2]:33 20002.0 -char vera_layer_set_mapbase::layer -char vera_layer_set_mapbase::layer#0 // reg byte a 1001.0 -char vera_layer_set_mapbase::layer#3 // reg byte a 11002.0 -char vera_layer_set_mapbase::mapbase -char vera_layer_set_mapbase::mapbase#0 // reg byte x 2002.0 -char vera_layer_set_mapbase::mapbase#3 // reg byte x 3667.333333333333 -void vera_layer_set_text_color_mode(char layer , char color_mode) -char *vera_layer_set_text_color_mode::addr -char *vera_layer_set_text_color_mode::addr#0 // addr zp[2]:43 2502.5 -char vera_layer_set_text_color_mode::color_mode -char vera_layer_set_text_color_mode::layer -char vera_layer_set_textcolor(char layer , char color) -char vera_layer_set_textcolor::color -char vera_layer_set_textcolor::layer -char vera_layer_set_textcolor::layer#1 // reg byte x 22.0 -char vera_layer_set_textcolor::layer#2 // reg byte x 112.0 -char vera_layer_set_textcolor::old -char vera_layer_set_textcolor::return -void vera_layer_set_tilebase(char layer , char tilebase) -char vera_layer_set_tilebase::$0 // reg byte a 20002.0 -char *vera_layer_set_tilebase::addr -char *vera_layer_set_tilebase::addr#0 // addr zp[2]:33 20002.0 -char vera_layer_set_tilebase::layer -char vera_layer_set_tilebase::layer#0 // reg byte a 5501.0 -char vera_layer_set_tilebase::tilebase -char vera_layer_set_tilebase::tilebase#0 // reg byte x 3667.333333333333 -__constant char vera_layer_textcolor[2] = { WHITE, WHITE } -__constant char *vera_layer_tilebase[2] = { VERA_L0_TILEBASE, VERA_L1_TILEBASE } -__constant const char vera_layer_vflip[2] = { 0, 8 } -__constant unsigned long vera_mapbase_address[2] = { 0, 0 } -__constant char vera_mapbase_bank[2] = { 0, 0 } -__constant unsigned int vera_mapbase_offset[2] = { 0, 0 } -void vera_tile_area(char layer , unsigned int tileindex , char x , char y , char w , char h , char hflip , char vflip , char offset) -unsigned int vera_tile_area::$10 // zp[2]:2 20002.0 -unsigned int vera_tile_area::$4 // zp[2]:2 20002.0 -char vera_tile_area::$5 // reg byte a 20002.0 -char vera_tile_area::c -char vera_tile_area::c#1 // reg byte y 2.00000002E8 -char vera_tile_area::c#2 // reg byte y 7.500000075E7 -char vera_tile_area::h -char vera_tile_area::h#4 // h zp[1]:31 312500.03125 -char vera_tile_area::hflip -char vera_tile_area::hflip#0 // hflip zp[1]:40 5000.5 -char vera_tile_area::index_h -char vera_tile_area::index_h#0 // reg byte a 20002.0 -char vera_tile_area::index_h#1 // reg byte a 20002.0 -char vera_tile_area::index_h#2 // index_h zp[1]:26 4348260.956521738 -char vera_tile_area::index_l -char vera_tile_area::index_l#0 // index_l zp[1]:27 3846538.5384615385 -char vera_tile_area::layer -unsigned long vera_tile_area::mapbase -unsigned long vera_tile_area::mapbase#0 // mapbase zp[4]:19 1818.3636363636363 -unsigned long vera_tile_area::mapbase#1 // mapbase zp[4]:19 10001.0 -unsigned long vera_tile_area::mapbase#10 // mapbase zp[4]:19 3334000.4 -unsigned long vera_tile_area::mapbase#2 // mapbase zp[4]:19 20002.0 -unsigned long vera_tile_area::mapbase#3 // mapbase zp[4]:19 1.0000001E7 -char vera_tile_area::offset -char vera_tile_area::r -char vera_tile_area::r#1 // r zp[1]:12 2.0000002E7 -char vera_tile_area::r#2 // r zp[1]:12 1875000.1875 -unsigned int vera_tile_area::rowskip -unsigned int vera_tile_area::rowskip#0 // rowskip zp[2]:8 345172.4827586207 -char vera_tile_area::shift -char vera_tile_area::shift#0 // shift zp[1]:42 3333.6666666666665 -unsigned int vera_tile_area::tileindex -unsigned int vera_tile_area::tileindex#1 // tileindex zp[2]:35 667.3333333333334 -unsigned int vera_tile_area::tileindex#2 // tileindex zp[2]:35 667.3333333333334 -unsigned int vera_tile_area::tileindex#3 // tileindex zp[2]:35 3143.4285714285716 -char vera_tile_area::vera_vram_address01_$0 // reg byte a 2.0000002E7 -char vera_tile_area::vera_vram_address01_$1 // reg byte a 2.0000002E7 -char vera_tile_area::vera_vram_address01_$2 // reg byte a 2.0000002E7 -char vera_tile_area::vera_vram_address01_$3 // reg byte a 2.0000002E7 -unsigned long vera_tile_area::vera_vram_address01_bankaddr -char vera_tile_area::vera_vram_address01_incr -char vera_tile_area::vflip -char vera_tile_area::vflip#0 // vflip zp[1]:26 5000.5 -char vera_tile_area::w -char vera_tile_area::w#9 // w zp[1]:13 3125000.03125 -char vera_tile_area::x -char vera_tile_area::x#1 // x zp[1]:41 1001.0 -char vera_tile_area::x#2 // x zp[1]:41 1001.0 -char vera_tile_area::x#3 // x zp[1]:41 923.3076923076923 -char vera_tile_area::y -char vera_tile_area::y#1 // y zp[1]:37 2002.0 -char vera_tile_area::y#2 // y zp[1]:37 2002.0 -char vera_tile_area::y#3 // y zp[1]:37 200.2 -__constant unsigned long vera_tilebase_address[2] = { 0, 0 } -__constant char vera_tilebase_bank[2] = { 0, 0 } -__constant unsigned int vera_tilebase_offset[2] = { 0, 0 } - -zp[1]:82 [ conio_x16_init::line#3 conio_x16_init::line#1 conio_x16_init::line#0 ] -zp[2]:17 [ CONIO_SCREEN_TEXT#17 ] -zp[1]:59 [ CONIO_SCREEN_BANK#15 ] -zp[2]:72 [ main::tilebase#7 main::tilebase#2 ] -zp[1]:63 [ main::t#5 main::t#1 ] -reg byte x [ main::p#2 main::p#1 ] -zp[1]:64 [ main::row#9 main::row#1 ] -zp[1]:66 [ main::r#5 main::r#1 ] -zp[2]:35 [ main::tile#6 main::tile#10 main::tile#12 main::tile#1 vera_tile_area::tileindex#3 vera_tile_area::tileindex#2 vera_tile_area::tileindex#1 main::tile#8 main::tile#11 main::tile#13 main::tile#4 ] -reg byte x [ main::column#2 main::column#1 ] -zp[1]:57 [ main::c#2 main::c#1 ] -zp[1]:65 [ main::row#11 main::row#3 ] -zp[1]:67 [ main::r1#5 main::r1#1 ] -zp[1]:41 [ main::column1#2 main::column1#1 vera_tile_area::x#3 vera_tile_area::x#2 vera_tile_area::x#1 ] -reg byte x [ main::c1#2 main::c1#1 ] -reg byte x [ vera_layer_set_textcolor::layer#2 vera_layer_set_textcolor::layer#1 ] -reg byte x [ vera_layer_set_backcolor::layer#2 vera_layer_set_backcolor::layer#1 ] -reg byte a [ vera_layer_set_backcolor::color#2 ] -reg byte a [ vera_layer_set_mapbase::layer#3 vera_layer_set_mapbase::layer#0 ] -reg byte x [ vera_layer_set_mapbase::mapbase#3 vera_layer_set_mapbase::mapbase#0 ] -reg byte x [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#1 gotoxy::y#2 ] -reg byte x [ vera_layer_get_color::layer#2 vera_layer_get_color::layer#1 vera_layer_get_color::layer#0 ] -reg byte a [ vera_layer_get_color::return#2 vera_layer_get_color::return#0 vera_layer_get_color::return#1 ] -reg byte x [ clrscr::l#2 clrscr::l#1 ] -reg byte y [ clrscr::c#2 clrscr::c#1 ] -reg byte x [ vera_layer_mode_tile::color_depth#2 ] -zp[1]:62 [ vera_layer_mode_tile::layer#10 ] -zp[2]:68 [ vera_layer_mode_tile::mapheight#10 ] -zp[4]:74 [ vera_layer_mode_tile::mapbase_address#10 ] -zp[4]:78 [ vera_layer_mode_tile::tilebase_address#10 ] -zp[1]:84 [ vera_layer_mode_tile::tilewidth#10 ] -zp[1]:85 [ vera_layer_mode_tile::tileheight#10 ] -reg byte x [ vera_layer_mode_tile::config#25 vera_layer_mode_tile::config#21 vera_layer_mode_tile::config#17 vera_layer_mode_tile::config#6 vera_layer_mode_tile::config#7 vera_layer_mode_tile::config#8 vera_layer_mode_tile::config#10 vera_layer_mode_tile::config#11 vera_layer_mode_tile::config#12 ] -reg byte x [ vera_layer_mode_tile::tilebase#10 vera_layer_mode_tile::tilebase#12 vera_layer_mode_tile::tilebase#1 vera_layer_mode_tile::tilebase#3 vera_layer_mode_tile::tilebase#5 ] -zp[4]:19 [ vera_tile_area::mapbase#10 vera_tile_area::mapbase#2 vera_tile_area::mapbase#3 vera_tile_area::mapbase#1 vera_tile_area::mapbase#0 ] -reg byte y [ vera_tile_area::c#2 vera_tile_area::c#1 ] -zp[2]:29 [ printf_str::s#9 printf_str::s#10 printf_str::s#0 memcpy_to_vram::s#2 memcpy_to_vram::s#1 ] -reg byte x [ insertup::i#2 insertup::i#1 ] -zp[1]:14 [ conio_screen_width ] -zp[1]:32 [ conio_screen_height ] -zp[1]:28 [ conio_screen_layer ] -zp[2]:70 [ conio_width ] -zp[2]:38 [ conio_height ] -zp[1]:23 [ conio_rowshift ] -zp[2]:24 [ conio_rowskip ] -zp[1]:37 [ cputc::c#0 vera_tile_area::y#3 vera_tile_area::y#2 vera_tile_area::y#1 ] -reg byte a [ vera_layer_get_color::return#3 ] -reg byte x [ cputc::color#0 ] -reg byte a [ cputc::$15 ] -reg byte a [ cputc::$2 ] -reg byte a [ cputc::$4 ] -reg byte a [ cputc::$5 ] -reg byte a [ cputc::$6 ] -reg byte a [ cputc::scroll_enable#0 ] -reg byte a [ kbhit::return#2 ] -reg byte a [ main::$25 ] -reg byte a [ screensize::hscale#0 ] -reg byte a [ screensize::$1 ] -reg byte a [ screensize::vscale#0 ] -reg byte a [ screensize::$3 ] -reg byte x [ vera_layer_get_mapbase_bank::layer#0 ] -reg byte a [ vera_layer_get_mapbase_bank::return#2 ] -zp[1]:86 [ CONIO_SCREEN_BANK#11 ] -reg byte a [ vera_layer_get_mapbase_offset::layer#0 ] -zp[2]:87 [ CONIO_SCREEN_TEXT#13 ] -reg byte a [ screenlayer::vera_layer_get_width1_layer#0 ] -reg byte a [ screenlayer::vera_layer_get_width1_$2 ] -reg byte a [ screenlayer::vera_layer_get_width1_$0 ] -reg byte a [ screenlayer::vera_layer_get_width1_$1 ] -reg byte a [ screenlayer::vera_layer_get_width1_$3 ] -reg byte x [ vera_layer_get_rowshift::layer#0 ] -reg byte a [ vera_layer_get_rowshift::return#2 ] -reg byte a [ screenlayer::$3 ] -reg byte a [ vera_layer_get_rowskip::layer#0 ] -reg byte a [ screenlayer::vera_layer_get_height1_layer#0 ] -reg byte a [ screenlayer::vera_layer_get_height1_$2 ] -reg byte a [ screenlayer::vera_layer_get_height1_$0 ] -reg byte a [ screenlayer::vera_layer_get_height1_$1 ] -reg byte a [ screenlayer::vera_layer_get_height1_$3 ] -reg byte a [ vera_layer_set_mapbase::$0 ] -zp[2]:15 [ gotoxy::$6 gotoxy::line_offset#0 screenlayer::vera_layer_get_width1_return#0 screenlayer::vera_layer_get_width1_return#1 screenlayer::$2 vera_layer_get_mapbase_offset::return#2 vera_layer_get_mapbase_offset::return#0 vera_layer_mode_tile::mapwidth#10 ] -reg byte a [ gotoxy::$5 ] -reg byte a [ vera_layer_get_color::$3 ] -reg byte a [ vera_layer_get_color::$0 ] -reg byte a [ vera_layer_get_color::$1 ] -reg byte a [ cputln::$2 ] -reg byte a [ cputln::$3 ] -reg byte x [ vera_layer_get_backcolor::layer#0 ] -reg byte a [ vera_layer_get_backcolor::return#2 ] -reg byte a [ clrscr::$0 ] -zp[1]:83 [ clrscr::$1 ] -reg byte x [ vera_layer_get_textcolor::layer#0 ] -reg byte a [ vera_layer_get_textcolor::return#2 ] -reg byte a [ clrscr::$2 ] -zp[1]:31 [ clrscr::color#0 vera_tile_area::h#4 ] -reg byte a [ clrscr::$9 ] -reg byte a [ clrscr::$5 ] -reg byte a [ clrscr::$6 ] -reg byte a [ clrscr::$7 ] -reg byte a [ vera_layer_mode_tile::$14 ] -reg byte a [ vera_layer_set_config::layer#0 ] -reg byte x [ vera_layer_set_config::config#0 ] -zp[2]:55 [ vera_layer_mode_tile::$1 vera_layer_get_rowskip::return#2 screenlayer::$4 vera_layer_get_rowskip::return#0 ] -zp[1]:61 [ vera_layer_mode_tile::$17 ] -reg byte a [ vera_layer_mode_tile::$2 ] -zp[1]:60 [ vera_layer_mode_tile::$18 ] -zp[4]:47 [ vera_layer_mode_tile::mapbase_address#0 ] -reg byte x [ vera_layer_mode_tile::mapbase#0 ] -zp[2]:45 [ vera_layer_mode_tile::$6 screenlayer::vera_layer_get_height1_config#0 ] -reg byte a [ vera_layer_mode_tile::$7 ] -zp[4]:51 [ vera_layer_mode_tile::tilebase_address#0 ] -reg byte a [ vera_layer_mode_tile::tilebase#0 ] -reg byte a [ vera_layer_set_tilebase::layer#0 ] -reg byte x [ vera_layer_set_tilebase::tilebase#0 ] -reg byte a [ vera_layer_mode_tile::$13 ] -reg byte a [ vera_layer_mode_tile::$12 ] -reg byte a [ vera_layer_mode_tile::$11 ] -reg byte a [ memcpy_to_vram::$0 ] -reg byte a [ memcpy_to_vram::$1 ] -zp[1]:42 [ vera_tile_area::shift#0 ] -zp[2]:8 [ vera_tile_area::rowskip#0 cputc::conio_addr#0 cputc::conio_addr#1 cputln::temp#0 cputln::temp#1 vera_layer_get_color::addr#0 ] -zp[1]:40 [ vera_tile_area::hflip#0 ] -zp[1]:26 [ vera_tile_area::vflip#0 vera_tile_area::index_h#2 ] -zp[1]:27 [ vera_tile_area::index_l#0 ] -reg byte a [ vera_tile_area::index_h#0 ] -reg byte a [ vera_tile_area::index_h#1 ] -zp[2]:2 [ vera_tile_area::$10 vera_tile_area::$4 cputc::$16 memcpy_in_vram::i#2 memcpy_in_vram::i#1 clearline::c#2 clearline::c#1 memcpy_to_vram::vdest#2 memcpy_to_vram::vdest#1 clrscr::line_text#2 clrscr::line_text#1 clrscr::line_text#0 ] -reg byte a [ vera_tile_area::$5 ] -reg byte a [ vera_tile_area::vera_vram_address01_$0 ] -reg byte a [ vera_tile_area::vera_vram_address01_$1 ] -reg byte a [ vera_tile_area::vera_vram_address01_$2 ] -reg byte a [ vera_tile_area::vera_vram_address01_$3 ] -reg byte a [ printf_str::c#1 ] -zp[1]:58 [ kbhit::ch ] -reg byte a [ kbhit::return#0 ] -reg byte a [ kbhit::return#1 ] -zp[2]:43 [ vera_layer_set_text_color_mode::addr#0 screenlayer::vera_layer_get_height1_return#0 screenlayer::vera_layer_get_height1_return#1 screenlayer::$5 ] -reg byte a [ vera_layer_get_mapbase_bank::return#0 ] -reg byte a [ vera_layer_get_mapbase_offset::$0 ] -reg byte a [ vera_layer_get_rowshift::return#0 ] -reg byte a [ vera_layer_get_rowskip::$0 ] -reg byte a [ vera_layer_get_backcolor::return#0 ] -reg byte a [ vera_layer_get_textcolor::return#0 ] -reg byte a [ vera_layer_set_config::$0 ] -reg byte a [ vera_layer_set_tilebase::$0 ] -zp[2]:33 [ vera_layer_set_tilebase::addr#0 vera_layer_set_config::addr#0 vera_layer_set_mapbase::addr#0 screenlayer::vera_layer_get_width1_config#0 ] -zp[1]:13 [ insertup::cy#0 vera_tile_area::w#9 ] -zp[1]:12 [ insertup::width#0 vera_tile_area::r#2 vera_tile_area::r#1 ] -reg byte a [ insertup::$3 ] -zp[2]:6 [ insertup::line#0 insertup::start#0 memcpy_in_vram::dest#0 ] -zp[2]:4 [ memcpy_in_vram::num#0 ] -reg byte a [ clearline::$5 ] -zp[2]:10 [ clearline::addr#0 memcpy_in_vram::src#0 ] -reg byte a [ clearline::$1 ] -reg byte a [ clearline::$2 ] -reg byte a [ vera_layer_get_color::return#4 ] -reg byte x [ clearline::color#0 ] -reg byte a [ memcpy_in_vram::$0 ] -reg byte a [ memcpy_in_vram::$1 ] -reg byte a [ memcpy_in_vram::$3 ] -reg byte a [ memcpy_in_vram::$4 ] diff --git a/src/test/ref/examples/helloworld/helloworld.log b/src/test/ref/examples/helloworld/helloworld.log index 06f0e6a9a..b5aa40ebc 100644 --- a/src/test/ref/examples/helloworld/helloworld.log +++ b/src/test/ref/examples/helloworld/helloworld.log @@ -12,6 +12,8 @@ Eliminating unused variable with no statement memcpy::$0 Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement gotoxy::$4 Eliminating unused variable with no statement printf_buffer +Eliminating unused variable with no statement __snprintf_capacity +Eliminating unused variable with no statement __snprintf_size Eliminating unused variable with no statement main::$0 Calling convention STACK_CALL adding prepare/execute/finalize for call *printf_str::putc printf_str::c Calling convention STACK_CALL replacing param(cputc::c) with stackidx(char,cputc::OFFSET_STACK_C) diff --git a/src/test/ref/examples/mega65/dypp65.log b/src/test/ref/examples/mega65/dypp65.log index 164eb0c8e..f96c42980 100644 --- a/src/test/ref/examples/mega65/dypp65.log +++ b/src/test/ref/examples/mega65/dypp65.log @@ -42,6 +42,7 @@ Setting inferred volatile on symbol affected by address-of: memoryRemap256M::yVa Setting inferred volatile on symbol affected by address-of: memoryRemap256M::zVal in asm { ldalMb ldx#$0f ldyuMb ldz#$0f map ldaaVal ldxxVal ldyyVal ldzzVal map eom } Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) Inlined call call SEI +Inlined call call __init Eliminating unused variable with no statement memoryRemap::$0 Eliminating unused variable with no statement memoryRemap::$4 Eliminating unused variable with no statement memoryRemap::$5 @@ -129,7 +130,7 @@ memset_dma256::@return: scope:[memset_dma256] from memset_dma256 to:@return void main() -main: scope:[main] from __start +main: scope:[main] from __start::@1 to:main::SEI1 main::SEI1: scope:[main] from main asm { sei } @@ -276,11 +277,15 @@ main::@return: scope:[main] from void __start() __start: scope:[__start] from - call main + to:__start::__init1 +__start::__init1: scope:[__start] from __start to:__start::@1 -__start::@1: scope:[__start] from __start +__start::@1: scope:[__start] from __start::__init1 + call main + to:__start::@2 +__start::@2: scope:[__start] from __start::@1 to:__start::@return -__start::@return: scope:[__start] from __start::@1 +__start::@return: scope:[__start] from __start::@2 return to:@return @@ -756,7 +761,9 @@ Eliminating unused constant OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start +Removing unused procedure block __start::__init1 Removing unused procedure block __start::@1 +Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Constant right-side identified [0] memoryRemap::aVal = byte0 memoryRemap::lowerPageOffset#0 diff --git a/src/test/ref/examples/mega65/helloworld-mega65.log b/src/test/ref/examples/mega65/helloworld-mega65.log index f4fcca264..70d7a8b67 100644 --- a/src/test/ref/examples/mega65/helloworld-mega65.log +++ b/src/test/ref/examples/mega65/helloworld-mega65.log @@ -30,6 +30,8 @@ Eliminating unused variable with no statement memoryRemap::$5 Eliminating unused variable with no statement memoryRemap::$9 Eliminating unused variable with no statement conio_mega65_init::$2 Eliminating unused variable with no statement printf_buffer +Eliminating unused variable with no statement __snprintf_capacity +Eliminating unused variable with no statement __snprintf_size Eliminating unused variable with no statement main::$0 Calling convention STACK_CALL adding prepare/execute/finalize for call *printf_str::putc printf_str::c Calling convention STACK_CALL replacing param(cputc::c) with stackidx(char,cputc::OFFSET_STACK_C) diff --git a/src/test/ref/examples/memfast/memfast.asm b/src/test/ref/examples/memfast/memfast.asm new file mode 100644 index 000000000..723a2de0a --- /dev/null +++ b/src/test/ref/examples/memfast/memfast.asm @@ -0,0 +1,170 @@ +/** + * @file memfast.c + * @author Sven Van de Velde (sven.van.de.velde@telenet.be) + * @brief Demonstration of functions memcpy_fast and memset_fast + * for 8 bit architectures. + * @version 0.1 + * @date 2023-04-14 + * + * @copyright Copyright (c) 2023 + * + */ + // Commodore 64 PRG executable file +.file [name="memfast.prg", type="prg", segments="Program"] +.segmentdef Program [segments="Basic, Code, Data"] +.segmentdef Basic [start=$0801] +.segmentdef Code [start=$80d] +.segmentdef Data [startAfter="Code"] +.segment Basic +:BasicUpstart(__start) + .const LIGHT_BLUE = $e + /// Color Ram + .label COLORRAM = $d800 + /// Default address of screen character matrix + .label DEFAULT_SCREEN = $400 +.segment Code +__start: { + // #pragma constructor_for(conio_c64_init, cputc, clrscr, cscroll) + jsr conio_c64_init + jsr main + rts +} +// Set initial cursor position +conio_c64_init: { + // Position cursor at current line + .label BASIC_CURSOR_LINE = $d6 + // char line = *BASIC_CURSOR_LINE + lda.z BASIC_CURSOR_LINE + // if(line>=CONIO_HEIGHT) + cmp #$19 + bcc __b1 + lda #$19-1 + __b1: + // gotoxy(0, line) + jsr gotoxy + // } + rts +} +main: { + .label screen = $400 + .label bottom = $400+$28*$c + // *((char*)0xd018) = 0x17 + // Show mixed chars on screen + lda #$17 + sta $d018 + // clrscr() + // Clear screen + jsr clrscr + ldy #0 + __b1: + ldx #<$100 + memset_fast1___b1: + // *(destination+num) = c + tya + sta screen,x + // num--; + dex + // while(num) + cpx #0 + bne memset_fast1___b1 + // memcpy_fast(bottom, screen, 256) + // 256 will be truncated to 0, which will copy 256 bytes! + jsr memcpy_fast + // for(char i:0..255) + iny + cpy #0 + bne __b1 + // } + rts +} +// Set the cursor to the specified position +// void gotoxy(char x, __register(A) char y) +gotoxy: { + // if(y>CONIO_HEIGHT) + cmp #$19+1 + // } + rts +} +// clears the screen and moves the cursor to the upper left-hand corner of the screen. +clrscr: { + .label line_text = 4 + .label line_cols = 2 + lda #COLORRAM + sta.z line_cols+1 + lda #DEFAULT_SCREEN + sta.z line_text+1 + ldx #0 + __b1: + // for( char l=0;l $19 + gotoxy::$1 = ! gotoxy::$0 + if(gotoxy::$1) goto gotoxy::@1 + to:gotoxy::@2 +gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@2 + gotoxy::x#2 = phi( gotoxy/gotoxy::x#3, gotoxy::@2/gotoxy::x#4 ) + gotoxy::$2 = gotoxy::x#2 >= $28 + gotoxy::$3 = ! gotoxy::$2 + if(gotoxy::$3) goto gotoxy::@return + to:gotoxy::@3 +gotoxy::@2: scope:[gotoxy] from gotoxy + gotoxy::x#4 = phi( gotoxy/gotoxy::x#3 ) + gotoxy::y#0 = 0 + to:gotoxy::@1 +gotoxy::@3: scope:[gotoxy] from gotoxy::@1 + gotoxy::x#0 = 0 + to:gotoxy::@return +gotoxy::@return: scope:[gotoxy] from gotoxy::@1 gotoxy::@3 + return + to:@return + +char * memcpy_fast(char *destination , char *source , char num) +memcpy_fast: scope:[memcpy_fast] from main::@2 + memcpy_fast::source#2 = phi( main::@2/memcpy_fast::source#0 ) + memcpy_fast::num#3 = phi( main::@2/memcpy_fast::num#1 ) + memcpy_fast::destination#3 = phi( main::@2/memcpy_fast::destination#0 ) + to:memcpy_fast::@1 +memcpy_fast::@1: scope:[memcpy_fast] from memcpy_fast memcpy_fast::@1 + memcpy_fast::source#1 = phi( memcpy_fast/memcpy_fast::source#2, memcpy_fast::@1/memcpy_fast::source#1 ) + memcpy_fast::num#2 = phi( memcpy_fast/memcpy_fast::num#3, memcpy_fast::@1/memcpy_fast::num#0 ) + memcpy_fast::destination#1 = phi( memcpy_fast/memcpy_fast::destination#3, memcpy_fast::@1/memcpy_fast::destination#1 ) + memcpy_fast::$0 = memcpy_fast::destination#1 + memcpy_fast::num#2 + memcpy_fast::$1 = memcpy_fast::source#1 + memcpy_fast::num#2 + *memcpy_fast::$0 = *memcpy_fast::$1 + memcpy_fast::num#0 = -- memcpy_fast::num#2 + memcpy_fast::$2 = 0 != memcpy_fast::num#0 + if(memcpy_fast::$2) goto memcpy_fast::@1 + to:memcpy_fast::@2 +memcpy_fast::@2: scope:[memcpy_fast] from memcpy_fast::@1 + memcpy_fast::destination#2 = phi( memcpy_fast::@1/memcpy_fast::destination#1 ) + memcpy_fast::return#0 = memcpy_fast::destination#2 + to:memcpy_fast::@return +memcpy_fast::@return: scope:[memcpy_fast] from memcpy_fast::@2 + memcpy_fast::return#3 = phi( memcpy_fast::@2/memcpy_fast::return#0 ) + memcpy_fast::return#1 = memcpy_fast::return#3 + return + to:@return + +void conio_c64_init() +conio_c64_init: scope:[conio_c64_init] from __start::__init1 + conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE + conio_c64_init::$0 = conio_c64_init::line#0 >= $19 + conio_c64_init::$1 = ! conio_c64_init::$0 + if(conio_c64_init::$1) goto conio_c64_init::@1 + to:conio_c64_init::@2 +conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 + conio_c64_init::line#2 = phi( conio_c64_init/conio_c64_init::line#0, conio_c64_init::@2/conio_c64_init::line#1 ) + gotoxy::x#1 = 0 + gotoxy::y#1 = conio_c64_init::line#2 + call gotoxy + to:conio_c64_init::@3 +conio_c64_init::@3: scope:[conio_c64_init] from conio_c64_init::@1 + to:conio_c64_init::@return +conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init + conio_c64_init::line#1 = $19-1 + to:conio_c64_init::@1 +conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@3 + return + to:@return + +void main() +main: scope:[main] from __start::@1 + *((char *)$d018) = $17 + call clrscr + to:main::@3 +main::@3: scope:[main] from main + main::i#0 = 0 + to:main::@1 +main::@1: scope:[main] from main::@3 main::@4 + main::i#2 = phi( main::@3/main::i#0, main::@4/main::i#1 ) + main::memset_fast1_destination#0 = main::screen + main::memset_fast1_c#0 = main::i#2 + main::memset_fast1_num#0 = $100 + to:main::memset_fast1 +main::memset_fast1: scope:[main] from main::@1 + main::i#6 = phi( main::@1/main::i#2 ) + main::memset_fast1_c#2 = phi( main::@1/main::memset_fast1_c#0 ) + main::memset_fast1_num#3 = phi( main::@1/main::memset_fast1_num#0 ) + main::memset_fast1_destination#2 = phi( main::@1/main::memset_fast1_destination#0 ) + to:main::memset_fast1_@1 +main::memset_fast1_@1: scope:[main] from main::memset_fast1 main::memset_fast1_@1 + main::i#5 = phi( main::memset_fast1/main::i#6, main::memset_fast1_@1/main::i#5 ) + main::memset_fast1_c#1 = phi( main::memset_fast1/main::memset_fast1_c#2, main::memset_fast1_@1/main::memset_fast1_c#1 ) + main::memset_fast1_num#2 = phi( main::memset_fast1/main::memset_fast1_num#3, main::memset_fast1_@1/main::memset_fast1_num#1 ) + main::memset_fast1_destination#1 = phi( main::memset_fast1/main::memset_fast1_destination#2, main::memset_fast1_@1/main::memset_fast1_destination#1 ) + main::memset_fast1_$0 = main::memset_fast1_destination#1 + main::memset_fast1_num#2 + *main::memset_fast1_$0 = main::memset_fast1_c#1 + main::memset_fast1_num#1 = -- main::memset_fast1_num#2 + main::memset_fast1_$1 = 0 != main::memset_fast1_num#1 + if(main::memset_fast1_$1) goto main::memset_fast1_@1 + to:main::@2 +main::@2: scope:[main] from main::memset_fast1_@1 + main::i#4 = phi( main::memset_fast1_@1/main::i#5 ) + memcpy_fast::destination#0 = main::bottom + memcpy_fast::source#0 = main::screen + memcpy_fast::num#1 = $100 + call memcpy_fast + memcpy_fast::return#2 = memcpy_fast::return#1 + to:main::@4 +main::@4: scope:[main] from main::@2 + main::i#3 = phi( main::@2/main::i#4 ) + main::i#1 = main::i#3 + rangenext(0,$ff) + main::$3 = main::i#1 != rangelast(0,$ff) + if(main::$3) goto main::@1 + to:main::@return +main::@return: scope:[main] from main::@4 + return + to:@return + +void __start() +__start: scope:[__start] from + to:__start::__init1 +__start::__init1: scope:[__start] from __start + conio_textcolor = LIGHT_BLUE + call conio_c64_init + to:__start::@2 +__start::@2: scope:[__start] from __start::__init1 + to:__start::@1 +__start::@1: scope:[__start] from __start::@2 + call main + to:__start::@3 +__start::@3: scope:[__start] from __start::@1 + to:__start::@return +__start::@return: scope:[__start] from __start::@3 + return + to:@return + +SYMBOL TABLE SSA +__constant char * const COLORRAM = (char *)$d800 +__constant char * const DEFAULT_SCREEN = (char *)$400 +__constant const char LIGHT_BLUE = $e +void __start() +void clrscr() +bool clrscr::$0 +bool clrscr::$1 +char clrscr::c +char clrscr::c#0 +char clrscr::c#1 +char clrscr::c#2 +char clrscr::c#3 +char clrscr::l +char clrscr::l#0 +char clrscr::l#1 +char clrscr::l#2 +char clrscr::l#3 +char clrscr::l#4 +char clrscr::l#5 +char clrscr::l#6 +char *clrscr::line_cols +char *clrscr::line_cols#0 +char *clrscr::line_cols#1 +char *clrscr::line_cols#2 +char *clrscr::line_cols#3 +char *clrscr::line_cols#4 +char *clrscr::line_cols#5 +char *clrscr::line_cols#6 +char *clrscr::line_text +char *clrscr::line_text#0 +char *clrscr::line_text#1 +char *clrscr::line_text#2 +char *clrscr::line_text#3 +char *clrscr::line_text#4 +char *clrscr::line_text#5 +char *clrscr::line_text#6 +void conio_c64_init() +bool conio_c64_init::$0 +bool conio_c64_init::$1 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *)$d6 +char conio_c64_init::line +char conio_c64_init::line#0 +char conio_c64_init::line#1 +char conio_c64_init::line#2 +__loadstore char conio_textcolor +void gotoxy(char x , char y) +bool gotoxy::$0 +bool gotoxy::$1 +bool gotoxy::$2 +bool gotoxy::$3 +char gotoxy::x +char gotoxy::x#0 +char gotoxy::x#1 +char gotoxy::x#2 +char gotoxy::x#3 +char gotoxy::x#4 +char gotoxy::y +char gotoxy::y#0 +char gotoxy::y#1 +char gotoxy::y#2 +void main() +bool main::$3 +__constant const char *main::bottom = (char *)$400+$28*$c +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char *main::memset_fast1_$0 +bool main::memset_fast1_$1 +char main::memset_fast1_c +char main::memset_fast1_c#0 +char main::memset_fast1_c#1 +char main::memset_fast1_c#2 +char *main::memset_fast1_destination +char *main::memset_fast1_destination#0 +char *main::memset_fast1_destination#1 +char *main::memset_fast1_destination#2 +char main::memset_fast1_num +char main::memset_fast1_num#0 +char main::memset_fast1_num#1 +char main::memset_fast1_num#2 +char main::memset_fast1_num#3 +__constant const char *main::screen = (char *)$400 +char * memcpy_fast(char *destination , char *source , char num) +char *memcpy_fast::$0 +char *memcpy_fast::$1 +bool memcpy_fast::$2 +char *memcpy_fast::destination +char *memcpy_fast::destination#0 +char *memcpy_fast::destination#1 +char *memcpy_fast::destination#2 +char *memcpy_fast::destination#3 +char memcpy_fast::num +char memcpy_fast::num#0 +char memcpy_fast::num#1 +char memcpy_fast::num#2 +char memcpy_fast::num#3 +char *memcpy_fast::return +char *memcpy_fast::return#0 +char *memcpy_fast::return#1 +char *memcpy_fast::return#2 +char *memcpy_fast::return#3 +char *memcpy_fast::source +char *memcpy_fast::source#0 +char *memcpy_fast::source#1 +char *memcpy_fast::source#2 + +Adding number conversion cast (unumber) $28*$c in +Adding number conversion cast (unumber) $19 in clrscr::$0 = clrscr::l#2 < $19 +Adding number conversion cast (unumber) $28 in clrscr::$1 = clrscr::c#2 < $28 +Adding number conversion cast (unumber) $28 in clrscr::line_text#1 = clrscr::line_text#3 + $28 +Adding number conversion cast (unumber) $28 in clrscr::line_cols#1 = clrscr::line_cols#3 + $28 +Adding number conversion cast (unumber) $19 in gotoxy::$0 = gotoxy::y#2 > $19 +Adding number conversion cast (unumber) $28 in gotoxy::$2 = gotoxy::x#2 >= $28 +Adding number conversion cast (unumber) 0 in gotoxy::y#0 = 0 +Adding number conversion cast (unumber) 0 in gotoxy::x#0 = 0 +Adding number conversion cast (unumber) 0 in memcpy_fast::$2 = 0 != memcpy_fast::num#0 +Adding number conversion cast (unumber) $19 in conio_c64_init::$0 = conio_c64_init::line#0 >= $19 +Adding number conversion cast (unumber) 0 in gotoxy::x#1 = 0 +Adding number conversion cast (unumber) $19-1 in conio_c64_init::line#1 = $19-1 +Adding number conversion cast (unumber) $17 in *((char *)$d018) = $17 +Adding number conversion cast (unumber) $100 in main::memset_fast1_num#0 = $100 +Adding number conversion cast (unumber) 0 in main::memset_fast1_$1 = 0 != main::memset_fast1_num#1 +Adding number conversion cast (unumber) $100 in memcpy_fast::num#1 = $100 +Successful SSA optimization PassNAddNumberTypeConversions +Inlining cast gotoxy::y#0 = (unumber)0 +Inlining cast gotoxy::x#0 = (unumber)0 +Inlining cast gotoxy::x#1 = (unumber)0 +Inlining cast conio_c64_init::line#1 = (unumber)$19-1 +Inlining cast *((char *)$d018) = (unumber)$17 +Inlining cast main::memset_fast1_num#0 = (unumber)$100 +Inlining cast memcpy_fast::num#1 = (unumber)$100 +Successful SSA optimization Pass2InlineCast +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 214 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant integer cast $19 +Simplifying constant integer cast $28 +Simplifying constant integer cast $28 +Simplifying constant integer cast $28 +Simplifying constant integer cast $19 +Simplifying constant integer cast $28 +Simplifying constant integer cast 0 +Simplifying constant integer cast 0 +Simplifying constant integer cast 0 +Simplifying constant integer cast $19 +Simplifying constant integer cast 0 +Simplifying constant integer cast $17 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant integer cast $100 +Simplifying constant integer cast 0 +Simplifying constant integer cast $100 +Successful SSA optimization PassNCastSimplification +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $17 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $100 +Successful SSA optimization PassNFinalizeNumberTypeConversions +Inversing boolean not [22] gotoxy::$1 = gotoxy::y#2 <= $19 from [21] gotoxy::$0 = gotoxy::y#2 > $19 +Inversing boolean not [26] gotoxy::$3 = gotoxy::x#2 < $28 from [25] gotoxy::$2 = gotoxy::x#2 >= $28 +Inversing boolean not [47] conio_c64_init::$1 = conio_c64_init::line#0 < $19 from [46] conio_c64_init::$0 = conio_c64_init::line#0 >= $19 +Successful SSA optimization Pass2UnaryNotSimplification +Alias clrscr::line_text#5 = clrscr::line_text#6 +Alias clrscr::line_cols#5 = clrscr::line_cols#6 +Alias clrscr::l#2 = clrscr::l#5 +Alias clrscr::line_text#2 = clrscr::line_text#4 clrscr::line_text#3 +Alias clrscr::c#2 = clrscr::c#3 +Alias clrscr::line_cols#2 = clrscr::line_cols#4 clrscr::line_cols#3 +Alias clrscr::l#3 = clrscr::l#6 clrscr::l#4 +Alias gotoxy::x#3 = gotoxy::x#4 +Alias memcpy_fast::return#0 = memcpy_fast::destination#2 memcpy_fast::destination#1 memcpy_fast::return#3 memcpy_fast::return#1 +Alias main::memset_fast1_c#0 = main::i#2 main::memset_fast1_c#2 main::i#6 +Alias main::memset_fast1_destination#0 = main::memset_fast1_destination#2 +Alias main::memset_fast1_num#0 = main::memset_fast1_num#3 +Alias main::i#3 = main::i#4 main::i#5 +Successful SSA optimization Pass2AliasElimination +Alias gotoxy::x#2 = gotoxy::x#3 +Successful SSA optimization Pass2AliasElimination +Identical Phi Values clrscr::line_text#2 clrscr::line_text#5 +Identical Phi Values clrscr::line_cols#2 clrscr::line_cols#5 +Identical Phi Values clrscr::l#3 clrscr::l#2 +Identical Phi Values gotoxy::y#2 gotoxy::y#1 +Identical Phi Values gotoxy::x#2 gotoxy::x#1 +Identical Phi Values memcpy_fast::destination#3 memcpy_fast::destination#0 +Identical Phi Values memcpy_fast::num#3 memcpy_fast::num#1 +Identical Phi Values memcpy_fast::source#2 memcpy_fast::source#0 +Identical Phi Values memcpy_fast::return#0 memcpy_fast::destination#3 +Identical Phi Values memcpy_fast::source#1 memcpy_fast::source#2 +Identical Phi Values main::memset_fast1_destination#1 main::memset_fast1_destination#0 +Identical Phi Values main::memset_fast1_c#1 main::memset_fast1_c#0 +Identical Phi Values main::i#3 main::memset_fast1_c#0 +Successful SSA optimization Pass2IdenticalPhiElimination +Simple Condition clrscr::$0 [5] if(clrscr::l#2<$19) goto clrscr::@2 +Simple Condition clrscr::$1 [9] if(clrscr::c#2<$28) goto clrscr::@4 +Simple Condition gotoxy::$1 [19] if(gotoxy::y#1<=$19) goto gotoxy::@1 +Simple Condition gotoxy::$3 [21] if(gotoxy::x#1<$28) goto gotoxy::@return +Simple Condition memcpy_fast::$2 [32] if(0!=memcpy_fast::num#0) goto memcpy_fast::@1 +Simple Condition conio_c64_init::$1 [36] if(conio_c64_init::line#0<$19) goto conio_c64_init::@1 +Simple Condition main::memset_fast1_$1 [54] if(0!=main::memset_fast1_num#1) goto main::memset_fast1_@1 +Simple Condition main::$3 [62] if(main::i#1!=rangelast(0,$ff)) goto main::@1 +Successful SSA optimization Pass2ConditionalJumpSimplification +Constant right-side identified [41] conio_c64_init::line#1 = (unumber)$19-1 +Successful SSA optimization Pass2ConstantRValueConsolidation +Constant clrscr::line_text#0 = DEFAULT_SCREEN +Constant clrscr::line_cols#0 = COLORRAM +Constant clrscr::l#0 = 0 +Constant clrscr::c#0 = 0 +Constant gotoxy::y#0 = 0 +Constant gotoxy::x#0 = 0 +Constant gotoxy::x#1 = 0 +Constant conio_c64_init::line#1 = (unumber)$19-1 +Constant main::i#0 = 0 +Constant main::memset_fast1_destination#0 = main::screen +Constant main::memset_fast1_num#0 = $100 +Constant memcpy_fast::destination#0 = main::bottom +Constant memcpy_fast::source#0 = main::screen +Constant memcpy_fast::num#1 = $100 +Constant conio_textcolor = LIGHT_BLUE +Successful SSA optimization Pass2ConstantIdentification +Constant memcpy_fast::return#2 = memcpy_fast::destination#0 +Successful SSA optimization Pass2ConstantIdentification +if() condition always true - replacing block destination [21] if(gotoxy::x#1<$28) goto gotoxy::@return +Successful SSA optimization Pass2ConstantIfs +Resolved ranged next value [60] main::i#1 = ++ main::memset_fast1_c#0 to ++ +Resolved ranged comparison value [62] if(main::i#1!=rangelast(0,$ff)) goto main::@1 to 0 +Rewriting conditional comparison [19] if(gotoxy::y#1<=$19) goto gotoxy::@1 +Converting *(pointer+n) to pointer[n] [29] *memcpy_fast::$0 = *memcpy_fast::$1 -- memcpy_fast::source#0[memcpy_fast::num#2] +Converting *(pointer+n) to pointer[n] [29] *memcpy_fast::$0 = memcpy_fast::source#0[memcpy_fast::num#2] -- memcpy_fast::destination#0[memcpy_fast::num#2] +Converting *(pointer+n) to pointer[n] [51] *main::memset_fast1_$0 = main::memset_fast1_c#0 -- main::memset_fast1_destination#0[main::memset_fast1_num#2] +Successful SSA optimization Pass2InlineDerefIdx +Removing unused block gotoxy::@3 +Successful SSA optimization Pass2EliminateUnusedBlocks +Eliminating unused variable memcpy_fast::$0 and assignment [14] memcpy_fast::$0 = memcpy_fast::destination#0 + memcpy_fast::num#2 +Eliminating unused variable memcpy_fast::$1 and assignment [15] memcpy_fast::$1 = memcpy_fast::source#0 + memcpy_fast::num#2 +Eliminating unused variable main::memset_fast1_$0 and assignment [30] main::memset_fast1_$0 = main::memset_fast1_destination#0 + main::memset_fast1_num#2 +Eliminating unused constant gotoxy::y#0 +Eliminating unused constant gotoxy::x#0 +Eliminating unused constant gotoxy::x#1 +Eliminating unused constant memcpy_fast::return#2 +Successful SSA optimization PassNEliminateUnusedVars +Adding number conversion cast (unumber) $19+1 in if(gotoxy::y#1<$19+1) goto gotoxy::@1 +Adding number conversion cast (unumber) 1 in if(gotoxy::y#1<(unumber)$19+1) goto gotoxy::@1 +Adding number conversion cast (unumber) 0 in if(main::i#1!=0) goto main::@1 +Successful SSA optimization PassNAddNumberTypeConversions +Simplifying constant integer cast $19+(unumber)1 +Simplifying constant integer cast 1 +Simplifying constant integer cast 0 +Successful SSA optimization PassNCastSimplification +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Successful SSA optimization PassNFinalizeNumberTypeConversions +Inlining constant with var siblings clrscr::line_text#0 +Inlining constant with var siblings clrscr::line_cols#0 +Inlining constant with var siblings clrscr::l#0 +Inlining constant with var siblings clrscr::c#0 +Inlining constant with var siblings memcpy_fast::num#1 +Inlining constant with var siblings conio_c64_init::line#1 +Inlining constant with var siblings main::i#0 +Inlining constant with var siblings main::memset_fast1_num#0 +Constant inlined memcpy_fast::destination#0 = main::bottom +Constant inlined memcpy_fast::source#0 = main::screen +Constant inlined conio_c64_init::line#1 = (char)$19-1 +Constant inlined main::memset_fast1_num#0 = $100 +Constant inlined main::memset_fast1_destination#0 = main::screen +Constant inlined clrscr::line_text#0 = DEFAULT_SCREEN +Constant inlined main::i#0 = 0 +Constant inlined conio_textcolor = LIGHT_BLUE +Constant inlined memcpy_fast::num#1 = $100 +Constant inlined clrscr::l#0 = 0 +Constant inlined clrscr::c#0 = 0 +Constant inlined clrscr::line_cols#0 = COLORRAM +Successful SSA optimization Pass2ConstantInlining +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $c +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 1 +Successful SSA optimization PassNFinalizeNumberTypeConversions +Simplifying constant integer cast $19-1 +Successful SSA optimization PassNCastSimplification +Added new block during phi lifting memcpy_fast::@3(between memcpy_fast::@1 and memcpy_fast::@1) +Added new block during phi lifting conio_c64_init::@4(between conio_c64_init and conio_c64_init::@1) +Added new block during phi lifting main::@5(between main::@4 and main::@1) +Added new block during phi lifting main::@6(between main::memset_fast1_@1 and main::memset_fast1_@1) +Adding NOP phi() at start of __start +Adding NOP phi() at start of __start::__init1 +Adding NOP phi() at start of __start::@2 +Adding NOP phi() at start of __start::@1 +Adding NOP phi() at start of __start::@3 +Adding NOP phi() at start of conio_c64_init::@2 +Adding NOP phi() at start of conio_c64_init::@3 +Adding NOP phi() at start of main::@3 +Adding NOP phi() at start of main::memset_fast1 +Adding NOP phi() at start of main::@2 +Adding NOP phi() at start of gotoxy::@2 +Adding NOP phi() at start of gotoxy::@1 +Adding NOP phi() at start of clrscr +Adding NOP phi() at start of clrscr::@2 +Adding NOP phi() at start of memcpy_fast +Adding NOP phi() at start of memcpy_fast::@2 +CALL GRAPH +Calls in [__start] to conio_c64_init:2 main:5 +Calls in [conio_c64_init] to gotoxy:13 +Calls in [main] to clrscr:18 memcpy_fast:27 + +Created 8 initial phi equivalence classes +Coalesced [16] conio_c64_init::line#3 = conio_c64_init::line#0 +Coalesced [31] main::memset_fast1_c#3 = main::i#1 +Coalesced [32] main::memset_fast1_num#4 = main::memset_fast1_num#1 +Coalesced [47] clrscr::l#7 = clrscr::l#1 +Coalesced [48] clrscr::line_text#7 = clrscr::line_text#1 +Coalesced [49] clrscr::line_cols#7 = clrscr::line_cols#1 +Coalesced [53] clrscr::c#4 = clrscr::c#1 +Coalesced [61] memcpy_fast::num#4 = memcpy_fast::num#0 +Coalesced down to 8 phi equivalence classes +Culled Empty Block label __start::@2 +Culled Empty Block label __start::@3 +Culled Empty Block label conio_c64_init::@2 +Culled Empty Block label conio_c64_init::@3 +Culled Empty Block label main::@3 +Culled Empty Block label main::@5 +Culled Empty Block label main::@6 +Culled Empty Block label gotoxy::@1 +Culled Empty Block label clrscr::@2 +Culled Empty Block label memcpy_fast::@2 +Culled Empty Block label memcpy_fast::@3 +Renumbering block clrscr::@3 to clrscr::@2 +Renumbering block clrscr::@4 to clrscr::@3 +Renumbering block clrscr::@5 to clrscr::@4 +Renumbering block gotoxy::@2 to gotoxy::@1 +Renumbering block conio_c64_init::@4 to conio_c64_init::@2 +Renumbering block main::@4 to main::@3 +Adding NOP phi() at start of __start +Adding NOP phi() at start of __start::__init1 +Adding NOP phi() at start of __start::@1 +Adding NOP phi() at start of conio_c64_init::@2 +Adding NOP phi() at start of main::memset_fast1 +Adding NOP phi() at start of main::@2 +Adding NOP phi() at start of gotoxy::@1 +Adding NOP phi() at start of clrscr +Adding NOP phi() at start of memcpy_fast + +FINAL CONTROL FLOW GRAPH + +void __start() +__start: scope:[__start] from + [0] phi() + to:__start::__init1 +__start::__init1: scope:[__start] from __start + [1] phi() + [2] call conio_c64_init + to:__start::@1 +__start::@1: scope:[__start] from __start::__init1 + [3] phi() + [4] call main + to:__start::@return +__start::@return: scope:[__start] from __start::@1 + [5] return + to:@return + +void conio_c64_init() +conio_c64_init: scope:[conio_c64_init] from __start::__init1 + [6] conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE + [7] if(conio_c64_init::line#0<$19) goto conio_c64_init::@2 + to:conio_c64_init::@1 +conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init + [8] phi() + to:conio_c64_init::@1 +conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 + [9] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) + [10] gotoxy::y#1 = conio_c64_init::line#2 + [11] call gotoxy + to:conio_c64_init::@return +conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 + [12] return + to:@return + +void main() +main: scope:[main] from __start::@1 + [13] *((char *) 53272) = $17 + [14] call clrscr + to:main::@1 +main::@1: scope:[main] from main main::@3 + [15] main::memset_fast1_c#0 = phi( main/0, main::@3/main::i#1 ) + to:main::memset_fast1 +main::memset_fast1: scope:[main] from main::@1 + [16] phi() + to:main::memset_fast1_@1 +main::memset_fast1_@1: scope:[main] from main::memset_fast1 main::memset_fast1_@1 + [17] main::memset_fast1_num#2 = phi( main::memset_fast1/$100, main::memset_fast1_@1/main::memset_fast1_num#1 ) + [18] main::screen[main::memset_fast1_num#2] = main::memset_fast1_c#0 + [19] main::memset_fast1_num#1 = -- main::memset_fast1_num#2 + [20] if(0!=main::memset_fast1_num#1) goto main::memset_fast1_@1 + to:main::@2 +main::@2: scope:[main] from main::memset_fast1_@1 + [21] phi() + [22] call memcpy_fast + to:main::@3 +main::@3: scope:[main] from main::@2 + [23] main::i#1 = ++ main::memset_fast1_c#0 + [24] if(main::i#1!=0) goto main::@1 + to:main::@return +main::@return: scope:[main] from main::@3 + [25] return + to:@return + +void gotoxy(char x , char y) +gotoxy: scope:[gotoxy] from conio_c64_init::@1 + [26] if(gotoxy::y#1<$19+1) goto gotoxy::@return + to:gotoxy::@1 +gotoxy::@1: scope:[gotoxy] from gotoxy + [27] phi() + to:gotoxy::@return +gotoxy::@return: scope:[gotoxy] from gotoxy gotoxy::@1 + [28] return + to:@return + +void clrscr() +clrscr: scope:[clrscr] from main + [29] phi() + to:clrscr::@1 +clrscr::@1: scope:[clrscr] from clrscr clrscr::@4 + [30] clrscr::line_cols#5 = phi( clrscr/COLORRAM, clrscr::@4/clrscr::line_cols#1 ) + [30] clrscr::line_text#5 = phi( clrscr/DEFAULT_SCREEN, clrscr::@4/clrscr::line_text#1 ) + [30] clrscr::l#2 = phi( clrscr/0, clrscr::@4/clrscr::l#1 ) + [31] if(clrscr::l#2<$19) goto clrscr::@2 + to:clrscr::@return +clrscr::@return: scope:[clrscr] from clrscr::@1 + [32] return + to:@return +clrscr::@2: scope:[clrscr] from clrscr::@1 clrscr::@3 + [33] clrscr::c#2 = phi( clrscr::@1/0, clrscr::@3/clrscr::c#1 ) + [34] if(clrscr::c#2<$28) goto clrscr::@3 + to:clrscr::@4 +clrscr::@4: scope:[clrscr] from clrscr::@2 + [35] clrscr::line_text#1 = clrscr::line_text#5 + $28 + [36] clrscr::line_cols#1 = clrscr::line_cols#5 + $28 + [37] clrscr::l#1 = ++ clrscr::l#2 + to:clrscr::@1 +clrscr::@3: scope:[clrscr] from clrscr::@2 + [38] clrscr::line_text#5[clrscr::c#2] = ' ' + [39] clrscr::line_cols#5[clrscr::c#2] = LIGHT_BLUE + [40] clrscr::c#1 = ++ clrscr::c#2 + to:clrscr::@2 + +char * memcpy_fast(char *destination , char *source , char num) +memcpy_fast: scope:[memcpy_fast] from main::@2 + [41] phi() + to:memcpy_fast::@1 +memcpy_fast::@1: scope:[memcpy_fast] from memcpy_fast memcpy_fast::@1 + [42] memcpy_fast::num#2 = phi( memcpy_fast/$100, memcpy_fast::@1/memcpy_fast::num#0 ) + [43] main::bottom[memcpy_fast::num#2] = main::screen[memcpy_fast::num#2] + [44] memcpy_fast::num#0 = -- memcpy_fast::num#2 + [45] if(0!=memcpy_fast::num#0) goto memcpy_fast::@1 + to:memcpy_fast::@return +memcpy_fast::@return: scope:[memcpy_fast] from memcpy_fast::@1 + [46] return + to:@return + + +VARIABLE REGISTER WEIGHTS +void __start() +void clrscr() +char clrscr::c +char clrscr::c#1 // 20002.0 +char clrscr::c#2 // 12501.25 +char clrscr::l +char clrscr::l#1 // 2002.0 +char clrscr::l#2 // 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // 1001.0 +char *clrscr::line_cols#5 // 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // 667.3333333333334 +char *clrscr::line_text#5 // 1714.7142857142858 +void conio_c64_init() +char conio_c64_init::line +char conio_c64_init::line#0 // 11.0 +char conio_c64_init::line#2 // 22.0 +void gotoxy(char x , char y) +char gotoxy::x +char gotoxy::y +char gotoxy::y#1 // 112.0 +void main() +char main::i +char main::i#1 // 151.5 +char main::memset_fast1_c +char main::memset_fast1_c#0 // 150.375 +char *main::memset_fast1_destination +char main::memset_fast1_num +char main::memset_fast1_num#1 // 1501.5 +char main::memset_fast1_num#2 // 1501.5 +char * memcpy_fast(char *destination , char *source , char num) +char *memcpy_fast::destination +char memcpy_fast::num +char memcpy_fast::num#0 // 150001.5 +char memcpy_fast::num#2 // 200002.0 +char *memcpy_fast::return +char *memcpy_fast::source + +Initial phi equivalence classes +[ conio_c64_init::line#2 conio_c64_init::line#0 ] +[ main::memset_fast1_c#0 main::i#1 ] +[ main::memset_fast1_num#2 main::memset_fast1_num#1 ] +[ clrscr::l#2 clrscr::l#1 ] +[ clrscr::line_text#5 clrscr::line_text#1 ] +[ clrscr::line_cols#5 clrscr::line_cols#1 ] +[ clrscr::c#2 clrscr::c#1 ] +[ memcpy_fast::num#2 memcpy_fast::num#0 ] +Added variable gotoxy::y#1 to live range equivalence class [ gotoxy::y#1 ] +Complete equivalence classes +[ conio_c64_init::line#2 conio_c64_init::line#0 ] +[ main::memset_fast1_c#0 main::i#1 ] +[ main::memset_fast1_num#2 main::memset_fast1_num#1 ] +[ clrscr::l#2 clrscr::l#1 ] +[ clrscr::line_text#5 clrscr::line_text#1 ] +[ clrscr::line_cols#5 clrscr::line_cols#1 ] +[ clrscr::c#2 clrscr::c#1 ] +[ memcpy_fast::num#2 memcpy_fast::num#0 ] +[ gotoxy::y#1 ] +Allocated zp[1]:2 [ memcpy_fast::num#2 memcpy_fast::num#0 ] +Allocated zp[1]:3 [ clrscr::c#2 clrscr::c#1 ] +Allocated zp[1]:4 [ main::memset_fast1_num#2 main::memset_fast1_num#1 ] +Allocated zp[2]:5 [ clrscr::line_cols#5 clrscr::line_cols#1 ] +Allocated zp[2]:7 [ clrscr::line_text#5 clrscr::line_text#1 ] +Allocated zp[1]:9 [ clrscr::l#2 clrscr::l#1 ] +Allocated zp[1]:10 [ main::memset_fast1_c#0 main::i#1 ] +Allocated zp[1]:11 [ gotoxy::y#1 ] +Allocated zp[1]:12 [ conio_c64_init::line#2 conio_c64_init::line#0 ] +REGISTER UPLIFT POTENTIAL REGISTERS +Statement [13] *((char *) 53272) = $17 [ ] ( main:4 [ ] { } ) always clobbers reg byte a +Statement [35] clrscr::line_text#1 = clrscr::line_text#5 + $28 [ clrscr::l#2 clrscr::line_cols#5 clrscr::line_text#1 ] ( main:4::clrscr:14 [ clrscr::l#2 clrscr::line_cols#5 clrscr::line_text#1 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:9 [ clrscr::l#2 clrscr::l#1 ] +Statement [36] clrscr::line_cols#1 = clrscr::line_cols#5 + $28 [ clrscr::l#2 clrscr::line_text#1 clrscr::line_cols#1 ] ( main:4::clrscr:14 [ clrscr::l#2 clrscr::line_text#1 clrscr::line_cols#1 ] { } ) always clobbers reg byte a +Statement [38] clrscr::line_text#5[clrscr::c#2] = ' ' [ clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] ( main:4::clrscr:14 [ clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:3 [ clrscr::c#2 clrscr::c#1 ] +Statement [39] clrscr::line_cols#5[clrscr::c#2] = LIGHT_BLUE [ clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] ( main:4::clrscr:14 [ clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] { } ) always clobbers reg byte a +Statement [43] main::bottom[memcpy_fast::num#2] = main::screen[memcpy_fast::num#2] [ memcpy_fast::num#2 ] ( main:4::memcpy_fast:22 [ main::memset_fast1_c#0 memcpy_fast::num#2 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:10 [ main::memset_fast1_c#0 main::i#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:2 [ memcpy_fast::num#2 memcpy_fast::num#0 ] +Statement [13] *((char *) 53272) = $17 [ ] ( main:4 [ ] { } ) always clobbers reg byte a +Statement [18] main::screen[main::memset_fast1_num#2] = main::memset_fast1_c#0 [ main::memset_fast1_c#0 main::memset_fast1_num#2 ] ( main:4 [ main::memset_fast1_c#0 main::memset_fast1_num#2 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::memset_fast1_num#2 main::memset_fast1_num#1 ] +Statement [35] clrscr::line_text#1 = clrscr::line_text#5 + $28 [ clrscr::l#2 clrscr::line_cols#5 clrscr::line_text#1 ] ( main:4::clrscr:14 [ clrscr::l#2 clrscr::line_cols#5 clrscr::line_text#1 ] { } ) always clobbers reg byte a +Statement [36] clrscr::line_cols#1 = clrscr::line_cols#5 + $28 [ clrscr::l#2 clrscr::line_text#1 clrscr::line_cols#1 ] ( main:4::clrscr:14 [ clrscr::l#2 clrscr::line_text#1 clrscr::line_cols#1 ] { } ) always clobbers reg byte a +Statement [38] clrscr::line_text#5[clrscr::c#2] = ' ' [ clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] ( main:4::clrscr:14 [ clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] { } ) always clobbers reg byte a +Statement [39] clrscr::line_cols#5[clrscr::c#2] = LIGHT_BLUE [ clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] ( main:4::clrscr:14 [ clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] { } ) always clobbers reg byte a +Statement [43] main::bottom[memcpy_fast::num#2] = main::screen[memcpy_fast::num#2] [ memcpy_fast::num#2 ] ( main:4::memcpy_fast:22 [ main::memset_fast1_c#0 memcpy_fast::num#2 ] { } ) always clobbers reg byte a +Statement [13] *((char *) 53272) = $17 [ ] ( main:4 [ ] { } ) always clobbers reg byte a +Statement [18] main::screen[main::memset_fast1_num#2] = main::memset_fast1_c#0 [ main::memset_fast1_c#0 main::memset_fast1_num#2 ] ( main:4 [ main::memset_fast1_c#0 main::memset_fast1_num#2 ] { } ) always clobbers reg byte a +Statement [35] clrscr::line_text#1 = clrscr::line_text#5 + $28 [ clrscr::l#2 clrscr::line_cols#5 clrscr::line_text#1 ] ( main:4::clrscr:14 [ clrscr::l#2 clrscr::line_cols#5 clrscr::line_text#1 ] { } ) always clobbers reg byte a +Statement [36] clrscr::line_cols#1 = clrscr::line_cols#5 + $28 [ clrscr::l#2 clrscr::line_text#1 clrscr::line_cols#1 ] ( main:4::clrscr:14 [ clrscr::l#2 clrscr::line_text#1 clrscr::line_cols#1 ] { } ) always clobbers reg byte a +Statement [38] clrscr::line_text#5[clrscr::c#2] = ' ' [ clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] ( main:4::clrscr:14 [ clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] { } ) always clobbers reg byte a +Statement [39] clrscr::line_cols#5[clrscr::c#2] = LIGHT_BLUE [ clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] ( main:4::clrscr:14 [ clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] { } ) always clobbers reg byte a +Statement [43] main::bottom[memcpy_fast::num#2] = main::screen[memcpy_fast::num#2] [ memcpy_fast::num#2 ] ( main:4::memcpy_fast:22 [ main::memset_fast1_c#0 memcpy_fast::num#2 ] { } ) always clobbers reg byte a +Potential registers zp[1]:12 [ conio_c64_init::line#2 conio_c64_init::line#0 ] : zp[1]:12 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:10 [ main::memset_fast1_c#0 main::i#1 ] : zp[1]:10 , reg byte x , reg byte y , +Potential registers zp[1]:4 [ main::memset_fast1_num#2 main::memset_fast1_num#1 ] : zp[1]:4 , reg byte x , reg byte y , +Potential registers zp[1]:9 [ clrscr::l#2 clrscr::l#1 ] : zp[1]:9 , reg byte x , reg byte y , +Potential registers zp[2]:7 [ clrscr::line_text#5 clrscr::line_text#1 ] : zp[2]:7 , +Potential registers zp[2]:5 [ clrscr::line_cols#5 clrscr::line_cols#1 ] : zp[2]:5 , +Potential registers zp[1]:3 [ clrscr::c#2 clrscr::c#1 ] : zp[1]:3 , reg byte x , reg byte y , +Potential registers zp[1]:2 [ memcpy_fast::num#2 memcpy_fast::num#0 ] : zp[1]:2 , reg byte x , reg byte y , +Potential registers zp[1]:11 [ gotoxy::y#1 ] : zp[1]:11 , reg byte a , reg byte x , reg byte y , + +REGISTER UPLIFT SCOPES +Uplift Scope [memcpy_fast] 350,003.5: zp[1]:2 [ memcpy_fast::num#2 memcpy_fast::num#0 ] +Uplift Scope [clrscr] 32,503.25: zp[1]:3 [ clrscr::c#2 clrscr::c#1 ] 2,501.38: zp[2]:5 [ clrscr::line_cols#5 clrscr::line_cols#1 ] 2,382.05: zp[2]:7 [ clrscr::line_text#5 clrscr::line_text#1 ] 2,335.67: zp[1]:9 [ clrscr::l#2 clrscr::l#1 ] +Uplift Scope [main] 3,003: zp[1]:4 [ main::memset_fast1_num#2 main::memset_fast1_num#1 ] 301.88: zp[1]:10 [ main::memset_fast1_c#0 main::i#1 ] +Uplift Scope [gotoxy] 112: zp[1]:11 [ gotoxy::y#1 ] +Uplift Scope [conio_c64_init] 33: zp[1]:12 [ conio_c64_init::line#2 conio_c64_init::line#0 ] +Uplift Scope [MOS6526_CIA] +Uplift Scope [MOS6569_VICII] +Uplift Scope [MOS6581_SID] +Uplift Scope [__start] +Uplift Scope [] + +Uplifting [memcpy_fast] best 12080 combination reg byte x [ memcpy_fast::num#2 memcpy_fast::num#0 ] +Uplifting [clrscr] best 10490 combination reg byte y [ clrscr::c#2 clrscr::c#1 ] zp[2]:5 [ clrscr::line_cols#5 clrscr::line_cols#1 ] zp[2]:7 [ clrscr::line_text#5 clrscr::line_text#1 ] reg byte x [ clrscr::l#2 clrscr::l#1 ] +Uplifting [main] best 9320 combination reg byte x [ main::memset_fast1_num#2 main::memset_fast1_num#1 ] reg byte y [ main::memset_fast1_c#0 main::i#1 ] +Uplifting [gotoxy] best 9314 combination reg byte a [ gotoxy::y#1 ] +Uplifting [conio_c64_init] best 9302 combination reg byte a [ conio_c64_init::line#2 conio_c64_init::line#0 ] +Uplifting [MOS6526_CIA] best 9302 combination +Uplifting [MOS6569_VICII] best 9302 combination +Uplifting [MOS6581_SID] best 9302 combination +Uplifting [__start] best 9302 combination +Uplifting [] best 9302 combination +Allocated (was zp[2]:5) zp[2]:2 [ clrscr::line_cols#5 clrscr::line_cols#1 ] +Allocated (was zp[2]:7) zp[2]:4 [ clrscr::line_text#5 clrscr::line_text#1 ] + +ASSEMBLER BEFORE OPTIMIZATION + // File Comments +/** + * @file memfast.c + * @author Sven Van de Velde (sven.van.de.velde@telenet.be) + * @brief Demonstration of functions memcpy_fast and memset_fast + * for 8 bit architectures. + * @version 0.1 + * @date 2023-04-14 + * + * @copyright Copyright (c) 2023 + * + */ + // Upstart + // Commodore 64 PRG executable file +.file [name="memfast.prg", type="prg", segments="Program"] +.segmentdef Program [segments="Basic, Code, Data"] +.segmentdef Basic [start=$0801] +.segmentdef Code [start=$80d] +.segmentdef Data [startAfter="Code"] +.segment Basic +:BasicUpstart(__start) + // Global Constants & labels + .const LIGHT_BLUE = $e + /// Color Ram + .label COLORRAM = $d800 + /// Default address of screen character matrix + .label DEFAULT_SCREEN = $400 +.segment Code + // __start +__start: { + // [1] phi from __start to __start::__init1 [phi:__start->__start::__init1] + __init1_from___start: + jmp __init1 + // __start::__init1 + __init1: + // [2] call conio_c64_init + jsr conio_c64_init + // [3] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] + __b1_from___init1: + jmp __b1 + // __start::@1 + __b1: + // [4] call main + jsr main + jmp __breturn + // __start::@return + __breturn: + // [5] return + rts +} + // conio_c64_init +// Set initial cursor position +conio_c64_init: { + // Position cursor at current line + .label BASIC_CURSOR_LINE = $d6 + // [6] conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE -- vbuaa=_deref_pbuc1 + lda.z BASIC_CURSOR_LINE + // [7] if(conio_c64_init::line#0<$19) goto conio_c64_init::@2 -- vbuaa_lt_vbuc1_then_la1 + cmp #$19 + bcc __b2_from_conio_c64_init + // [9] phi from conio_c64_init to conio_c64_init::@1 [phi:conio_c64_init->conio_c64_init::@1] + __b1_from_conio_c64_init: + // [9] phi conio_c64_init::line#2 = $19-1 [phi:conio_c64_init->conio_c64_init::@1#0] -- vbuaa=vbuc1 + lda #$19-1 + jmp __b1 + // [8] phi from conio_c64_init to conio_c64_init::@2 [phi:conio_c64_init->conio_c64_init::@2] + __b2_from_conio_c64_init: + jmp __b2 + // conio_c64_init::@2 + __b2: + // [9] phi from conio_c64_init::@2 to conio_c64_init::@1 [phi:conio_c64_init::@2->conio_c64_init::@1] + __b1_from___b2: + // [9] phi conio_c64_init::line#2 = conio_c64_init::line#0 [phi:conio_c64_init::@2->conio_c64_init::@1#0] -- register_copy + jmp __b1 + // conio_c64_init::@1 + __b1: + // [10] gotoxy::y#1 = conio_c64_init::line#2 + // [11] call gotoxy + jsr gotoxy + jmp __breturn + // conio_c64_init::@return + __breturn: + // [12] return + rts +} + // main +main: { + .label screen = $400 + .label bottom = $400+$28*$c + // [13] *((char *) 53272) = $17 -- _deref_pbuc1=vbuc2 + // Show mixed chars on screen + lda #$17 + sta $d018 + // [14] call clrscr + // Clear screen + // [29] phi from main to clrscr [phi:main->clrscr] + clrscr_from_main: + jsr clrscr + // [15] phi from main to main::@1 [phi:main->main::@1] + __b1_from_main: + // [15] phi main::memset_fast1_c#0 = 0 [phi:main->main::@1#0] -- vbuyy=vbuc1 + ldy #0 + jmp __b1 + // [15] phi from main::@3 to main::@1 [phi:main::@3->main::@1] + __b1_from___b3: + // [15] phi main::memset_fast1_c#0 = main::i#1 [phi:main::@3->main::@1#0] -- register_copy + jmp __b1 + // main::@1 + __b1: + // [16] phi from main::@1 to main::memset_fast1 [phi:main::@1->main::memset_fast1] + memset_fast1_from___b1: + jmp memset_fast1 + // main::memset_fast1 + memset_fast1: + // [17] phi from main::memset_fast1 to main::memset_fast1_@1 [phi:main::memset_fast1->main::memset_fast1_@1] + memset_fast1___b1_from_memset_fast1: + // [17] phi main::memset_fast1_num#2 = $100 [phi:main::memset_fast1->main::memset_fast1_@1#0] -- vbuxx=vwuc1 + ldx #<$100 + jmp memset_fast1___b1 + // [17] phi from main::memset_fast1_@1 to main::memset_fast1_@1 [phi:main::memset_fast1_@1->main::memset_fast1_@1] + memset_fast1___b1_from_memset_fast1___b1: + // [17] phi main::memset_fast1_num#2 = main::memset_fast1_num#1 [phi:main::memset_fast1_@1->main::memset_fast1_@1#0] -- register_copy + jmp memset_fast1___b1 + // main::memset_fast1_@1 + memset_fast1___b1: + // [18] main::screen[main::memset_fast1_num#2] = main::memset_fast1_c#0 -- pbuc1_derefidx_vbuxx=vbuyy + tya + sta screen,x + // [19] main::memset_fast1_num#1 = -- main::memset_fast1_num#2 -- vbuxx=_dec_vbuxx + dex + // [20] if(0!=main::memset_fast1_num#1) goto main::memset_fast1_@1 -- 0_neq_vbuxx_then_la1 + cpx #0 + bne memset_fast1___b1_from_memset_fast1___b1 + // [21] phi from main::memset_fast1_@1 to main::@2 [phi:main::memset_fast1_@1->main::@2] + __b2_from_memset_fast1___b1: + jmp __b2 + // main::@2 + __b2: + // [22] call memcpy_fast + // 256 will be truncated to 0, which will copy 256 bytes! + // [41] phi from main::@2 to memcpy_fast [phi:main::@2->memcpy_fast] + memcpy_fast_from___b2: + jsr memcpy_fast + jmp __b3 + // main::@3 + __b3: + // [23] main::i#1 = ++ main::memset_fast1_c#0 -- vbuyy=_inc_vbuyy + iny + // [24] if(main::i#1!=0) goto main::@1 -- vbuyy_neq_0_then_la1 + cpy #0 + bne __b1_from___b3 + jmp __breturn + // main::@return + __breturn: + // [25] return + rts +} + // gotoxy +// Set the cursor to the specified position +// void gotoxy(char x, __register(A) char y) +gotoxy: { + // [26] if(gotoxy::y#1<$19+1) goto gotoxy::@return -- vbuaa_lt_vbuc1_then_la1 + cmp #$19+1 + bcc __breturn + // [27] phi from gotoxy to gotoxy::@1 [phi:gotoxy->gotoxy::@1] + __b1_from_gotoxy: + jmp __b1 + // gotoxy::@1 + __b1: + jmp __breturn + // gotoxy::@return + __breturn: + // [28] return + rts +} + // clrscr +// clears the screen and moves the cursor to the upper left-hand corner of the screen. +clrscr: { + .label line_text = 4 + .label line_cols = 2 + // [30] phi from clrscr to clrscr::@1 [phi:clrscr->clrscr::@1] + __b1_from_clrscr: + // [30] phi clrscr::line_cols#5 = COLORRAM [phi:clrscr->clrscr::@1#0] -- pbuz1=pbuc1 + lda #COLORRAM + sta.z line_cols+1 + // [30] phi clrscr::line_text#5 = DEFAULT_SCREEN [phi:clrscr->clrscr::@1#1] -- pbuz1=pbuc1 + lda #DEFAULT_SCREEN + sta.z line_text+1 + // [30] phi clrscr::l#2 = 0 [phi:clrscr->clrscr::@1#2] -- vbuxx=vbuc1 + ldx #0 + jmp __b1 + // clrscr::@1 + __b1: + // [31] if(clrscr::l#2<$19) goto clrscr::@2 -- vbuxx_lt_vbuc1_then_la1 + cpx #$19 + bcc __b2_from___b1 + jmp __breturn + // clrscr::@return + __breturn: + // [32] return + rts + // [33] phi from clrscr::@1 to clrscr::@2 [phi:clrscr::@1->clrscr::@2] + __b2_from___b1: + // [33] phi clrscr::c#2 = 0 [phi:clrscr::@1->clrscr::@2#0] -- vbuyy=vbuc1 + ldy #0 + jmp __b2 + // clrscr::@2 + __b2: + // [34] if(clrscr::c#2<$28) goto clrscr::@3 -- vbuyy_lt_vbuc1_then_la1 + cpy #$28 + bcc __b3 + jmp __b4 + // clrscr::@4 + __b4: + // [35] clrscr::line_text#1 = clrscr::line_text#5 + $28 -- pbuz1=pbuz1_plus_vbuc1 + lda #$28 + clc + adc.z line_text + sta.z line_text + bcc !+ + inc.z line_text+1 + !: + // [36] clrscr::line_cols#1 = clrscr::line_cols#5 + $28 -- pbuz1=pbuz1_plus_vbuc1 + lda #$28 + clc + adc.z line_cols + sta.z line_cols + bcc !+ + inc.z line_cols+1 + !: + // [37] clrscr::l#1 = ++ clrscr::l#2 -- vbuxx=_inc_vbuxx + inx + // [30] phi from clrscr::@4 to clrscr::@1 [phi:clrscr::@4->clrscr::@1] + __b1_from___b4: + // [30] phi clrscr::line_cols#5 = clrscr::line_cols#1 [phi:clrscr::@4->clrscr::@1#0] -- register_copy + // [30] phi clrscr::line_text#5 = clrscr::line_text#1 [phi:clrscr::@4->clrscr::@1#1] -- register_copy + // [30] phi clrscr::l#2 = clrscr::l#1 [phi:clrscr::@4->clrscr::@1#2] -- register_copy + jmp __b1 + // clrscr::@3 + __b3: + // [38] clrscr::line_text#5[clrscr::c#2] = ' ' -- pbuz1_derefidx_vbuyy=vbuc1 + lda #' ' + sta (line_text),y + // [39] clrscr::line_cols#5[clrscr::c#2] = LIGHT_BLUE -- pbuz1_derefidx_vbuyy=vbuc1 + lda #LIGHT_BLUE + sta (line_cols),y + // [40] clrscr::c#1 = ++ clrscr::c#2 -- vbuyy=_inc_vbuyy + iny + // [33] phi from clrscr::@3 to clrscr::@2 [phi:clrscr::@3->clrscr::@2] + __b2_from___b3: + // [33] phi clrscr::c#2 = clrscr::c#1 [phi:clrscr::@3->clrscr::@2#0] -- register_copy + jmp __b2 +} + // memcpy_fast +/** + * @brief Fast copy of data from a source to a destination memory address. + * Since the amount of bytes to be copied is a byte long, it can be executed very fast. + * The parameter num can have a value 0, which in case is equal to 256, + * which allows 256 bytes to be copied using one single byte counter! + * Depending on the optimization of the compiler, this implementation can + * result in very fast code, but it should be inlined! + * + * @param destination The memory address as the destination. + * @param source The memory address as the source. + * @param num The amount of bytes to be copied. A value of 0 will copy 256 bytes!!! + * @return void* The resulting destination memory address. + */ +// char * memcpy_fast(char *destination, char *source, __register(X) char num) +memcpy_fast: { + // [42] phi from memcpy_fast to memcpy_fast::@1 [phi:memcpy_fast->memcpy_fast::@1] + __b1_from_memcpy_fast: + // [42] phi memcpy_fast::num#2 = $100 [phi:memcpy_fast->memcpy_fast::@1#0] -- vbuxx=vwuc1 + ldx #<$100 + jmp __b1 + // [42] phi from memcpy_fast::@1 to memcpy_fast::@1 [phi:memcpy_fast::@1->memcpy_fast::@1] + __b1_from___b1: + // [42] phi memcpy_fast::num#2 = memcpy_fast::num#0 [phi:memcpy_fast::@1->memcpy_fast::@1#0] -- register_copy + jmp __b1 + // memcpy_fast::@1 + __b1: + // [43] main::bottom[memcpy_fast::num#2] = main::screen[memcpy_fast::num#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + lda main.screen,x + sta main.bottom,x + // [44] memcpy_fast::num#0 = -- memcpy_fast::num#2 -- vbuxx=_dec_vbuxx + dex + // [45] if(0!=memcpy_fast::num#0) goto memcpy_fast::@1 -- 0_neq_vbuxx_then_la1 + cpx #0 + bne __b1_from___b1 + jmp __breturn + // memcpy_fast::@return + __breturn: + // [46] return + rts +} + // File Data + +ASSEMBLER OPTIMIZATIONS +Removing instruction jmp __init1 +Removing instruction jmp __b1 +Removing instruction jmp __breturn +Removing instruction jmp __b2 +Removing instruction jmp __b1 +Removing instruction jmp __breturn +Removing instruction jmp __b1 +Removing instruction jmp memset_fast1 +Removing instruction jmp memset_fast1___b1 +Removing instruction jmp __b2 +Removing instruction jmp __b3 +Removing instruction jmp __breturn +Removing instruction jmp __b1 +Removing instruction jmp __breturn +Removing instruction jmp __b1 +Removing instruction jmp __breturn +Removing instruction jmp __b2 +Removing instruction jmp __b4 +Removing instruction jmp __b1 +Removing instruction jmp __breturn +Succesful ASM optimization Pass5NextJumpElimination +Replacing label __b2_from_conio_c64_init with __b1 +Replacing label memset_fast1___b1_from_memset_fast1___b1 with memset_fast1___b1 +Replacing label __b1_from___b3 with __b1 +Replacing label __breturn with __b1 +Replacing label __b1_from___b1 with __b1 +Removing instruction __init1_from___start: +Removing instruction __b1_from___init1: +Removing instruction __b2_from_conio_c64_init: +Removing instruction __b2: +Removing instruction __b1_from___b2: +Removing instruction __b1_from___b3: +Removing instruction memset_fast1_from___b1: +Removing instruction memset_fast1: +Removing instruction memset_fast1___b1_from_memset_fast1: +Removing instruction memset_fast1___b1_from_memset_fast1___b1: +Removing instruction __b2_from_memset_fast1___b1: +Removing instruction __b1_from_gotoxy: +Removing instruction __breturn: +Removing instruction __b1_from___b1: +Succesful ASM optimization Pass5RedundantLabelElimination +Removing instruction __init1: +Removing instruction __b1: +Removing instruction __breturn: +Removing instruction __b1_from_conio_c64_init: +Removing instruction __breturn: +Removing instruction clrscr_from_main: +Removing instruction __b1_from_main: +Removing instruction __b2: +Removing instruction memcpy_fast_from___b2: +Removing instruction __b3: +Removing instruction __breturn: +Removing instruction __b1_from_clrscr: +Removing instruction __breturn: +Removing instruction __b4: +Removing instruction __b1_from___b4: +Removing instruction __b2_from___b3: +Removing instruction __b1_from_memcpy_fast: +Removing instruction __breturn: +Succesful ASM optimization Pass5UnusedLabelElimination +Relabelling long label __b2_from___b1 to __b4 +Succesful ASM optimization Pass5RelabelLongLabels +Removing instruction jmp __b1 +Removing instruction jmp __b1 +Removing instruction jmp memset_fast1___b1 +Removing instruction bcc __b1 +Removing instruction jmp __b1 +Succesful ASM optimization Pass5NextJumpElimination +Removing instruction __b1: +Succesful ASM optimization Pass5UnusedLabelElimination + +FINAL SYMBOL TABLE +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant const char LIGHT_BLUE = $e +void __start() +void clrscr() +char clrscr::c +char clrscr::c#1 // reg byte y 20002.0 +char clrscr::c#2 // reg byte y 12501.25 +char clrscr::l +char clrscr::l#1 // reg byte x 2002.0 +char clrscr::l#2 // reg byte x 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // line_cols zp[2]:2 1001.0 +char *clrscr::line_cols#5 // line_cols zp[2]:2 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // line_text zp[2]:4 667.3333333333334 +char *clrscr::line_text#5 // line_text zp[2]:4 1714.7142857142858 +void conio_c64_init() +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte a 11.0 +char conio_c64_init::line#2 // reg byte a 22.0 +void gotoxy(char x , char y) +char gotoxy::x +char gotoxy::y +char gotoxy::y#1 // reg byte a 112.0 +void main() +__constant const char *main::bottom = (char *) 1024+(unsigned int)$28*$c +char main::i +char main::i#1 // reg byte y 151.5 +char main::memset_fast1_c +char main::memset_fast1_c#0 // reg byte y 150.375 +char *main::memset_fast1_destination +char main::memset_fast1_num +char main::memset_fast1_num#1 // reg byte x 1501.5 +char main::memset_fast1_num#2 // reg byte x 1501.5 +__constant const char *main::screen = (char *) 1024 +char * memcpy_fast(char *destination , char *source , char num) +char *memcpy_fast::destination +char memcpy_fast::num +char memcpy_fast::num#0 // reg byte x 150001.5 +char memcpy_fast::num#2 // reg byte x 200002.0 +char *memcpy_fast::return +char *memcpy_fast::source + +reg byte a [ conio_c64_init::line#2 conio_c64_init::line#0 ] +reg byte y [ main::memset_fast1_c#0 main::i#1 ] +reg byte x [ main::memset_fast1_num#2 main::memset_fast1_num#1 ] +reg byte x [ clrscr::l#2 clrscr::l#1 ] +zp[2]:4 [ clrscr::line_text#5 clrscr::line_text#1 ] +zp[2]:2 [ clrscr::line_cols#5 clrscr::line_cols#1 ] +reg byte y [ clrscr::c#2 clrscr::c#1 ] +reg byte x [ memcpy_fast::num#2 memcpy_fast::num#0 ] +reg byte a [ gotoxy::y#1 ] + + +FINAL ASSEMBLER +Score: 6933 + + // File Comments +/** + * @file memfast.c + * @author Sven Van de Velde (sven.van.de.velde@telenet.be) + * @brief Demonstration of functions memcpy_fast and memset_fast + * for 8 bit architectures. + * @version 0.1 + * @date 2023-04-14 + * + * @copyright Copyright (c) 2023 + * + */ + // Upstart + // Commodore 64 PRG executable file +.file [name="memfast.prg", type="prg", segments="Program"] +.segmentdef Program [segments="Basic, Code, Data"] +.segmentdef Basic [start=$0801] +.segmentdef Code [start=$80d] +.segmentdef Data [startAfter="Code"] +.segment Basic +:BasicUpstart(__start) + // Global Constants & labels + .const LIGHT_BLUE = $e + /// Color Ram + .label COLORRAM = $d800 + /// Default address of screen character matrix + .label DEFAULT_SCREEN = $400 +.segment Code + // __start +__start: { + // [1] phi from __start to __start::__init1 [phi:__start->__start::__init1] + // __start::__init1 + // #pragma constructor_for(conio_c64_init, cputc, clrscr, cscroll) + // [2] call conio_c64_init + jsr conio_c64_init + // [3] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] + // __start::@1 + // [4] call main + jsr main + // __start::@return + // [5] return + rts +} + // conio_c64_init +// Set initial cursor position +conio_c64_init: { + // Position cursor at current line + .label BASIC_CURSOR_LINE = $d6 + // char line = *BASIC_CURSOR_LINE + // [6] conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE -- vbuaa=_deref_pbuc1 + lda.z BASIC_CURSOR_LINE + // if(line>=CONIO_HEIGHT) + // [7] if(conio_c64_init::line#0<$19) goto conio_c64_init::@2 -- vbuaa_lt_vbuc1_then_la1 + cmp #$19 + bcc __b1 + // [9] phi from conio_c64_init to conio_c64_init::@1 [phi:conio_c64_init->conio_c64_init::@1] + // [9] phi conio_c64_init::line#2 = $19-1 [phi:conio_c64_init->conio_c64_init::@1#0] -- vbuaa=vbuc1 + lda #$19-1 + // [8] phi from conio_c64_init to conio_c64_init::@2 [phi:conio_c64_init->conio_c64_init::@2] + // conio_c64_init::@2 + // [9] phi from conio_c64_init::@2 to conio_c64_init::@1 [phi:conio_c64_init::@2->conio_c64_init::@1] + // [9] phi conio_c64_init::line#2 = conio_c64_init::line#0 [phi:conio_c64_init::@2->conio_c64_init::@1#0] -- register_copy + // conio_c64_init::@1 + __b1: + // gotoxy(0, line) + // [10] gotoxy::y#1 = conio_c64_init::line#2 + // [11] call gotoxy + jsr gotoxy + // conio_c64_init::@return + // } + // [12] return + rts +} + // main +main: { + .label screen = $400 + .label bottom = $400+$28*$c + // *((char*)0xd018) = 0x17 + // [13] *((char *) 53272) = $17 -- _deref_pbuc1=vbuc2 + // Show mixed chars on screen + lda #$17 + sta $d018 + // clrscr() + // [14] call clrscr + // Clear screen + // [29] phi from main to clrscr [phi:main->clrscr] + jsr clrscr + // [15] phi from main to main::@1 [phi:main->main::@1] + // [15] phi main::memset_fast1_c#0 = 0 [phi:main->main::@1#0] -- vbuyy=vbuc1 + ldy #0 + // [15] phi from main::@3 to main::@1 [phi:main::@3->main::@1] + // [15] phi main::memset_fast1_c#0 = main::i#1 [phi:main::@3->main::@1#0] -- register_copy + // main::@1 + __b1: + // [16] phi from main::@1 to main::memset_fast1 [phi:main::@1->main::memset_fast1] + // main::memset_fast1 + // [17] phi from main::memset_fast1 to main::memset_fast1_@1 [phi:main::memset_fast1->main::memset_fast1_@1] + // [17] phi main::memset_fast1_num#2 = $100 [phi:main::memset_fast1->main::memset_fast1_@1#0] -- vbuxx=vwuc1 + ldx #<$100 + // [17] phi from main::memset_fast1_@1 to main::memset_fast1_@1 [phi:main::memset_fast1_@1->main::memset_fast1_@1] + // [17] phi main::memset_fast1_num#2 = main::memset_fast1_num#1 [phi:main::memset_fast1_@1->main::memset_fast1_@1#0] -- register_copy + // main::memset_fast1_@1 + memset_fast1___b1: + // *(destination+num) = c + // [18] main::screen[main::memset_fast1_num#2] = main::memset_fast1_c#0 -- pbuc1_derefidx_vbuxx=vbuyy + tya + sta screen,x + // num--; + // [19] main::memset_fast1_num#1 = -- main::memset_fast1_num#2 -- vbuxx=_dec_vbuxx + dex + // while(num) + // [20] if(0!=main::memset_fast1_num#1) goto main::memset_fast1_@1 -- 0_neq_vbuxx_then_la1 + cpx #0 + bne memset_fast1___b1 + // [21] phi from main::memset_fast1_@1 to main::@2 [phi:main::memset_fast1_@1->main::@2] + // main::@2 + // memcpy_fast(bottom, screen, 256) + // [22] call memcpy_fast + // 256 will be truncated to 0, which will copy 256 bytes! + // [41] phi from main::@2 to memcpy_fast [phi:main::@2->memcpy_fast] + jsr memcpy_fast + // main::@3 + // for(char i:0..255) + // [23] main::i#1 = ++ main::memset_fast1_c#0 -- vbuyy=_inc_vbuyy + iny + // [24] if(main::i#1!=0) goto main::@1 -- vbuyy_neq_0_then_la1 + cpy #0 + bne __b1 + // main::@return + // } + // [25] return + rts +} + // gotoxy +// Set the cursor to the specified position +// void gotoxy(char x, __register(A) char y) +gotoxy: { + // if(y>CONIO_HEIGHT) + // [26] if(gotoxy::y#1<$19+1) goto gotoxy::@return -- vbuaa_lt_vbuc1_then_la1 + cmp #$19+1 + // [27] phi from gotoxy to gotoxy::@1 [phi:gotoxy->gotoxy::@1] + // gotoxy::@1 + // gotoxy::@return + // } + // [28] return + rts +} + // clrscr +// clears the screen and moves the cursor to the upper left-hand corner of the screen. +clrscr: { + .label line_text = 4 + .label line_cols = 2 + // [30] phi from clrscr to clrscr::@1 [phi:clrscr->clrscr::@1] + // [30] phi clrscr::line_cols#5 = COLORRAM [phi:clrscr->clrscr::@1#0] -- pbuz1=pbuc1 + lda #COLORRAM + sta.z line_cols+1 + // [30] phi clrscr::line_text#5 = DEFAULT_SCREEN [phi:clrscr->clrscr::@1#1] -- pbuz1=pbuc1 + lda #DEFAULT_SCREEN + sta.z line_text+1 + // [30] phi clrscr::l#2 = 0 [phi:clrscr->clrscr::@1#2] -- vbuxx=vbuc1 + ldx #0 + // clrscr::@1 + __b1: + // for( char l=0;lclrscr::@2] + __b4: + // [33] phi clrscr::c#2 = 0 [phi:clrscr::@1->clrscr::@2#0] -- vbuyy=vbuc1 + ldy #0 + // clrscr::@2 + __b2: + // for( char c=0;cclrscr::@1] + // [30] phi clrscr::line_cols#5 = clrscr::line_cols#1 [phi:clrscr::@4->clrscr::@1#0] -- register_copy + // [30] phi clrscr::line_text#5 = clrscr::line_text#1 [phi:clrscr::@4->clrscr::@1#1] -- register_copy + // [30] phi clrscr::l#2 = clrscr::l#1 [phi:clrscr::@4->clrscr::@1#2] -- register_copy + jmp __b1 + // clrscr::@3 + __b3: + // line_text[c] = ' ' + // [38] clrscr::line_text#5[clrscr::c#2] = ' ' -- pbuz1_derefidx_vbuyy=vbuc1 + lda #' ' + sta (line_text),y + // line_cols[c] = conio_textcolor + // [39] clrscr::line_cols#5[clrscr::c#2] = LIGHT_BLUE -- pbuz1_derefidx_vbuyy=vbuc1 + lda #LIGHT_BLUE + sta (line_cols),y + // for( char c=0;cclrscr::@2] + // [33] phi clrscr::c#2 = clrscr::c#1 [phi:clrscr::@3->clrscr::@2#0] -- register_copy + jmp __b2 +} + // memcpy_fast +/** + * @brief Fast copy of data from a source to a destination memory address. + * Since the amount of bytes to be copied is a byte long, it can be executed very fast. + * The parameter num can have a value 0, which in case is equal to 256, + * which allows 256 bytes to be copied using one single byte counter! + * Depending on the optimization of the compiler, this implementation can + * result in very fast code, but it should be inlined! + * + * @param destination The memory address as the destination. + * @param source The memory address as the source. + * @param num The amount of bytes to be copied. A value of 0 will copy 256 bytes!!! + * @return void* The resulting destination memory address. + */ +// char * memcpy_fast(char *destination, char *source, __register(X) char num) +memcpy_fast: { + // [42] phi from memcpy_fast to memcpy_fast::@1 [phi:memcpy_fast->memcpy_fast::@1] + // [42] phi memcpy_fast::num#2 = $100 [phi:memcpy_fast->memcpy_fast::@1#0] -- vbuxx=vwuc1 + ldx #<$100 + // [42] phi from memcpy_fast::@1 to memcpy_fast::@1 [phi:memcpy_fast::@1->memcpy_fast::@1] + // [42] phi memcpy_fast::num#2 = memcpy_fast::num#0 [phi:memcpy_fast::@1->memcpy_fast::@1#0] -- register_copy + // memcpy_fast::@1 + __b1: + // *(destination+num) = *(source+num) + // [43] main::bottom[memcpy_fast::num#2] = main::screen[memcpy_fast::num#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + lda main.screen,x + sta main.bottom,x + // num--; + // [44] memcpy_fast::num#0 = -- memcpy_fast::num#2 -- vbuxx=_dec_vbuxx + dex + // while(num) + // [45] if(0!=memcpy_fast::num#0) goto memcpy_fast::@1 -- 0_neq_vbuxx_then_la1 + cpx #0 + bne __b1 + // memcpy_fast::@return + // } + // [46] return + rts +} + // File Data + diff --git a/src/test/ref/examples/memfast/memfast.sym b/src/test/ref/examples/memfast/memfast.sym new file mode 100644 index 000000000..288a1b763 --- /dev/null +++ b/src/test/ref/examples/memfast/memfast.sym @@ -0,0 +1,54 @@ +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant const char LIGHT_BLUE = $e +void __start() +void clrscr() +char clrscr::c +char clrscr::c#1 // reg byte y 20002.0 +char clrscr::c#2 // reg byte y 12501.25 +char clrscr::l +char clrscr::l#1 // reg byte x 2002.0 +char clrscr::l#2 // reg byte x 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // line_cols zp[2]:2 1001.0 +char *clrscr::line_cols#5 // line_cols zp[2]:2 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // line_text zp[2]:4 667.3333333333334 +char *clrscr::line_text#5 // line_text zp[2]:4 1714.7142857142858 +void conio_c64_init() +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte a 11.0 +char conio_c64_init::line#2 // reg byte a 22.0 +void gotoxy(char x , char y) +char gotoxy::x +char gotoxy::y +char gotoxy::y#1 // reg byte a 112.0 +void main() +__constant const char *main::bottom = (char *) 1024+(unsigned int)$28*$c +char main::i +char main::i#1 // reg byte y 151.5 +char main::memset_fast1_c +char main::memset_fast1_c#0 // reg byte y 150.375 +char *main::memset_fast1_destination +char main::memset_fast1_num +char main::memset_fast1_num#1 // reg byte x 1501.5 +char main::memset_fast1_num#2 // reg byte x 1501.5 +__constant const char *main::screen = (char *) 1024 +char * memcpy_fast(char *destination , char *source , char num) +char *memcpy_fast::destination +char memcpy_fast::num +char memcpy_fast::num#0 // reg byte x 150001.5 +char memcpy_fast::num#2 // reg byte x 200002.0 +char *memcpy_fast::return +char *memcpy_fast::source + +reg byte a [ conio_c64_init::line#2 conio_c64_init::line#0 ] +reg byte y [ main::memset_fast1_c#0 main::i#1 ] +reg byte x [ main::memset_fast1_num#2 main::memset_fast1_num#1 ] +reg byte x [ clrscr::l#2 clrscr::l#1 ] +zp[2]:4 [ clrscr::line_text#5 clrscr::line_text#1 ] +zp[2]:2 [ clrscr::line_cols#5 clrscr::line_cols#1 ] +reg byte y [ clrscr::c#2 clrscr::c#1 ] +reg byte x [ memcpy_fast::num#2 memcpy_fast::num#0 ] +reg byte a [ gotoxy::y#1 ] diff --git a/src/test/ref/examples/plus4/plus4-randomwalk.asm b/src/test/ref/examples/plus4/plus4-randomwalk.asm index e94972352..3c1cb1a84 100644 --- a/src/test/ref/examples/plus4/plus4-randomwalk.asm +++ b/src/test/ref/examples/plus4/plus4-randomwalk.asm @@ -18,7 +18,7 @@ .segmentdef Code [start=$100d] .segmentdef Data [startAfter="Code"] .segment Basic -:BasicUpstart(main) +:BasicUpstart(__start) .const OFFSET_STRUCT_MOS7360_TED_BG_COLOR = $15 .const OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR = $19 .const OFFSET_STRUCT_MOS7360_TED_RASTER_LO = $1d @@ -29,18 +29,27 @@ /// The TED chip controlling video and sound on the Plus/4 and Commodore 16 .label TED = $ff00 // The random state variable - .label rand_state = 2 + .label rand_state = $11 .segment Code +__start: { + // volatile unsigned int rand_state = 1 + lda #<1 + sta.z rand_state + lda #>1 + sta.z rand_state+1 + jsr main + rts +} main: { - .label __3 = $d - .label __6 = $11 - .label __8 = $d + .label __3 = 2 + .label __6 = $f + .label __8 = 2 .label __10 = $b - .label __24 = $d - .label offset = $d + .label __24 = 2 + .label offset = 2 .label y = 6 - .label __29 = $f - .label __30 = $d + .label __29 = $d + .label __30 = 2 // memset(DEFAULT_SCREEN, 0xa0, 1000) ldx #$a0 lda #BORDER_COLOR = 0 sta TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR - lda #<1 - sta.z rand_state - lda #>1 - sta.z rand_state+1 ldx #$14 lda #$c sta.z y diff --git a/src/test/ref/examples/plus4/plus4-randomwalk.cfg b/src/test/ref/examples/plus4/plus4-randomwalk.cfg index 3a8cae751..5d01730a8 100644 --- a/src/test/ref/examples/plus4/plus4-randomwalk.cfg +++ b/src/test/ref/examples/plus4/plus4-randomwalk.cfg @@ -1,120 +1,134 @@ +void __start() +__start: scope:[__start] from + [0] phi() + to:__start::__init1 +__start::__init1: scope:[__start] from __start + [1] rand_state = 1 + to:__start::@1 +__start::@1: scope:[__start] from __start::__init1 + [2] phi() + [3] call main + to:__start::@return +__start::@return: scope:[__start] from __start::@1 + [4] return + to:@return + void main() -main: scope:[main] from - [0] phi() - [1] call memset +main: scope:[main] from __start::@1 + [5] phi() + [6] call memset to:main::@10 main::@10: scope:[main] from main - [2] phi() - [3] call memset + [7] phi() + [8] call memset to:main::@11 main::@11: scope:[main] from main::@10 - [4] phi() - [5] call memset + [9] phi() + [10] call memset to:main::@12 main::@12: scope:[main] from main::@11 - [6] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 - [7] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 + [11] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 + [12] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 to:main::@1 main::@1: scope:[main] from main::@12 main::@6 - [8] rand_state#12 = phi( main::@12/1, main::@6/rand_state#10 ) - [8] main::x#11 = phi( main::@12/$14, main::@6/main::x#10 ) - [8] main::y#11 = phi( main::@12/$c, main::@6/main::y#10 ) + [13] main::x#11 = phi( main::@12/$14, main::@6/main::x#10 ) + [13] main::y#11 = phi( main::@12/$c, main::@6/main::y#10 ) to:main::@2 main::@2: scope:[main] from main::@1 - [9] main::$24 = (unsigned int)main::y#11 - [10] main::$29 = main::$24 << 2 - [11] main::$30 = main::$29 + main::$24 - [12] main::$3 = main::$30 << 3 - [13] main::offset#0 = main::$3 + main::x#11 - [14] main::$6 = VISITS + main::offset#0 - [15] *main::$6 = ++ *main::$6 - [16] main::cnt#0 = *main::$6 - [17] main::$8 = DEFAULT_COLORRAM + main::offset#0 - [18] main::$9 = main::cnt#0 & $f - [19] *main::$8 = FADE[main::$9] - [20] call rand - [21] rand::return#2 = rand::return#0 + [14] main::$24 = (unsigned int)main::y#11 + [15] main::$29 = main::$24 << 2 + [16] main::$30 = main::$29 + main::$24 + [17] main::$3 = main::$30 << 3 + [18] main::offset#0 = main::$3 + main::x#11 + [19] main::$6 = VISITS + main::offset#0 + [20] *main::$6 = ++ *main::$6 + [21] main::cnt#0 = *main::$6 + [22] main::$8 = DEFAULT_COLORRAM + main::offset#0 + [23] main::$9 = main::cnt#0 & $f + [24] *main::$8 = FADE[main::$9] + [25] call rand + [26] rand::return#2 = rand::return#0 to:main::@13 main::@13: scope:[main] from main::@2 - [22] main::$10 = rand::return#2 - [23] main::rnd#0 = byte1 main::$10 - [24] main::$12 = main::rnd#0 & $80 - [25] if(0!=main::$12) goto main::@3 + [27] main::$10 = rand::return#2 + [28] main::rnd#0 = byte1 main::$10 + [29] main::$12 = main::rnd#0 & $80 + [30] if(0!=main::$12) goto main::@3 to:main::@7 main::@7: scope:[main] from main::@13 - [26] main::$13 = main::rnd#0 & $40 - [27] if(0!=main::$13) goto main::@4 + [31] main::$13 = main::rnd#0 & $40 + [32] if(0!=main::$13) goto main::@4 to:main::@8 main::@8: scope:[main] from main::@7 - [28] main::y#2 = -- main::y#11 - [29] if(main::y#2!=$ff) goto main::@14 + [33] main::y#2 = -- main::y#11 + [34] if(main::y#2!=$ff) goto main::@14 to:main::@6 main::@14: scope:[main] from main::@8 - [30] phi() - to:main::@6 -main::@6: scope:[main] from main::@14 main::@15 main::@16 main::@17 main::@4 main::@5 main::@6 main::@8 main::@9 - [31] main::x#10 = phi( main::@14/main::x#11, main::@8/main::x#11, main::@15/main::x#2, main::@9/0, main::@16/main::x#11, main::@4/main::x#11, main::@17/main::x#1, main::@5/$27, main::@6/main::x#10 ) - [31] main::y#10 = phi( main::@14/main::y#2, main::@8/0, main::@15/main::y#11, main::@9/main::y#11, main::@16/main::y#1, main::@4/$18, main::@17/main::y#11, main::@5/main::y#11, main::@6/main::y#10 ) - [32] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 - to:main::@1 -main::@4: scope:[main] from main::@7 - [33] main::y#1 = ++ main::y#11 - [34] if(main::y#1!=$19) goto main::@16 - to:main::@6 -main::@16: scope:[main] from main::@4 [35] phi() to:main::@6 -main::@3: scope:[main] from main::@13 - [36] main::$18 = main::rnd#0 & $40 - [37] if(0!=main::$18) goto main::@5 - to:main::@9 -main::@9: scope:[main] from main::@3 - [38] main::x#2 = -- main::x#11 - [39] if(main::x#2!=$ff) goto main::@15 +main::@6: scope:[main] from main::@14 main::@15 main::@16 main::@17 main::@4 main::@5 main::@6 main::@8 main::@9 + [36] main::x#10 = phi( main::@14/main::x#11, main::@8/main::x#11, main::@15/main::x#2, main::@9/0, main::@16/main::x#11, main::@4/main::x#11, main::@17/main::x#1, main::@5/$27, main::@6/main::x#10 ) + [36] main::y#10 = phi( main::@14/main::y#2, main::@8/0, main::@15/main::y#11, main::@9/main::y#11, main::@16/main::y#1, main::@4/$18, main::@17/main::y#11, main::@5/main::y#11, main::@6/main::y#10 ) + [37] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 + to:main::@1 +main::@4: scope:[main] from main::@7 + [38] main::y#1 = ++ main::y#11 + [39] if(main::y#1!=$19) goto main::@16 to:main::@6 -main::@15: scope:[main] from main::@9 +main::@16: scope:[main] from main::@4 [40] phi() to:main::@6 +main::@3: scope:[main] from main::@13 + [41] main::$18 = main::rnd#0 & $40 + [42] if(0!=main::$18) goto main::@5 + to:main::@9 +main::@9: scope:[main] from main::@3 + [43] main::x#2 = -- main::x#11 + [44] if(main::x#2!=$ff) goto main::@15 + to:main::@6 +main::@15: scope:[main] from main::@9 + [45] phi() + to:main::@6 main::@5: scope:[main] from main::@3 - [41] main::x#1 = ++ main::x#11 - [42] if(main::x#1!=$28) goto main::@17 + [46] main::x#1 = ++ main::x#11 + [47] if(main::x#1!=$28) goto main::@17 to:main::@6 main::@17: scope:[main] from main::@5 - [43] phi() + [48] phi() to:main::@6 void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main main::@10 main::@11 - [44] memset::c#5 = phi( main/$a0, main::@10/0, main::@11/0 ) - [44] memset::str#4 = phi( main/(void *)DEFAULT_SCREEN, main::@10/(void *)DEFAULT_COLORRAM, main::@11/(void *)VISITS ) + [49] memset::c#5 = phi( main/$a0, main::@10/0, main::@11/0 ) + [49] memset::str#4 = phi( main/(void *)DEFAULT_SCREEN, main::@10/(void *)DEFAULT_COLORRAM, main::@11/(void *)VISITS ) to:memset::@1 memset::@1: scope:[memset] from memset - [45] memset::end#0 = (char *)memset::str#4 + $3e8 - [46] memset::dst#4 = (char *)memset::str#4 + [50] memset::end#0 = (char *)memset::str#4 + $3e8 + [51] memset::dst#4 = (char *)memset::str#4 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 - [47] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) - [48] if(memset::dst#2!=memset::end#0) goto memset::@3 + [52] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) + [53] if(memset::dst#2!=memset::end#0) goto memset::@3 to:memset::@return memset::@return: scope:[memset] from memset::@2 - [49] return + [54] return to:@return memset::@3: scope:[memset] from memset::@2 - [50] *memset::dst#2 = memset::c#5 - [51] memset::dst#1 = ++ memset::dst#2 + [55] *memset::dst#2 = memset::c#5 + [56] memset::dst#1 = ++ memset::dst#2 to:memset::@2 unsigned int rand() rand: scope:[rand] from main::@2 - [52] rand::$0 = rand_state#12 << 7 - [53] rand_state#0 = rand_state#12 ^ rand::$0 - [54] rand::$1 = rand_state#0 >> 9 - [55] rand_state#1 = rand_state#0 ^ rand::$1 - [56] rand::$2 = rand_state#1 << 8 - [57] rand_state#10 = rand_state#1 ^ rand::$2 - [58] rand::return#0 = rand_state#10 + [57] rand::$0 = rand_state << 7 + [58] rand_state = rand_state ^ rand::$0 + [59] rand::$1 = rand_state >> 9 + [60] rand_state = rand_state ^ rand::$1 + [61] rand::$2 = rand_state << 8 + [62] rand_state = rand_state ^ rand::$2 + [63] rand::return#0 = rand_state to:rand::@return rand::@return: scope:[rand] from rand - [59] return + [64] return to:@return diff --git a/src/test/ref/examples/plus4/plus4-randomwalk.log b/src/test/ref/examples/plus4/plus4-randomwalk.log index 91996d03d..5904b6adc 100644 --- a/src/test/ref/examples/plus4/plus4-randomwalk.log +++ b/src/test/ref/examples/plus4/plus4-randomwalk.log @@ -53,26 +53,22 @@ memset::@return: scope:[memset] from memset::@1 unsigned int rand() rand: scope:[rand] from main::@2 - rand_state#9 = phi( main::@2/rand_state#15 ) - rand::$0 = rand_state#9 << 7 - rand_state#0 = rand_state#9 ^ rand::$0 - rand::$1 = rand_state#0 >> 9 - rand_state#1 = rand_state#0 ^ rand::$1 - rand::$2 = rand_state#1 << 8 - rand_state#2 = rand_state#1 ^ rand::$2 - rand::return#0 = rand_state#2 + rand::$0 = rand_state << 7 + rand_state = rand_state ^ rand::$0 + rand::$1 = rand_state >> 9 + rand_state = rand_state ^ rand::$1 + rand::$2 = rand_state << 8 + rand_state = rand_state ^ rand::$2 + rand::return#0 = rand_state to:rand::@return rand::@return: scope:[rand] from rand - rand_state#10 = phi( rand/rand_state#2 ) rand::return#3 = phi( rand/rand::return#0 ) rand::return#1 = rand::return#3 - rand_state#3 = rand_state#10 return to:@return void main() main: scope:[main] from __start::@1 - rand_state#32 = phi( __start::@1/rand_state#17 ) memset::str#0 = (void *)DEFAULT_SCREEN memset::c#0 = $a0 memset::num#0 = $3e8 @@ -80,7 +76,6 @@ main: scope:[main] from __start::@1 memset::return#2 = memset::return#1 to:main::@14 main::@14: scope:[main] from main - rand_state#29 = phi( main/rand_state#32 ) memset::str#1 = (void *)DEFAULT_COLORRAM memset::c#1 = 0 memset::num#1 = $3e8 @@ -88,7 +83,6 @@ main::@14: scope:[main] from main memset::return#3 = memset::return#1 to:main::@15 main::@15: scope:[main] from main::@14 - rand_state#20 = phi( main::@14/rand_state#29 ) memset::str#2 = (void *)VISITS memset::c#2 = 0 memset::num#2 = $3e8 @@ -96,21 +90,18 @@ main::@15: scope:[main] from main::@14 memset::return#4 = memset::return#1 to:main::@16 main::@16: scope:[main] from main::@15 - rand_state#18 = phi( main::@15/rand_state#20 ) *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 main::x#0 = $14 main::y#0 = $c to:main::@1 main::@1: scope:[main] from main::@16 main::@8 - rand_state#16 = phi( main::@16/rand_state#18, main::@8/rand_state#19 ) main::x#8 = phi( main::@16/main::x#0, main::@8/main::x#10 ) main::y#8 = phi( main::@16/main::y#0, main::@8/main::y#10 ) main::$25 = 0 != 1 if(main::$25) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 - rand_state#15 = phi( main::@1/rand_state#16 ) main::x#5 = phi( main::@1/main::x#8 ) main::y#5 = phi( main::@1/main::y#8 ) main::$24 = (unsigned int)main::y#5 @@ -129,17 +120,14 @@ main::@2: scope:[main] from main::@1 main::@17: scope:[main] from main::@2 main::y#11 = phi( main::@2/main::y#5 ) main::x#11 = phi( main::@2/main::x#5 ) - rand_state#11 = phi( main::@2/rand_state#3 ) rand::return#4 = phi( main::@2/rand::return#2 ) main::$10 = rand::return#4 - rand_state#4 = rand_state#11 main::rnd#0 = byte1 main::$10 main::$12 = main::rnd#0 & $80 main::$26 = 0 != main::$12 if(main::$26) goto main::@3 to:main::@9 main::@3: scope:[main] from main::@17 - rand_state#31 = phi( main::@17/rand_state#4 ) main::y#16 = phi( main::@17/main::y#11 ) main::x#9 = phi( main::@17/main::x#11 ) main::rnd#1 = phi( main::@17/main::rnd#0 ) @@ -148,7 +136,6 @@ main::@3: scope:[main] from main::@17 if(main::$27) goto main::@6 to:main::@12 main::@9: scope:[main] from main::@17 - rand_state#30 = phi( main::@17/rand_state#4 ) main::x#16 = phi( main::@17/main::x#11 ) main::y#9 = phi( main::@17/main::y#11 ) main::rnd#2 = phi( main::@17/main::rnd#0 ) @@ -157,7 +144,6 @@ main::@9: scope:[main] from main::@17 if(main::$28) goto main::@4 to:main::@10 main::@4: scope:[main] from main::@9 - rand_state#25 = phi( main::@9/rand_state#30 ) main::x#14 = phi( main::@9/main::x#16 ) main::y#6 = phi( main::@9/main::y#9 ) main::y#1 = ++ main::y#6 @@ -166,7 +152,6 @@ main::@4: scope:[main] from main::@9 if(main::$17) goto main::@8 to:main::@5 main::@10: scope:[main] from main::@9 - rand_state#21 = phi( main::@9/rand_state#30 ) main::x#12 = phi( main::@9/main::x#16 ) main::y#7 = phi( main::@9/main::y#9 ) main::y#2 = -- main::y#7 @@ -175,17 +160,14 @@ main::@10: scope:[main] from main::@9 if(main::$15) goto main::@8 to:main::@11 main::@11: scope:[main] from main::@10 - rand_state#22 = phi( main::@10/rand_state#21 ) main::x#13 = phi( main::@10/main::x#12 ) main::y#3 = 0 to:main::@8 main::@5: scope:[main] from main::@4 - rand_state#26 = phi( main::@4/rand_state#25 ) main::x#15 = phi( main::@4/main::x#14 ) main::y#4 = $18 to:main::@8 main::@6: scope:[main] from main::@3 - rand_state#27 = phi( main::@3/rand_state#31 ) main::y#14 = phi( main::@3/main::y#16 ) main::x#6 = phi( main::@3/main::x#9 ) main::x#1 = ++ main::x#6 @@ -194,7 +176,6 @@ main::@6: scope:[main] from main::@3 if(main::$22) goto main::@8 to:main::@7 main::@12: scope:[main] from main::@3 - rand_state#23 = phi( main::@3/rand_state#31 ) main::y#12 = phi( main::@3/main::y#16 ) main::x#7 = phi( main::@3/main::x#9 ) main::x#2 = -- main::x#7 @@ -203,25 +184,20 @@ main::@12: scope:[main] from main::@3 if(main::$20) goto main::@8 to:main::@13 main::@13: scope:[main] from main::@12 - rand_state#24 = phi( main::@12/rand_state#23 ) main::y#13 = phi( main::@12/main::y#12 ) main::x#3 = 0 to:main::@8 main::@7: scope:[main] from main::@6 - rand_state#28 = phi( main::@6/rand_state#27 ) main::y#15 = phi( main::@6/main::y#14 ) main::x#4 = $27 to:main::@8 main::@8: scope:[main] from main::@10 main::@11 main::@12 main::@13 main::@4 main::@5 main::@6 main::@7 main::@8 - rand_state#19 = phi( main::@10/rand_state#21, main::@11/rand_state#22, main::@12/rand_state#23, main::@13/rand_state#24, main::@4/rand_state#25, main::@5/rand_state#26, main::@6/rand_state#27, main::@7/rand_state#28, main::@8/rand_state#19 ) main::x#10 = phi( main::@10/main::x#12, main::@11/main::x#13, main::@12/main::x#2, main::@13/main::x#3, main::@4/main::x#14, main::@5/main::x#15, main::@6/main::x#1, main::@7/main::x#4, main::@8/main::x#10 ) main::y#10 = phi( main::@10/main::y#2, main::@11/main::y#3, main::@12/main::y#12, main::@13/main::y#13, main::@4/main::y#1, main::@5/main::y#4, main::@6/main::y#14, main::@7/main::y#15, main::@8/main::y#10 ) main::$23 = *((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO) != $ff if(main::$23) goto main::@8 to:main::@1 main::@return: scope:[main] from main::@1 - rand_state#12 = phi( main::@1/rand_state#16 ) - rand_state#5 = rand_state#12 return to:@return @@ -229,19 +205,14 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - rand_state#6 = 1 + rand_state = 1 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - rand_state#17 = phi( __start::__init1/rand_state#6 ) call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 - rand_state#13 = phi( __start::@1/rand_state#5 ) - rand_state#7 = rand_state#13 to:__start::@return __start::@return: scope:[__start] from __start::@2 - rand_state#14 = phi( __start::@2/rand_state#7 ) - rand_state#8 = rand_state#14 return to:@return @@ -381,45 +352,12 @@ unsigned int rand::return#1 unsigned int rand::return#2 unsigned int rand::return#3 unsigned int rand::return#4 -unsigned int rand_state -unsigned int rand_state#0 -unsigned int rand_state#1 -unsigned int rand_state#10 -unsigned int rand_state#11 -unsigned int rand_state#12 -unsigned int rand_state#13 -unsigned int rand_state#14 -unsigned int rand_state#15 -unsigned int rand_state#16 -unsigned int rand_state#17 -unsigned int rand_state#18 -unsigned int rand_state#19 -unsigned int rand_state#2 -unsigned int rand_state#20 -unsigned int rand_state#21 -unsigned int rand_state#22 -unsigned int rand_state#23 -unsigned int rand_state#24 -unsigned int rand_state#25 -unsigned int rand_state#26 -unsigned int rand_state#27 -unsigned int rand_state#28 -unsigned int rand_state#29 -unsigned int rand_state#3 -unsigned int rand_state#30 -unsigned int rand_state#31 -unsigned int rand_state#32 -unsigned int rand_state#4 -unsigned int rand_state#5 -unsigned int rand_state#6 -unsigned int rand_state#7 -unsigned int rand_state#8 -unsigned int rand_state#9 +__loadstore volatile unsigned int rand_state Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#3 > 0 -Adding number conversion cast (unumber) 7 in rand::$0 = rand_state#9 << 7 -Adding number conversion cast (unumber) 9 in rand::$1 = rand_state#0 >> 9 -Adding number conversion cast (unumber) 8 in rand::$2 = rand_state#1 << 8 +Adding number conversion cast (unumber) 7 in rand::$0 = rand_state << 7 +Adding number conversion cast (unumber) 9 in rand::$1 = rand_state >> 9 +Adding number conversion cast (unumber) 8 in rand::$2 = rand_state << 8 Adding number conversion cast (unumber) $a0 in memset::c#0 = $a0 Adding number conversion cast (unumber) $3e8 in memset::num#0 = $3e8 Adding number conversion cast (unumber) 0 in memset::c#1 = 0 @@ -534,10 +472,10 @@ Inferred type updated to char in main::$12 = main::rnd#0 & $80 Inferred type updated to char in main::$18 = main::rnd#1 & $40 Inferred type updated to char in main::$13 = main::rnd#2 & $40 Inversing boolean not [2] memset::$1 = memset::num#3 <= 0 from [1] memset::$0 = memset::num#3 > 0 -Inversing boolean not [88] main::$17 = main::y#1 != $19 from [87] main::$16 = main::y#1 == $19 -Inversing boolean not [93] main::$15 = main::y#2 != $ff from [92] main::$14 = main::y#2 == $ff -Inversing boolean not [102] main::$22 = main::x#1 != $28 from [101] main::$21 = main::x#1 == $28 -Inversing boolean not [107] main::$20 = main::x#2 != $ff from [106] main::$19 = main::x#2 == $ff +Inversing boolean not [81] main::$17 = main::y#1 != $19 from [80] main::$16 = main::y#1 == $19 +Inversing boolean not [86] main::$15 = main::y#2 != $ff from [85] main::$14 = main::y#2 == $ff +Inversing boolean not [95] main::$22 = main::x#1 != $28 from [94] main::$21 = main::x#1 == $28 +Inversing boolean not [100] main::$20 = main::x#2 != $ff from [99] main::$19 = main::x#2 == $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 @@ -548,41 +486,30 @@ Alias memset::dst#2 = memset::dst#3 Alias memset::end#1 = memset::end#2 Alias memset::str#6 = memset::str#7 Alias rand::return#0 = rand::return#3 rand::return#1 -Alias rand_state#10 = rand_state#2 rand_state#3 -Alias rand_state#18 = rand_state#29 rand_state#32 rand_state#20 Alias main::y#11 = main::y#5 main::y#8 main::y#16 main::y#9 main::y#6 main::y#7 main::y#14 main::y#12 main::y#13 main::y#15 Alias main::x#11 = main::x#5 main::x#8 main::x#9 main::x#16 main::x#14 main::x#12 main::x#13 main::x#15 main::x#6 main::x#7 -Alias rand_state#12 = rand_state#15 rand_state#16 rand_state#5 Alias rand::return#2 = rand::return#4 -Alias rand_state#11 = rand_state#4 rand_state#31 rand_state#30 rand_state#25 rand_state#21 rand_state#22 rand_state#26 rand_state#27 rand_state#23 rand_state#24 rand_state#28 Alias main::rnd#0 = main::rnd#1 main::rnd#2 -Alias rand_state#17 = rand_state#6 -Alias rand_state#13 = rand_state#7 rand_state#14 rand_state#8 Successful SSA optimization Pass2AliasElimination Identical Phi Values memset::end#1 memset::end#0 Identical Phi Values memset::str#6 memset::str#4 Identical Phi Values memset::c#3 memset::c#5 -Identical Phi Values rand_state#9 rand_state#12 -Identical Phi Values rand_state#18 rand_state#17 -Identical Phi Values rand_state#11 rand_state#10 -Identical Phi Values rand_state#19 rand_state#11 -Identical Phi Values rand_state#13 rand_state#12 Successful SSA optimization Pass2IdenticalPhiElimination Identical Phi Values memset::return#0 memset::str#4 Successful SSA optimization Pass2IdenticalPhiElimination -Identified duplicate assignment right side [63] main::$6 = VISITS + main::offset#0 +Identified duplicate assignment right side [57] main::$6 = VISITS + main::offset#0 Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition memset::$1 [2] if(memset::num#3<=0) goto memset::@1 Simple Condition memset::$3 [9] if(memset::dst#2!=memset::end#0) goto memset::@4 -Simple Condition main::$25 [44] if(0!=1) goto main::@2 -Simple Condition main::$26 [62] if(0!=main::$12) goto main::@3 -Simple Condition main::$27 [65] if(0!=main::$18) goto main::@6 -Simple Condition main::$28 [68] if(0!=main::$13) goto main::@4 -Simple Condition main::$17 [71] if(main::y#1!=$19) goto main::@8 -Simple Condition main::$15 [74] if(main::y#2!=$ff) goto main::@8 -Simple Condition main::$22 [79] if(main::x#1!=$28) goto main::@8 -Simple Condition main::$20 [82] if(main::x#2!=$ff) goto main::@8 -Simple Condition main::$23 [87] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@8 +Simple Condition main::$25 [42] if(0!=1) goto main::@2 +Simple Condition main::$26 [59] if(0!=main::$12) goto main::@3 +Simple Condition main::$27 [62] if(0!=main::$18) goto main::@6 +Simple Condition main::$28 [65] if(0!=main::$13) goto main::@4 +Simple Condition main::$17 [68] if(main::y#1!=$19) goto main::@8 +Simple Condition main::$15 [71] if(main::y#2!=$ff) goto main::@8 +Simple Condition main::$22 [76] if(main::x#1!=$28) goto main::@8 +Simple Condition main::$20 [79] if(main::x#2!=$ff) goto main::@8 +Simple Condition main::$23 [84] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@8 Successful SSA optimization Pass2ConditionalJumpSimplification Constant memset::str#0 = (void *)DEFAULT_SCREEN Constant memset::c#0 = $a0 @@ -599,9 +526,8 @@ Constant main::y#3 = 0 Constant main::y#4 = $18 Constant main::x#3 = 0 Constant main::x#4 = $27 -Constant rand_state#17 = 1 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [44] if(0!=1) goto main::@2 +if() condition always true - replacing block destination [42] if(0!=1) goto main::@2 Successful SSA optimization Pass2ConstantIfs Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -609,13 +535,6 @@ Eliminating unused variable memset::return#2 and assignment [19] memset::return# Eliminating unused variable memset::return#3 and assignment [21] memset::return#3 = memset::str#4 Eliminating unused variable memset::return#4 and assignment [23] memset::return#4 = memset::str#4 Successful SSA optimization PassNEliminateUnusedVars -Removing unused procedure __start -Removing unused procedure block __start -Removing unused procedure block __start::__init1 -Removing unused procedure block __start::@1 -Removing unused procedure block __start::@2 -Removing unused procedure block __start::@return -Successful SSA optimization PassNEliminateEmptyStart Alias main::$6 = main::$5 Successful SSA optimization Pass2AliasElimination Inlining Noop Cast [2] memset::$4 = (char *)memset::str#4 keeping memset::str#4 @@ -637,10 +556,8 @@ Inlining constant with var siblings main::y#3 Inlining constant with var siblings main::y#4 Inlining constant with var siblings main::x#3 Inlining constant with var siblings main::x#4 -Inlining constant with var siblings rand_state#17 Constant inlined memset::str#2 = (void *)VISITS Constant inlined memset::str#1 = (void *)DEFAULT_COLORRAM -Constant inlined rand_state#17 = 1 Constant inlined memset::str#0 = (void *)DEFAULT_SCREEN Constant inlined memset::num#2 = $3e8 Constant inlined main::x#3 = 0 @@ -677,33 +594,37 @@ Added new block during phi lifting main::@20(between main::@12 and main::@8) Added new block during phi lifting main::@21(between main::@4 and main::@8) Added new block during phi lifting main::@22(between main::@6 and main::@8) Added new block during phi lifting main::@23(between main::@8 and main::@8) +Adding NOP phi() at start of __start +Adding NOP phi() at start of __start::@1 +Adding NOP phi() at start of __start::@2 Adding NOP phi() at start of main Adding NOP phi() at start of main::@14 Adding NOP phi() at start of main::@15 Adding NOP phi() at start of memset::@1 CALL GRAPH -Calls in [main] to memset:1 memset:3 memset:5 rand:20 +Calls in [__start] to main:3 +Calls in [main] to memset:7 memset:9 memset:11 rand:26 -Created 8 initial phi equivalence classes -Coalesced [30] main::x#19 = main::x#11 -Coalesced [33] main::y#17 = main::y#10 -Coalesced (already) [34] main::x#17 = main::x#10 -Coalesced [35] rand_state#33 = rand_state#10 -Coalesced (already) [36] main::y#24 = main::y#10 -Coalesced (already) [37] main::x#24 = main::x#10 -Coalesced [38] main::y#18 = main::y#2 -Coalesced (already) [39] main::x#18 = main::x#11 -Coalesced (already) [42] main::x#22 = main::x#11 -Coalesced [43] main::y#21 = main::y#1 -Coalesced (already) [44] main::x#21 = main::x#11 -Coalesced (already) [49] main::y#20 = main::y#11 -Coalesced (already) [50] main::y#19 = main::y#11 -Coalesced [51] main::x#20 = main::x#2 -Coalesced (already) [54] main::y#23 = main::y#11 -Coalesced (already) [55] main::y#22 = main::y#11 -Coalesced [56] main::x#23 = main::x#1 -Coalesced [66] memset::dst#5 = memset::dst#1 -Coalesced down to 6 phi equivalence classes +Created 7 initial phi equivalence classes +Coalesced [36] main::x#19 = main::x#11 +Coalesced [39] main::y#17 = main::y#10 +Coalesced (already) [40] main::x#17 = main::x#10 +Coalesced (already) [41] main::y#24 = main::y#10 +Coalesced (already) [42] main::x#24 = main::x#10 +Coalesced [43] main::y#18 = main::y#2 +Coalesced (already) [44] main::x#18 = main::x#11 +Coalesced (already) [47] main::x#22 = main::x#11 +Coalesced [48] main::y#21 = main::y#1 +Coalesced (already) [49] main::x#21 = main::x#11 +Coalesced (already) [54] main::y#20 = main::y#11 +Coalesced (already) [55] main::y#19 = main::y#11 +Coalesced [56] main::x#20 = main::x#2 +Coalesced (already) [59] main::y#23 = main::y#11 +Coalesced (already) [60] main::y#22 = main::y#11 +Coalesced [61] main::x#23 = main::x#1 +Coalesced [71] memset::dst#5 = memset::dst#1 +Coalesced down to 5 phi equivalence classes +Culled Empty Block label __start::@2 Culled Empty Block label main::@11 Culled Empty Block label main::@18 Culled Empty Block label main::@23 @@ -727,6 +648,8 @@ Renumbering block main::@19 to main::@14 Renumbering block main::@20 to main::@15 Renumbering block main::@21 to main::@16 Renumbering block main::@22 to main::@17 +Adding NOP phi() at start of __start +Adding NOP phi() at start of __start::@1 Adding NOP phi() at start of main Adding NOP phi() at start of main::@10 Adding NOP phi() at start of main::@11 @@ -737,189 +660,200 @@ Adding NOP phi() at start of main::@17 FINAL CONTROL FLOW GRAPH -void main() -main: scope:[main] from +void __start() +__start: scope:[__start] from [0] phi() - [1] call memset + to:__start::__init1 +__start::__init1: scope:[__start] from __start + [1] rand_state = 1 + to:__start::@1 +__start::@1: scope:[__start] from __start::__init1 + [2] phi() + [3] call main + to:__start::@return +__start::@return: scope:[__start] from __start::@1 + [4] return + to:@return + +void main() +main: scope:[main] from __start::@1 + [5] phi() + [6] call memset to:main::@10 main::@10: scope:[main] from main - [2] phi() - [3] call memset + [7] phi() + [8] call memset to:main::@11 main::@11: scope:[main] from main::@10 - [4] phi() - [5] call memset + [9] phi() + [10] call memset to:main::@12 main::@12: scope:[main] from main::@11 - [6] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 - [7] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 + [11] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 + [12] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 to:main::@1 main::@1: scope:[main] from main::@12 main::@6 - [8] rand_state#12 = phi( main::@12/1, main::@6/rand_state#10 ) - [8] main::x#11 = phi( main::@12/$14, main::@6/main::x#10 ) - [8] main::y#11 = phi( main::@12/$c, main::@6/main::y#10 ) + [13] main::x#11 = phi( main::@12/$14, main::@6/main::x#10 ) + [13] main::y#11 = phi( main::@12/$c, main::@6/main::y#10 ) to:main::@2 main::@2: scope:[main] from main::@1 - [9] main::$24 = (unsigned int)main::y#11 - [10] main::$29 = main::$24 << 2 - [11] main::$30 = main::$29 + main::$24 - [12] main::$3 = main::$30 << 3 - [13] main::offset#0 = main::$3 + main::x#11 - [14] main::$6 = VISITS + main::offset#0 - [15] *main::$6 = ++ *main::$6 - [16] main::cnt#0 = *main::$6 - [17] main::$8 = DEFAULT_COLORRAM + main::offset#0 - [18] main::$9 = main::cnt#0 & $f - [19] *main::$8 = FADE[main::$9] - [20] call rand - [21] rand::return#2 = rand::return#0 + [14] main::$24 = (unsigned int)main::y#11 + [15] main::$29 = main::$24 << 2 + [16] main::$30 = main::$29 + main::$24 + [17] main::$3 = main::$30 << 3 + [18] main::offset#0 = main::$3 + main::x#11 + [19] main::$6 = VISITS + main::offset#0 + [20] *main::$6 = ++ *main::$6 + [21] main::cnt#0 = *main::$6 + [22] main::$8 = DEFAULT_COLORRAM + main::offset#0 + [23] main::$9 = main::cnt#0 & $f + [24] *main::$8 = FADE[main::$9] + [25] call rand + [26] rand::return#2 = rand::return#0 to:main::@13 main::@13: scope:[main] from main::@2 - [22] main::$10 = rand::return#2 - [23] main::rnd#0 = byte1 main::$10 - [24] main::$12 = main::rnd#0 & $80 - [25] if(0!=main::$12) goto main::@3 + [27] main::$10 = rand::return#2 + [28] main::rnd#0 = byte1 main::$10 + [29] main::$12 = main::rnd#0 & $80 + [30] if(0!=main::$12) goto main::@3 to:main::@7 main::@7: scope:[main] from main::@13 - [26] main::$13 = main::rnd#0 & $40 - [27] if(0!=main::$13) goto main::@4 + [31] main::$13 = main::rnd#0 & $40 + [32] if(0!=main::$13) goto main::@4 to:main::@8 main::@8: scope:[main] from main::@7 - [28] main::y#2 = -- main::y#11 - [29] if(main::y#2!=$ff) goto main::@14 + [33] main::y#2 = -- main::y#11 + [34] if(main::y#2!=$ff) goto main::@14 to:main::@6 main::@14: scope:[main] from main::@8 - [30] phi() - to:main::@6 -main::@6: scope:[main] from main::@14 main::@15 main::@16 main::@17 main::@4 main::@5 main::@6 main::@8 main::@9 - [31] main::x#10 = phi( main::@14/main::x#11, main::@8/main::x#11, main::@15/main::x#2, main::@9/0, main::@16/main::x#11, main::@4/main::x#11, main::@17/main::x#1, main::@5/$27, main::@6/main::x#10 ) - [31] main::y#10 = phi( main::@14/main::y#2, main::@8/0, main::@15/main::y#11, main::@9/main::y#11, main::@16/main::y#1, main::@4/$18, main::@17/main::y#11, main::@5/main::y#11, main::@6/main::y#10 ) - [32] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 - to:main::@1 -main::@4: scope:[main] from main::@7 - [33] main::y#1 = ++ main::y#11 - [34] if(main::y#1!=$19) goto main::@16 - to:main::@6 -main::@16: scope:[main] from main::@4 [35] phi() to:main::@6 -main::@3: scope:[main] from main::@13 - [36] main::$18 = main::rnd#0 & $40 - [37] if(0!=main::$18) goto main::@5 - to:main::@9 -main::@9: scope:[main] from main::@3 - [38] main::x#2 = -- main::x#11 - [39] if(main::x#2!=$ff) goto main::@15 +main::@6: scope:[main] from main::@14 main::@15 main::@16 main::@17 main::@4 main::@5 main::@6 main::@8 main::@9 + [36] main::x#10 = phi( main::@14/main::x#11, main::@8/main::x#11, main::@15/main::x#2, main::@9/0, main::@16/main::x#11, main::@4/main::x#11, main::@17/main::x#1, main::@5/$27, main::@6/main::x#10 ) + [36] main::y#10 = phi( main::@14/main::y#2, main::@8/0, main::@15/main::y#11, main::@9/main::y#11, main::@16/main::y#1, main::@4/$18, main::@17/main::y#11, main::@5/main::y#11, main::@6/main::y#10 ) + [37] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 + to:main::@1 +main::@4: scope:[main] from main::@7 + [38] main::y#1 = ++ main::y#11 + [39] if(main::y#1!=$19) goto main::@16 to:main::@6 -main::@15: scope:[main] from main::@9 +main::@16: scope:[main] from main::@4 [40] phi() to:main::@6 +main::@3: scope:[main] from main::@13 + [41] main::$18 = main::rnd#0 & $40 + [42] if(0!=main::$18) goto main::@5 + to:main::@9 +main::@9: scope:[main] from main::@3 + [43] main::x#2 = -- main::x#11 + [44] if(main::x#2!=$ff) goto main::@15 + to:main::@6 +main::@15: scope:[main] from main::@9 + [45] phi() + to:main::@6 main::@5: scope:[main] from main::@3 - [41] main::x#1 = ++ main::x#11 - [42] if(main::x#1!=$28) goto main::@17 + [46] main::x#1 = ++ main::x#11 + [47] if(main::x#1!=$28) goto main::@17 to:main::@6 main::@17: scope:[main] from main::@5 - [43] phi() + [48] phi() to:main::@6 void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main main::@10 main::@11 - [44] memset::c#5 = phi( main/$a0, main::@10/0, main::@11/0 ) - [44] memset::str#4 = phi( main/(void *)DEFAULT_SCREEN, main::@10/(void *)DEFAULT_COLORRAM, main::@11/(void *)VISITS ) + [49] memset::c#5 = phi( main/$a0, main::@10/0, main::@11/0 ) + [49] memset::str#4 = phi( main/(void *)DEFAULT_SCREEN, main::@10/(void *)DEFAULT_COLORRAM, main::@11/(void *)VISITS ) to:memset::@1 memset::@1: scope:[memset] from memset - [45] memset::end#0 = (char *)memset::str#4 + $3e8 - [46] memset::dst#4 = (char *)memset::str#4 + [50] memset::end#0 = (char *)memset::str#4 + $3e8 + [51] memset::dst#4 = (char *)memset::str#4 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 - [47] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) - [48] if(memset::dst#2!=memset::end#0) goto memset::@3 + [52] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) + [53] if(memset::dst#2!=memset::end#0) goto memset::@3 to:memset::@return memset::@return: scope:[memset] from memset::@2 - [49] return + [54] return to:@return memset::@3: scope:[memset] from memset::@2 - [50] *memset::dst#2 = memset::c#5 - [51] memset::dst#1 = ++ memset::dst#2 + [55] *memset::dst#2 = memset::c#5 + [56] memset::dst#1 = ++ memset::dst#2 to:memset::@2 unsigned int rand() rand: scope:[rand] from main::@2 - [52] rand::$0 = rand_state#12 << 7 - [53] rand_state#0 = rand_state#12 ^ rand::$0 - [54] rand::$1 = rand_state#0 >> 9 - [55] rand_state#1 = rand_state#0 ^ rand::$1 - [56] rand::$2 = rand_state#1 << 8 - [57] rand_state#10 = rand_state#1 ^ rand::$2 - [58] rand::return#0 = rand_state#10 + [57] rand::$0 = rand_state << 7 + [58] rand_state = rand_state ^ rand::$0 + [59] rand::$1 = rand_state >> 9 + [60] rand_state = rand_state ^ rand::$1 + [61] rand::$2 = rand_state << 8 + [62] rand_state = rand_state ^ rand::$2 + [63] rand::return#0 = rand_state to:rand::@return rand::@return: scope:[rand] from rand - [59] return + [64] return to:@return VARIABLE REGISTER WEIGHTS +void __start() void main() -unsigned int main::$10 // 22.0 -char main::$12 // 22.0 -char main::$13 // 22.0 -char main::$18 // 22.0 -unsigned int main::$24 // 16.5 -unsigned int main::$29 // 22.0 -unsigned int main::$3 // 22.0 -unsigned int main::$30 // 22.0 -char *main::$6 // 22.0 -char *main::$8 // 11.0 -char main::$9 // 22.0 +unsigned int main::$10 // 202.0 +char main::$12 // 202.0 +char main::$13 // 202.0 +char main::$18 // 202.0 +unsigned int main::$24 // 151.5 +unsigned int main::$29 // 202.0 +unsigned int main::$3 // 202.0 +unsigned int main::$30 // 202.0 +char *main::$6 // 202.0 +char *main::$8 // 101.0 +char main::$9 // 202.0 char main::cnt -char main::cnt#0 // 11.0 +char main::cnt#0 // 101.0 unsigned int main::offset -unsigned int main::offset#0 // 8.25 +unsigned int main::offset#0 // 75.75 char main::rnd -char main::rnd#0 // 14.666666666666666 +char main::rnd#0 // 134.66666666666666 char main::x -char main::x#1 // 11.0 -char main::x#10 // 184.5 -char main::x#11 // 6.357142857142859 -char main::x#2 // 11.0 +char main::x#1 // 101.0 +char main::x#10 // 1804.5 +char main::x#11 // 60.99999999999998 +char main::x#2 // 101.0 char main::y -char main::y#1 // 11.0 -char main::y#10 // 184.5 -char main::y#11 // 5.964285714285716 -char main::y#2 // 11.0 +char main::y#1 // 101.0 +char main::y#10 // 1804.5 +char main::y#11 // 57.392857142857125 +char main::y#2 // 101.0 void * memset(void *str , char c , unsigned int num) char memset::c -char memset::c#5 // 14.428571428571429 +char memset::c#5 // 143.0 char *memset::dst -char *memset::dst#1 // 202.0 -char *memset::dst#2 // 138.33333333333331 -char *memset::dst#4 // 22.0 +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1368.3333333333335 +char *memset::dst#4 // 202.0 char *memset::end -char *memset::end#0 // 18.666666666666664 +char *memset::end#0 // 183.66666666666669 unsigned int memset::num void *memset::return void *memset::str void *memset::str#4 unsigned int rand() -unsigned int rand::$0 // 202.0 -unsigned int rand::$1 // 202.0 -unsigned int rand::$2 // 202.0 +unsigned int rand::$0 // 2002.0 +unsigned int rand::$1 // 2002.0 +unsigned int rand::$2 // 2002.0 unsigned int rand::return -unsigned int rand::return#0 // 37.33333333333333 -unsigned int rand::return#2 // 22.0 -unsigned int rand_state -unsigned int rand_state#0 // 151.5 -unsigned int rand_state#1 // 151.5 -unsigned int rand_state#10 // 11.222222222222223 -unsigned int rand_state#12 // 23.307692307692307 +unsigned int rand::return#0 // 367.33333333333337 +unsigned int rand::return#2 // 202.0 +__loadstore volatile unsigned int rand_state // 185.40740740740742 Initial phi equivalence classes [ main::y#11 main::y#10 main::y#2 main::y#1 ] [ main::x#11 main::x#10 main::x#2 main::x#1 ] -[ rand_state#12 rand_state#10 ] [ memset::str#4 ] [ memset::c#5 ] [ memset::dst#2 memset::dst#4 memset::dst#1 ] +Added variable rand_state to live range equivalence class [ rand_state ] Added variable main::$24 to live range equivalence class [ main::$24 ] Added variable main::$29 to live range equivalence class [ main::$29 ] Added variable main::$30 to live range equivalence class [ main::$30 ] @@ -937,18 +871,16 @@ Added variable main::$13 to live range equivalence class [ main::$13 ] Added variable main::$18 to live range equivalence class [ main::$18 ] Added variable memset::end#0 to live range equivalence class [ memset::end#0 ] Added variable rand::$0 to live range equivalence class [ rand::$0 ] -Added variable rand_state#0 to live range equivalence class [ rand_state#0 ] Added variable rand::$1 to live range equivalence class [ rand::$1 ] -Added variable rand_state#1 to live range equivalence class [ rand_state#1 ] Added variable rand::$2 to live range equivalence class [ rand::$2 ] Added variable rand::return#0 to live range equivalence class [ rand::return#0 ] Complete equivalence classes [ main::y#11 main::y#10 main::y#2 main::y#1 ] [ main::x#11 main::x#10 main::x#2 main::x#1 ] -[ rand_state#12 rand_state#10 ] [ memset::str#4 ] [ memset::c#5 ] [ memset::dst#2 memset::dst#4 memset::dst#1 ] +[ rand_state ] [ main::$24 ] [ main::$29 ] [ main::$30 ] @@ -966,9 +898,7 @@ Complete equivalence classes [ main::$18 ] [ memset::end#0 ] [ rand::$0 ] -[ rand_state#0 ] [ rand::$1 ] -[ rand_state#1 ] [ rand::$2 ] [ rand::return#0 ] Allocated zp[2]:2 [ memset::dst#2 memset::dst#4 memset::dst#1 ] @@ -977,170 +907,168 @@ Allocated zp[1]:5 [ main::y#11 main::y#10 main::y#2 main::y#1 ] Allocated zp[2]:6 [ rand::$0 ] Allocated zp[2]:8 [ rand::$1 ] Allocated zp[2]:10 [ rand::$2 ] -Allocated zp[2]:12 [ rand_state#0 ] -Allocated zp[2]:14 [ rand_state#1 ] -Allocated zp[2]:16 [ rand::return#0 ] -Allocated zp[2]:18 [ rand_state#12 rand_state#10 ] -Allocated zp[2]:20 [ main::$29 ] -Allocated zp[2]:22 [ main::$30 ] -Allocated zp[2]:24 [ main::$3 ] -Allocated zp[2]:26 [ main::$6 ] -Allocated zp[1]:28 [ main::$9 ] -Allocated zp[2]:29 [ rand::return#2 ] -Allocated zp[2]:31 [ main::$10 ] -Allocated zp[1]:33 [ main::$12 ] -Allocated zp[1]:34 [ main::$13 ] -Allocated zp[1]:35 [ main::$18 ] -Allocated zp[2]:36 [ memset::end#0 ] -Allocated zp[2]:38 [ main::$24 ] -Allocated zp[1]:40 [ main::rnd#0 ] -Allocated zp[1]:41 [ memset::c#5 ] -Allocated zp[1]:42 [ main::cnt#0 ] -Allocated zp[2]:43 [ main::$8 ] -Allocated zp[2]:45 [ main::offset#0 ] -Allocated zp[2]:47 [ memset::str#4 ] +Allocated zp[2]:12 [ rand::return#0 ] +Allocated zp[2]:14 [ main::$29 ] +Allocated zp[2]:16 [ main::$30 ] +Allocated zp[2]:18 [ main::$3 ] +Allocated zp[2]:20 [ main::$6 ] +Allocated zp[1]:22 [ main::$9 ] +Allocated zp[2]:23 [ rand::return#2 ] +Allocated zp[2]:25 [ main::$10 ] +Allocated zp[1]:27 [ main::$12 ] +Allocated zp[1]:28 [ main::$13 ] +Allocated zp[1]:29 [ main::$18 ] +Allocated zp[2]:30 [ rand_state ] +Allocated zp[2]:32 [ memset::end#0 ] +Allocated zp[2]:34 [ main::$24 ] +Allocated zp[1]:36 [ memset::c#5 ] +Allocated zp[1]:37 [ main::rnd#0 ] +Allocated zp[1]:38 [ main::cnt#0 ] +Allocated zp[2]:39 [ main::$8 ] +Allocated zp[2]:41 [ main::offset#0 ] +Allocated zp[2]:43 [ memset::str#4 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [6] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [9] main::$24 = (unsigned int)main::y#11 [ main::y#11 main::x#11 rand_state#12 main::$24 ] ( [ main::y#11 main::x#11 rand_state#12 main::$24 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [1] rand_state = 1 [ rand_state ] ( [ rand_state ] { } ) always clobbers reg byte a +Statement [11] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 [ rand_state ] ( main:3 [ rand_state ] { } ) always clobbers reg byte a +Statement [12] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 [ rand_state ] ( main:3 [ rand_state ] { } ) always clobbers reg byte a +Statement [14] main::$24 = (unsigned int)main::y#11 [ rand_state main::y#11 main::x#11 main::$24 ] ( main:3 [ rand_state main::y#11 main::x#11 main::$24 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ main::y#11 main::y#10 main::y#2 main::y#1 ] Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::x#11 main::x#10 main::x#2 main::x#1 ] -Statement [10] main::$29 = main::$24 << 2 [ main::y#11 main::x#11 rand_state#12 main::$24 main::$29 ] ( [ main::y#11 main::x#11 rand_state#12 main::$24 main::$29 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [11] main::$30 = main::$29 + main::$24 [ main::y#11 main::x#11 rand_state#12 main::$30 ] ( [ main::y#11 main::x#11 rand_state#12 main::$30 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [12] main::$3 = main::$30 << 3 [ main::y#11 main::x#11 rand_state#12 main::$3 ] ( [ main::y#11 main::x#11 rand_state#12 main::$3 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [13] main::offset#0 = main::$3 + main::x#11 [ main::y#11 main::x#11 rand_state#12 main::offset#0 ] ( [ main::y#11 main::x#11 rand_state#12 main::offset#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [14] main::$6 = VISITS + main::offset#0 [ main::y#11 main::x#11 rand_state#12 main::offset#0 main::$6 ] ( [ main::y#11 main::x#11 rand_state#12 main::offset#0 main::$6 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [15] *main::$6 = ++ *main::$6 [ main::y#11 main::x#11 rand_state#12 main::offset#0 main::$6 ] ( [ main::y#11 main::x#11 rand_state#12 main::offset#0 main::$6 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y +Statement [15] main::$29 = main::$24 << 2 [ rand_state main::y#11 main::x#11 main::$24 main::$29 ] ( main:3 [ rand_state main::y#11 main::x#11 main::$24 main::$29 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [16] main::$30 = main::$29 + main::$24 [ rand_state main::y#11 main::x#11 main::$30 ] ( main:3 [ rand_state main::y#11 main::x#11 main::$30 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [17] main::$3 = main::$30 << 3 [ rand_state main::y#11 main::x#11 main::$3 ] ( main:3 [ rand_state main::y#11 main::x#11 main::$3 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [18] main::offset#0 = main::$3 + main::x#11 [ rand_state main::y#11 main::x#11 main::offset#0 ] ( main:3 [ rand_state main::y#11 main::x#11 main::offset#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [19] main::$6 = VISITS + main::offset#0 [ rand_state main::y#11 main::x#11 main::offset#0 main::$6 ] ( main:3 [ rand_state main::y#11 main::x#11 main::offset#0 main::$6 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [20] *main::$6 = ++ *main::$6 [ rand_state main::y#11 main::x#11 main::offset#0 main::$6 ] ( main:3 [ rand_state main::y#11 main::x#11 main::offset#0 main::$6 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:5 [ main::y#11 main::y#10 main::y#2 main::y#1 ] Removing always clobbered register reg byte y as potential for zp[1]:4 [ main::x#11 main::x#10 main::x#2 main::x#1 ] -Statement [16] main::cnt#0 = *main::$6 [ main::y#11 main::x#11 rand_state#12 main::offset#0 main::cnt#0 ] ( [ main::y#11 main::x#11 rand_state#12 main::offset#0 main::cnt#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y -Statement [17] main::$8 = DEFAULT_COLORRAM + main::offset#0 [ main::y#11 main::x#11 rand_state#12 main::cnt#0 main::$8 ] ( [ main::y#11 main::x#11 rand_state#12 main::cnt#0 main::$8 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:42 [ main::cnt#0 ] -Statement [18] main::$9 = main::cnt#0 & $f [ main::y#11 main::x#11 rand_state#12 main::$8 main::$9 ] ( [ main::y#11 main::x#11 rand_state#12 main::$8 main::$9 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [19] *main::$8 = FADE[main::$9] [ main::y#11 main::x#11 rand_state#12 ] ( [ main::y#11 main::x#11 rand_state#12 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y -Statement [21] rand::return#2 = rand::return#0 [ main::y#11 main::x#11 rand_state#10 rand::return#2 ] ( [ main::y#11 main::x#11 rand_state#10 rand::return#2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [22] main::$10 = rand::return#2 [ main::y#11 main::x#11 rand_state#10 main::$10 ] ( [ main::y#11 main::x#11 rand_state#10 main::$10 ] { } ) always clobbers reg byte a -Statement [32] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 [ main::y#10 main::x#10 rand_state#10 ] ( [ main::y#10 main::x#10 rand_state#10 ] { } ) always clobbers reg byte a -Statement [45] memset::end#0 = (char *)memset::str#4 + $3e8 [ memset::str#4 memset::c#5 memset::end#0 ] ( memset:1 [ memset::str#4 memset::c#5 memset::end#0 ] { } memset:3 [ memset::str#4 memset::c#5 memset::end#0 ] { } memset:5 [ memset::str#4 memset::c#5 memset::end#0 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:41 [ memset::c#5 ] -Statement [46] memset::dst#4 = (char *)memset::str#4 [ memset::c#5 memset::end#0 memset::dst#4 ] ( memset:1 [ memset::c#5 memset::end#0 memset::dst#4 ] { } memset:3 [ memset::c#5 memset::end#0 memset::dst#4 ] { } memset:5 [ memset::c#5 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a -Statement [48] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#5 memset::end#0 memset::dst#2 ] ( memset:1 [ memset::c#5 memset::end#0 memset::dst#2 ] { } memset:3 [ memset::c#5 memset::end#0 memset::dst#2 ] { } memset:5 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a -Statement [50] *memset::dst#2 = memset::c#5 [ memset::c#5 memset::end#0 memset::dst#2 ] ( memset:1 [ memset::c#5 memset::end#0 memset::dst#2 ] { } memset:3 [ memset::c#5 memset::end#0 memset::dst#2 ] { } memset:5 [ 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]:41 [ memset::c#5 ] -Statement [52] rand::$0 = rand_state#12 << 7 [ rand_state#12 rand::$0 ] ( rand:20 [ main::y#11 main::x#11 rand_state#12 rand::$0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [53] rand_state#0 = rand_state#12 ^ rand::$0 [ rand_state#0 ] ( rand:20 [ main::y#11 main::x#11 rand_state#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [54] rand::$1 = rand_state#0 >> 9 [ rand_state#0 rand::$1 ] ( rand:20 [ main::y#11 main::x#11 rand_state#0 rand::$1 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [55] rand_state#1 = rand_state#0 ^ rand::$1 [ rand_state#1 ] ( rand:20 [ main::y#11 main::x#11 rand_state#1 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [56] rand::$2 = rand_state#1 << 8 [ rand_state#1 rand::$2 ] ( rand:20 [ main::y#11 main::x#11 rand_state#1 rand::$2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [57] rand_state#10 = rand_state#1 ^ rand::$2 [ rand_state#10 ] ( rand:20 [ main::y#11 main::x#11 rand_state#10 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [58] rand::return#0 = rand_state#10 [ rand_state#10 rand::return#0 ] ( rand:20 [ main::y#11 main::x#11 rand_state#10 rand::return#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [6] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [9] main::$24 = (unsigned int)main::y#11 [ main::y#11 main::x#11 rand_state#12 main::$24 ] ( [ main::y#11 main::x#11 rand_state#12 main::$24 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [10] main::$29 = main::$24 << 2 [ main::y#11 main::x#11 rand_state#12 main::$24 main::$29 ] ( [ main::y#11 main::x#11 rand_state#12 main::$24 main::$29 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [11] main::$30 = main::$29 + main::$24 [ main::y#11 main::x#11 rand_state#12 main::$30 ] ( [ main::y#11 main::x#11 rand_state#12 main::$30 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [12] main::$3 = main::$30 << 3 [ main::y#11 main::x#11 rand_state#12 main::$3 ] ( [ main::y#11 main::x#11 rand_state#12 main::$3 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [13] main::offset#0 = main::$3 + main::x#11 [ main::y#11 main::x#11 rand_state#12 main::offset#0 ] ( [ main::y#11 main::x#11 rand_state#12 main::offset#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [14] main::$6 = VISITS + main::offset#0 [ main::y#11 main::x#11 rand_state#12 main::offset#0 main::$6 ] ( [ main::y#11 main::x#11 rand_state#12 main::offset#0 main::$6 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [15] *main::$6 = ++ *main::$6 [ main::y#11 main::x#11 rand_state#12 main::offset#0 main::$6 ] ( [ main::y#11 main::x#11 rand_state#12 main::offset#0 main::$6 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y -Statement [16] main::cnt#0 = *main::$6 [ main::y#11 main::x#11 rand_state#12 main::offset#0 main::cnt#0 ] ( [ main::y#11 main::x#11 rand_state#12 main::offset#0 main::cnt#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y -Statement [17] main::$8 = DEFAULT_COLORRAM + main::offset#0 [ main::y#11 main::x#11 rand_state#12 main::cnt#0 main::$8 ] ( [ main::y#11 main::x#11 rand_state#12 main::cnt#0 main::$8 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [18] main::$9 = main::cnt#0 & $f [ main::y#11 main::x#11 rand_state#12 main::$8 main::$9 ] ( [ main::y#11 main::x#11 rand_state#12 main::$8 main::$9 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [19] *main::$8 = FADE[main::$9] [ main::y#11 main::x#11 rand_state#12 ] ( [ main::y#11 main::x#11 rand_state#12 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y -Statement [21] rand::return#2 = rand::return#0 [ main::y#11 main::x#11 rand_state#10 rand::return#2 ] ( [ main::y#11 main::x#11 rand_state#10 rand::return#2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [22] main::$10 = rand::return#2 [ main::y#11 main::x#11 rand_state#10 main::$10 ] ( [ main::y#11 main::x#11 rand_state#10 main::$10 ] { } ) always clobbers reg byte a -Statement [32] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 [ main::y#10 main::x#10 rand_state#10 ] ( [ main::y#10 main::x#10 rand_state#10 ] { } ) always clobbers reg byte a -Statement [45] memset::end#0 = (char *)memset::str#4 + $3e8 [ memset::str#4 memset::c#5 memset::end#0 ] ( memset:1 [ memset::str#4 memset::c#5 memset::end#0 ] { } memset:3 [ memset::str#4 memset::c#5 memset::end#0 ] { } memset:5 [ memset::str#4 memset::c#5 memset::end#0 ] { } ) always clobbers reg byte a -Statement [46] memset::dst#4 = (char *)memset::str#4 [ memset::c#5 memset::end#0 memset::dst#4 ] ( memset:1 [ memset::c#5 memset::end#0 memset::dst#4 ] { } memset:3 [ memset::c#5 memset::end#0 memset::dst#4 ] { } memset:5 [ memset::c#5 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a -Statement [48] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#5 memset::end#0 memset::dst#2 ] ( memset:1 [ memset::c#5 memset::end#0 memset::dst#2 ] { } memset:3 [ memset::c#5 memset::end#0 memset::dst#2 ] { } memset:5 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a -Statement [50] *memset::dst#2 = memset::c#5 [ memset::c#5 memset::end#0 memset::dst#2 ] ( memset:1 [ memset::c#5 memset::end#0 memset::dst#2 ] { } memset:3 [ memset::c#5 memset::end#0 memset::dst#2 ] { } memset:5 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y -Statement [52] rand::$0 = rand_state#12 << 7 [ rand_state#12 rand::$0 ] ( rand:20 [ main::y#11 main::x#11 rand_state#12 rand::$0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [53] rand_state#0 = rand_state#12 ^ rand::$0 [ rand_state#0 ] ( rand:20 [ main::y#11 main::x#11 rand_state#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [54] rand::$1 = rand_state#0 >> 9 [ rand_state#0 rand::$1 ] ( rand:20 [ main::y#11 main::x#11 rand_state#0 rand::$1 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [55] rand_state#1 = rand_state#0 ^ rand::$1 [ rand_state#1 ] ( rand:20 [ main::y#11 main::x#11 rand_state#1 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [56] rand::$2 = rand_state#1 << 8 [ rand_state#1 rand::$2 ] ( rand:20 [ main::y#11 main::x#11 rand_state#1 rand::$2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [57] rand_state#10 = rand_state#1 ^ rand::$2 [ rand_state#10 ] ( rand:20 [ main::y#11 main::x#11 rand_state#10 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [58] rand::return#0 = rand_state#10 [ rand_state#10 rand::return#0 ] ( rand:20 [ main::y#11 main::x#11 rand_state#10 rand::return#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [21] main::cnt#0 = *main::$6 [ rand_state main::y#11 main::x#11 main::offset#0 main::cnt#0 ] ( main:3 [ rand_state main::y#11 main::x#11 main::offset#0 main::cnt#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y +Statement [22] main::$8 = DEFAULT_COLORRAM + main::offset#0 [ rand_state main::y#11 main::x#11 main::cnt#0 main::$8 ] ( main:3 [ rand_state main::y#11 main::x#11 main::cnt#0 main::$8 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:38 [ main::cnt#0 ] +Statement [23] main::$9 = main::cnt#0 & $f [ rand_state main::y#11 main::x#11 main::$8 main::$9 ] ( main:3 [ rand_state main::y#11 main::x#11 main::$8 main::$9 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [24] *main::$8 = FADE[main::$9] [ rand_state main::y#11 main::x#11 ] ( main:3 [ rand_state main::y#11 main::x#11 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y +Statement [26] rand::return#2 = rand::return#0 [ rand_state main::y#11 main::x#11 rand::return#2 ] ( main:3 [ rand_state main::y#11 main::x#11 rand::return#2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [27] main::$10 = rand::return#2 [ rand_state main::y#11 main::x#11 main::$10 ] ( main:3 [ rand_state main::y#11 main::x#11 main::$10 ] { } ) always clobbers reg byte a +Statement [37] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 [ rand_state main::y#10 main::x#10 ] ( main:3 [ rand_state main::y#10 main::x#10 ] { } ) always clobbers reg byte a +Statement [50] memset::end#0 = (char *)memset::str#4 + $3e8 [ memset::str#4 memset::c#5 memset::end#0 ] ( main:3::memset:6 [ rand_state memset::str#4 memset::c#5 memset::end#0 ] { } main:3::memset:8 [ rand_state memset::str#4 memset::c#5 memset::end#0 ] { } main:3::memset:10 [ rand_state memset::str#4 memset::c#5 memset::end#0 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:36 [ memset::c#5 ] +Statement [51] memset::dst#4 = (char *)memset::str#4 [ memset::c#5 memset::end#0 memset::dst#4 ] ( main:3::memset:6 [ rand_state memset::c#5 memset::end#0 memset::dst#4 ] { } main:3::memset:8 [ rand_state memset::c#5 memset::end#0 memset::dst#4 ] { } main:3::memset:10 [ rand_state memset::c#5 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [53] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#5 memset::end#0 memset::dst#2 ] ( main:3::memset:6 [ rand_state memset::c#5 memset::end#0 memset::dst#2 ] { } main:3::memset:8 [ rand_state memset::c#5 memset::end#0 memset::dst#2 ] { } main:3::memset:10 [ rand_state memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [55] *memset::dst#2 = memset::c#5 [ memset::c#5 memset::end#0 memset::dst#2 ] ( main:3::memset:6 [ rand_state memset::c#5 memset::end#0 memset::dst#2 ] { } main:3::memset:8 [ rand_state memset::c#5 memset::end#0 memset::dst#2 ] { } main:3::memset:10 [ rand_state 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]:36 [ memset::c#5 ] +Statement [57] rand::$0 = rand_state << 7 [ rand_state rand::$0 ] ( main:3::rand:25 [ main::y#11 main::x#11 rand_state rand::$0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [58] rand_state = rand_state ^ rand::$0 [ rand_state ] ( main:3::rand:25 [ main::y#11 main::x#11 rand_state ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [59] rand::$1 = rand_state >> 9 [ rand_state rand::$1 ] ( main:3::rand:25 [ main::y#11 main::x#11 rand_state rand::$1 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [60] rand_state = rand_state ^ rand::$1 [ rand_state ] ( main:3::rand:25 [ main::y#11 main::x#11 rand_state ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [61] rand::$2 = rand_state << 8 [ rand_state rand::$2 ] ( main:3::rand:25 [ main::y#11 main::x#11 rand_state rand::$2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [62] rand_state = rand_state ^ rand::$2 [ rand_state ] ( main:3::rand:25 [ main::y#11 main::x#11 rand_state ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [63] rand::return#0 = rand_state [ rand_state rand::return#0 ] ( main:3::rand:25 [ main::y#11 main::x#11 rand_state rand::return#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [1] rand_state = 1 [ rand_state ] ( [ rand_state ] { } ) always clobbers reg byte a +Statement [11] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 [ rand_state ] ( main:3 [ rand_state ] { } ) always clobbers reg byte a +Statement [12] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 [ rand_state ] ( main:3 [ rand_state ] { } ) always clobbers reg byte a +Statement [14] main::$24 = (unsigned int)main::y#11 [ rand_state main::y#11 main::x#11 main::$24 ] ( main:3 [ rand_state main::y#11 main::x#11 main::$24 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [15] main::$29 = main::$24 << 2 [ rand_state main::y#11 main::x#11 main::$24 main::$29 ] ( main:3 [ rand_state main::y#11 main::x#11 main::$24 main::$29 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [16] main::$30 = main::$29 + main::$24 [ rand_state main::y#11 main::x#11 main::$30 ] ( main:3 [ rand_state main::y#11 main::x#11 main::$30 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [17] main::$3 = main::$30 << 3 [ rand_state main::y#11 main::x#11 main::$3 ] ( main:3 [ rand_state main::y#11 main::x#11 main::$3 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [18] main::offset#0 = main::$3 + main::x#11 [ rand_state main::y#11 main::x#11 main::offset#0 ] ( main:3 [ rand_state main::y#11 main::x#11 main::offset#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [19] main::$6 = VISITS + main::offset#0 [ rand_state main::y#11 main::x#11 main::offset#0 main::$6 ] ( main:3 [ rand_state main::y#11 main::x#11 main::offset#0 main::$6 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [20] *main::$6 = ++ *main::$6 [ rand_state main::y#11 main::x#11 main::offset#0 main::$6 ] ( main:3 [ rand_state main::y#11 main::x#11 main::offset#0 main::$6 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y +Statement [21] main::cnt#0 = *main::$6 [ rand_state main::y#11 main::x#11 main::offset#0 main::cnt#0 ] ( main:3 [ rand_state main::y#11 main::x#11 main::offset#0 main::cnt#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y +Statement [22] main::$8 = DEFAULT_COLORRAM + main::offset#0 [ rand_state main::y#11 main::x#11 main::cnt#0 main::$8 ] ( main:3 [ rand_state main::y#11 main::x#11 main::cnt#0 main::$8 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [23] main::$9 = main::cnt#0 & $f [ rand_state main::y#11 main::x#11 main::$8 main::$9 ] ( main:3 [ rand_state main::y#11 main::x#11 main::$8 main::$9 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [24] *main::$8 = FADE[main::$9] [ rand_state main::y#11 main::x#11 ] ( main:3 [ rand_state main::y#11 main::x#11 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y +Statement [26] rand::return#2 = rand::return#0 [ rand_state main::y#11 main::x#11 rand::return#2 ] ( main:3 [ rand_state main::y#11 main::x#11 rand::return#2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [27] main::$10 = rand::return#2 [ rand_state main::y#11 main::x#11 main::$10 ] ( main:3 [ rand_state main::y#11 main::x#11 main::$10 ] { } ) always clobbers reg byte a +Statement [37] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 [ rand_state main::y#10 main::x#10 ] ( main:3 [ rand_state main::y#10 main::x#10 ] { } ) always clobbers reg byte a +Statement [50] memset::end#0 = (char *)memset::str#4 + $3e8 [ memset::str#4 memset::c#5 memset::end#0 ] ( main:3::memset:6 [ rand_state memset::str#4 memset::c#5 memset::end#0 ] { } main:3::memset:8 [ rand_state memset::str#4 memset::c#5 memset::end#0 ] { } main:3::memset:10 [ rand_state memset::str#4 memset::c#5 memset::end#0 ] { } ) always clobbers reg byte a +Statement [51] memset::dst#4 = (char *)memset::str#4 [ memset::c#5 memset::end#0 memset::dst#4 ] ( main:3::memset:6 [ rand_state memset::c#5 memset::end#0 memset::dst#4 ] { } main:3::memset:8 [ rand_state memset::c#5 memset::end#0 memset::dst#4 ] { } main:3::memset:10 [ rand_state memset::c#5 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [53] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#5 memset::end#0 memset::dst#2 ] ( main:3::memset:6 [ rand_state memset::c#5 memset::end#0 memset::dst#2 ] { } main:3::memset:8 [ rand_state memset::c#5 memset::end#0 memset::dst#2 ] { } main:3::memset:10 [ rand_state memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [55] *memset::dst#2 = memset::c#5 [ memset::c#5 memset::end#0 memset::dst#2 ] ( main:3::memset:6 [ rand_state memset::c#5 memset::end#0 memset::dst#2 ] { } main:3::memset:8 [ rand_state memset::c#5 memset::end#0 memset::dst#2 ] { } main:3::memset:10 [ rand_state memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Statement [57] rand::$0 = rand_state << 7 [ rand_state rand::$0 ] ( main:3::rand:25 [ main::y#11 main::x#11 rand_state rand::$0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [58] rand_state = rand_state ^ rand::$0 [ rand_state ] ( main:3::rand:25 [ main::y#11 main::x#11 rand_state ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [59] rand::$1 = rand_state >> 9 [ rand_state rand::$1 ] ( main:3::rand:25 [ main::y#11 main::x#11 rand_state rand::$1 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [60] rand_state = rand_state ^ rand::$1 [ rand_state ] ( main:3::rand:25 [ main::y#11 main::x#11 rand_state ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [61] rand::$2 = rand_state << 8 [ rand_state rand::$2 ] ( main:3::rand:25 [ main::y#11 main::x#11 rand_state rand::$2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [62] rand_state = rand_state ^ rand::$2 [ rand_state ] ( main:3::rand:25 [ main::y#11 main::x#11 rand_state ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [63] rand::return#0 = rand_state [ rand_state rand::return#0 ] ( main:3::rand:25 [ main::y#11 main::x#11 rand_state rand::return#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a Potential registers zp[1]:5 [ main::y#11 main::y#10 main::y#2 main::y#1 ] : zp[1]:5 , reg byte x , Potential registers zp[1]:4 [ main::x#11 main::x#10 main::x#2 main::x#1 ] : zp[1]:4 , reg byte x , -Potential registers zp[2]:18 [ rand_state#12 rand_state#10 ] : zp[2]:18 , -Potential registers zp[2]:47 [ memset::str#4 ] : zp[2]:47 , -Potential registers zp[1]:41 [ memset::c#5 ] : zp[1]:41 , reg byte x , +Potential registers zp[2]:43 [ memset::str#4 ] : zp[2]:43 , +Potential registers zp[1]:36 [ memset::c#5 ] : zp[1]:36 , reg byte x , Potential registers zp[2]:2 [ memset::dst#2 memset::dst#4 memset::dst#1 ] : zp[2]:2 , -Potential registers zp[2]:38 [ main::$24 ] : zp[2]:38 , -Potential registers zp[2]:20 [ main::$29 ] : zp[2]:20 , -Potential registers zp[2]:22 [ main::$30 ] : zp[2]:22 , -Potential registers zp[2]:24 [ main::$3 ] : zp[2]:24 , -Potential registers zp[2]:45 [ main::offset#0 ] : zp[2]:45 , -Potential registers zp[2]:26 [ main::$6 ] : zp[2]:26 , -Potential registers zp[1]:42 [ main::cnt#0 ] : zp[1]:42 , reg byte x , reg byte y , -Potential registers zp[2]:43 [ main::$8 ] : zp[2]:43 , -Potential registers zp[1]:28 [ main::$9 ] : zp[1]:28 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:29 [ rand::return#2 ] : zp[2]:29 , -Potential registers zp[2]:31 [ main::$10 ] : zp[2]:31 , -Potential registers zp[1]:40 [ main::rnd#0 ] : zp[1]:40 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:33 [ main::$12 ] : zp[1]:33 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:34 [ main::$13 ] : zp[1]:34 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:35 [ main::$18 ] : zp[1]:35 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:36 [ memset::end#0 ] : zp[2]:36 , +Potential registers zp[2]:30 [ rand_state ] : zp[2]:30 , +Potential registers zp[2]:34 [ main::$24 ] : zp[2]:34 , +Potential registers zp[2]:14 [ main::$29 ] : zp[2]:14 , +Potential registers zp[2]:16 [ main::$30 ] : zp[2]:16 , +Potential registers zp[2]:18 [ main::$3 ] : zp[2]:18 , +Potential registers zp[2]:41 [ main::offset#0 ] : zp[2]:41 , +Potential registers zp[2]:20 [ main::$6 ] : zp[2]:20 , +Potential registers zp[1]:38 [ main::cnt#0 ] : zp[1]:38 , reg byte x , reg byte y , +Potential registers zp[2]:39 [ main::$8 ] : zp[2]:39 , +Potential registers zp[1]:22 [ main::$9 ] : zp[1]:22 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:23 [ rand::return#2 ] : zp[2]:23 , +Potential registers zp[2]:25 [ main::$10 ] : zp[2]:25 , +Potential registers zp[1]:37 [ main::rnd#0 ] : zp[1]:37 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:27 [ main::$12 ] : zp[1]:27 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:28 [ main::$13 ] : zp[1]:28 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:29 [ main::$18 ] : zp[1]:29 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:32 [ memset::end#0 ] : zp[2]:32 , Potential registers zp[2]:6 [ rand::$0 ] : zp[2]:6 , -Potential registers zp[2]:12 [ rand_state#0 ] : zp[2]:12 , Potential registers zp[2]:8 [ rand::$1 ] : zp[2]:8 , -Potential registers zp[2]:14 [ rand_state#1 ] : zp[2]:14 , Potential registers zp[2]:10 [ rand::$2 ] : zp[2]:10 , -Potential registers zp[2]:16 [ rand::return#0 ] : zp[2]:16 , +Potential registers zp[2]:12 [ rand::return#0 ] : zp[2]:12 , REGISTER UPLIFT SCOPES -Uplift Scope [main] 212.86: zp[1]:4 [ main::x#11 main::x#10 main::x#2 main::x#1 ] 212.46: zp[1]:5 [ main::y#11 main::y#10 main::y#2 main::y#1 ] 22: zp[2]:20 [ main::$29 ] 22: zp[2]:22 [ main::$30 ] 22: zp[2]:24 [ main::$3 ] 22: zp[2]:26 [ main::$6 ] 22: zp[1]:28 [ main::$9 ] 22: zp[2]:31 [ main::$10 ] 22: zp[1]:33 [ main::$12 ] 22: zp[1]:34 [ main::$13 ] 22: zp[1]:35 [ main::$18 ] 16.5: zp[2]:38 [ main::$24 ] 14.67: zp[1]:40 [ main::rnd#0 ] 11: zp[1]:42 [ main::cnt#0 ] 11: zp[2]:43 [ main::$8 ] 8.25: zp[2]:45 [ main::offset#0 ] -Uplift Scope [rand] 202: zp[2]:6 [ rand::$0 ] 202: zp[2]:8 [ rand::$1 ] 202: zp[2]:10 [ rand::$2 ] 37.33: zp[2]:16 [ rand::return#0 ] 22: zp[2]:29 [ rand::return#2 ] -Uplift Scope [memset] 362.33: zp[2]:2 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 18.67: zp[2]:36 [ memset::end#0 ] 14.43: zp[1]:41 [ memset::c#5 ] 0: zp[2]:47 [ memset::str#4 ] -Uplift Scope [] 151.5: zp[2]:12 [ rand_state#0 ] 151.5: zp[2]:14 [ rand_state#1 ] 34.53: zp[2]:18 [ rand_state#12 rand_state#10 ] +Uplift Scope [rand] 2,002: zp[2]:6 [ rand::$0 ] 2,002: zp[2]:8 [ rand::$1 ] 2,002: zp[2]:10 [ rand::$2 ] 367.33: zp[2]:12 [ rand::return#0 ] 202: zp[2]:23 [ rand::return#2 ] +Uplift Scope [main] 2,067.5: zp[1]:4 [ main::x#11 main::x#10 main::x#2 main::x#1 ] 2,063.89: zp[1]:5 [ main::y#11 main::y#10 main::y#2 main::y#1 ] 202: zp[2]:14 [ main::$29 ] 202: zp[2]:16 [ main::$30 ] 202: zp[2]:18 [ main::$3 ] 202: zp[2]:20 [ main::$6 ] 202: zp[1]:22 [ main::$9 ] 202: zp[2]:25 [ main::$10 ] 202: zp[1]:27 [ main::$12 ] 202: zp[1]:28 [ main::$13 ] 202: zp[1]:29 [ main::$18 ] 151.5: zp[2]:34 [ main::$24 ] 134.67: zp[1]:37 [ main::rnd#0 ] 101: zp[1]:38 [ main::cnt#0 ] 101: zp[2]:39 [ main::$8 ] 75.75: zp[2]:41 [ main::offset#0 ] +Uplift Scope [memset] 3,572.33: zp[2]:2 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 183.67: zp[2]:32 [ memset::end#0 ] 143: zp[1]:36 [ memset::c#5 ] 0: zp[2]:43 [ memset::str#4 ] +Uplift Scope [] 185.41: zp[2]:30 [ rand_state ] Uplift Scope [MOS7360_TED] Uplift Scope [MOS6551_ACIA] Uplift Scope [MOS6529_PIO] Uplift Scope [MOS7501_PORT] Uplift Scope [PLUS4_ROM_BANKING] Uplift Scope [RADIX] +Uplift Scope [__start] -Uplifting [main] best 8134 combination reg byte x [ main::x#11 main::x#10 main::x#2 main::x#1 ] zp[1]:5 [ main::y#11 main::y#10 main::y#2 main::y#1 ] zp[2]:20 [ main::$29 ] zp[2]:22 [ main::$30 ] zp[2]:24 [ main::$3 ] zp[2]:26 [ main::$6 ] reg byte a [ main::$9 ] zp[2]:31 [ main::$10 ] reg byte a [ main::$12 ] reg byte a [ main::$13 ] zp[1]:35 [ main::$18 ] zp[2]:38 [ main::$24 ] zp[1]:40 [ main::rnd#0 ] zp[1]:42 [ main::cnt#0 ] zp[2]:43 [ main::$8 ] zp[2]:45 [ main::offset#0 ] +Uplifting [rand] best 8972 combination zp[2]:6 [ rand::$0 ] zp[2]:8 [ rand::$1 ] zp[2]:10 [ rand::$2 ] zp[2]:12 [ rand::return#0 ] zp[2]:23 [ rand::return#2 ] +Uplifting [main] best 8092 combination reg byte x [ main::x#11 main::x#10 main::x#2 main::x#1 ] zp[1]:5 [ main::y#11 main::y#10 main::y#2 main::y#1 ] zp[2]:14 [ main::$29 ] zp[2]:16 [ main::$30 ] zp[2]:18 [ main::$3 ] zp[2]:20 [ main::$6 ] reg byte a [ main::$9 ] zp[2]:25 [ main::$10 ] reg byte a [ main::$12 ] reg byte a [ main::$13 ] zp[1]:29 [ main::$18 ] zp[2]:34 [ main::$24 ] zp[1]:37 [ main::rnd#0 ] zp[1]:38 [ main::cnt#0 ] zp[2]:39 [ main::$8 ] zp[2]:41 [ main::offset#0 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [rand] best 8134 combination zp[2]:6 [ rand::$0 ] zp[2]:8 [ rand::$1 ] zp[2]:10 [ rand::$2 ] zp[2]:16 [ rand::return#0 ] zp[2]:29 [ rand::return#2 ] -Uplifting [memset] best 8115 combination zp[2]:2 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:36 [ memset::end#0 ] reg byte x [ memset::c#5 ] zp[2]:47 [ memset::str#4 ] -Uplifting [] best 8115 combination zp[2]:12 [ rand_state#0 ] zp[2]:14 [ rand_state#1 ] zp[2]:18 [ rand_state#12 rand_state#10 ] -Uplifting [MOS7360_TED] best 8115 combination -Uplifting [MOS6551_ACIA] best 8115 combination -Uplifting [MOS6529_PIO] best 8115 combination -Uplifting [MOS7501_PORT] best 8115 combination -Uplifting [PLUS4_ROM_BANKING] best 8115 combination -Uplifting [RADIX] best 8115 combination +Uplifting [memset] best 8073 combination zp[2]:2 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:32 [ memset::end#0 ] reg byte x [ memset::c#5 ] zp[2]:43 [ memset::str#4 ] +Uplifting [] best 8073 combination zp[2]:30 [ rand_state ] +Uplifting [MOS7360_TED] best 8073 combination +Uplifting [MOS6551_ACIA] best 8073 combination +Uplifting [MOS6529_PIO] best 8073 combination +Uplifting [MOS7501_PORT] best 8073 combination +Uplifting [PLUS4_ROM_BANKING] best 8073 combination +Uplifting [RADIX] best 8073 combination +Uplifting [__start] best 8073 combination Attempting to uplift remaining variables inzp[1]:5 [ main::y#11 main::y#10 main::y#2 main::y#1 ] -Uplifting [main] best 8115 combination zp[1]:5 [ main::y#11 main::y#10 main::y#2 main::y#1 ] -Attempting to uplift remaining variables inzp[1]:35 [ main::$18 ] -Uplifting [main] best 8075 combination reg byte a [ main::$18 ] -Attempting to uplift remaining variables inzp[1]:40 [ main::rnd#0 ] -Uplifting [main] best 8015 combination reg byte y [ main::rnd#0 ] -Attempting to uplift remaining variables inzp[1]:42 [ main::cnt#0 ] -Uplifting [main] best 7995 combination reg byte y [ main::cnt#0 ] -Coalescing zero page register [ zp[2]:18 [ rand_state#12 rand_state#10 ] ] with [ zp[2]:12 [ rand_state#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:18 [ rand_state#12 rand_state#10 rand_state#0 ] ] with [ zp[2]:14 [ rand_state#1 ] ] - score: 1 -Coalescing zero page register [ zp[2]:47 [ memset::str#4 ] ] with [ zp[2]:2 [ memset::dst#2 memset::dst#4 memset::dst#1 ] ] - score: 1 -Coalescing zero page register [ zp[2]:38 [ main::$24 ] ] with [ zp[2]:22 [ main::$30 ] ] - score: 1 -Coalescing zero page register [ zp[2]:24 [ main::$3 ] ] with [ zp[2]:45 [ main::offset#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:29 [ rand::return#2 ] ] with [ zp[2]:31 [ main::$10 ] ] - score: 1 -Coalescing zero page register [ zp[2]:29 [ rand::return#2 main::$10 ] ] with [ zp[2]:16 [ rand::return#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:38 [ main::$24 main::$30 ] ] with [ zp[2]:24 [ main::$3 main::offset#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:38 [ main::$24 main::$30 main::$3 main::offset#0 ] ] with [ zp[2]:43 [ main::$8 ] ] - score: 1 -Coalescing zero page register [ zp[2]:47 [ memset::str#4 memset::dst#2 memset::dst#4 memset::dst#1 ] ] with [ zp[2]:18 [ rand_state#12 rand_state#10 rand_state#0 rand_state#1 ] ] -Coalescing zero page register [ zp[2]:6 [ rand::$0 ] ] with [ zp[2]:36 [ memset::end#0 ] ] -Allocated (was zp[2]:47) zp[2]:2 [ memset::str#4 memset::dst#2 memset::dst#4 memset::dst#1 rand_state#12 rand_state#10 rand_state#0 rand_state#1 ] +Uplifting [main] best 8073 combination zp[1]:5 [ main::y#11 main::y#10 main::y#2 main::y#1 ] +Attempting to uplift remaining variables inzp[1]:29 [ main::$18 ] +Uplifting [main] best 8033 combination reg byte a [ main::$18 ] +Attempting to uplift remaining variables inzp[1]:37 [ main::rnd#0 ] +Uplifting [main] best 7973 combination reg byte y [ main::rnd#0 ] +Attempting to uplift remaining variables inzp[1]:38 [ main::cnt#0 ] +Uplifting [main] best 7953 combination reg byte y [ main::cnt#0 ] +Coalescing zero page register [ zp[2]:43 [ memset::str#4 ] ] with [ zp[2]:2 [ memset::dst#2 memset::dst#4 memset::dst#1 ] ] - score: 1 +Coalescing zero page register [ zp[2]:34 [ main::$24 ] ] with [ zp[2]:16 [ main::$30 ] ] - score: 1 +Coalescing zero page register [ zp[2]:18 [ main::$3 ] ] with [ zp[2]:41 [ main::offset#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:23 [ rand::return#2 ] ] with [ zp[2]:25 [ main::$10 ] ] - score: 1 +Coalescing zero page register [ zp[2]:23 [ rand::return#2 main::$10 ] ] with [ zp[2]:12 [ rand::return#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:34 [ main::$24 main::$30 ] ] with [ zp[2]:18 [ main::$3 main::offset#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:34 [ main::$24 main::$30 main::$3 main::offset#0 ] ] with [ zp[2]:39 [ main::$8 ] ] - score: 1 +Coalescing zero page register [ zp[2]:34 [ main::$24 main::$30 main::$3 main::offset#0 main::$8 ] ] with [ zp[2]:43 [ memset::str#4 memset::dst#2 memset::dst#4 memset::dst#1 ] ] +Coalescing zero page register [ zp[2]:6 [ rand::$0 ] ] with [ zp[2]:32 [ memset::end#0 ] ] +Allocated (was zp[2]:34) zp[2]:2 [ main::$24 main::$30 main::$3 main::offset#0 main::$8 memset::str#4 memset::dst#2 memset::dst#4 memset::dst#1 ] Allocated (was zp[2]:6) zp[2]:4 [ rand::$0 memset::end#0 ] Allocated (was zp[1]:5) zp[1]:6 [ main::y#11 main::y#10 main::y#2 main::y#1 ] Allocated (was zp[2]:8) zp[2]:7 [ rand::$1 ] Allocated (was zp[2]:10) zp[2]:9 [ rand::$2 ] -Allocated (was zp[2]:29) zp[2]:11 [ rand::return#2 main::$10 rand::return#0 ] -Allocated (was zp[2]:38) zp[2]:13 [ main::$24 main::$30 main::$3 main::offset#0 main::$8 ] -Allocated (was zp[2]:20) zp[2]:15 [ main::$29 ] -Allocated (was zp[2]:26) zp[2]:17 [ main::$6 ] +Allocated (was zp[2]:23) zp[2]:11 [ rand::return#2 main::$10 rand::return#0 ] +Allocated (was zp[2]:14) zp[2]:13 [ main::$29 ] +Allocated (was zp[2]:20) zp[2]:15 [ main::$6 ] +Allocated (was zp[2]:30) zp[2]:17 [ rand_state ] ASSEMBLER BEFORE OPTIMIZATION // File Comments @@ -1165,7 +1093,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segmentdef Code [start=$100d] .segmentdef Data [startAfter="Code"] .segment Basic -:BasicUpstart(main) +:BasicUpstart(__start) // Global Constants & labels .const OFFSET_STRUCT_MOS7360_TED_BG_COLOR = $15 .const OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR = $19 @@ -1177,57 +1105,82 @@ ASSEMBLER BEFORE OPTIMIZATION /// The TED chip controlling video and sound on the Plus/4 and Commodore 16 .label TED = $ff00 // The random state variable - .label rand_state = 2 + .label rand_state = $11 .segment Code + // __start +__start: { + jmp __init1 + // __start::__init1 + __init1: + // [1] rand_state = 1 -- vwuz1=vwuc1 + lda #<1 + sta.z rand_state + lda #>1 + sta.z rand_state+1 + // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] + __b1_from___init1: + jmp __b1 + // __start::@1 + __b1: + // [3] call main + // [5] phi from __start::@1 to main [phi:__start::@1->main] + main_from___b1: + jsr main + jmp __breturn + // __start::@return + __breturn: + // [4] return + rts +} // main main: { - .label __3 = $d - .label __6 = $11 - .label __8 = $d + .label __3 = 2 + .label __6 = $f + .label __8 = 2 .label __10 = $b - .label __24 = $d - .label offset = $d + .label __24 = 2 + .label offset = 2 .label y = 6 - .label __29 = $f - .label __30 = $d - // [1] call memset - // [44] phi from main to memset [phi:main->memset] + .label __29 = $d + .label __30 = 2 + // [6] call memset + // [49] phi from main to memset [phi:main->memset] memset_from_main: - // [44] phi memset::c#5 = $a0 [phi:main->memset#0] -- vbuxx=vbuc1 + // [49] phi memset::c#5 = $a0 [phi:main->memset#0] -- vbuxx=vbuc1 ldx #$a0 - // [44] phi memset::str#4 = (void *)DEFAULT_SCREEN [phi:main->memset#1] -- pvoz1=pvoc1 + // [49] phi memset::str#4 = (void *)DEFAULT_SCREEN [phi:main->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memset.str+1 jsr memset - // [2] phi from main to main::@10 [phi:main->main::@10] + // [7] phi from main to main::@10 [phi:main->main::@10] __b10_from_main: jmp __b10 // main::@10 __b10: - // [3] call memset - // [44] phi from main::@10 to memset [phi:main::@10->memset] + // [8] call memset + // [49] phi from main::@10 to memset [phi:main::@10->memset] memset_from___b10: - // [44] phi memset::c#5 = 0 [phi:main::@10->memset#0] -- vbuxx=vbuc1 + // [49] phi memset::c#5 = 0 [phi:main::@10->memset#0] -- vbuxx=vbuc1 ldx #0 - // [44] phi memset::str#4 = (void *)DEFAULT_COLORRAM [phi:main::@10->memset#1] -- pvoz1=pvoc1 + // [49] phi memset::str#4 = (void *)DEFAULT_COLORRAM [phi:main::@10->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_COLORRAM sta.z memset.str+1 jsr memset - // [4] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + // [9] phi from main::@10 to main::@11 [phi:main::@10->main::@11] __b11_from___b10: jmp __b11 // main::@11 __b11: - // [5] call memset - // [44] phi from main::@11 to memset [phi:main::@11->memset] + // [10] call memset + // [49] phi from main::@11 to memset [phi:main::@11->memset] memset_from___b11: - // [44] phi memset::c#5 = 0 [phi:main::@11->memset#0] -- vbuxx=vbuc1 + // [49] phi memset::c#5 = 0 [phi:main::@11->memset#0] -- vbuxx=vbuc1 ldx #0 - // [44] phi memset::str#4 = (void *)VISITS [phi:main::@11->memset#1] -- pvoz1=pvoc1 + // [49] phi memset::str#4 = (void *)VISITS [phi:main::@11->memset#1] -- pvoz1=pvoc1 lda #VISITS @@ -1236,22 +1189,17 @@ main: { jmp __b12 // main::@12 __b12: - // [6] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 -- _deref_pbuc1=vbuc2 + // [11] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR - // [7] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 -- _deref_pbuc1=vbuc2 + // [12] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR - // [8] phi from main::@12 to main::@1 [phi:main::@12->main::@1] + // [13] phi from main::@12 to main::@1 [phi:main::@12->main::@1] __b1_from___b12: - // [8] phi rand_state#12 = 1 [phi:main::@12->main::@1#0] -- vwuz1=vwuc1 - lda #<1 - sta.z rand_state - lda #>1 - sta.z rand_state+1 - // [8] phi main::x#11 = $14 [phi:main::@12->main::@1#1] -- vbuxx=vbuc1 + // [13] phi main::x#11 = $14 [phi:main::@12->main::@1#0] -- vbuxx=vbuc1 ldx #$14 - // [8] phi main::y#11 = $c [phi:main::@12->main::@1#2] -- vbuz1=vbuc1 + // [13] phi main::y#11 = $c [phi:main::@12->main::@1#1] -- vbuz1=vbuc1 lda #$c sta.z y jmp __b1 @@ -1260,12 +1208,12 @@ main: { jmp __b2 // main::@2 __b2: - // [9] main::$24 = (unsigned int)main::y#11 -- vwuz1=_word_vbuz2 + // [14] main::$24 = (unsigned int)main::y#11 -- vwuz1=_word_vbuz2 lda.z y sta.z __24 lda #0 sta.z __24+1 - // [10] main::$29 = main::$24 << 2 -- vwuz1=vwuz2_rol_2 + // [15] main::$29 = main::$24 << 2 -- vwuz1=vwuz2_rol_2 lda.z __24 asl sta.z __29 @@ -1274,7 +1222,7 @@ main: { sta.z __29+1 asl.z __29 rol.z __29+1 - // [11] main::$30 = main::$29 + main::$24 -- vwuz1=vwuz2_plus_vwuz1 + // [16] main::$30 = main::$29 + main::$24 -- vwuz1=vwuz2_plus_vwuz1 clc lda.z __30 adc.z __29 @@ -1282,14 +1230,14 @@ main: { lda.z __30+1 adc.z __29+1 sta.z __30+1 - // [12] main::$3 = main::$30 << 3 -- vwuz1=vwuz1_rol_3 + // [17] main::$3 = main::$30 << 3 -- vwuz1=vwuz1_rol_3 asl.z __3 rol.z __3+1 asl.z __3 rol.z __3+1 asl.z __3 rol.z __3+1 - // [13] main::offset#0 = main::$3 + main::x#11 -- vwuz1=vwuz1_plus_vbuxx + // [18] main::offset#0 = main::$3 + main::x#11 -- vwuz1=vwuz1_plus_vbuxx txa clc adc.z offset @@ -1297,7 +1245,7 @@ main: { bcc !+ inc.z offset+1 !: - // [14] main::$6 = VISITS + main::offset#0 -- pbuz1=pbuc1_plus_vwuz2 + // [19] main::$6 = VISITS + main::offset#0 -- pbuz1=pbuc1_plus_vwuz2 lda.z offset clc adc #VISITS sta.z __6+1 - // [15] *main::$6 = ++ *main::$6 -- _deref_pbuz1=_inc__deref_pbuz1 + // [20] *main::$6 = ++ *main::$6 -- _deref_pbuz1=_inc__deref_pbuz1 ldy #0 lda (__6),y clc adc #1 ldy #0 sta (__6),y - // [16] main::cnt#0 = *main::$6 -- vbuyy=_deref_pbuz1 + // [21] main::cnt#0 = *main::$6 -- vbuyy=_deref_pbuz1 ldy #0 lda (__6),y tay - // [17] main::$8 = DEFAULT_COLORRAM + main::offset#0 -- pbuz1=pbuc1_plus_vwuz1 + // [22] main::$8 = DEFAULT_COLORRAM + main::offset#0 -- pbuz1=pbuc1_plus_vwuz1 lda.z __8 clc adc #DEFAULT_COLORRAM sta.z __8+1 - // [18] main::$9 = main::cnt#0 & $f -- vbuaa=vbuyy_band_vbuc1 + // [23] main::$9 = main::cnt#0 & $f -- vbuaa=vbuyy_band_vbuc1 tya and #$f - // [19] *main::$8 = FADE[main::$9] -- _deref_pbuz1=pbuc1_derefidx_vbuaa + // [24] *main::$8 = FADE[main::$9] -- _deref_pbuz1=pbuc1_derefidx_vbuaa tay lda FADE,y ldy #0 sta (__8),y - // [20] call rand + // [25] call rand jsr rand - // [21] rand::return#2 = rand::return#0 + // [26] rand::return#2 = rand::return#0 jmp __b13 // main::@13 __b13: - // [22] main::$10 = rand::return#2 - // [23] main::rnd#0 = byte1 main::$10 -- vbuyy=_byte1_vwuz1 + // [27] main::$10 = rand::return#2 + // [28] main::rnd#0 = byte1 main::$10 -- vbuyy=_byte1_vwuz1 ldy.z __10+1 - // [24] main::$12 = main::rnd#0 & $80 -- vbuaa=vbuyy_band_vbuc1 + // [29] main::$12 = main::rnd#0 & $80 -- vbuaa=vbuyy_band_vbuc1 tya and #$80 - // [25] if(0!=main::$12) goto main::@3 -- 0_neq_vbuaa_then_la1 + // [30] if(0!=main::$12) goto main::@3 -- 0_neq_vbuaa_then_la1 cmp #0 bne __b3 jmp __b7 // main::@7 __b7: - // [26] main::$13 = main::rnd#0 & $40 -- vbuaa=vbuyy_band_vbuc1 + // [31] main::$13 = main::rnd#0 & $40 -- vbuaa=vbuyy_band_vbuc1 tya and #$40 - // [27] if(0!=main::$13) goto main::@4 -- 0_neq_vbuaa_then_la1 + // [32] if(0!=main::$13) goto main::@4 -- 0_neq_vbuaa_then_la1 cmp #0 bne __b4 jmp __b8 // main::@8 __b8: - // [28] main::y#2 = -- main::y#11 -- vbuz1=_dec_vbuz1 + // [33] main::y#2 = -- main::y#11 -- vbuz1=_dec_vbuz1 dec.z y - // [29] if(main::y#2!=$ff) goto main::@14 -- vbuz1_neq_vbuc1_then_la1 + // [34] if(main::y#2!=$ff) goto main::@14 -- vbuz1_neq_vbuc1_then_la1 lda #$ff cmp.z y bne __b14_from___b8 - // [31] phi from main::@8 to main::@6 [phi:main::@8->main::@6] + // [36] phi from main::@8 to main::@6 [phi:main::@8->main::@6] __b6_from___b8: - // [31] phi main::x#10 = main::x#11 [phi:main::@8->main::@6#0] -- register_copy - // [31] phi main::y#10 = 0 [phi:main::@8->main::@6#1] -- vbuz1=vbuc1 + // [36] phi main::x#10 = main::x#11 [phi:main::@8->main::@6#0] -- register_copy + // [36] phi main::y#10 = 0 [phi:main::@8->main::@6#1] -- vbuz1=vbuc1 lda #0 sta.z y jmp __b6 - // [30] phi from main::@8 to main::@14 [phi:main::@8->main::@14] + // [35] phi from main::@8 to main::@14 [phi:main::@8->main::@14] __b14_from___b8: jmp __b14 // main::@14 __b14: - // [31] phi from main::@14 main::@15 main::@16 main::@17 main::@6 to main::@6 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6] + // [36] phi from main::@14 main::@15 main::@16 main::@17 main::@6 to main::@6 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6] __b6_from___b14: __b6_from___b15: __b6_from___b16: __b6_from___b17: __b6_from___b6: - // [31] phi main::x#10 = main::x#11 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6#0] -- register_copy - // [31] phi main::y#10 = main::y#2 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6#1] -- register_copy + // [36] phi main::x#10 = main::x#11 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6#0] -- register_copy + // [36] phi main::y#10 = main::y#2 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6#1] -- register_copy jmp __b6 // main::@6 __b6: - // [32] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [37] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$ff cmp TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO bne __b6_from___b6 - // [8] phi from main::@6 to main::@1 [phi:main::@6->main::@1] + // [13] phi from main::@6 to main::@1 [phi:main::@6->main::@1] __b1_from___b6: - // [8] phi rand_state#12 = rand_state#10 [phi:main::@6->main::@1#0] -- register_copy - // [8] phi main::x#11 = main::x#10 [phi:main::@6->main::@1#1] -- register_copy - // [8] phi main::y#11 = main::y#10 [phi:main::@6->main::@1#2] -- register_copy + // [13] phi main::x#11 = main::x#10 [phi:main::@6->main::@1#0] -- register_copy + // [13] phi main::y#11 = main::y#10 [phi:main::@6->main::@1#1] -- register_copy jmp __b1 // main::@4 __b4: - // [33] main::y#1 = ++ main::y#11 -- vbuz1=_inc_vbuz1 + // [38] main::y#1 = ++ main::y#11 -- vbuz1=_inc_vbuz1 inc.z y - // [34] if(main::y#1!=$19) goto main::@16 -- vbuz1_neq_vbuc1_then_la1 + // [39] if(main::y#1!=$19) goto main::@16 -- vbuz1_neq_vbuc1_then_la1 lda #$19 cmp.z y bne __b16_from___b4 - // [31] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + // [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] __b6_from___b4: - // [31] phi main::x#10 = main::x#11 [phi:main::@4->main::@6#0] -- register_copy - // [31] phi main::y#10 = $18 [phi:main::@4->main::@6#1] -- vbuz1=vbuc1 + // [36] phi main::x#10 = main::x#11 [phi:main::@4->main::@6#0] -- register_copy + // [36] phi main::y#10 = $18 [phi:main::@4->main::@6#1] -- vbuz1=vbuc1 lda #$18 sta.z y jmp __b6 - // [35] phi from main::@4 to main::@16 [phi:main::@4->main::@16] + // [40] phi from main::@4 to main::@16 [phi:main::@4->main::@16] __b16_from___b4: jmp __b16 // main::@16 @@ -1421,27 +1368,27 @@ main: { jmp __b6_from___b16 // main::@3 __b3: - // [36] main::$18 = main::rnd#0 & $40 -- vbuaa=vbuyy_band_vbuc1 + // [41] main::$18 = main::rnd#0 & $40 -- vbuaa=vbuyy_band_vbuc1 tya and #$40 - // [37] if(0!=main::$18) goto main::@5 -- 0_neq_vbuaa_then_la1 + // [42] if(0!=main::$18) goto main::@5 -- 0_neq_vbuaa_then_la1 cmp #0 bne __b5 jmp __b9 // main::@9 __b9: - // [38] main::x#2 = -- main::x#11 -- vbuxx=_dec_vbuxx + // [43] main::x#2 = -- main::x#11 -- vbuxx=_dec_vbuxx dex - // [39] if(main::x#2!=$ff) goto main::@15 -- vbuxx_neq_vbuc1_then_la1 + // [44] if(main::x#2!=$ff) goto main::@15 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne __b15_from___b9 - // [31] phi from main::@9 to main::@6 [phi:main::@9->main::@6] + // [36] phi from main::@9 to main::@6 [phi:main::@9->main::@6] __b6_from___b9: - // [31] phi main::x#10 = 0 [phi:main::@9->main::@6#0] -- vbuxx=vbuc1 + // [36] phi main::x#10 = 0 [phi:main::@9->main::@6#0] -- vbuxx=vbuc1 ldx #0 - // [31] phi main::y#10 = main::y#11 [phi:main::@9->main::@6#1] -- register_copy + // [36] phi main::y#10 = main::y#11 [phi:main::@9->main::@6#1] -- register_copy jmp __b6 - // [40] phi from main::@9 to main::@15 [phi:main::@9->main::@15] + // [45] phi from main::@9 to main::@15 [phi:main::@9->main::@15] __b15_from___b9: jmp __b15 // main::@15 @@ -1449,18 +1396,18 @@ main: { jmp __b6_from___b15 // main::@5 __b5: - // [41] main::x#1 = ++ main::x#11 -- vbuxx=_inc_vbuxx + // [46] main::x#1 = ++ main::x#11 -- vbuxx=_inc_vbuxx inx - // [42] if(main::x#1!=$28) goto main::@17 -- vbuxx_neq_vbuc1_then_la1 + // [47] if(main::x#1!=$28) goto main::@17 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne __b17_from___b5 - // [31] phi from main::@5 to main::@6 [phi:main::@5->main::@6] + // [36] phi from main::@5 to main::@6 [phi:main::@5->main::@6] __b6_from___b5: - // [31] phi main::x#10 = $27 [phi:main::@5->main::@6#0] -- vbuxx=vbuc1 + // [36] phi main::x#10 = $27 [phi:main::@5->main::@6#0] -- vbuxx=vbuc1 ldx #$27 - // [31] phi main::y#10 = main::y#11 [phi:main::@5->main::@6#1] -- register_copy + // [36] phi main::y#10 = main::y#11 [phi:main::@5->main::@6#1] -- register_copy jmp __b6 - // [43] phi from main::@5 to main::@17 [phi:main::@5->main::@17] + // [48] phi from main::@5 to main::@17 [phi:main::@5->main::@17] __b17_from___b5: jmp __b17 // main::@17 @@ -1477,7 +1424,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [45] memset::end#0 = (char *)memset::str#4 + $3e8 -- pbuz1=pbuz2_plus_vwuc1 + // [50] memset::end#0 = (char *)memset::str#4 + $3e8 -- pbuz1=pbuz2_plus_vwuc1 lda.z str clc adc #<$3e8 @@ -1485,15 +1432,15 @@ memset: { lda.z str+1 adc #>$3e8 sta.z end+1 - // [46] memset::dst#4 = (char *)memset::str#4 - // [47] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + // [51] memset::dst#4 = (char *)memset::str#4 + // [52] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: - // [47] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + // [52] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy jmp __b2 // memset::@2 __b2: - // [48] if(memset::dst#2!=memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 + // [53] 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 @@ -1503,15 +1450,15 @@ memset: { jmp __breturn // memset::@return __breturn: - // [49] return + // [54] return rts // memset::@3 __b3: - // [50] *memset::dst#2 = memset::c#5 -- _deref_pbuz1=vbuxx + // [55] *memset::dst#2 = memset::c#5 -- _deref_pbuz1=vbuxx txa ldy #0 sta (dst),y - // [51] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 + // [56] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 @@ -1528,7 +1475,7 @@ rand: { .label __1 = 7 .label __2 = 9 .label return = $b - // [52] rand::$0 = rand_state#12 << 7 -- vwuz1=vwuz2_rol_7 + // [57] rand::$0 = rand_state << 7 -- vwuz1=vwuz2_rol_7 lda.z rand_state+1 lsr lda.z rand_state @@ -1537,39 +1484,39 @@ rand: { lda #0 ror sta.z __0 - // [53] rand_state#0 = rand_state#12 ^ rand::$0 -- vwuz1=vwuz1_bxor_vwuz2 + // [58] rand_state = rand_state ^ rand::$0 -- vwuz1=vwuz1_bxor_vwuz2 lda.z rand_state eor.z __0 sta.z rand_state lda.z rand_state+1 eor.z __0+1 sta.z rand_state+1 - // [54] rand::$1 = rand_state#0 >> 9 -- vwuz1=vwuz2_ror_9 + // [59] rand::$1 = rand_state >> 9 -- vwuz1=vwuz2_ror_9 lda.z rand_state+1 lsr sta.z __1 lda #0 sta.z __1+1 - // [55] rand_state#1 = rand_state#0 ^ rand::$1 -- vwuz1=vwuz1_bxor_vwuz2 + // [60] rand_state = rand_state ^ rand::$1 -- vwuz1=vwuz1_bxor_vwuz2 lda.z rand_state eor.z __1 sta.z rand_state lda.z rand_state+1 eor.z __1+1 sta.z rand_state+1 - // [56] rand::$2 = rand_state#1 << 8 -- vwuz1=vwuz2_rol_8 + // [61] rand::$2 = rand_state << 8 -- vwuz1=vwuz2_rol_8 lda.z rand_state sta.z __2+1 lda #0 sta.z __2 - // [57] rand_state#10 = rand_state#1 ^ rand::$2 -- vwuz1=vwuz1_bxor_vwuz2 + // [62] rand_state = rand_state ^ rand::$2 -- vwuz1=vwuz1_bxor_vwuz2 lda.z rand_state eor.z __2 sta.z rand_state lda.z rand_state+1 eor.z __2+1 sta.z rand_state+1 - // [58] rand::return#0 = rand_state#10 -- vwuz1=vwuz2 + // [63] rand::return#0 = rand_state -- vwuz1=vwuz2 lda.z rand_state sta.z return lda.z rand_state+1 @@ -1577,7 +1524,7 @@ rand: { jmp __breturn // rand::@return __breturn: - // [59] return + // [64] return rts } // File Data @@ -1588,6 +1535,9 @@ rand: { VISITS: .fill $3e8, 0 ASSEMBLER OPTIMIZATIONS +Removing instruction jmp __init1 +Removing instruction jmp __b1 +Removing instruction jmp __breturn Removing instruction jmp __b10 Removing instruction jmp __b11 Removing instruction jmp __b12 @@ -1622,6 +1572,8 @@ Replacing label __b6_from___b15 with __b6 Replacing label __b17_from___b5 with __b17 Replacing label __b6_from___b17 with __b6 Replacing label __b2_from___b3 with __b2 +Removing instruction __b1_from___init1: +Removing instruction main_from___b1: Removing instruction __b10_from_main: Removing instruction memset_from___b10: Removing instruction __b11_from___b10: @@ -1640,6 +1592,9 @@ Removing instruction __b17_from___b5: Removing instruction __b2_from___b1: Removing instruction __b2_from___b3: Succesful ASM optimization Pass5RedundantLabelElimination +Removing instruction __init1: +Removing instruction __b1: +Removing instruction __breturn: Removing instruction memset_from_main: Removing instruction __b10: Removing instruction __b11: @@ -1686,67 +1641,64 @@ __constant char RADIX::HEXADECIMAL = $10 __constant char RADIX::OCTAL = 8 __constant struct MOS7360_TED * const TED = (struct MOS7360_TED *) 65280 __constant char VISITS[$3e8] = { fill( $3e8, 0) } +void __start() void main() -unsigned int main::$10 // zp[2]:11 22.0 -char main::$12 // reg byte a 22.0 -char main::$13 // reg byte a 22.0 -char main::$18 // reg byte a 22.0 -unsigned int main::$24 // zp[2]:13 16.5 -unsigned int main::$29 // zp[2]:15 22.0 -unsigned int main::$3 // zp[2]:13 22.0 -unsigned int main::$30 // zp[2]:13 22.0 -char *main::$6 // zp[2]:17 22.0 -char *main::$8 // zp[2]:13 11.0 -char main::$9 // reg byte a 22.0 +unsigned int main::$10 // zp[2]:11 202.0 +char main::$12 // reg byte a 202.0 +char main::$13 // reg byte a 202.0 +char main::$18 // reg byte a 202.0 +unsigned int main::$24 // zp[2]:2 151.5 +unsigned int main::$29 // zp[2]:13 202.0 +unsigned int main::$3 // zp[2]:2 202.0 +unsigned int main::$30 // zp[2]:2 202.0 +char *main::$6 // zp[2]:15 202.0 +char *main::$8 // zp[2]:2 101.0 +char main::$9 // reg byte a 202.0 char main::cnt -char main::cnt#0 // reg byte y 11.0 +char main::cnt#0 // reg byte y 101.0 unsigned int main::offset -unsigned int main::offset#0 // offset zp[2]:13 8.25 +unsigned int main::offset#0 // offset zp[2]:2 75.75 char main::rnd -char main::rnd#0 // reg byte y 14.666666666666666 +char main::rnd#0 // reg byte y 134.66666666666666 char main::x -char main::x#1 // reg byte x 11.0 -char main::x#10 // reg byte x 184.5 -char main::x#11 // reg byte x 6.357142857142859 -char main::x#2 // reg byte x 11.0 +char main::x#1 // reg byte x 101.0 +char main::x#10 // reg byte x 1804.5 +char main::x#11 // reg byte x 60.99999999999998 +char main::x#2 // reg byte x 101.0 char main::y -char main::y#1 // y zp[1]:6 11.0 -char main::y#10 // y zp[1]:6 184.5 -char main::y#11 // y zp[1]:6 5.964285714285716 -char main::y#2 // y zp[1]:6 11.0 +char main::y#1 // y zp[1]:6 101.0 +char main::y#10 // y zp[1]:6 1804.5 +char main::y#11 // y zp[1]:6 57.392857142857125 +char main::y#2 // y zp[1]:6 101.0 void * memset(void *str , char c , unsigned int num) char memset::c -char memset::c#5 // reg byte x 14.428571428571429 +char memset::c#5 // reg byte x 143.0 char *memset::dst -char *memset::dst#1 // dst zp[2]:2 202.0 -char *memset::dst#2 // dst zp[2]:2 138.33333333333331 -char *memset::dst#4 // dst zp[2]:2 22.0 +char *memset::dst#1 // dst zp[2]:2 2002.0 +char *memset::dst#2 // dst zp[2]:2 1368.3333333333335 +char *memset::dst#4 // dst zp[2]:2 202.0 char *memset::end -char *memset::end#0 // end zp[2]:4 18.666666666666664 +char *memset::end#0 // end zp[2]:4 183.66666666666669 unsigned int memset::num void *memset::return void *memset::str void *memset::str#4 // str zp[2]:2 unsigned int rand() -unsigned int rand::$0 // zp[2]:4 202.0 -unsigned int rand::$1 // zp[2]:7 202.0 -unsigned int rand::$2 // zp[2]:9 202.0 +unsigned int rand::$0 // zp[2]:4 2002.0 +unsigned int rand::$1 // zp[2]:7 2002.0 +unsigned int rand::$2 // zp[2]:9 2002.0 unsigned int rand::return -unsigned int rand::return#0 // return zp[2]:11 37.33333333333333 -unsigned int rand::return#2 // return zp[2]:11 22.0 -unsigned int rand_state -unsigned int rand_state#0 // rand_state zp[2]:2 151.5 -unsigned int rand_state#1 // rand_state zp[2]:2 151.5 -unsigned int rand_state#10 // rand_state zp[2]:2 11.222222222222223 -unsigned int rand_state#12 // rand_state zp[2]:2 23.307692307692307 +unsigned int rand::return#0 // return zp[2]:11 367.33333333333337 +unsigned int rand::return#2 // return zp[2]:11 202.0 +__loadstore volatile unsigned int rand_state // zp[2]:17 185.40740740740742 zp[1]:6 [ main::y#11 main::y#10 main::y#2 main::y#1 ] reg byte x [ main::x#11 main::x#10 main::x#2 main::x#1 ] -zp[2]:2 [ memset::str#4 memset::dst#2 memset::dst#4 memset::dst#1 rand_state#12 rand_state#10 rand_state#0 rand_state#1 ] reg byte x [ memset::c#5 ] -zp[2]:13 [ main::$24 main::$30 main::$3 main::offset#0 main::$8 ] -zp[2]:15 [ main::$29 ] -zp[2]:17 [ main::$6 ] +zp[2]:17 [ rand_state ] +zp[2]:2 [ main::$24 main::$30 main::$3 main::offset#0 main::$8 memset::str#4 memset::dst#2 memset::dst#4 memset::dst#1 ] +zp[2]:13 [ main::$29 ] +zp[2]:15 [ main::$6 ] reg byte y [ main::cnt#0 ] reg byte a [ main::$9 ] zp[2]:11 [ rand::return#2 main::$10 rand::return#0 ] @@ -1760,7 +1712,7 @@ zp[2]:9 [ rand::$2 ] FINAL ASSEMBLER -Score: 6541 +Score: 6463 // File Comments // Random walk with color fading for Commodore Plus/4 / C16 @@ -1784,7 +1736,7 @@ Score: 6541 .segmentdef Code [start=$100d] .segmentdef Data [startAfter="Code"] .segment Basic -:BasicUpstart(main) +:BasicUpstart(__start) // Global Constants & labels .const OFFSET_STRUCT_MOS7360_TED_BG_COLOR = $15 .const OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR = $19 @@ -1796,51 +1748,69 @@ Score: 6541 /// The TED chip controlling video and sound on the Plus/4 and Commodore 16 .label TED = $ff00 // The random state variable - .label rand_state = 2 + .label rand_state = $11 .segment Code + // __start +__start: { + // __start::__init1 + // volatile unsigned int rand_state = 1 + // [1] rand_state = 1 -- vwuz1=vwuc1 + lda #<1 + sta.z rand_state + lda #>1 + sta.z rand_state+1 + // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] + // __start::@1 + // [3] call main + // [5] phi from __start::@1 to main [phi:__start::@1->main] + jsr main + // __start::@return + // [4] return + rts +} // main main: { - .label __3 = $d - .label __6 = $11 - .label __8 = $d + .label __3 = 2 + .label __6 = $f + .label __8 = 2 .label __10 = $b - .label __24 = $d - .label offset = $d + .label __24 = 2 + .label offset = 2 .label y = 6 - .label __29 = $f - .label __30 = $d + .label __29 = $d + .label __30 = 2 // memset(DEFAULT_SCREEN, 0xa0, 1000) - // [1] call memset - // [44] phi from main to memset [phi:main->memset] - // [44] phi memset::c#5 = $a0 [phi:main->memset#0] -- vbuxx=vbuc1 + // [6] call memset + // [49] phi from main to memset [phi:main->memset] + // [49] phi memset::c#5 = $a0 [phi:main->memset#0] -- vbuxx=vbuc1 ldx #$a0 - // [44] phi memset::str#4 = (void *)DEFAULT_SCREEN [phi:main->memset#1] -- pvoz1=pvoc1 + // [49] phi memset::str#4 = (void *)DEFAULT_SCREEN [phi:main->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memset.str+1 jsr memset - // [2] phi from main to main::@10 [phi:main->main::@10] + // [7] phi from main to main::@10 [phi:main->main::@10] // main::@10 // memset(DEFAULT_COLORRAM, 0, 1000) - // [3] call memset - // [44] phi from main::@10 to memset [phi:main::@10->memset] - // [44] phi memset::c#5 = 0 [phi:main::@10->memset#0] -- vbuxx=vbuc1 + // [8] call memset + // [49] phi from main::@10 to memset [phi:main::@10->memset] + // [49] phi memset::c#5 = 0 [phi:main::@10->memset#0] -- vbuxx=vbuc1 ldx #0 - // [44] phi memset::str#4 = (void *)DEFAULT_COLORRAM [phi:main::@10->memset#1] -- pvoz1=pvoc1 + // [49] phi memset::str#4 = (void *)DEFAULT_COLORRAM [phi:main::@10->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_COLORRAM sta.z memset.str+1 jsr memset - // [4] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + // [9] phi from main::@10 to main::@11 [phi:main::@10->main::@11] // main::@11 // memset(VISITS, 0, 1000) - // [5] call memset - // [44] phi from main::@11 to memset [phi:main::@11->memset] - // [44] phi memset::c#5 = 0 [phi:main::@11->memset#0] -- vbuxx=vbuc1 + // [10] call memset + // [49] phi from main::@11 to memset [phi:main::@11->memset] + // [49] phi memset::c#5 = 0 [phi:main::@11->memset#0] -- vbuxx=vbuc1 ldx #0 - // [44] phi memset::str#4 = (void *)VISITS [phi:main::@11->memset#1] -- pvoz1=pvoc1 + // [49] phi memset::str#4 = (void *)VISITS [phi:main::@11->memset#1] -- pvoz1=pvoc1 lda #VISITS @@ -1848,33 +1818,28 @@ main: { jsr memset // main::@12 // TED->BG_COLOR = 0 - // [6] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 -- _deref_pbuc1=vbuc2 + // [11] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR // TED->BORDER_COLOR = 0 - // [7] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 -- _deref_pbuc1=vbuc2 + // [12] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 -- _deref_pbuc1=vbuc2 sta TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR - // [8] phi from main::@12 to main::@1 [phi:main::@12->main::@1] - // [8] phi rand_state#12 = 1 [phi:main::@12->main::@1#0] -- vwuz1=vwuc1 - lda #<1 - sta.z rand_state - lda #>1 - sta.z rand_state+1 - // [8] phi main::x#11 = $14 [phi:main::@12->main::@1#1] -- vbuxx=vbuc1 + // [13] phi from main::@12 to main::@1 [phi:main::@12->main::@1] + // [13] phi main::x#11 = $14 [phi:main::@12->main::@1#0] -- vbuxx=vbuc1 ldx #$14 - // [8] phi main::y#11 = $c [phi:main::@12->main::@1#2] -- vbuz1=vbuc1 + // [13] phi main::y#11 = $c [phi:main::@12->main::@1#1] -- vbuz1=vbuc1 lda #$c sta.z y // main::@1 // main::@2 __b2: // (unsigned int)y*40 - // [9] main::$24 = (unsigned int)main::y#11 -- vwuz1=_word_vbuz2 + // [14] main::$24 = (unsigned int)main::y#11 -- vwuz1=_word_vbuz2 lda.z y sta.z __24 lda #0 sta.z __24+1 - // [10] main::$29 = main::$24 << 2 -- vwuz1=vwuz2_rol_2 + // [15] main::$29 = main::$24 << 2 -- vwuz1=vwuz2_rol_2 lda.z __24 asl sta.z __29 @@ -1883,7 +1848,7 @@ main: { sta.z __29+1 asl.z __29 rol.z __29+1 - // [11] main::$30 = main::$29 + main::$24 -- vwuz1=vwuz2_plus_vwuz1 + // [16] main::$30 = main::$29 + main::$24 -- vwuz1=vwuz2_plus_vwuz1 clc lda.z __30 adc.z __29 @@ -1891,7 +1856,7 @@ main: { lda.z __30+1 adc.z __29+1 sta.z __30+1 - // [12] main::$3 = main::$30 << 3 -- vwuz1=vwuz1_rol_3 + // [17] main::$3 = main::$30 << 3 -- vwuz1=vwuz1_rol_3 asl.z __3 rol.z __3+1 asl.z __3 @@ -1899,7 +1864,7 @@ main: { asl.z __3 rol.z __3+1 // unsigned int offset = (unsigned int)y*40+x - // [13] main::offset#0 = main::$3 + main::x#11 -- vwuz1=vwuz1_plus_vbuxx + // [18] main::offset#0 = main::$3 + main::x#11 -- vwuz1=vwuz1_plus_vbuxx txa clc adc.z offset @@ -1908,7 +1873,7 @@ main: { inc.z offset+1 !: // VISITS+offset - // [14] main::$6 = VISITS + main::offset#0 -- pbuz1=pbuc1_plus_vwuz2 + // [19] main::$6 = VISITS + main::offset#0 -- pbuz1=pbuc1_plus_vwuz2 lda.z offset clc adc #VISITS sta.z __6+1 // char cnt = ++*(VISITS+offset) - // [15] *main::$6 = ++ *main::$6 -- _deref_pbuz1=_inc__deref_pbuz1 + // [20] *main::$6 = ++ *main::$6 -- _deref_pbuz1=_inc__deref_pbuz1 ldy #0 lda (__6),y clc adc #1 sta (__6),y - // [16] main::cnt#0 = *main::$6 -- vbuyy=_deref_pbuz1 + // [21] main::cnt#0 = *main::$6 -- vbuyy=_deref_pbuz1 lda (__6),y tay // DEFAULT_COLORRAM+offset - // [17] main::$8 = DEFAULT_COLORRAM + main::offset#0 -- pbuz1=pbuc1_plus_vwuz1 + // [22] main::$8 = DEFAULT_COLORRAM + main::offset#0 -- pbuz1=pbuc1_plus_vwuz1 lda.z __8 clc adc #DEFAULT_COLORRAM sta.z __8+1 // cnt&0xf - // [18] main::$9 = main::cnt#0 & $f -- vbuaa=vbuyy_band_vbuc1 + // [23] main::$9 = main::cnt#0 & $f -- vbuaa=vbuyy_band_vbuc1 tya and #$f // *(DEFAULT_COLORRAM+offset) = FADE[cnt&0xf] - // [19] *main::$8 = FADE[main::$9] -- _deref_pbuz1=pbuc1_derefidx_vbuaa + // [24] *main::$8 = FADE[main::$9] -- _deref_pbuz1=pbuc1_derefidx_vbuaa tay lda FADE,y ldy #0 sta (__8),y // rand() - // [20] call rand + // [25] call rand jsr rand - // [21] rand::return#2 = rand::return#0 + // [26] rand::return#2 = rand::return#0 // main::@13 - // [22] main::$10 = rand::return#2 + // [27] main::$10 = rand::return#2 // char rnd = BYTE1(rand()) - // [23] main::rnd#0 = byte1 main::$10 -- vbuyy=_byte1_vwuz1 + // [28] main::rnd#0 = byte1 main::$10 -- vbuyy=_byte1_vwuz1 ldy.z __10+1 // rnd & 0x80 - // [24] main::$12 = main::rnd#0 & $80 -- vbuaa=vbuyy_band_vbuc1 + // [29] main::$12 = main::rnd#0 & $80 -- vbuaa=vbuyy_band_vbuc1 tya and #$80 // if(rnd & 0x80) - // [25] if(0!=main::$12) goto main::@3 -- 0_neq_vbuaa_then_la1 + // [30] if(0!=main::$12) goto main::@3 -- 0_neq_vbuaa_then_la1 cmp #0 bne __b3 // main::@7 // rnd & 0x40 - // [26] main::$13 = main::rnd#0 & $40 -- vbuaa=vbuyy_band_vbuc1 + // [31] main::$13 = main::rnd#0 & $40 -- vbuaa=vbuyy_band_vbuc1 tya and #$40 // if(rnd & 0x40) - // [27] if(0!=main::$13) goto main::@4 -- 0_neq_vbuaa_then_la1 + // [32] if(0!=main::$13) goto main::@4 -- 0_neq_vbuaa_then_la1 cmp #0 bne __b4 // main::@8 // y--; - // [28] main::y#2 = -- main::y#11 -- vbuz1=_dec_vbuz1 + // [33] main::y#2 = -- main::y#11 -- vbuz1=_dec_vbuz1 dec.z y // if(y==0xff) - // [29] if(main::y#2!=$ff) goto main::@14 -- vbuz1_neq_vbuc1_then_la1 + // [34] if(main::y#2!=$ff) goto main::@14 -- vbuz1_neq_vbuc1_then_la1 lda #$ff cmp.z y bne __b6 - // [31] phi from main::@8 to main::@6 [phi:main::@8->main::@6] - // [31] phi main::x#10 = main::x#11 [phi:main::@8->main::@6#0] -- register_copy - // [31] phi main::y#10 = 0 [phi:main::@8->main::@6#1] -- vbuz1=vbuc1 + // [36] phi from main::@8 to main::@6 [phi:main::@8->main::@6] + // [36] phi main::x#10 = main::x#11 [phi:main::@8->main::@6#0] -- register_copy + // [36] phi main::y#10 = 0 [phi:main::@8->main::@6#1] -- vbuz1=vbuc1 lda #0 sta.z y - // [30] phi from main::@8 to main::@14 [phi:main::@8->main::@14] + // [35] phi from main::@8 to main::@14 [phi:main::@8->main::@14] // main::@14 - // [31] phi from main::@14 main::@15 main::@16 main::@17 main::@6 to main::@6 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6] - // [31] phi main::x#10 = main::x#11 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6#0] -- register_copy - // [31] phi main::y#10 = main::y#2 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6#1] -- register_copy + // [36] phi from main::@14 main::@15 main::@16 main::@17 main::@6 to main::@6 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6] + // [36] phi main::x#10 = main::x#11 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6#0] -- register_copy + // [36] phi main::y#10 = main::y#2 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6#1] -- register_copy // main::@6 __b6: // while(TED->RASTER_LO!=0xff) - // [32] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [37] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$ff cmp TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO bne __b6 - // [8] phi from main::@6 to main::@1 [phi:main::@6->main::@1] - // [8] phi rand_state#12 = rand_state#10 [phi:main::@6->main::@1#0] -- register_copy - // [8] phi main::x#11 = main::x#10 [phi:main::@6->main::@1#1] -- register_copy - // [8] phi main::y#11 = main::y#10 [phi:main::@6->main::@1#2] -- register_copy + // [13] phi from main::@6 to main::@1 [phi:main::@6->main::@1] + // [13] phi main::x#11 = main::x#10 [phi:main::@6->main::@1#0] -- register_copy + // [13] phi main::y#11 = main::y#10 [phi:main::@6->main::@1#1] -- register_copy jmp __b2 // main::@4 __b4: // y++; - // [33] main::y#1 = ++ main::y#11 -- vbuz1=_inc_vbuz1 + // [38] main::y#1 = ++ main::y#11 -- vbuz1=_inc_vbuz1 inc.z y // if(y==25) - // [34] if(main::y#1!=$19) goto main::@16 -- vbuz1_neq_vbuc1_then_la1 + // [39] if(main::y#1!=$19) goto main::@16 -- vbuz1_neq_vbuc1_then_la1 lda #$19 cmp.z y bne __b6 - // [31] phi from main::@4 to main::@6 [phi:main::@4->main::@6] - // [31] phi main::x#10 = main::x#11 [phi:main::@4->main::@6#0] -- register_copy - // [31] phi main::y#10 = $18 [phi:main::@4->main::@6#1] -- vbuz1=vbuc1 + // [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + // [36] phi main::x#10 = main::x#11 [phi:main::@4->main::@6#0] -- register_copy + // [36] phi main::y#10 = $18 [phi:main::@4->main::@6#1] -- vbuz1=vbuc1 lda #$18 sta.z y jmp __b6 - // [35] phi from main::@4 to main::@16 [phi:main::@4->main::@16] + // [40] phi from main::@4 to main::@16 [phi:main::@4->main::@16] // main::@16 // main::@3 __b3: // rnd& 0x40 - // [36] main::$18 = main::rnd#0 & $40 -- vbuaa=vbuyy_band_vbuc1 + // [41] main::$18 = main::rnd#0 & $40 -- vbuaa=vbuyy_band_vbuc1 tya and #$40 // if(rnd& 0x40) - // [37] if(0!=main::$18) goto main::@5 -- 0_neq_vbuaa_then_la1 + // [42] if(0!=main::$18) goto main::@5 -- 0_neq_vbuaa_then_la1 cmp #0 bne __b5 // main::@9 // x--; - // [38] main::x#2 = -- main::x#11 -- vbuxx=_dec_vbuxx + // [43] main::x#2 = -- main::x#11 -- vbuxx=_dec_vbuxx dex // if(x==0xff) - // [39] if(main::x#2!=$ff) goto main::@15 -- vbuxx_neq_vbuc1_then_la1 + // [44] if(main::x#2!=$ff) goto main::@15 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne __b6 - // [31] phi from main::@9 to main::@6 [phi:main::@9->main::@6] - // [31] phi main::x#10 = 0 [phi:main::@9->main::@6#0] -- vbuxx=vbuc1 + // [36] phi from main::@9 to main::@6 [phi:main::@9->main::@6] + // [36] phi main::x#10 = 0 [phi:main::@9->main::@6#0] -- vbuxx=vbuc1 ldx #0 - // [31] phi main::y#10 = main::y#11 [phi:main::@9->main::@6#1] -- register_copy + // [36] phi main::y#10 = main::y#11 [phi:main::@9->main::@6#1] -- register_copy jmp __b6 - // [40] phi from main::@9 to main::@15 [phi:main::@9->main::@15] + // [45] phi from main::@9 to main::@15 [phi:main::@9->main::@15] // main::@15 // main::@5 __b5: // x++; - // [41] main::x#1 = ++ main::x#11 -- vbuxx=_inc_vbuxx + // [46] main::x#1 = ++ main::x#11 -- vbuxx=_inc_vbuxx inx // if(x==40) - // [42] if(main::x#1!=$28) goto main::@17 -- vbuxx_neq_vbuc1_then_la1 + // [47] if(main::x#1!=$28) goto main::@17 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne __b6 - // [31] phi from main::@5 to main::@6 [phi:main::@5->main::@6] - // [31] phi main::x#10 = $27 [phi:main::@5->main::@6#0] -- vbuxx=vbuc1 + // [36] phi from main::@5 to main::@6 [phi:main::@5->main::@6] + // [36] phi main::x#10 = $27 [phi:main::@5->main::@6#0] -- vbuxx=vbuc1 ldx #$27 - // [31] phi main::y#10 = main::y#11 [phi:main::@5->main::@6#1] -- register_copy + // [36] phi main::y#10 = main::y#11 [phi:main::@5->main::@6#1] -- register_copy jmp __b6 - // [43] phi from main::@5 to main::@17 [phi:main::@5->main::@17] + // [48] phi from main::@5 to main::@17 [phi:main::@5->main::@17] // main::@17 } // memset @@ -2071,7 +2035,7 @@ memset: { .label str = 2 // memset::@1 // char* end = (char*)str + num - // [45] memset::end#0 = (char *)memset::str#4 + $3e8 -- pbuz1=pbuz2_plus_vwuc1 + // [50] memset::end#0 = (char *)memset::str#4 + $3e8 -- pbuz1=pbuz2_plus_vwuc1 lda.z str clc adc #<$3e8 @@ -2079,13 +2043,13 @@ memset: { lda.z str+1 adc #>$3e8 sta.z end+1 - // [46] memset::dst#4 = (char *)memset::str#4 - // [47] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] - // [47] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + // [51] memset::dst#4 = (char *)memset::str#4 + // [52] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + // [52] 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++) - // [48] if(memset::dst#2!=memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 + // [53] 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 @@ -2094,17 +2058,17 @@ memset: { bne __b3 // memset::@return // } - // [49] return + // [54] return rts // memset::@3 __b3: // *dst = c - // [50] *memset::dst#2 = memset::c#5 -- _deref_pbuz1=vbuxx + // [55] *memset::dst#2 = memset::c#5 -- _deref_pbuz1=vbuxx txa ldy #0 sta (dst),y // for(char* dst = str; dst!=end; dst++) - // [51] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 + // [56] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 @@ -2122,7 +2086,7 @@ rand: { .label __2 = 9 .label return = $b // rand_state << 7 - // [52] rand::$0 = rand_state#12 << 7 -- vwuz1=vwuz2_rol_7 + // [57] rand::$0 = rand_state << 7 -- vwuz1=vwuz2_rol_7 lda.z rand_state+1 lsr lda.z rand_state @@ -2132,7 +2096,7 @@ rand: { ror sta.z __0 // rand_state ^= rand_state << 7 - // [53] rand_state#0 = rand_state#12 ^ rand::$0 -- vwuz1=vwuz1_bxor_vwuz2 + // [58] rand_state = rand_state ^ rand::$0 -- vwuz1=vwuz1_bxor_vwuz2 lda.z rand_state eor.z __0 sta.z rand_state @@ -2140,13 +2104,13 @@ rand: { eor.z __0+1 sta.z rand_state+1 // rand_state >> 9 - // [54] rand::$1 = rand_state#0 >> 9 -- vwuz1=vwuz2_ror_9 + // [59] rand::$1 = rand_state >> 9 -- vwuz1=vwuz2_ror_9 lsr sta.z __1 lda #0 sta.z __1+1 // rand_state ^= rand_state >> 9 - // [55] rand_state#1 = rand_state#0 ^ rand::$1 -- vwuz1=vwuz1_bxor_vwuz2 + // [60] rand_state = rand_state ^ rand::$1 -- vwuz1=vwuz1_bxor_vwuz2 lda.z rand_state eor.z __1 sta.z rand_state @@ -2154,13 +2118,13 @@ rand: { eor.z __1+1 sta.z rand_state+1 // rand_state << 8 - // [56] rand::$2 = rand_state#1 << 8 -- vwuz1=vwuz2_rol_8 + // [61] rand::$2 = rand_state << 8 -- vwuz1=vwuz2_rol_8 lda.z rand_state sta.z __2+1 lda #0 sta.z __2 // rand_state ^= rand_state << 8 - // [57] rand_state#10 = rand_state#1 ^ rand::$2 -- vwuz1=vwuz1_bxor_vwuz2 + // [62] rand_state = rand_state ^ rand::$2 -- vwuz1=vwuz1_bxor_vwuz2 lda.z rand_state eor.z __2 sta.z rand_state @@ -2168,14 +2132,14 @@ rand: { eor.z __2+1 sta.z rand_state+1 // return rand_state; - // [58] rand::return#0 = rand_state#10 -- vwuz1=vwuz2 + // [63] rand::return#0 = rand_state -- vwuz1=vwuz2 lda.z rand_state sta.z return lda.z rand_state+1 sta.z return+1 // rand::@return // } - // [59] return + // [64] return rts } // File Data diff --git a/src/test/ref/examples/plus4/plus4-randomwalk.sym b/src/test/ref/examples/plus4/plus4-randomwalk.sym index 20587df85..6d88a7797 100644 --- a/src/test/ref/examples/plus4/plus4-randomwalk.sym +++ b/src/test/ref/examples/plus4/plus4-randomwalk.sym @@ -10,67 +10,64 @@ __constant char RADIX::HEXADECIMAL = $10 __constant char RADIX::OCTAL = 8 __constant struct MOS7360_TED * const TED = (struct MOS7360_TED *) 65280 __constant char VISITS[$3e8] = { fill( $3e8, 0) } +void __start() void main() -unsigned int main::$10 // zp[2]:11 22.0 -char main::$12 // reg byte a 22.0 -char main::$13 // reg byte a 22.0 -char main::$18 // reg byte a 22.0 -unsigned int main::$24 // zp[2]:13 16.5 -unsigned int main::$29 // zp[2]:15 22.0 -unsigned int main::$3 // zp[2]:13 22.0 -unsigned int main::$30 // zp[2]:13 22.0 -char *main::$6 // zp[2]:17 22.0 -char *main::$8 // zp[2]:13 11.0 -char main::$9 // reg byte a 22.0 +unsigned int main::$10 // zp[2]:11 202.0 +char main::$12 // reg byte a 202.0 +char main::$13 // reg byte a 202.0 +char main::$18 // reg byte a 202.0 +unsigned int main::$24 // zp[2]:2 151.5 +unsigned int main::$29 // zp[2]:13 202.0 +unsigned int main::$3 // zp[2]:2 202.0 +unsigned int main::$30 // zp[2]:2 202.0 +char *main::$6 // zp[2]:15 202.0 +char *main::$8 // zp[2]:2 101.0 +char main::$9 // reg byte a 202.0 char main::cnt -char main::cnt#0 // reg byte y 11.0 +char main::cnt#0 // reg byte y 101.0 unsigned int main::offset -unsigned int main::offset#0 // offset zp[2]:13 8.25 +unsigned int main::offset#0 // offset zp[2]:2 75.75 char main::rnd -char main::rnd#0 // reg byte y 14.666666666666666 +char main::rnd#0 // reg byte y 134.66666666666666 char main::x -char main::x#1 // reg byte x 11.0 -char main::x#10 // reg byte x 184.5 -char main::x#11 // reg byte x 6.357142857142859 -char main::x#2 // reg byte x 11.0 +char main::x#1 // reg byte x 101.0 +char main::x#10 // reg byte x 1804.5 +char main::x#11 // reg byte x 60.99999999999998 +char main::x#2 // reg byte x 101.0 char main::y -char main::y#1 // y zp[1]:6 11.0 -char main::y#10 // y zp[1]:6 184.5 -char main::y#11 // y zp[1]:6 5.964285714285716 -char main::y#2 // y zp[1]:6 11.0 +char main::y#1 // y zp[1]:6 101.0 +char main::y#10 // y zp[1]:6 1804.5 +char main::y#11 // y zp[1]:6 57.392857142857125 +char main::y#2 // y zp[1]:6 101.0 void * memset(void *str , char c , unsigned int num) char memset::c -char memset::c#5 // reg byte x 14.428571428571429 +char memset::c#5 // reg byte x 143.0 char *memset::dst -char *memset::dst#1 // dst zp[2]:2 202.0 -char *memset::dst#2 // dst zp[2]:2 138.33333333333331 -char *memset::dst#4 // dst zp[2]:2 22.0 +char *memset::dst#1 // dst zp[2]:2 2002.0 +char *memset::dst#2 // dst zp[2]:2 1368.3333333333335 +char *memset::dst#4 // dst zp[2]:2 202.0 char *memset::end -char *memset::end#0 // end zp[2]:4 18.666666666666664 +char *memset::end#0 // end zp[2]:4 183.66666666666669 unsigned int memset::num void *memset::return void *memset::str void *memset::str#4 // str zp[2]:2 unsigned int rand() -unsigned int rand::$0 // zp[2]:4 202.0 -unsigned int rand::$1 // zp[2]:7 202.0 -unsigned int rand::$2 // zp[2]:9 202.0 +unsigned int rand::$0 // zp[2]:4 2002.0 +unsigned int rand::$1 // zp[2]:7 2002.0 +unsigned int rand::$2 // zp[2]:9 2002.0 unsigned int rand::return -unsigned int rand::return#0 // return zp[2]:11 37.33333333333333 -unsigned int rand::return#2 // return zp[2]:11 22.0 -unsigned int rand_state -unsigned int rand_state#0 // rand_state zp[2]:2 151.5 -unsigned int rand_state#1 // rand_state zp[2]:2 151.5 -unsigned int rand_state#10 // rand_state zp[2]:2 11.222222222222223 -unsigned int rand_state#12 // rand_state zp[2]:2 23.307692307692307 +unsigned int rand::return#0 // return zp[2]:11 367.33333333333337 +unsigned int rand::return#2 // return zp[2]:11 202.0 +__loadstore volatile unsigned int rand_state // zp[2]:17 185.40740740740742 zp[1]:6 [ main::y#11 main::y#10 main::y#2 main::y#1 ] reg byte x [ main::x#11 main::x#10 main::x#2 main::x#1 ] -zp[2]:2 [ memset::str#4 memset::dst#2 memset::dst#4 memset::dst#1 rand_state#12 rand_state#10 rand_state#0 rand_state#1 ] reg byte x [ memset::c#5 ] -zp[2]:13 [ main::$24 main::$30 main::$3 main::offset#0 main::$8 ] -zp[2]:15 [ main::$29 ] -zp[2]:17 [ main::$6 ] +zp[2]:17 [ rand_state ] +zp[2]:2 [ main::$24 main::$30 main::$3 main::offset#0 main::$8 memset::str#4 memset::dst#2 memset::dst#4 memset::dst#1 ] +zp[2]:13 [ main::$29 ] +zp[2]:15 [ main::$6 ] reg byte y [ main::cnt#0 ] reg byte a [ main::$9 ] zp[2]:11 [ rand::return#2 main::$10 rand::return#0 ] diff --git a/src/test/ref/function-pointer-noarg-call-14.log b/src/test/ref/function-pointer-noarg-call-14.log index da9ae74fb..177a0cb8a 100644 --- a/src/test/ref/function-pointer-noarg-call-14.log +++ b/src/test/ref/function-pointer-noarg-call-14.log @@ -12,6 +12,8 @@ Eliminating unused variable with no statement memcpy::$0 Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement gotoxy::$4 Eliminating unused variable with no statement printf_buffer +Eliminating unused variable with no statement __snprintf_capacity +Eliminating unused variable with no statement __snprintf_size Eliminating unused variable with no statement hello::$0 Eliminating unused variable with no statement world::$0 Calling convention STACK_CALL adding prepare/execute/finalize for call *printf_str::putc printf_str::c diff --git a/src/test/ref/memcpy-0.log b/src/test/ref/memcpy-0.log index 3a6c0f1db..5fc5ed8ac 100644 --- a/src/test/ref/memcpy-0.log +++ b/src/test/ref/memcpy-0.log @@ -1,5 +1,6 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) Inlined call main::$0 = call toD018(SCREEN_COPY, CHARSET) +Inlined call call __init Eliminating unused variable with no statement memcpy::$0 CONTROL FLOW GRAPH SSA @@ -42,7 +43,7 @@ memcpy::@return: scope:[memcpy] from memcpy::@3 to:@return void main() -main: scope:[main] from __start +main: scope:[main] from __start::@1 main::toD0181_screen#0 = SCREEN_COPY main::toD0181_gfx#0 = CHARSET to:main::toD0181 @@ -92,11 +93,15 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + to:__start::__init1 +__start::__init1: scope:[__start] from __start to:__start::@1 -__start::@1: scope:[__start] from __start +__start::@1: scope:[__start] from __start::__init1 + call main + to:__start::@2 +__start::@2: scope:[__start] from __start::@1 to:__start::@return -__start::@return: scope:[__start] from __start::@1 +__start::@return: scope:[__start] from __start::@2 return to:@return @@ -243,7 +248,9 @@ Eliminating unused variable memcpy::return#3 and assignment [24] memcpy::return# Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start +Removing unused procedure block __start::__init1 Removing unused procedure block __start::@1 +Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Constant right-side identified [11] main::toD0181_$0 = main::toD0181_$7 & $3fff diff --git a/src/test/ref/memcpy-1.log b/src/test/ref/memcpy-1.log index ff7dcf584..22b01f234 100644 --- a/src/test/ref/memcpy-1.log +++ b/src/test/ref/memcpy-1.log @@ -1,3 +1,4 @@ +Inlined call call __init Eliminating unused variable with no statement memcpy::$0 CONTROL FLOW GRAPH SSA @@ -40,7 +41,7 @@ memcpy::@return: scope:[memcpy] from memcpy::@3 to:@return void main() -main: scope:[main] from __start +main: scope:[main] from __start::@1 main::sc#0 = SCREEN main::camelot#0 = CAMELOT main::i#0 = 0 @@ -94,11 +95,15 @@ main::@return: scope:[main] from main::@6 void __start() __start: scope:[__start] from - call main + to:__start::__init1 +__start::__init1: scope:[__start] from __start to:__start::@1 -__start::@1: scope:[__start] from __start +__start::@1: scope:[__start] from __start::__init1 + call main + to:__start::@2 +__start::@2: scope:[__start] from __start::@1 to:__start::@return -__start::@return: scope:[__start] from __start::@1 +__start::@return: scope:[__start] from __start::@2 return to:@return @@ -232,7 +237,9 @@ Eliminating unused variable memcpy::return#3 and assignment [26] memcpy::return# Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start +Removing unused procedure block __start::__init1 Removing unused procedure block __start::@1 +Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Adding number conversion cast (unumber) 7 in [16] if(main::i#1!=7) goto main::@1 diff --git a/src/test/ref/millfork-benchmarks/plasma-kc.asm b/src/test/ref/millfork-benchmarks/plasma-kc.asm index 06943154b..13116900e 100644 --- a/src/test/ref/millfork-benchmarks/plasma-kc.asm +++ b/src/test/ref/millfork-benchmarks/plasma-kc.asm @@ -24,26 +24,30 @@ .label SCREEN2 = $e400 .label CHARSET = $e800 .label print_screen = $400 - .label last_time = $16 - .label print_line_cursor = $14 // The random state variable - .label rand_state = 2 - .label Ticks = 6 - .label Ticks_1 = 4 - .label print_char_cursor = $a + .label rand_state = $e + .label last_time = $18 + .label print_line_cursor = $16 + .label Ticks = 8 + .label Ticks_1 = 2 + .label print_char_cursor = $11 .segment Code __start: { + // volatile unsigned int rand_state = 1 + lda #<1 + sta.z rand_state + lda #>1 + sta.z rand_state+1 // unsigned int last_time - lda #<0 sta.z last_time sta.z last_time+1 jsr main rts } main: { - .label block = $18 - .label v = $19 - .label count = 2 + .label block = $1a + .label v = $1b + .label count = $16 // makechar() jsr makechar // start() @@ -110,18 +114,15 @@ main: { jmp __b1 } makechar: { - .label __3 = $a - .label __4 = $c - .label __7 = $14 - .label __8 = $14 - .label s = $12 - .label c = $d - .label i = $f - .label __10 = $14 - lda #<1 - sta.z rand_state - lda #>1 - sta.z rand_state+1 + .label __3 = 8 + .label __4 = $a + .label __7 = $11 + .label __8 = $11 + .label s = $14 + .label c = $b + .label i = $d + .label __10 = $11 + lda #<0 sta.z c sta.z c+1 __b1: @@ -251,17 +252,17 @@ end: { // } rts } -// void doplasma(__zp($d) char *scrn) +// void doplasma(__zp($b) char *scrn) doplasma: { .const c2A = 0 .const c2B = 0 - .label c1a = $12 - .label c1b = $c - .label ii = $f - .label c2a = $13 - .label c2b = $11 + .label c1a = $14 + .label c1b = $a + .label ii = $d + .label c2a = $15 + .label c2b = $13 .label i = $10 - .label scrn = $d + .label scrn = $b lda #0 sta.z c1b sta.z c1a @@ -364,10 +365,10 @@ doplasma: { // Information https://en.wikipedia.org/wiki/Xorshift // Source http://www.retroprogramming.com/2017/07/xorshift-pseudorandom-numbers-in-z80.html rand: { - .label __0 = 6 + .label __0 = 2 .label __1 = 4 - .label __2 = 8 - .label return = $a + .label __2 = 6 + .label return = 8 // rand_state << 7 lda.z rand_state+1 lsr @@ -417,9 +418,9 @@ rand: { rts } // Print a unsigned int as HEX -// void print_uint(__zp(4) unsigned int w) +// void print_uint(__zp(2) unsigned int w) print_uint: { - .label w = 4 + .label w = 2 // print_uchar(BYTE1(w)) ldx.z w+1 lda #> 9 - [89] rand_state#1 = rand_state#0 ^ rand::$1 - [90] rand::$2 = rand_state#1 << 8 - [91] rand_state#12 = rand_state#1 ^ rand::$2 - [92] rand::return#0 = rand_state#12 + [87] rand::$0 = rand_state << 7 + [88] rand_state = rand_state ^ rand::$0 + [89] rand::$1 = rand_state >> 9 + [90] rand_state = rand_state ^ rand::$1 + [91] rand::$2 = rand_state << 8 + [92] rand_state = rand_state ^ rand::$2 + [93] rand::return#0 = rand_state to:rand::@return rand::@return: scope:[rand] from rand - [93] return + [94] return to:@return void print_uint(unsigned int w) print_uint: scope:[print_uint] from end::@1 - [94] print_uchar::b#0 = byte1 print_uint::w#0 - [95] call print_uchar + [95] print_uchar::b#0 = byte1 print_uint::w#0 + [96] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint - [96] print_uchar::b#1 = byte0 print_uint::w#0 - [97] call print_uchar + [97] print_uchar::b#1 = byte0 print_uint::w#0 + [98] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 - [98] return + [99] return to:@return void print_ln() print_ln: scope:[print_ln] from end::@2 - [99] phi() + [100] phi() to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 - [100] print_line_cursor#9 = phi( print_ln/print_screen#0, print_ln::@1/print_line_cursor#0 ) - [101] print_line_cursor#0 = print_line_cursor#9 + $28 - [102] if(print_line_cursor#0> 4 - [106] print_char::ch#0 = print_hextab[print_uchar::$0] - [107] call print_char + [105] print_char_cursor#37 = phi( print_uint/print_screen#0, print_uint::@1/print_char_cursor#27 ) + [105] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) + [106] print_uchar::$0 = print_uchar::b#2 >> 4 + [107] print_char::ch#0 = print_hextab[print_uchar::$0] + [108] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar - [108] print_uchar::$2 = print_uchar::b#2 & $f - [109] print_char::ch#1 = print_hextab[print_uchar::$2] - [110] call print_char + [109] print_uchar::$2 = print_uchar::b#2 & $f + [110] print_char::ch#1 = print_hextab[print_uchar::$2] + [111] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 - [111] return + [112] return to:@return void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 - [112] print_char_cursor#26 = phi( print_uchar/print_char_cursor#37, print_uchar::@1/print_char_cursor#27 ) - [112] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) - [113] *print_char_cursor#26 = print_char::ch#2 - [114] print_char_cursor#27 = ++ print_char_cursor#26 + [113] print_char_cursor#26 = phi( print_uchar/print_char_cursor#37, print_uchar::@1/print_char_cursor#27 ) + [113] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) + [114] *print_char_cursor#26 = print_char::ch#2 + [115] print_char_cursor#27 = ++ print_char_cursor#26 to:print_char::@return print_char::@return: scope:[print_char] from print_char - [115] return + [116] return to:@return diff --git a/src/test/ref/millfork-benchmarks/plasma-kc.log b/src/test/ref/millfork-benchmarks/plasma-kc.log index 6498dc65b..8cbca9519 100644 --- a/src/test/ref/millfork-benchmarks/plasma-kc.log +++ b/src/test/ref/millfork-benchmarks/plasma-kc.log @@ -96,20 +96,17 @@ print_char::@return: scope:[print_char] from print_char unsigned int rand() rand: scope:[rand] from makechar::@7 - rand_state#11 = phi( makechar::@7/rand_state#19 ) - rand::$0 = rand_state#11 << 7 - rand_state#0 = rand_state#11 ^ rand::$0 - rand::$1 = rand_state#0 >> 9 - rand_state#1 = rand_state#0 ^ rand::$1 - rand::$2 = rand_state#1 << 8 - rand_state#2 = rand_state#1 ^ rand::$2 - rand::return#0 = rand_state#2 + rand::$0 = rand_state << 7 + rand_state = rand_state ^ rand::$0 + rand::$1 = rand_state >> 9 + rand_state = rand_state ^ rand::$1 + rand::$2 = rand_state << 8 + rand_state = rand_state ^ rand::$2 + rand::return#0 = rand_state to:rand::@return rand::@return: scope:[rand] from rand - rand_state#12 = phi( rand/rand_state#2 ) rand::return#3 = phi( rand/rand::return#0 ) rand::return#1 = rand::return#3 - rand_state#3 = rand_state#12 return to:@return @@ -288,7 +285,6 @@ doplasma::@return: scope:[doplasma] from doplasma::@7 void makechar() makechar: scope:[makechar] from main - rand_state#24 = phi( main/rand_state#21 ) makechar::i#0 = 0 makechar::ii#0 = 0 makechar::b#0 = 0 @@ -297,13 +293,11 @@ makechar: scope:[makechar] from main makechar::c#1 = 0 to:makechar::@1 makechar::@1: scope:[makechar] from makechar makechar::@5 - rand_state#20 = phi( makechar/rand_state#24, makechar::@5/rand_state#25 ) makechar::c#3 = phi( makechar/makechar::c#1, makechar::@5/makechar::c#2 ) makechar::$0 = makechar::c#3 < $100 if(makechar::$0) goto makechar::@2 to:makechar::@return makechar::@2: scope:[makechar] from makechar::@1 - rand_state#32 = phi( makechar::@1/rand_state#20 ) makechar::c#4 = phi( makechar::@1/makechar::c#3 ) makechar::$9 = (char)makechar::c#4 makechar::s#1 = sinetable[makechar::$9] @@ -311,7 +305,6 @@ makechar::@2: scope:[makechar] from makechar::@1 to:makechar::@3 makechar::@3: scope:[makechar] from makechar::@2 makechar::@8 makechar::s#7 = phi( makechar::@2/makechar::s#1, makechar::@8/makechar::s#9 ) - rand_state#28 = phi( makechar::@2/rand_state#32, makechar::@8/rand_state#33 ) makechar::c#7 = phi( makechar::@2/makechar::c#4, makechar::@8/makechar::c#6 ) makechar::i#3 = phi( makechar::@2/makechar::i#1, makechar::@8/makechar::i#2 ) makechar::$1 = makechar::i#3 < 8 @@ -319,20 +312,17 @@ makechar::@3: scope:[makechar] from makechar::@2 makechar::@8 to:makechar::@5 makechar::@4: scope:[makechar] from makechar::@3 makechar::s#5 = phi( makechar::@3/makechar::s#7 ) - rand_state#29 = phi( makechar::@3/rand_state#28 ) makechar::i#6 = phi( makechar::@3/makechar::i#3 ) makechar::c#9 = phi( makechar::@3/makechar::c#7 ) makechar::b#1 = 0 makechar::ii#1 = 0 to:makechar::@6 makechar::@5: scope:[makechar] from makechar::@3 - rand_state#25 = phi( makechar::@3/rand_state#28 ) makechar::c#5 = phi( makechar::@3/makechar::c#7 ) makechar::c#2 = ++ makechar::c#5 to:makechar::@1 makechar::@6: scope:[makechar] from makechar::@4 makechar::@9 makechar::s#4 = phi( makechar::@4/makechar::s#5, makechar::@9/makechar::s#6 ) - rand_state#26 = phi( makechar::@4/rand_state#29, makechar::@9/rand_state#30 ) makechar::b#5 = phi( makechar::@4/makechar::b#1, makechar::@9/makechar::b#7 ) makechar::i#5 = phi( makechar::@4/makechar::i#6, makechar::@9/makechar::i#7 ) makechar::c#8 = phi( makechar::@4/makechar::c#9, makechar::@9/makechar::c#10 ) @@ -346,7 +336,6 @@ makechar::@7: scope:[makechar] from makechar::@6 makechar::b#8 = phi( makechar::@6/makechar::b#5 ) makechar::ii#7 = phi( makechar::@6/makechar::ii#3 ) makechar::s#3 = phi( makechar::@6/makechar::s#4 ) - rand_state#19 = phi( makechar::@6/rand_state#26 ) call rand rand::return#2 = rand::return#1 to:makechar::@11 @@ -356,10 +345,8 @@ makechar::@11: scope:[makechar] from makechar::@7 makechar::b#6 = phi( makechar::@7/makechar::b#8 ) makechar::ii#6 = phi( makechar::@7/makechar::ii#7 ) makechar::s#2 = phi( makechar::@7/makechar::s#3 ) - rand_state#13 = phi( makechar::@7/rand_state#3 ) rand::return#4 = phi( makechar::@7/rand::return#2 ) makechar::$3 = rand::return#4 - rand_state#4 = rand_state#13 makechar::$4 = makechar::$3 & $ff makechar::$5 = makechar::$4 > makechar::s#2 makechar::$6 = ! makechar::$5 @@ -367,7 +354,6 @@ makechar::@11: scope:[makechar] from makechar::@7 to:makechar::@10 makechar::@8: scope:[makechar] from makechar::@6 makechar::s#9 = phi( makechar::@6/makechar::s#4 ) - rand_state#33 = phi( makechar::@6/rand_state#26 ) makechar::b#3 = phi( makechar::@6/makechar::b#5 ) makechar::i#4 = phi( makechar::@6/makechar::i#5 ) makechar::c#6 = phi( makechar::@6/makechar::c#8 ) @@ -378,7 +364,6 @@ makechar::@8: scope:[makechar] from makechar::@6 to:makechar::@3 makechar::@9: scope:[makechar] from makechar::@10 makechar::@11 makechar::s#6 = phi( makechar::@10/makechar::s#8, makechar::@11/makechar::s#2 ) - rand_state#30 = phi( makechar::@10/rand_state#34, makechar::@11/rand_state#4 ) makechar::b#7 = phi( makechar::@10/makechar::b#2, makechar::@11/makechar::b#6 ) makechar::i#7 = phi( makechar::@10/makechar::i#8, makechar::@11/makechar::i#9 ) makechar::c#10 = phi( makechar::@10/makechar::c#11, makechar::@11/makechar::c#12 ) @@ -387,7 +372,6 @@ makechar::@9: scope:[makechar] from makechar::@10 makechar::@11 to:makechar::@6 makechar::@10: scope:[makechar] from makechar::@11 makechar::s#8 = phi( makechar::@11/makechar::s#2 ) - rand_state#34 = phi( makechar::@11/rand_state#4 ) makechar::i#8 = phi( makechar::@11/makechar::i#9 ) makechar::c#11 = phi( makechar::@11/makechar::c#12 ) makechar::ii#5 = phi( makechar::@11/makechar::ii#6 ) @@ -395,8 +379,6 @@ makechar::@10: scope:[makechar] from makechar::@11 makechar::b#2 = makechar::b#4 | bittab[makechar::ii#5] to:makechar::@9 makechar::@return: scope:[makechar] from makechar::@1 - rand_state#14 = phi( makechar::@1/rand_state#20 ) - rand_state#5 = rand_state#14 return to:@return @@ -405,7 +387,6 @@ main: scope:[main] from __start::@1 print_line_cursor#29 = phi( __start::@1/print_line_cursor#21 ) print_char_cursor#47 = phi( __start::@1/print_char_cursor#40 ) Ticks#23 = phi( __start::@1/Ticks#16 ) - rand_state#21 = phi( __start::@1/rand_state#23 ) main::v#0 = 0 main::block#0 = 0 main::count#0 = $1f4 @@ -416,12 +397,9 @@ main::@4: scope:[main] from main print_char_cursor#45 = phi( main/print_char_cursor#47 ) Ticks#21 = phi( main/Ticks#23 ) main::count#6 = phi( main/main::count#0 ) - rand_state#15 = phi( main/rand_state#5 ) - rand_state#6 = rand_state#15 call start to:main::@5 main::@5: scope:[main] from main::@4 - rand_state#35 = phi( main::@4/rand_state#6 ) print_line_cursor#25 = phi( main::@4/print_line_cursor#27 ) print_char_cursor#43 = phi( main::@4/print_char_cursor#45 ) Ticks#19 = phi( main::@4/Ticks#21 ) @@ -435,7 +413,6 @@ main::@5: scope:[main] from main::@4 main::v#1 = *VICII_MEMORY to:main::@1 main::@1: scope:[main] from main::@5 main::@7 - rand_state#31 = phi( main::@5/rand_state#35, main::@7/rand_state#36 ) print_line_cursor#23 = phi( main::@5/print_line_cursor#25, main::@7/print_line_cursor#26 ) print_char_cursor#42 = phi( main::@5/print_char_cursor#43, main::@7/print_char_cursor#44 ) Ticks#18 = phi( main::@5/Ticks#19, main::@7/Ticks#20 ) @@ -446,7 +423,6 @@ main::@1: scope:[main] from main::@5 main::@7 if(main::$6) goto main::@2 to:main::@3 main::@2: scope:[main] from main::@1 - rand_state#38 = phi( main::@1/rand_state#31 ) print_line_cursor#30 = phi( main::@1/print_line_cursor#23 ) print_char_cursor#48 = phi( main::@1/print_char_cursor#42 ) Ticks#24 = phi( main::@1/Ticks#18 ) @@ -457,7 +433,6 @@ main::@2: scope:[main] from main::@1 call doplasma to:main::@6 main::@6: scope:[main] from main::@2 - rand_state#37 = phi( main::@2/rand_state#38 ) print_line_cursor#28 = phi( main::@2/print_line_cursor#30 ) print_char_cursor#46 = phi( main::@2/print_char_cursor#48 ) Ticks#22 = phi( main::@2/Ticks#24 ) @@ -469,7 +444,6 @@ main::@6: scope:[main] from main::@2 call doplasma to:main::@7 main::@7: scope:[main] from main::@6 - rand_state#36 = phi( main::@6/rand_state#37 ) print_line_cursor#26 = phi( main::@6/print_line_cursor#28 ) print_char_cursor#44 = phi( main::@6/print_char_cursor#46 ) Ticks#20 = phi( main::@6/Ticks#22 ) @@ -480,7 +454,6 @@ main::@7: scope:[main] from main::@6 main::count#1 = -- main::count#3 to:main::@1 main::@3: scope:[main] from main::@1 - rand_state#27 = phi( main::@1/rand_state#31 ) print_line_cursor#20 = phi( main::@1/print_line_cursor#23 ) print_char_cursor#39 = phi( main::@1/print_char_cursor#42 ) Ticks#15 = phi( main::@1/Ticks#18 ) @@ -491,7 +464,6 @@ main::@3: scope:[main] from main::@1 call end to:main::@8 main::@8: scope:[main] from main::@3 - rand_state#22 = phi( main::@3/rand_state#27 ) print_line_cursor#14 = phi( main::@3/print_line_cursor#3 ) print_char_cursor#31 = phi( main::@3/print_char_cursor#12 ) Ticks#10 = phi( main::@3/Ticks#2 ) @@ -504,10 +476,8 @@ main::@return: scope:[main] from main::@8 print_line_cursor#15 = phi( main::@8/print_line_cursor#4 ) print_char_cursor#32 = phi( main::@8/print_char_cursor#13 ) Ticks#11 = phi( main::@8/Ticks#3 ) - rand_state#16 = phi( main::@8/rand_state#22 ) main::return#3 = phi( main::@8/main::return#0 ) main::return#1 = main::return#3 - rand_state#7 = rand_state#16 Ticks#4 = Ticks#11 print_char_cursor#14 = print_char_cursor#32 print_line_cursor#5 = print_line_cursor#15 @@ -518,7 +488,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - rand_state#8 = 1 + rand_state = 1 print_screen#0 = (char *)$400 print_line_cursor#6 = print_screen#0 print_char_cursor#15 = print_line_cursor#6 @@ -530,7 +500,6 @@ __start::@1: scope:[__start] from __start::__init1 print_line_cursor#21 = phi( __start::__init1/print_line_cursor#6 ) print_char_cursor#40 = phi( __start::__init1/print_char_cursor#15 ) Ticks#16 = phi( __start::__init1/Ticks#5 ) - rand_state#23 = phi( __start::__init1/rand_state#8 ) call main main::return#2 = main::return#1 to:__start::@2 @@ -539,8 +508,6 @@ __start::@2: scope:[__start] from __start::@1 print_line_cursor#16 = phi( __start::@1/print_line_cursor#5 ) print_char_cursor#33 = phi( __start::@1/print_char_cursor#14 ) Ticks#12 = phi( __start::@1/Ticks#4 ) - rand_state#17 = phi( __start::@1/rand_state#7 ) - rand_state#9 = rand_state#17 Ticks#6 = Ticks#12 print_char_cursor#16 = print_char_cursor#33 print_line_cursor#7 = print_line_cursor#16 @@ -550,8 +517,6 @@ __start::@return: scope:[__start] from __start::@2 print_char_cursor#34 = phi( __start::@2/print_char_cursor#16 ) print_line_cursor#17 = phi( __start::@2/print_line_cursor#7 ) print_screen#2 = phi( __start::@2/print_screen#3 ) - rand_state#18 = phi( __start::@2/rand_state#9 ) - rand_state#10 = rand_state#18 print_screen#1 = print_screen#2 print_line_cursor#8 = print_line_cursor#17 print_char_cursor#17 = print_char_cursor#34 @@ -934,46 +899,7 @@ unsigned int rand::return#1 unsigned int rand::return#2 unsigned int rand::return#3 unsigned int rand::return#4 -unsigned int rand_state -unsigned int rand_state#0 -unsigned int rand_state#1 -unsigned int rand_state#10 -unsigned int rand_state#11 -unsigned int rand_state#12 -unsigned int rand_state#13 -unsigned int rand_state#14 -unsigned int rand_state#15 -unsigned int rand_state#16 -unsigned int rand_state#17 -unsigned int rand_state#18 -unsigned int rand_state#19 -unsigned int rand_state#2 -unsigned int rand_state#20 -unsigned int rand_state#21 -unsigned int rand_state#22 -unsigned int rand_state#23 -unsigned int rand_state#24 -unsigned int rand_state#25 -unsigned int rand_state#26 -unsigned int rand_state#27 -unsigned int rand_state#28 -unsigned int rand_state#29 -unsigned int rand_state#3 -unsigned int rand_state#30 -unsigned int rand_state#31 -unsigned int rand_state#32 -unsigned int rand_state#33 -unsigned int rand_state#34 -unsigned int rand_state#35 -unsigned int rand_state#36 -unsigned int rand_state#37 -unsigned int rand_state#38 -unsigned int rand_state#4 -unsigned int rand_state#5 -unsigned int rand_state#6 -unsigned int rand_state#7 -unsigned int rand_state#8 -unsigned int rand_state#9 +__loadstore volatile unsigned int rand_state __constant const char sinetable[$100] = { $80, $7d, $7a, $77, $74, $70, $6d, $6a, $67, $64, $61, $5e, $5b, $58, $55, $52, $4f, $4d, $4a, $47, $44, $41, $3f, $3c, $39, $37, $34, $32, $2f, $2d, $2b, $28, $26, $24, $22, $20, $1e, $1c, $1a, $18, $16, $15, $13, $11, $10, $f, $d, $c, $b, $a, 8, 7, 6, 6, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7, 8, $a, $b, $c, $d, $f, $10, $11, $13, $15, $16, $18, $1a, $1c, $1e, $20, $22, $24, $26, $28, $2b, $2d, $2f, $32, $34, $37, $39, $3c, $3f, $41, $44, $47, $4a, $4d, $4f, $52, $55, $58, $5b, $5e, $61, $64, $67, $6a, $6d, $70, $74, $77, $7a, $7d, $80, $83, $86, $89, $8c, $90, $93, $96, $99, $9c, $9f, $a2, $a5, $a8, $ab, $ae, $b1, $b3, $b6, $b9, $bc, $bf, $c1, $c4, $c7, $c9, $cc, $ce, $d1, $d3, $d5, $d8, $da, $dc, $de, $e0, $e2, $e4, $e6, $e8, $ea, $eb, $ed, $ef, $f0, $f1, $f3, $f4, $f5, $f6, $f8, $f9, $fa, $fa, $fb, $fc, $fd, $fd, $fe, $fe, $fe, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $fe, $fe, $fe, $fd, $fd, $fc, $fb, $fa, $fa, $f9, $f8, $f6, $f5, $f4, $f3, $f1, $f0, $ef, $ed, $eb, $ea, $e8, $e6, $e4, $e2, $e0, $de, $dc, $da, $d8, $d5, $d3, $d1, $ce, $cc, $c9, $c7, $c4, $c1, $bf, $bc, $b9, $b6, $b3, $b1, $ae, $ab, $a8, $a5, $a2, $9f, $9c, $99, $96, $93, $90, $8c, $89, $86, $83 } void start() __constant unsigned int * const start::LAST_TIME = &last_time @@ -992,9 +918,9 @@ Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor# Adding number conversion cast (unumber) 4 in print_uchar::$0 = print_uchar::b#2 >> 4 Adding number conversion cast (unumber) $f in print_uchar::$2 = print_uchar::b#3 & $f Adding number conversion cast (unumber) print_uchar::$2 in print_uchar::$2 = print_uchar::b#3 & (unumber)$f -Adding number conversion cast (unumber) 7 in rand::$0 = rand_state#11 << 7 -Adding number conversion cast (unumber) 9 in rand::$1 = rand_state#0 >> 9 -Adding number conversion cast (unumber) 8 in rand::$2 = rand_state#1 << 8 +Adding number conversion cast (unumber) 7 in rand::$0 = rand_state << 7 +Adding number conversion cast (unumber) 9 in rand::$1 = rand_state >> 9 +Adding number conversion cast (unumber) 8 in rand::$2 = rand_state << 8 Adding number conversion cast (unumber) 0 in doplasma::ii#1 = 0 Adding number conversion cast (unumber) $19 in doplasma::$0 = doplasma::ii#3 < $19 Adding number conversion cast (unumber) 4 in doplasma::c1a#2 = doplasma::c1a#3 + 4 @@ -1143,7 +1069,7 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions Inferred type updated to char in print_uchar::$2 = print_uchar::b#3 & $f Inferred type updated to char in makechar::$4 = makechar::$3 & $ff Inferred type updated to char in main::$2 = main::block#1 & $fc -Inversing boolean not [172] makechar::$6 = makechar::$4 <= makechar::s#2 from [171] makechar::$5 = makechar::$4 > makechar::s#2 +Inversing boolean not [168] makechar::$6 = makechar::$4 <= makechar::s#2 from [167] makechar::$5 = makechar::$4 > makechar::s#2 Successful SSA optimization Pass2UnaryNotSimplification Alias print_line_cursor#0 = print_ln::$0 print_line_cursor#10 print_char_cursor#0 print_line_cursor#11 print_char_cursor#19 print_line_cursor#1 print_char_cursor#1 Alias print_uchar::b#0 = print_uint::$0 @@ -1156,7 +1082,6 @@ Alias print_char_cursor#23 = print_char_cursor#5 Alias print_char_cursor#24 = print_char_cursor#6 print_char_cursor#25 print_char_cursor#7 Alias print_char_cursor#27 = print_char_cursor#8 print_char_cursor#9 Alias rand::return#0 = rand::return#3 rand::return#1 -Alias rand_state#12 = rand_state#2 rand_state#3 Alias Ticks#0 = Ticks#8 Alias print_char_cursor#38 = print_char_cursor#41 Alias print_line_cursor#19 = print_line_cursor#22 print_line_cursor#24 @@ -1186,24 +1111,19 @@ Alias doplasma::j#3 = doplasma::j#4 Alias doplasma::jj#4 = doplasma::jj#6 doplasma::jj#5 Alias doplasma::scrn#3 = doplasma::scrn#5 doplasma::scrn#4 Alias makechar::c#3 = makechar::c#4 -Alias rand_state#14 = rand_state#32 rand_state#20 rand_state#5 Alias makechar::c#5 = makechar::c#9 makechar::c#7 Alias makechar::i#3 = makechar::i#6 -Alias rand_state#25 = rand_state#29 rand_state#28 Alias makechar::s#5 = makechar::s#7 -Alias rand_state#19 = rand_state#26 rand_state#33 Alias makechar::s#2 = makechar::s#3 makechar::s#4 makechar::s#9 makechar::s#8 Alias makechar::ii#3 = makechar::ii#7 makechar::ii#6 makechar::ii#5 Alias makechar::b#3 = makechar::b#8 makechar::b#5 makechar::b#6 makechar::b#4 Alias makechar::c#11 = makechar::c#13 makechar::c#8 makechar::c#12 makechar::c#6 Alias makechar::i#10 = makechar::i#5 makechar::i#9 makechar::i#4 makechar::i#8 Alias rand::return#2 = rand::return#4 -Alias rand_state#13 = rand_state#4 rand_state#34 Alias main::count#0 = main::count#6 main::count#4 Alias Ticks#19 = Ticks#21 Ticks#23 Alias print_char_cursor#43 = print_char_cursor#45 print_char_cursor#47 Alias print_line_cursor#25 = print_line_cursor#27 print_line_cursor#29 -Alias rand_state#15 = rand_state#6 rand_state#35 Alias main::tmp#1 = main::$2 Alias main::count#2 = main::count#7 main::count#5 main::count#3 Alias main::v#2 = main::v#6 main::v#3 main::v#5 main::v#4 @@ -1211,15 +1131,12 @@ Alias main::block#2 = main::block#6 main::block#3 main::block#5 main::block#4 Alias Ticks#15 = Ticks#24 Ticks#18 Ticks#22 Ticks#20 Alias print_char_cursor#39 = print_char_cursor#48 print_char_cursor#42 print_char_cursor#46 print_char_cursor#44 Alias print_line_cursor#20 = print_line_cursor#30 print_line_cursor#23 print_line_cursor#28 print_line_cursor#26 -Alias rand_state#16 = rand_state#38 rand_state#31 rand_state#37 rand_state#36 rand_state#27 rand_state#22 rand_state#7 Alias Ticks#10 = Ticks#3 Ticks#11 Ticks#4 Alias print_char_cursor#13 = print_char_cursor#31 print_char_cursor#32 print_char_cursor#14 Alias print_line_cursor#14 = print_line_cursor#4 print_line_cursor#15 print_line_cursor#5 Alias main::return#0 = main::return#3 main::return#1 Alias print_screen#0 = print_line_cursor#6 print_char_cursor#15 print_char_cursor#40 print_line_cursor#21 print_screen#4 print_screen#3 print_screen#2 print_screen#1 -Alias rand_state#23 = rand_state#8 Alias Ticks#16 = Ticks#5 -Alias rand_state#10 = rand_state#9 rand_state#17 rand_state#18 Alias Ticks#12 = Ticks#6 Ticks#13 Ticks#7 Alias print_char_cursor#16 = print_char_cursor#33 print_char_cursor#34 print_char_cursor#17 Alias print_line_cursor#16 = print_line_cursor#7 print_line_cursor#17 print_line_cursor#8 @@ -1227,7 +1144,6 @@ Successful SSA optimization Pass2AliasElimination Alias makechar::ii#3 = makechar::ii#4 Alias makechar::c#10 = makechar::c#11 Alias makechar::i#10 = makechar::i#7 -Alias rand_state#13 = rand_state#30 Alias makechar::s#2 = makechar::s#6 Successful SSA optimization Pass2AliasElimination Identical Phi Values print_line_cursor#18 print_line_cursor#19 @@ -1239,7 +1155,6 @@ Identical Phi Values print_char_cursor#2 print_char_cursor#24 Identical Phi Values print_char_cursor#21 print_char_cursor#24 Identical Phi Values print_char_cursor#23 print_char_cursor#27 Identical Phi Values print_char_cursor#24 print_char_cursor#27 -Identical Phi Values rand_state#11 rand_state#19 Identical Phi Values print_char_cursor#38 print_char_cursor#39 Identical Phi Values print_line_cursor#19 print_line_cursor#20 Identical Phi Values print_char_cursor#10 print_char_cursor#21 @@ -1255,26 +1170,20 @@ Identical Phi Values doplasma::c2B#3 doplasma::c2B#2 Identical Phi Values doplasma::scrn#11 doplasma::scrn#10 Identical Phi Values doplasma::jj#4 doplasma::jj#3 Identical Phi Values doplasma::scrn#3 doplasma::scrn#6 -Identical Phi Values rand_state#24 rand_state#21 Identical Phi Values makechar::c#10 makechar::c#5 Identical Phi Values makechar::i#10 makechar::i#3 Identical Phi Values makechar::s#2 makechar::s#5 -Identical Phi Values rand_state#13 rand_state#12 -Identical Phi Values rand_state#21 rand_state#23 Identical Phi Values Ticks#19 Ticks#16 Identical Phi Values print_char_cursor#43 print_screen#0 Identical Phi Values print_line_cursor#25 print_screen#0 -Identical Phi Values rand_state#15 rand_state#14 Identical Phi Values main::v#2 main::v#1 Identical Phi Values main::block#2 main::block#1 Identical Phi Values Ticks#15 Ticks#19 Identical Phi Values print_char_cursor#39 print_char_cursor#43 Identical Phi Values print_line_cursor#20 print_line_cursor#25 -Identical Phi Values rand_state#16 rand_state#15 Identical Phi Values Ticks#10 Ticks#1 Identical Phi Values print_char_cursor#13 print_char_cursor#11 Identical Phi Values print_line_cursor#14 print_line_cursor#12 -Identical Phi Values rand_state#10 rand_state#16 Identical Phi Values Ticks#12 Ticks#10 Identical Phi Values print_char_cursor#16 print_char_cursor#13 Identical Phi Values print_line_cursor#16 print_line_cursor#14 @@ -1283,15 +1192,15 @@ Identical Phi Values makechar::c#5 makechar::c#3 Identical Phi Values makechar::s#5 makechar::s#1 Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition print_ln::$1 [4] if(print_line_cursor#0>$e^3 in [146] main::tmp#2 = main::tmp#1 | (char)(unsigned int)SCREEN1>>$e^3 +Simplifying constant evaluating to zero (char)(unsigned int)SCREEN1>>$e^3 in [142] main::tmp#2 = main::tmp#1 | (char)(unsigned int)SCREEN1>>$e^3 Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero 3 in [72] doplasma::c1A#1 = doplasma::c1a#1 + 3 -Simplifying expression containing zero 5 in [73] doplasma::c1B#1 = doplasma::c1b#1 - 5 -Simplifying expression containing zero 2 in [83] doplasma::c2A#1 = doplasma::c2A#0 + 2 -Simplifying expression containing zero 3 in [84] doplasma::c2B#1 = doplasma::c2B#0 - 3 -Simplifying expression containing zero (char *)CIA2 in [143] main::block#1 = *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) -Simplifying expression containing zero main::tmp#1 in [146] main::tmp#2 = main::tmp#1 | 0 -Simplifying expression containing zero (char *)CIA2 in [147] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::tmp#2 -Simplifying expression containing zero (char *)CIA2 in [160] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::block#1 +Simplifying expression containing zero 3 in [71] doplasma::c1A#1 = doplasma::c1a#1 + 3 +Simplifying expression containing zero 5 in [72] doplasma::c1B#1 = doplasma::c1b#1 - 5 +Simplifying expression containing zero 2 in [82] doplasma::c2A#1 = doplasma::c2A#0 + 2 +Simplifying expression containing zero 3 in [83] doplasma::c2B#1 = doplasma::c2B#0 - 3 +Simplifying expression containing zero (char *)CIA2 in [139] main::block#1 = *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) +Simplifying expression containing zero main::tmp#1 in [142] main::tmp#2 = main::tmp#1 | 0 +Simplifying expression containing zero (char *)CIA2 in [143] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::tmp#2 +Simplifying expression containing zero (char *)CIA2 in [156] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::block#1 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused variable doplasma::c1A#1 and assignment [47] doplasma::c1A#1 = 3 Eliminating unused variable doplasma::c1B#1 and assignment [48] doplasma::c1B#1 = 5 @@ -1388,7 +1296,6 @@ Inlining constant with var siblings makechar::i#1 Inlining constant with var siblings makechar::b#1 Inlining constant with var siblings makechar::ii#1 Inlining constant with var siblings main::count#0 -Inlining constant with var siblings rand_state#23 Constant inlined makechar::c#1 = 0 Constant inlined makechar::b#1 = 0 Constant inlined doplasma::i#1 = 0 @@ -1402,7 +1309,6 @@ Constant inlined doplasma::scrn#1 = SCREEN1 Constant inlined doplasma::c1a#1 = 0 Constant inlined doplasma::c1b#1 = 0 Constant inlined makechar::i#1 = 0 -Constant inlined rand_state#23 = 1 Successful SSA optimization Pass2ConstantInlining Finalized unsigned number type (char) 2 Finalized unsigned number type (char) 8 @@ -1424,6 +1330,7 @@ Adding NOP phi() at start of main::@4 Adding NOP phi() at start of main::@8 Adding NOP phi() at start of main::@2 Adding NOP phi() at start of makechar +Adding NOP phi() at start of makechar::@4 Adding NOP phi() at start of makechar::@7 Adding NOP phi() at start of end::@2 Adding NOP phi() at start of end::@3 @@ -1434,45 +1341,40 @@ Adding NOP phi() at start of print_ln Adding NOP phi() at start of print_ln::@2 Adding NOP phi() at start of print_uchar::@2 CALL GRAPH -Calls in [__start] to main:3 -Calls in [main] to makechar:7 start:9 end:18 doplasma:22 doplasma:24 -Calls in [makechar] to rand:51 -Calls in [end] to start:67 print_uint:71 print_ln:73 -Calls in [print_uint] to print_uchar:123 print_uchar:127 -Calls in [print_uchar] to print_char:142 print_char:147 +Calls in [__start] to main:4 +Calls in [main] to makechar:8 start:10 end:19 doplasma:23 doplasma:25 +Calls in [makechar] to rand:49 +Calls in [end] to start:64 print_uint:68 print_ln:70 +Calls in [print_uint] to print_uchar:120 print_uchar:124 +Calls in [print_uchar] to print_char:139 print_char:144 -Created 24 initial phi equivalence classes -Coalesced [27] main::count#8 = main::count#1 -Coalesced [34] rand_state#40 = rand_state#14 +Created 21 initial phi equivalence classes +Coalesced [28] main::count#8 = main::count#1 Coalesced [38] makechar::c#14 = makechar::c#2 -Coalesced (already) [39] rand_state#39 = rand_state#25 -Coalesced [40] rand_state#42 = rand_state#25 -Coalesced [48] makechar::i#11 = makechar::i#2 -Coalesced (already) [49] rand_state#41 = rand_state#19 -Coalesced [57] makechar::b#10 = makechar::b#2 -Coalesced [60] makechar::ii#8 = makechar::ii#2 -Coalesced [61] makechar::b#9 = makechar::b#7 -Coalesced [62] rand_state#43 = rand_state#12 -Coalesced (already) [63] makechar::b#11 = makechar::b#3 -Coalesced [82] doplasma::scrn#16 = doplasma::scrn#13 -Coalesced [91] doplasma::jj#8 = doplasma::jj#2 -Coalesced [92] doplasma::scrn#15 = doplasma::scrn#0 -Coalesced [96] doplasma::j#5 = doplasma::j#2 -Coalesced [102] doplasma::i#5 = doplasma::i#2 -Coalesced [103] doplasma::c2a#5 = doplasma::c2a#2 -Coalesced [104] doplasma::c2b#5 = doplasma::c2b#2 -Coalesced [110] doplasma::ii#5 = doplasma::ii#2 -Coalesced [111] doplasma::c1a#5 = doplasma::c1a#2 -Coalesced [112] doplasma::c1b#5 = doplasma::c1b#2 -Coalesced [122] print_uchar::b#4 = print_uchar::b#0 -Coalesced [125] print_uchar::b#5 = print_uchar::b#1 -Coalesced [126] print_char_cursor#49 = print_char_cursor#27 -Coalesced [136] print_line_cursor#31 = print_line_cursor#0 -Coalesced [140] print_char::ch#3 = print_char::ch#0 -Coalesced [141] print_char_cursor#50 = print_char_cursor#37 -Coalesced [145] print_char::ch#4 = print_char::ch#1 -Coalesced (already) [146] print_char_cursor#51 = print_char_cursor#27 -Coalesced down to 19 phi equivalence classes +Coalesced [47] makechar::i#11 = makechar::i#2 +Coalesced [55] makechar::b#10 = makechar::b#2 +Coalesced [58] makechar::ii#8 = makechar::ii#2 +Coalesced [59] makechar::b#9 = makechar::b#7 +Coalesced (already) [60] makechar::b#11 = makechar::b#3 +Coalesced [79] doplasma::scrn#16 = doplasma::scrn#13 +Coalesced [88] doplasma::jj#8 = doplasma::jj#2 +Coalesced [89] doplasma::scrn#15 = doplasma::scrn#0 +Coalesced [93] doplasma::j#5 = doplasma::j#2 +Coalesced [99] doplasma::i#5 = doplasma::i#2 +Coalesced [100] doplasma::c2a#5 = doplasma::c2a#2 +Coalesced [101] doplasma::c2b#5 = doplasma::c2b#2 +Coalesced [107] doplasma::ii#5 = doplasma::ii#2 +Coalesced [108] doplasma::c1a#5 = doplasma::c1a#2 +Coalesced [109] doplasma::c1b#5 = doplasma::c1b#2 +Coalesced [119] print_uchar::b#4 = print_uchar::b#0 +Coalesced [122] print_uchar::b#5 = print_uchar::b#1 +Coalesced [123] print_char_cursor#49 = print_char_cursor#27 +Coalesced [133] print_line_cursor#31 = print_line_cursor#0 +Coalesced [137] print_char::ch#3 = print_char::ch#0 +Coalesced [138] print_char_cursor#50 = print_char_cursor#37 +Coalesced [142] print_char::ch#4 = print_char::ch#1 +Coalesced (already) [143] print_char_cursor#51 = print_char_cursor#27 +Coalesced down to 18 phi equivalence classes Culled Empty Block label __start::@2 Culled Empty Block label main::@8 Culled Empty Block label makechar::@4 @@ -1515,109 +1417,107 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] last_time = 0 + [1] rand_state = 1 + [2] last_time = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - [2] phi() - [3] call main + [3] phi() + [4] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 - [4] return + [5] return to:@return int main() main: scope:[main] from __start::@1 - [5] phi() - [6] call makechar + [6] phi() + [7] call makechar to:main::@4 main::@4: scope:[main] from main - [7] phi() - [8] call start + [8] phi() + [9] call start to:main::@5 main::@5: scope:[main] from main::@4 - [9] main::block#1 = *((char *)CIA2) - [10] main::tmp#1 = main::block#1 & $fc - [11] *((char *)CIA2) = main::tmp#1 - [12] main::v#1 = *VICII_MEMORY + [10] main::block#1 = *((char *)CIA2) + [11] main::tmp#1 = main::block#1 & $fc + [12] *((char *)CIA2) = main::tmp#1 + [13] main::v#1 = *VICII_MEMORY to:main::@1 main::@1: scope:[main] from main::@5 main::@7 - [13] main::count#2 = phi( main::@5/$1f4, main::@7/main::count#1 ) - [14] if(0!=main::count#2) goto main::@2 + [14] main::count#2 = phi( main::@5/$1f4, main::@7/main::count#1 ) + [15] if(0!=main::count#2) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 - [15] *VICII_MEMORY = main::v#1 - [16] *((char *)CIA2) = main::block#1 - [17] call end + [16] *VICII_MEMORY = main::v#1 + [17] *((char *)CIA2) = main::block#1 + [18] call end to:main::@return main::@return: scope:[main] from main::@3 - [18] return + [19] return to:@return main::@2: scope:[main] from main::@1 - [19] phi() - [20] call doplasma + [20] phi() + [21] call doplasma to:main::@6 main::@6: scope:[main] from main::@2 - [21] *VICII_MEMORY = PAGE1 - [22] call doplasma + [22] *VICII_MEMORY = PAGE1 + [23] call doplasma to:main::@7 main::@7: scope:[main] from main::@6 - [23] *VICII_MEMORY = PAGE2 - [24] main::count#1 = -- main::count#2 + [24] *VICII_MEMORY = PAGE2 + [25] main::count#1 = -- main::count#2 to:main::@1 void makechar() makechar: scope:[makechar] from main - [25] phi() + [26] phi() to:makechar::@1 makechar::@1: scope:[makechar] from makechar makechar::@4 - [26] rand_state#14 = phi( makechar/1, makechar::@4/rand_state#25 ) - [26] makechar::c#3 = phi( makechar/0, makechar::@4/makechar::c#2 ) - [27] if(makechar::c#3<$100) goto makechar::@2 + [27] makechar::c#3 = phi( makechar/0, makechar::@4/makechar::c#2 ) + [28] if(makechar::c#3<$100) goto makechar::@2 to:makechar::@return makechar::@return: scope:[makechar] from makechar::@1 - [28] return + [29] return to:@return makechar::@2: scope:[makechar] from makechar::@1 - [29] makechar::$9 = (char)makechar::c#3 - [30] makechar::s#1 = sinetable[makechar::$9] + [30] makechar::$9 = (char)makechar::c#3 + [31] makechar::s#1 = sinetable[makechar::$9] to:makechar::@3 makechar::@3: scope:[makechar] from makechar::@2 makechar::@7 - [31] rand_state#25 = phi( makechar::@2/rand_state#14, makechar::@7/rand_state#19 ) - [31] makechar::i#3 = phi( makechar::@2/0, makechar::@7/makechar::i#2 ) - [32] if(makechar::i#3<8) goto makechar::@5 + [32] makechar::i#3 = phi( makechar::@2/0, makechar::@7/makechar::i#2 ) + [33] if(makechar::i#3<8) goto makechar::@5 to:makechar::@4 makechar::@4: scope:[makechar] from makechar::@3 - [33] makechar::c#2 = ++ makechar::c#3 + [34] makechar::c#2 = ++ makechar::c#3 to:makechar::@1 makechar::@5: scope:[makechar] from makechar::@3 makechar::@8 - [34] rand_state#19 = phi( makechar::@3/rand_state#25, makechar::@8/rand_state#12 ) - [34] makechar::b#3 = phi( makechar::@3/0, makechar::@8/makechar::b#7 ) - [34] makechar::ii#3 = phi( makechar::@3/0, makechar::@8/makechar::ii#2 ) - [35] if(makechar::ii#3<8) goto makechar::@6 + [35] makechar::b#3 = phi( makechar::@3/0, makechar::@8/makechar::b#7 ) + [35] makechar::ii#3 = phi( makechar::@3/0, makechar::@8/makechar::ii#2 ) + [36] if(makechar::ii#3<8) goto makechar::@6 to:makechar::@7 makechar::@7: scope:[makechar] from makechar::@5 - [36] makechar::$7 = makechar::c#3 << 3 - [37] makechar::$8 = makechar::$7 + makechar::i#3 - [38] makechar::$10 = CHARSET + makechar::$8 - [39] *makechar::$10 = makechar::b#3 - [40] makechar::i#2 = ++ makechar::i#3 + [37] makechar::$7 = makechar::c#3 << 3 + [38] makechar::$8 = makechar::$7 + makechar::i#3 + [39] makechar::$10 = CHARSET + makechar::$8 + [40] *makechar::$10 = makechar::b#3 + [41] makechar::i#2 = ++ makechar::i#3 to:makechar::@3 makechar::@6: scope:[makechar] from makechar::@5 - [41] phi() - [42] call rand - [43] rand::return#2 = rand::return#0 + [42] phi() + [43] call rand + [44] rand::return#2 = rand::return#0 to:makechar::@10 makechar::@10: scope:[makechar] from makechar::@6 - [44] makechar::$3 = rand::return#2 - [45] makechar::$4 = makechar::$3 & $ff - [46] if(makechar::$4<=makechar::s#1) goto makechar::@8 + [45] makechar::$3 = rand::return#2 + [46] makechar::$4 = makechar::$3 & $ff + [47] if(makechar::$4<=makechar::s#1) goto makechar::@8 to:makechar::@9 makechar::@9: scope:[makechar] from makechar::@10 - [47] makechar::b#2 = makechar::b#3 | bittab[makechar::ii#3] + [48] makechar::b#2 = makechar::b#3 | bittab[makechar::ii#3] to:makechar::@8 makechar::@8: scope:[makechar] from makechar::@10 makechar::@9 - [48] makechar::b#7 = phi( makechar::@9/makechar::b#2, makechar::@10/makechar::b#3 ) - [49] makechar::ii#2 = ++ makechar::ii#3 + [49] makechar::b#7 = phi( makechar::@9/makechar::b#2, makechar::@10/makechar::b#3 ) + [50] makechar::ii#2 = ++ makechar::ii#3 to:makechar::@5 void start() @@ -1625,146 +1525,146 @@ start: scope:[start] from end main::@4 asm { jsr$FFDE staLAST_TIME stxLAST_TIME+1 } to:start::@return start::@return: scope:[start] from start - [51] return + [52] return to:@return void end() end: scope:[end] from main::@3 - [52] Ticks#0 = last_time - [53] call start + [53] Ticks#0 = last_time + [54] call start to:end::@1 end::@1: scope:[end] from end - [54] last_time = last_time - Ticks#0 - [55] Ticks#1 = last_time - [56] print_uint::w#0 = Ticks#1 - [57] call print_uint + [55] last_time = last_time - Ticks#0 + [56] Ticks#1 = last_time + [57] print_uint::w#0 = Ticks#1 + [58] call print_uint to:end::@2 end::@2: scope:[end] from end::@1 - [58] phi() - [59] call print_ln + [59] phi() + [60] call print_ln to:end::@return end::@return: scope:[end] from end::@2 - [60] return + [61] return to:@return void doplasma(char *scrn) doplasma: scope:[doplasma] from main::@2 main::@6 - [61] doplasma::scrn#13 = phi( main::@2/SCREEN1, main::@6/SCREEN2 ) + [62] doplasma::scrn#13 = phi( main::@2/SCREEN1, main::@6/SCREEN2 ) to:doplasma::@1 doplasma::@1: scope:[doplasma] from doplasma doplasma::@2 - [62] doplasma::c1b#3 = phi( doplasma/0, doplasma::@2/doplasma::c1b#2 ) - [62] doplasma::c1a#3 = phi( doplasma/0, doplasma::@2/doplasma::c1a#2 ) - [62] doplasma::ii#3 = phi( doplasma/0, doplasma::@2/doplasma::ii#2 ) - [63] if(doplasma::ii#3<$19) goto doplasma::@2 + [63] doplasma::c1b#3 = phi( doplasma/0, doplasma::@2/doplasma::c1b#2 ) + [63] doplasma::c1a#3 = phi( doplasma/0, doplasma::@2/doplasma::c1a#2 ) + [63] doplasma::ii#3 = phi( doplasma/0, doplasma::@2/doplasma::ii#2 ) + [64] if(doplasma::ii#3<$19) goto doplasma::@2 to:doplasma::@3 doplasma::@3: scope:[doplasma] from doplasma::@1 doplasma::@4 - [64] doplasma::c2b#3 = phi( doplasma::@1/doplasma::c2B#0, doplasma::@4/doplasma::c2b#2 ) - [64] doplasma::c2a#3 = phi( doplasma::@1/doplasma::c2A#0, doplasma::@4/doplasma::c2a#2 ) - [64] doplasma::i#3 = phi( doplasma::@1/0, doplasma::@4/doplasma::i#2 ) - [65] if(doplasma::i#3<$28) goto doplasma::@4 + [65] doplasma::c2b#3 = phi( doplasma::@1/doplasma::c2B#0, doplasma::@4/doplasma::c2b#2 ) + [65] doplasma::c2a#3 = phi( doplasma::@1/doplasma::c2A#0, doplasma::@4/doplasma::c2a#2 ) + [65] doplasma::i#3 = phi( doplasma::@1/0, doplasma::@4/doplasma::i#2 ) + [66] if(doplasma::i#3<$28) goto doplasma::@4 to:doplasma::@5 doplasma::@5: scope:[doplasma] from doplasma::@3 doplasma::@8 - [66] doplasma::scrn#6 = phi( doplasma::@8/doplasma::scrn#0, doplasma::@3/doplasma::scrn#13 ) - [66] doplasma::jj#3 = phi( doplasma::@8/doplasma::jj#2, doplasma::@3/0 ) - [67] if(doplasma::jj#3<$19) goto doplasma::@6 + [67] doplasma::scrn#6 = phi( doplasma::@8/doplasma::scrn#0, doplasma::@3/doplasma::scrn#13 ) + [67] doplasma::jj#3 = phi( doplasma::@8/doplasma::jj#2, doplasma::@3/0 ) + [68] if(doplasma::jj#3<$19) goto doplasma::@6 to:doplasma::@return doplasma::@return: scope:[doplasma] from doplasma::@5 - [68] return + [69] return to:@return doplasma::@6: scope:[doplasma] from doplasma::@5 doplasma::@7 - [69] doplasma::j#3 = phi( doplasma::@7/doplasma::j#2, doplasma::@5/0 ) - [70] if(doplasma::j#3<$28) goto doplasma::@7 + [70] doplasma::j#3 = phi( doplasma::@7/doplasma::j#2, doplasma::@5/0 ) + [71] if(doplasma::j#3<$28) goto doplasma::@7 to:doplasma::@8 doplasma::@8: scope:[doplasma] from doplasma::@6 - [71] doplasma::scrn#0 = doplasma::scrn#6 + $28 - [72] doplasma::jj#2 = ++ doplasma::jj#3 + [72] doplasma::scrn#0 = doplasma::scrn#6 + $28 + [73] doplasma::jj#2 = ++ doplasma::jj#3 to:doplasma::@5 doplasma::@7: scope:[doplasma] from doplasma::@6 - [73] doplasma::$6 = xbuf[doplasma::j#3] + ybuf[doplasma::jj#3] - [74] doplasma::scrn#6[doplasma::j#3] = doplasma::$6 - [75] doplasma::j#2 = ++ doplasma::j#3 + [74] doplasma::$6 = xbuf[doplasma::j#3] + ybuf[doplasma::jj#3] + [75] doplasma::scrn#6[doplasma::j#3] = doplasma::$6 + [76] doplasma::j#2 = ++ doplasma::j#3 to:doplasma::@6 doplasma::@4: scope:[doplasma] from doplasma::@3 - [76] doplasma::$3 = sinetable[doplasma::c2a#3] + sinetable[doplasma::c2b#3] - [77] xbuf[doplasma::i#3] = doplasma::$3 - [78] doplasma::c2a#2 = doplasma::c2a#3 + 3 - [79] doplasma::c2b#2 = doplasma::c2b#3 + 7 - [80] doplasma::i#2 = ++ doplasma::i#3 + [77] doplasma::$3 = sinetable[doplasma::c2a#3] + sinetable[doplasma::c2b#3] + [78] xbuf[doplasma::i#3] = doplasma::$3 + [79] doplasma::c2a#2 = doplasma::c2a#3 + 3 + [80] doplasma::c2b#2 = doplasma::c2b#3 + 7 + [81] doplasma::i#2 = ++ doplasma::i#3 to:doplasma::@3 doplasma::@2: scope:[doplasma] from doplasma::@1 - [81] doplasma::$1 = sinetable[doplasma::c1a#3] + sinetable[doplasma::c1b#3] - [82] ybuf[doplasma::ii#3] = doplasma::$1 - [83] doplasma::c1a#2 = doplasma::c1a#3 + 4 - [84] doplasma::c1b#2 = doplasma::c1b#3 + 9 - [85] doplasma::ii#2 = ++ doplasma::ii#3 + [82] doplasma::$1 = sinetable[doplasma::c1a#3] + sinetable[doplasma::c1b#3] + [83] ybuf[doplasma::ii#3] = doplasma::$1 + [84] doplasma::c1a#2 = doplasma::c1a#3 + 4 + [85] doplasma::c1b#2 = doplasma::c1b#3 + 9 + [86] doplasma::ii#2 = ++ doplasma::ii#3 to:doplasma::@1 unsigned int rand() rand: scope:[rand] from makechar::@6 - [86] rand::$0 = rand_state#19 << 7 - [87] rand_state#0 = rand_state#19 ^ rand::$0 - [88] rand::$1 = rand_state#0 >> 9 - [89] rand_state#1 = rand_state#0 ^ rand::$1 - [90] rand::$2 = rand_state#1 << 8 - [91] rand_state#12 = rand_state#1 ^ rand::$2 - [92] rand::return#0 = rand_state#12 + [87] rand::$0 = rand_state << 7 + [88] rand_state = rand_state ^ rand::$0 + [89] rand::$1 = rand_state >> 9 + [90] rand_state = rand_state ^ rand::$1 + [91] rand::$2 = rand_state << 8 + [92] rand_state = rand_state ^ rand::$2 + [93] rand::return#0 = rand_state to:rand::@return rand::@return: scope:[rand] from rand - [93] return + [94] return to:@return void print_uint(unsigned int w) print_uint: scope:[print_uint] from end::@1 - [94] print_uchar::b#0 = byte1 print_uint::w#0 - [95] call print_uchar + [95] print_uchar::b#0 = byte1 print_uint::w#0 + [96] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint - [96] print_uchar::b#1 = byte0 print_uint::w#0 - [97] call print_uchar + [97] print_uchar::b#1 = byte0 print_uint::w#0 + [98] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 - [98] return + [99] return to:@return void print_ln() print_ln: scope:[print_ln] from end::@2 - [99] phi() + [100] phi() to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 - [100] print_line_cursor#9 = phi( print_ln/print_screen#0, print_ln::@1/print_line_cursor#0 ) - [101] print_line_cursor#0 = print_line_cursor#9 + $28 - [102] if(print_line_cursor#0> 4 - [106] print_char::ch#0 = print_hextab[print_uchar::$0] - [107] call print_char + [105] print_char_cursor#37 = phi( print_uint/print_screen#0, print_uint::@1/print_char_cursor#27 ) + [105] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) + [106] print_uchar::$0 = print_uchar::b#2 >> 4 + [107] print_char::ch#0 = print_hextab[print_uchar::$0] + [108] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar - [108] print_uchar::$2 = print_uchar::b#2 & $f - [109] print_char::ch#1 = print_hextab[print_uchar::$2] - [110] call print_char + [109] print_uchar::$2 = print_uchar::b#2 & $f + [110] print_char::ch#1 = print_hextab[print_uchar::$2] + [111] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 - [111] return + [112] return to:@return void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 - [112] print_char_cursor#26 = phi( print_uchar/print_char_cursor#37, print_uchar::@1/print_char_cursor#27 ) - [112] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) - [113] *print_char_cursor#26 = print_char::ch#2 - [114] print_char_cursor#27 = ++ print_char_cursor#26 + [113] print_char_cursor#26 = phi( print_uchar/print_char_cursor#37, print_uchar::@1/print_char_cursor#27 ) + [113] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) + [114] *print_char_cursor#26 = print_char::ch#2 + [115] print_char_cursor#27 = ++ print_char_cursor#26 to:print_char::@return print_char::@return: scope:[print_char] from print_char - [115] return + [116] return to:@return @@ -1875,19 +1775,12 @@ unsigned int rand::$2 // 2000002.0 unsigned int rand::return unsigned int rand::return#0 // 366667.3333333334 unsigned int rand::return#2 // 200002.0 -unsigned int rand_state -unsigned int rand_state#0 // 1500001.5 -unsigned int rand_state#1 // 1500001.5 -unsigned int rand_state#12 // 190909.36363636365 -unsigned int rand_state#14 // 500.5 -unsigned int rand_state#19 // 235556.11111111112 -unsigned int rand_state#25 // 7334.666666666666 +__loadstore volatile unsigned int rand_state // 277778.1111111111 void start() Initial phi equivalence classes [ main::count#2 main::count#1 ] [ makechar::c#3 makechar::c#2 ] -[ rand_state#14 rand_state#25 rand_state#19 rand_state#12 ] [ makechar::i#3 makechar::i#2 ] [ makechar::ii#3 makechar::ii#2 ] [ makechar::b#3 makechar::b#7 makechar::b#2 ] @@ -1904,6 +1797,7 @@ Initial phi equivalence classes [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] [ print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] +Added variable rand_state to live range equivalence class [ rand_state ] Added variable last_time to live range equivalence class [ last_time ] Added variable main::block#1 to live range equivalence class [ main::block#1 ] Added variable main::tmp#1 to live range equivalence class [ main::tmp#1 ] @@ -1923,9 +1817,7 @@ Added variable doplasma::$6 to live range equivalence class [ doplasma::$6 ] Added variable doplasma::$3 to live range equivalence class [ doplasma::$3 ] Added variable doplasma::$1 to live range equivalence class [ doplasma::$1 ] Added variable rand::$0 to live range equivalence class [ rand::$0 ] -Added variable rand_state#0 to live range equivalence class [ rand_state#0 ] Added variable rand::$1 to live range equivalence class [ rand::$1 ] -Added variable rand_state#1 to live range equivalence class [ rand_state#1 ] Added variable rand::$2 to live range equivalence class [ rand::$2 ] Added variable rand::return#0 to live range equivalence class [ rand::return#0 ] Added variable print_uchar::$0 to live range equivalence class [ print_uchar::$0 ] @@ -1933,7 +1825,6 @@ Added variable print_uchar::$2 to live range equivalence class [ print_uchar::$2 Complete equivalence classes [ main::count#2 main::count#1 ] [ makechar::c#3 makechar::c#2 ] -[ rand_state#14 rand_state#25 rand_state#19 rand_state#12 ] [ makechar::i#3 makechar::i#2 ] [ makechar::ii#3 makechar::ii#2 ] [ makechar::b#3 makechar::b#7 makechar::b#2 ] @@ -1950,6 +1841,7 @@ Complete equivalence classes [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] [ print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] +[ rand_state ] [ last_time ] [ main::block#1 ] [ main::tmp#1 ] @@ -1969,9 +1861,7 @@ Complete equivalence classes [ doplasma::$3 ] [ doplasma::$1 ] [ rand::$0 ] -[ rand_state#0 ] [ rand::$1 ] -[ rand_state#1 ] [ rand::$2 ] [ rand::return#0 ] [ print_uchar::$0 ] @@ -1981,199 +1871,197 @@ Allocated zp[1]:3 [ doplasma::$6 ] Allocated zp[2]:4 [ rand::$0 ] Allocated zp[2]:6 [ rand::$1 ] Allocated zp[2]:8 [ rand::$2 ] -Allocated zp[2]:10 [ rand_state#0 ] -Allocated zp[2]:12 [ rand_state#1 ] -Allocated zp[2]:14 [ rand_state#14 rand_state#25 rand_state#19 rand_state#12 ] -Allocated zp[1]:16 [ makechar::b#3 makechar::b#7 makechar::b#2 ] -Allocated zp[2]:17 [ rand::return#0 ] -Allocated zp[1]:19 [ doplasma::jj#3 doplasma::jj#2 ] -Allocated zp[2]:20 [ doplasma::scrn#6 doplasma::scrn#0 doplasma::scrn#13 ] -Allocated zp[1]:22 [ doplasma::ii#3 doplasma::ii#2 ] -Allocated zp[1]:23 [ doplasma::i#3 doplasma::i#2 ] -Allocated zp[1]:24 [ makechar::ii#3 makechar::ii#2 ] -Allocated zp[2]:25 [ rand::return#2 ] -Allocated zp[2]:27 [ makechar::$3 ] -Allocated zp[1]:29 [ makechar::$4 ] -Allocated zp[1]:30 [ doplasma::$3 ] -Allocated zp[1]:31 [ doplasma::$1 ] -Allocated zp[1]:32 [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] -Allocated zp[1]:33 [ doplasma::c1b#3 doplasma::c1b#2 ] -Allocated zp[1]:34 [ doplasma::c2b#3 doplasma::c2b#2 ] -Allocated zp[1]:35 [ doplasma::c1a#3 doplasma::c1a#2 ] -Allocated zp[1]:36 [ doplasma::c2a#3 doplasma::c2a#2 ] -Allocated zp[2]:37 [ print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] -Allocated zp[2]:39 [ print_line_cursor#9 print_line_cursor#0 ] -Allocated zp[1]:41 [ makechar::i#3 makechar::i#2 ] -Allocated zp[2]:42 [ makechar::$7 ] -Allocated zp[2]:44 [ makechar::$8 ] -Allocated zp[2]:46 [ makechar::$10 ] -Allocated zp[1]:48 [ print_uchar::$0 ] -Allocated zp[1]:49 [ print_uchar::$2 ] -Allocated zp[1]:50 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] -Allocated zp[1]:51 [ makechar::s#1 ] -Allocated zp[2]:52 [ makechar::c#3 makechar::c#2 ] -Allocated zp[1]:54 [ makechar::$9 ] -Allocated zp[2]:55 [ print_uint::w#0 ] -Allocated zp[2]:57 [ main::count#2 main::count#1 ] -Allocated zp[2]:59 [ Ticks#1 ] -Allocated zp[2]:61 [ Ticks#0 ] -Allocated zp[1]:63 [ main::tmp#1 ] -Allocated zp[2]:64 [ last_time ] -Allocated zp[1]:66 [ main::block#1 ] -Allocated zp[1]:67 [ main::v#1 ] +Allocated zp[1]:10 [ makechar::b#3 makechar::b#7 makechar::b#2 ] +Allocated zp[2]:11 [ rand::return#0 ] +Allocated zp[1]:13 [ doplasma::jj#3 doplasma::jj#2 ] +Allocated zp[2]:14 [ doplasma::scrn#6 doplasma::scrn#0 doplasma::scrn#13 ] +Allocated zp[2]:16 [ rand_state ] +Allocated zp[1]:18 [ doplasma::ii#3 doplasma::ii#2 ] +Allocated zp[1]:19 [ doplasma::i#3 doplasma::i#2 ] +Allocated zp[1]:20 [ makechar::ii#3 makechar::ii#2 ] +Allocated zp[2]:21 [ rand::return#2 ] +Allocated zp[2]:23 [ makechar::$3 ] +Allocated zp[1]:25 [ makechar::$4 ] +Allocated zp[1]:26 [ doplasma::$3 ] +Allocated zp[1]:27 [ doplasma::$1 ] +Allocated zp[1]:28 [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] +Allocated zp[1]:29 [ doplasma::c1b#3 doplasma::c1b#2 ] +Allocated zp[1]:30 [ doplasma::c2b#3 doplasma::c2b#2 ] +Allocated zp[1]:31 [ doplasma::c1a#3 doplasma::c1a#2 ] +Allocated zp[1]:32 [ doplasma::c2a#3 doplasma::c2a#2 ] +Allocated zp[2]:33 [ print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] +Allocated zp[2]:35 [ print_line_cursor#9 print_line_cursor#0 ] +Allocated zp[1]:37 [ makechar::i#3 makechar::i#2 ] +Allocated zp[2]:38 [ makechar::$7 ] +Allocated zp[2]:40 [ makechar::$8 ] +Allocated zp[2]:42 [ makechar::$10 ] +Allocated zp[1]:44 [ print_uchar::$0 ] +Allocated zp[1]:45 [ print_uchar::$2 ] +Allocated zp[1]:46 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] +Allocated zp[1]:47 [ makechar::s#1 ] +Allocated zp[2]:48 [ makechar::c#3 makechar::c#2 ] +Allocated zp[1]:50 [ makechar::$9 ] +Allocated zp[2]:51 [ print_uint::w#0 ] +Allocated zp[2]:53 [ main::count#2 main::count#1 ] +Allocated zp[2]:55 [ Ticks#1 ] +Allocated zp[2]:57 [ Ticks#0 ] +Allocated zp[1]:59 [ main::tmp#1 ] +Allocated zp[2]:60 [ last_time ] +Allocated zp[1]:62 [ main::block#1 ] +Allocated zp[1]:63 [ main::v#1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] last_time = 0 [ last_time ] ( [ last_time ] { } ) always clobbers reg byte a -Statement [14] if(0!=main::count#2) goto main::@2 [ last_time main::block#1 main::v#1 main::count#2 ] ( main:3 [ last_time main::block#1 main::v#1 main::count#2 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:66 [ main::block#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:67 [ main::v#1 ] -Statement [21] *VICII_MEMORY = PAGE1 [ last_time main::block#1 main::v#1 main::count#2 ] ( main:3 [ last_time main::block#1 main::v#1 main::count#2 ] { } ) always clobbers reg byte a -Statement [23] *VICII_MEMORY = PAGE2 [ last_time main::block#1 main::v#1 main::count#2 ] ( main:3 [ last_time main::block#1 main::v#1 main::count#2 ] { } ) always clobbers reg byte a -Statement [24] main::count#1 = -- main::count#2 [ last_time main::block#1 main::v#1 main::count#1 ] ( main:3 [ last_time main::block#1 main::v#1 main::count#1 ] { } ) always clobbers reg byte a -Statement [27] if(makechar::c#3<$100) goto makechar::@2 [ makechar::c#3 rand_state#14 ] ( main:3::makechar:6 [ last_time makechar::c#3 rand_state#14 ] { } ) always clobbers reg byte a -Statement [36] makechar::$7 = makechar::c#3 << 3 [ makechar::c#3 makechar::s#1 makechar::i#3 rand_state#19 makechar::b#3 makechar::$7 ] ( main:3::makechar:6 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 rand_state#19 makechar::b#3 makechar::$7 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:51 [ makechar::s#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:41 [ makechar::i#3 makechar::i#2 ] -Removing always clobbered register reg byte a as potential for zp[1]:16 [ makechar::b#3 makechar::b#7 makechar::b#2 ] -Statement [37] makechar::$8 = makechar::$7 + makechar::i#3 [ makechar::c#3 makechar::s#1 makechar::i#3 rand_state#19 makechar::b#3 makechar::$8 ] ( main:3::makechar:6 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 rand_state#19 makechar::b#3 makechar::$8 ] { } ) always clobbers reg byte a -Statement [38] makechar::$10 = CHARSET + makechar::$8 [ makechar::c#3 makechar::s#1 makechar::i#3 rand_state#19 makechar::b#3 makechar::$10 ] ( main:3::makechar:6 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 rand_state#19 makechar::b#3 makechar::$10 ] { } ) always clobbers reg byte a -Statement [39] *makechar::$10 = makechar::b#3 [ makechar::c#3 makechar::s#1 makechar::i#3 rand_state#19 ] ( main:3::makechar:6 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 rand_state#19 ] { } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for zp[1]:51 [ makechar::s#1 ] -Removing always clobbered register reg byte y as potential for zp[1]:41 [ makechar::i#3 makechar::i#2 ] -Statement [43] rand::return#2 = rand::return#0 [ makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#12 rand::return#2 ] ( main:3::makechar:6 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#12 rand::return#2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:24 [ makechar::ii#3 makechar::ii#2 ] -Statement [44] makechar::$3 = rand::return#2 [ makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#12 makechar::$3 ] ( main:3::makechar:6 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#12 makechar::$3 ] { } ) always clobbers reg byte a -Statement [45] makechar::$4 = makechar::$3 & $ff [ makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#12 makechar::$4 ] ( main:3::makechar:6 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#12 makechar::$4 ] { } ) always clobbers reg byte a -Statement [47] makechar::b#2 = makechar::b#3 | bittab[makechar::ii#3] [ makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 rand_state#12 makechar::b#2 ] ( main:3::makechar:6 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 rand_state#12 makechar::b#2 ] { } ) always clobbers reg byte a +Statement [1] rand_state = 1 [ rand_state ] ( [ rand_state ] { } ) always clobbers reg byte a +Statement [2] last_time = 0 [ rand_state last_time ] ( [ rand_state last_time ] { } ) always clobbers reg byte a +Statement [15] if(0!=main::count#2) goto main::@2 [ last_time main::block#1 main::v#1 main::count#2 ] ( main:4 [ last_time main::block#1 main::v#1 main::count#2 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:62 [ main::block#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:63 [ main::v#1 ] +Statement [22] *VICII_MEMORY = PAGE1 [ last_time main::block#1 main::v#1 main::count#2 ] ( main:4 [ last_time main::block#1 main::v#1 main::count#2 ] { } ) always clobbers reg byte a +Statement [24] *VICII_MEMORY = PAGE2 [ last_time main::block#1 main::v#1 main::count#2 ] ( main:4 [ last_time main::block#1 main::v#1 main::count#2 ] { } ) always clobbers reg byte a +Statement [25] main::count#1 = -- main::count#2 [ last_time main::block#1 main::v#1 main::count#1 ] ( main:4 [ last_time main::block#1 main::v#1 main::count#1 ] { } ) always clobbers reg byte a +Statement [28] if(makechar::c#3<$100) goto makechar::@2 [ rand_state makechar::c#3 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 ] { } ) always clobbers reg byte a +Statement [37] makechar::$7 = makechar::c#3 << 3 [ rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::b#3 makechar::$7 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::b#3 makechar::$7 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:47 [ makechar::s#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:37 [ makechar::i#3 makechar::i#2 ] +Removing always clobbered register reg byte a as potential for zp[1]:10 [ makechar::b#3 makechar::b#7 makechar::b#2 ] +Statement [38] makechar::$8 = makechar::$7 + makechar::i#3 [ rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::b#3 makechar::$8 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::b#3 makechar::$8 ] { } ) always clobbers reg byte a +Statement [39] makechar::$10 = CHARSET + makechar::$8 [ rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::b#3 makechar::$10 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::b#3 makechar::$10 ] { } ) always clobbers reg byte a +Statement [40] *makechar::$10 = makechar::b#3 [ rand_state makechar::c#3 makechar::s#1 makechar::i#3 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 makechar::s#1 makechar::i#3 ] { } ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp[1]:47 [ makechar::s#1 ] +Removing always clobbered register reg byte y as potential for zp[1]:37 [ makechar::i#3 makechar::i#2 ] +Statement [44] rand::return#2 = rand::return#0 [ rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand::return#2 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand::return#2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:20 [ makechar::ii#3 makechar::ii#2 ] +Statement [45] makechar::$3 = rand::return#2 [ rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 makechar::$3 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 makechar::$3 ] { } ) always clobbers reg byte a +Statement [46] makechar::$4 = makechar::$3 & $ff [ rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 makechar::$4 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 makechar::$4 ] { } ) always clobbers reg byte a +Statement [48] makechar::b#2 = makechar::b#3 | bittab[makechar::ii#3] [ rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#2 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#2 ] { } ) always clobbers reg byte a Statement asm { jsr$FFDE staLAST_TIME stxLAST_TIME+1 } always clobbers reg byte a reg byte x reg byte y -Statement [52] Ticks#0 = last_time [ last_time Ticks#0 ] ( main:3::end:17 [ last_time Ticks#0 ] { } ) always clobbers reg byte a -Statement [54] last_time = last_time - Ticks#0 [ last_time ] ( main:3::end:17 [ last_time ] { { Ticks#1 = print_uint::w#0 } } ) always clobbers reg byte a -Statement [55] Ticks#1 = last_time [ Ticks#1 ] ( main:3::end:17 [ Ticks#1 ] { { Ticks#1 = print_uint::w#0 } } ) always clobbers reg byte a -Statement [56] print_uint::w#0 = Ticks#1 [ print_uint::w#0 ] ( main:3::end:17 [ print_uint::w#0 ] { { Ticks#1 = print_uint::w#0 } } ) always clobbers reg byte a -Statement [71] doplasma::scrn#0 = doplasma::scrn#6 + $28 [ doplasma::jj#3 doplasma::scrn#0 ] ( main:3::doplasma:20 [ last_time main::block#1 main::v#1 main::count#2 doplasma::jj#3 doplasma::scrn#0 ] { } main:3::doplasma:22 [ last_time main::block#1 main::v#1 main::count#2 doplasma::jj#3 doplasma::scrn#0 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:19 [ doplasma::jj#3 doplasma::jj#2 ] -Statement [73] doplasma::$6 = xbuf[doplasma::j#3] + ybuf[doplasma::jj#3] [ doplasma::jj#3 doplasma::scrn#6 doplasma::j#3 doplasma::$6 ] ( main:3::doplasma:20 [ last_time main::block#1 main::v#1 main::count#2 doplasma::jj#3 doplasma::scrn#6 doplasma::j#3 doplasma::$6 ] { } main:3::doplasma:22 [ last_time main::block#1 main::v#1 main::count#2 doplasma::jj#3 doplasma::scrn#6 doplasma::j#3 doplasma::$6 ] { } ) always clobbers reg byte a +Statement [53] Ticks#0 = last_time [ last_time Ticks#0 ] ( main:4::end:18 [ last_time Ticks#0 ] { } ) always clobbers reg byte a +Statement [55] last_time = last_time - Ticks#0 [ last_time ] ( main:4::end:18 [ last_time ] { { Ticks#1 = print_uint::w#0 } } ) always clobbers reg byte a +Statement [56] Ticks#1 = last_time [ Ticks#1 ] ( main:4::end:18 [ Ticks#1 ] { { Ticks#1 = print_uint::w#0 } } ) always clobbers reg byte a +Statement [57] print_uint::w#0 = Ticks#1 [ print_uint::w#0 ] ( main:4::end:18 [ print_uint::w#0 ] { { Ticks#1 = print_uint::w#0 } } ) always clobbers reg byte a +Statement [72] doplasma::scrn#0 = doplasma::scrn#6 + $28 [ doplasma::jj#3 doplasma::scrn#0 ] ( main:4::doplasma:21 [ last_time main::block#1 main::v#1 main::count#2 doplasma::jj#3 doplasma::scrn#0 ] { } main:4::doplasma:23 [ last_time main::block#1 main::v#1 main::count#2 doplasma::jj#3 doplasma::scrn#0 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:13 [ doplasma::jj#3 doplasma::jj#2 ] +Statement [74] doplasma::$6 = xbuf[doplasma::j#3] + ybuf[doplasma::jj#3] [ doplasma::jj#3 doplasma::scrn#6 doplasma::j#3 doplasma::$6 ] ( main:4::doplasma:21 [ last_time main::block#1 main::v#1 main::count#2 doplasma::jj#3 doplasma::scrn#6 doplasma::j#3 doplasma::$6 ] { } main:4::doplasma:23 [ last_time main::block#1 main::v#1 main::count#2 doplasma::jj#3 doplasma::scrn#6 doplasma::j#3 doplasma::$6 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ doplasma::j#3 doplasma::j#2 ] -Statement [76] doplasma::$3 = sinetable[doplasma::c2a#3] + sinetable[doplasma::c2b#3] [ doplasma::scrn#13 doplasma::i#3 doplasma::c2a#3 doplasma::c2b#3 doplasma::$3 ] ( main:3::doplasma:20 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2a#3 doplasma::c2b#3 doplasma::$3 ] { } main:3::doplasma:22 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2a#3 doplasma::c2b#3 doplasma::$3 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:23 [ doplasma::i#3 doplasma::i#2 ] -Removing always clobbered register reg byte a as potential for zp[1]:36 [ doplasma::c2a#3 doplasma::c2a#2 ] -Removing always clobbered register reg byte a as potential for zp[1]:34 [ doplasma::c2b#3 doplasma::c2b#2 ] -Statement [78] doplasma::c2a#2 = doplasma::c2a#3 + 3 [ doplasma::scrn#13 doplasma::i#3 doplasma::c2b#3 doplasma::c2a#2 ] ( main:3::doplasma:20 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2b#3 doplasma::c2a#2 ] { } main:3::doplasma:22 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2b#3 doplasma::c2a#2 ] { } ) always clobbers reg byte a -Statement [79] doplasma::c2b#2 = doplasma::c2b#3 + 7 [ doplasma::scrn#13 doplasma::i#3 doplasma::c2a#2 doplasma::c2b#2 ] ( main:3::doplasma:20 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2a#2 doplasma::c2b#2 ] { } main:3::doplasma:22 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2a#2 doplasma::c2b#2 ] { } ) always clobbers reg byte a -Statement [81] doplasma::$1 = sinetable[doplasma::c1a#3] + sinetable[doplasma::c1b#3] [ doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#3 doplasma::c1b#3 doplasma::$1 ] ( main:3::doplasma:20 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#3 doplasma::c1b#3 doplasma::$1 ] { } main:3::doplasma:22 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#3 doplasma::c1b#3 doplasma::$1 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:22 [ doplasma::ii#3 doplasma::ii#2 ] -Removing always clobbered register reg byte a as potential for zp[1]:35 [ doplasma::c1a#3 doplasma::c1a#2 ] -Removing always clobbered register reg byte a as potential for zp[1]:33 [ doplasma::c1b#3 doplasma::c1b#2 ] -Statement [83] doplasma::c1a#2 = doplasma::c1a#3 + 4 [ doplasma::scrn#13 doplasma::ii#3 doplasma::c1b#3 doplasma::c1a#2 ] ( main:3::doplasma:20 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1b#3 doplasma::c1a#2 ] { } main:3::doplasma:22 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1b#3 doplasma::c1a#2 ] { } ) always clobbers reg byte a -Statement [84] doplasma::c1b#2 = doplasma::c1b#3 + 9 [ doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#2 doplasma::c1b#2 ] ( main:3::doplasma:20 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#2 doplasma::c1b#2 ] { } main:3::doplasma:22 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#2 doplasma::c1b#2 ] { } ) always clobbers reg byte a -Statement [86] rand::$0 = rand_state#19 << 7 [ rand_state#19 rand::$0 ] ( main:3::makechar:6::rand:42 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#19 rand::$0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [87] rand_state#0 = rand_state#19 ^ rand::$0 [ rand_state#0 ] ( main:3::makechar:6::rand:42 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [88] rand::$1 = rand_state#0 >> 9 [ rand_state#0 rand::$1 ] ( main:3::makechar:6::rand:42 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#0 rand::$1 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [89] rand_state#1 = rand_state#0 ^ rand::$1 [ rand_state#1 ] ( main:3::makechar:6::rand:42 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#1 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [90] rand::$2 = rand_state#1 << 8 [ rand_state#1 rand::$2 ] ( main:3::makechar:6::rand:42 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#1 rand::$2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [91] rand_state#12 = rand_state#1 ^ rand::$2 [ rand_state#12 ] ( main:3::makechar:6::rand:42 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#12 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [92] rand::return#0 = rand_state#12 [ rand_state#12 rand::return#0 ] ( main:3::makechar:6::rand:42 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#12 rand::return#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [101] print_line_cursor#0 = print_line_cursor#9 + $28 [ print_line_cursor#0 print_char_cursor#27 ] ( main:3::end:17::print_ln:59 [ print_line_cursor#0 print_char_cursor#27 ] { } ) always clobbers reg byte a -Statement [102] if(print_line_cursor#0> 4 [ print_uchar::b#2 print_char_cursor#37 print_uchar::$0 ] ( main:3::end:17::print_uint:57::print_uchar:95 [ print_uint::w#0 print_uchar::b#2 print_char_cursor#37 print_uchar::$0 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#0 = print_char::ch#2 } { print_char_cursor#26 = print_char_cursor#37 } } main:3::end:17::print_uint:57::print_uchar:97 [ print_uchar::b#2 print_char_cursor#37 print_uchar::$0 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#26 = print_char_cursor#37 print_char_cursor#27 } { print_char::ch#0 = print_char::ch#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:50 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] -Statement [108] print_uchar::$2 = print_uchar::b#2 & $f [ print_char_cursor#27 print_uchar::$2 ] ( main:3::end:17::print_uint:57::print_uchar:95 [ print_uint::w#0 print_char_cursor#27 print_uchar::$2 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#2 } { print_char_cursor#26 = print_char_cursor#27 } } main:3::end:17::print_uint:57::print_uchar:97 [ print_char_cursor#27 print_uchar::$2 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#26 = print_char_cursor#37 print_char_cursor#27 } { print_char::ch#1 = print_char::ch#2 } } ) always clobbers reg byte a -Statement [113] *print_char_cursor#26 = print_char::ch#2 [ print_char_cursor#26 ] ( main:3::end:17::print_uint:57::print_uchar:95::print_char:107 [ print_uint::w#0 print_uchar::b#2 print_char_cursor#26 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#0 = print_char::ch#2 } { print_char_cursor#26 = print_char_cursor#37 } } main:3::end:17::print_uint:57::print_uchar:97::print_char:107 [ print_uchar::b#2 print_char_cursor#26 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#26 = print_char_cursor#37 print_char_cursor#27 } { print_char::ch#0 = print_char::ch#2 } } main:3::end:17::print_uint:57::print_uchar:95::print_char:110 [ print_uint::w#0 print_char_cursor#26 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#2 } { print_char_cursor#26 = print_char_cursor#27 } } main:3::end:17::print_uint:57::print_uchar:97::print_char:110 [ print_char_cursor#26 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#26 = print_char_cursor#37 print_char_cursor#27 } { print_char::ch#1 = print_char::ch#2 } } ) always clobbers reg byte y -Removing always clobbered register reg byte y as potential for zp[1]:50 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] -Statement [1] last_time = 0 [ last_time ] ( [ last_time ] { } ) always clobbers reg byte a -Statement [10] main::tmp#1 = main::block#1 & $fc [ last_time main::block#1 main::tmp#1 ] ( main:3 [ last_time main::block#1 main::tmp#1 ] { } ) always clobbers reg byte a -Statement [14] if(0!=main::count#2) goto main::@2 [ last_time main::block#1 main::v#1 main::count#2 ] ( main:3 [ last_time main::block#1 main::v#1 main::count#2 ] { } ) always clobbers reg byte a -Statement [21] *VICII_MEMORY = PAGE1 [ last_time main::block#1 main::v#1 main::count#2 ] ( main:3 [ last_time main::block#1 main::v#1 main::count#2 ] { } ) always clobbers reg byte a -Statement [23] *VICII_MEMORY = PAGE2 [ last_time main::block#1 main::v#1 main::count#2 ] ( main:3 [ last_time main::block#1 main::v#1 main::count#2 ] { } ) always clobbers reg byte a -Statement [24] main::count#1 = -- main::count#2 [ last_time main::block#1 main::v#1 main::count#1 ] ( main:3 [ last_time main::block#1 main::v#1 main::count#1 ] { } ) always clobbers reg byte a -Statement [27] if(makechar::c#3<$100) goto makechar::@2 [ makechar::c#3 rand_state#14 ] ( main:3::makechar:6 [ last_time makechar::c#3 rand_state#14 ] { } ) always clobbers reg byte a -Statement [36] makechar::$7 = makechar::c#3 << 3 [ makechar::c#3 makechar::s#1 makechar::i#3 rand_state#19 makechar::b#3 makechar::$7 ] ( main:3::makechar:6 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 rand_state#19 makechar::b#3 makechar::$7 ] { } ) always clobbers reg byte a -Statement [37] makechar::$8 = makechar::$7 + makechar::i#3 [ makechar::c#3 makechar::s#1 makechar::i#3 rand_state#19 makechar::b#3 makechar::$8 ] ( main:3::makechar:6 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 rand_state#19 makechar::b#3 makechar::$8 ] { } ) always clobbers reg byte a -Statement [38] makechar::$10 = CHARSET + makechar::$8 [ makechar::c#3 makechar::s#1 makechar::i#3 rand_state#19 makechar::b#3 makechar::$10 ] ( main:3::makechar:6 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 rand_state#19 makechar::b#3 makechar::$10 ] { } ) always clobbers reg byte a -Statement [39] *makechar::$10 = makechar::b#3 [ makechar::c#3 makechar::s#1 makechar::i#3 rand_state#19 ] ( main:3::makechar:6 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 rand_state#19 ] { } ) always clobbers reg byte a reg byte y -Statement [43] rand::return#2 = rand::return#0 [ makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#12 rand::return#2 ] ( main:3::makechar:6 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#12 rand::return#2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [44] makechar::$3 = rand::return#2 [ makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#12 makechar::$3 ] ( main:3::makechar:6 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#12 makechar::$3 ] { } ) always clobbers reg byte a -Statement [45] makechar::$4 = makechar::$3 & $ff [ makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#12 makechar::$4 ] ( main:3::makechar:6 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#12 makechar::$4 ] { } ) always clobbers reg byte a -Statement [47] makechar::b#2 = makechar::b#3 | bittab[makechar::ii#3] [ makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 rand_state#12 makechar::b#2 ] ( main:3::makechar:6 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 rand_state#12 makechar::b#2 ] { } ) always clobbers reg byte a +Statement [77] doplasma::$3 = sinetable[doplasma::c2a#3] + sinetable[doplasma::c2b#3] [ doplasma::scrn#13 doplasma::i#3 doplasma::c2a#3 doplasma::c2b#3 doplasma::$3 ] ( main:4::doplasma:21 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2a#3 doplasma::c2b#3 doplasma::$3 ] { } main:4::doplasma:23 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2a#3 doplasma::c2b#3 doplasma::$3 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:19 [ doplasma::i#3 doplasma::i#2 ] +Removing always clobbered register reg byte a as potential for zp[1]:32 [ doplasma::c2a#3 doplasma::c2a#2 ] +Removing always clobbered register reg byte a as potential for zp[1]:30 [ doplasma::c2b#3 doplasma::c2b#2 ] +Statement [79] doplasma::c2a#2 = doplasma::c2a#3 + 3 [ doplasma::scrn#13 doplasma::i#3 doplasma::c2b#3 doplasma::c2a#2 ] ( main:4::doplasma:21 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2b#3 doplasma::c2a#2 ] { } main:4::doplasma:23 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2b#3 doplasma::c2a#2 ] { } ) always clobbers reg byte a +Statement [80] doplasma::c2b#2 = doplasma::c2b#3 + 7 [ doplasma::scrn#13 doplasma::i#3 doplasma::c2a#2 doplasma::c2b#2 ] ( main:4::doplasma:21 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2a#2 doplasma::c2b#2 ] { } main:4::doplasma:23 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2a#2 doplasma::c2b#2 ] { } ) always clobbers reg byte a +Statement [82] doplasma::$1 = sinetable[doplasma::c1a#3] + sinetable[doplasma::c1b#3] [ doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#3 doplasma::c1b#3 doplasma::$1 ] ( main:4::doplasma:21 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#3 doplasma::c1b#3 doplasma::$1 ] { } main:4::doplasma:23 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#3 doplasma::c1b#3 doplasma::$1 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:18 [ doplasma::ii#3 doplasma::ii#2 ] +Removing always clobbered register reg byte a as potential for zp[1]:31 [ doplasma::c1a#3 doplasma::c1a#2 ] +Removing always clobbered register reg byte a as potential for zp[1]:29 [ doplasma::c1b#3 doplasma::c1b#2 ] +Statement [84] doplasma::c1a#2 = doplasma::c1a#3 + 4 [ doplasma::scrn#13 doplasma::ii#3 doplasma::c1b#3 doplasma::c1a#2 ] ( main:4::doplasma:21 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1b#3 doplasma::c1a#2 ] { } main:4::doplasma:23 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1b#3 doplasma::c1a#2 ] { } ) always clobbers reg byte a +Statement [85] doplasma::c1b#2 = doplasma::c1b#3 + 9 [ doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#2 doplasma::c1b#2 ] ( main:4::doplasma:21 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#2 doplasma::c1b#2 ] { } main:4::doplasma:23 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#2 doplasma::c1b#2 ] { } ) always clobbers reg byte a +Statement [87] rand::$0 = rand_state << 7 [ rand_state rand::$0 ] ( main:4::makechar:7::rand:43 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state rand::$0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [88] rand_state = rand_state ^ rand::$0 [ rand_state ] ( main:4::makechar:7::rand:43 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [89] rand::$1 = rand_state >> 9 [ rand_state rand::$1 ] ( main:4::makechar:7::rand:43 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state rand::$1 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [90] rand_state = rand_state ^ rand::$1 [ rand_state ] ( main:4::makechar:7::rand:43 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [91] rand::$2 = rand_state << 8 [ rand_state rand::$2 ] ( main:4::makechar:7::rand:43 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state rand::$2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [92] rand_state = rand_state ^ rand::$2 [ rand_state ] ( main:4::makechar:7::rand:43 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [93] rand::return#0 = rand_state [ rand_state rand::return#0 ] ( main:4::makechar:7::rand:43 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state rand::return#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [102] print_line_cursor#0 = print_line_cursor#9 + $28 [ print_line_cursor#0 print_char_cursor#27 ] ( main:4::end:18::print_ln:60 [ print_line_cursor#0 print_char_cursor#27 ] { } ) always clobbers reg byte a +Statement [103] if(print_line_cursor#0> 4 [ print_uchar::b#2 print_char_cursor#37 print_uchar::$0 ] ( main:4::end:18::print_uint:58::print_uchar:96 [ print_uint::w#0 print_uchar::b#2 print_char_cursor#37 print_uchar::$0 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#0 = print_char::ch#2 } { print_char_cursor#26 = print_char_cursor#37 } } main:4::end:18::print_uint:58::print_uchar:98 [ print_uchar::b#2 print_char_cursor#37 print_uchar::$0 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#26 = print_char_cursor#37 print_char_cursor#27 } { print_char::ch#0 = print_char::ch#2 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:46 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] +Statement [109] print_uchar::$2 = print_uchar::b#2 & $f [ print_char_cursor#27 print_uchar::$2 ] ( main:4::end:18::print_uint:58::print_uchar:96 [ print_uint::w#0 print_char_cursor#27 print_uchar::$2 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#2 } { print_char_cursor#26 = print_char_cursor#27 } } main:4::end:18::print_uint:58::print_uchar:98 [ print_char_cursor#27 print_uchar::$2 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#26 = print_char_cursor#37 print_char_cursor#27 } { print_char::ch#1 = print_char::ch#2 } } ) always clobbers reg byte a +Statement [114] *print_char_cursor#26 = print_char::ch#2 [ print_char_cursor#26 ] ( main:4::end:18::print_uint:58::print_uchar:96::print_char:108 [ print_uint::w#0 print_uchar::b#2 print_char_cursor#26 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#0 = print_char::ch#2 } { print_char_cursor#26 = print_char_cursor#37 } } main:4::end:18::print_uint:58::print_uchar:98::print_char:108 [ print_uchar::b#2 print_char_cursor#26 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#26 = print_char_cursor#37 print_char_cursor#27 } { print_char::ch#0 = print_char::ch#2 } } main:4::end:18::print_uint:58::print_uchar:96::print_char:111 [ print_uint::w#0 print_char_cursor#26 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#2 } { print_char_cursor#26 = print_char_cursor#27 } } main:4::end:18::print_uint:58::print_uchar:98::print_char:111 [ print_char_cursor#26 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#26 = print_char_cursor#37 print_char_cursor#27 } { print_char::ch#1 = print_char::ch#2 } } ) always clobbers reg byte y +Removing always clobbered register reg byte y as potential for zp[1]:46 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] +Statement [1] rand_state = 1 [ rand_state ] ( [ rand_state ] { } ) always clobbers reg byte a +Statement [2] last_time = 0 [ rand_state last_time ] ( [ rand_state last_time ] { } ) always clobbers reg byte a +Statement [11] main::tmp#1 = main::block#1 & $fc [ last_time main::block#1 main::tmp#1 ] ( main:4 [ last_time main::block#1 main::tmp#1 ] { } ) always clobbers reg byte a +Statement [15] if(0!=main::count#2) goto main::@2 [ last_time main::block#1 main::v#1 main::count#2 ] ( main:4 [ last_time main::block#1 main::v#1 main::count#2 ] { } ) always clobbers reg byte a +Statement [22] *VICII_MEMORY = PAGE1 [ last_time main::block#1 main::v#1 main::count#2 ] ( main:4 [ last_time main::block#1 main::v#1 main::count#2 ] { } ) always clobbers reg byte a +Statement [24] *VICII_MEMORY = PAGE2 [ last_time main::block#1 main::v#1 main::count#2 ] ( main:4 [ last_time main::block#1 main::v#1 main::count#2 ] { } ) always clobbers reg byte a +Statement [25] main::count#1 = -- main::count#2 [ last_time main::block#1 main::v#1 main::count#1 ] ( main:4 [ last_time main::block#1 main::v#1 main::count#1 ] { } ) always clobbers reg byte a +Statement [28] if(makechar::c#3<$100) goto makechar::@2 [ rand_state makechar::c#3 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 ] { } ) always clobbers reg byte a +Statement [37] makechar::$7 = makechar::c#3 << 3 [ rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::b#3 makechar::$7 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::b#3 makechar::$7 ] { } ) always clobbers reg byte a +Statement [38] makechar::$8 = makechar::$7 + makechar::i#3 [ rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::b#3 makechar::$8 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::b#3 makechar::$8 ] { } ) always clobbers reg byte a +Statement [39] makechar::$10 = CHARSET + makechar::$8 [ rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::b#3 makechar::$10 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::b#3 makechar::$10 ] { } ) always clobbers reg byte a +Statement [40] *makechar::$10 = makechar::b#3 [ rand_state makechar::c#3 makechar::s#1 makechar::i#3 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 makechar::s#1 makechar::i#3 ] { } ) always clobbers reg byte a reg byte y +Statement [44] rand::return#2 = rand::return#0 [ rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand::return#2 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand::return#2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [45] makechar::$3 = rand::return#2 [ rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 makechar::$3 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 makechar::$3 ] { } ) always clobbers reg byte a +Statement [46] makechar::$4 = makechar::$3 & $ff [ rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 makechar::$4 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 makechar::$4 ] { } ) always clobbers reg byte a +Statement [48] makechar::b#2 = makechar::b#3 | bittab[makechar::ii#3] [ rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#2 ] ( main:4::makechar:7 [ last_time rand_state makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#2 ] { } ) always clobbers reg byte a Statement asm { jsr$FFDE staLAST_TIME stxLAST_TIME+1 } always clobbers reg byte a reg byte x reg byte y -Statement [52] Ticks#0 = last_time [ last_time Ticks#0 ] ( main:3::end:17 [ last_time Ticks#0 ] { } ) always clobbers reg byte a -Statement [54] last_time = last_time - Ticks#0 [ last_time ] ( main:3::end:17 [ last_time ] { { Ticks#1 = print_uint::w#0 } } ) always clobbers reg byte a -Statement [55] Ticks#1 = last_time [ Ticks#1 ] ( main:3::end:17 [ Ticks#1 ] { { Ticks#1 = print_uint::w#0 } } ) always clobbers reg byte a -Statement [56] print_uint::w#0 = Ticks#1 [ print_uint::w#0 ] ( main:3::end:17 [ print_uint::w#0 ] { { Ticks#1 = print_uint::w#0 } } ) always clobbers reg byte a -Statement [71] doplasma::scrn#0 = doplasma::scrn#6 + $28 [ doplasma::jj#3 doplasma::scrn#0 ] ( main:3::doplasma:20 [ last_time main::block#1 main::v#1 main::count#2 doplasma::jj#3 doplasma::scrn#0 ] { } main:3::doplasma:22 [ last_time main::block#1 main::v#1 main::count#2 doplasma::jj#3 doplasma::scrn#0 ] { } ) always clobbers reg byte a -Statement [73] doplasma::$6 = xbuf[doplasma::j#3] + ybuf[doplasma::jj#3] [ doplasma::jj#3 doplasma::scrn#6 doplasma::j#3 doplasma::$6 ] ( main:3::doplasma:20 [ last_time main::block#1 main::v#1 main::count#2 doplasma::jj#3 doplasma::scrn#6 doplasma::j#3 doplasma::$6 ] { } main:3::doplasma:22 [ last_time main::block#1 main::v#1 main::count#2 doplasma::jj#3 doplasma::scrn#6 doplasma::j#3 doplasma::$6 ] { } ) always clobbers reg byte a -Statement [76] doplasma::$3 = sinetable[doplasma::c2a#3] + sinetable[doplasma::c2b#3] [ doplasma::scrn#13 doplasma::i#3 doplasma::c2a#3 doplasma::c2b#3 doplasma::$3 ] ( main:3::doplasma:20 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2a#3 doplasma::c2b#3 doplasma::$3 ] { } main:3::doplasma:22 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2a#3 doplasma::c2b#3 doplasma::$3 ] { } ) always clobbers reg byte a -Statement [78] doplasma::c2a#2 = doplasma::c2a#3 + 3 [ doplasma::scrn#13 doplasma::i#3 doplasma::c2b#3 doplasma::c2a#2 ] ( main:3::doplasma:20 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2b#3 doplasma::c2a#2 ] { } main:3::doplasma:22 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2b#3 doplasma::c2a#2 ] { } ) always clobbers reg byte a -Statement [79] doplasma::c2b#2 = doplasma::c2b#3 + 7 [ doplasma::scrn#13 doplasma::i#3 doplasma::c2a#2 doplasma::c2b#2 ] ( main:3::doplasma:20 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2a#2 doplasma::c2b#2 ] { } main:3::doplasma:22 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2a#2 doplasma::c2b#2 ] { } ) always clobbers reg byte a -Statement [81] doplasma::$1 = sinetable[doplasma::c1a#3] + sinetable[doplasma::c1b#3] [ doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#3 doplasma::c1b#3 doplasma::$1 ] ( main:3::doplasma:20 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#3 doplasma::c1b#3 doplasma::$1 ] { } main:3::doplasma:22 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#3 doplasma::c1b#3 doplasma::$1 ] { } ) always clobbers reg byte a -Statement [83] doplasma::c1a#2 = doplasma::c1a#3 + 4 [ doplasma::scrn#13 doplasma::ii#3 doplasma::c1b#3 doplasma::c1a#2 ] ( main:3::doplasma:20 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1b#3 doplasma::c1a#2 ] { } main:3::doplasma:22 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1b#3 doplasma::c1a#2 ] { } ) always clobbers reg byte a -Statement [84] doplasma::c1b#2 = doplasma::c1b#3 + 9 [ doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#2 doplasma::c1b#2 ] ( main:3::doplasma:20 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#2 doplasma::c1b#2 ] { } main:3::doplasma:22 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#2 doplasma::c1b#2 ] { } ) always clobbers reg byte a -Statement [86] rand::$0 = rand_state#19 << 7 [ rand_state#19 rand::$0 ] ( main:3::makechar:6::rand:42 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#19 rand::$0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [87] rand_state#0 = rand_state#19 ^ rand::$0 [ rand_state#0 ] ( main:3::makechar:6::rand:42 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [88] rand::$1 = rand_state#0 >> 9 [ rand_state#0 rand::$1 ] ( main:3::makechar:6::rand:42 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#0 rand::$1 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [89] rand_state#1 = rand_state#0 ^ rand::$1 [ rand_state#1 ] ( main:3::makechar:6::rand:42 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#1 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [90] rand::$2 = rand_state#1 << 8 [ rand_state#1 rand::$2 ] ( main:3::makechar:6::rand:42 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#1 rand::$2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [91] rand_state#12 = rand_state#1 ^ rand::$2 [ rand_state#12 ] ( main:3::makechar:6::rand:42 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#12 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [92] rand::return#0 = rand_state#12 [ rand_state#12 rand::return#0 ] ( main:3::makechar:6::rand:42 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state#12 rand::return#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [101] print_line_cursor#0 = print_line_cursor#9 + $28 [ print_line_cursor#0 print_char_cursor#27 ] ( main:3::end:17::print_ln:59 [ print_line_cursor#0 print_char_cursor#27 ] { } ) always clobbers reg byte a -Statement [102] if(print_line_cursor#0> 4 [ print_uchar::b#2 print_char_cursor#37 print_uchar::$0 ] ( main:3::end:17::print_uint:57::print_uchar:95 [ print_uint::w#0 print_uchar::b#2 print_char_cursor#37 print_uchar::$0 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#0 = print_char::ch#2 } { print_char_cursor#26 = print_char_cursor#37 } } main:3::end:17::print_uint:57::print_uchar:97 [ print_uchar::b#2 print_char_cursor#37 print_uchar::$0 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#26 = print_char_cursor#37 print_char_cursor#27 } { print_char::ch#0 = print_char::ch#2 } } ) always clobbers reg byte a -Statement [108] print_uchar::$2 = print_uchar::b#2 & $f [ print_char_cursor#27 print_uchar::$2 ] ( main:3::end:17::print_uint:57::print_uchar:95 [ print_uint::w#0 print_char_cursor#27 print_uchar::$2 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#2 } { print_char_cursor#26 = print_char_cursor#27 } } main:3::end:17::print_uint:57::print_uchar:97 [ print_char_cursor#27 print_uchar::$2 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#26 = print_char_cursor#37 print_char_cursor#27 } { print_char::ch#1 = print_char::ch#2 } } ) always clobbers reg byte a -Statement [113] *print_char_cursor#26 = print_char::ch#2 [ print_char_cursor#26 ] ( main:3::end:17::print_uint:57::print_uchar:95::print_char:107 [ print_uint::w#0 print_uchar::b#2 print_char_cursor#26 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#0 = print_char::ch#2 } { print_char_cursor#26 = print_char_cursor#37 } } main:3::end:17::print_uint:57::print_uchar:97::print_char:107 [ print_uchar::b#2 print_char_cursor#26 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#26 = print_char_cursor#37 print_char_cursor#27 } { print_char::ch#0 = print_char::ch#2 } } main:3::end:17::print_uint:57::print_uchar:95::print_char:110 [ print_uint::w#0 print_char_cursor#26 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#2 } { print_char_cursor#26 = print_char_cursor#27 } } main:3::end:17::print_uint:57::print_uchar:97::print_char:110 [ print_char_cursor#26 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#26 = print_char_cursor#37 print_char_cursor#27 } { print_char::ch#1 = print_char::ch#2 } } ) always clobbers reg byte y -Potential registers zp[2]:57 [ main::count#2 main::count#1 ] : zp[2]:57 , -Potential registers zp[2]:52 [ makechar::c#3 makechar::c#2 ] : zp[2]:52 , -Potential registers zp[2]:14 [ rand_state#14 rand_state#25 rand_state#19 rand_state#12 ] : zp[2]:14 , -Potential registers zp[1]:41 [ makechar::i#3 makechar::i#2 ] : zp[1]:41 , reg byte x , -Potential registers zp[1]:24 [ makechar::ii#3 makechar::ii#2 ] : zp[1]:24 , reg byte x , reg byte y , -Potential registers zp[1]:16 [ makechar::b#3 makechar::b#7 makechar::b#2 ] : zp[1]:16 , reg byte x , reg byte y , -Potential registers zp[1]:22 [ doplasma::ii#3 doplasma::ii#2 ] : zp[1]:22 , reg byte x , reg byte y , -Potential registers zp[1]:35 [ doplasma::c1a#3 doplasma::c1a#2 ] : zp[1]:35 , reg byte x , reg byte y , -Potential registers zp[1]:33 [ doplasma::c1b#3 doplasma::c1b#2 ] : zp[1]:33 , reg byte x , reg byte y , -Potential registers zp[1]:23 [ doplasma::i#3 doplasma::i#2 ] : zp[1]:23 , reg byte x , reg byte y , -Potential registers zp[1]:36 [ doplasma::c2a#3 doplasma::c2a#2 ] : zp[1]:36 , reg byte x , reg byte y , -Potential registers zp[1]:34 [ doplasma::c2b#3 doplasma::c2b#2 ] : zp[1]:34 , reg byte x , reg byte y , -Potential registers zp[1]:19 [ doplasma::jj#3 doplasma::jj#2 ] : zp[1]:19 , reg byte x , reg byte y , -Potential registers zp[2]:20 [ doplasma::scrn#6 doplasma::scrn#0 doplasma::scrn#13 ] : zp[2]:20 , +Statement [53] Ticks#0 = last_time [ last_time Ticks#0 ] ( main:4::end:18 [ last_time Ticks#0 ] { } ) always clobbers reg byte a +Statement [55] last_time = last_time - Ticks#0 [ last_time ] ( main:4::end:18 [ last_time ] { { Ticks#1 = print_uint::w#0 } } ) always clobbers reg byte a +Statement [56] Ticks#1 = last_time [ Ticks#1 ] ( main:4::end:18 [ Ticks#1 ] { { Ticks#1 = print_uint::w#0 } } ) always clobbers reg byte a +Statement [57] print_uint::w#0 = Ticks#1 [ print_uint::w#0 ] ( main:4::end:18 [ print_uint::w#0 ] { { Ticks#1 = print_uint::w#0 } } ) always clobbers reg byte a +Statement [72] doplasma::scrn#0 = doplasma::scrn#6 + $28 [ doplasma::jj#3 doplasma::scrn#0 ] ( main:4::doplasma:21 [ last_time main::block#1 main::v#1 main::count#2 doplasma::jj#3 doplasma::scrn#0 ] { } main:4::doplasma:23 [ last_time main::block#1 main::v#1 main::count#2 doplasma::jj#3 doplasma::scrn#0 ] { } ) always clobbers reg byte a +Statement [74] doplasma::$6 = xbuf[doplasma::j#3] + ybuf[doplasma::jj#3] [ doplasma::jj#3 doplasma::scrn#6 doplasma::j#3 doplasma::$6 ] ( main:4::doplasma:21 [ last_time main::block#1 main::v#1 main::count#2 doplasma::jj#3 doplasma::scrn#6 doplasma::j#3 doplasma::$6 ] { } main:4::doplasma:23 [ last_time main::block#1 main::v#1 main::count#2 doplasma::jj#3 doplasma::scrn#6 doplasma::j#3 doplasma::$6 ] { } ) always clobbers reg byte a +Statement [77] doplasma::$3 = sinetable[doplasma::c2a#3] + sinetable[doplasma::c2b#3] [ doplasma::scrn#13 doplasma::i#3 doplasma::c2a#3 doplasma::c2b#3 doplasma::$3 ] ( main:4::doplasma:21 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2a#3 doplasma::c2b#3 doplasma::$3 ] { } main:4::doplasma:23 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2a#3 doplasma::c2b#3 doplasma::$3 ] { } ) always clobbers reg byte a +Statement [79] doplasma::c2a#2 = doplasma::c2a#3 + 3 [ doplasma::scrn#13 doplasma::i#3 doplasma::c2b#3 doplasma::c2a#2 ] ( main:4::doplasma:21 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2b#3 doplasma::c2a#2 ] { } main:4::doplasma:23 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2b#3 doplasma::c2a#2 ] { } ) always clobbers reg byte a +Statement [80] doplasma::c2b#2 = doplasma::c2b#3 + 7 [ doplasma::scrn#13 doplasma::i#3 doplasma::c2a#2 doplasma::c2b#2 ] ( main:4::doplasma:21 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2a#2 doplasma::c2b#2 ] { } main:4::doplasma:23 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::i#3 doplasma::c2a#2 doplasma::c2b#2 ] { } ) always clobbers reg byte a +Statement [82] doplasma::$1 = sinetable[doplasma::c1a#3] + sinetable[doplasma::c1b#3] [ doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#3 doplasma::c1b#3 doplasma::$1 ] ( main:4::doplasma:21 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#3 doplasma::c1b#3 doplasma::$1 ] { } main:4::doplasma:23 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#3 doplasma::c1b#3 doplasma::$1 ] { } ) always clobbers reg byte a +Statement [84] doplasma::c1a#2 = doplasma::c1a#3 + 4 [ doplasma::scrn#13 doplasma::ii#3 doplasma::c1b#3 doplasma::c1a#2 ] ( main:4::doplasma:21 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1b#3 doplasma::c1a#2 ] { } main:4::doplasma:23 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1b#3 doplasma::c1a#2 ] { } ) always clobbers reg byte a +Statement [85] doplasma::c1b#2 = doplasma::c1b#3 + 9 [ doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#2 doplasma::c1b#2 ] ( main:4::doplasma:21 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#2 doplasma::c1b#2 ] { } main:4::doplasma:23 [ last_time main::block#1 main::v#1 main::count#2 doplasma::scrn#13 doplasma::ii#3 doplasma::c1a#2 doplasma::c1b#2 ] { } ) always clobbers reg byte a +Statement [87] rand::$0 = rand_state << 7 [ rand_state rand::$0 ] ( main:4::makechar:7::rand:43 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state rand::$0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [88] rand_state = rand_state ^ rand::$0 [ rand_state ] ( main:4::makechar:7::rand:43 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [89] rand::$1 = rand_state >> 9 [ rand_state rand::$1 ] ( main:4::makechar:7::rand:43 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state rand::$1 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [90] rand_state = rand_state ^ rand::$1 [ rand_state ] ( main:4::makechar:7::rand:43 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [91] rand::$2 = rand_state << 8 [ rand_state rand::$2 ] ( main:4::makechar:7::rand:43 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state rand::$2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [92] rand_state = rand_state ^ rand::$2 [ rand_state ] ( main:4::makechar:7::rand:43 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [93] rand::return#0 = rand_state [ rand_state rand::return#0 ] ( main:4::makechar:7::rand:43 [ last_time makechar::c#3 makechar::s#1 makechar::i#3 makechar::ii#3 makechar::b#3 rand_state rand::return#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [102] print_line_cursor#0 = print_line_cursor#9 + $28 [ print_line_cursor#0 print_char_cursor#27 ] ( main:4::end:18::print_ln:60 [ print_line_cursor#0 print_char_cursor#27 ] { } ) always clobbers reg byte a +Statement [103] if(print_line_cursor#0> 4 [ print_uchar::b#2 print_char_cursor#37 print_uchar::$0 ] ( main:4::end:18::print_uint:58::print_uchar:96 [ print_uint::w#0 print_uchar::b#2 print_char_cursor#37 print_uchar::$0 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#0 = print_char::ch#2 } { print_char_cursor#26 = print_char_cursor#37 } } main:4::end:18::print_uint:58::print_uchar:98 [ print_uchar::b#2 print_char_cursor#37 print_uchar::$0 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#26 = print_char_cursor#37 print_char_cursor#27 } { print_char::ch#0 = print_char::ch#2 } } ) always clobbers reg byte a +Statement [109] print_uchar::$2 = print_uchar::b#2 & $f [ print_char_cursor#27 print_uchar::$2 ] ( main:4::end:18::print_uint:58::print_uchar:96 [ print_uint::w#0 print_char_cursor#27 print_uchar::$2 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#2 } { print_char_cursor#26 = print_char_cursor#27 } } main:4::end:18::print_uint:58::print_uchar:98 [ print_char_cursor#27 print_uchar::$2 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#26 = print_char_cursor#37 print_char_cursor#27 } { print_char::ch#1 = print_char::ch#2 } } ) always clobbers reg byte a +Statement [114] *print_char_cursor#26 = print_char::ch#2 [ print_char_cursor#26 ] ( main:4::end:18::print_uint:58::print_uchar:96::print_char:108 [ print_uint::w#0 print_uchar::b#2 print_char_cursor#26 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#0 = print_char::ch#2 } { print_char_cursor#26 = print_char_cursor#37 } } main:4::end:18::print_uint:58::print_uchar:98::print_char:108 [ print_uchar::b#2 print_char_cursor#26 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#26 = print_char_cursor#37 print_char_cursor#27 } { print_char::ch#0 = print_char::ch#2 } } main:4::end:18::print_uint:58::print_uchar:96::print_char:111 [ print_uint::w#0 print_char_cursor#26 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#2 } { print_char_cursor#26 = print_char_cursor#27 } } main:4::end:18::print_uint:58::print_uchar:98::print_char:111 [ print_char_cursor#26 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#26 = print_char_cursor#37 print_char_cursor#27 } { print_char::ch#1 = print_char::ch#2 } } ) always clobbers reg byte y +Potential registers zp[2]:53 [ main::count#2 main::count#1 ] : zp[2]:53 , +Potential registers zp[2]:48 [ makechar::c#3 makechar::c#2 ] : zp[2]:48 , +Potential registers zp[1]:37 [ makechar::i#3 makechar::i#2 ] : zp[1]:37 , reg byte x , +Potential registers zp[1]:20 [ makechar::ii#3 makechar::ii#2 ] : zp[1]:20 , reg byte x , reg byte y , +Potential registers zp[1]:10 [ makechar::b#3 makechar::b#7 makechar::b#2 ] : zp[1]:10 , reg byte x , reg byte y , +Potential registers zp[1]:18 [ doplasma::ii#3 doplasma::ii#2 ] : zp[1]:18 , reg byte x , reg byte y , +Potential registers zp[1]:31 [ doplasma::c1a#3 doplasma::c1a#2 ] : zp[1]:31 , reg byte x , reg byte y , +Potential registers zp[1]:29 [ doplasma::c1b#3 doplasma::c1b#2 ] : zp[1]:29 , reg byte x , reg byte y , +Potential registers zp[1]:19 [ doplasma::i#3 doplasma::i#2 ] : zp[1]:19 , reg byte x , reg byte y , +Potential registers zp[1]:32 [ doplasma::c2a#3 doplasma::c2a#2 ] : zp[1]:32 , reg byte x , reg byte y , +Potential registers zp[1]:30 [ doplasma::c2b#3 doplasma::c2b#2 ] : zp[1]:30 , reg byte x , reg byte y , +Potential registers zp[1]:13 [ doplasma::jj#3 doplasma::jj#2 ] : zp[1]:13 , reg byte x , reg byte y , +Potential registers zp[2]:14 [ doplasma::scrn#6 doplasma::scrn#0 doplasma::scrn#13 ] : zp[2]:14 , Potential registers zp[1]:2 [ doplasma::j#3 doplasma::j#2 ] : zp[1]:2 , reg byte x , reg byte y , -Potential registers zp[2]:39 [ print_line_cursor#9 print_line_cursor#0 ] : zp[2]:39 , -Potential registers zp[1]:50 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] : zp[1]:50 , reg byte x , -Potential registers zp[1]:32 [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] : zp[1]:32 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:37 [ print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] : zp[2]:37 , -Potential registers zp[2]:64 [ last_time ] : zp[2]:64 , -Potential registers zp[1]:66 [ main::block#1 ] : zp[1]:66 , reg byte x , reg byte y , -Potential registers zp[1]:63 [ main::tmp#1 ] : zp[1]:63 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:67 [ main::v#1 ] : zp[1]:67 , reg byte x , reg byte y , -Potential registers zp[1]:54 [ makechar::$9 ] : zp[1]:54 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:51 [ makechar::s#1 ] : zp[1]:51 , reg byte x , -Potential registers zp[2]:42 [ makechar::$7 ] : zp[2]:42 , -Potential registers zp[2]:44 [ makechar::$8 ] : zp[2]:44 , -Potential registers zp[2]:46 [ makechar::$10 ] : zp[2]:46 , -Potential registers zp[2]:25 [ rand::return#2 ] : zp[2]:25 , -Potential registers zp[2]:27 [ makechar::$3 ] : zp[2]:27 , -Potential registers zp[1]:29 [ makechar::$4 ] : zp[1]:29 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:61 [ Ticks#0 ] : zp[2]:61 , -Potential registers zp[2]:59 [ Ticks#1 ] : zp[2]:59 , -Potential registers zp[2]:55 [ print_uint::w#0 ] : zp[2]:55 , +Potential registers zp[2]:35 [ print_line_cursor#9 print_line_cursor#0 ] : zp[2]:35 , +Potential registers zp[1]:46 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] : zp[1]:46 , reg byte x , +Potential registers zp[1]:28 [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] : zp[1]:28 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:33 [ print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] : zp[2]:33 , +Potential registers zp[2]:16 [ rand_state ] : zp[2]:16 , +Potential registers zp[2]:60 [ last_time ] : zp[2]:60 , +Potential registers zp[1]:62 [ main::block#1 ] : zp[1]:62 , reg byte x , reg byte y , +Potential registers zp[1]:59 [ main::tmp#1 ] : zp[1]:59 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:63 [ main::v#1 ] : zp[1]:63 , reg byte x , reg byte y , +Potential registers zp[1]:50 [ makechar::$9 ] : zp[1]:50 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:47 [ makechar::s#1 ] : zp[1]:47 , reg byte x , +Potential registers zp[2]:38 [ makechar::$7 ] : zp[2]:38 , +Potential registers zp[2]:40 [ makechar::$8 ] : zp[2]:40 , +Potential registers zp[2]:42 [ makechar::$10 ] : zp[2]:42 , +Potential registers zp[2]:21 [ rand::return#2 ] : zp[2]:21 , +Potential registers zp[2]:23 [ makechar::$3 ] : zp[2]:23 , +Potential registers zp[1]:25 [ makechar::$4 ] : zp[1]:25 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:57 [ Ticks#0 ] : zp[2]:57 , +Potential registers zp[2]:55 [ Ticks#1 ] : zp[2]:55 , +Potential registers zp[2]:51 [ print_uint::w#0 ] : zp[2]:51 , Potential registers zp[1]:3 [ doplasma::$6 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:30 [ doplasma::$3 ] : zp[1]:30 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:31 [ doplasma::$1 ] : zp[1]:31 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:26 [ doplasma::$3 ] : zp[1]:26 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:27 [ doplasma::$1 ] : zp[1]:27 , reg byte a , reg byte x , reg byte y , Potential registers zp[2]:4 [ rand::$0 ] : zp[2]:4 , -Potential registers zp[2]:10 [ rand_state#0 ] : zp[2]:10 , Potential registers zp[2]:6 [ rand::$1 ] : zp[2]:6 , -Potential registers zp[2]:12 [ rand_state#1 ] : zp[2]:12 , Potential registers zp[2]:8 [ rand::$2 ] : zp[2]:8 , -Potential registers zp[2]:17 [ rand::return#0 ] : zp[2]:17 , -Potential registers zp[1]:48 [ print_uchar::$0 ] : zp[1]:48 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:49 [ print_uchar::$2 ] : zp[1]:49 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:11 [ rand::return#0 ] : zp[2]:11 , +Potential registers zp[1]:44 [ print_uchar::$0 ] : zp[1]:44 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:45 [ print_uchar::$2 ] : zp[1]:45 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [doplasma] 3,250,003.25: zp[1]:2 [ doplasma::j#3 doplasma::j#2 ] 2,000,002: zp[1]:3 [ doplasma::$6 ] 362,502.5: zp[1]:19 [ doplasma::jj#3 doplasma::jj#2 ] 292,382.59: zp[2]:20 [ doplasma::scrn#6 doplasma::scrn#0 doplasma::scrn#13 ] 266,669.33: zp[1]:22 [ doplasma::ii#3 doplasma::ii#2 ] 266,669.33: zp[1]:23 [ doplasma::i#3 doplasma::i#2 ] 200,002: zp[1]:30 [ doplasma::$3 ] 200,002: zp[1]:31 [ doplasma::$1 ] 160,001.6: zp[1]:33 [ doplasma::c1b#3 doplasma::c1b#2 ] 160,001.6: zp[1]:34 [ doplasma::c2b#3 doplasma::c2b#2 ] 141,668.08: zp[1]:35 [ doplasma::c1a#3 doplasma::c1a#2 ] 141,668.08: zp[1]:36 [ doplasma::c2a#3 doplasma::c2a#2 ] -Uplift Scope [rand] 2,000,002: zp[2]:4 [ rand::$0 ] 2,000,002: zp[2]:6 [ rand::$1 ] 2,000,002: zp[2]:8 [ rand::$2 ] 366,667.33: zp[2]:17 [ rand::return#0 ] 200,002: zp[2]:25 [ rand::return#2 ] -Uplift Scope [] 1,500,001.5: zp[2]:10 [ rand_state#0 ] 1,500,001.5: zp[2]:12 [ rand_state#1 ] 434,300.64: zp[2]:14 [ rand_state#14 rand_state#25 rand_state#19 rand_state#12 ] 120,787.22: zp[2]:37 [ print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] 35,003.5: zp[2]:39 [ print_line_cursor#9 print_line_cursor#0 ] 202: zp[2]:59 [ Ticks#1 ] 101: zp[2]:61 [ Ticks#0 ] 17.65: zp[2]:64 [ last_time ] -Uplift Scope [makechar] 378,185.68: zp[1]:16 [ makechar::b#3 makechar::b#7 makechar::b#2 ] 240,002.4: zp[1]:24 [ makechar::ii#3 makechar::ii#2 ] 200,002: zp[2]:27 [ makechar::$3 ] 200,002: zp[1]:29 [ makechar::$4 ] 22,355.18: zp[1]:41 [ makechar::i#3 makechar::i#2 ] 20,002: zp[2]:42 [ makechar::$7 ] 20,002: zp[2]:44 [ makechar::$8 ] 20,002: zp[2]:46 [ makechar::$10 ] 5,315.89: zp[1]:51 [ makechar::s#1 ] 2,593.09: zp[2]:52 [ makechar::c#3 makechar::c#2 ] 2,002: zp[1]:54 [ makechar::$9 ] -Uplift Scope [print_char] 160,007: zp[1]:32 [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] -Uplift Scope [print_uchar] 20,002: zp[1]:48 [ print_uchar::$0 ] 20,002: zp[1]:49 [ print_uchar::$2 ] 9,505: zp[1]:50 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] -Uplift Scope [print_uint] 701: zp[2]:55 [ print_uint::w#0 ] -Uplift Scope [main] 245.29: zp[2]:57 [ main::count#2 main::count#1 ] 22: zp[1]:63 [ main::tmp#1 ] 2.54: zp[1]:66 [ main::block#1 ] 2.44: zp[1]:67 [ main::v#1 ] +Uplift Scope [doplasma] 3,250,003.25: zp[1]:2 [ doplasma::j#3 doplasma::j#2 ] 2,000,002: zp[1]:3 [ doplasma::$6 ] 362,502.5: zp[1]:13 [ doplasma::jj#3 doplasma::jj#2 ] 292,382.59: zp[2]:14 [ doplasma::scrn#6 doplasma::scrn#0 doplasma::scrn#13 ] 266,669.33: zp[1]:18 [ doplasma::ii#3 doplasma::ii#2 ] 266,669.33: zp[1]:19 [ doplasma::i#3 doplasma::i#2 ] 200,002: zp[1]:26 [ doplasma::$3 ] 200,002: zp[1]:27 [ doplasma::$1 ] 160,001.6: zp[1]:29 [ doplasma::c1b#3 doplasma::c1b#2 ] 160,001.6: zp[1]:30 [ doplasma::c2b#3 doplasma::c2b#2 ] 141,668.08: zp[1]:31 [ doplasma::c1a#3 doplasma::c1a#2 ] 141,668.08: zp[1]:32 [ doplasma::c2a#3 doplasma::c2a#2 ] +Uplift Scope [rand] 2,000,002: zp[2]:4 [ rand::$0 ] 2,000,002: zp[2]:6 [ rand::$1 ] 2,000,002: zp[2]:8 [ rand::$2 ] 366,667.33: zp[2]:11 [ rand::return#0 ] 200,002: zp[2]:21 [ rand::return#2 ] +Uplift Scope [makechar] 378,185.68: zp[1]:10 [ makechar::b#3 makechar::b#7 makechar::b#2 ] 240,002.4: zp[1]:20 [ makechar::ii#3 makechar::ii#2 ] 200,002: zp[2]:23 [ makechar::$3 ] 200,002: zp[1]:25 [ makechar::$4 ] 22,355.18: zp[1]:37 [ makechar::i#3 makechar::i#2 ] 20,002: zp[2]:38 [ makechar::$7 ] 20,002: zp[2]:40 [ makechar::$8 ] 20,002: zp[2]:42 [ makechar::$10 ] 5,315.89: zp[1]:47 [ makechar::s#1 ] 2,593.09: zp[2]:48 [ makechar::c#3 makechar::c#2 ] 2,002: zp[1]:50 [ makechar::$9 ] +Uplift Scope [] 277,778.11: zp[2]:16 [ rand_state ] 120,787.22: zp[2]:33 [ print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] 35,003.5: zp[2]:35 [ print_line_cursor#9 print_line_cursor#0 ] 202: zp[2]:55 [ Ticks#1 ] 101: zp[2]:57 [ Ticks#0 ] 17.65: zp[2]:60 [ last_time ] +Uplift Scope [print_char] 160,007: zp[1]:28 [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] +Uplift Scope [print_uchar] 20,002: zp[1]:44 [ print_uchar::$0 ] 20,002: zp[1]:45 [ print_uchar::$2 ] 9,505: zp[1]:46 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] +Uplift Scope [print_uint] 701: zp[2]:51 [ print_uint::w#0 ] +Uplift Scope [main] 245.29: zp[2]:53 [ main::count#2 main::count#1 ] 22: zp[1]:59 [ main::tmp#1 ] 2.54: zp[1]:62 [ main::block#1 ] 2.44: zp[1]:63 [ main::v#1 ] Uplift Scope [print_ln] Uplift Scope [RADIX] Uplift Scope [MOS6526_CIA] @@ -2183,83 +2071,82 @@ Uplift Scope [start] Uplift Scope [end] Uplift Scope [__start] -Uplifting [doplasma] best 171110 combination reg byte y [ doplasma::j#3 doplasma::j#2 ] reg byte a [ doplasma::$6 ] reg byte x [ doplasma::jj#3 doplasma::jj#2 ] zp[2]:20 [ doplasma::scrn#6 doplasma::scrn#0 doplasma::scrn#13 ] zp[1]:22 [ doplasma::ii#3 doplasma::ii#2 ] zp[1]:23 [ doplasma::i#3 doplasma::i#2 ] zp[1]:30 [ doplasma::$3 ] zp[1]:31 [ doplasma::$1 ] zp[1]:33 [ doplasma::c1b#3 doplasma::c1b#2 ] zp[1]:34 [ doplasma::c2b#3 doplasma::c2b#2 ] zp[1]:35 [ doplasma::c1a#3 doplasma::c1a#2 ] zp[1]:36 [ doplasma::c2a#3 doplasma::c2a#2 ] +Uplifting [doplasma] best 171020 combination reg byte y [ doplasma::j#3 doplasma::j#2 ] reg byte a [ doplasma::$6 ] reg byte x [ doplasma::jj#3 doplasma::jj#2 ] zp[2]:14 [ doplasma::scrn#6 doplasma::scrn#0 doplasma::scrn#13 ] zp[1]:18 [ doplasma::ii#3 doplasma::ii#2 ] zp[1]:19 [ doplasma::i#3 doplasma::i#2 ] zp[1]:26 [ doplasma::$3 ] zp[1]:27 [ doplasma::$1 ] zp[1]:29 [ doplasma::c1b#3 doplasma::c1b#2 ] zp[1]:30 [ doplasma::c2b#3 doplasma::c2b#2 ] zp[1]:31 [ doplasma::c1a#3 doplasma::c1a#2 ] zp[1]:32 [ doplasma::c2a#3 doplasma::c2a#2 ] Limited combination testing to 100 combinations of 419904 possible. -Uplifting [rand] best 171110 combination zp[2]:4 [ rand::$0 ] zp[2]:6 [ rand::$1 ] zp[2]:8 [ rand::$2 ] zp[2]:17 [ rand::return#0 ] zp[2]:25 [ rand::return#2 ] -Uplifting [] best 171110 combination zp[2]:10 [ rand_state#0 ] zp[2]:12 [ rand_state#1 ] zp[2]:14 [ rand_state#14 rand_state#25 rand_state#19 rand_state#12 ] zp[2]:37 [ print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] zp[2]:39 [ print_line_cursor#9 print_line_cursor#0 ] zp[2]:59 [ Ticks#1 ] zp[2]:61 [ Ticks#0 ] zp[2]:64 [ last_time ] -Uplifting [makechar] best 154010 combination reg byte y [ makechar::b#3 makechar::b#7 makechar::b#2 ] reg byte x [ makechar::ii#3 makechar::ii#2 ] zp[2]:27 [ makechar::$3 ] zp[1]:29 [ makechar::$4 ] zp[1]:41 [ makechar::i#3 makechar::i#2 ] zp[2]:42 [ makechar::$7 ] zp[2]:44 [ makechar::$8 ] zp[2]:46 [ makechar::$10 ] zp[1]:51 [ makechar::s#1 ] zp[2]:52 [ makechar::c#3 makechar::c#2 ] zp[1]:54 [ makechar::$9 ] +Uplifting [rand] best 171020 combination zp[2]:4 [ rand::$0 ] zp[2]:6 [ rand::$1 ] zp[2]:8 [ rand::$2 ] zp[2]:11 [ rand::return#0 ] zp[2]:21 [ rand::return#2 ] +Uplifting [makechar] best 153920 combination reg byte y [ makechar::b#3 makechar::b#7 makechar::b#2 ] reg byte x [ makechar::ii#3 makechar::ii#2 ] zp[2]:23 [ makechar::$3 ] zp[1]:25 [ makechar::$4 ] zp[1]:37 [ makechar::i#3 makechar::i#2 ] zp[2]:38 [ makechar::$7 ] zp[2]:40 [ makechar::$8 ] zp[2]:42 [ makechar::$10 ] zp[1]:47 [ makechar::s#1 ] zp[2]:48 [ makechar::c#3 makechar::c#2 ] zp[1]:50 [ makechar::$9 ] Limited combination testing to 100 combinations of 576 possible. -Uplifting [print_char] best 154001 combination reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] -Uplifting [print_uchar] best 153983 combination reg byte a [ print_uchar::$0 ] reg byte x [ print_uchar::$2 ] reg byte x [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] -Uplifting [print_uint] best 153983 combination zp[2]:55 [ print_uint::w#0 ] -Uplifting [main] best 153977 combination zp[2]:57 [ main::count#2 main::count#1 ] reg byte a [ main::tmp#1 ] zp[1]:66 [ main::block#1 ] zp[1]:67 [ main::v#1 ] -Uplifting [print_ln] best 153977 combination -Uplifting [RADIX] best 153977 combination -Uplifting [MOS6526_CIA] best 153977 combination -Uplifting [MOS6569_VICII] best 153977 combination -Uplifting [MOS6581_SID] best 153977 combination -Uplifting [start] best 153977 combination -Uplifting [end] best 153977 combination -Uplifting [__start] best 153977 combination -Attempting to uplift remaining variables inzp[1]:22 [ doplasma::ii#3 doplasma::ii#2 ] -Uplifting [doplasma] best 153977 combination zp[1]:22 [ doplasma::ii#3 doplasma::ii#2 ] -Attempting to uplift remaining variables inzp[1]:23 [ doplasma::i#3 doplasma::i#2 ] -Uplifting [doplasma] best 153977 combination zp[1]:23 [ doplasma::i#3 doplasma::i#2 ] -Attempting to uplift remaining variables inzp[1]:29 [ makechar::$4 ] -Uplifting [makechar] best 153977 combination zp[1]:29 [ makechar::$4 ] -Attempting to uplift remaining variables inzp[1]:30 [ doplasma::$3 ] -Uplifting [doplasma] best 153377 combination reg byte a [ doplasma::$3 ] -Attempting to uplift remaining variables inzp[1]:31 [ doplasma::$1 ] -Uplifting [doplasma] best 152777 combination reg byte a [ doplasma::$1 ] -Attempting to uplift remaining variables inzp[1]:33 [ doplasma::c1b#3 doplasma::c1b#2 ] -Uplifting [doplasma] best 152777 combination zp[1]:33 [ doplasma::c1b#3 doplasma::c1b#2 ] -Attempting to uplift remaining variables inzp[1]:34 [ doplasma::c2b#3 doplasma::c2b#2 ] -Uplifting [doplasma] best 152777 combination zp[1]:34 [ doplasma::c2b#3 doplasma::c2b#2 ] -Attempting to uplift remaining variables inzp[1]:35 [ doplasma::c1a#3 doplasma::c1a#2 ] -Uplifting [doplasma] best 152777 combination zp[1]:35 [ doplasma::c1a#3 doplasma::c1a#2 ] -Attempting to uplift remaining variables inzp[1]:36 [ doplasma::c2a#3 doplasma::c2a#2 ] -Uplifting [doplasma] best 152777 combination zp[1]:36 [ doplasma::c2a#3 doplasma::c2a#2 ] -Attempting to uplift remaining variables inzp[1]:41 [ makechar::i#3 makechar::i#2 ] -Uplifting [makechar] best 152777 combination zp[1]:41 [ makechar::i#3 makechar::i#2 ] -Attempting to uplift remaining variables inzp[1]:51 [ makechar::s#1 ] -Uplifting [makechar] best 152777 combination zp[1]:51 [ makechar::s#1 ] -Attempting to uplift remaining variables inzp[1]:54 [ makechar::$9 ] -Uplifting [makechar] best 152717 combination reg byte x [ makechar::$9 ] -Attempting to uplift remaining variables inzp[1]:66 [ main::block#1 ] -Uplifting [main] best 152717 combination zp[1]:66 [ main::block#1 ] -Attempting to uplift remaining variables inzp[1]:67 [ main::v#1 ] -Uplifting [main] best 152717 combination zp[1]:67 [ main::v#1 ] -Coalescing zero page register [ zp[2]:14 [ rand_state#14 rand_state#25 rand_state#19 rand_state#12 ] ] with [ zp[2]:10 [ rand_state#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:14 [ rand_state#14 rand_state#25 rand_state#19 rand_state#12 rand_state#0 ] ] with [ zp[2]:12 [ rand_state#1 ] ] - score: 1 -Coalescing zero page register [ zp[2]:42 [ makechar::$7 ] ] with [ zp[2]:44 [ makechar::$8 ] ] - score: 1 -Coalescing zero page register [ zp[2]:25 [ rand::return#2 ] ] with [ zp[2]:27 [ makechar::$3 ] ] - score: 1 -Coalescing zero page register [ zp[2]:25 [ rand::return#2 makechar::$3 ] ] with [ zp[2]:17 [ rand::return#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:59 [ Ticks#1 ] ] with [ zp[2]:55 [ print_uint::w#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:42 [ makechar::$7 makechar::$8 ] ] with [ zp[2]:46 [ makechar::$10 ] ] - score: 1 -Coalescing zero page register [ zp[2]:14 [ rand_state#14 rand_state#25 rand_state#19 rand_state#12 rand_state#0 rand_state#1 ] ] with [ zp[2]:57 [ main::count#2 main::count#1 ] ] -Coalescing zero page register [ zp[1]:22 [ doplasma::ii#3 doplasma::ii#2 ] ] with [ zp[1]:41 [ makechar::i#3 makechar::i#2 ] ] -Coalescing zero page register [ zp[2]:20 [ doplasma::scrn#6 doplasma::scrn#0 doplasma::scrn#13 ] ] with [ zp[2]:52 [ makechar::c#3 makechar::c#2 ] ] -Coalescing zero page register [ zp[1]:51 [ makechar::s#1 ] ] with [ zp[1]:35 [ doplasma::c1a#3 doplasma::c1a#2 ] ] -Coalescing zero page register [ zp[2]:42 [ makechar::$7 makechar::$8 makechar::$10 ] ] with [ zp[2]:39 [ print_line_cursor#9 print_line_cursor#0 ] ] -Coalescing zero page register [ zp[2]:25 [ rand::return#2 makechar::$3 rand::return#0 ] ] with [ zp[2]:37 [ print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] ] -Coalescing zero page register [ zp[1]:29 [ makechar::$4 ] ] with [ zp[1]:33 [ doplasma::c1b#3 doplasma::c1b#2 ] ] -Coalescing zero page register [ zp[2]:4 [ rand::$0 ] ] with [ zp[2]:61 [ Ticks#0 ] ] -Coalescing zero page register [ zp[2]:6 [ rand::$1 ] ] with [ zp[2]:59 [ Ticks#1 print_uint::w#0 ] ] -Allocated (was zp[2]:14) zp[2]:2 [ rand_state#14 rand_state#25 rand_state#19 rand_state#12 rand_state#0 rand_state#1 main::count#2 main::count#1 ] -Allocated (was zp[2]:6) zp[2]:4 [ rand::$1 Ticks#1 print_uint::w#0 ] -Allocated (was zp[2]:4) zp[2]:6 [ rand::$0 Ticks#0 ] -Allocated (was zp[2]:25) zp[2]:10 [ rand::return#2 makechar::$3 rand::return#0 print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] -Allocated (was zp[1]:29) zp[1]:12 [ makechar::$4 doplasma::c1b#3 doplasma::c1b#2 ] -Allocated (was zp[2]:20) zp[2]:13 [ doplasma::scrn#6 doplasma::scrn#0 doplasma::scrn#13 makechar::c#3 makechar::c#2 ] -Allocated (was zp[1]:22) zp[1]:15 [ doplasma::ii#3 doplasma::ii#2 makechar::i#3 makechar::i#2 ] -Allocated (was zp[1]:23) zp[1]:16 [ doplasma::i#3 doplasma::i#2 ] -Allocated (was zp[1]:34) zp[1]:17 [ doplasma::c2b#3 doplasma::c2b#2 ] -Allocated (was zp[1]:51) zp[1]:18 [ makechar::s#1 doplasma::c1a#3 doplasma::c1a#2 ] -Allocated (was zp[1]:36) zp[1]:19 [ doplasma::c2a#3 doplasma::c2a#2 ] -Allocated (was zp[2]:42) zp[2]:20 [ makechar::$7 makechar::$8 makechar::$10 print_line_cursor#9 print_line_cursor#0 ] -Allocated (was zp[2]:64) zp[2]:22 [ last_time ] -Allocated (was zp[1]:66) zp[1]:24 [ main::block#1 ] -Allocated (was zp[1]:67) zp[1]:25 [ main::v#1 ] +Uplifting [] best 153920 combination zp[2]:16 [ rand_state ] zp[2]:33 [ print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] zp[2]:35 [ print_line_cursor#9 print_line_cursor#0 ] zp[2]:55 [ Ticks#1 ] zp[2]:57 [ Ticks#0 ] zp[2]:60 [ last_time ] +Uplifting [print_char] best 153911 combination reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] +Uplifting [print_uchar] best 153893 combination reg byte a [ print_uchar::$0 ] reg byte x [ print_uchar::$2 ] reg byte x [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] +Uplifting [print_uint] best 153893 combination zp[2]:51 [ print_uint::w#0 ] +Uplifting [main] best 153887 combination zp[2]:53 [ main::count#2 main::count#1 ] reg byte a [ main::tmp#1 ] zp[1]:62 [ main::block#1 ] zp[1]:63 [ main::v#1 ] +Uplifting [print_ln] best 153887 combination +Uplifting [RADIX] best 153887 combination +Uplifting [MOS6526_CIA] best 153887 combination +Uplifting [MOS6569_VICII] best 153887 combination +Uplifting [MOS6581_SID] best 153887 combination +Uplifting [start] best 153887 combination +Uplifting [end] best 153887 combination +Uplifting [__start] best 153887 combination +Attempting to uplift remaining variables inzp[1]:18 [ doplasma::ii#3 doplasma::ii#2 ] +Uplifting [doplasma] best 153887 combination zp[1]:18 [ doplasma::ii#3 doplasma::ii#2 ] +Attempting to uplift remaining variables inzp[1]:19 [ doplasma::i#3 doplasma::i#2 ] +Uplifting [doplasma] best 153887 combination zp[1]:19 [ doplasma::i#3 doplasma::i#2 ] +Attempting to uplift remaining variables inzp[1]:25 [ makechar::$4 ] +Uplifting [makechar] best 153887 combination zp[1]:25 [ makechar::$4 ] +Attempting to uplift remaining variables inzp[1]:26 [ doplasma::$3 ] +Uplifting [doplasma] best 153287 combination reg byte a [ doplasma::$3 ] +Attempting to uplift remaining variables inzp[1]:27 [ doplasma::$1 ] +Uplifting [doplasma] best 152687 combination reg byte a [ doplasma::$1 ] +Attempting to uplift remaining variables inzp[1]:29 [ doplasma::c1b#3 doplasma::c1b#2 ] +Uplifting [doplasma] best 152687 combination zp[1]:29 [ doplasma::c1b#3 doplasma::c1b#2 ] +Attempting to uplift remaining variables inzp[1]:30 [ doplasma::c2b#3 doplasma::c2b#2 ] +Uplifting [doplasma] best 152687 combination zp[1]:30 [ doplasma::c2b#3 doplasma::c2b#2 ] +Attempting to uplift remaining variables inzp[1]:31 [ doplasma::c1a#3 doplasma::c1a#2 ] +Uplifting [doplasma] best 152687 combination zp[1]:31 [ doplasma::c1a#3 doplasma::c1a#2 ] +Attempting to uplift remaining variables inzp[1]:32 [ doplasma::c2a#3 doplasma::c2a#2 ] +Uplifting [doplasma] best 152687 combination zp[1]:32 [ doplasma::c2a#3 doplasma::c2a#2 ] +Attempting to uplift remaining variables inzp[1]:37 [ makechar::i#3 makechar::i#2 ] +Uplifting [makechar] best 152687 combination zp[1]:37 [ makechar::i#3 makechar::i#2 ] +Attempting to uplift remaining variables inzp[1]:47 [ makechar::s#1 ] +Uplifting [makechar] best 152687 combination zp[1]:47 [ makechar::s#1 ] +Attempting to uplift remaining variables inzp[1]:50 [ makechar::$9 ] +Uplifting [makechar] best 152627 combination reg byte x [ makechar::$9 ] +Attempting to uplift remaining variables inzp[1]:62 [ main::block#1 ] +Uplifting [main] best 152627 combination zp[1]:62 [ main::block#1 ] +Attempting to uplift remaining variables inzp[1]:63 [ main::v#1 ] +Uplifting [main] best 152627 combination zp[1]:63 [ main::v#1 ] +Coalescing zero page register [ zp[2]:38 [ makechar::$7 ] ] with [ zp[2]:40 [ makechar::$8 ] ] - score: 1 +Coalescing zero page register [ zp[2]:21 [ rand::return#2 ] ] with [ zp[2]:23 [ makechar::$3 ] ] - score: 1 +Coalescing zero page register [ zp[2]:21 [ rand::return#2 makechar::$3 ] ] with [ zp[2]:11 [ rand::return#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:55 [ Ticks#1 ] ] with [ zp[2]:51 [ print_uint::w#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:38 [ makechar::$7 makechar::$8 ] ] with [ zp[2]:42 [ makechar::$10 ] ] - score: 1 +Coalescing zero page register [ zp[1]:18 [ doplasma::ii#3 doplasma::ii#2 ] ] with [ zp[1]:37 [ makechar::i#3 makechar::i#2 ] ] +Coalescing zero page register [ zp[2]:14 [ doplasma::scrn#6 doplasma::scrn#0 doplasma::scrn#13 ] ] with [ zp[2]:48 [ makechar::c#3 makechar::c#2 ] ] +Coalescing zero page register [ zp[2]:35 [ print_line_cursor#9 print_line_cursor#0 ] ] with [ zp[2]:53 [ main::count#2 main::count#1 ] ] +Coalescing zero page register [ zp[1]:47 [ makechar::s#1 ] ] with [ zp[1]:31 [ doplasma::c1a#3 doplasma::c1a#2 ] ] +Coalescing zero page register [ zp[2]:38 [ makechar::$7 makechar::$8 makechar::$10 ] ] with [ zp[2]:33 [ print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] ] +Coalescing zero page register [ zp[1]:25 [ makechar::$4 ] ] with [ zp[1]:29 [ doplasma::c1b#3 doplasma::c1b#2 ] ] +Coalescing zero page register [ zp[2]:57 [ Ticks#0 ] ] with [ zp[2]:21 [ rand::return#2 makechar::$3 rand::return#0 ] ] +Coalescing zero page register [ zp[2]:4 [ rand::$0 ] ] with [ zp[2]:55 [ Ticks#1 print_uint::w#0 ] ] +Allocated (was zp[2]:4) zp[2]:2 [ rand::$0 Ticks#1 print_uint::w#0 ] +Allocated (was zp[2]:6) zp[2]:4 [ rand::$1 ] +Allocated (was zp[2]:8) zp[2]:6 [ rand::$2 ] +Allocated (was zp[2]:57) zp[2]:8 [ Ticks#0 rand::return#2 makechar::$3 rand::return#0 ] +Allocated (was zp[1]:25) zp[1]:10 [ makechar::$4 doplasma::c1b#3 doplasma::c1b#2 ] +Allocated (was zp[2]:14) zp[2]:11 [ doplasma::scrn#6 doplasma::scrn#0 doplasma::scrn#13 makechar::c#3 makechar::c#2 ] +Allocated (was zp[1]:18) zp[1]:13 [ doplasma::ii#3 doplasma::ii#2 makechar::i#3 makechar::i#2 ] +Allocated (was zp[2]:16) zp[2]:14 [ rand_state ] +Allocated (was zp[1]:19) zp[1]:16 [ doplasma::i#3 doplasma::i#2 ] +Allocated (was zp[2]:38) zp[2]:17 [ makechar::$7 makechar::$8 makechar::$10 print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] +Allocated (was zp[1]:30) zp[1]:19 [ doplasma::c2b#3 doplasma::c2b#2 ] +Allocated (was zp[1]:47) zp[1]:20 [ makechar::s#1 doplasma::c1a#3 doplasma::c1a#2 ] +Allocated (was zp[1]:32) zp[1]:21 [ doplasma::c2a#3 doplasma::c2a#2 ] +Allocated (was zp[2]:35) zp[2]:22 [ print_line_cursor#9 print_line_cursor#0 main::count#2 main::count#1 ] +Allocated (was zp[2]:60) zp[2]:24 [ last_time ] +Allocated (was zp[1]:62) zp[1]:26 [ main::block#1 ] +Allocated (was zp[1]:63) zp[1]:27 [ main::v#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments @@ -2291,72 +2178,77 @@ ASSEMBLER BEFORE OPTIMIZATION .label SCREEN2 = $e400 .label CHARSET = $e800 .label print_screen = $400 - .label last_time = $16 - .label print_line_cursor = $14 // The random state variable - .label rand_state = 2 - .label Ticks = 6 - .label Ticks_1 = 4 - .label print_char_cursor = $a + .label rand_state = $e + .label last_time = $18 + .label print_line_cursor = $16 + .label Ticks = 8 + .label Ticks_1 = 2 + .label print_char_cursor = $11 .segment Code // __start __start: { jmp __init1 // __start::__init1 __init1: - // [1] last_time = 0 -- vwuz1=vwuc1 + // [1] rand_state = 1 -- vwuz1=vwuc1 + lda #<1 + sta.z rand_state + lda #>1 + sta.z rand_state+1 + // [2] last_time = 0 -- vwuz1=vwuc1 lda #<0 sta.z last_time lda #>0 sta.z last_time+1 - // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] + // [3] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: - // [3] call main - // [5] phi from __start::@1 to main [phi:__start::@1->main] + // [4] call main + // [6] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main jmp __breturn // __start::@return __breturn: - // [4] return + // [5] return rts } // main main: { - .label block = $18 - .label v = $19 - .label count = 2 - // [6] call makechar - // [25] phi from main to makechar [phi:main->makechar] + .label block = $1a + .label v = $1b + .label count = $16 + // [7] call makechar + // [26] phi from main to makechar [phi:main->makechar] makechar_from_main: jsr makechar - // [7] phi from main to main::@4 [phi:main->main::@4] + // [8] phi from main to main::@4 [phi:main->main::@4] __b4_from_main: jmp __b4 // main::@4 __b4: - // [8] call start + // [9] call start jsr start jmp __b5 // main::@5 __b5: - // [9] main::block#1 = *((char *)CIA2) -- vbuz1=_deref_pbuc1 + // [10] main::block#1 = *((char *)CIA2) -- vbuz1=_deref_pbuc1 lda CIA2 sta.z block - // [10] main::tmp#1 = main::block#1 & $fc -- vbuaa=vbuz1_band_vbuc1 + // [11] main::tmp#1 = main::block#1 & $fc -- vbuaa=vbuz1_band_vbuc1 lda #$fc and.z block - // [11] *((char *)CIA2) = main::tmp#1 -- _deref_pbuc1=vbuaa + // [12] *((char *)CIA2) = main::tmp#1 -- _deref_pbuc1=vbuaa sta CIA2 - // [12] main::v#1 = *VICII_MEMORY -- vbuz1=_deref_pbuc1 + // [13] main::v#1 = *VICII_MEMORY -- vbuz1=_deref_pbuc1 lda VICII_MEMORY sta.z v - // [13] phi from main::@5 to main::@1 [phi:main::@5->main::@1] + // [14] phi from main::@5 to main::@1 [phi:main::@5->main::@1] __b1_from___b5: - // [13] phi main::count#2 = $1f4 [phi:main::@5->main::@1#0] -- vwuz1=vwuc1 + // [14] phi main::count#2 = $1f4 [phi:main::@5->main::@1#0] -- vwuz1=vwuc1 lda #<$1f4 sta.z count lda #>$1f4 @@ -2365,37 +2257,37 @@ main: { /* Run the demo until a key was hit */ // main::@1 __b1: - // [14] if(0!=main::count#2) goto main::@2 -- 0_neq_vwuz1_then_la1 + // [15] if(0!=main::count#2) goto main::@2 -- 0_neq_vwuz1_then_la1 lda.z count ora.z count+1 bne __b2_from___b1 jmp __b3 // main::@3 __b3: - // [15] *VICII_MEMORY = main::v#1 -- _deref_pbuc1=vbuz1 + // [16] *VICII_MEMORY = main::v#1 -- _deref_pbuc1=vbuz1 lda.z v sta VICII_MEMORY - // [16] *((char *)CIA2) = main::block#1 -- _deref_pbuc1=vbuz1 + // [17] *((char *)CIA2) = main::block#1 -- _deref_pbuc1=vbuz1 lda.z block sta CIA2 - // [17] call end + // [18] call end /* Reset screen colors */ jsr end jmp __breturn // main::@return __breturn: - // [18] return + // [19] return rts - // [19] phi from main::@1 to main::@2 [phi:main::@1->main::@2] + // [20] phi from main::@1 to main::@2 [phi:main::@1->main::@2] __b2_from___b1: jmp __b2 // main::@2 __b2: - // [20] call doplasma + // [21] call doplasma /* Build page 1, then make it visible */ - // [61] phi from main::@2 to doplasma [phi:main::@2->doplasma] + // [62] phi from main::@2 to doplasma [phi:main::@2->doplasma] doplasma_from___b2: - // [61] phi doplasma::scrn#13 = SCREEN1 [phi:main::@2->doplasma#0] -- pbuz1=pbuc1 + // [62] phi doplasma::scrn#13 = SCREEN1 [phi:main::@2->doplasma#0] -- pbuz1=pbuc1 lda #SCREEN1 @@ -2404,14 +2296,14 @@ main: { jmp __b6 // main::@6 __b6: - // [21] *VICII_MEMORY = PAGE1 -- _deref_pbuc1=vbuc2 + // [22] *VICII_MEMORY = PAGE1 -- _deref_pbuc1=vbuc2 lda #PAGE1 sta VICII_MEMORY - // [22] call doplasma + // [23] call doplasma /* Build page 2, then make it visible */ - // [61] phi from main::@6 to doplasma [phi:main::@6->doplasma] + // [62] phi from main::@6 to doplasma [phi:main::@6->doplasma] doplasma_from___b6: - // [61] phi doplasma::scrn#13 = SCREEN2 [phi:main::@6->doplasma#0] -- pbuz1=pbuc1 + // [62] phi doplasma::scrn#13 = SCREEN2 [phi:main::@6->doplasma#0] -- pbuz1=pbuc1 lda #SCREEN2 @@ -2420,38 +2312,33 @@ main: { jmp __b7 // main::@7 __b7: - // [23] *VICII_MEMORY = PAGE2 -- _deref_pbuc1=vbuc2 + // [24] *VICII_MEMORY = PAGE2 -- _deref_pbuc1=vbuc2 lda #PAGE2 sta VICII_MEMORY - // [24] main::count#1 = -- main::count#2 -- vwuz1=_dec_vwuz1 + // [25] main::count#1 = -- main::count#2 -- vwuz1=_dec_vwuz1 lda.z count bne !+ dec.z count+1 !: dec.z count - // [13] phi from main::@7 to main::@1 [phi:main::@7->main::@1] + // [14] phi from main::@7 to main::@1 [phi:main::@7->main::@1] __b1_from___b7: - // [13] phi main::count#2 = main::count#1 [phi:main::@7->main::@1#0] -- register_copy + // [14] phi main::count#2 = main::count#1 [phi:main::@7->main::@1#0] -- register_copy jmp __b1 } // makechar makechar: { - .label __3 = $a - .label __4 = $c - .label __7 = $14 - .label __8 = $14 - .label s = $12 - .label c = $d - .label i = $f - .label __10 = $14 - // [26] phi from makechar to makechar::@1 [phi:makechar->makechar::@1] + .label __3 = 8 + .label __4 = $a + .label __7 = $11 + .label __8 = $11 + .label s = $14 + .label c = $b + .label i = $d + .label __10 = $11 + // [27] phi from makechar to makechar::@1 [phi:makechar->makechar::@1] __b1_from_makechar: - // [26] phi rand_state#14 = 1 [phi:makechar->makechar::@1#0] -- vwuz1=vwuc1 - lda #<1 - sta.z rand_state - lda #>1 - sta.z rand_state+1 - // [26] phi makechar::c#3 = 0 [phi:makechar->makechar::@1#1] -- vwuz1=vbuc1 + // [27] phi makechar::c#3 = 0 [phi:makechar->makechar::@1#0] -- vwuz1=vbuc1 lda #<0 sta.z c lda #>0 @@ -2459,7 +2346,7 @@ makechar: { jmp __b1 // makechar::@1 __b1: - // [27] if(makechar::c#3<$100) goto makechar::@2 -- vwuz1_lt_vwuc1_then_la1 + // [28] if(makechar::c#3<$100) goto makechar::@2 -- vwuz1_lt_vwuc1_then_la1 lda.z c+1 cmp #>$100 bcc __b2 @@ -2471,58 +2358,55 @@ makechar: { jmp __breturn // makechar::@return __breturn: - // [28] return + // [29] return rts // makechar::@2 __b2: - // [29] makechar::$9 = (char)makechar::c#3 -- vbuxx=_byte_vwuz1 + // [30] makechar::$9 = (char)makechar::c#3 -- vbuxx=_byte_vwuz1 ldx.z c - // [30] makechar::s#1 = sinetable[makechar::$9] -- vbuz1=pbuc1_derefidx_vbuxx + // [31] makechar::s#1 = sinetable[makechar::$9] -- vbuz1=pbuc1_derefidx_vbuxx lda sinetable,x sta.z s - // [31] phi from makechar::@2 to makechar::@3 [phi:makechar::@2->makechar::@3] + // [32] phi from makechar::@2 to makechar::@3 [phi:makechar::@2->makechar::@3] __b3_from___b2: - // [31] phi rand_state#25 = rand_state#14 [phi:makechar::@2->makechar::@3#0] -- register_copy - // [31] phi makechar::i#3 = 0 [phi:makechar::@2->makechar::@3#1] -- vbuz1=vbuc1 + // [32] phi makechar::i#3 = 0 [phi:makechar::@2->makechar::@3#0] -- vbuz1=vbuc1 lda #0 sta.z i jmp __b3 // makechar::@3 __b3: - // [32] if(makechar::i#3<8) goto makechar::@5 -- vbuz1_lt_vbuc1_then_la1 + // [33] if(makechar::i#3<8) goto makechar::@5 -- vbuz1_lt_vbuc1_then_la1 lda.z i cmp #8 bcc __b5_from___b3 jmp __b4 // makechar::@4 __b4: - // [33] makechar::c#2 = ++ makechar::c#3 -- vwuz1=_inc_vwuz1 + // [34] makechar::c#2 = ++ makechar::c#3 -- vwuz1=_inc_vwuz1 inc.z c bne !+ inc.z c+1 !: - // [26] phi from makechar::@4 to makechar::@1 [phi:makechar::@4->makechar::@1] + // [27] phi from makechar::@4 to makechar::@1 [phi:makechar::@4->makechar::@1] __b1_from___b4: - // [26] phi rand_state#14 = rand_state#25 [phi:makechar::@4->makechar::@1#0] -- register_copy - // [26] phi makechar::c#3 = makechar::c#2 [phi:makechar::@4->makechar::@1#1] -- register_copy + // [27] phi makechar::c#3 = makechar::c#2 [phi:makechar::@4->makechar::@1#0] -- register_copy jmp __b1 - // [34] phi from makechar::@3 to makechar::@5 [phi:makechar::@3->makechar::@5] + // [35] phi from makechar::@3 to makechar::@5 [phi:makechar::@3->makechar::@5] __b5_from___b3: - // [34] phi rand_state#19 = rand_state#25 [phi:makechar::@3->makechar::@5#0] -- register_copy - // [34] phi makechar::b#3 = 0 [phi:makechar::@3->makechar::@5#1] -- vbuyy=vbuc1 + // [35] phi makechar::b#3 = 0 [phi:makechar::@3->makechar::@5#0] -- vbuyy=vbuc1 ldy #0 - // [34] phi makechar::ii#3 = 0 [phi:makechar::@3->makechar::@5#2] -- vbuxx=vbuc1 + // [35] phi makechar::ii#3 = 0 [phi:makechar::@3->makechar::@5#1] -- vbuxx=vbuc1 ldx #0 jmp __b5 // makechar::@5 __b5: - // [35] if(makechar::ii#3<8) goto makechar::@6 -- vbuxx_lt_vbuc1_then_la1 + // [36] if(makechar::ii#3<8) goto makechar::@6 -- vbuxx_lt_vbuc1_then_la1 cpx #8 bcc __b6_from___b5 jmp __b7 // makechar::@7 __b7: - // [36] makechar::$7 = makechar::c#3 << 3 -- vwuz1=vwuz2_rol_3 + // [37] makechar::$7 = makechar::c#3 << 3 -- vwuz1=vwuz2_rol_3 lda.z c asl sta.z __7 @@ -2533,7 +2417,7 @@ makechar: { rol.z __7+1 asl.z __7 rol.z __7+1 - // [37] makechar::$8 = makechar::$7 + makechar::i#3 -- vwuz1=vwuz1_plus_vbuz2 + // [38] makechar::$8 = makechar::$7 + makechar::i#3 -- vwuz1=vwuz1_plus_vbuz2 lda.z i clc adc.z __8 @@ -2541,7 +2425,7 @@ makechar: { bcc !+ inc.z __8+1 !: - // [38] makechar::$10 = CHARSET + makechar::$8 -- pbuz1=pbuc1_plus_vwuz1 + // [39] makechar::$10 = CHARSET + makechar::$8 -- pbuz1=pbuc1_plus_vwuz1 lda.z __10 clc adc #CHARSET sta.z __10+1 - // [39] *makechar::$10 = makechar::b#3 -- _deref_pbuz1=vbuyy + // [40] *makechar::$10 = makechar::b#3 -- _deref_pbuz1=vbuyy tya ldy #0 sta (__10),y - // [40] makechar::i#2 = ++ makechar::i#3 -- vbuz1=_inc_vbuz1 + // [41] makechar::i#2 = ++ makechar::i#3 -- vbuz1=_inc_vbuz1 inc.z i - // [31] phi from makechar::@7 to makechar::@3 [phi:makechar::@7->makechar::@3] + // [32] phi from makechar::@7 to makechar::@3 [phi:makechar::@7->makechar::@3] __b3_from___b7: - // [31] phi rand_state#25 = rand_state#19 [phi:makechar::@7->makechar::@3#0] -- register_copy - // [31] phi makechar::i#3 = makechar::i#2 [phi:makechar::@7->makechar::@3#1] -- register_copy + // [32] phi makechar::i#3 = makechar::i#2 [phi:makechar::@7->makechar::@3#0] -- register_copy jmp __b3 - // [41] phi from makechar::@5 to makechar::@6 [phi:makechar::@5->makechar::@6] + // [42] phi from makechar::@5 to makechar::@6 [phi:makechar::@5->makechar::@6] __b6_from___b5: jmp __b6 // makechar::@6 __b6: - // [42] call rand + // [43] call rand jsr rand - // [43] rand::return#2 = rand::return#0 + // [44] rand::return#2 = rand::return#0 jmp __b10 // makechar::@10 __b10: - // [44] makechar::$3 = rand::return#2 - // [45] makechar::$4 = makechar::$3 & $ff -- vbuz1=vwuz2_band_vbuc1 + // [45] makechar::$3 = rand::return#2 + // [46] makechar::$4 = makechar::$3 & $ff -- vbuz1=vwuz2_band_vbuc1 lda #$ff and.z __3 sta.z __4 - // [46] if(makechar::$4<=makechar::s#1) goto makechar::@8 -- vbuz1_le_vbuz2_then_la1 + // [47] if(makechar::$4<=makechar::s#1) goto makechar::@8 -- vbuz1_le_vbuz2_then_la1 lda.z s cmp.z __4 bcs __b8_from___b10 jmp __b9 // makechar::@9 __b9: - // [47] makechar::b#2 = makechar::b#3 | bittab[makechar::ii#3] -- vbuyy=vbuyy_bor_pbuc1_derefidx_vbuxx + // [48] makechar::b#2 = makechar::b#3 | bittab[makechar::ii#3] -- vbuyy=vbuyy_bor_pbuc1_derefidx_vbuxx tya ora bittab,x tay - // [48] phi from makechar::@10 makechar::@9 to makechar::@8 [phi:makechar::@10/makechar::@9->makechar::@8] + // [49] phi from makechar::@10 makechar::@9 to makechar::@8 [phi:makechar::@10/makechar::@9->makechar::@8] __b8_from___b10: __b8_from___b9: - // [48] phi makechar::b#7 = makechar::b#3 [phi:makechar::@10/makechar::@9->makechar::@8#0] -- register_copy + // [49] phi makechar::b#7 = makechar::b#3 [phi:makechar::@10/makechar::@9->makechar::@8#0] -- register_copy jmp __b8 // makechar::@8 __b8: - // [49] makechar::ii#2 = ++ makechar::ii#3 -- vbuxx=_inc_vbuxx + // [50] makechar::ii#2 = ++ makechar::ii#3 -- vbuxx=_inc_vbuxx inx - // [34] phi from makechar::@8 to makechar::@5 [phi:makechar::@8->makechar::@5] + // [35] phi from makechar::@8 to makechar::@5 [phi:makechar::@8->makechar::@5] __b5_from___b8: - // [34] phi rand_state#19 = rand_state#12 [phi:makechar::@8->makechar::@5#0] -- register_copy - // [34] phi makechar::b#3 = makechar::b#7 [phi:makechar::@8->makechar::@5#1] -- register_copy - // [34] phi makechar::ii#3 = makechar::ii#2 [phi:makechar::@8->makechar::@5#2] -- register_copy + // [35] phi makechar::b#3 = makechar::b#7 [phi:makechar::@8->makechar::@5#0] -- register_copy + // [35] phi makechar::ii#3 = makechar::ii#2 [phi:makechar::@8->makechar::@5#1] -- register_copy jmp __b5 } // start @@ -2613,22 +2495,22 @@ start: { jmp __breturn // start::@return __breturn: - // [51] return + // [52] return rts } // end end: { - // [52] Ticks#0 = last_time -- vwuz1=vwuz2 + // [53] Ticks#0 = last_time -- vwuz1=vwuz2 lda.z last_time sta.z Ticks lda.z last_time+1 sta.z Ticks+1 - // [53] call start + // [54] call start jsr start jmp __b1 // end::@1 __b1: - // [54] last_time = last_time - Ticks#0 -- vwuz1=vwuz1_minus_vwuz2 + // [55] last_time = last_time - Ticks#0 -- vwuz1=vwuz1_minus_vwuz2 lda.z last_time sec sbc.z Ticks @@ -2636,107 +2518,107 @@ end: { lda.z last_time+1 sbc.z Ticks+1 sta.z last_time+1 - // [55] Ticks#1 = last_time -- vwuz1=vwuz2 + // [56] Ticks#1 = last_time -- vwuz1=vwuz2 lda.z last_time sta.z Ticks_1 lda.z last_time+1 sta.z Ticks_1+1 - // [56] print_uint::w#0 = Ticks#1 - // [57] call print_uint + // [57] print_uint::w#0 = Ticks#1 + // [58] call print_uint jsr print_uint - // [58] phi from end::@1 to end::@2 [phi:end::@1->end::@2] + // [59] phi from end::@1 to end::@2 [phi:end::@1->end::@2] __b2_from___b1: jmp __b2 // end::@2 __b2: - // [59] call print_ln - // [99] phi from end::@2 to print_ln [phi:end::@2->print_ln] + // [60] call print_ln + // [100] phi from end::@2 to print_ln [phi:end::@2->print_ln] print_ln_from___b2: jsr print_ln jmp __breturn // end::@return __breturn: - // [60] return + // [61] return rts } // doplasma -// void doplasma(__zp($d) char *scrn) +// void doplasma(__zp($b) char *scrn) doplasma: { .const c2A = 0 .const c2B = 0 - .label c1a = $12 - .label c1b = $c - .label ii = $f - .label c2a = $13 - .label c2b = $11 + .label c1a = $14 + .label c1b = $a + .label ii = $d + .label c2a = $15 + .label c2b = $13 .label i = $10 - .label scrn = $d - // [62] phi from doplasma to doplasma::@1 [phi:doplasma->doplasma::@1] + .label scrn = $b + // [63] phi from doplasma to doplasma::@1 [phi:doplasma->doplasma::@1] __b1_from_doplasma: - // [62] phi doplasma::c1b#3 = 0 [phi:doplasma->doplasma::@1#0] -- vbuz1=vbuc1 + // [63] phi doplasma::c1b#3 = 0 [phi:doplasma->doplasma::@1#0] -- vbuz1=vbuc1 lda #0 sta.z c1b - // [62] phi doplasma::c1a#3 = 0 [phi:doplasma->doplasma::@1#1] -- vbuz1=vbuc1 + // [63] phi doplasma::c1a#3 = 0 [phi:doplasma->doplasma::@1#1] -- vbuz1=vbuc1 lda #0 sta.z c1a - // [62] phi doplasma::ii#3 = 0 [phi:doplasma->doplasma::@1#2] -- vbuz1=vbuc1 + // [63] phi doplasma::ii#3 = 0 [phi:doplasma->doplasma::@1#2] -- vbuz1=vbuc1 lda #0 sta.z ii jmp __b1 // doplasma::@1 __b1: - // [63] if(doplasma::ii#3<$19) goto doplasma::@2 -- vbuz1_lt_vbuc1_then_la1 + // [64] if(doplasma::ii#3<$19) goto doplasma::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z ii cmp #$19 bcc __b2 - // [64] phi from doplasma::@1 to doplasma::@3 [phi:doplasma::@1->doplasma::@3] + // [65] phi from doplasma::@1 to doplasma::@3 [phi:doplasma::@1->doplasma::@3] __b3_from___b1: - // [64] phi doplasma::c2b#3 = doplasma::c2B#0 [phi:doplasma::@1->doplasma::@3#0] -- vbuz1=vbuc1 + // [65] phi doplasma::c2b#3 = doplasma::c2B#0 [phi:doplasma::@1->doplasma::@3#0] -- vbuz1=vbuc1 lda #c2B sta.z c2b - // [64] phi doplasma::c2a#3 = doplasma::c2A#0 [phi:doplasma::@1->doplasma::@3#1] -- vbuz1=vbuc1 + // [65] phi doplasma::c2a#3 = doplasma::c2A#0 [phi:doplasma::@1->doplasma::@3#1] -- vbuz1=vbuc1 lda #c2A sta.z c2a - // [64] phi doplasma::i#3 = 0 [phi:doplasma::@1->doplasma::@3#2] -- vbuz1=vbuc1 + // [65] phi doplasma::i#3 = 0 [phi:doplasma::@1->doplasma::@3#2] -- vbuz1=vbuc1 lda #0 sta.z i jmp __b3 // doplasma::@3 __b3: - // [65] if(doplasma::i#3<$28) goto doplasma::@4 -- vbuz1_lt_vbuc1_then_la1 + // [66] if(doplasma::i#3<$28) goto doplasma::@4 -- vbuz1_lt_vbuc1_then_la1 lda.z i cmp #$28 bcc __b4 - // [66] phi from doplasma::@3 to doplasma::@5 [phi:doplasma::@3->doplasma::@5] + // [67] phi from doplasma::@3 to doplasma::@5 [phi:doplasma::@3->doplasma::@5] __b5_from___b3: - // [66] phi doplasma::scrn#6 = doplasma::scrn#13 [phi:doplasma::@3->doplasma::@5#0] -- register_copy - // [66] phi doplasma::jj#3 = 0 [phi:doplasma::@3->doplasma::@5#1] -- vbuxx=vbuc1 + // [67] phi doplasma::scrn#6 = doplasma::scrn#13 [phi:doplasma::@3->doplasma::@5#0] -- register_copy + // [67] phi doplasma::jj#3 = 0 [phi:doplasma::@3->doplasma::@5#1] -- vbuxx=vbuc1 ldx #0 jmp __b5 // doplasma::@5 __b5: - // [67] if(doplasma::jj#3<$19) goto doplasma::@6 -- vbuxx_lt_vbuc1_then_la1 + // [68] if(doplasma::jj#3<$19) goto doplasma::@6 -- vbuxx_lt_vbuc1_then_la1 cpx #$19 bcc __b6_from___b5 jmp __breturn // doplasma::@return __breturn: - // [68] return + // [69] return rts - // [69] phi from doplasma::@5 to doplasma::@6 [phi:doplasma::@5->doplasma::@6] + // [70] phi from doplasma::@5 to doplasma::@6 [phi:doplasma::@5->doplasma::@6] __b6_from___b5: - // [69] phi doplasma::j#3 = 0 [phi:doplasma::@5->doplasma::@6#0] -- vbuyy=vbuc1 + // [70] phi doplasma::j#3 = 0 [phi:doplasma::@5->doplasma::@6#0] -- vbuyy=vbuc1 ldy #0 jmp __b6 // doplasma::@6 __b6: - // [70] if(doplasma::j#3<$28) goto doplasma::@7 -- vbuyy_lt_vbuc1_then_la1 + // [71] if(doplasma::j#3<$28) goto doplasma::@7 -- vbuyy_lt_vbuc1_then_la1 cpy #$28 bcc __b7 jmp __b8 // doplasma::@8 __b8: - // [71] doplasma::scrn#0 = doplasma::scrn#6 + $28 -- pbuz1=pbuz1_plus_vbuc1 + // [72] doplasma::scrn#0 = doplasma::scrn#6 + $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z scrn @@ -2744,80 +2626,80 @@ doplasma: { bcc !+ inc.z scrn+1 !: - // [72] doplasma::jj#2 = ++ doplasma::jj#3 -- vbuxx=_inc_vbuxx + // [73] doplasma::jj#2 = ++ doplasma::jj#3 -- vbuxx=_inc_vbuxx inx - // [66] phi from doplasma::@8 to doplasma::@5 [phi:doplasma::@8->doplasma::@5] + // [67] phi from doplasma::@8 to doplasma::@5 [phi:doplasma::@8->doplasma::@5] __b5_from___b8: - // [66] phi doplasma::scrn#6 = doplasma::scrn#0 [phi:doplasma::@8->doplasma::@5#0] -- register_copy - // [66] phi doplasma::jj#3 = doplasma::jj#2 [phi:doplasma::@8->doplasma::@5#1] -- register_copy + // [67] phi doplasma::scrn#6 = doplasma::scrn#0 [phi:doplasma::@8->doplasma::@5#0] -- register_copy + // [67] phi doplasma::jj#3 = doplasma::jj#2 [phi:doplasma::@8->doplasma::@5#1] -- register_copy jmp __b5 // doplasma::@7 __b7: - // [73] doplasma::$6 = xbuf[doplasma::j#3] + ybuf[doplasma::jj#3] -- vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx + // [74] doplasma::$6 = xbuf[doplasma::j#3] + ybuf[doplasma::jj#3] -- vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx lda xbuf,y clc adc ybuf,x - // [74] doplasma::scrn#6[doplasma::j#3] = doplasma::$6 -- pbuz1_derefidx_vbuyy=vbuaa + // [75] doplasma::scrn#6[doplasma::j#3] = doplasma::$6 -- pbuz1_derefidx_vbuyy=vbuaa sta (scrn),y - // [75] doplasma::j#2 = ++ doplasma::j#3 -- vbuyy=_inc_vbuyy + // [76] doplasma::j#2 = ++ doplasma::j#3 -- vbuyy=_inc_vbuyy iny - // [69] phi from doplasma::@7 to doplasma::@6 [phi:doplasma::@7->doplasma::@6] + // [70] phi from doplasma::@7 to doplasma::@6 [phi:doplasma::@7->doplasma::@6] __b6_from___b7: - // [69] phi doplasma::j#3 = doplasma::j#2 [phi:doplasma::@7->doplasma::@6#0] -- register_copy + // [70] phi doplasma::j#3 = doplasma::j#2 [phi:doplasma::@7->doplasma::@6#0] -- register_copy jmp __b6 // doplasma::@4 __b4: - // [76] doplasma::$3 = sinetable[doplasma::c2a#3] + sinetable[doplasma::c2b#3] -- vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2 + // [77] doplasma::$3 = sinetable[doplasma::c2a#3] + sinetable[doplasma::c2b#3] -- vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2 ldy.z c2a lda sinetable,y ldy.z c2b clc adc sinetable,y - // [77] xbuf[doplasma::i#3] = doplasma::$3 -- pbuc1_derefidx_vbuz1=vbuaa + // [78] xbuf[doplasma::i#3] = doplasma::$3 -- pbuc1_derefidx_vbuz1=vbuaa ldy.z i sta xbuf,y - // [78] doplasma::c2a#2 = doplasma::c2a#3 + 3 -- vbuz1=vbuz1_plus_vbuc1 + // [79] doplasma::c2a#2 = doplasma::c2a#3 + 3 -- vbuz1=vbuz1_plus_vbuc1 lax.z c2a axs #-[3] stx.z c2a - // [79] doplasma::c2b#2 = doplasma::c2b#3 + 7 -- vbuz1=vbuz1_plus_vbuc1 + // [80] doplasma::c2b#2 = doplasma::c2b#3 + 7 -- vbuz1=vbuz1_plus_vbuc1 lax.z c2b axs #-[7] stx.z c2b - // [80] doplasma::i#2 = ++ doplasma::i#3 -- vbuz1=_inc_vbuz1 + // [81] doplasma::i#2 = ++ doplasma::i#3 -- vbuz1=_inc_vbuz1 inc.z i - // [64] phi from doplasma::@4 to doplasma::@3 [phi:doplasma::@4->doplasma::@3] + // [65] phi from doplasma::@4 to doplasma::@3 [phi:doplasma::@4->doplasma::@3] __b3_from___b4: - // [64] phi doplasma::c2b#3 = doplasma::c2b#2 [phi:doplasma::@4->doplasma::@3#0] -- register_copy - // [64] phi doplasma::c2a#3 = doplasma::c2a#2 [phi:doplasma::@4->doplasma::@3#1] -- register_copy - // [64] phi doplasma::i#3 = doplasma::i#2 [phi:doplasma::@4->doplasma::@3#2] -- register_copy + // [65] phi doplasma::c2b#3 = doplasma::c2b#2 [phi:doplasma::@4->doplasma::@3#0] -- register_copy + // [65] phi doplasma::c2a#3 = doplasma::c2a#2 [phi:doplasma::@4->doplasma::@3#1] -- register_copy + // [65] phi doplasma::i#3 = doplasma::i#2 [phi:doplasma::@4->doplasma::@3#2] -- register_copy jmp __b3 // doplasma::@2 __b2: - // [81] doplasma::$1 = sinetable[doplasma::c1a#3] + sinetable[doplasma::c1b#3] -- vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2 + // [82] doplasma::$1 = sinetable[doplasma::c1a#3] + sinetable[doplasma::c1b#3] -- vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2 ldy.z c1a lda sinetable,y ldy.z c1b clc adc sinetable,y - // [82] ybuf[doplasma::ii#3] = doplasma::$1 -- pbuc1_derefidx_vbuz1=vbuaa + // [83] ybuf[doplasma::ii#3] = doplasma::$1 -- pbuc1_derefidx_vbuz1=vbuaa ldy.z ii sta ybuf,y - // [83] doplasma::c1a#2 = doplasma::c1a#3 + 4 -- vbuz1=vbuz1_plus_vbuc1 + // [84] doplasma::c1a#2 = doplasma::c1a#3 + 4 -- vbuz1=vbuz1_plus_vbuc1 lax.z c1a axs #-[4] stx.z c1a - // [84] doplasma::c1b#2 = doplasma::c1b#3 + 9 -- vbuz1=vbuz1_plus_vbuc1 + // [85] doplasma::c1b#2 = doplasma::c1b#3 + 9 -- vbuz1=vbuz1_plus_vbuc1 lax.z c1b axs #-[9] stx.z c1b - // [85] doplasma::ii#2 = ++ doplasma::ii#3 -- vbuz1=_inc_vbuz1 + // [86] doplasma::ii#2 = ++ doplasma::ii#3 -- vbuz1=_inc_vbuz1 inc.z ii - // [62] phi from doplasma::@2 to doplasma::@1 [phi:doplasma::@2->doplasma::@1] + // [63] phi from doplasma::@2 to doplasma::@1 [phi:doplasma::@2->doplasma::@1] __b1_from___b2: - // [62] phi doplasma::c1b#3 = doplasma::c1b#2 [phi:doplasma::@2->doplasma::@1#0] -- register_copy - // [62] phi doplasma::c1a#3 = doplasma::c1a#2 [phi:doplasma::@2->doplasma::@1#1] -- register_copy - // [62] phi doplasma::ii#3 = doplasma::ii#2 [phi:doplasma::@2->doplasma::@1#2] -- register_copy + // [63] phi doplasma::c1b#3 = doplasma::c1b#2 [phi:doplasma::@2->doplasma::@1#0] -- register_copy + // [63] phi doplasma::c1a#3 = doplasma::c1a#2 [phi:doplasma::@2->doplasma::@1#1] -- register_copy + // [63] phi doplasma::ii#3 = doplasma::ii#2 [phi:doplasma::@2->doplasma::@1#2] -- register_copy jmp __b1 } // rand @@ -2826,11 +2708,11 @@ doplasma: { // Information https://en.wikipedia.org/wiki/Xorshift // Source http://www.retroprogramming.com/2017/07/xorshift-pseudorandom-numbers-in-z80.html rand: { - .label __0 = 6 + .label __0 = 2 .label __1 = 4 - .label __2 = 8 - .label return = $a - // [86] rand::$0 = rand_state#19 << 7 -- vwuz1=vwuz2_rol_7 + .label __2 = 6 + .label return = 8 + // [87] rand::$0 = rand_state << 7 -- vwuz1=vwuz2_rol_7 lda.z rand_state+1 lsr lda.z rand_state @@ -2839,39 +2721,39 @@ rand: { lda #0 ror sta.z __0 - // [87] rand_state#0 = rand_state#19 ^ rand::$0 -- vwuz1=vwuz1_bxor_vwuz2 + // [88] rand_state = rand_state ^ rand::$0 -- vwuz1=vwuz1_bxor_vwuz2 lda.z rand_state eor.z __0 sta.z rand_state lda.z rand_state+1 eor.z __0+1 sta.z rand_state+1 - // [88] rand::$1 = rand_state#0 >> 9 -- vwuz1=vwuz2_ror_9 + // [89] rand::$1 = rand_state >> 9 -- vwuz1=vwuz2_ror_9 lda.z rand_state+1 lsr sta.z __1 lda #0 sta.z __1+1 - // [89] rand_state#1 = rand_state#0 ^ rand::$1 -- vwuz1=vwuz1_bxor_vwuz2 + // [90] rand_state = rand_state ^ rand::$1 -- vwuz1=vwuz1_bxor_vwuz2 lda.z rand_state eor.z __1 sta.z rand_state lda.z rand_state+1 eor.z __1+1 sta.z rand_state+1 - // [90] rand::$2 = rand_state#1 << 8 -- vwuz1=vwuz2_rol_8 + // [91] rand::$2 = rand_state << 8 -- vwuz1=vwuz2_rol_8 lda.z rand_state sta.z __2+1 lda #0 sta.z __2 - // [91] rand_state#12 = rand_state#1 ^ rand::$2 -- vwuz1=vwuz1_bxor_vwuz2 + // [92] rand_state = rand_state ^ rand::$2 -- vwuz1=vwuz1_bxor_vwuz2 lda.z rand_state eor.z __2 sta.z rand_state lda.z rand_state+1 eor.z __2+1 sta.z rand_state+1 - // [92] rand::return#0 = rand_state#12 -- vwuz1=vwuz2 + // [93] rand::return#0 = rand_state -- vwuz1=vwuz2 lda.z rand_state sta.z return lda.z rand_state+1 @@ -2879,61 +2761,61 @@ rand: { jmp __breturn // rand::@return __breturn: - // [93] return + // [94] return rts } // print_uint // Print a unsigned int as HEX -// void print_uint(__zp(4) unsigned int w) +// void print_uint(__zp(2) unsigned int w) print_uint: { - .label w = 4 - // [94] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 + .label w = 2 + // [95] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [95] call print_uchar - // [104] phi from print_uint to print_uchar [phi:print_uint->print_uchar] + // [96] call print_uchar + // [105] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: - // [104] phi print_char_cursor#37 = print_screen#0 [phi:print_uint->print_uchar#0] -- pbuz1=pbuc1 + // [105] phi print_char_cursor#37 = print_screen#0 [phi:print_uint->print_uchar#0] -- pbuz1=pbuc1 lda #print_screen sta.z print_char_cursor+1 - // [104] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy + // [105] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy jsr print_uchar jmp __b1 // print_uint::@1 __b1: - // [96] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 + // [97] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [97] call print_uchar - // [104] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] + // [98] call print_uchar + // [105] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: - // [104] phi print_char_cursor#37 = print_char_cursor#27 [phi:print_uint::@1->print_uchar#0] -- register_copy - // [104] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy + // [105] phi print_char_cursor#37 = print_char_cursor#27 [phi:print_uint::@1->print_uchar#0] -- register_copy + // [105] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy jsr print_uchar jmp __breturn // print_uint::@return __breturn: - // [98] return + // [99] return rts } // print_ln // Print a newline print_ln: { - // [100] phi from print_ln to print_ln::@1 [phi:print_ln->print_ln::@1] + // [101] phi from print_ln to print_ln::@1 [phi:print_ln->print_ln::@1] __b1_from_print_ln: - // [100] phi print_line_cursor#9 = print_screen#0 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 + // [101] phi print_line_cursor#9 = print_screen#0 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 lda #print_screen sta.z print_line_cursor+1 jmp __b1 - // [100] phi from print_ln::@1 to print_ln::@1 [phi:print_ln::@1->print_ln::@1] + // [101] phi from print_ln::@1 to print_ln::@1 [phi:print_ln::@1->print_ln::@1] __b1_from___b1: - // [100] phi print_line_cursor#9 = print_line_cursor#0 [phi:print_ln::@1->print_ln::@1#0] -- register_copy + // [101] phi print_line_cursor#9 = print_line_cursor#0 [phi:print_ln::@1->print_ln::@1#0] -- register_copy jmp __b1 // print_ln::@1 __b1: - // [101] print_line_cursor#0 = print_line_cursor#9 + $28 -- pbuz1=pbuz1_plus_vbuc1 + // [102] print_line_cursor#0 = print_line_cursor#9 + $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z print_line_cursor @@ -2941,7 +2823,7 @@ print_ln: { bcc !+ inc.z print_line_cursor+1 !: - // [102] if(print_line_cursor#0> 4 -- vbuaa=vbuxx_ror_4 + // [106] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa lsr lsr lsr lsr - // [106] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa + // [107] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [107] call print_char + // [108] call print_char // Table of hexadecimal digits - // [112] phi from print_uchar to print_char [phi:print_uchar->print_char] + // [113] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: - // [112] phi print_char_cursor#26 = print_char_cursor#37 [phi:print_uchar->print_char#0] -- register_copy - // [112] phi print_char::ch#2 = print_char::ch#0 [phi:print_uchar->print_char#1] -- register_copy + // [113] phi print_char_cursor#26 = print_char_cursor#37 [phi:print_uchar->print_char#0] -- register_copy + // [113] phi print_char::ch#2 = print_char::ch#0 [phi:print_uchar->print_char#1] -- register_copy jsr print_char jmp __b1 // print_uchar::@1 __b1: - // [108] print_uchar::$2 = print_uchar::b#2 & $f -- vbuxx=vbuxx_band_vbuc1 + // [109] print_uchar::$2 = print_uchar::b#2 & $f -- vbuxx=vbuxx_band_vbuc1 lda #$f axs #0 - // [109] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx + // [110] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [110] call print_char - // [112] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] + // [111] call print_char + // [113] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: - // [112] phi print_char_cursor#26 = print_char_cursor#27 [phi:print_uchar::@1->print_char#0] -- register_copy - // [112] phi print_char::ch#2 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy + // [113] phi print_char_cursor#26 = print_char_cursor#27 [phi:print_uchar::@1->print_char#0] -- register_copy + // [113] phi print_char::ch#2 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy jsr print_char jmp __breturn // print_uchar::@return __breturn: - // [111] return + // [112] return rts } // print_char // Print a single char // void print_char(__register(A) char ch) print_char: { - // [113] *print_char_cursor#26 = print_char::ch#2 -- _deref_pbuz1=vbuaa + // [114] *print_char_cursor#26 = print_char::ch#2 -- _deref_pbuz1=vbuaa ldy #0 sta (print_char_cursor),y - // [114] print_char_cursor#27 = ++ print_char_cursor#26 -- pbuz1=_inc_pbuz1 + // [115] print_char_cursor#27 = ++ print_char_cursor#26 -- pbuz1=_inc_pbuz1 inc.z print_char_cursor bne !+ inc.z print_char_cursor+1 @@ -3011,7 +2893,7 @@ print_char: { jmp __breturn // print_char::@return __breturn: - // [115] return + // [116] return rts } // File Data @@ -3064,9 +2946,9 @@ Removing instruction jmp __b1 Removing instruction jmp __breturn Removing instruction jmp __breturn Succesful ASM optimization Pass5NextJumpElimination -Removing instruction lda #>0 Removing instruction lda #<0 Removing instruction lda #>0 +Removing instruction lda #>0 Removing instruction lda #0 Removing instruction lda #0 Removing instruction lda.z rand_state+1 @@ -3155,8 +3037,8 @@ __constant char RADIX::OCTAL = 8 __constant char * const SCREEN1 = (char *) 57344 __constant char * const SCREEN2 = (char *) 58368 unsigned int Ticks -unsigned int Ticks#0 // Ticks zp[2]:6 101.0 -unsigned int Ticks#1 // Ticks_1 zp[2]:4 202.0 +unsigned int Ticks#0 // Ticks zp[2]:8 101.0 +unsigned int Ticks#1 // Ticks_1 zp[2]:2 202.0 __constant char * const VICII_MEMORY = (char *) 53272 void __start() __constant const char bittab[] = { 1, 2, 4, 8, $10, $20, $40, $80 } @@ -3167,27 +3049,27 @@ char doplasma::$6 // reg byte a 2000002.0 char doplasma::c1A char doplasma::c1B char doplasma::c1a -char doplasma::c1a#2 // c1a zp[1]:18 66667.33333333333 -char doplasma::c1a#3 // c1a zp[1]:18 75000.75 +char doplasma::c1a#2 // c1a zp[1]:20 66667.33333333333 +char doplasma::c1a#3 // c1a zp[1]:20 75000.75 char doplasma::c1b -char doplasma::c1b#2 // c1b zp[1]:12 100001.0 -char doplasma::c1b#3 // c1b zp[1]:12 60000.600000000006 +char doplasma::c1b#2 // c1b zp[1]:10 100001.0 +char doplasma::c1b#3 // c1b zp[1]:10 60000.600000000006 char doplasma::c2A __constant char doplasma::c2A#0 = 0 // c2A char doplasma::c2B __constant char doplasma::c2B#0 = 0 // c2B char doplasma::c2a -char doplasma::c2a#2 // c2a zp[1]:19 66667.33333333333 -char doplasma::c2a#3 // c2a zp[1]:19 75000.75 +char doplasma::c2a#2 // c2a zp[1]:21 66667.33333333333 +char doplasma::c2a#3 // c2a zp[1]:21 75000.75 char doplasma::c2b -char doplasma::c2b#2 // c2b zp[1]:17 100001.0 -char doplasma::c2b#3 // c2b zp[1]:17 60000.600000000006 +char doplasma::c2b#2 // c2b zp[1]:19 100001.0 +char doplasma::c2b#3 // c2b zp[1]:19 60000.600000000006 char doplasma::i char doplasma::i#2 // i zp[1]:16 200002.0 char doplasma::i#3 // i zp[1]:16 66667.33333333333 char doplasma::ii -char doplasma::ii#2 // ii zp[1]:15 200002.0 -char doplasma::ii#3 // ii zp[1]:15 66667.33333333333 +char doplasma::ii#2 // ii zp[1]:13 200002.0 +char doplasma::ii#3 // ii zp[1]:13 66667.33333333333 char doplasma::j char doplasma::j#2 // reg byte y 2000002.0 char doplasma::j#3 // reg byte y 1250001.25 @@ -3195,57 +3077,57 @@ char doplasma::jj char doplasma::jj#2 // reg byte x 200002.0 char doplasma::jj#3 // reg byte x 162500.5 char *doplasma::scrn -char *doplasma::scrn#0 // scrn zp[2]:13 100001.0 -char *doplasma::scrn#13 // scrn zp[2]:13 6666.733333333334 -char *doplasma::scrn#6 // scrn zp[2]:13 185714.85714285713 +char *doplasma::scrn#0 // scrn zp[2]:11 100001.0 +char *doplasma::scrn#13 // scrn zp[2]:11 6666.733333333334 +char *doplasma::scrn#6 // scrn zp[2]:11 185714.85714285713 void end() -__loadstore volatile unsigned int last_time // zp[2]:22 17.652173913043477 +__loadstore volatile unsigned int last_time // zp[2]:24 17.652173913043477 int main() char main::block -char main::block#1 // block zp[1]:24 2.5384615384615383 +char main::block#1 // block zp[1]:26 2.5384615384615383 unsigned int main::count -unsigned int main::count#1 // count zp[2]:2 202.0 -unsigned int main::count#2 // count zp[2]:2 43.285714285714285 +unsigned int main::count#1 // count zp[2]:22 202.0 +unsigned int main::count#2 // count zp[2]:22 43.285714285714285 int main::return char main::tmp char main::tmp#1 // reg byte a 22.0 char main::v -char main::v#1 // v zp[1]:25 2.4444444444444446 +char main::v#1 // v zp[1]:27 2.4444444444444446 void makechar() -char *makechar::$10 // zp[2]:20 20002.0 -unsigned int makechar::$3 // zp[2]:10 200002.0 -char makechar::$4 // zp[1]:12 200002.0 -unsigned int makechar::$7 // zp[2]:20 20002.0 -unsigned int makechar::$8 // zp[2]:20 20002.0 +char *makechar::$10 // zp[2]:17 20002.0 +unsigned int makechar::$3 // zp[2]:8 200002.0 +char makechar::$4 // zp[1]:10 200002.0 +unsigned int makechar::$7 // zp[2]:17 20002.0 +unsigned int makechar::$8 // zp[2]:17 20002.0 char makechar::$9 // reg byte x 2002.0 char makechar::b char makechar::b#2 // reg byte y 200002.0 char makechar::b#3 // reg byte y 28182.181818181816 char makechar::b#7 // reg byte y 150001.5 unsigned int makechar::c -unsigned int makechar::c#2 // c zp[2]:13 2002.0 -unsigned int makechar::c#3 // c zp[2]:13 591.090909090909 +unsigned int makechar::c#2 // c zp[2]:11 2002.0 +unsigned int makechar::c#3 // c zp[2]:11 591.090909090909 char makechar::i -char makechar::i#2 // i zp[1]:15 20002.0 -char makechar::i#3 // i zp[1]:15 2353.176470588235 +char makechar::i#2 // i zp[1]:13 20002.0 +char makechar::i#3 // i zp[1]:13 2353.176470588235 char makechar::ii char makechar::ii#2 // reg byte x 200002.0 char makechar::ii#3 // reg byte x 40000.4 char makechar::s -char makechar::s#1 // s zp[1]:18 5315.894736842105 +char makechar::s#1 // s zp[1]:20 5315.894736842105 void print_char(char ch) char print_char::ch char print_char::ch#0 // reg byte a 20002.0 char print_char::ch#1 // reg byte a 20002.0 char print_char::ch#2 // reg byte a 120003.0 char *print_char_cursor -char *print_char_cursor#26 // print_char_cursor zp[2]:10 110002.0 -char *print_char_cursor#27 // print_char_cursor zp[2]:10 7117.882352941177 -char *print_char_cursor#37 // print_char_cursor zp[2]:10 3667.333333333333 +char *print_char_cursor#26 // print_char_cursor zp[2]:17 110002.0 +char *print_char_cursor#27 // print_char_cursor zp[2]:17 7117.882352941177 +char *print_char_cursor#37 // print_char_cursor zp[2]:17 3667.333333333333 __constant const char print_hextab[] = "0123456789abcdef"z char *print_line_cursor -char *print_line_cursor#0 // print_line_cursor zp[2]:20 15001.5 -char *print_line_cursor#9 // print_line_cursor zp[2]:20 20002.0 +char *print_line_cursor#0 // print_line_cursor zp[2]:22 15001.5 +char *print_line_cursor#9 // print_line_cursor zp[2]:22 20002.0 void print_ln() char *print_screen __constant char *print_screen#0 = (char *) 1024 // print_screen @@ -3258,60 +3140,55 @@ char print_uchar::b#1 // reg byte x 2002.0 char print_uchar::b#2 // reg byte x 5501.0 void print_uint(unsigned int w) unsigned int print_uint::w -unsigned int print_uint::w#0 // w zp[2]:4 701.0 +unsigned int print_uint::w#0 // w zp[2]:2 701.0 unsigned int rand() -unsigned int rand::$0 // zp[2]:6 2000002.0 +unsigned int rand::$0 // zp[2]:2 2000002.0 unsigned int rand::$1 // zp[2]:4 2000002.0 -unsigned int rand::$2 // zp[2]:8 2000002.0 +unsigned int rand::$2 // zp[2]:6 2000002.0 unsigned int rand::return -unsigned int rand::return#0 // return zp[2]:10 366667.3333333334 -unsigned int rand::return#2 // return zp[2]:10 200002.0 -unsigned int rand_state -unsigned int rand_state#0 // rand_state zp[2]:2 1500001.5 -unsigned int rand_state#1 // rand_state zp[2]:2 1500001.5 -unsigned int rand_state#12 // rand_state zp[2]:2 190909.36363636365 -unsigned int rand_state#14 // rand_state zp[2]:2 500.5 -unsigned int rand_state#19 // rand_state zp[2]:2 235556.11111111112 -unsigned int rand_state#25 // rand_state zp[2]:2 7334.666666666666 +unsigned int rand::return#0 // return zp[2]:8 366667.3333333334 +unsigned int rand::return#2 // return zp[2]:8 200002.0 +__loadstore volatile unsigned int rand_state // zp[2]:14 277778.1111111111 __constant const char sinetable[$100] = { $80, $7d, $7a, $77, $74, $70, $6d, $6a, $67, $64, $61, $5e, $5b, $58, $55, $52, $4f, $4d, $4a, $47, $44, $41, $3f, $3c, $39, $37, $34, $32, $2f, $2d, $2b, $28, $26, $24, $22, $20, $1e, $1c, $1a, $18, $16, $15, $13, $11, $10, $f, $d, $c, $b, $a, 8, 7, 6, 6, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7, 8, $a, $b, $c, $d, $f, $10, $11, $13, $15, $16, $18, $1a, $1c, $1e, $20, $22, $24, $26, $28, $2b, $2d, $2f, $32, $34, $37, $39, $3c, $3f, $41, $44, $47, $4a, $4d, $4f, $52, $55, $58, $5b, $5e, $61, $64, $67, $6a, $6d, $70, $74, $77, $7a, $7d, $80, $83, $86, $89, $8c, $90, $93, $96, $99, $9c, $9f, $a2, $a5, $a8, $ab, $ae, $b1, $b3, $b6, $b9, $bc, $bf, $c1, $c4, $c7, $c9, $cc, $ce, $d1, $d3, $d5, $d8, $da, $dc, $de, $e0, $e2, $e4, $e6, $e8, $ea, $eb, $ed, $ef, $f0, $f1, $f3, $f4, $f5, $f6, $f8, $f9, $fa, $fa, $fb, $fc, $fd, $fd, $fe, $fe, $fe, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $fe, $fe, $fe, $fd, $fd, $fc, $fb, $fa, $fa, $f9, $f8, $f6, $f5, $f4, $f3, $f1, $f0, $ef, $ed, $eb, $ea, $e8, $e6, $e4, $e2, $e0, $de, $dc, $da, $d8, $d5, $d3, $d1, $ce, $cc, $c9, $c7, $c4, $c1, $bf, $bc, $b9, $b6, $b3, $b1, $ae, $ab, $a8, $a5, $a2, $9f, $9c, $99, $96, $93, $90, $8c, $89, $86, $83 } void start() __constant unsigned int * const start::LAST_TIME = &last_time __constant char xbuf[$28] = { fill( $28, 0) } __constant char ybuf[$19] = { fill( $19, 0) } -zp[2]:2 [ rand_state#14 rand_state#25 rand_state#19 rand_state#12 rand_state#0 rand_state#1 main::count#2 main::count#1 ] reg byte x [ makechar::ii#3 makechar::ii#2 ] reg byte y [ makechar::b#3 makechar::b#7 makechar::b#2 ] -zp[1]:15 [ doplasma::ii#3 doplasma::ii#2 makechar::i#3 makechar::i#2 ] +zp[1]:13 [ doplasma::ii#3 doplasma::ii#2 makechar::i#3 makechar::i#2 ] zp[1]:16 [ doplasma::i#3 doplasma::i#2 ] -zp[1]:19 [ doplasma::c2a#3 doplasma::c2a#2 ] -zp[1]:17 [ doplasma::c2b#3 doplasma::c2b#2 ] +zp[1]:21 [ doplasma::c2a#3 doplasma::c2a#2 ] +zp[1]:19 [ doplasma::c2b#3 doplasma::c2b#2 ] reg byte x [ doplasma::jj#3 doplasma::jj#2 ] -zp[2]:13 [ doplasma::scrn#6 doplasma::scrn#0 doplasma::scrn#13 makechar::c#3 makechar::c#2 ] +zp[2]:11 [ doplasma::scrn#6 doplasma::scrn#0 doplasma::scrn#13 makechar::c#3 makechar::c#2 ] reg byte y [ doplasma::j#3 doplasma::j#2 ] +zp[2]:22 [ print_line_cursor#9 print_line_cursor#0 main::count#2 main::count#1 ] reg byte x [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] -zp[2]:22 [ last_time ] -zp[1]:24 [ main::block#1 ] +zp[2]:14 [ rand_state ] +zp[2]:24 [ last_time ] +zp[1]:26 [ main::block#1 ] reg byte a [ main::tmp#1 ] -zp[1]:25 [ main::v#1 ] +zp[1]:27 [ main::v#1 ] reg byte x [ makechar::$9 ] -zp[1]:18 [ makechar::s#1 doplasma::c1a#3 doplasma::c1a#2 ] -zp[2]:20 [ makechar::$7 makechar::$8 makechar::$10 print_line_cursor#9 print_line_cursor#0 ] -zp[2]:10 [ rand::return#2 makechar::$3 rand::return#0 print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] -zp[1]:12 [ makechar::$4 doplasma::c1b#3 doplasma::c1b#2 ] +zp[1]:20 [ makechar::s#1 doplasma::c1a#3 doplasma::c1a#2 ] +zp[2]:17 [ makechar::$7 makechar::$8 makechar::$10 print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] +zp[1]:10 [ makechar::$4 doplasma::c1b#3 doplasma::c1b#2 ] +zp[2]:8 [ Ticks#0 rand::return#2 makechar::$3 rand::return#0 ] reg byte a [ doplasma::$6 ] reg byte a [ doplasma::$3 ] reg byte a [ doplasma::$1 ] -zp[2]:6 [ rand::$0 Ticks#0 ] -zp[2]:4 [ rand::$1 Ticks#1 print_uint::w#0 ] -zp[2]:8 [ rand::$2 ] +zp[2]:2 [ rand::$0 Ticks#1 print_uint::w#0 ] +zp[2]:4 [ rand::$1 ] +zp[2]:6 [ rand::$2 ] reg byte a [ print_uchar::$0 ] reg byte x [ print_uchar::$2 ] FINAL ASSEMBLER -Score: 102089 +Score: 102017 // File Comments /// @file @@ -3342,63 +3219,68 @@ Score: 102089 .label SCREEN2 = $e400 .label CHARSET = $e800 .label print_screen = $400 - .label last_time = $16 - .label print_line_cursor = $14 // The random state variable - .label rand_state = 2 - .label Ticks = 6 - .label Ticks_1 = 4 - .label print_char_cursor = $a + .label rand_state = $e + .label last_time = $18 + .label print_line_cursor = $16 + .label Ticks = 8 + .label Ticks_1 = 2 + .label print_char_cursor = $11 .segment Code // __start __start: { // __start::__init1 + // volatile unsigned int rand_state = 1 + // [1] rand_state = 1 -- vwuz1=vwuc1 + lda #<1 + sta.z rand_state + lda #>1 + sta.z rand_state+1 // unsigned int last_time - // [1] last_time = 0 -- vwuz1=vwuc1 - lda #<0 + // [2] last_time = 0 -- vwuz1=vwuc1 sta.z last_time sta.z last_time+1 - // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] + // [3] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main - // [5] phi from __start::@1 to main [phi:__start::@1->main] + // [4] call main + // [6] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return - // [4] return + // [5] return rts } // main main: { - .label block = $18 - .label v = $19 - .label count = 2 + .label block = $1a + .label v = $1b + .label count = $16 // makechar() - // [6] call makechar - // [25] phi from main to makechar [phi:main->makechar] + // [7] call makechar + // [26] phi from main to makechar [phi:main->makechar] jsr makechar - // [7] phi from main to main::@4 [phi:main->main::@4] + // [8] phi from main to main::@4 [phi:main->main::@4] // main::@4 // start() - // [8] call start + // [9] call start jsr start // main::@5 // block = CIA2->PORT_A - // [9] main::block#1 = *((char *)CIA2) -- vbuz1=_deref_pbuc1 + // [10] main::block#1 = *((char *)CIA2) -- vbuz1=_deref_pbuc1 lda CIA2 sta.z block // tmp = block & 0xFC - // [10] main::tmp#1 = main::block#1 & $fc -- vbuaa=vbuz1_band_vbuc1 + // [11] main::tmp#1 = main::block#1 & $fc -- vbuaa=vbuz1_band_vbuc1 lda #$fc and.z block // CIA2->PORT_A = tmp - // [11] *((char *)CIA2) = main::tmp#1 -- _deref_pbuc1=vbuaa + // [12] *((char *)CIA2) = main::tmp#1 -- _deref_pbuc1=vbuaa sta CIA2 // v = *VICII_MEMORY - // [12] main::v#1 = *VICII_MEMORY -- vbuz1=_deref_pbuc1 + // [13] main::v#1 = *VICII_MEMORY -- vbuz1=_deref_pbuc1 lda VICII_MEMORY sta.z v - // [13] phi from main::@5 to main::@1 [phi:main::@5->main::@1] - // [13] phi main::count#2 = $1f4 [phi:main::@5->main::@1#0] -- vwuz1=vwuc1 + // [14] phi from main::@5 to main::@1 [phi:main::@5->main::@1] + // [14] phi main::count#2 = $1f4 [phi:main::@5->main::@1#0] -- vwuz1=vwuc1 lda #<$1f4 sta.z count lda #>$1f4 @@ -3407,35 +3289,35 @@ main: { // main::@1 __b1: // while (count) - // [14] if(0!=main::count#2) goto main::@2 -- 0_neq_vwuz1_then_la1 + // [15] if(0!=main::count#2) goto main::@2 -- 0_neq_vwuz1_then_la1 lda.z count ora.z count+1 bne __b2 // main::@3 // *VICII_MEMORY = v - // [15] *VICII_MEMORY = main::v#1 -- _deref_pbuc1=vbuz1 + // [16] *VICII_MEMORY = main::v#1 -- _deref_pbuc1=vbuz1 lda.z v sta VICII_MEMORY // CIA2->PORT_A = block - // [16] *((char *)CIA2) = main::block#1 -- _deref_pbuc1=vbuz1 + // [17] *((char *)CIA2) = main::block#1 -- _deref_pbuc1=vbuz1 lda.z block sta CIA2 // end() - // [17] call end + // [18] call end /* Reset screen colors */ jsr end // main::@return // } - // [18] return + // [19] return rts - // [19] phi from main::@1 to main::@2 [phi:main::@1->main::@2] + // [20] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 __b2: // doplasma ((char*)SCREEN1) - // [20] call doplasma + // [21] call doplasma /* Build page 1, then make it visible */ - // [61] phi from main::@2 to doplasma [phi:main::@2->doplasma] - // [61] phi doplasma::scrn#13 = SCREEN1 [phi:main::@2->doplasma#0] -- pbuz1=pbuc1 + // [62] phi from main::@2 to doplasma [phi:main::@2->doplasma] + // [62] phi doplasma::scrn#13 = SCREEN1 [phi:main::@2->doplasma#0] -- pbuz1=pbuc1 lda #SCREEN1 @@ -3443,14 +3325,14 @@ main: { jsr doplasma // main::@6 // *VICII_MEMORY = PAGE1 - // [21] *VICII_MEMORY = PAGE1 -- _deref_pbuc1=vbuc2 + // [22] *VICII_MEMORY = PAGE1 -- _deref_pbuc1=vbuc2 lda #PAGE1 sta VICII_MEMORY // doplasma ((char*)SCREEN2) - // [22] call doplasma + // [23] call doplasma /* Build page 2, then make it visible */ - // [61] phi from main::@6 to doplasma [phi:main::@6->doplasma] - // [61] phi doplasma::scrn#13 = SCREEN2 [phi:main::@6->doplasma#0] -- pbuz1=pbuc1 + // [62] phi from main::@6 to doplasma [phi:main::@6->doplasma] + // [62] phi doplasma::scrn#13 = SCREEN2 [phi:main::@6->doplasma#0] -- pbuz1=pbuc1 lda #SCREEN2 @@ -3458,43 +3340,39 @@ main: { jsr doplasma // main::@7 // *VICII_MEMORY = PAGE2 - // [23] *VICII_MEMORY = PAGE2 -- _deref_pbuc1=vbuc2 + // [24] *VICII_MEMORY = PAGE2 -- _deref_pbuc1=vbuc2 lda #PAGE2 sta VICII_MEMORY // --count; - // [24] main::count#1 = -- main::count#2 -- vwuz1=_dec_vwuz1 + // [25] main::count#1 = -- main::count#2 -- vwuz1=_dec_vwuz1 lda.z count bne !+ dec.z count+1 !: dec.z count - // [13] phi from main::@7 to main::@1 [phi:main::@7->main::@1] - // [13] phi main::count#2 = main::count#1 [phi:main::@7->main::@1#0] -- register_copy + // [14] phi from main::@7 to main::@1 [phi:main::@7->main::@1] + // [14] phi main::count#2 = main::count#1 [phi:main::@7->main::@1#0] -- register_copy jmp __b1 } // makechar makechar: { - .label __3 = $a - .label __4 = $c - .label __7 = $14 - .label __8 = $14 - .label s = $12 - .label c = $d - .label i = $f - .label __10 = $14 - // [26] phi from makechar to makechar::@1 [phi:makechar->makechar::@1] - // [26] phi rand_state#14 = 1 [phi:makechar->makechar::@1#0] -- vwuz1=vwuc1 - lda #<1 - sta.z rand_state - lda #>1 - sta.z rand_state+1 - // [26] phi makechar::c#3 = 0 [phi:makechar->makechar::@1#1] -- vwuz1=vbuc1 + .label __3 = 8 + .label __4 = $a + .label __7 = $11 + .label __8 = $11 + .label s = $14 + .label c = $b + .label i = $d + .label __10 = $11 + // [27] phi from makechar to makechar::@1 [phi:makechar->makechar::@1] + // [27] phi makechar::c#3 = 0 [phi:makechar->makechar::@1#0] -- vwuz1=vbuc1 + lda #<0 sta.z c sta.z c+1 // makechar::@1 __b1: // for (c = 0; c < 0x100; ++c) - // [27] if(makechar::c#3<$100) goto makechar::@2 -- vwuz1_lt_vwuc1_then_la1 + // [28] if(makechar::c#3<$100) goto makechar::@2 -- vwuz1_lt_vwuc1_then_la1 lda.z c+1 cmp #>$100 bcc __b2 @@ -3505,55 +3383,52 @@ makechar: { !: // makechar::@return // } - // [28] return + // [29] return rts // makechar::@2 __b2: // s = sinetable[(char)c] - // [29] makechar::$9 = (char)makechar::c#3 -- vbuxx=_byte_vwuz1 + // [30] makechar::$9 = (char)makechar::c#3 -- vbuxx=_byte_vwuz1 ldx.z c - // [30] makechar::s#1 = sinetable[makechar::$9] -- vbuz1=pbuc1_derefidx_vbuxx + // [31] makechar::s#1 = sinetable[makechar::$9] -- vbuz1=pbuc1_derefidx_vbuxx lda sinetable,x sta.z s - // [31] phi from makechar::@2 to makechar::@3 [phi:makechar::@2->makechar::@3] - // [31] phi rand_state#25 = rand_state#14 [phi:makechar::@2->makechar::@3#0] -- register_copy - // [31] phi makechar::i#3 = 0 [phi:makechar::@2->makechar::@3#1] -- vbuz1=vbuc1 + // [32] phi from makechar::@2 to makechar::@3 [phi:makechar::@2->makechar::@3] + // [32] phi makechar::i#3 = 0 [phi:makechar::@2->makechar::@3#0] -- vbuz1=vbuc1 lda #0 sta.z i // makechar::@3 __b3: // for (i = 0; i < 8; ++i) - // [32] if(makechar::i#3<8) goto makechar::@5 -- vbuz1_lt_vbuc1_then_la1 + // [33] if(makechar::i#3<8) goto makechar::@5 -- vbuz1_lt_vbuc1_then_la1 lda.z i cmp #8 bcc __b4 // makechar::@4 // for (c = 0; c < 0x100; ++c) - // [33] makechar::c#2 = ++ makechar::c#3 -- vwuz1=_inc_vwuz1 + // [34] makechar::c#2 = ++ makechar::c#3 -- vwuz1=_inc_vwuz1 inc.z c bne !+ inc.z c+1 !: - // [26] phi from makechar::@4 to makechar::@1 [phi:makechar::@4->makechar::@1] - // [26] phi rand_state#14 = rand_state#25 [phi:makechar::@4->makechar::@1#0] -- register_copy - // [26] phi makechar::c#3 = makechar::c#2 [phi:makechar::@4->makechar::@1#1] -- register_copy + // [27] phi from makechar::@4 to makechar::@1 [phi:makechar::@4->makechar::@1] + // [27] phi makechar::c#3 = makechar::c#2 [phi:makechar::@4->makechar::@1#0] -- register_copy jmp __b1 - // [34] phi from makechar::@3 to makechar::@5 [phi:makechar::@3->makechar::@5] + // [35] phi from makechar::@3 to makechar::@5 [phi:makechar::@3->makechar::@5] __b4: - // [34] phi rand_state#19 = rand_state#25 [phi:makechar::@3->makechar::@5#0] -- register_copy - // [34] phi makechar::b#3 = 0 [phi:makechar::@3->makechar::@5#1] -- vbuyy=vbuc1 + // [35] phi makechar::b#3 = 0 [phi:makechar::@3->makechar::@5#0] -- vbuyy=vbuc1 ldy #0 - // [34] phi makechar::ii#3 = 0 [phi:makechar::@3->makechar::@5#2] -- vbuxx=vbuc1 + // [35] phi makechar::ii#3 = 0 [phi:makechar::@3->makechar::@5#1] -- vbuxx=vbuc1 ldx #0 // makechar::@5 __b5: // for (ii = 0; ii < 8; ++ii) - // [35] if(makechar::ii#3<8) goto makechar::@6 -- vbuxx_lt_vbuc1_then_la1 + // [36] if(makechar::ii#3<8) goto makechar::@6 -- vbuxx_lt_vbuc1_then_la1 cpx #8 bcc __b6 // makechar::@7 // c<<3 - // [36] makechar::$7 = makechar::c#3 << 3 -- vwuz1=vwuz2_rol_3 + // [37] makechar::$7 = makechar::c#3 << 3 -- vwuz1=vwuz2_rol_3 lda.z c asl sta.z __7 @@ -3565,7 +3440,7 @@ makechar: { asl.z __7 rol.z __7+1 // (c<<3) + i - // [37] makechar::$8 = makechar::$7 + makechar::i#3 -- vwuz1=vwuz1_plus_vbuz2 + // [38] makechar::$8 = makechar::$7 + makechar::i#3 -- vwuz1=vwuz1_plus_vbuz2 lda.z i clc adc.z __8 @@ -3574,7 +3449,7 @@ makechar: { inc.z __8+1 !: // ((char*)CHARSET) [(c<<3) + i] = b - // [38] makechar::$10 = CHARSET + makechar::$8 -- pbuz1=pbuc1_plus_vwuz1 + // [39] makechar::$10 = CHARSET + makechar::$8 -- pbuz1=pbuc1_plus_vwuz1 lda.z __10 clc adc #CHARSET sta.z __10+1 - // [39] *makechar::$10 = makechar::b#3 -- _deref_pbuz1=vbuyy + // [40] *makechar::$10 = makechar::b#3 -- _deref_pbuz1=vbuyy tya ldy #0 sta (__10),y // for (i = 0; i < 8; ++i) - // [40] makechar::i#2 = ++ makechar::i#3 -- vbuz1=_inc_vbuz1 + // [41] makechar::i#2 = ++ makechar::i#3 -- vbuz1=_inc_vbuz1 inc.z i - // [31] phi from makechar::@7 to makechar::@3 [phi:makechar::@7->makechar::@3] - // [31] phi rand_state#25 = rand_state#19 [phi:makechar::@7->makechar::@3#0] -- register_copy - // [31] phi makechar::i#3 = makechar::i#2 [phi:makechar::@7->makechar::@3#1] -- register_copy + // [32] phi from makechar::@7 to makechar::@3 [phi:makechar::@7->makechar::@3] + // [32] phi makechar::i#3 = makechar::i#2 [phi:makechar::@7->makechar::@3#0] -- register_copy jmp __b3 - // [41] phi from makechar::@5 to makechar::@6 [phi:makechar::@5->makechar::@6] + // [42] phi from makechar::@5 to makechar::@6 [phi:makechar::@5->makechar::@6] // makechar::@6 __b6: // rand() - // [42] call rand + // [43] call rand jsr rand - // [43] rand::return#2 = rand::return#0 + // [44] rand::return#2 = rand::return#0 // makechar::@10 - // [44] makechar::$3 = rand::return#2 + // [45] makechar::$3 = rand::return#2 // rand() & 0xFF - // [45] makechar::$4 = makechar::$3 & $ff -- vbuz1=vwuz2_band_vbuc1 + // [46] makechar::$4 = makechar::$3 & $ff -- vbuz1=vwuz2_band_vbuc1 lda #$ff and.z __3 sta.z __4 // if ((rand() & 0xFF) > s) - // [46] if(makechar::$4<=makechar::s#1) goto makechar::@8 -- vbuz1_le_vbuz2_then_la1 + // [47] if(makechar::$4<=makechar::s#1) goto makechar::@8 -- vbuz1_le_vbuz2_then_la1 lda.z s cmp.z __4 bcs __b8 // makechar::@9 // b |= bittab[ii] - // [47] makechar::b#2 = makechar::b#3 | bittab[makechar::ii#3] -- vbuyy=vbuyy_bor_pbuc1_derefidx_vbuxx + // [48] makechar::b#2 = makechar::b#3 | bittab[makechar::ii#3] -- vbuyy=vbuyy_bor_pbuc1_derefidx_vbuxx tya ora bittab,x tay - // [48] phi from makechar::@10 makechar::@9 to makechar::@8 [phi:makechar::@10/makechar::@9->makechar::@8] - // [48] phi makechar::b#7 = makechar::b#3 [phi:makechar::@10/makechar::@9->makechar::@8#0] -- register_copy + // [49] phi from makechar::@10 makechar::@9 to makechar::@8 [phi:makechar::@10/makechar::@9->makechar::@8] + // [49] phi makechar::b#7 = makechar::b#3 [phi:makechar::@10/makechar::@9->makechar::@8#0] -- register_copy // makechar::@8 __b8: // for (ii = 0; ii < 8; ++ii) - // [49] makechar::ii#2 = ++ makechar::ii#3 -- vbuxx=_inc_vbuxx + // [50] makechar::ii#2 = ++ makechar::ii#3 -- vbuxx=_inc_vbuxx inx - // [34] phi from makechar::@8 to makechar::@5 [phi:makechar::@8->makechar::@5] - // [34] phi rand_state#19 = rand_state#12 [phi:makechar::@8->makechar::@5#0] -- register_copy - // [34] phi makechar::b#3 = makechar::b#7 [phi:makechar::@8->makechar::@5#1] -- register_copy - // [34] phi makechar::ii#3 = makechar::ii#2 [phi:makechar::@8->makechar::@5#2] -- register_copy + // [35] phi from makechar::@8 to makechar::@5 [phi:makechar::@8->makechar::@5] + // [35] phi makechar::b#3 = makechar::b#7 [phi:makechar::@8->makechar::@5#0] -- register_copy + // [35] phi makechar::ii#3 = makechar::ii#2 [phi:makechar::@8->makechar::@5#1] -- register_copy jmp __b5 } // start @@ -3641,23 +3514,23 @@ start: { stx LAST_TIME+1 // start::@return // } - // [51] return + // [52] return rts } // end end: { // Ticks = last_time - // [52] Ticks#0 = last_time -- vwuz1=vwuz2 + // [53] Ticks#0 = last_time -- vwuz1=vwuz2 lda.z last_time sta.z Ticks lda.z last_time+1 sta.z Ticks+1 // start() - // [53] call start + // [54] call start jsr start // end::@1 // last_time -= Ticks - // [54] last_time = last_time - Ticks#0 -- vwuz1=vwuz1_minus_vwuz2 + // [55] last_time = last_time - Ticks#0 -- vwuz1=vwuz1_minus_vwuz2 lda.z last_time sec sbc.z Ticks @@ -3666,97 +3539,97 @@ end: { sbc.z Ticks+1 sta.z last_time+1 // Ticks = last_time - // [55] Ticks#1 = last_time -- vwuz1=vwuz2 + // [56] Ticks#1 = last_time -- vwuz1=vwuz2 lda.z last_time sta.z Ticks_1 lda.z last_time+1 sta.z Ticks_1+1 // print_uint(Ticks) - // [56] print_uint::w#0 = Ticks#1 - // [57] call print_uint + // [57] print_uint::w#0 = Ticks#1 + // [58] call print_uint jsr print_uint - // [58] phi from end::@1 to end::@2 [phi:end::@1->end::@2] + // [59] phi from end::@1 to end::@2 [phi:end::@1->end::@2] // end::@2 // print_ln() - // [59] call print_ln - // [99] phi from end::@2 to print_ln [phi:end::@2->print_ln] + // [60] call print_ln + // [100] phi from end::@2 to print_ln [phi:end::@2->print_ln] jsr print_ln // end::@return // } - // [60] return + // [61] return rts } // doplasma -// void doplasma(__zp($d) char *scrn) +// void doplasma(__zp($b) char *scrn) doplasma: { .const c2A = 0 .const c2B = 0 - .label c1a = $12 - .label c1b = $c - .label ii = $f - .label c2a = $13 - .label c2b = $11 + .label c1a = $14 + .label c1b = $a + .label ii = $d + .label c2a = $15 + .label c2b = $13 .label i = $10 - .label scrn = $d - // [62] phi from doplasma to doplasma::@1 [phi:doplasma->doplasma::@1] - // [62] phi doplasma::c1b#3 = 0 [phi:doplasma->doplasma::@1#0] -- vbuz1=vbuc1 + .label scrn = $b + // [63] phi from doplasma to doplasma::@1 [phi:doplasma->doplasma::@1] + // [63] phi doplasma::c1b#3 = 0 [phi:doplasma->doplasma::@1#0] -- vbuz1=vbuc1 lda #0 sta.z c1b - // [62] phi doplasma::c1a#3 = 0 [phi:doplasma->doplasma::@1#1] -- vbuz1=vbuc1 + // [63] phi doplasma::c1a#3 = 0 [phi:doplasma->doplasma::@1#1] -- vbuz1=vbuc1 sta.z c1a - // [62] phi doplasma::ii#3 = 0 [phi:doplasma->doplasma::@1#2] -- vbuz1=vbuc1 + // [63] phi doplasma::ii#3 = 0 [phi:doplasma->doplasma::@1#2] -- vbuz1=vbuc1 sta.z ii // doplasma::@1 __b1: // for (ii = 0; ii < 25; ++ii) - // [63] if(doplasma::ii#3<$19) goto doplasma::@2 -- vbuz1_lt_vbuc1_then_la1 + // [64] if(doplasma::ii#3<$19) goto doplasma::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z ii cmp #$19 bcc __b2 - // [64] phi from doplasma::@1 to doplasma::@3 [phi:doplasma::@1->doplasma::@3] - // [64] phi doplasma::c2b#3 = doplasma::c2B#0 [phi:doplasma::@1->doplasma::@3#0] -- vbuz1=vbuc1 + // [65] phi from doplasma::@1 to doplasma::@3 [phi:doplasma::@1->doplasma::@3] + // [65] phi doplasma::c2b#3 = doplasma::c2B#0 [phi:doplasma::@1->doplasma::@3#0] -- vbuz1=vbuc1 lda #c2B sta.z c2b - // [64] phi doplasma::c2a#3 = doplasma::c2A#0 [phi:doplasma::@1->doplasma::@3#1] -- vbuz1=vbuc1 + // [65] phi doplasma::c2a#3 = doplasma::c2A#0 [phi:doplasma::@1->doplasma::@3#1] -- vbuz1=vbuc1 lda #c2A sta.z c2a - // [64] phi doplasma::i#3 = 0 [phi:doplasma::@1->doplasma::@3#2] -- vbuz1=vbuc1 + // [65] phi doplasma::i#3 = 0 [phi:doplasma::@1->doplasma::@3#2] -- vbuz1=vbuc1 lda #0 sta.z i // doplasma::@3 __b3: // for (i = 0; i < 40; ++i) - // [65] if(doplasma::i#3<$28) goto doplasma::@4 -- vbuz1_lt_vbuc1_then_la1 + // [66] if(doplasma::i#3<$28) goto doplasma::@4 -- vbuz1_lt_vbuc1_then_la1 lda.z i cmp #$28 bcc __b4 - // [66] phi from doplasma::@3 to doplasma::@5 [phi:doplasma::@3->doplasma::@5] - // [66] phi doplasma::scrn#6 = doplasma::scrn#13 [phi:doplasma::@3->doplasma::@5#0] -- register_copy - // [66] phi doplasma::jj#3 = 0 [phi:doplasma::@3->doplasma::@5#1] -- vbuxx=vbuc1 + // [67] phi from doplasma::@3 to doplasma::@5 [phi:doplasma::@3->doplasma::@5] + // [67] phi doplasma::scrn#6 = doplasma::scrn#13 [phi:doplasma::@3->doplasma::@5#0] -- register_copy + // [67] phi doplasma::jj#3 = 0 [phi:doplasma::@3->doplasma::@5#1] -- vbuxx=vbuc1 ldx #0 // doplasma::@5 __b5: // for (jj = 0; jj < 25; ++jj) - // [67] if(doplasma::jj#3<$19) goto doplasma::@6 -- vbuxx_lt_vbuc1_then_la1 + // [68] if(doplasma::jj#3<$19) goto doplasma::@6 -- vbuxx_lt_vbuc1_then_la1 cpx #$19 bcc __b8 // doplasma::@return // } - // [68] return + // [69] return rts - // [69] phi from doplasma::@5 to doplasma::@6 [phi:doplasma::@5->doplasma::@6] + // [70] phi from doplasma::@5 to doplasma::@6 [phi:doplasma::@5->doplasma::@6] __b8: - // [69] phi doplasma::j#3 = 0 [phi:doplasma::@5->doplasma::@6#0] -- vbuyy=vbuc1 + // [70] phi doplasma::j#3 = 0 [phi:doplasma::@5->doplasma::@6#0] -- vbuyy=vbuc1 ldy #0 // doplasma::@6 __b6: // for (j = 0; j < 40; ++j) - // [70] if(doplasma::j#3<$28) goto doplasma::@7 -- vbuyy_lt_vbuc1_then_la1 + // [71] if(doplasma::j#3<$28) goto doplasma::@7 -- vbuyy_lt_vbuc1_then_la1 cpy #$28 bcc __b7 // doplasma::@8 // scrn += 40 - // [71] doplasma::scrn#0 = doplasma::scrn#6 + $28 -- pbuz1=pbuz1_plus_vbuc1 + // [72] doplasma::scrn#0 = doplasma::scrn#6 + $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z scrn @@ -3765,89 +3638,89 @@ doplasma: { inc.z scrn+1 !: // for (jj = 0; jj < 25; ++jj) - // [72] doplasma::jj#2 = ++ doplasma::jj#3 -- vbuxx=_inc_vbuxx + // [73] doplasma::jj#2 = ++ doplasma::jj#3 -- vbuxx=_inc_vbuxx inx - // [66] phi from doplasma::@8 to doplasma::@5 [phi:doplasma::@8->doplasma::@5] - // [66] phi doplasma::scrn#6 = doplasma::scrn#0 [phi:doplasma::@8->doplasma::@5#0] -- register_copy - // [66] phi doplasma::jj#3 = doplasma::jj#2 [phi:doplasma::@8->doplasma::@5#1] -- register_copy + // [67] phi from doplasma::@8 to doplasma::@5 [phi:doplasma::@8->doplasma::@5] + // [67] phi doplasma::scrn#6 = doplasma::scrn#0 [phi:doplasma::@8->doplasma::@5#0] -- register_copy + // [67] phi doplasma::jj#3 = doplasma::jj#2 [phi:doplasma::@8->doplasma::@5#1] -- register_copy jmp __b5 // doplasma::@7 __b7: // xbuf[j] + ybuf[jj] - // [73] doplasma::$6 = xbuf[doplasma::j#3] + ybuf[doplasma::jj#3] -- vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx + // [74] doplasma::$6 = xbuf[doplasma::j#3] + ybuf[doplasma::jj#3] -- vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbuxx lda xbuf,y clc adc ybuf,x // scrn[j] = (xbuf[j] + ybuf[jj]) - // [74] doplasma::scrn#6[doplasma::j#3] = doplasma::$6 -- pbuz1_derefidx_vbuyy=vbuaa + // [75] doplasma::scrn#6[doplasma::j#3] = doplasma::$6 -- pbuz1_derefidx_vbuyy=vbuaa sta (scrn),y // for (j = 0; j < 40; ++j) - // [75] doplasma::j#2 = ++ doplasma::j#3 -- vbuyy=_inc_vbuyy + // [76] doplasma::j#2 = ++ doplasma::j#3 -- vbuyy=_inc_vbuyy iny - // [69] phi from doplasma::@7 to doplasma::@6 [phi:doplasma::@7->doplasma::@6] - // [69] phi doplasma::j#3 = doplasma::j#2 [phi:doplasma::@7->doplasma::@6#0] -- register_copy + // [70] phi from doplasma::@7 to doplasma::@6 [phi:doplasma::@7->doplasma::@6] + // [70] phi doplasma::j#3 = doplasma::j#2 [phi:doplasma::@7->doplasma::@6#0] -- register_copy jmp __b6 // doplasma::@4 __b4: // sinetable[c2a] + sinetable[c2b] - // [76] doplasma::$3 = sinetable[doplasma::c2a#3] + sinetable[doplasma::c2b#3] -- vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2 + // [77] doplasma::$3 = sinetable[doplasma::c2a#3] + sinetable[doplasma::c2b#3] -- vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2 ldy.z c2a lda sinetable,y ldy.z c2b clc adc sinetable,y // xbuf[i] = (sinetable[c2a] + sinetable[c2b]) - // [77] xbuf[doplasma::i#3] = doplasma::$3 -- pbuc1_derefidx_vbuz1=vbuaa + // [78] xbuf[doplasma::i#3] = doplasma::$3 -- pbuc1_derefidx_vbuz1=vbuaa ldy.z i sta xbuf,y // c2a += 3 - // [78] doplasma::c2a#2 = doplasma::c2a#3 + 3 -- vbuz1=vbuz1_plus_vbuc1 + // [79] doplasma::c2a#2 = doplasma::c2a#3 + 3 -- vbuz1=vbuz1_plus_vbuc1 lax.z c2a axs #-[3] stx.z c2a // c2b += 7 - // [79] doplasma::c2b#2 = doplasma::c2b#3 + 7 -- vbuz1=vbuz1_plus_vbuc1 + // [80] doplasma::c2b#2 = doplasma::c2b#3 + 7 -- vbuz1=vbuz1_plus_vbuc1 lax.z c2b axs #-[7] stx.z c2b // for (i = 0; i < 40; ++i) - // [80] doplasma::i#2 = ++ doplasma::i#3 -- vbuz1=_inc_vbuz1 + // [81] doplasma::i#2 = ++ doplasma::i#3 -- vbuz1=_inc_vbuz1 inc.z i - // [64] phi from doplasma::@4 to doplasma::@3 [phi:doplasma::@4->doplasma::@3] - // [64] phi doplasma::c2b#3 = doplasma::c2b#2 [phi:doplasma::@4->doplasma::@3#0] -- register_copy - // [64] phi doplasma::c2a#3 = doplasma::c2a#2 [phi:doplasma::@4->doplasma::@3#1] -- register_copy - // [64] phi doplasma::i#3 = doplasma::i#2 [phi:doplasma::@4->doplasma::@3#2] -- register_copy + // [65] phi from doplasma::@4 to doplasma::@3 [phi:doplasma::@4->doplasma::@3] + // [65] phi doplasma::c2b#3 = doplasma::c2b#2 [phi:doplasma::@4->doplasma::@3#0] -- register_copy + // [65] phi doplasma::c2a#3 = doplasma::c2a#2 [phi:doplasma::@4->doplasma::@3#1] -- register_copy + // [65] phi doplasma::i#3 = doplasma::i#2 [phi:doplasma::@4->doplasma::@3#2] -- register_copy jmp __b3 // doplasma::@2 __b2: // sinetable[c1a] + sinetable[c1b] - // [81] doplasma::$1 = sinetable[doplasma::c1a#3] + sinetable[doplasma::c1b#3] -- vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2 + // [82] doplasma::$1 = sinetable[doplasma::c1a#3] + sinetable[doplasma::c1b#3] -- vbuaa=pbuc1_derefidx_vbuz1_plus_pbuc1_derefidx_vbuz2 ldy.z c1a lda sinetable,y ldy.z c1b clc adc sinetable,y // ybuf[ii] = (sinetable[c1a] + sinetable[c1b]) - // [82] ybuf[doplasma::ii#3] = doplasma::$1 -- pbuc1_derefidx_vbuz1=vbuaa + // [83] ybuf[doplasma::ii#3] = doplasma::$1 -- pbuc1_derefidx_vbuz1=vbuaa ldy.z ii sta ybuf,y // c1a += 4 - // [83] doplasma::c1a#2 = doplasma::c1a#3 + 4 -- vbuz1=vbuz1_plus_vbuc1 + // [84] doplasma::c1a#2 = doplasma::c1a#3 + 4 -- vbuz1=vbuz1_plus_vbuc1 lax.z c1a axs #-[4] stx.z c1a // c1b += 9 - // [84] doplasma::c1b#2 = doplasma::c1b#3 + 9 -- vbuz1=vbuz1_plus_vbuc1 + // [85] doplasma::c1b#2 = doplasma::c1b#3 + 9 -- vbuz1=vbuz1_plus_vbuc1 lax.z c1b axs #-[9] stx.z c1b // for (ii = 0; ii < 25; ++ii) - // [85] doplasma::ii#2 = ++ doplasma::ii#3 -- vbuz1=_inc_vbuz1 + // [86] doplasma::ii#2 = ++ doplasma::ii#3 -- vbuz1=_inc_vbuz1 inc.z ii - // [62] phi from doplasma::@2 to doplasma::@1 [phi:doplasma::@2->doplasma::@1] - // [62] phi doplasma::c1b#3 = doplasma::c1b#2 [phi:doplasma::@2->doplasma::@1#0] -- register_copy - // [62] phi doplasma::c1a#3 = doplasma::c1a#2 [phi:doplasma::@2->doplasma::@1#1] -- register_copy - // [62] phi doplasma::ii#3 = doplasma::ii#2 [phi:doplasma::@2->doplasma::@1#2] -- register_copy + // [63] phi from doplasma::@2 to doplasma::@1 [phi:doplasma::@2->doplasma::@1] + // [63] phi doplasma::c1b#3 = doplasma::c1b#2 [phi:doplasma::@2->doplasma::@1#0] -- register_copy + // [63] phi doplasma::c1a#3 = doplasma::c1a#2 [phi:doplasma::@2->doplasma::@1#1] -- register_copy + // [63] phi doplasma::ii#3 = doplasma::ii#2 [phi:doplasma::@2->doplasma::@1#2] -- register_copy jmp __b1 } // rand @@ -3856,12 +3729,12 @@ doplasma: { // Information https://en.wikipedia.org/wiki/Xorshift // Source http://www.retroprogramming.com/2017/07/xorshift-pseudorandom-numbers-in-z80.html rand: { - .label __0 = 6 + .label __0 = 2 .label __1 = 4 - .label __2 = 8 - .label return = $a + .label __2 = 6 + .label return = 8 // rand_state << 7 - // [86] rand::$0 = rand_state#19 << 7 -- vwuz1=vwuz2_rol_7 + // [87] rand::$0 = rand_state << 7 -- vwuz1=vwuz2_rol_7 lda.z rand_state+1 lsr lda.z rand_state @@ -3871,7 +3744,7 @@ rand: { ror sta.z __0 // rand_state ^= rand_state << 7 - // [87] rand_state#0 = rand_state#19 ^ rand::$0 -- vwuz1=vwuz1_bxor_vwuz2 + // [88] rand_state = rand_state ^ rand::$0 -- vwuz1=vwuz1_bxor_vwuz2 lda.z rand_state eor.z __0 sta.z rand_state @@ -3879,13 +3752,13 @@ rand: { eor.z __0+1 sta.z rand_state+1 // rand_state >> 9 - // [88] rand::$1 = rand_state#0 >> 9 -- vwuz1=vwuz2_ror_9 + // [89] rand::$1 = rand_state >> 9 -- vwuz1=vwuz2_ror_9 lsr sta.z __1 lda #0 sta.z __1+1 // rand_state ^= rand_state >> 9 - // [89] rand_state#1 = rand_state#0 ^ rand::$1 -- vwuz1=vwuz1_bxor_vwuz2 + // [90] rand_state = rand_state ^ rand::$1 -- vwuz1=vwuz1_bxor_vwuz2 lda.z rand_state eor.z __1 sta.z rand_state @@ -3893,13 +3766,13 @@ rand: { eor.z __1+1 sta.z rand_state+1 // rand_state << 8 - // [90] rand::$2 = rand_state#1 << 8 -- vwuz1=vwuz2_rol_8 + // [91] rand::$2 = rand_state << 8 -- vwuz1=vwuz2_rol_8 lda.z rand_state sta.z __2+1 lda #0 sta.z __2 // rand_state ^= rand_state << 8 - // [91] rand_state#12 = rand_state#1 ^ rand::$2 -- vwuz1=vwuz1_bxor_vwuz2 + // [92] rand_state = rand_state ^ rand::$2 -- vwuz1=vwuz1_bxor_vwuz2 lda.z rand_state eor.z __2 sta.z rand_state @@ -3907,62 +3780,62 @@ rand: { eor.z __2+1 sta.z rand_state+1 // return rand_state; - // [92] rand::return#0 = rand_state#12 -- vwuz1=vwuz2 + // [93] rand::return#0 = rand_state -- vwuz1=vwuz2 lda.z rand_state sta.z return lda.z rand_state+1 sta.z return+1 // rand::@return // } - // [93] return + // [94] return rts } // print_uint // Print a unsigned int as HEX -// void print_uint(__zp(4) unsigned int w) +// void print_uint(__zp(2) unsigned int w) print_uint: { - .label w = 4 + .label w = 2 // print_uchar(BYTE1(w)) - // [94] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 + // [95] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [95] call print_uchar - // [104] phi from print_uint to print_uchar [phi:print_uint->print_uchar] - // [104] phi print_char_cursor#37 = print_screen#0 [phi:print_uint->print_uchar#0] -- pbuz1=pbuc1 + // [96] call print_uchar + // [105] phi from print_uint to print_uchar [phi:print_uint->print_uchar] + // [105] phi print_char_cursor#37 = print_screen#0 [phi:print_uint->print_uchar#0] -- pbuz1=pbuc1 lda #print_screen sta.z print_char_cursor+1 - // [104] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy + // [105] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy jsr print_uchar // print_uint::@1 // print_uchar(BYTE0(w)) - // [96] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 + // [97] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [97] call print_uchar - // [104] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] - // [104] phi print_char_cursor#37 = print_char_cursor#27 [phi:print_uint::@1->print_uchar#0] -- register_copy - // [104] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy + // [98] call print_uchar + // [105] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] + // [105] phi print_char_cursor#37 = print_char_cursor#27 [phi:print_uint::@1->print_uchar#0] -- register_copy + // [105] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy jsr print_uchar // print_uint::@return // } - // [98] return + // [99] return rts } // print_ln // Print a newline print_ln: { - // [100] phi from print_ln to print_ln::@1 [phi:print_ln->print_ln::@1] - // [100] phi print_line_cursor#9 = print_screen#0 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 + // [101] phi from print_ln to print_ln::@1 [phi:print_ln->print_ln::@1] + // [101] phi print_line_cursor#9 = print_screen#0 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 lda #print_screen sta.z print_line_cursor+1 - // [100] phi from print_ln::@1 to print_ln::@1 [phi:print_ln::@1->print_ln::@1] - // [100] phi print_line_cursor#9 = print_line_cursor#0 [phi:print_ln::@1->print_ln::@1#0] -- register_copy + // [101] phi from print_ln::@1 to print_ln::@1 [phi:print_ln::@1->print_ln::@1] + // [101] phi print_line_cursor#9 = print_line_cursor#0 [phi:print_ln::@1->print_ln::@1#0] -- register_copy // print_ln::@1 __b1: // print_line_cursor + $28 - // [101] print_line_cursor#0 = print_line_cursor#9 + $28 -- pbuz1=pbuz1_plus_vbuc1 + // [102] print_line_cursor#0 = print_line_cursor#9 + $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z print_line_cursor @@ -3971,7 +3844,7 @@ print_ln: { inc.z print_line_cursor+1 !: // while (print_line_cursor>4 - // [105] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 + // [106] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa lsr lsr lsr lsr // print_char(print_hextab[b>>4]) - // [106] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa + // [107] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [107] call print_char + // [108] call print_char // Table of hexadecimal digits - // [112] phi from print_uchar to print_char [phi:print_uchar->print_char] - // [112] phi print_char_cursor#26 = print_char_cursor#37 [phi:print_uchar->print_char#0] -- register_copy - // [112] phi print_char::ch#2 = print_char::ch#0 [phi:print_uchar->print_char#1] -- register_copy + // [113] phi from print_uchar to print_char [phi:print_uchar->print_char] + // [113] phi print_char_cursor#26 = print_char_cursor#37 [phi:print_uchar->print_char#0] -- register_copy + // [113] phi print_char::ch#2 = print_char::ch#0 [phi:print_uchar->print_char#1] -- register_copy jsr print_char // print_uchar::@1 // b&$f - // [108] print_uchar::$2 = print_uchar::b#2 & $f -- vbuxx=vbuxx_band_vbuc1 + // [109] print_uchar::$2 = print_uchar::b#2 & $f -- vbuxx=vbuxx_band_vbuc1 lda #$f axs #0 // print_char(print_hextab[b&$f]) - // [109] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx + // [110] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [110] call print_char - // [112] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] - // [112] phi print_char_cursor#26 = print_char_cursor#27 [phi:print_uchar::@1->print_char#0] -- register_copy - // [112] phi print_char::ch#2 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy + // [111] call print_char + // [113] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] + // [113] phi print_char_cursor#26 = print_char_cursor#27 [phi:print_uchar::@1->print_char#0] -- register_copy + // [113] phi print_char::ch#2 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy jsr print_char // print_uchar::@return // } - // [111] return + // [112] return rts } // print_char @@ -4029,18 +3902,18 @@ print_uchar: { // void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch - // [113] *print_char_cursor#26 = print_char::ch#2 -- _deref_pbuz1=vbuaa + // [114] *print_char_cursor#26 = print_char::ch#2 -- _deref_pbuz1=vbuaa ldy #0 sta (print_char_cursor),y // *(print_char_cursor++) = ch; - // [114] print_char_cursor#27 = ++ print_char_cursor#26 -- pbuz1=_inc_pbuz1 + // [115] print_char_cursor#27 = ++ print_char_cursor#26 -- pbuz1=_inc_pbuz1 inc.z print_char_cursor bne !+ inc.z print_char_cursor+1 !: // print_char::@return // } - // [115] return + // [116] return rts } // File Data diff --git a/src/test/ref/millfork-benchmarks/plasma-kc.sym b/src/test/ref/millfork-benchmarks/plasma-kc.sym index aa326e57a..e4d8f8c75 100644 --- a/src/test/ref/millfork-benchmarks/plasma-kc.sym +++ b/src/test/ref/millfork-benchmarks/plasma-kc.sym @@ -9,8 +9,8 @@ __constant char RADIX::OCTAL = 8 __constant char * const SCREEN1 = (char *) 57344 __constant char * const SCREEN2 = (char *) 58368 unsigned int Ticks -unsigned int Ticks#0 // Ticks zp[2]:6 101.0 -unsigned int Ticks#1 // Ticks_1 zp[2]:4 202.0 +unsigned int Ticks#0 // Ticks zp[2]:8 101.0 +unsigned int Ticks#1 // Ticks_1 zp[2]:2 202.0 __constant char * const VICII_MEMORY = (char *) 53272 void __start() __constant const char bittab[] = { 1, 2, 4, 8, $10, $20, $40, $80 } @@ -21,27 +21,27 @@ char doplasma::$6 // reg byte a 2000002.0 char doplasma::c1A char doplasma::c1B char doplasma::c1a -char doplasma::c1a#2 // c1a zp[1]:18 66667.33333333333 -char doplasma::c1a#3 // c1a zp[1]:18 75000.75 +char doplasma::c1a#2 // c1a zp[1]:20 66667.33333333333 +char doplasma::c1a#3 // c1a zp[1]:20 75000.75 char doplasma::c1b -char doplasma::c1b#2 // c1b zp[1]:12 100001.0 -char doplasma::c1b#3 // c1b zp[1]:12 60000.600000000006 +char doplasma::c1b#2 // c1b zp[1]:10 100001.0 +char doplasma::c1b#3 // c1b zp[1]:10 60000.600000000006 char doplasma::c2A __constant char doplasma::c2A#0 = 0 // c2A char doplasma::c2B __constant char doplasma::c2B#0 = 0 // c2B char doplasma::c2a -char doplasma::c2a#2 // c2a zp[1]:19 66667.33333333333 -char doplasma::c2a#3 // c2a zp[1]:19 75000.75 +char doplasma::c2a#2 // c2a zp[1]:21 66667.33333333333 +char doplasma::c2a#3 // c2a zp[1]:21 75000.75 char doplasma::c2b -char doplasma::c2b#2 // c2b zp[1]:17 100001.0 -char doplasma::c2b#3 // c2b zp[1]:17 60000.600000000006 +char doplasma::c2b#2 // c2b zp[1]:19 100001.0 +char doplasma::c2b#3 // c2b zp[1]:19 60000.600000000006 char doplasma::i char doplasma::i#2 // i zp[1]:16 200002.0 char doplasma::i#3 // i zp[1]:16 66667.33333333333 char doplasma::ii -char doplasma::ii#2 // ii zp[1]:15 200002.0 -char doplasma::ii#3 // ii zp[1]:15 66667.33333333333 +char doplasma::ii#2 // ii zp[1]:13 200002.0 +char doplasma::ii#3 // ii zp[1]:13 66667.33333333333 char doplasma::j char doplasma::j#2 // reg byte y 2000002.0 char doplasma::j#3 // reg byte y 1250001.25 @@ -49,57 +49,57 @@ char doplasma::jj char doplasma::jj#2 // reg byte x 200002.0 char doplasma::jj#3 // reg byte x 162500.5 char *doplasma::scrn -char *doplasma::scrn#0 // scrn zp[2]:13 100001.0 -char *doplasma::scrn#13 // scrn zp[2]:13 6666.733333333334 -char *doplasma::scrn#6 // scrn zp[2]:13 185714.85714285713 +char *doplasma::scrn#0 // scrn zp[2]:11 100001.0 +char *doplasma::scrn#13 // scrn zp[2]:11 6666.733333333334 +char *doplasma::scrn#6 // scrn zp[2]:11 185714.85714285713 void end() -__loadstore volatile unsigned int last_time // zp[2]:22 17.652173913043477 +__loadstore volatile unsigned int last_time // zp[2]:24 17.652173913043477 int main() char main::block -char main::block#1 // block zp[1]:24 2.5384615384615383 +char main::block#1 // block zp[1]:26 2.5384615384615383 unsigned int main::count -unsigned int main::count#1 // count zp[2]:2 202.0 -unsigned int main::count#2 // count zp[2]:2 43.285714285714285 +unsigned int main::count#1 // count zp[2]:22 202.0 +unsigned int main::count#2 // count zp[2]:22 43.285714285714285 int main::return char main::tmp char main::tmp#1 // reg byte a 22.0 char main::v -char main::v#1 // v zp[1]:25 2.4444444444444446 +char main::v#1 // v zp[1]:27 2.4444444444444446 void makechar() -char *makechar::$10 // zp[2]:20 20002.0 -unsigned int makechar::$3 // zp[2]:10 200002.0 -char makechar::$4 // zp[1]:12 200002.0 -unsigned int makechar::$7 // zp[2]:20 20002.0 -unsigned int makechar::$8 // zp[2]:20 20002.0 +char *makechar::$10 // zp[2]:17 20002.0 +unsigned int makechar::$3 // zp[2]:8 200002.0 +char makechar::$4 // zp[1]:10 200002.0 +unsigned int makechar::$7 // zp[2]:17 20002.0 +unsigned int makechar::$8 // zp[2]:17 20002.0 char makechar::$9 // reg byte x 2002.0 char makechar::b char makechar::b#2 // reg byte y 200002.0 char makechar::b#3 // reg byte y 28182.181818181816 char makechar::b#7 // reg byte y 150001.5 unsigned int makechar::c -unsigned int makechar::c#2 // c zp[2]:13 2002.0 -unsigned int makechar::c#3 // c zp[2]:13 591.090909090909 +unsigned int makechar::c#2 // c zp[2]:11 2002.0 +unsigned int makechar::c#3 // c zp[2]:11 591.090909090909 char makechar::i -char makechar::i#2 // i zp[1]:15 20002.0 -char makechar::i#3 // i zp[1]:15 2353.176470588235 +char makechar::i#2 // i zp[1]:13 20002.0 +char makechar::i#3 // i zp[1]:13 2353.176470588235 char makechar::ii char makechar::ii#2 // reg byte x 200002.0 char makechar::ii#3 // reg byte x 40000.4 char makechar::s -char makechar::s#1 // s zp[1]:18 5315.894736842105 +char makechar::s#1 // s zp[1]:20 5315.894736842105 void print_char(char ch) char print_char::ch char print_char::ch#0 // reg byte a 20002.0 char print_char::ch#1 // reg byte a 20002.0 char print_char::ch#2 // reg byte a 120003.0 char *print_char_cursor -char *print_char_cursor#26 // print_char_cursor zp[2]:10 110002.0 -char *print_char_cursor#27 // print_char_cursor zp[2]:10 7117.882352941177 -char *print_char_cursor#37 // print_char_cursor zp[2]:10 3667.333333333333 +char *print_char_cursor#26 // print_char_cursor zp[2]:17 110002.0 +char *print_char_cursor#27 // print_char_cursor zp[2]:17 7117.882352941177 +char *print_char_cursor#37 // print_char_cursor zp[2]:17 3667.333333333333 __constant const char print_hextab[] = "0123456789abcdef"z char *print_line_cursor -char *print_line_cursor#0 // print_line_cursor zp[2]:20 15001.5 -char *print_line_cursor#9 // print_line_cursor zp[2]:20 20002.0 +char *print_line_cursor#0 // print_line_cursor zp[2]:22 15001.5 +char *print_line_cursor#9 // print_line_cursor zp[2]:22 20002.0 void print_ln() char *print_screen __constant char *print_screen#0 = (char *) 1024 // print_screen @@ -112,53 +112,48 @@ char print_uchar::b#1 // reg byte x 2002.0 char print_uchar::b#2 // reg byte x 5501.0 void print_uint(unsigned int w) unsigned int print_uint::w -unsigned int print_uint::w#0 // w zp[2]:4 701.0 +unsigned int print_uint::w#0 // w zp[2]:2 701.0 unsigned int rand() -unsigned int rand::$0 // zp[2]:6 2000002.0 +unsigned int rand::$0 // zp[2]:2 2000002.0 unsigned int rand::$1 // zp[2]:4 2000002.0 -unsigned int rand::$2 // zp[2]:8 2000002.0 +unsigned int rand::$2 // zp[2]:6 2000002.0 unsigned int rand::return -unsigned int rand::return#0 // return zp[2]:10 366667.3333333334 -unsigned int rand::return#2 // return zp[2]:10 200002.0 -unsigned int rand_state -unsigned int rand_state#0 // rand_state zp[2]:2 1500001.5 -unsigned int rand_state#1 // rand_state zp[2]:2 1500001.5 -unsigned int rand_state#12 // rand_state zp[2]:2 190909.36363636365 -unsigned int rand_state#14 // rand_state zp[2]:2 500.5 -unsigned int rand_state#19 // rand_state zp[2]:2 235556.11111111112 -unsigned int rand_state#25 // rand_state zp[2]:2 7334.666666666666 +unsigned int rand::return#0 // return zp[2]:8 366667.3333333334 +unsigned int rand::return#2 // return zp[2]:8 200002.0 +__loadstore volatile unsigned int rand_state // zp[2]:14 277778.1111111111 __constant const char sinetable[$100] = { $80, $7d, $7a, $77, $74, $70, $6d, $6a, $67, $64, $61, $5e, $5b, $58, $55, $52, $4f, $4d, $4a, $47, $44, $41, $3f, $3c, $39, $37, $34, $32, $2f, $2d, $2b, $28, $26, $24, $22, $20, $1e, $1c, $1a, $18, $16, $15, $13, $11, $10, $f, $d, $c, $b, $a, 8, 7, 6, 6, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7, 8, $a, $b, $c, $d, $f, $10, $11, $13, $15, $16, $18, $1a, $1c, $1e, $20, $22, $24, $26, $28, $2b, $2d, $2f, $32, $34, $37, $39, $3c, $3f, $41, $44, $47, $4a, $4d, $4f, $52, $55, $58, $5b, $5e, $61, $64, $67, $6a, $6d, $70, $74, $77, $7a, $7d, $80, $83, $86, $89, $8c, $90, $93, $96, $99, $9c, $9f, $a2, $a5, $a8, $ab, $ae, $b1, $b3, $b6, $b9, $bc, $bf, $c1, $c4, $c7, $c9, $cc, $ce, $d1, $d3, $d5, $d8, $da, $dc, $de, $e0, $e2, $e4, $e6, $e8, $ea, $eb, $ed, $ef, $f0, $f1, $f3, $f4, $f5, $f6, $f8, $f9, $fa, $fa, $fb, $fc, $fd, $fd, $fe, $fe, $fe, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $fe, $fe, $fe, $fd, $fd, $fc, $fb, $fa, $fa, $f9, $f8, $f6, $f5, $f4, $f3, $f1, $f0, $ef, $ed, $eb, $ea, $e8, $e6, $e4, $e2, $e0, $de, $dc, $da, $d8, $d5, $d3, $d1, $ce, $cc, $c9, $c7, $c4, $c1, $bf, $bc, $b9, $b6, $b3, $b1, $ae, $ab, $a8, $a5, $a2, $9f, $9c, $99, $96, $93, $90, $8c, $89, $86, $83 } void start() __constant unsigned int * const start::LAST_TIME = &last_time __constant char xbuf[$28] = { fill( $28, 0) } __constant char ybuf[$19] = { fill( $19, 0) } -zp[2]:2 [ rand_state#14 rand_state#25 rand_state#19 rand_state#12 rand_state#0 rand_state#1 main::count#2 main::count#1 ] reg byte x [ makechar::ii#3 makechar::ii#2 ] reg byte y [ makechar::b#3 makechar::b#7 makechar::b#2 ] -zp[1]:15 [ doplasma::ii#3 doplasma::ii#2 makechar::i#3 makechar::i#2 ] +zp[1]:13 [ doplasma::ii#3 doplasma::ii#2 makechar::i#3 makechar::i#2 ] zp[1]:16 [ doplasma::i#3 doplasma::i#2 ] -zp[1]:19 [ doplasma::c2a#3 doplasma::c2a#2 ] -zp[1]:17 [ doplasma::c2b#3 doplasma::c2b#2 ] +zp[1]:21 [ doplasma::c2a#3 doplasma::c2a#2 ] +zp[1]:19 [ doplasma::c2b#3 doplasma::c2b#2 ] reg byte x [ doplasma::jj#3 doplasma::jj#2 ] -zp[2]:13 [ doplasma::scrn#6 doplasma::scrn#0 doplasma::scrn#13 makechar::c#3 makechar::c#2 ] +zp[2]:11 [ doplasma::scrn#6 doplasma::scrn#0 doplasma::scrn#13 makechar::c#3 makechar::c#2 ] reg byte y [ doplasma::j#3 doplasma::j#2 ] +zp[2]:22 [ print_line_cursor#9 print_line_cursor#0 main::count#2 main::count#1 ] reg byte x [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] -zp[2]:22 [ last_time ] -zp[1]:24 [ main::block#1 ] +zp[2]:14 [ rand_state ] +zp[2]:24 [ last_time ] +zp[1]:26 [ main::block#1 ] reg byte a [ main::tmp#1 ] -zp[1]:25 [ main::v#1 ] +zp[1]:27 [ main::v#1 ] reg byte x [ makechar::$9 ] -zp[1]:18 [ makechar::s#1 doplasma::c1a#3 doplasma::c1a#2 ] -zp[2]:20 [ makechar::$7 makechar::$8 makechar::$10 print_line_cursor#9 print_line_cursor#0 ] -zp[2]:10 [ rand::return#2 makechar::$3 rand::return#0 print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] -zp[1]:12 [ makechar::$4 doplasma::c1b#3 doplasma::c1b#2 ] +zp[1]:20 [ makechar::s#1 doplasma::c1a#3 doplasma::c1a#2 ] +zp[2]:17 [ makechar::$7 makechar::$8 makechar::$10 print_char_cursor#26 print_char_cursor#37 print_char_cursor#27 ] +zp[1]:10 [ makechar::$4 doplasma::c1b#3 doplasma::c1b#2 ] +zp[2]:8 [ Ticks#0 rand::return#2 makechar::$3 rand::return#0 ] reg byte a [ doplasma::$6 ] reg byte a [ doplasma::$3 ] reg byte a [ doplasma::$1 ] -zp[2]:6 [ rand::$0 Ticks#0 ] -zp[2]:4 [ rand::$1 Ticks#1 print_uint::w#0 ] -zp[2]:8 [ rand::$2 ] +zp[2]:2 [ rand::$0 Ticks#1 print_uint::w#0 ] +zp[2]:4 [ rand::$1 ] +zp[2]:6 [ rand::$2 ] reg byte a [ print_uchar::$0 ] reg byte x [ print_uchar::$2 ] diff --git a/src/test/ref/plus4-keyboard-test.log b/src/test/ref/plus4-keyboard-test.log index 3e88ecc22..1803c5c9b 100644 --- a/src/test/ref/plus4-keyboard-test.log +++ b/src/test/ref/plus4-keyboard-test.log @@ -1,3 +1,4 @@ +Inlined call call __init Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement main::$4 @@ -47,7 +48,7 @@ memset::@return: scope:[memset] from memset::@1 to:@return void main() -main: scope:[main] from __start +main: scope:[main] from __start::@1 asm { sei } memset::str#0 = (void *)DEFAULT_SCREEN memset::c#0 = ' ' @@ -126,11 +127,15 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + to:__start::__init1 +__start::__init1: scope:[__start] from __start to:__start::@1 -__start::@1: scope:[__start] from __start +__start::@1: scope:[__start] from __start::__init1 + call main + to:__start::@2 +__start::@2: scope:[__start] from __start::@1 to:__start::@return -__start::@return: scope:[__start] from __start::@1 +__start::@return: scope:[__start] from __start::@2 return to:@return @@ -332,7 +337,9 @@ Eliminating unused constant memset::return#2 Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start +Removing unused procedure block __start::__init1 Removing unused procedure block __start::@1 +Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Constant right-side identified [0] memset::end#0 = memset::$4 + memset::num#0 diff --git a/src/test/ref/printf-17.asm b/src/test/ref/printf-17.asm index 867b12fb4..410faf3d3 100644 --- a/src/test/ref/printf-17.asm +++ b/src/test/ref/printf-17.asm @@ -15,26 +15,14 @@ .const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 .const STACK_BASE = $103 .const SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c - /// The capacity of the buffer (n passed to snprintf()) - /// Used to hold state while printing - .label __snprintf_capacity = $18 - // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity. - /// Used to hold state while printing - .label __snprintf_size = $14 /// Current position in the buffer being filled ( initially *s passed to snprintf() /// Used to hold state while printing - .label __snprintf_buffer = $16 + .label __snprintf_buffer = $14 .label screen = $e .segment Code __start: { - // volatile size_t __snprintf_capacity - lda #<0 - sta.z __snprintf_capacity - sta.z __snprintf_capacity+1 - // volatile size_t __snprintf_size - sta.z __snprintf_size - sta.z __snprintf_size+1 // char * __snprintf_buffer + lda #<0 sta.z __snprintf_buffer sta.z __snprintf_buffer+1 jsr main @@ -50,16 +38,16 @@ snputc: { lda STACK_BASE+OFFSET_STACK_C,x tax // ++__snprintf_size; - inc.z __snprintf_size + inc __snprintf_size bne !+ - inc.z __snprintf_size+1 + inc __snprintf_size+1 !: // if(__snprintf_size > __snprintf_capacity) - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne !+ - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity beq __b1 !: bcc __b1 @@ -67,11 +55,11 @@ snputc: { rts __b1: // if(__snprintf_size==__snprintf_capacity) - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne __b2 - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity bne __b2 ldx #0 __b2: @@ -269,13 +257,13 @@ snprintf_init: { .label n = 2 // __snprintf_capacity = n lda.z n - sta.z __snprintf_capacity + sta __snprintf_capacity lda.z n+1 - sta.z __snprintf_capacity+1 + sta __snprintf_capacity+1 // __snprintf_size = 0 lda #<0 - sta.z __snprintf_size - sta.z __snprintf_size+1 + sta __snprintf_size + sta __snprintf_size+1 // __snprintf_buffer = s lda #capacity. + /// Used to hold state while printing + __snprintf_size: .word 0 diff --git a/src/test/ref/printf-17.cfg b/src/test/ref/printf-17.cfg index a08bafd59..954a78f9a 100644 --- a/src/test/ref/printf-17.cfg +++ b/src/test/ref/printf-17.cfg @@ -4,488 +4,486 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] __snprintf_capacity = 0 - [2] __snprintf_size = 0 - [3] __snprintf_buffer = (char *) 0 + [1] __snprintf_buffer = (char *) 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - [4] phi() - [5] call main + [2] phi() + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 - [6] return + [4] return to:@return __stackcall void snputc(char c) snputc: scope:[snputc] from - [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) - [8] __snprintf_size = ++ __snprintf_size - [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 + [5] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) + [6] __snprintf_size = ++ __snprintf_size + [7] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 to:snputc::@return snputc::@return: scope:[snputc] from snputc snputc::@2 - [10] return + [8] return to:@return snputc::@1: scope:[snputc] from snputc - [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 + [9] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 to:snputc::@2 snputc::@3: scope:[snputc] from snputc::@1 - [12] phi() + [10] phi() to:snputc::@2 snputc::@2: scope:[snputc] from snputc::@1 snputc::@3 - [13] snputc::c#2 = phi( snputc::@3/snputc::c#0, snputc::@1/0 ) - [14] *__snprintf_buffer = snputc::c#2 - [15] __snprintf_buffer = ++ __snprintf_buffer + [11] snputc::c#2 = phi( snputc::@3/snputc::c#0, snputc::@1/0 ) + [12] *__snprintf_buffer = snputc::c#2 + [13] __snprintf_buffer = ++ __snprintf_buffer to:snputc::@return void main() main: scope:[main] from __start::@1 - [16] phi() - [17] call snprintf_init + [14] phi() + [15] call snprintf_init to:main::@1 main::@1: scope:[main] from main - [18] phi() - [19] call printf_str + [16] phi() + [17] call printf_str to:main::@2 main::@2: scope:[main] from main::@1 - [20] stackpush(char) = 0 - [21] callexecute snputc + [18] stackpush(char) = 0 + [19] callexecute snputc sideeffect stackpullpadding(1) - [23] call print + [21] call print to:main::@3 main::@3: scope:[main] from main::@2 - [24] phi() - [25] call snprintf_init + [22] phi() + [23] call snprintf_init to:main::@4 main::@4: scope:[main] from main::@3 - [26] phi() - [27] call printf_str + [24] phi() + [25] call printf_str to:main::@5 main::@5: scope:[main] from main::@4 - [28] phi() - [29] call printf_string + [26] phi() + [27] call printf_string to:main::@6 main::@6: scope:[main] from main::@5 - [30] stackpush(char) = '!' - [31] callexecute snputc + [28] stackpush(char) = '!' + [29] callexecute snputc sideeffect stackpullpadding(1) - [33] call printf_str + [31] call printf_str to:main::@7 main::@7: scope:[main] from main::@6 - [34] stackpush(char) = 0 - [35] callexecute snputc + [32] stackpush(char) = 0 + [33] callexecute snputc sideeffect stackpullpadding(1) - [37] call print + [35] call print to:main::@8 main::@8: scope:[main] from main::@7 - [38] phi() - [39] call snprintf_init + [36] phi() + [37] call snprintf_init to:main::@9 main::@9: scope:[main] from main::@8 - [40] phi() - [41] call printf_str + [38] phi() + [39] call printf_str to:main::@10 main::@10: scope:[main] from main::@9 - [42] phi() - [43] call printf_sint + [40] phi() + [41] call printf_sint to:main::@11 main::@11: scope:[main] from main::@10 - [44] phi() - [45] call printf_str + [42] phi() + [43] call printf_str to:main::@12 main::@12: scope:[main] from main::@11 - [46] phi() - [47] call printf_uint + [44] phi() + [45] call printf_uint to:main::@13 main::@13: scope:[main] from main::@12 - [48] phi() - [49] call printf_str + [46] phi() + [47] call printf_str to:main::@14 main::@14: scope:[main] from main::@13 - [50] stackpush(char) = 0 - [51] callexecute snputc + [48] stackpush(char) = 0 + [49] callexecute snputc sideeffect stackpullpadding(1) - [53] call print + [51] call print to:main::@15 main::@15: scope:[main] from main::@14 - [54] phi() - [55] call snprintf_init + [52] phi() + [53] call snprintf_init to:main::@16 main::@16: scope:[main] from main::@15 - [56] phi() - [57] call printf_str + [54] phi() + [55] call printf_str to:main::@17 main::@17: scope:[main] from main::@16 - [58] phi() - [59] call printf_sint + [56] phi() + [57] call printf_sint to:main::@18 main::@18: scope:[main] from main::@17 - [60] phi() - [61] call printf_str + [58] phi() + [59] call printf_str to:main::@19 main::@19: scope:[main] from main::@18 - [62] stackpush(char) = 0 - [63] callexecute snputc + [60] stackpush(char) = 0 + [61] callexecute snputc sideeffect stackpullpadding(1) - [65] call print + [63] call print to:main::@return main::@return: scope:[main] from main::@19 - [66] return + [64] return to:@return void snprintf_init(char *s , unsigned int n) snprintf_init: scope:[snprintf_init] from main main::@15 main::@3 main::@8 - [67] snprintf_init::n#4 = phi( main/$14, main::@15/6, main::@3/$14, main::@8/$14 ) - [68] __snprintf_capacity = snprintf_init::n#4 - [69] __snprintf_size = 0 - [70] __snprintf_buffer = BUF + [65] snprintf_init::n#4 = phi( main/$14, main::@15/6, main::@3/$14, main::@8/$14 ) + [66] __snprintf_capacity = snprintf_init::n#4 + [67] __snprintf_size = 0 + [68] __snprintf_buffer = BUF to:snprintf_init::@return snprintf_init::@return: scope:[snprintf_init] from snprintf_init - [71] return + [69] return to:@return void printf_str(void (*putc)(char) , const char *s) printf_str: scope:[printf_str] from main::@1 main::@11 main::@13 main::@16 main::@18 main::@4 main::@6 main::@9 printf_number_buffer::@5 printf_string::@1 - [72] printf_str::putc#12 = phi( main::@1/&snputc, main::@11/&snputc, main::@13/&snputc, main::@16/&snputc, main::@18/&snputc, main::@4/&snputc, main::@6/&snputc, main::@9/&snputc, printf_number_buffer::@5/printf_str::putc#0, printf_string::@1/printf_string::putc#0 ) - [72] printf_str::s#12 = phi( main::@1/main::s, main::@11/main::s4, main::@13/main::s5, main::@16/main::s6, main::@18/main::s5, main::@4/main::s1, main::@6/main::s2, main::@9/main::s1, printf_number_buffer::@5/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, printf_string::@1/main::str ) + [70] printf_str::putc#12 = phi( main::@1/&snputc, main::@11/&snputc, main::@13/&snputc, main::@16/&snputc, main::@18/&snputc, main::@4/&snputc, main::@6/&snputc, main::@9/&snputc, printf_number_buffer::@5/printf_str::putc#0, printf_string::@1/printf_string::putc#0 ) + [70] printf_str::s#12 = phi( main::@1/main::s, main::@11/main::s4, main::@13/main::s5, main::@16/main::s6, main::@18/main::s5, main::@4/main::s1, main::@6/main::s2, main::@9/main::s1, printf_number_buffer::@5/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, printf_string::@1/main::str ) to:printf_str::@1 printf_str::@1: scope:[printf_str] from printf_str printf_str::@2 - [73] printf_str::s#11 = phi( printf_str/printf_str::s#12, printf_str::@2/printf_str::s#0 ) - [74] printf_str::c#1 = *printf_str::s#11 - [75] printf_str::s#0 = ++ printf_str::s#11 - [76] if(0!=printf_str::c#1) goto printf_str::@2 + [71] printf_str::s#11 = phi( printf_str/printf_str::s#12, printf_str::@2/printf_str::s#0 ) + [72] printf_str::c#1 = *printf_str::s#11 + [73] printf_str::s#0 = ++ printf_str::s#11 + [74] if(0!=printf_str::c#1) goto printf_str::@2 to:printf_str::@return printf_str::@return: scope:[printf_str] from printf_str::@1 - [77] return + [75] return to:@return printf_str::@2: scope:[printf_str] from printf_str::@1 - [78] stackpush(char) = printf_str::c#1 - [79] callexecute *printf_str::putc#12 + [76] stackpush(char) = printf_str::c#1 + [77] callexecute *printf_str::putc#12 sideeffect stackpullpadding(1) to:printf_str::@1 void print(char *msg) print: scope:[print] from main::@14 main::@19 main::@2 main::@7 - [81] screen#25 = phi( main::@14/screen#1, main::@19/screen#1, main::@2/(char *) 1024, main::@7/screen#1 ) + [79] screen#25 = phi( main::@14/screen#1, main::@19/screen#1, main::@2/(char *) 1024, main::@7/screen#1 ) to:print::@1 print::@1: scope:[print] from print print::@2 - [82] screen#1 = phi( print/screen#25, print::@2/screen#0 ) - [82] print::msg#5 = phi( print/BUF, print::@2/print::msg#0 ) - [83] if(0!=*print::msg#5) goto print::@2 + [80] screen#1 = phi( print/screen#25, print::@2/screen#0 ) + [80] print::msg#5 = phi( print/BUF, print::@2/print::msg#0 ) + [81] if(0!=*print::msg#5) goto print::@2 to:print::@return print::@return: scope:[print] from print::@1 - [84] return + [82] return to:@return print::@2: scope:[print] from print::@1 - [85] *screen#1 = *print::msg#5 - [86] screen#0 = ++ screen#1 - [87] print::msg#0 = ++ print::msg#5 + [83] *screen#1 = *print::msg#5 + [84] screen#0 = ++ screen#1 + [85] print::msg#0 = ++ print::msg#5 to:print::@1 void printf_string(void (*putc)(char) , char *str , char format_min_length , char format_justify_left) printf_string: scope:[printf_string] from main::@5 - [88] phi() + [86] phi() to:printf_string::@1 printf_string::@1: scope:[printf_string] from printf_string - [89] phi() - [90] call printf_str + [87] phi() + [88] call printf_str to:printf_string::@return printf_string::@return: scope:[printf_string] from printf_string::@1 - [91] return + [89] return to:@return void printf_sint(void (*putc)(char) , int value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_sint: scope:[printf_sint] from main::@10 main::@17 - [92] printf_sint::value#3 = phi( main::@10/3, main::@17/$56ce ) - [93] *((char *)&printf_buffer) = 0 - [94] if(printf_sint::value#3<0) goto printf_sint::@1 + [90] printf_sint::value#3 = phi( main::@10/3, main::@17/$56ce ) + [91] *((char *)&printf_buffer) = 0 + [92] if(printf_sint::value#3<0) goto printf_sint::@1 to:printf_sint::@2 printf_sint::@1: scope:[printf_sint] from printf_sint - [95] printf_sint::value#0 = - printf_sint::value#3 - [96] *((char *)&printf_buffer) = '-' + [93] printf_sint::value#0 = - printf_sint::value#3 + [94] *((char *)&printf_buffer) = '-' to:printf_sint::@2 printf_sint::@2: scope:[printf_sint] from printf_sint printf_sint::@1 - [97] printf_sint::value#5 = phi( printf_sint::@1/printf_sint::value#0, printf_sint/printf_sint::value#3 ) - [98] utoa::value#1 = (unsigned int)printf_sint::value#5 - [99] call utoa + [95] printf_sint::value#5 = phi( printf_sint::@1/printf_sint::value#0, printf_sint/printf_sint::value#3 ) + [96] utoa::value#1 = (unsigned int)printf_sint::value#5 + [97] call utoa to:printf_sint::@3 printf_sint::@3: scope:[printf_sint] from printf_sint::@2 - [100] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) - [101] call printf_number_buffer + [98] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) + [99] call printf_number_buffer to:printf_sint::@return printf_sint::@return: scope:[printf_sint] from printf_sint::@3 - [102] return + [100] return to:@return void printf_uint(void (*putc)(char) , unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_uint: scope:[printf_uint] from main::@12 - [103] phi() + [101] phi() to:printf_uint::@1 printf_uint::@1: scope:[printf_uint] from printf_uint - [104] *((char *)&printf_buffer) = 0 - [105] call utoa + [102] *((char *)&printf_buffer) = 0 + [103] call utoa to:printf_uint::@2 printf_uint::@2: scope:[printf_uint] from printf_uint::@1 - [106] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) - [107] call printf_number_buffer + [104] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) + [105] call printf_number_buffer to:printf_uint::@return printf_uint::@return: scope:[printf_uint] from printf_uint::@2 - [108] return + [106] return to:@return void utoa(unsigned int value , char *buffer , char radix) utoa: scope:[utoa] from printf_sint::@2 printf_uint::@1 - [109] utoa::value#10 = phi( printf_sint::@2/utoa::value#1, printf_uint::@1/printf_uint::uvalue#0 ) - [109] utoa::radix#2 = phi( printf_sint::@2/DECIMAL, printf_uint::@1/HEXADECIMAL ) - [110] if(utoa::radix#2==DECIMAL) goto utoa::@1 + [107] utoa::value#10 = phi( printf_sint::@2/utoa::value#1, printf_uint::@1/printf_uint::uvalue#0 ) + [107] utoa::radix#2 = phi( printf_sint::@2/DECIMAL, printf_uint::@1/HEXADECIMAL ) + [108] if(utoa::radix#2==DECIMAL) goto utoa::@1 to:utoa::@2 utoa::@2: scope:[utoa] from utoa - [111] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 + [109] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 to:utoa::@3 utoa::@3: scope:[utoa] from utoa::@2 - [112] if(utoa::radix#2==OCTAL) goto utoa::@1 + [110] if(utoa::radix#2==OCTAL) goto utoa::@1 to:utoa::@4 utoa::@4: scope:[utoa] from utoa::@3 - [113] if(utoa::radix#2==BINARY) goto utoa::@1 + [111] if(utoa::radix#2==BINARY) goto utoa::@1 to:utoa::@5 utoa::@5: scope:[utoa] from utoa::@4 - [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' - [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' - [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' - [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 + [112] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' + [113] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' + [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' + [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 to:utoa::@return utoa::@return: scope:[utoa] from utoa::@5 utoa::@8 - [118] return + [116] return to:@return utoa::@1: scope:[utoa] from utoa utoa::@2 utoa::@3 utoa::@4 - [119] utoa::digit_values#8 = phi( utoa/RADIX_DECIMAL_VALUES, utoa::@2/RADIX_HEXADECIMAL_VALUES, utoa::@3/RADIX_OCTAL_VALUES, utoa::@4/RADIX_BINARY_VALUES ) - [119] utoa::max_digits#7 = phi( utoa/5, utoa::@2/4, utoa::@3/6, utoa::@4/$10 ) + [117] utoa::digit_values#8 = phi( utoa/RADIX_DECIMAL_VALUES, utoa::@2/RADIX_HEXADECIMAL_VALUES, utoa::@3/RADIX_OCTAL_VALUES, utoa::@4/RADIX_BINARY_VALUES ) + [117] utoa::max_digits#7 = phi( utoa/5, utoa::@2/4, utoa::@3/6, utoa::@4/$10 ) to:utoa::@6 utoa::@6: scope:[utoa] from utoa::@1 utoa::@9 - [120] utoa::buffer#10 = phi( utoa::@9/utoa::buffer#15, utoa::@1/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [120] utoa::started#2 = phi( utoa::@9/utoa::started#4, utoa::@1/0 ) - [120] utoa::value#3 = phi( utoa::@9/utoa::value#7, utoa::@1/utoa::value#10 ) - [120] utoa::digit#2 = phi( utoa::@9/utoa::digit#1, utoa::@1/0 ) - [121] utoa::$4 = utoa::max_digits#7 - 1 - [122] if(utoa::digit#2=utoa::digit_value#0) goto utoa::@10 + [128] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 to:utoa::@9 utoa::@9: scope:[utoa] from utoa::@11 utoa::@12 - [131] utoa::buffer#15 = phi( utoa::@12/utoa::buffer#10, utoa::@11/utoa::buffer#4 ) - [131] utoa::started#4 = phi( utoa::@12/utoa::started#2, utoa::@11/1 ) - [131] utoa::value#7 = phi( utoa::@12/utoa::value#3, utoa::@11/utoa::value#0 ) - [132] utoa::digit#1 = ++ utoa::digit#2 + [129] utoa::buffer#15 = phi( utoa::@12/utoa::buffer#10, utoa::@11/utoa::buffer#4 ) + [129] utoa::started#4 = phi( utoa::@12/utoa::started#2, utoa::@11/1 ) + [129] utoa::value#7 = phi( utoa::@12/utoa::value#3, utoa::@11/utoa::value#0 ) + [130] utoa::digit#1 = ++ utoa::digit#2 to:utoa::@6 utoa::@10: scope:[utoa] from utoa::@12 utoa::@7 - [133] utoa_append::buffer#0 = utoa::buffer#10 - [134] utoa_append::value#0 = utoa::value#3 - [135] utoa_append::sub#0 = utoa::digit_value#0 - [136] call utoa_append - [137] utoa_append::return#0 = utoa_append::value#2 + [131] utoa_append::buffer#0 = utoa::buffer#10 + [132] utoa_append::value#0 = utoa::value#3 + [133] utoa_append::sub#0 = utoa::digit_value#0 + [134] call utoa_append + [135] utoa_append::return#0 = utoa_append::value#2 to:utoa::@11 utoa::@11: scope:[utoa] from utoa::@10 - [138] utoa::value#0 = utoa_append::return#0 - [139] utoa::buffer#4 = ++ utoa::buffer#10 + [136] utoa::value#0 = utoa_append::return#0 + [137] utoa::buffer#4 = ++ utoa::buffer#10 to:utoa::@9 void printf_number_buffer(void (*putc)(char) , char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_number_buffer: scope:[printf_number_buffer] from printf_sint::@3 printf_uint::@2 - [140] printf_number_buffer::format_upper_case#10 = phi( printf_sint::@3/0, printf_uint::@2/printf_uint::format_upper_case#0 ) - [140] printf_number_buffer::putc#10 = phi( printf_sint::@3/&snputc, printf_uint::@2/printf_uint::putc#0 ) - [140] printf_number_buffer::buffer_sign#10 = phi( printf_sint::@3/printf_number_buffer::buffer_sign#0, printf_uint::@2/printf_number_buffer::buffer_sign#1 ) - [140] printf_number_buffer::format_zero_padding#10 = phi( printf_sint::@3/0, printf_uint::@2/printf_uint::format_zero_padding#0 ) - [140] printf_number_buffer::format_justify_left#10 = phi( printf_sint::@3/0, printf_uint::@2/printf_uint::format_justify_left#0 ) - [140] printf_number_buffer::format_min_length#2 = phi( printf_sint::@3/0, printf_uint::@2/printf_uint::format_min_length#0 ) - [141] if(0==printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1 + [138] printf_number_buffer::format_upper_case#10 = phi( printf_sint::@3/0, printf_uint::@2/printf_uint::format_upper_case#0 ) + [138] printf_number_buffer::putc#10 = phi( printf_sint::@3/&snputc, printf_uint::@2/printf_uint::putc#0 ) + [138] printf_number_buffer::buffer_sign#10 = phi( printf_sint::@3/printf_number_buffer::buffer_sign#0, printf_uint::@2/printf_number_buffer::buffer_sign#1 ) + [138] printf_number_buffer::format_zero_padding#10 = phi( printf_sint::@3/0, printf_uint::@2/printf_uint::format_zero_padding#0 ) + [138] printf_number_buffer::format_justify_left#10 = phi( printf_sint::@3/0, printf_uint::@2/printf_uint::format_justify_left#0 ) + [138] printf_number_buffer::format_min_length#2 = phi( printf_sint::@3/0, printf_uint::@2/printf_uint::format_min_length#0 ) + [139] if(0==printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1 to:printf_number_buffer::@6 printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffer - [142] phi() - [143] call strlen - [144] strlen::return#2 = strlen::len#2 + [140] phi() + [141] call strlen + [142] strlen::return#2 = strlen::len#2 to:printf_number_buffer::@14 printf_number_buffer::@14: scope:[printf_number_buffer] from printf_number_buffer::@6 - [145] printf_number_buffer::$19 = strlen::return#2 - [146] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 - [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 + [143] printf_number_buffer::$19 = strlen::return#2 + [144] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 + [145] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 to:printf_number_buffer::@7 printf_number_buffer::@7: scope:[printf_number_buffer] from printf_number_buffer::@14 - [148] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 + [146] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 to:printf_number_buffer::@13 printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buffer::@14 printf_number_buffer::@7 - [149] printf_number_buffer::len#2 = phi( printf_number_buffer::@14/printf_number_buffer::len#0, printf_number_buffer::@7/printf_number_buffer::len#1 ) - [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#2 - printf_number_buffer::len#2 - [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 + [147] printf_number_buffer::len#2 = phi( printf_number_buffer::@14/printf_number_buffer::len#0, printf_number_buffer::@7/printf_number_buffer::len#1 ) + [148] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#2 - printf_number_buffer::len#2 + [149] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 to:printf_number_buffer::@1 printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@13 - [152] phi() + [150] phi() to:printf_number_buffer::@1 printf_number_buffer::@1: scope:[printf_number_buffer] from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@21 - [153] printf_number_buffer::padding#10 = phi( printf_number_buffer/0, printf_number_buffer::@21/printf_number_buffer::padding#1, printf_number_buffer::@13/0 ) - [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 + [151] printf_number_buffer::padding#10 = phi( printf_number_buffer/0, printf_number_buffer::@21/printf_number_buffer::padding#1, printf_number_buffer::@13/0 ) + [152] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 to:printf_number_buffer::@17 printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@1 - [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 + [153] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 to:printf_number_buffer::@16 printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@17 - [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 + [154] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 to:printf_number_buffer::@2 printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffer::@16 - [157] printf_padding::putc#0 = printf_number_buffer::putc#10 - [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10 - [159] call printf_padding + [155] printf_padding::putc#0 = printf_number_buffer::putc#10 + [156] printf_padding::length#0 = (char)printf_number_buffer::padding#10 + [157] call printf_padding to:printf_number_buffer::@2 printf_number_buffer::@2: scope:[printf_number_buffer] from printf_number_buffer::@1 printf_number_buffer::@16 printf_number_buffer::@17 printf_number_buffer::@8 - [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 + [158] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 to:printf_number_buffer::@9 printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffer::@2 - [161] stackpush(char) = printf_number_buffer::buffer_sign#10 - [162] callexecute *printf_number_buffer::putc#10 + [159] stackpush(char) = printf_number_buffer::buffer_sign#10 + [160] callexecute *printf_number_buffer::putc#10 sideeffect stackpullpadding(1) to:printf_number_buffer::@3 printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@2 printf_number_buffer::@9 - [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 + [162] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 to:printf_number_buffer::@18 printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@3 - [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 + [163] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 to:printf_number_buffer::@4 printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buffer::@18 - [166] printf_padding::putc#1 = printf_number_buffer::putc#10 - [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10 - [168] call printf_padding + [164] printf_padding::putc#1 = printf_number_buffer::putc#10 + [165] printf_padding::length#1 = (char)printf_number_buffer::padding#10 + [166] call printf_padding to:printf_number_buffer::@4 printf_number_buffer::@4: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::@18 printf_number_buffer::@3 - [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 + [167] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 to:printf_number_buffer::@11 printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buffer::@4 - [170] phi() - [171] call strupr + [168] phi() + [169] call strupr to:printf_number_buffer::@5 printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffer::@11 printf_number_buffer::@4 - [172] printf_str::putc#0 = printf_number_buffer::putc#10 - [173] call printf_str + [170] printf_str::putc#0 = printf_number_buffer::putc#10 + [171] call printf_str to:printf_number_buffer::@15 printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@5 - [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return + [172] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return to:printf_number_buffer::@20 printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@15 - [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return + [173] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return to:printf_number_buffer::@19 printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@20 - [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 + [174] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 to:printf_number_buffer::@return printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 - [177] printf_padding::putc#2 = printf_number_buffer::putc#10 - [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10 - [179] call printf_padding + [175] printf_padding::putc#2 = printf_number_buffer::putc#10 + [176] printf_padding::length#2 = (char)printf_number_buffer::padding#10 + [177] call printf_padding to:printf_number_buffer::@return printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@12 printf_number_buffer::@15 printf_number_buffer::@19 printf_number_buffer::@20 - [180] return + [178] return to:@return unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) utoa_append: scope:[utoa_append] from utoa::@10 - [181] phi() + [179] phi() to:utoa_append::@1 utoa_append::@1: scope:[utoa_append] from utoa_append utoa_append::@2 - [182] utoa_append::digit#2 = phi( utoa_append/0, utoa_append::@2/utoa_append::digit#1 ) - [182] utoa_append::value#2 = phi( utoa_append/utoa_append::value#0, utoa_append::@2/utoa_append::value#1 ) - [183] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 + [180] utoa_append::digit#2 = phi( utoa_append/0, utoa_append::@2/utoa_append::digit#1 ) + [180] utoa_append::value#2 = phi( utoa_append/utoa_append::value#0, utoa_append::@2/utoa_append::value#1 ) + [181] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 to:utoa_append::@3 utoa_append::@3: scope:[utoa_append] from utoa_append::@1 - [184] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] + [182] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] to:utoa_append::@return utoa_append::@return: scope:[utoa_append] from utoa_append::@3 - [185] return + [183] return to:@return utoa_append::@2: scope:[utoa_append] from utoa_append::@1 - [186] utoa_append::digit#1 = ++ utoa_append::digit#2 - [187] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 + [184] utoa_append::digit#1 = ++ utoa_append::digit#2 + [185] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 to:utoa_append::@1 unsigned int strlen(char *str) strlen: scope:[strlen] from printf_number_buffer::@6 - [188] phi() + [186] phi() to:strlen::@1 strlen::@1: scope:[strlen] from strlen strlen::@2 - [189] strlen::len#2 = phi( strlen/0, strlen::@2/strlen::len#1 ) - [189] strlen::str#3 = phi( strlen/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, strlen::@2/strlen::str#0 ) - [190] if(0!=*strlen::str#3) goto strlen::@2 + [187] strlen::len#2 = phi( strlen/0, strlen::@2/strlen::len#1 ) + [187] strlen::str#3 = phi( strlen/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, strlen::@2/strlen::str#0 ) + [188] if(0!=*strlen::str#3) goto strlen::@2 to:strlen::@return strlen::@return: scope:[strlen] from strlen::@1 - [191] return + [189] return to:@return strlen::@2: scope:[strlen] from strlen::@1 - [192] strlen::len#1 = ++ strlen::len#2 - [193] strlen::str#0 = ++ strlen::str#3 + [190] strlen::len#1 = ++ strlen::len#2 + [191] strlen::str#0 = ++ strlen::str#3 to:strlen::@1 void printf_padding(void (*putc)(char) , char pad , char length) printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 - [194] printf_padding::putc#7 = phi( printf_number_buffer::@10/printf_padding::putc#1, printf_number_buffer::@12/printf_padding::putc#2, printf_number_buffer::@8/printf_padding::putc#0 ) - [194] printf_padding::pad#7 = phi( printf_number_buffer::@10/'0', printf_number_buffer::@12/' ', printf_number_buffer::@8/' ' ) - [194] printf_padding::length#6 = phi( printf_number_buffer::@10/printf_padding::length#1, printf_number_buffer::@12/printf_padding::length#2, printf_number_buffer::@8/printf_padding::length#0 ) + [192] printf_padding::putc#7 = phi( printf_number_buffer::@10/printf_padding::putc#1, printf_number_buffer::@12/printf_padding::putc#2, printf_number_buffer::@8/printf_padding::putc#0 ) + [192] printf_padding::pad#7 = phi( printf_number_buffer::@10/'0', printf_number_buffer::@12/' ', printf_number_buffer::@8/' ' ) + [192] printf_padding::length#6 = phi( printf_number_buffer::@10/printf_padding::length#1, printf_number_buffer::@12/printf_padding::length#2, printf_number_buffer::@8/printf_padding::length#0 ) to:printf_padding::@1 printf_padding::@1: scope:[printf_padding] from printf_padding printf_padding::@3 - [195] printf_padding::i#2 = phi( printf_padding/0, printf_padding::@3/printf_padding::i#1 ) - [196] if(printf_padding::i#2=utoa::digit_value#0) goto utoa::@14 -Simple Condition printf_number_buffer::$35 [222] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 -Simple Condition printf_number_buffer::$2 [223] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@21 -Simple Condition printf_number_buffer::$36 [225] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 -Simple Condition printf_number_buffer::$37 [227] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 -Simple Condition printf_number_buffer::$14 [228] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24 -Simple Condition printf_string::$17 [230] if(0!=printf_string::padding#0) goto printf_string::@5 -Simple Condition printf_string::$18 [232] if(0!=printf_string::padding#0) goto printf_string::@6 +Simple Condition toupper::$1 [217] if(toupper::ch#0<='z') goto toupper::@1 +Simple Condition utoa::$6 [218] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@14 +Simple Condition printf_number_buffer::$35 [220] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 +Simple Condition printf_number_buffer::$2 [221] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@21 +Simple Condition printf_number_buffer::$36 [223] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 +Simple Condition printf_number_buffer::$37 [225] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 +Simple Condition printf_number_buffer::$14 [226] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24 +Simple Condition printf_string::$17 [228] if(0!=printf_string::padding#0) goto printf_string::@5 +Simple Condition printf_string::$18 [230] if(0!=printf_string::padding#0) goto printf_string::@6 Successful SSA optimization Pass2ConditionalJumpSimplification Negating conditional jump and destination [8] if(toupper::ch#0<'a') goto toupper::@2 Negating conditional jump and destination [110] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 @@ -2684,8 +2682,8 @@ Negating conditional jump and destination [127] if(0==printf_number_buffer::form Negating conditional jump and destination [140] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return Negating conditional jump and destination [149] if(0!=printf_string::format_justify_left#0) goto printf_string::@2 Negating conditional jump and destination [152] if(0==printf_string::format_justify_left#0) goto printf_string::@return -Negating conditional jump and destination [223] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -Negating conditional jump and destination [228] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return +Negating conditional jump and destination [221] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 +Negating conditional jump and destination [226] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return Successful SSA optimization Pass2ConditionalJumpSequenceImprovement Constant right-side identified [153] printf_padding::length#3 = (char)printf_string::padding#0 Constant right-side identified [155] printf_padding::length#4 = (char)printf_string::padding#0 @@ -2695,8 +2693,8 @@ Constant printf_padding::length#4 = (char)printf_string::padding#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [149] if(0!=printf_string::format_justify_left#0) goto printf_string::@2 if() condition always true - replacing block destination [152] if(0==printf_string::format_justify_left#0) goto printf_string::@return -if() condition always false - eliminating [230] if(0!=printf_string::padding#0) goto printf_string::@5 -if() condition always false - eliminating [232] if(0!=printf_string::padding#0) goto printf_string::@6 +if() condition always false - eliminating [228] if(0!=printf_string::padding#0) goto printf_string::@5 +if() condition always false - eliminating [230] if(0!=printf_string::padding#0) goto printf_string::@6 Successful SSA optimization Pass2ConstantIfs Simplifying constant evaluating to zero (char)printf_string::padding#0 in Simplifying constant evaluating to zero (char)printf_string::padding#0 in @@ -3042,61 +3040,61 @@ Adding NOP phi() at start of strlen::@3 Adding NOP phi() at start of strupr Adding NOP phi() at start of strupr::@3 CALL GRAPH -Calls in [__start] to main:6 -Calls in [main] to snprintf_init:20 printf_str:22 snputc:24 print:26 snprintf_init:28 printf_str:30 printf_string:32 snputc:34 printf_str:36 snputc:38 print:41 snprintf_init:43 printf_str:45 printf_sint:47 printf_str:49 printf_uint:51 printf_str:53 snputc:55 print:58 snprintf_init:60 printf_str:62 printf_sint:64 printf_str:66 snputc:68 print:71 -Calls in [printf_str] to null:87 -Calls in [printf_string] to printf_str:104 -Calls in [printf_sint] to utoa:114 printf_number_buffer:117 -Calls in [printf_uint] to utoa:126 printf_number_buffer:129 -Calls in [utoa] to utoa_append:168 -Calls in [printf_number_buffer] to strlen:180 null:197 strupr:203 printf_str:207 printf_padding:216 printf_padding:222 printf_padding:228 -Calls in [strupr] to toupper:256 -Calls in [printf_padding] to null:267 +Calls in [__start] to main:4 +Calls in [main] to snprintf_init:18 printf_str:20 snputc:22 print:24 snprintf_init:26 printf_str:28 printf_string:30 snputc:32 printf_str:34 snputc:36 print:39 snprintf_init:41 printf_str:43 printf_sint:45 printf_str:47 printf_uint:49 printf_str:51 snputc:53 print:56 snprintf_init:58 printf_str:60 printf_sint:62 printf_str:64 snputc:66 print:69 +Calls in [printf_str] to null:85 +Calls in [printf_string] to printf_str:102 +Calls in [printf_sint] to utoa:112 printf_number_buffer:115 +Calls in [printf_uint] to utoa:124 printf_number_buffer:127 +Calls in [utoa] to utoa_append:166 +Calls in [printf_number_buffer] to strlen:178 null:195 strupr:201 printf_str:205 printf_padding:214 printf_padding:220 printf_padding:226 +Calls in [strupr] to toupper:254 +Calls in [printf_padding] to null:265 Created 39 initial phi equivalence classes -Coalesced [18] snputc::c#4 = snputc::c#0 -Coalesced [40] screen#42 = screen#1 -Coalesced (already) [57] screen#40 = screen#1 -Coalesced (already) [70] screen#41 = screen#1 -Coalesced [80] printf_str::s#14 = printf_str::s#12 -Coalesced [89] printf_str::s#15 = printf_str::s#0 -Coalesced (already) [91] screen#43 = screen#25 -Coalesced [98] print::msg#8 = print::msg#0 -Coalesced [99] screen#44 = screen#0 -Coalesced [110] printf_sint::value#9 = printf_sint::value#3 -Coalesced [113] utoa::value#17 = utoa::value#1 -Coalesced [116] printf_number_buffer::buffer_sign#13 = printf_number_buffer::buffer_sign#0 -Coalesced [122] printf_sint::value#8 = printf_sint::value#0 -Coalesced [128] printf_number_buffer::buffer_sign#14 = printf_number_buffer::buffer_sign#1 -Coalesced [144] utoa::value#19 = utoa::value#10 -Coalesced [156] utoa::value#20 = utoa::value#3 -Coalesced [157] utoa::started#6 = utoa::started#2 -Coalesced [158] utoa::buffer#24 = utoa::buffer#10 -Coalesced [161] utoa::digit#7 = utoa::digit#1 -Coalesced (already) [162] utoa::value#18 = utoa::value#7 -Coalesced (already) [163] utoa::started#5 = utoa::started#4 -Coalesced (already) [164] utoa::buffer#23 = utoa::buffer#15 -Coalesced [172] utoa::value#21 = utoa::value#0 -Coalesced [173] utoa::buffer#25 = utoa::buffer#4 -Coalesced [186] printf_number_buffer::len#5 = printf_number_buffer::len#1 -Coalesced [206] printf_str::putc#13 = printf_str::putc#0 -Coalesced [214] printf_padding::length#10 = printf_padding::length#2 -Coalesced [215] printf_padding::putc#10 = printf_padding::putc#2 -Coalesced [220] printf_padding::length#9 = printf_padding::length#1 -Coalesced [221] printf_padding::putc#9 = printf_padding::putc#1 -Coalesced [226] printf_padding::length#11 = printf_padding::length#0 -Coalesced [227] printf_padding::putc#11 = printf_padding::putc#0 -Coalesced [230] printf_number_buffer::padding#17 = printf_number_buffer::padding#1 -Coalesced [231] printf_number_buffer::len#4 = printf_number_buffer::len#0 -Coalesced [232] utoa_append::value#6 = utoa_append::value#0 -Coalesced [239] utoa_append::value#7 = utoa_append::value#1 -Coalesced [240] utoa_append::digit#5 = utoa_append::digit#1 -Coalesced [248] strlen::str#6 = strlen::str#0 -Coalesced [249] strlen::len#5 = strlen::len#1 -Coalesced [261] strupr::src#5 = strupr::src#1 -Coalesced [270] printf_padding::i#5 = printf_padding::i#1 -Coalesced [273] toupper::return#7 = toupper::ch#0 -Coalesced [277] toupper::return#6 = toupper::return#0 +Coalesced [16] snputc::c#4 = snputc::c#0 +Coalesced [38] screen#42 = screen#1 +Coalesced (already) [55] screen#40 = screen#1 +Coalesced (already) [68] screen#41 = screen#1 +Coalesced [78] printf_str::s#14 = printf_str::s#12 +Coalesced [87] printf_str::s#15 = printf_str::s#0 +Coalesced (already) [89] screen#43 = screen#25 +Coalesced [96] print::msg#8 = print::msg#0 +Coalesced [97] screen#44 = screen#0 +Coalesced [108] printf_sint::value#9 = printf_sint::value#3 +Coalesced [111] utoa::value#17 = utoa::value#1 +Coalesced [114] printf_number_buffer::buffer_sign#13 = printf_number_buffer::buffer_sign#0 +Coalesced [120] printf_sint::value#8 = printf_sint::value#0 +Coalesced [126] printf_number_buffer::buffer_sign#14 = printf_number_buffer::buffer_sign#1 +Coalesced [142] utoa::value#19 = utoa::value#10 +Coalesced [154] utoa::value#20 = utoa::value#3 +Coalesced [155] utoa::started#6 = utoa::started#2 +Coalesced [156] utoa::buffer#24 = utoa::buffer#10 +Coalesced [159] utoa::digit#7 = utoa::digit#1 +Coalesced (already) [160] utoa::value#18 = utoa::value#7 +Coalesced (already) [161] utoa::started#5 = utoa::started#4 +Coalesced (already) [162] utoa::buffer#23 = utoa::buffer#15 +Coalesced [170] utoa::value#21 = utoa::value#0 +Coalesced [171] utoa::buffer#25 = utoa::buffer#4 +Coalesced [184] printf_number_buffer::len#5 = printf_number_buffer::len#1 +Coalesced [204] printf_str::putc#13 = printf_str::putc#0 +Coalesced [212] printf_padding::length#10 = printf_padding::length#2 +Coalesced [213] printf_padding::putc#10 = printf_padding::putc#2 +Coalesced [218] printf_padding::length#9 = printf_padding::length#1 +Coalesced [219] printf_padding::putc#9 = printf_padding::putc#1 +Coalesced [224] printf_padding::length#11 = printf_padding::length#0 +Coalesced [225] printf_padding::putc#11 = printf_padding::putc#0 +Coalesced [228] printf_number_buffer::padding#17 = printf_number_buffer::padding#1 +Coalesced [229] printf_number_buffer::len#4 = printf_number_buffer::len#0 +Coalesced [230] utoa_append::value#6 = utoa_append::value#0 +Coalesced [237] utoa_append::value#7 = utoa_append::value#1 +Coalesced [238] utoa_append::digit#5 = utoa_append::digit#1 +Coalesced [246] strlen::str#6 = strlen::str#0 +Coalesced [247] strlen::len#5 = strlen::len#1 +Coalesced [259] strupr::src#5 = strupr::src#1 +Coalesced [268] printf_padding::i#5 = printf_padding::i#1 +Coalesced [271] toupper::return#7 = toupper::ch#0 +Coalesced [275] toupper::return#6 = toupper::return#0 Coalesced down to 32 phi equivalence classes Culled Empty Block label __start::@2 Culled Empty Block label __start::@3 @@ -3185,497 +3183,495 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] __snprintf_capacity = 0 - [2] __snprintf_size = 0 - [3] __snprintf_buffer = (char *) 0 + [1] __snprintf_buffer = (char *) 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - [4] phi() - [5] call main + [2] phi() + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 - [6] return + [4] return to:@return __stackcall void snputc(char c) snputc: scope:[snputc] from - [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) - [8] __snprintf_size = ++ __snprintf_size - [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 + [5] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) + [6] __snprintf_size = ++ __snprintf_size + [7] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 to:snputc::@return snputc::@return: scope:[snputc] from snputc snputc::@2 - [10] return + [8] return to:@return snputc::@1: scope:[snputc] from snputc - [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 + [9] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 to:snputc::@2 snputc::@3: scope:[snputc] from snputc::@1 - [12] phi() + [10] phi() to:snputc::@2 snputc::@2: scope:[snputc] from snputc::@1 snputc::@3 - [13] snputc::c#2 = phi( snputc::@3/snputc::c#0, snputc::@1/0 ) - [14] *__snprintf_buffer = snputc::c#2 - [15] __snprintf_buffer = ++ __snprintf_buffer + [11] snputc::c#2 = phi( snputc::@3/snputc::c#0, snputc::@1/0 ) + [12] *__snprintf_buffer = snputc::c#2 + [13] __snprintf_buffer = ++ __snprintf_buffer to:snputc::@return void main() main: scope:[main] from __start::@1 - [16] phi() - [17] call snprintf_init + [14] phi() + [15] call snprintf_init to:main::@1 main::@1: scope:[main] from main - [18] phi() - [19] call printf_str + [16] phi() + [17] call printf_str to:main::@2 main::@2: scope:[main] from main::@1 - [20] stackpush(char) = 0 - [21] callexecute snputc + [18] stackpush(char) = 0 + [19] callexecute snputc sideeffect stackpullpadding(1) - [23] call print + [21] call print to:main::@3 main::@3: scope:[main] from main::@2 - [24] phi() - [25] call snprintf_init + [22] phi() + [23] call snprintf_init to:main::@4 main::@4: scope:[main] from main::@3 - [26] phi() - [27] call printf_str + [24] phi() + [25] call printf_str to:main::@5 main::@5: scope:[main] from main::@4 - [28] phi() - [29] call printf_string + [26] phi() + [27] call printf_string to:main::@6 main::@6: scope:[main] from main::@5 - [30] stackpush(char) = '!' - [31] callexecute snputc + [28] stackpush(char) = '!' + [29] callexecute snputc sideeffect stackpullpadding(1) - [33] call printf_str + [31] call printf_str to:main::@7 main::@7: scope:[main] from main::@6 - [34] stackpush(char) = 0 - [35] callexecute snputc + [32] stackpush(char) = 0 + [33] callexecute snputc sideeffect stackpullpadding(1) - [37] call print + [35] call print to:main::@8 main::@8: scope:[main] from main::@7 - [38] phi() - [39] call snprintf_init + [36] phi() + [37] call snprintf_init to:main::@9 main::@9: scope:[main] from main::@8 - [40] phi() - [41] call printf_str + [38] phi() + [39] call printf_str to:main::@10 main::@10: scope:[main] from main::@9 - [42] phi() - [43] call printf_sint + [40] phi() + [41] call printf_sint to:main::@11 main::@11: scope:[main] from main::@10 - [44] phi() - [45] call printf_str + [42] phi() + [43] call printf_str to:main::@12 main::@12: scope:[main] from main::@11 - [46] phi() - [47] call printf_uint + [44] phi() + [45] call printf_uint to:main::@13 main::@13: scope:[main] from main::@12 - [48] phi() - [49] call printf_str + [46] phi() + [47] call printf_str to:main::@14 main::@14: scope:[main] from main::@13 - [50] stackpush(char) = 0 - [51] callexecute snputc + [48] stackpush(char) = 0 + [49] callexecute snputc sideeffect stackpullpadding(1) - [53] call print + [51] call print to:main::@15 main::@15: scope:[main] from main::@14 - [54] phi() - [55] call snprintf_init + [52] phi() + [53] call snprintf_init to:main::@16 main::@16: scope:[main] from main::@15 - [56] phi() - [57] call printf_str + [54] phi() + [55] call printf_str to:main::@17 main::@17: scope:[main] from main::@16 - [58] phi() - [59] call printf_sint + [56] phi() + [57] call printf_sint to:main::@18 main::@18: scope:[main] from main::@17 - [60] phi() - [61] call printf_str + [58] phi() + [59] call printf_str to:main::@19 main::@19: scope:[main] from main::@18 - [62] stackpush(char) = 0 - [63] callexecute snputc + [60] stackpush(char) = 0 + [61] callexecute snputc sideeffect stackpullpadding(1) - [65] call print + [63] call print to:main::@return main::@return: scope:[main] from main::@19 - [66] return + [64] return to:@return void snprintf_init(char *s , unsigned int n) snprintf_init: scope:[snprintf_init] from main main::@15 main::@3 main::@8 - [67] snprintf_init::n#4 = phi( main/$14, main::@15/6, main::@3/$14, main::@8/$14 ) - [68] __snprintf_capacity = snprintf_init::n#4 - [69] __snprintf_size = 0 - [70] __snprintf_buffer = BUF + [65] snprintf_init::n#4 = phi( main/$14, main::@15/6, main::@3/$14, main::@8/$14 ) + [66] __snprintf_capacity = snprintf_init::n#4 + [67] __snprintf_size = 0 + [68] __snprintf_buffer = BUF to:snprintf_init::@return snprintf_init::@return: scope:[snprintf_init] from snprintf_init - [71] return + [69] return to:@return void printf_str(void (*putc)(char) , const char *s) printf_str: scope:[printf_str] from main::@1 main::@11 main::@13 main::@16 main::@18 main::@4 main::@6 main::@9 printf_number_buffer::@5 printf_string::@1 - [72] printf_str::putc#12 = phi( main::@1/&snputc, main::@11/&snputc, main::@13/&snputc, main::@16/&snputc, main::@18/&snputc, main::@4/&snputc, main::@6/&snputc, main::@9/&snputc, printf_number_buffer::@5/printf_str::putc#0, printf_string::@1/printf_string::putc#0 ) - [72] printf_str::s#12 = phi( main::@1/main::s, main::@11/main::s4, main::@13/main::s5, main::@16/main::s6, main::@18/main::s5, main::@4/main::s1, main::@6/main::s2, main::@9/main::s1, printf_number_buffer::@5/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, printf_string::@1/main::str ) + [70] printf_str::putc#12 = phi( main::@1/&snputc, main::@11/&snputc, main::@13/&snputc, main::@16/&snputc, main::@18/&snputc, main::@4/&snputc, main::@6/&snputc, main::@9/&snputc, printf_number_buffer::@5/printf_str::putc#0, printf_string::@1/printf_string::putc#0 ) + [70] printf_str::s#12 = phi( main::@1/main::s, main::@11/main::s4, main::@13/main::s5, main::@16/main::s6, main::@18/main::s5, main::@4/main::s1, main::@6/main::s2, main::@9/main::s1, printf_number_buffer::@5/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, printf_string::@1/main::str ) to:printf_str::@1 printf_str::@1: scope:[printf_str] from printf_str printf_str::@2 - [73] printf_str::s#11 = phi( printf_str/printf_str::s#12, printf_str::@2/printf_str::s#0 ) - [74] printf_str::c#1 = *printf_str::s#11 - [75] printf_str::s#0 = ++ printf_str::s#11 - [76] if(0!=printf_str::c#1) goto printf_str::@2 + [71] printf_str::s#11 = phi( printf_str/printf_str::s#12, printf_str::@2/printf_str::s#0 ) + [72] printf_str::c#1 = *printf_str::s#11 + [73] printf_str::s#0 = ++ printf_str::s#11 + [74] if(0!=printf_str::c#1) goto printf_str::@2 to:printf_str::@return printf_str::@return: scope:[printf_str] from printf_str::@1 - [77] return + [75] return to:@return printf_str::@2: scope:[printf_str] from printf_str::@1 - [78] stackpush(char) = printf_str::c#1 - [79] callexecute *printf_str::putc#12 + [76] stackpush(char) = printf_str::c#1 + [77] callexecute *printf_str::putc#12 sideeffect stackpullpadding(1) to:printf_str::@1 void print(char *msg) print: scope:[print] from main::@14 main::@19 main::@2 main::@7 - [81] screen#25 = phi( main::@14/screen#1, main::@19/screen#1, main::@2/(char *) 1024, main::@7/screen#1 ) + [79] screen#25 = phi( main::@14/screen#1, main::@19/screen#1, main::@2/(char *) 1024, main::@7/screen#1 ) to:print::@1 print::@1: scope:[print] from print print::@2 - [82] screen#1 = phi( print/screen#25, print::@2/screen#0 ) - [82] print::msg#5 = phi( print/BUF, print::@2/print::msg#0 ) - [83] if(0!=*print::msg#5) goto print::@2 + [80] screen#1 = phi( print/screen#25, print::@2/screen#0 ) + [80] print::msg#5 = phi( print/BUF, print::@2/print::msg#0 ) + [81] if(0!=*print::msg#5) goto print::@2 to:print::@return print::@return: scope:[print] from print::@1 - [84] return + [82] return to:@return print::@2: scope:[print] from print::@1 - [85] *screen#1 = *print::msg#5 - [86] screen#0 = ++ screen#1 - [87] print::msg#0 = ++ print::msg#5 + [83] *screen#1 = *print::msg#5 + [84] screen#0 = ++ screen#1 + [85] print::msg#0 = ++ print::msg#5 to:print::@1 void printf_string(void (*putc)(char) , char *str , char format_min_length , char format_justify_left) printf_string: scope:[printf_string] from main::@5 - [88] phi() + [86] phi() to:printf_string::@1 printf_string::@1: scope:[printf_string] from printf_string - [89] phi() - [90] call printf_str + [87] phi() + [88] call printf_str to:printf_string::@return printf_string::@return: scope:[printf_string] from printf_string::@1 - [91] return + [89] return to:@return void printf_sint(void (*putc)(char) , int value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_sint: scope:[printf_sint] from main::@10 main::@17 - [92] printf_sint::value#3 = phi( main::@10/3, main::@17/$56ce ) - [93] *((char *)&printf_buffer) = 0 - [94] if(printf_sint::value#3<0) goto printf_sint::@1 + [90] printf_sint::value#3 = phi( main::@10/3, main::@17/$56ce ) + [91] *((char *)&printf_buffer) = 0 + [92] if(printf_sint::value#3<0) goto printf_sint::@1 to:printf_sint::@2 printf_sint::@1: scope:[printf_sint] from printf_sint - [95] printf_sint::value#0 = - printf_sint::value#3 - [96] *((char *)&printf_buffer) = '-' + [93] printf_sint::value#0 = - printf_sint::value#3 + [94] *((char *)&printf_buffer) = '-' to:printf_sint::@2 printf_sint::@2: scope:[printf_sint] from printf_sint printf_sint::@1 - [97] printf_sint::value#5 = phi( printf_sint::@1/printf_sint::value#0, printf_sint/printf_sint::value#3 ) - [98] utoa::value#1 = (unsigned int)printf_sint::value#5 - [99] call utoa + [95] printf_sint::value#5 = phi( printf_sint::@1/printf_sint::value#0, printf_sint/printf_sint::value#3 ) + [96] utoa::value#1 = (unsigned int)printf_sint::value#5 + [97] call utoa to:printf_sint::@3 printf_sint::@3: scope:[printf_sint] from printf_sint::@2 - [100] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) - [101] call printf_number_buffer + [98] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) + [99] call printf_number_buffer to:printf_sint::@return printf_sint::@return: scope:[printf_sint] from printf_sint::@3 - [102] return + [100] return to:@return void printf_uint(void (*putc)(char) , unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_uint: scope:[printf_uint] from main::@12 - [103] phi() + [101] phi() to:printf_uint::@1 printf_uint::@1: scope:[printf_uint] from printf_uint - [104] *((char *)&printf_buffer) = 0 - [105] call utoa + [102] *((char *)&printf_buffer) = 0 + [103] call utoa to:printf_uint::@2 printf_uint::@2: scope:[printf_uint] from printf_uint::@1 - [106] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) - [107] call printf_number_buffer + [104] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) + [105] call printf_number_buffer to:printf_uint::@return printf_uint::@return: scope:[printf_uint] from printf_uint::@2 - [108] return + [106] return to:@return void utoa(unsigned int value , char *buffer , char radix) utoa: scope:[utoa] from printf_sint::@2 printf_uint::@1 - [109] utoa::value#10 = phi( printf_sint::@2/utoa::value#1, printf_uint::@1/printf_uint::uvalue#0 ) - [109] utoa::radix#2 = phi( printf_sint::@2/DECIMAL, printf_uint::@1/HEXADECIMAL ) - [110] if(utoa::radix#2==DECIMAL) goto utoa::@1 + [107] utoa::value#10 = phi( printf_sint::@2/utoa::value#1, printf_uint::@1/printf_uint::uvalue#0 ) + [107] utoa::radix#2 = phi( printf_sint::@2/DECIMAL, printf_uint::@1/HEXADECIMAL ) + [108] if(utoa::radix#2==DECIMAL) goto utoa::@1 to:utoa::@2 utoa::@2: scope:[utoa] from utoa - [111] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 + [109] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 to:utoa::@3 utoa::@3: scope:[utoa] from utoa::@2 - [112] if(utoa::radix#2==OCTAL) goto utoa::@1 + [110] if(utoa::radix#2==OCTAL) goto utoa::@1 to:utoa::@4 utoa::@4: scope:[utoa] from utoa::@3 - [113] if(utoa::radix#2==BINARY) goto utoa::@1 + [111] if(utoa::radix#2==BINARY) goto utoa::@1 to:utoa::@5 utoa::@5: scope:[utoa] from utoa::@4 - [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' - [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' - [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' - [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 + [112] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' + [113] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' + [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' + [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 to:utoa::@return utoa::@return: scope:[utoa] from utoa::@5 utoa::@8 - [118] return + [116] return to:@return utoa::@1: scope:[utoa] from utoa utoa::@2 utoa::@3 utoa::@4 - [119] utoa::digit_values#8 = phi( utoa/RADIX_DECIMAL_VALUES, utoa::@2/RADIX_HEXADECIMAL_VALUES, utoa::@3/RADIX_OCTAL_VALUES, utoa::@4/RADIX_BINARY_VALUES ) - [119] utoa::max_digits#7 = phi( utoa/5, utoa::@2/4, utoa::@3/6, utoa::@4/$10 ) + [117] utoa::digit_values#8 = phi( utoa/RADIX_DECIMAL_VALUES, utoa::@2/RADIX_HEXADECIMAL_VALUES, utoa::@3/RADIX_OCTAL_VALUES, utoa::@4/RADIX_BINARY_VALUES ) + [117] utoa::max_digits#7 = phi( utoa/5, utoa::@2/4, utoa::@3/6, utoa::@4/$10 ) to:utoa::@6 utoa::@6: scope:[utoa] from utoa::@1 utoa::@9 - [120] utoa::buffer#10 = phi( utoa::@9/utoa::buffer#15, utoa::@1/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [120] utoa::started#2 = phi( utoa::@9/utoa::started#4, utoa::@1/0 ) - [120] utoa::value#3 = phi( utoa::@9/utoa::value#7, utoa::@1/utoa::value#10 ) - [120] utoa::digit#2 = phi( utoa::@9/utoa::digit#1, utoa::@1/0 ) - [121] utoa::$4 = utoa::max_digits#7 - 1 - [122] if(utoa::digit#2=utoa::digit_value#0) goto utoa::@10 + [128] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 to:utoa::@9 utoa::@9: scope:[utoa] from utoa::@11 utoa::@12 - [131] utoa::buffer#15 = phi( utoa::@12/utoa::buffer#10, utoa::@11/utoa::buffer#4 ) - [131] utoa::started#4 = phi( utoa::@12/utoa::started#2, utoa::@11/1 ) - [131] utoa::value#7 = phi( utoa::@12/utoa::value#3, utoa::@11/utoa::value#0 ) - [132] utoa::digit#1 = ++ utoa::digit#2 + [129] utoa::buffer#15 = phi( utoa::@12/utoa::buffer#10, utoa::@11/utoa::buffer#4 ) + [129] utoa::started#4 = phi( utoa::@12/utoa::started#2, utoa::@11/1 ) + [129] utoa::value#7 = phi( utoa::@12/utoa::value#3, utoa::@11/utoa::value#0 ) + [130] utoa::digit#1 = ++ utoa::digit#2 to:utoa::@6 utoa::@10: scope:[utoa] from utoa::@12 utoa::@7 - [133] utoa_append::buffer#0 = utoa::buffer#10 - [134] utoa_append::value#0 = utoa::value#3 - [135] utoa_append::sub#0 = utoa::digit_value#0 - [136] call utoa_append - [137] utoa_append::return#0 = utoa_append::value#2 + [131] utoa_append::buffer#0 = utoa::buffer#10 + [132] utoa_append::value#0 = utoa::value#3 + [133] utoa_append::sub#0 = utoa::digit_value#0 + [134] call utoa_append + [135] utoa_append::return#0 = utoa_append::value#2 to:utoa::@11 utoa::@11: scope:[utoa] from utoa::@10 - [138] utoa::value#0 = utoa_append::return#0 - [139] utoa::buffer#4 = ++ utoa::buffer#10 + [136] utoa::value#0 = utoa_append::return#0 + [137] utoa::buffer#4 = ++ utoa::buffer#10 to:utoa::@9 void printf_number_buffer(void (*putc)(char) , char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_number_buffer: scope:[printf_number_buffer] from printf_sint::@3 printf_uint::@2 - [140] printf_number_buffer::format_upper_case#10 = phi( printf_sint::@3/0, printf_uint::@2/printf_uint::format_upper_case#0 ) - [140] printf_number_buffer::putc#10 = phi( printf_sint::@3/&snputc, printf_uint::@2/printf_uint::putc#0 ) - [140] printf_number_buffer::buffer_sign#10 = phi( printf_sint::@3/printf_number_buffer::buffer_sign#0, printf_uint::@2/printf_number_buffer::buffer_sign#1 ) - [140] printf_number_buffer::format_zero_padding#10 = phi( printf_sint::@3/0, printf_uint::@2/printf_uint::format_zero_padding#0 ) - [140] printf_number_buffer::format_justify_left#10 = phi( printf_sint::@3/0, printf_uint::@2/printf_uint::format_justify_left#0 ) - [140] printf_number_buffer::format_min_length#2 = phi( printf_sint::@3/0, printf_uint::@2/printf_uint::format_min_length#0 ) - [141] if(0==printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1 + [138] printf_number_buffer::format_upper_case#10 = phi( printf_sint::@3/0, printf_uint::@2/printf_uint::format_upper_case#0 ) + [138] printf_number_buffer::putc#10 = phi( printf_sint::@3/&snputc, printf_uint::@2/printf_uint::putc#0 ) + [138] printf_number_buffer::buffer_sign#10 = phi( printf_sint::@3/printf_number_buffer::buffer_sign#0, printf_uint::@2/printf_number_buffer::buffer_sign#1 ) + [138] printf_number_buffer::format_zero_padding#10 = phi( printf_sint::@3/0, printf_uint::@2/printf_uint::format_zero_padding#0 ) + [138] printf_number_buffer::format_justify_left#10 = phi( printf_sint::@3/0, printf_uint::@2/printf_uint::format_justify_left#0 ) + [138] printf_number_buffer::format_min_length#2 = phi( printf_sint::@3/0, printf_uint::@2/printf_uint::format_min_length#0 ) + [139] if(0==printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1 to:printf_number_buffer::@6 printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffer - [142] phi() - [143] call strlen - [144] strlen::return#2 = strlen::len#2 + [140] phi() + [141] call strlen + [142] strlen::return#2 = strlen::len#2 to:printf_number_buffer::@14 printf_number_buffer::@14: scope:[printf_number_buffer] from printf_number_buffer::@6 - [145] printf_number_buffer::$19 = strlen::return#2 - [146] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 - [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 + [143] printf_number_buffer::$19 = strlen::return#2 + [144] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 + [145] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 to:printf_number_buffer::@7 printf_number_buffer::@7: scope:[printf_number_buffer] from printf_number_buffer::@14 - [148] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 + [146] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 to:printf_number_buffer::@13 printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buffer::@14 printf_number_buffer::@7 - [149] printf_number_buffer::len#2 = phi( printf_number_buffer::@14/printf_number_buffer::len#0, printf_number_buffer::@7/printf_number_buffer::len#1 ) - [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#2 - printf_number_buffer::len#2 - [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 + [147] printf_number_buffer::len#2 = phi( printf_number_buffer::@14/printf_number_buffer::len#0, printf_number_buffer::@7/printf_number_buffer::len#1 ) + [148] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#2 - printf_number_buffer::len#2 + [149] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 to:printf_number_buffer::@1 printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@13 - [152] phi() + [150] phi() to:printf_number_buffer::@1 printf_number_buffer::@1: scope:[printf_number_buffer] from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@21 - [153] printf_number_buffer::padding#10 = phi( printf_number_buffer/0, printf_number_buffer::@21/printf_number_buffer::padding#1, printf_number_buffer::@13/0 ) - [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 + [151] printf_number_buffer::padding#10 = phi( printf_number_buffer/0, printf_number_buffer::@21/printf_number_buffer::padding#1, printf_number_buffer::@13/0 ) + [152] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 to:printf_number_buffer::@17 printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@1 - [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 + [153] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 to:printf_number_buffer::@16 printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@17 - [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 + [154] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 to:printf_number_buffer::@2 printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffer::@16 - [157] printf_padding::putc#0 = printf_number_buffer::putc#10 - [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10 - [159] call printf_padding + [155] printf_padding::putc#0 = printf_number_buffer::putc#10 + [156] printf_padding::length#0 = (char)printf_number_buffer::padding#10 + [157] call printf_padding to:printf_number_buffer::@2 printf_number_buffer::@2: scope:[printf_number_buffer] from printf_number_buffer::@1 printf_number_buffer::@16 printf_number_buffer::@17 printf_number_buffer::@8 - [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 + [158] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 to:printf_number_buffer::@9 printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffer::@2 - [161] stackpush(char) = printf_number_buffer::buffer_sign#10 - [162] callexecute *printf_number_buffer::putc#10 + [159] stackpush(char) = printf_number_buffer::buffer_sign#10 + [160] callexecute *printf_number_buffer::putc#10 sideeffect stackpullpadding(1) to:printf_number_buffer::@3 printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@2 printf_number_buffer::@9 - [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 + [162] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 to:printf_number_buffer::@18 printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@3 - [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 + [163] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 to:printf_number_buffer::@4 printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buffer::@18 - [166] printf_padding::putc#1 = printf_number_buffer::putc#10 - [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10 - [168] call printf_padding + [164] printf_padding::putc#1 = printf_number_buffer::putc#10 + [165] printf_padding::length#1 = (char)printf_number_buffer::padding#10 + [166] call printf_padding to:printf_number_buffer::@4 printf_number_buffer::@4: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::@18 printf_number_buffer::@3 - [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 + [167] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 to:printf_number_buffer::@11 printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buffer::@4 - [170] phi() - [171] call strupr + [168] phi() + [169] call strupr to:printf_number_buffer::@5 printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffer::@11 printf_number_buffer::@4 - [172] printf_str::putc#0 = printf_number_buffer::putc#10 - [173] call printf_str + [170] printf_str::putc#0 = printf_number_buffer::putc#10 + [171] call printf_str to:printf_number_buffer::@15 printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@5 - [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return + [172] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return to:printf_number_buffer::@20 printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@15 - [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return + [173] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return to:printf_number_buffer::@19 printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@20 - [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 + [174] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 to:printf_number_buffer::@return printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 - [177] printf_padding::putc#2 = printf_number_buffer::putc#10 - [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10 - [179] call printf_padding + [175] printf_padding::putc#2 = printf_number_buffer::putc#10 + [176] printf_padding::length#2 = (char)printf_number_buffer::padding#10 + [177] call printf_padding to:printf_number_buffer::@return printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@12 printf_number_buffer::@15 printf_number_buffer::@19 printf_number_buffer::@20 - [180] return + [178] return to:@return unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) utoa_append: scope:[utoa_append] from utoa::@10 - [181] phi() + [179] phi() to:utoa_append::@1 utoa_append::@1: scope:[utoa_append] from utoa_append utoa_append::@2 - [182] utoa_append::digit#2 = phi( utoa_append/0, utoa_append::@2/utoa_append::digit#1 ) - [182] utoa_append::value#2 = phi( utoa_append/utoa_append::value#0, utoa_append::@2/utoa_append::value#1 ) - [183] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 + [180] utoa_append::digit#2 = phi( utoa_append/0, utoa_append::@2/utoa_append::digit#1 ) + [180] utoa_append::value#2 = phi( utoa_append/utoa_append::value#0, utoa_append::@2/utoa_append::value#1 ) + [181] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 to:utoa_append::@3 utoa_append::@3: scope:[utoa_append] from utoa_append::@1 - [184] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] + [182] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] to:utoa_append::@return utoa_append::@return: scope:[utoa_append] from utoa_append::@3 - [185] return + [183] return to:@return utoa_append::@2: scope:[utoa_append] from utoa_append::@1 - [186] utoa_append::digit#1 = ++ utoa_append::digit#2 - [187] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 + [184] utoa_append::digit#1 = ++ utoa_append::digit#2 + [185] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 to:utoa_append::@1 unsigned int strlen(char *str) strlen: scope:[strlen] from printf_number_buffer::@6 - [188] phi() + [186] phi() to:strlen::@1 strlen::@1: scope:[strlen] from strlen strlen::@2 - [189] strlen::len#2 = phi( strlen/0, strlen::@2/strlen::len#1 ) - [189] strlen::str#3 = phi( strlen/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, strlen::@2/strlen::str#0 ) - [190] if(0!=*strlen::str#3) goto strlen::@2 + [187] strlen::len#2 = phi( strlen/0, strlen::@2/strlen::len#1 ) + [187] strlen::str#3 = phi( strlen/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, strlen::@2/strlen::str#0 ) + [188] if(0!=*strlen::str#3) goto strlen::@2 to:strlen::@return strlen::@return: scope:[strlen] from strlen::@1 - [191] return + [189] return to:@return strlen::@2: scope:[strlen] from strlen::@1 - [192] strlen::len#1 = ++ strlen::len#2 - [193] strlen::str#0 = ++ strlen::str#3 + [190] strlen::len#1 = ++ strlen::len#2 + [191] strlen::str#0 = ++ strlen::str#3 to:strlen::@1 void printf_padding(void (*putc)(char) , char pad , char length) printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 - [194] printf_padding::putc#7 = phi( printf_number_buffer::@10/printf_padding::putc#1, printf_number_buffer::@12/printf_padding::putc#2, printf_number_buffer::@8/printf_padding::putc#0 ) - [194] printf_padding::pad#7 = phi( printf_number_buffer::@10/'0', printf_number_buffer::@12/' ', printf_number_buffer::@8/' ' ) - [194] printf_padding::length#6 = phi( printf_number_buffer::@10/printf_padding::length#1, printf_number_buffer::@12/printf_padding::length#2, printf_number_buffer::@8/printf_padding::length#0 ) + [192] printf_padding::putc#7 = phi( printf_number_buffer::@10/printf_padding::putc#1, printf_number_buffer::@12/printf_padding::putc#2, printf_number_buffer::@8/printf_padding::putc#0 ) + [192] printf_padding::pad#7 = phi( printf_number_buffer::@10/'0', printf_number_buffer::@12/' ', printf_number_buffer::@8/' ' ) + [192] printf_padding::length#6 = phi( printf_number_buffer::@10/printf_padding::length#1, printf_number_buffer::@12/printf_padding::length#2, printf_number_buffer::@8/printf_padding::length#0 ) to:printf_padding::@1 printf_padding::@1: scope:[printf_padding] from printf_padding printf_padding::@3 - [195] printf_padding::i#2 = phi( printf_padding/0, printf_padding::@3/printf_padding::i#1 ) - [196] if(printf_padding::i#2=utoa::digit_value#0) goto utoa::@10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [133] utoa_append::buffer#0 = utoa::buffer#10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [134] utoa_append::value#0 = utoa::value#3 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [135] utoa_append::sub#0 = utoa::digit_value#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [137] utoa_append::return#0 = utoa_append::value#2 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [138] utoa::value#0 = utoa_append::return#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } ) always clobbers reg byte a -Statement [144] strlen::return#2 = strlen::len#2 [ printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a +Statement [128] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [131] utoa_append::buffer#0 = utoa::buffer#10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [132] utoa_append::value#0 = utoa::value#3 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [133] utoa_append::sub#0 = utoa::digit_value#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [135] utoa_append::return#0 = utoa_append::value#2 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [136] utoa::value#0 = utoa_append::return#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } ) always clobbers reg byte a +Statement [142] strlen::return#2 = strlen::len#2 [ printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:65 [ printf_number_buffer::format_min_length#2 ] Removing always clobbered register reg byte a as potential for zp[1]:57 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#1 ] Removing always clobbered register reg byte a as potential for zp[1]:68 [ printf_number_buffer::format_upper_case#10 ] -Statement [145] printf_number_buffer::$19 = strlen::return#2 [ printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#2 - printf_number_buffer::len#2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [157] printf_padding::putc#0 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [161] stackpush(char) = printf_number_buffer::buffer_sign#10 [ ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [162] callexecute *printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte x reg byte y +Statement [143] printf_number_buffer::$19 = strlen::return#2 [ printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [148] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#2 - printf_number_buffer::len#2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [149] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [152] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [153] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [154] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [155] printf_padding::putc#0 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a +Statement [159] stackpush(char) = printf_number_buffer::buffer_sign#10 [ ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [160] callexecute *printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte x reg byte y Removing always clobbered register reg byte x as potential for zp[1]:68 [ printf_number_buffer::format_upper_case#10 ] Removing always clobbered register reg byte y as potential for zp[1]:68 [ printf_number_buffer::format_upper_case#10 ] Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [166] printf_padding::putc#1 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [172] printf_str::putc#0 = printf_number_buffer::putc#10 [ printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [177] printf_padding::putc#2 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [183] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:5::printf_sint:43::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [162] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [163] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [164] printf_padding::putc#1 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a +Statement [167] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [170] printf_str::putc#0 = printf_number_buffer::putc#10 [ printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a +Statement [172] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [173] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [174] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [175] printf_padding::putc#2 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a +Statement [181] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:3::printf_sint:41::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ utoa_append::digit#2 utoa_append::digit#1 ] -Statement [184] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:5::printf_sint:43::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Statement [187] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:5::printf_sint:43::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [190] if(0!=*strlen::str#3) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#3 ] ( main:5::printf_sint:43::printf_number_buffer:101::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_sint:59::printf_number_buffer:101::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:47::printf_number_buffer:107::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y +Statement [182] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:3::printf_sint:41::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [185] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:3::printf_sint:41::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [188] if(0!=*strlen::str#3) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#3 ] ( main:3::printf_sint:41::printf_number_buffer:99::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_sint:57::printf_number_buffer:99::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_uint:45::printf_number_buffer:105::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:65 [ printf_number_buffer::format_min_length#2 ] Removing always clobbered register reg byte y as potential for zp[1]:57 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#1 ] -Statement [199] callexecute *printf_padding::putc#7 [ printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] ( main:5::printf_sint:43::printf_number_buffer:101::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:43::printf_number_buffer:101::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:43::printf_number_buffer:101::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte x reg byte y +Statement [197] callexecute *printf_padding::putc#7 [ printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] ( main:3::printf_sint:41::printf_number_buffer:99::printf_padding:157 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_sint:57::printf_number_buffer:99::printf_padding:157 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:105::printf_padding:157 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_sint:41::printf_number_buffer:99::printf_padding:166 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_sint:57::printf_number_buffer:99::printf_padding:166 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:105::printf_padding:166 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_sint:41::printf_number_buffer:99::printf_padding:177 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_sint:57::printf_number_buffer:99::printf_padding:177 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:105::printf_padding:177 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte x reg byte y Removing always clobbered register reg byte x as potential for zp[1]:57 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#1 ] Removing always clobbered register reg byte a as potential for zp[1]:26 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] Removing always clobbered register reg byte x as potential for zp[1]:26 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] @@ -4104,181 +4098,177 @@ Removing always clobbered register reg byte a as potential for zp[1]:10 [ printf Removing always clobbered register reg byte x as potential for zp[1]:10 [ printf_padding::i#2 printf_padding::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:10 [ printf_padding::i#2 printf_padding::i#1 ] Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [204] if(0!=*strupr::src#2) goto strupr::@2 [ strupr::src#2 ] ( main:5::printf_sint:43::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte y -Statement [206] toupper::ch#0 = *strupr::src#2 [ strupr::src#2 toupper::ch#0 ] ( main:5::printf_sint:43::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:5::printf_sint:59::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:5::printf_uint:47::printf_number_buffer:107::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a reg byte y -Statement [210] *strupr::src#2 = strupr::$0 [ strupr::src#2 ] ( main:5::printf_sint:43::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte y -Statement [214] toupper::return#0 = toupper::ch#0 + 'A'-'a' [ toupper::return#0 ] ( main:5::printf_sint:43::printf_number_buffer:101::strupr:171::toupper:207 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:5::printf_sint:59::printf_number_buffer:101::strupr:171::toupper:207 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:5::printf_uint:47::printf_number_buffer:107::strupr:171::toupper:207 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a -Statement [1] __snprintf_capacity = 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [2] __snprintf_size = 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [3] __snprintf_buffer = (char *) 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] ( [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } ) always clobbers reg byte a reg byte x -Statement [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] ( [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } ) always clobbers reg byte a -Statement [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] ( [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } ) always clobbers reg byte a -Statement [14] *__snprintf_buffer = snputc::c#2 [ __snprintf_capacity __snprintf_size __snprintf_buffer ] ( [ __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [20] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_buffer ] { } ) always clobbers reg byte a +Statement [202] if(0!=*strupr::src#2) goto strupr::@2 [ strupr::src#2 ] ( main:3::printf_sint:41::printf_number_buffer:99::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte y +Statement [204] toupper::ch#0 = *strupr::src#2 [ strupr::src#2 toupper::ch#0 ] ( main:3::printf_sint:41::printf_number_buffer:99::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:3::printf_sint:57::printf_number_buffer:99::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:3::printf_uint:45::printf_number_buffer:105::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a reg byte y +Statement [208] *strupr::src#2 = strupr::$0 [ strupr::src#2 ] ( main:3::printf_sint:41::printf_number_buffer:99::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte y +Statement [212] toupper::return#0 = toupper::ch#0 + 'A'-'a' [ toupper::return#0 ] ( main:3::printf_sint:41::printf_number_buffer:99::strupr:169::toupper:205 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:3::printf_sint:57::printf_number_buffer:99::strupr:169::toupper:205 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:3::printf_uint:45::printf_number_buffer:105::strupr:169::toupper:205 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a +Statement [1] __snprintf_buffer = (char *) 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a +Statement [5] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] ( [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:19 [ printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:29 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:33 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:49 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:61 [ screen#1 __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a reg byte x +Statement [7] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] ( [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:19 [ printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:29 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:33 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:49 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:61 [ screen#1 __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [9] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] ( [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:19 [ printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:29 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:33 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:49 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:61 [ screen#1 __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [12] *__snprintf_buffer = snputc::c#2 [ __snprintf_buffer __snprintf_size __snprintf_capacity ] ( [ __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:19 [ printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:29 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:33 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:49 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:61 [ screen#1 __snprintf_buffer __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a reg byte y +Statement [18] stackpush(char) = 0 [ __snprintf_buffer __snprintf_size __snprintf_capacity printf_buffer ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity printf_buffer ] { } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [30] stackpush(char) = '!' [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [28] stackpush(char) = '!' [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [34] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { screen#1 = screen#25 } } ) always clobbers reg byte a +Statement [32] stackpush(char) = 0 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { screen#1 = screen#25 } } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [50] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { screen#1 = screen#25 } } ) always clobbers reg byte a +Statement [48] stackpush(char) = 0 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { screen#1 = screen#25 } } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [62] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a +Statement [60] stackpush(char) = 0 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [68] __snprintf_capacity = snprintf_init::n#4 [ __snprintf_capacity ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity ] { } main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity ] { } main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity ] { } main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity ] { } ) always clobbers reg byte a -Statement [69] __snprintf_size = 0 [ __snprintf_capacity __snprintf_size ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity __snprintf_size ] { } main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { } main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { } main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { } ) always clobbers reg byte a -Statement [70] __snprintf_buffer = BUF [ __snprintf_capacity __snprintf_size __snprintf_buffer ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } ) always clobbers reg byte a -Statement [74] printf_str::c#1 = *printf_str::s#11 [ printf_str::s#11 printf_str::c#1 printf_buffer ] ( main:5::printf_str:19 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:27 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:33 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:41 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:45 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:49 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:57 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:61 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_string:29::printf_str:90 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_sint:43::printf_number_buffer:101::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte y -Statement [79] callexecute *printf_str::putc#12 [ printf_str::s#0 printf_buffer ] ( main:5::printf_str:19 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_str::s#0 printf_buffer ] { } main:5::printf_str:27 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:33 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:41 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:45 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:49 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:57 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:61 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_string:29::printf_str:90 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_sint:43::printf_number_buffer:101::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte x reg byte y +Statement [66] __snprintf_capacity = snprintf_init::n#4 [ __snprintf_capacity ] ( main:3::snprintf_init:15 [ printf_buffer __snprintf_capacity ] { } main:3::snprintf_init:23 [ screen#1 printf_buffer __snprintf_capacity ] { } main:3::snprintf_init:37 [ screen#1 printf_buffer __snprintf_capacity ] { } main:3::snprintf_init:53 [ screen#1 printf_buffer __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [67] __snprintf_size = 0 [ __snprintf_size __snprintf_capacity ] ( main:3::snprintf_init:15 [ printf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:23 [ screen#1 printf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:37 [ screen#1 printf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:53 [ screen#1 printf_buffer __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [68] __snprintf_buffer = BUF [ __snprintf_buffer __snprintf_size __snprintf_capacity ] ( main:3::snprintf_init:15 [ printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:23 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:37 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:53 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [72] printf_str::c#1 = *printf_str::s#11 [ printf_str::s#11 printf_str::c#1 printf_buffer ] ( main:3::printf_str:17 [ __snprintf_buffer __snprintf_size __snprintf_capacity printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:25 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:31 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:39 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:43 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:47 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:55 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:59 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_string:27::printf_str:88 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_sint:41::printf_number_buffer:99::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_sint:57::printf_number_buffer:99::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:105::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte y +Statement [77] callexecute *printf_str::putc#12 [ printf_str::s#0 printf_buffer ] ( main:3::printf_str:17 [ __snprintf_buffer __snprintf_size __snprintf_capacity printf_str::s#0 printf_buffer ] { } main:3::printf_str:25 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:31 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:39 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:43 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:47 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:55 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:59 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_string:27::printf_str:88 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_sint:41::printf_number_buffer:99::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_sint:57::printf_number_buffer:99::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:105::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte x reg byte y Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [83] if(0!=*print::msg#5) goto print::@2 [ screen#1 print::msg#5 ] ( main:5::print:23 [ printf_buffer screen#1 print::msg#5 ] { } main:5::print:37 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:5::print:53 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:5::print:65 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y -Statement [85] *screen#1 = *print::msg#5 [ screen#1 print::msg#5 ] ( main:5::print:23 [ printf_buffer screen#1 print::msg#5 ] { } main:5::print:37 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:5::print:53 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:5::print:65 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y -Statement [93] *((char *)&printf_buffer) = 0 [ printf_sint::value#3 printf_buffer ] ( main:5::printf_sint:43 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_sint::value#3 printf_buffer ] { } main:5::printf_sint:59 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_sint::value#3 printf_buffer ] { } ) always clobbers reg byte a -Statement [94] if(printf_sint::value#3<0) goto printf_sint::@1 [ printf_sint::value#3 printf_buffer ] ( main:5::printf_sint:43 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_sint::value#3 printf_buffer ] { } main:5::printf_sint:59 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_sint::value#3 printf_buffer ] { } ) always clobbers reg byte a -Statement [95] printf_sint::value#0 = - printf_sint::value#3 [ printf_buffer printf_sint::value#0 ] ( main:5::printf_sint:43 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_sint::value#0 ] { } main:5::printf_sint:59 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_sint::value#0 ] { } ) always clobbers reg byte a -Statement [96] *((char *)&printf_buffer) = '-' [ printf_buffer printf_sint::value#0 ] ( main:5::printf_sint:43 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_sint::value#0 ] { } main:5::printf_sint:59 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_sint::value#0 ] { } ) always clobbers reg byte a -Statement [98] utoa::value#1 = (unsigned int)printf_sint::value#5 [ printf_buffer utoa::value#1 ] ( main:5::printf_sint:43 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::value#1 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_sint:59 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::value#1 ] { { utoa::value#1 = utoa::value#10 } } ) always clobbers reg byte a -Statement [100] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#0 ] ( main:5::printf_sint:43 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::buffer_sign#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::buffer_sign#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [104] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_uint:47 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [106] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#1 ] ( main:5::printf_uint:47 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::buffer_sign#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' [ printf_buffer ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' [ printf_buffer ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' [ printf_buffer ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 [ printf_buffer ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [124] *utoa::buffer#10 = DIGITS[utoa::$11] [ printf_buffer utoa::buffer#10 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#10 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#10 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#10 ] { } ) always clobbers reg byte a reg byte y -Statement [125] utoa::buffer#3 = ++ utoa::buffer#10 [ printf_buffer utoa::buffer#3 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#3 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#3 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a -Statement [126] *utoa::buffer#3 = 0 [ printf_buffer ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [127] utoa::$10 = utoa::digit#2 << 1 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { } ) always clobbers reg byte a -Statement [128] utoa::digit_value#0 = utoa::digit_values#8[utoa::$10] [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a reg byte y -Statement [130] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [133] utoa_append::buffer#0 = utoa::buffer#10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [134] utoa_append::value#0 = utoa::value#3 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [135] utoa_append::sub#0 = utoa::digit_value#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [137] utoa_append::return#0 = utoa_append::value#2 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [138] utoa::value#0 = utoa_append::return#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } ) always clobbers reg byte a -Statement [144] strlen::return#2 = strlen::len#2 [ printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a -Statement [145] printf_number_buffer::$19 = strlen::return#2 [ printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 [ printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [81] if(0!=*print::msg#5) goto print::@2 [ screen#1 print::msg#5 ] ( main:3::print:21 [ printf_buffer screen#1 print::msg#5 ] { } main:3::print:35 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:51 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:63 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y +Statement [83] *screen#1 = *print::msg#5 [ screen#1 print::msg#5 ] ( main:3::print:21 [ printf_buffer screen#1 print::msg#5 ] { } main:3::print:35 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:51 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:63 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y +Statement [91] *((char *)&printf_buffer) = 0 [ printf_sint::value#3 printf_buffer ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_sint::value#3 printf_buffer ] { } main:3::printf_sint:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_sint::value#3 printf_buffer ] { } ) always clobbers reg byte a +Statement [92] if(printf_sint::value#3<0) goto printf_sint::@1 [ printf_sint::value#3 printf_buffer ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_sint::value#3 printf_buffer ] { } main:3::printf_sint:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_sint::value#3 printf_buffer ] { } ) always clobbers reg byte a +Statement [93] printf_sint::value#0 = - printf_sint::value#3 [ printf_buffer printf_sint::value#0 ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_sint::value#0 ] { } main:3::printf_sint:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_sint::value#0 ] { } ) always clobbers reg byte a +Statement [94] *((char *)&printf_buffer) = '-' [ printf_buffer printf_sint::value#0 ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_sint::value#0 ] { } main:3::printf_sint:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_sint::value#0 ] { } ) always clobbers reg byte a +Statement [96] utoa::value#1 = (unsigned int)printf_sint::value#5 [ printf_buffer utoa::value#1 ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::value#1 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::value#1 ] { { utoa::value#1 = utoa::value#10 } } ) always clobbers reg byte a +Statement [98] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#0 ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::buffer_sign#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::buffer_sign#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [102] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:3::printf_uint:45 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [104] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#1 ] ( main:3::printf_uint:45 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::buffer_sign#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [112] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' [ printf_buffer ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [113] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' [ printf_buffer ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' [ printf_buffer ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 [ printf_buffer ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [122] *utoa::buffer#10 = DIGITS[utoa::$11] [ printf_buffer utoa::buffer#10 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#10 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#10 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#10 ] { } ) always clobbers reg byte a reg byte y +Statement [123] utoa::buffer#3 = ++ utoa::buffer#10 [ printf_buffer utoa::buffer#3 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#3 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#3 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a +Statement [124] *utoa::buffer#3 = 0 [ printf_buffer ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a reg byte y +Statement [125] utoa::$10 = utoa::digit#2 << 1 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { } ) always clobbers reg byte a +Statement [126] utoa::digit_value#0 = utoa::digit_values#8[utoa::$10] [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a reg byte y +Statement [128] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [131] utoa_append::buffer#0 = utoa::buffer#10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [132] utoa_append::value#0 = utoa::value#3 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [133] utoa_append::sub#0 = utoa::digit_value#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [135] utoa_append::return#0 = utoa_append::value#2 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [136] utoa::value#0 = utoa_append::return#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } ) always clobbers reg byte a +Statement [142] strlen::return#2 = strlen::len#2 [ printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a +Statement [143] printf_number_buffer::$19 = strlen::return#2 [ printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [145] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 [ printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:38 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] -Statement [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#2 - printf_number_buffer::len#2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [157] printf_padding::putc#0 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [161] stackpush(char) = printf_number_buffer::buffer_sign#10 [ ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [162] callexecute *printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte x reg byte y +Statement [148] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#2 - printf_number_buffer::len#2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [149] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [152] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [153] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [154] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [155] printf_padding::putc#0 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a +Statement [156] printf_padding::length#0 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a +Statement [158] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [159] stackpush(char) = printf_number_buffer::buffer_sign#10 [ ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [160] callexecute *printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte x reg byte y Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [166] printf_padding::putc#1 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [172] printf_str::putc#0 = printf_number_buffer::putc#10 [ printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [177] printf_padding::putc#2 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_padding::putc#2 printf_padding::length#2 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [183] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:5::printf_sint:43::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [184] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:5::printf_sint:43::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Statement [187] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:5::printf_sint:43::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [190] if(0!=*strlen::str#3) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#3 ] ( main:5::printf_sint:43::printf_number_buffer:101::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_sint:59::printf_number_buffer:101::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:47::printf_number_buffer:107::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y -Statement [196] if(printf_padding::i#2=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:3::printf_sint:41::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [182] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:3::printf_sint:41::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [185] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:3::printf_sint:41::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [188] if(0!=*strlen::str#3) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#3 ] ( main:3::printf_sint:41::printf_number_buffer:99::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_sint:57::printf_number_buffer:99::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_uint:45::printf_number_buffer:105::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y +Statement [194] if(printf_padding::i#2=utoa::digit_value#0) goto utoa::@10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [133] utoa_append::buffer#0 = utoa::buffer#10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [134] utoa_append::value#0 = utoa::value#3 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [135] utoa_append::sub#0 = utoa::digit_value#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [137] utoa_append::return#0 = utoa_append::value#2 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [138] utoa::value#0 = utoa_append::return#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:5::printf_sint:43::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_sint:59::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::value#1 = utoa::value#10 } } main:5::printf_uint:47::utoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } ) always clobbers reg byte a -Statement [144] strlen::return#2 = strlen::len#2 [ printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a -Statement [145] printf_number_buffer::$19 = strlen::return#2 [ printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 [ printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#2 - printf_number_buffer::len#2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [157] printf_padding::putc#0 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [161] stackpush(char) = printf_number_buffer::buffer_sign#10 [ ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [162] callexecute *printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte x reg byte y +Statement [81] if(0!=*print::msg#5) goto print::@2 [ screen#1 print::msg#5 ] ( main:3::print:21 [ printf_buffer screen#1 print::msg#5 ] { } main:3::print:35 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:51 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:63 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y +Statement [83] *screen#1 = *print::msg#5 [ screen#1 print::msg#5 ] ( main:3::print:21 [ printf_buffer screen#1 print::msg#5 ] { } main:3::print:35 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:51 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:63 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y +Statement [91] *((char *)&printf_buffer) = 0 [ printf_sint::value#3 printf_buffer ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_sint::value#3 printf_buffer ] { } main:3::printf_sint:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_sint::value#3 printf_buffer ] { } ) always clobbers reg byte a +Statement [92] if(printf_sint::value#3<0) goto printf_sint::@1 [ printf_sint::value#3 printf_buffer ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_sint::value#3 printf_buffer ] { } main:3::printf_sint:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_sint::value#3 printf_buffer ] { } ) always clobbers reg byte a +Statement [93] printf_sint::value#0 = - printf_sint::value#3 [ printf_buffer printf_sint::value#0 ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_sint::value#0 ] { } main:3::printf_sint:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_sint::value#0 ] { } ) always clobbers reg byte a +Statement [94] *((char *)&printf_buffer) = '-' [ printf_buffer printf_sint::value#0 ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_sint::value#0 ] { } main:3::printf_sint:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_sint::value#0 ] { } ) always clobbers reg byte a +Statement [96] utoa::value#1 = (unsigned int)printf_sint::value#5 [ printf_buffer utoa::value#1 ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::value#1 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::value#1 ] { { utoa::value#1 = utoa::value#10 } } ) always clobbers reg byte a +Statement [98] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#0 ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::buffer_sign#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::buffer_sign#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [102] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:3::printf_uint:45 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [104] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#1 ] ( main:3::printf_uint:45 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::buffer_sign#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [112] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' [ printf_buffer ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [113] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' [ printf_buffer ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' [ printf_buffer ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 [ printf_buffer ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [122] *utoa::buffer#10 = DIGITS[utoa::$11] [ printf_buffer utoa::buffer#10 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#10 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#10 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#10 ] { } ) always clobbers reg byte a reg byte y +Statement [123] utoa::buffer#3 = ++ utoa::buffer#10 [ printf_buffer utoa::buffer#3 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#3 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#3 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a +Statement [124] *utoa::buffer#3 = 0 [ printf_buffer ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a reg byte y +Statement [125] utoa::$10 = utoa::digit#2 << 1 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { } ) always clobbers reg byte a +Statement [126] utoa::digit_value#0 = utoa::digit_values#8[utoa::$10] [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a reg byte y +Statement [128] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [131] utoa_append::buffer#0 = utoa::buffer#10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [132] utoa_append::value#0 = utoa::value#3 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [133] utoa_append::sub#0 = utoa::digit_value#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [135] utoa_append::return#0 = utoa_append::value#2 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [136] utoa::value#0 = utoa_append::return#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:3::printf_sint:41::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_sint:57::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::value#1 = utoa::value#10 } } main:3::printf_uint:45::utoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } ) always clobbers reg byte a +Statement [142] strlen::return#2 = strlen::len#2 [ printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a +Statement [143] printf_number_buffer::$19 = strlen::return#2 [ printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [145] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 [ printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [148] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#2 - printf_number_buffer::len#2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [149] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [152] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [153] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [154] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [155] printf_padding::putc#0 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a +Statement [156] printf_padding::length#0 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a +Statement [158] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [159] stackpush(char) = printf_number_buffer::buffer_sign#10 [ ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [160] callexecute *printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_sint:57::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte x reg byte y Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [166] printf_padding::putc#1 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [172] printf_str::putc#0 = printf_number_buffer::putc#10 [ printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [177] printf_padding::putc#2 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_padding::putc#2 printf_padding::length#2 ] ( main:5::printf_sint:43::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:59::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [183] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:5::printf_sint:43::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [184] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:5::printf_sint:43::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Statement [187] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:5::printf_sint:43::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_sint:59::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:105::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [190] if(0!=*strlen::str#3) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#3 ] ( main:5::printf_sint:43::printf_number_buffer:101::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_sint:59::printf_number_buffer:101::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:47::printf_number_buffer:107::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y -Statement [196] if(printf_padding::i#2=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:3::printf_sint:41::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [182] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:3::printf_sint:41::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [185] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:3::printf_sint:41::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_sint:57::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa::value#1 = utoa::value#10 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:103::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [188] if(0!=*strlen::str#3) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#3 ] ( main:3::printf_sint:41::printf_number_buffer:99::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_sint:57::printf_number_buffer:99::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_uint:45::printf_number_buffer:105::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y +Statement [194] if(printf_padding::i#2capacity. - /// Used to hold state while printing - .label __snprintf_size = $14 /// Current position in the buffer being filled ( initially *s passed to snprintf() /// Used to hold state while printing - .label __snprintf_buffer = $16 + .label __snprintf_buffer = $14 .label screen = $e .segment Code // __start @@ -4477,34 +4459,24 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [1] __snprintf_capacity = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z __snprintf_capacity - lda #>0 - sta.z __snprintf_capacity+1 - // [2] __snprintf_size = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z __snprintf_size - lda #>0 - sta.z __snprintf_size+1 - // [3] __snprintf_buffer = (char *) 0 -- pbuz1=pbuc1 + // [1] __snprintf_buffer = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z __snprintf_buffer lda #>0 sta.z __snprintf_buffer+1 - // [4] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] + // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: - // [5] call main - // [16] phi from __start::@1 to main [phi:__start::@1->main] + // [3] call main + // [14] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main jmp __breturn // __start::@return __breturn: - // [6] return + // [4] return rts } // snputc @@ -4514,60 +4486,60 @@ __start: { // void snputc(__register(X) char c) snputc: { .const OFFSET_STACK_C = 0 - // [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) -- vbuxx=_stackidxbyte_vbuc1 + // [5] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) -- vbuxx=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_C,x tax - // [8] __snprintf_size = ++ __snprintf_size -- vwuz1=_inc_vwuz1 - inc.z __snprintf_size + // [6] __snprintf_size = ++ __snprintf_size -- vwum1=_inc_vwum1 + inc __snprintf_size bne !+ - inc.z __snprintf_size+1 + inc __snprintf_size+1 !: - // [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 -- vwuz1_le_vwuz2_then_la1 - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + // [7] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 -- vwum1_le_vwum2_then_la1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne !+ - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity beq __b1 !: bcc __b1 jmp __breturn // snputc::@return __breturn: - // [10] return + // [8] return rts // snputc::@1 __b1: - // [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 -- vwuz1_neq_vwuz2_then_la1 - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + // [9] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 -- vwum1_neq_vwum2_then_la1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne __b3_from___b1 - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity bne __b3_from___b1 - // [13] phi from snputc::@1 to snputc::@2 [phi:snputc::@1->snputc::@2] + // [11] phi from snputc::@1 to snputc::@2 [phi:snputc::@1->snputc::@2] __b2_from___b1: - // [13] phi snputc::c#2 = 0 [phi:snputc::@1->snputc::@2#0] -- vbuxx=vbuc1 + // [11] phi snputc::c#2 = 0 [phi:snputc::@1->snputc::@2#0] -- vbuxx=vbuc1 ldx #0 jmp __b2 - // [12] phi from snputc::@1 to snputc::@3 [phi:snputc::@1->snputc::@3] + // [10] phi from snputc::@1 to snputc::@3 [phi:snputc::@1->snputc::@3] __b3_from___b1: jmp __b3 // snputc::@3 __b3: - // [13] phi from snputc::@3 to snputc::@2 [phi:snputc::@3->snputc::@2] + // [11] phi from snputc::@3 to snputc::@2 [phi:snputc::@3->snputc::@2] __b2_from___b3: - // [13] phi snputc::c#2 = snputc::c#0 [phi:snputc::@3->snputc::@2#0] -- register_copy + // [11] phi snputc::c#2 = snputc::c#0 [phi:snputc::@3->snputc::@2#0] -- register_copy jmp __b2 // snputc::@2 __b2: - // [14] *__snprintf_buffer = snputc::c#2 -- _deref_pbuz1=vbuxx + // [12] *__snprintf_buffer = snputc::c#2 -- _deref_pbuz1=vbuxx // Append char txa ldy #0 sta (__snprintf_buffer),y - // [15] __snprintf_buffer = ++ __snprintf_buffer -- pbuz1=_inc_pbuz1 + // [13] __snprintf_buffer = ++ __snprintf_buffer -- pbuz1=_inc_pbuz1 inc.z __snprintf_buffer bne !+ inc.z __snprintf_buffer+1 @@ -4576,29 +4548,29 @@ snputc: { } // main main: { - // [17] call snprintf_init - // [67] phi from main to snprintf_init [phi:main->snprintf_init] + // [15] call snprintf_init + // [65] phi from main to snprintf_init [phi:main->snprintf_init] snprintf_init_from_main: - // [67] phi snprintf_init::n#4 = $14 [phi:main->snprintf_init#0] -- vwuz1=vbuc1 + // [65] phi snprintf_init::n#4 = $14 [phi:main->snprintf_init#0] -- vwuz1=vbuc1 lda #<$14 sta.z snprintf_init.n lda #>$14 sta.z snprintf_init.n+1 jsr snprintf_init - // [18] phi from main to main::@1 [phi:main->main::@1] + // [16] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: jmp __b1 // main::@1 __b1: - // [19] call printf_str - // [72] phi from main::@1 to printf_str [phi:main::@1->printf_str] + // [17] call printf_str + // [70] phi from main::@1 to printf_str [phi:main::@1->printf_str] printf_str_from___b1: - // [72] phi printf_str::putc#12 = &snputc [phi:main::@1->printf_str#0] -- pprz1=pprc1 + // [70] phi printf_str::putc#12 = &snputc [phi:main::@1->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::s [phi:main::@1->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::s [phi:main::@1->printf_str#1] -- pbuz1=pbuc1 lda #s @@ -4607,83 +4579,83 @@ main: { jmp __b2 // main::@2 __b2: - // [20] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [18] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [21] callexecute snputc -- call_vprc1 + // [19] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla - // [23] call print - // [81] phi from main::@2 to print [phi:main::@2->print] + // [21] call print + // [79] phi from main::@2 to print [phi:main::@2->print] print_from___b2: - // [81] phi screen#25 = (char *) 1024 [phi:main::@2->print#0] -- pbuz1=pbuc1 + // [79] phi screen#25 = (char *) 1024 [phi:main::@2->print#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 sta.z screen+1 jsr print - // [24] phi from main::@2 to main::@3 [phi:main::@2->main::@3] + // [22] phi from main::@2 to main::@3 [phi:main::@2->main::@3] __b3_from___b2: jmp __b3 // main::@3 __b3: - // [25] call snprintf_init - // [67] phi from main::@3 to snprintf_init [phi:main::@3->snprintf_init] + // [23] call snprintf_init + // [65] phi from main::@3 to snprintf_init [phi:main::@3->snprintf_init] snprintf_init_from___b3: - // [67] phi snprintf_init::n#4 = $14 [phi:main::@3->snprintf_init#0] -- vwuz1=vbuc1 + // [65] phi snprintf_init::n#4 = $14 [phi:main::@3->snprintf_init#0] -- vwuz1=vbuc1 lda #<$14 sta.z snprintf_init.n lda #>$14 sta.z snprintf_init.n+1 jsr snprintf_init - // [26] phi from main::@3 to main::@4 [phi:main::@3->main::@4] + // [24] phi from main::@3 to main::@4 [phi:main::@3->main::@4] __b4_from___b3: jmp __b4 // main::@4 __b4: - // [27] call printf_str - // [72] phi from main::@4 to printf_str [phi:main::@4->printf_str] + // [25] call printf_str + // [70] phi from main::@4 to printf_str [phi:main::@4->printf_str] printf_str_from___b4: - // [72] phi printf_str::putc#12 = &snputc [phi:main::@4->printf_str#0] -- pprz1=pprc1 + // [70] phi printf_str::putc#12 = &snputc [phi:main::@4->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::s1 [phi:main::@4->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::s1 [phi:main::@4->printf_str#1] -- pbuz1=pbuc1 lda #s1 sta.z printf_str.s+1 jsr printf_str - // [28] phi from main::@4 to main::@5 [phi:main::@4->main::@5] + // [26] phi from main::@4 to main::@5 [phi:main::@4->main::@5] __b5_from___b4: jmp __b5 // main::@5 __b5: - // [29] call printf_string - // [88] phi from main::@5 to printf_string [phi:main::@5->printf_string] + // [27] call printf_string + // [86] phi from main::@5 to printf_string [phi:main::@5->printf_string] printf_string_from___b5: jsr printf_string jmp __b6 // main::@6 __b6: - // [30] stackpush(char) = '!' -- _stackpushbyte_=vbuc1 + // [28] stackpush(char) = '!' -- _stackpushbyte_=vbuc1 lda #'!' pha - // [31] callexecute snputc -- call_vprc1 + // [29] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla - // [33] call printf_str - // [72] phi from main::@6 to printf_str [phi:main::@6->printf_str] + // [31] call printf_str + // [70] phi from main::@6 to printf_str [phi:main::@6->printf_str] printf_str_from___b6: - // [72] phi printf_str::putc#12 = &snputc [phi:main::@6->printf_str#0] -- pprz1=pprc1 + // [70] phi printf_str::putc#12 = &snputc [phi:main::@6->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::s2 [phi:main::@6->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::s2 [phi:main::@6->printf_str#1] -- pbuz1=pbuc1 lda #s2 @@ -4692,107 +4664,107 @@ main: { jmp __b7 // main::@7 __b7: - // [34] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [32] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [35] callexecute snputc -- call_vprc1 + // [33] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla - // [37] call print - // [81] phi from main::@7 to print [phi:main::@7->print] + // [35] call print + // [79] phi from main::@7 to print [phi:main::@7->print] print_from___b7: - // [81] phi screen#25 = screen#1 [phi:main::@7->print#0] -- register_copy + // [79] phi screen#25 = screen#1 [phi:main::@7->print#0] -- register_copy jsr print - // [38] phi from main::@7 to main::@8 [phi:main::@7->main::@8] + // [36] phi from main::@7 to main::@8 [phi:main::@7->main::@8] __b8_from___b7: jmp __b8 // main::@8 __b8: - // [39] call snprintf_init - // [67] phi from main::@8 to snprintf_init [phi:main::@8->snprintf_init] + // [37] call snprintf_init + // [65] phi from main::@8 to snprintf_init [phi:main::@8->snprintf_init] snprintf_init_from___b8: - // [67] phi snprintf_init::n#4 = $14 [phi:main::@8->snprintf_init#0] -- vwuz1=vbuc1 + // [65] phi snprintf_init::n#4 = $14 [phi:main::@8->snprintf_init#0] -- vwuz1=vbuc1 lda #<$14 sta.z snprintf_init.n lda #>$14 sta.z snprintf_init.n+1 jsr snprintf_init - // [40] phi from main::@8 to main::@9 [phi:main::@8->main::@9] + // [38] phi from main::@8 to main::@9 [phi:main::@8->main::@9] __b9_from___b8: jmp __b9 // main::@9 __b9: - // [41] call printf_str - // [72] phi from main::@9 to printf_str [phi:main::@9->printf_str] + // [39] call printf_str + // [70] phi from main::@9 to printf_str [phi:main::@9->printf_str] printf_str_from___b9: - // [72] phi printf_str::putc#12 = &snputc [phi:main::@9->printf_str#0] -- pprz1=pprc1 + // [70] phi printf_str::putc#12 = &snputc [phi:main::@9->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::s1 [phi:main::@9->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::s1 [phi:main::@9->printf_str#1] -- pbuz1=pbuc1 lda #s1 sta.z printf_str.s+1 jsr printf_str - // [42] phi from main::@9 to main::@10 [phi:main::@9->main::@10] + // [40] phi from main::@9 to main::@10 [phi:main::@9->main::@10] __b10_from___b9: jmp __b10 // main::@10 __b10: - // [43] call printf_sint - // [92] phi from main::@10 to printf_sint [phi:main::@10->printf_sint] + // [41] call printf_sint + // [90] phi from main::@10 to printf_sint [phi:main::@10->printf_sint] printf_sint_from___b10: - // [92] phi printf_sint::value#3 = 3 [phi:main::@10->printf_sint#0] -- vwsz1=vbsc1 + // [90] phi printf_sint::value#3 = 3 [phi:main::@10->printf_sint#0] -- vwsz1=vbsc1 lda #<3 sta.z printf_sint.value lda #>3 sta.z printf_sint.value+1 jsr printf_sint - // [44] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + // [42] phi from main::@10 to main::@11 [phi:main::@10->main::@11] __b11_from___b10: jmp __b11 // main::@11 __b11: - // [45] call printf_str - // [72] phi from main::@11 to printf_str [phi:main::@11->printf_str] + // [43] call printf_str + // [70] phi from main::@11 to printf_str [phi:main::@11->printf_str] printf_str_from___b11: - // [72] phi printf_str::putc#12 = &snputc [phi:main::@11->printf_str#0] -- pprz1=pprc1 + // [70] phi printf_str::putc#12 = &snputc [phi:main::@11->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::s4 [phi:main::@11->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::s4 [phi:main::@11->printf_str#1] -- pbuz1=pbuc1 lda #s4 sta.z printf_str.s+1 jsr printf_str - // [46] phi from main::@11 to main::@12 [phi:main::@11->main::@12] + // [44] phi from main::@11 to main::@12 [phi:main::@11->main::@12] __b12_from___b11: jmp __b12 // main::@12 __b12: - // [47] call printf_uint - // [103] phi from main::@12 to printf_uint [phi:main::@12->printf_uint] + // [45] call printf_uint + // [101] phi from main::@12 to printf_uint [phi:main::@12->printf_uint] printf_uint_from___b12: jsr printf_uint - // [48] phi from main::@12 to main::@13 [phi:main::@12->main::@13] + // [46] phi from main::@12 to main::@13 [phi:main::@12->main::@13] __b13_from___b12: jmp __b13 // main::@13 __b13: - // [49] call printf_str - // [72] phi from main::@13 to printf_str [phi:main::@13->printf_str] + // [47] call printf_str + // [70] phi from main::@13 to printf_str [phi:main::@13->printf_str] printf_str_from___b13: - // [72] phi printf_str::putc#12 = &snputc [phi:main::@13->printf_str#0] -- pprz1=pprc1 + // [70] phi printf_str::putc#12 = &snputc [phi:main::@13->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::s5 [phi:main::@13->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::s5 [phi:main::@13->printf_str#1] -- pbuz1=pbuc1 lda #s5 @@ -4801,79 +4773,79 @@ main: { jmp __b14 // main::@14 __b14: - // [50] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [48] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [51] callexecute snputc -- call_vprc1 + // [49] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla - // [53] call print - // [81] phi from main::@14 to print [phi:main::@14->print] + // [51] call print + // [79] phi from main::@14 to print [phi:main::@14->print] print_from___b14: - // [81] phi screen#25 = screen#1 [phi:main::@14->print#0] -- register_copy + // [79] phi screen#25 = screen#1 [phi:main::@14->print#0] -- register_copy jsr print - // [54] phi from main::@14 to main::@15 [phi:main::@14->main::@15] + // [52] phi from main::@14 to main::@15 [phi:main::@14->main::@15] __b15_from___b14: jmp __b15 // main::@15 __b15: - // [55] call snprintf_init - // [67] phi from main::@15 to snprintf_init [phi:main::@15->snprintf_init] + // [53] call snprintf_init + // [65] phi from main::@15 to snprintf_init [phi:main::@15->snprintf_init] snprintf_init_from___b15: - // [67] phi snprintf_init::n#4 = 6 [phi:main::@15->snprintf_init#0] -- vwuz1=vbuc1 + // [65] phi snprintf_init::n#4 = 6 [phi:main::@15->snprintf_init#0] -- vwuz1=vbuc1 lda #<6 sta.z snprintf_init.n lda #>6 sta.z snprintf_init.n+1 jsr snprintf_init - // [56] phi from main::@15 to main::@16 [phi:main::@15->main::@16] + // [54] phi from main::@15 to main::@16 [phi:main::@15->main::@16] __b16_from___b15: jmp __b16 // main::@16 __b16: - // [57] call printf_str - // [72] phi from main::@16 to printf_str [phi:main::@16->printf_str] + // [55] call printf_str + // [70] phi from main::@16 to printf_str [phi:main::@16->printf_str] printf_str_from___b16: - // [72] phi printf_str::putc#12 = &snputc [phi:main::@16->printf_str#0] -- pprz1=pprc1 + // [70] phi printf_str::putc#12 = &snputc [phi:main::@16->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::s6 [phi:main::@16->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::s6 [phi:main::@16->printf_str#1] -- pbuz1=pbuc1 lda #s6 sta.z printf_str.s+1 jsr printf_str - // [58] phi from main::@16 to main::@17 [phi:main::@16->main::@17] + // [56] phi from main::@16 to main::@17 [phi:main::@16->main::@17] __b17_from___b16: jmp __b17 // main::@17 __b17: - // [59] call printf_sint - // [92] phi from main::@17 to printf_sint [phi:main::@17->printf_sint] + // [57] call printf_sint + // [90] phi from main::@17 to printf_sint [phi:main::@17->printf_sint] printf_sint_from___b17: - // [92] phi printf_sint::value#3 = $56ce [phi:main::@17->printf_sint#0] -- vwsz1=vwsc1 + // [90] phi printf_sint::value#3 = $56ce [phi:main::@17->printf_sint#0] -- vwsz1=vwsc1 lda #<$56ce sta.z printf_sint.value lda #>$56ce sta.z printf_sint.value+1 jsr printf_sint - // [60] phi from main::@17 to main::@18 [phi:main::@17->main::@18] + // [58] phi from main::@17 to main::@18 [phi:main::@17->main::@18] __b18_from___b17: jmp __b18 // main::@18 __b18: - // [61] call printf_str - // [72] phi from main::@18 to printf_str [phi:main::@18->printf_str] + // [59] call printf_str + // [70] phi from main::@18 to printf_str [phi:main::@18->printf_str] printf_str_from___b18: - // [72] phi printf_str::putc#12 = &snputc [phi:main::@18->printf_str#0] -- pprz1=pprc1 + // [70] phi printf_str::putc#12 = &snputc [phi:main::@18->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::s5 [phi:main::@18->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::s5 [phi:main::@18->printf_str#1] -- pbuz1=pbuc1 lda #s5 @@ -4882,22 +4854,22 @@ main: { jmp __b19 // main::@19 __b19: - // [62] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [60] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [63] callexecute snputc -- call_vprc1 + // [61] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla - // [65] call print - // [81] phi from main::@19 to print [phi:main::@19->print] + // [63] call print + // [79] phi from main::@19 to print [phi:main::@19->print] print_from___b19: - // [81] phi screen#25 = screen#1 [phi:main::@19->print#0] -- register_copy + // [79] phi screen#25 = screen#1 [phi:main::@19->print#0] -- register_copy jsr print jmp __breturn // main::@return __breturn: - // [66] return + // [64] return rts .segment Data s: .text "hello world! " @@ -4921,17 +4893,17 @@ main: { // void snprintf_init(char *s, __zp(2) unsigned int n) snprintf_init: { .label n = 2 - // [68] __snprintf_capacity = snprintf_init::n#4 -- vwuz1=vwuz2 + // [66] __snprintf_capacity = snprintf_init::n#4 -- vwum1=vwuz2 lda.z n - sta.z __snprintf_capacity + sta __snprintf_capacity lda.z n+1 - sta.z __snprintf_capacity+1 - // [69] __snprintf_size = 0 -- vwuz1=vbuc1 + sta __snprintf_capacity+1 + // [67] __snprintf_size = 0 -- vwum1=vbuc1 lda #<0 - sta.z __snprintf_size + sta __snprintf_size lda #>0 - sta.z __snprintf_size+1 - // [70] __snprintf_buffer = BUF -- pbuz1=pbuc1 + sta __snprintf_size+1 + // [68] __snprintf_buffer = BUF -- pbuz1=pbuc1 lda #BUF @@ -4939,7 +4911,7 @@ snprintf_init: { jmp __breturn // snprintf_init::@return __breturn: - // [71] return + // [69] return rts } // printf_str @@ -4948,34 +4920,34 @@ snprintf_init: { printf_str: { .label s = 6 .label putc = 2 - // [73] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] + // [71] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] __b1_from_printf_str: __b1_from___b2: - // [73] phi printf_str::s#11 = printf_str::s#12 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy + // [71] phi printf_str::s#11 = printf_str::s#12 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy jmp __b1 // printf_str::@1 __b1: - // [74] printf_str::c#1 = *printf_str::s#11 -- vbuaa=_deref_pbuz1 + // [72] printf_str::c#1 = *printf_str::s#11 -- vbuaa=_deref_pbuz1 ldy #0 lda (s),y - // [75] printf_str::s#0 = ++ printf_str::s#11 -- pbuz1=_inc_pbuz1 + // [73] printf_str::s#0 = ++ printf_str::s#11 -- pbuz1=_inc_pbuz1 inc.z s bne !+ inc.z s+1 !: - // [76] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 + // [74] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 cmp #0 bne __b2 jmp __breturn // printf_str::@return __breturn: - // [77] return + // [75] return rts // printf_str::@2 __b2: - // [78] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa + // [76] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa pha - // [79] callexecute *printf_str::putc#12 -- call__deref_pprz1 + // [77] callexecute *printf_str::putc#12 -- call__deref_pprz1 jsr icall6 // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla @@ -4988,10 +4960,10 @@ printf_str: { // void print(__zp(6) char *msg) print: { .label msg = 6 - // [82] phi from print to print::@1 [phi:print->print::@1] + // [80] phi from print to print::@1 [phi:print->print::@1] __b1_from_print: - // [82] phi screen#1 = screen#25 [phi:print->print::@1#0] -- register_copy - // [82] phi print::msg#5 = BUF [phi:print->print::@1#1] -- pbuz1=pbuc1 + // [80] phi screen#1 = screen#25 [phi:print->print::@1#0] -- register_copy + // [80] phi print::msg#5 = BUF [phi:print->print::@1#1] -- pbuz1=pbuc1 lda #BUF @@ -4999,7 +4971,7 @@ print: { jmp __b1 // print::@1 __b1: - // [83] if(0!=*print::msg#5) goto print::@2 -- 0_neq__deref_pbuz1_then_la1 + // [81] if(0!=*print::msg#5) goto print::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (msg),y cmp #0 @@ -5007,29 +4979,29 @@ print: { jmp __breturn // print::@return __breturn: - // [84] return + // [82] return rts // print::@2 __b2: - // [85] *screen#1 = *print::msg#5 -- _deref_pbuz1=_deref_pbuz2 + // [83] *screen#1 = *print::msg#5 -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (msg),y ldy #0 sta (screen),y - // [86] screen#0 = ++ screen#1 -- pbuz1=_inc_pbuz1 + // [84] screen#0 = ++ screen#1 -- pbuz1=_inc_pbuz1 inc.z screen bne !+ inc.z screen+1 !: - // [87] print::msg#0 = ++ print::msg#5 -- pbuz1=_inc_pbuz1 + // [85] print::msg#0 = ++ print::msg#5 -- pbuz1=_inc_pbuz1 inc.z msg bne !+ inc.z msg+1 !: - // [82] phi from print::@2 to print::@1 [phi:print::@2->print::@1] + // [80] phi from print::@2 to print::@1 [phi:print::@2->print::@1] __b1_from___b2: - // [82] phi screen#1 = screen#0 [phi:print::@2->print::@1#0] -- register_copy - // [82] phi print::msg#5 = print::msg#0 [phi:print::@2->print::@1#1] -- register_copy + // [80] phi screen#1 = screen#0 [phi:print::@2->print::@1#0] -- register_copy + // [80] phi print::msg#5 = print::msg#0 [phi:print::@2->print::@1#1] -- register_copy jmp __b1 } // printf_string @@ -5038,20 +5010,20 @@ print: { // void printf_string(void (*putc)(char), char *str, char format_min_length, char format_justify_left) printf_string: { .label putc = snputc - // [89] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] + // [87] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] __b1_from_printf_string: jmp __b1 // printf_string::@1 __b1: - // [90] call printf_str - // [72] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] + // [88] call printf_str + // [70] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] printf_str_from___b1: - // [72] phi printf_str::putc#12 = printf_string::putc#0 [phi:printf_string::@1->printf_str#0] -- pprz1=pprc1 + // [70] phi printf_str::putc#12 = printf_string::putc#0 [phi:printf_string::@1->printf_str#0] -- pprz1=pprc1 lda #putc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::str [phi:printf_string::@1->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::str [phi:printf_string::@1->printf_str#1] -- pbuz1=pbuc1 lda #main.str @@ -5060,7 +5032,7 @@ printf_string: { jmp __breturn // printf_string::@return __breturn: - // [91] return + // [89] return rts } // printf_sint @@ -5068,21 +5040,21 @@ printf_string: { // void printf_sint(void (*putc)(char), __zp(2) int value, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_sint: { .label value = 2 - // [93] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [91] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer - // [94] if(printf_sint::value#3<0) goto printf_sint::@1 -- vwsz1_lt_0_then_la1 + // [92] if(printf_sint::value#3<0) goto printf_sint::@1 -- vwsz1_lt_0_then_la1 lda.z value+1 bmi __b1 - // [97] phi from printf_sint printf_sint::@1 to printf_sint::@2 [phi:printf_sint/printf_sint::@1->printf_sint::@2] + // [95] phi from printf_sint printf_sint::@1 to printf_sint::@2 [phi:printf_sint/printf_sint::@1->printf_sint::@2] __b2_from_printf_sint: __b2_from___b1: - // [97] phi printf_sint::value#5 = printf_sint::value#3 [phi:printf_sint/printf_sint::@1->printf_sint::@2#0] -- register_copy + // [95] phi printf_sint::value#5 = printf_sint::value#3 [phi:printf_sint/printf_sint::@1->printf_sint::@2#0] -- register_copy jmp __b2 // printf_sint::@1 __b1: - // [95] printf_sint::value#0 = - printf_sint::value#3 -- vwsz1=_neg_vwsz1 + // [93] printf_sint::value#0 = - printf_sint::value#3 -- vwsz1=_neg_vwsz1 lda #0 sec sbc.z value @@ -5090,52 +5062,52 @@ printf_sint: { lda #0 sbc.z value+1 sta.z value+1 - // [96] *((char *)&printf_buffer) = '-' -- _deref_pbuc1=vbuc2 + // [94] *((char *)&printf_buffer) = '-' -- _deref_pbuc1=vbuc2 lda #'-' sta printf_buffer jmp __b2_from___b1 // printf_sint::@2 __b2: - // [98] utoa::value#1 = (unsigned int)printf_sint::value#5 - // [99] call utoa - // [109] phi from printf_sint::@2 to utoa [phi:printf_sint::@2->utoa] + // [96] utoa::value#1 = (unsigned int)printf_sint::value#5 + // [97] call utoa + // [107] phi from printf_sint::@2 to utoa [phi:printf_sint::@2->utoa] utoa_from___b2: - // [109] phi utoa::value#10 = utoa::value#1 [phi:printf_sint::@2->utoa#0] -- register_copy - // [109] phi utoa::radix#2 = DECIMAL [phi:printf_sint::@2->utoa#1] -- vbuxx=vbuc1 + // [107] phi utoa::value#10 = utoa::value#1 [phi:printf_sint::@2->utoa#0] -- register_copy + // [107] phi utoa::radix#2 = DECIMAL [phi:printf_sint::@2->utoa#1] -- vbuxx=vbuc1 ldx #DECIMAL jsr utoa jmp __b3 // printf_sint::@3 __b3: - // [100] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 + // [98] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 lda printf_buffer sta.z printf_number_buffer.buffer_sign - // [101] call printf_number_buffer + // [99] call printf_number_buffer // Print using format - // [140] phi from printf_sint::@3 to printf_number_buffer [phi:printf_sint::@3->printf_number_buffer] + // [138] phi from printf_sint::@3 to printf_number_buffer [phi:printf_sint::@3->printf_number_buffer] printf_number_buffer_from___b3: - // [140] phi printf_number_buffer::format_upper_case#10 = 0 [phi:printf_sint::@3->printf_number_buffer#0] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::format_upper_case#10 = 0 [phi:printf_sint::@3->printf_number_buffer#0] -- vbuz1=vbuc1 lda #0 sta.z printf_number_buffer.format_upper_case - // [140] phi printf_number_buffer::putc#10 = &snputc [phi:printf_sint::@3->printf_number_buffer#1] -- pprz1=pprc1 + // [138] phi printf_number_buffer::putc#10 = &snputc [phi:printf_sint::@3->printf_number_buffer#1] -- pprz1=pprc1 lda #snputc sta.z printf_number_buffer.putc+1 - // [140] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#0 [phi:printf_sint::@3->printf_number_buffer#2] -- register_copy - // [140] phi printf_number_buffer::format_zero_padding#10 = 0 [phi:printf_sint::@3->printf_number_buffer#3] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#0 [phi:printf_sint::@3->printf_number_buffer#2] -- register_copy + // [138] phi printf_number_buffer::format_zero_padding#10 = 0 [phi:printf_sint::@3->printf_number_buffer#3] -- vbuz1=vbuc1 lda #0 sta.z printf_number_buffer.format_zero_padding - // [140] phi printf_number_buffer::format_justify_left#10 = 0 [phi:printf_sint::@3->printf_number_buffer#4] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::format_justify_left#10 = 0 [phi:printf_sint::@3->printf_number_buffer#4] -- vbuz1=vbuc1 lda #0 sta.z printf_number_buffer.format_justify_left - // [140] phi printf_number_buffer::format_min_length#2 = 0 [phi:printf_sint::@3->printf_number_buffer#5] -- vbuxx=vbuc1 + // [138] phi printf_number_buffer::format_min_length#2 = 0 [phi:printf_sint::@3->printf_number_buffer#5] -- vbuxx=vbuc1 ldx #0 jsr printf_number_buffer jmp __breturn // printf_sint::@return __breturn: - // [102] return + // [100] return rts } // printf_uint @@ -5151,54 +5123,54 @@ printf_uint: { jmp __b1 // printf_uint::@1 __b1: - // [104] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [102] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer - // [105] call utoa + // [103] call utoa // Format number into buffer - // [109] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] + // [107] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] utoa_from___b1: - // [109] phi utoa::value#10 = printf_uint::uvalue#0 [phi:printf_uint::@1->utoa#0] -- vwuz1=vwuc1 + // [107] phi utoa::value#10 = printf_uint::uvalue#0 [phi:printf_uint::@1->utoa#0] -- vwuz1=vwuc1 lda #uvalue sta.z utoa.value+1 - // [109] phi utoa::radix#2 = HEXADECIMAL [phi:printf_uint::@1->utoa#1] -- vbuxx=vbuc1 + // [107] phi utoa::radix#2 = HEXADECIMAL [phi:printf_uint::@1->utoa#1] -- vbuxx=vbuc1 ldx #HEXADECIMAL jsr utoa jmp __b2 // printf_uint::@2 __b2: - // [106] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 + // [104] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 lda printf_buffer sta.z printf_number_buffer.buffer_sign - // [107] call printf_number_buffer + // [105] call printf_number_buffer // Print using format - // [140] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] + // [138] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] printf_number_buffer_from___b2: - // [140] phi printf_number_buffer::format_upper_case#10 = printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::format_upper_case#10 = printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 lda #format_upper_case sta.z printf_number_buffer.format_upper_case - // [140] phi printf_number_buffer::putc#10 = printf_uint::putc#0 [phi:printf_uint::@2->printf_number_buffer#1] -- pprz1=pprc1 + // [138] phi printf_number_buffer::putc#10 = printf_uint::putc#0 [phi:printf_uint::@2->printf_number_buffer#1] -- pprz1=pprc1 lda #putc sta.z printf_number_buffer.putc+1 - // [140] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#1 [phi:printf_uint::@2->printf_number_buffer#2] -- register_copy - // [140] phi printf_number_buffer::format_zero_padding#10 = printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#1 [phi:printf_uint::@2->printf_number_buffer#2] -- register_copy + // [138] phi printf_number_buffer::format_zero_padding#10 = printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 lda #format_zero_padding sta.z printf_number_buffer.format_zero_padding - // [140] phi printf_number_buffer::format_justify_left#10 = printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::format_justify_left#10 = printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 lda #format_justify_left sta.z printf_number_buffer.format_justify_left - // [140] phi printf_number_buffer::format_min_length#2 = printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 + // [138] phi printf_number_buffer::format_min_length#2 = printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 ldx #format_min_length jsr printf_number_buffer jmp __breturn // printf_uint::@return __breturn: - // [108] return + // [106] return rts } // utoa @@ -5215,115 +5187,115 @@ utoa: { .label value = 2 .label max_digits = $11 .label digit_values = 6 - // [110] if(utoa::radix#2==DECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 + // [108] if(utoa::radix#2==DECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 cpx #DECIMAL beq __b1_from_utoa jmp __b2 // utoa::@2 __b2: - // [111] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 + // [109] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 cpx #HEXADECIMAL beq __b1_from___b2 jmp __b3 // utoa::@3 __b3: - // [112] if(utoa::radix#2==OCTAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 + // [110] if(utoa::radix#2==OCTAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 cpx #OCTAL beq __b1_from___b3 jmp __b4 // utoa::@4 __b4: - // [113] if(utoa::radix#2==BINARY) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 + // [111] if(utoa::radix#2==BINARY) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 cpx #BINARY beq __b1_from___b4 jmp __b5 // utoa::@5 __b5: - // [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' -- _deref_pbuc1=vbuc2 + // [112] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' -- _deref_pbuc1=vbuc2 // Unknown radix lda #'e' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - // [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' -- _deref_pbuc1=vbuc2 + // [113] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' -- _deref_pbuc1=vbuc2 lda #'r' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 - // [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' -- _deref_pbuc1=vbuc2 + // [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' -- _deref_pbuc1=vbuc2 lda #'r' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2 - // [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 -- _deref_pbuc1=vbuc2 + // [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3 jmp __breturn // utoa::@return __breturn: - // [118] return + // [116] return rts - // [119] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] + // [117] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] __b1_from_utoa: - // [119] phi utoa::digit_values#8 = RADIX_DECIMAL_VALUES [phi:utoa->utoa::@1#0] -- pwuz1=pwuc1 + // [117] phi utoa::digit_values#8 = RADIX_DECIMAL_VALUES [phi:utoa->utoa::@1#0] -- pwuz1=pwuc1 lda #RADIX_DECIMAL_VALUES sta.z digit_values+1 - // [119] phi utoa::max_digits#7 = 5 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 + // [117] phi utoa::max_digits#7 = 5 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 lda #5 sta.z max_digits jmp __b1 - // [119] phi from utoa::@2 to utoa::@1 [phi:utoa::@2->utoa::@1] + // [117] phi from utoa::@2 to utoa::@1 [phi:utoa::@2->utoa::@1] __b1_from___b2: - // [119] phi utoa::digit_values#8 = RADIX_HEXADECIMAL_VALUES [phi:utoa::@2->utoa::@1#0] -- pwuz1=pwuc1 + // [117] phi utoa::digit_values#8 = RADIX_HEXADECIMAL_VALUES [phi:utoa::@2->utoa::@1#0] -- pwuz1=pwuc1 lda #RADIX_HEXADECIMAL_VALUES sta.z digit_values+1 - // [119] phi utoa::max_digits#7 = 4 [phi:utoa::@2->utoa::@1#1] -- vbuz1=vbuc1 + // [117] phi utoa::max_digits#7 = 4 [phi:utoa::@2->utoa::@1#1] -- vbuz1=vbuc1 lda #4 sta.z max_digits jmp __b1 - // [119] phi from utoa::@3 to utoa::@1 [phi:utoa::@3->utoa::@1] + // [117] phi from utoa::@3 to utoa::@1 [phi:utoa::@3->utoa::@1] __b1_from___b3: - // [119] phi utoa::digit_values#8 = RADIX_OCTAL_VALUES [phi:utoa::@3->utoa::@1#0] -- pwuz1=pwuc1 + // [117] phi utoa::digit_values#8 = RADIX_OCTAL_VALUES [phi:utoa::@3->utoa::@1#0] -- pwuz1=pwuc1 lda #RADIX_OCTAL_VALUES sta.z digit_values+1 - // [119] phi utoa::max_digits#7 = 6 [phi:utoa::@3->utoa::@1#1] -- vbuz1=vbuc1 + // [117] phi utoa::max_digits#7 = 6 [phi:utoa::@3->utoa::@1#1] -- vbuz1=vbuc1 lda #6 sta.z max_digits jmp __b1 - // [119] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] + // [117] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] __b1_from___b4: - // [119] phi utoa::digit_values#8 = RADIX_BINARY_VALUES [phi:utoa::@4->utoa::@1#0] -- pwuz1=pwuc1 + // [117] phi utoa::digit_values#8 = RADIX_BINARY_VALUES [phi:utoa::@4->utoa::@1#0] -- pwuz1=pwuc1 lda #RADIX_BINARY_VALUES sta.z digit_values+1 - // [119] phi utoa::max_digits#7 = $10 [phi:utoa::@4->utoa::@1#1] -- vbuz1=vbuc1 + // [117] phi utoa::max_digits#7 = $10 [phi:utoa::@4->utoa::@1#1] -- vbuz1=vbuc1 lda #$10 sta.z max_digits jmp __b1 // utoa::@1 __b1: - // [120] phi from utoa::@1 to utoa::@6 [phi:utoa::@1->utoa::@6] + // [118] phi from utoa::@1 to utoa::@6 [phi:utoa::@1->utoa::@6] __b6_from___b1: - // [120] phi utoa::buffer#10 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa::@1->utoa::@6#0] -- pbuz1=pbuc1 + // [118] phi utoa::buffer#10 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa::@1->utoa::@6#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer+1 - // [120] phi utoa::started#2 = 0 [phi:utoa::@1->utoa::@6#1] -- vbuxx=vbuc1 + // [118] phi utoa::started#2 = 0 [phi:utoa::@1->utoa::@6#1] -- vbuxx=vbuc1 ldx #0 - // [120] phi utoa::value#3 = utoa::value#10 [phi:utoa::@1->utoa::@6#2] -- register_copy - // [120] phi utoa::digit#2 = 0 [phi:utoa::@1->utoa::@6#3] -- vbuz1=vbuc1 + // [118] phi utoa::value#3 = utoa::value#10 [phi:utoa::@1->utoa::@6#2] -- register_copy + // [118] phi utoa::digit#2 = 0 [phi:utoa::@1->utoa::@6#3] -- vbuz1=vbuc1 lda #0 sta.z digit jmp __b6 // utoa::@6 __b6: - // [121] utoa::$4 = utoa::max_digits#7 - 1 -- vbuaa=vbuz1_minus_1 + // [119] utoa::$4 = utoa::max_digits#7 - 1 -- vbuaa=vbuz1_minus_1 lda.z max_digits sec sbc #1 - // [122] if(utoa::digit#2=utoa::digit_value#0) goto utoa::@10 -- vwuz1_ge_vwuz2_then_la1 + // [128] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 -- vwuz1_ge_vwuz2_then_la1 lda.z digit_value+1 cmp.z value+1 bne !+ @@ -5374,48 +5346,48 @@ utoa: { beq __b10 !: bcc __b10 - // [131] phi from utoa::@12 to utoa::@9 [phi:utoa::@12->utoa::@9] + // [129] phi from utoa::@12 to utoa::@9 [phi:utoa::@12->utoa::@9] __b9_from___b12: - // [131] phi utoa::buffer#15 = utoa::buffer#10 [phi:utoa::@12->utoa::@9#0] -- register_copy - // [131] phi utoa::started#4 = utoa::started#2 [phi:utoa::@12->utoa::@9#1] -- register_copy - // [131] phi utoa::value#7 = utoa::value#3 [phi:utoa::@12->utoa::@9#2] -- register_copy + // [129] phi utoa::buffer#15 = utoa::buffer#10 [phi:utoa::@12->utoa::@9#0] -- register_copy + // [129] phi utoa::started#4 = utoa::started#2 [phi:utoa::@12->utoa::@9#1] -- register_copy + // [129] phi utoa::value#7 = utoa::value#3 [phi:utoa::@12->utoa::@9#2] -- register_copy jmp __b9 // utoa::@9 __b9: - // [132] utoa::digit#1 = ++ utoa::digit#2 -- vbuz1=_inc_vbuz1 + // [130] utoa::digit#1 = ++ utoa::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [120] phi from utoa::@9 to utoa::@6 [phi:utoa::@9->utoa::@6] + // [118] phi from utoa::@9 to utoa::@6 [phi:utoa::@9->utoa::@6] __b6_from___b9: - // [120] phi utoa::buffer#10 = utoa::buffer#15 [phi:utoa::@9->utoa::@6#0] -- register_copy - // [120] phi utoa::started#2 = utoa::started#4 [phi:utoa::@9->utoa::@6#1] -- register_copy - // [120] phi utoa::value#3 = utoa::value#7 [phi:utoa::@9->utoa::@6#2] -- register_copy - // [120] phi utoa::digit#2 = utoa::digit#1 [phi:utoa::@9->utoa::@6#3] -- register_copy + // [118] phi utoa::buffer#10 = utoa::buffer#15 [phi:utoa::@9->utoa::@6#0] -- register_copy + // [118] phi utoa::started#2 = utoa::started#4 [phi:utoa::@9->utoa::@6#1] -- register_copy + // [118] phi utoa::value#3 = utoa::value#7 [phi:utoa::@9->utoa::@6#2] -- register_copy + // [118] phi utoa::digit#2 = utoa::digit#1 [phi:utoa::@9->utoa::@6#3] -- register_copy jmp __b6 // utoa::@10 __b10: - // [133] utoa_append::buffer#0 = utoa::buffer#10 - // [134] utoa_append::value#0 = utoa::value#3 - // [135] utoa_append::sub#0 = utoa::digit_value#0 - // [136] call utoa_append - // [181] phi from utoa::@10 to utoa_append [phi:utoa::@10->utoa_append] + // [131] utoa_append::buffer#0 = utoa::buffer#10 + // [132] utoa_append::value#0 = utoa::value#3 + // [133] utoa_append::sub#0 = utoa::digit_value#0 + // [134] call utoa_append + // [179] phi from utoa::@10 to utoa_append [phi:utoa::@10->utoa_append] utoa_append_from___b10: jsr utoa_append - // [137] utoa_append::return#0 = utoa_append::value#2 + // [135] utoa_append::return#0 = utoa_append::value#2 jmp __b11 // utoa::@11 __b11: - // [138] utoa::value#0 = utoa_append::return#0 - // [139] utoa::buffer#4 = ++ utoa::buffer#10 -- pbuz1=_inc_pbuz1 + // [136] utoa::value#0 = utoa_append::return#0 + // [137] utoa::buffer#4 = ++ utoa::buffer#10 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [131] phi from utoa::@11 to utoa::@9 [phi:utoa::@11->utoa::@9] + // [129] phi from utoa::@11 to utoa::@9 [phi:utoa::@11->utoa::@9] __b9_from___b11: - // [131] phi utoa::buffer#15 = utoa::buffer#4 [phi:utoa::@11->utoa::@9#0] -- register_copy - // [131] phi utoa::started#4 = 1 [phi:utoa::@11->utoa::@9#1] -- vbuxx=vbuc1 + // [129] phi utoa::buffer#15 = utoa::buffer#4 [phi:utoa::@11->utoa::@9#0] -- register_copy + // [129] phi utoa::started#4 = 1 [phi:utoa::@11->utoa::@9#1] -- vbuxx=vbuc1 ldx #1 - // [131] phi utoa::value#7 = utoa::value#0 [phi:utoa::@11->utoa::@9#2] -- register_copy + // [129] phi utoa::value#7 = utoa::value#0 [phi:utoa::@11->utoa::@9#2] -- register_copy jmp __b9 } // printf_number_buffer @@ -5430,170 +5402,170 @@ printf_number_buffer: { .label format_zero_padding = $c .label format_justify_left = $11 .label format_upper_case = $13 - // [141] if(0==printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1 -- 0_eq_vbuxx_then_la1 + // [139] if(0==printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1 -- 0_eq_vbuxx_then_la1 cpx #0 beq __b1_from_printf_number_buffer - // [142] phi from printf_number_buffer to printf_number_buffer::@6 [phi:printf_number_buffer->printf_number_buffer::@6] + // [140] phi from printf_number_buffer to printf_number_buffer::@6 [phi:printf_number_buffer->printf_number_buffer::@6] __b6_from_printf_number_buffer: jmp __b6 // printf_number_buffer::@6 __b6: - // [143] call strlen - // [188] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] + // [141] call strlen + // [186] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] strlen_from___b6: jsr strlen - // [144] strlen::return#2 = strlen::len#2 + // [142] strlen::return#2 = strlen::len#2 jmp __b14 // printf_number_buffer::@14 __b14: - // [145] printf_number_buffer::$19 = strlen::return#2 - // [146] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 -- vbsyy=_sbyte_vwuz1 + // [143] printf_number_buffer::$19 = strlen::return#2 + // [144] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 -- vbsyy=_sbyte_vwuz1 // There is a minimum length - work out the padding ldy.z __19 - // [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- 0_eq_vbuz1_then_la1 + // [145] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- 0_eq_vbuz1_then_la1 lda.z buffer_sign beq __b13_from___b14 jmp __b7 // printf_number_buffer::@7 __b7: - // [148] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 -- vbsyy=_inc_vbsyy + // [146] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 -- vbsyy=_inc_vbsyy iny - // [149] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] + // [147] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] __b13_from___b14: __b13_from___b7: - // [149] phi printf_number_buffer::len#2 = printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy + // [147] phi printf_number_buffer::len#2 = printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy jmp __b13 // printf_number_buffer::@13 __b13: - // [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#2 - printf_number_buffer::len#2 -- vbsz1=vbsxx_minus_vbsyy + // [148] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#2 - printf_number_buffer::len#2 -- vbsz1=vbsxx_minus_vbsyy txa sty.z $ff sec sbc.z $ff sta.z padding - // [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 + // [149] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 lda.z padding cmp #0 bpl __b21_from___b13 - // [153] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] + // [151] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] __b1_from_printf_number_buffer: __b1_from___b13: - // [153] phi printf_number_buffer::padding#10 = 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 + // [151] phi printf_number_buffer::padding#10 = 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 lda #0 sta.z padding jmp __b1 - // [152] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] + // [150] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] __b21_from___b13: jmp __b21 // printf_number_buffer::@21 __b21: - // [153] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] + // [151] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] __b1_from___b21: - // [153] phi printf_number_buffer::padding#10 = printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy + // [151] phi printf_number_buffer::padding#10 = printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy jmp __b1 // printf_number_buffer::@1 __b1: - // [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 + // [152] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 lda.z format_justify_left bne __b2 jmp __b17 // printf_number_buffer::@17 __b17: - // [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 + // [153] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 lda.z format_zero_padding bne __b2 jmp __b16 // printf_number_buffer::@16 __b16: - // [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- 0_neq_vbsz1_then_la1 + // [154] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- 0_neq_vbsz1_then_la1 lda.z padding cmp #0 bne __b8 jmp __b2 // printf_number_buffer::@8 __b8: - // [157] printf_padding::putc#0 = printf_number_buffer::putc#10 - // [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [155] printf_padding::putc#0 = printf_number_buffer::putc#10 + // [156] printf_padding::length#0 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [159] call printf_padding - // [194] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] + // [157] call printf_padding + // [192] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] printf_padding_from___b8: - // [194] phi printf_padding::putc#7 = printf_padding::putc#0 [phi:printf_number_buffer::@8->printf_padding#0] -- register_copy - // [194] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@8->printf_padding#1] -- vbuz1=vbuc1 + // [192] phi printf_padding::putc#7 = printf_padding::putc#0 [phi:printf_number_buffer::@8->printf_padding#0] -- register_copy + // [192] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@8->printf_padding#1] -- vbuz1=vbuc1 lda #' ' sta.z printf_padding.pad - // [194] phi printf_padding::length#6 = printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#2] -- register_copy + // [192] phi printf_padding::length#6 = printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#2] -- register_copy jsr printf_padding jmp __b2 // printf_number_buffer::@2 __b2: - // [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- 0_eq_vbuz1_then_la1 + // [158] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- 0_eq_vbuz1_then_la1 lda.z buffer_sign beq __b3 jmp __b9 // printf_number_buffer::@9 __b9: - // [161] stackpush(char) = printf_number_buffer::buffer_sign#10 -- _stackpushbyte_=vbuz1 + // [159] stackpush(char) = printf_number_buffer::buffer_sign#10 -- _stackpushbyte_=vbuz1 lda.z buffer_sign pha - // [162] callexecute *printf_number_buffer::putc#10 -- call__deref_pprz1 + // [160] callexecute *printf_number_buffer::putc#10 -- call__deref_pprz1 jsr icall7 // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla jmp __b3 // printf_number_buffer::@3 __b3: - // [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- 0_eq_vbuz1_then_la1 + // [162] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- 0_eq_vbuz1_then_la1 lda.z format_zero_padding beq __b4 jmp __b18 // printf_number_buffer::@18 __b18: - // [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- 0_neq_vbsz1_then_la1 + // [163] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- 0_neq_vbsz1_then_la1 lda.z padding cmp #0 bne __b10 jmp __b4 // printf_number_buffer::@10 __b10: - // [166] printf_padding::putc#1 = printf_number_buffer::putc#10 - // [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [164] printf_padding::putc#1 = printf_number_buffer::putc#10 + // [165] printf_padding::length#1 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [168] call printf_padding - // [194] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] + // [166] call printf_padding + // [192] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] printf_padding_from___b10: - // [194] phi printf_padding::putc#7 = printf_padding::putc#1 [phi:printf_number_buffer::@10->printf_padding#0] -- register_copy - // [194] phi printf_padding::pad#7 = '0' [phi:printf_number_buffer::@10->printf_padding#1] -- vbuz1=vbuc1 + // [192] phi printf_padding::putc#7 = printf_padding::putc#1 [phi:printf_number_buffer::@10->printf_padding#0] -- register_copy + // [192] phi printf_padding::pad#7 = '0' [phi:printf_number_buffer::@10->printf_padding#1] -- vbuz1=vbuc1 lda #'0' sta.z printf_padding.pad - // [194] phi printf_padding::length#6 = printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#2] -- register_copy + // [192] phi printf_padding::length#6 = printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#2] -- register_copy jsr printf_padding jmp __b4 // printf_number_buffer::@4 __b4: - // [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- 0_eq_vbuz1_then_la1 + // [167] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- 0_eq_vbuz1_then_la1 lda.z format_upper_case beq __b5 - // [170] phi from printf_number_buffer::@4 to printf_number_buffer::@11 [phi:printf_number_buffer::@4->printf_number_buffer::@11] + // [168] phi from printf_number_buffer::@4 to printf_number_buffer::@11 [phi:printf_number_buffer::@4->printf_number_buffer::@11] __b11_from___b4: jmp __b11 // printf_number_buffer::@11 __b11: - // [171] call strupr - // [202] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] + // [169] call strupr + // [200] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] strupr_from___b11: jsr strupr jmp __b5 // printf_number_buffer::@5 __b5: - // [172] printf_str::putc#0 = printf_number_buffer::putc#10 - // [173] call printf_str - // [72] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] + // [170] printf_str::putc#0 = printf_number_buffer::putc#10 + // [171] call printf_str + // [70] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] printf_str_from___b5: - // [72] phi printf_str::putc#12 = printf_str::putc#0 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy - // [72] phi printf_str::s#12 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_number_buffer::@5->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::putc#12 = printf_str::putc#0 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy + // [70] phi printf_str::s#12 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_number_buffer::@5->printf_str#1] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -5602,42 +5574,42 @@ printf_number_buffer: { jmp __b15 // printf_number_buffer::@15 __b15: - // [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- 0_eq_vbuz1_then_la1 + // [172] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- 0_eq_vbuz1_then_la1 lda.z format_justify_left beq __breturn jmp __b20 // printf_number_buffer::@20 __b20: - // [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- 0_neq_vbuz1_then_la1 + // [173] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- 0_neq_vbuz1_then_la1 lda.z format_zero_padding bne __breturn jmp __b19 // printf_number_buffer::@19 __b19: - // [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- 0_neq_vbsz1_then_la1 + // [174] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- 0_neq_vbsz1_then_la1 lda.z padding cmp #0 bne __b12 jmp __breturn // printf_number_buffer::@12 __b12: - // [177] printf_padding::putc#2 = printf_number_buffer::putc#10 - // [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [175] printf_padding::putc#2 = printf_number_buffer::putc#10 + // [176] printf_padding::length#2 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [179] call printf_padding - // [194] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] + // [177] call printf_padding + // [192] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] printf_padding_from___b12: - // [194] phi printf_padding::putc#7 = printf_padding::putc#2 [phi:printf_number_buffer::@12->printf_padding#0] -- register_copy - // [194] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@12->printf_padding#1] -- vbuz1=vbuc1 + // [192] phi printf_padding::putc#7 = printf_padding::putc#2 [phi:printf_number_buffer::@12->printf_padding#0] -- register_copy + // [192] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@12->printf_padding#1] -- vbuz1=vbuc1 lda #' ' sta.z printf_padding.pad - // [194] phi printf_padding::length#6 = printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#2] -- register_copy + // [192] phi printf_padding::length#6 = printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#2] -- register_copy jsr printf_padding jmp __breturn // printf_number_buffer::@return __breturn: - // [180] return + // [178] return rts // Outside Flow icall7: @@ -5658,15 +5630,15 @@ utoa_append: { .label value = 2 .label sub = 4 .label return = 2 - // [182] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] + // [180] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] __b1_from_utoa_append: - // [182] phi utoa_append::digit#2 = 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 + // [180] phi utoa_append::digit#2 = 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 ldx #0 - // [182] phi utoa_append::value#2 = utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy + // [180] phi utoa_append::value#2 = utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy jmp __b1 // utoa_append::@1 __b1: - // [183] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 + // [181] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 lda.z sub+1 cmp.z value+1 bne !+ @@ -5678,20 +5650,20 @@ utoa_append: { jmp __b3 // utoa_append::@3 __b3: - // [184] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx + // [182] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x ldy #0 sta (buffer),y jmp __breturn // utoa_append::@return __breturn: - // [185] return + // [183] return rts // utoa_append::@2 __b2: - // [186] utoa_append::digit#1 = ++ utoa_append::digit#2 -- vbuxx=_inc_vbuxx + // [184] utoa_append::digit#1 = ++ utoa_append::digit#2 -- vbuxx=_inc_vbuxx inx - // [187] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 + // [185] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 lda.z value sec sbc.z sub @@ -5699,10 +5671,10 @@ utoa_append: { lda.z value+1 sbc.z sub+1 sta.z value+1 - // [182] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] + // [180] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] __b1_from___b2: - // [182] phi utoa_append::digit#2 = utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy - // [182] phi utoa_append::value#2 = utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy + // [180] phi utoa_append::digit#2 = utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy + // [180] phi utoa_append::value#2 = utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy jmp __b1 } // strlen @@ -5712,14 +5684,14 @@ strlen: { .label len = 9 .label str = 6 .label return = 9 - // [189] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] + // [187] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] __b1_from_strlen: - // [189] phi strlen::len#2 = 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 + // [187] phi strlen::len#2 = 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 lda #<0 sta.z len lda #>0 sta.z len+1 - // [189] phi strlen::str#3 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1 + // [187] phi strlen::str#3 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -5727,7 +5699,7 @@ strlen: { jmp __b1 // strlen::@1 __b1: - // [190] if(0!=*strlen::str#3) goto strlen::@2 -- 0_neq__deref_pbuz1_then_la1 + // [188] if(0!=*strlen::str#3) goto strlen::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 @@ -5735,24 +5707,24 @@ strlen: { jmp __breturn // strlen::@return __breturn: - // [191] return + // [189] return rts // strlen::@2 __b2: - // [192] strlen::len#1 = ++ strlen::len#2 -- vwuz1=_inc_vwuz1 + // [190] strlen::len#1 = ++ strlen::len#2 -- vwuz1=_inc_vwuz1 inc.z len bne !+ inc.z len+1 !: - // [193] strlen::str#0 = ++ strlen::str#3 -- pbuz1=_inc_pbuz1 + // [191] strlen::str#0 = ++ strlen::str#3 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [189] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] + // [187] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] __b1_from___b2: - // [189] phi strlen::len#2 = strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [189] phi strlen::str#3 = strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy + // [187] phi strlen::len#2 = strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy + // [187] phi strlen::str#3 = strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy jmp __b1 } // printf_padding @@ -5763,40 +5735,40 @@ printf_padding: { .label putc = 2 .label length = $b .label pad = $d - // [195] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] + // [193] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] __b1_from_printf_padding: - // [195] phi printf_padding::i#2 = 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 + // [193] phi printf_padding::i#2 = 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 lda #0 sta.z i jmp __b1 // printf_padding::@1 __b1: - // [196] if(printf_padding::i#2printf_padding::@1] + // [193] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1] __b1_from___b3: - // [195] phi printf_padding::i#2 = printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy + // [193] phi printf_padding::i#2 = printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy jmp __b1 // Outside Flow icall8: @@ -5808,9 +5780,9 @@ printf_padding: { strupr: { .label str = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS .label src = 4 - // [203] phi from strupr to strupr::@1 [phi:strupr->strupr::@1] + // [201] phi from strupr to strupr::@1 [phi:strupr->strupr::@1] __b1_from_strupr: - // [203] phi strupr::src#2 = strupr::str#0 [phi:strupr->strupr::@1#0] -- pbuz1=pbuc1 + // [201] phi strupr::src#2 = strupr::str#0 [phi:strupr->strupr::@1#0] -- pbuz1=pbuc1 lda #str @@ -5818,7 +5790,7 @@ strupr: { jmp __b1 // strupr::@1 __b1: - // [204] if(0!=*strupr::src#2) goto strupr::@2 -- 0_neq__deref_pbuz1_then_la1 + // [202] if(0!=*strupr::src#2) goto strupr::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (src),y cmp #0 @@ -5826,31 +5798,31 @@ strupr: { jmp __breturn // strupr::@return __breturn: - // [205] return + // [203] return rts // strupr::@2 __b2: - // [206] toupper::ch#0 = *strupr::src#2 -- vbuaa=_deref_pbuz1 + // [204] toupper::ch#0 = *strupr::src#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (src),y - // [207] call toupper + // [205] call toupper jsr toupper - // [208] toupper::return#3 = toupper::return#2 + // [206] toupper::return#3 = toupper::return#2 jmp __b3 // strupr::@3 __b3: - // [209] strupr::$0 = toupper::return#3 - // [210] *strupr::src#2 = strupr::$0 -- _deref_pbuz1=vbuaa + // [207] strupr::$0 = toupper::return#3 + // [208] *strupr::src#2 = strupr::$0 -- _deref_pbuz1=vbuaa ldy #0 sta (src),y - // [211] strupr::src#1 = ++ strupr::src#2 -- pbuz1=_inc_pbuz1 + // [209] strupr::src#1 = ++ strupr::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 !: - // [203] phi from strupr::@3 to strupr::@1 [phi:strupr::@3->strupr::@1] + // [201] phi from strupr::@3 to strupr::@1 [phi:strupr::@3->strupr::@1] __b1_from___b3: - // [203] phi strupr::src#2 = strupr::src#1 [phi:strupr::@3->strupr::@1#0] -- register_copy + // [201] phi strupr::src#2 = strupr::src#1 [phi:strupr::@3->strupr::@1#0] -- register_copy jmp __b1 } // toupper @@ -5858,31 +5830,31 @@ strupr: { // Returns uppercase equivalent to c, if such value exists, else c remains unchanged // __register(A) char toupper(__register(A) char ch) toupper: { - // [212] if(toupper::ch#0<'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 + // [210] if(toupper::ch#0<'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 cmp #'a' bcc __breturn_from_toupper jmp __b2 // toupper::@2 __b2: - // [213] if(toupper::ch#0<='z') goto toupper::@1 -- vbuaa_le_vbuc1_then_la1 + // [211] if(toupper::ch#0<='z') goto toupper::@1 -- vbuaa_le_vbuc1_then_la1 cmp #'z' bcc __b1 beq __b1 - // [215] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] + // [213] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] __breturn_from_toupper: __breturn_from___b1: __breturn_from___b2: - // [215] phi toupper::return#2 = toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy + // [213] phi toupper::return#2 = toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy jmp __breturn // toupper::@1 __b1: - // [214] toupper::return#0 = toupper::ch#0 + 'A'-'a' -- vbuaa=vbuaa_plus_vbuc1 + // [212] toupper::return#0 = toupper::ch#0 + 'A'-'a' -- vbuaa=vbuaa_plus_vbuc1 clc adc #'A'-'a' jmp __breturn_from___b1 // toupper::@return __breturn: - // [216] return + // [214] return rts } // File Data @@ -5900,6 +5872,12 @@ toupper: { BUF: .fill $14, 0 // Buffer used for stringified number being printed printf_buffer: .fill SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER, 0 + /// The capacity of the buffer (n passed to snprintf()) + /// Used to hold state while printing + __snprintf_capacity: .word 0 + // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity. + /// Used to hold state while printing + __snprintf_size: .word 0 ASSEMBLER OPTIMIZATIONS Removing instruction jmp __init1 @@ -5984,10 +5962,6 @@ Removing instruction jmp __b3 Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination Removing instruction lda #>0 -Removing instruction lda #<0 -Removing instruction lda #>0 -Removing instruction lda #<0 -Removing instruction lda #>0 Removing instruction lda #>0 Removing instruction ldy #0 Removing instruction lda #0 @@ -6195,9 +6169,9 @@ __constant unsigned int RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 } __constant unsigned int RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 } __constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c __constant unsigned int STACK_BASE = $103 -__loadstore char *__snprintf_buffer // zp[2]:22 9.022222222222222 -__loadstore volatile unsigned int __snprintf_capacity // zp[2]:24 6.48936170212766 -__loadstore volatile unsigned int __snprintf_size // zp[2]:20 11.021739130434781 +__loadstore char *__snprintf_buffer // zp[2]:20 9.022222222222222 +__loadstore volatile unsigned int __snprintf_capacity = 0 // mem[2] 6.446808510638299 +__loadstore volatile unsigned int __snprintf_size = 0 // mem[2] 10.978260869565217 void __start() void main() __constant char main::s[$e] = "hello world! " @@ -6405,9 +6379,9 @@ zp[1]:11 [ printf_padding::length#6 printf_padding::length#1 printf_padding::len zp[1]:13 [ printf_padding::pad#7 ] zp[1]:8 [ printf_padding::i#2 printf_padding::i#1 ] reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ] -zp[2]:24 [ __snprintf_capacity ] -zp[2]:20 [ __snprintf_size ] -zp[2]:22 [ __snprintf_buffer ] +zp[2]:20 [ __snprintf_buffer ] +mem[2] [ __snprintf_size ] +mem[2] [ __snprintf_capacity ] reg byte a [ printf_str::c#1 ] reg byte a [ utoa::$4 ] reg byte x [ utoa::$11 ] @@ -6419,7 +6393,7 @@ mem[12] [ printf_buffer ] FINAL ASSEMBLER -Score: 9652 +Score: 9654 // File Comments // Tests snprintf function call rewriting @@ -6441,40 +6415,26 @@ Score: 9652 .const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 .const STACK_BASE = $103 .const SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c - /// The capacity of the buffer (n passed to snprintf()) - /// Used to hold state while printing - .label __snprintf_capacity = $18 - // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity. - /// Used to hold state while printing - .label __snprintf_size = $14 /// Current position in the buffer being filled ( initially *s passed to snprintf() /// Used to hold state while printing - .label __snprintf_buffer = $16 + .label __snprintf_buffer = $14 .label screen = $e .segment Code // __start __start: { // __start::__init1 - // volatile size_t __snprintf_capacity - // [1] __snprintf_capacity = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z __snprintf_capacity - sta.z __snprintf_capacity+1 - // volatile size_t __snprintf_size - // [2] __snprintf_size = 0 -- vwuz1=vwuc1 - sta.z __snprintf_size - sta.z __snprintf_size+1 // char * __snprintf_buffer - // [3] __snprintf_buffer = (char *) 0 -- pbuz1=pbuc1 + // [1] __snprintf_buffer = (char *) 0 -- pbuz1=pbuc1 + lda #<0 sta.z __snprintf_buffer sta.z __snprintf_buffer+1 - // [4] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] + // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [5] call main - // [16] phi from __start::@1 to main [phi:__start::@1->main] + // [3] call main + // [14] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return - // [6] return + // [4] return rts } // snputc @@ -6484,57 +6444,57 @@ __start: { // void snputc(__register(X) char c) snputc: { .const OFFSET_STACK_C = 0 - // [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) -- vbuxx=_stackidxbyte_vbuc1 + // [5] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) -- vbuxx=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_C,x tax // ++__snprintf_size; - // [8] __snprintf_size = ++ __snprintf_size -- vwuz1=_inc_vwuz1 - inc.z __snprintf_size + // [6] __snprintf_size = ++ __snprintf_size -- vwum1=_inc_vwum1 + inc __snprintf_size bne !+ - inc.z __snprintf_size+1 + inc __snprintf_size+1 !: // if(__snprintf_size > __snprintf_capacity) - // [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 -- vwuz1_le_vwuz2_then_la1 - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + // [7] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 -- vwum1_le_vwum2_then_la1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne !+ - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity beq __b1 !: bcc __b1 // snputc::@return // } - // [10] return + // [8] return rts // snputc::@1 __b1: // if(__snprintf_size==__snprintf_capacity) - // [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 -- vwuz1_neq_vwuz2_then_la1 - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + // [9] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 -- vwum1_neq_vwum2_then_la1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne __b2 - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity bne __b2 - // [13] phi from snputc::@1 to snputc::@2 [phi:snputc::@1->snputc::@2] - // [13] phi snputc::c#2 = 0 [phi:snputc::@1->snputc::@2#0] -- vbuxx=vbuc1 + // [11] phi from snputc::@1 to snputc::@2 [phi:snputc::@1->snputc::@2] + // [11] phi snputc::c#2 = 0 [phi:snputc::@1->snputc::@2#0] -- vbuxx=vbuc1 ldx #0 - // [12] phi from snputc::@1 to snputc::@3 [phi:snputc::@1->snputc::@3] + // [10] phi from snputc::@1 to snputc::@3 [phi:snputc::@1->snputc::@3] // snputc::@3 - // [13] phi from snputc::@3 to snputc::@2 [phi:snputc::@3->snputc::@2] - // [13] phi snputc::c#2 = snputc::c#0 [phi:snputc::@3->snputc::@2#0] -- register_copy + // [11] phi from snputc::@3 to snputc::@2 [phi:snputc::@3->snputc::@2] + // [11] phi snputc::c#2 = snputc::c#0 [phi:snputc::@3->snputc::@2#0] -- register_copy // snputc::@2 __b2: // *(__snprintf_buffer++) = c - // [14] *__snprintf_buffer = snputc::c#2 -- _deref_pbuz1=vbuxx + // [12] *__snprintf_buffer = snputc::c#2 -- _deref_pbuz1=vbuxx // Append char txa ldy #0 sta (__snprintf_buffer),y // *(__snprintf_buffer++) = c; - // [15] __snprintf_buffer = ++ __snprintf_buffer -- pbuz1=_inc_pbuz1 + // [13] __snprintf_buffer = ++ __snprintf_buffer -- pbuz1=_inc_pbuz1 inc.z __snprintf_buffer bne !+ inc.z __snprintf_buffer+1 @@ -6544,25 +6504,25 @@ snputc: { // main main: { // snprintf(BUF, 20, "hello world! ") - // [17] call snprintf_init - // [67] phi from main to snprintf_init [phi:main->snprintf_init] - // [67] phi snprintf_init::n#4 = $14 [phi:main->snprintf_init#0] -- vwuz1=vbuc1 + // [15] call snprintf_init + // [65] phi from main to snprintf_init [phi:main->snprintf_init] + // [65] phi snprintf_init::n#4 = $14 [phi:main->snprintf_init#0] -- vwuz1=vbuc1 lda #<$14 sta.z snprintf_init.n lda #>$14 sta.z snprintf_init.n+1 jsr snprintf_init - // [18] phi from main to main::@1 [phi:main->main::@1] + // [16] phi from main to main::@1 [phi:main->main::@1] // main::@1 // snprintf(BUF, 20, "hello world! ") - // [19] call printf_str - // [72] phi from main::@1 to printf_str [phi:main::@1->printf_str] - // [72] phi printf_str::putc#12 = &snputc [phi:main::@1->printf_str#0] -- pprz1=pprc1 + // [17] call printf_str + // [70] phi from main::@1 to printf_str [phi:main::@1->printf_str] + // [70] phi printf_str::putc#12 = &snputc [phi:main::@1->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::s [phi:main::@1->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::s [phi:main::@1->printf_str#1] -- pbuz1=pbuc1 lda #s @@ -6570,72 +6530,72 @@ main: { jsr printf_str // main::@2 // snprintf(BUF, 20, "hello world! ") - // [20] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [18] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [21] callexecute snputc -- call_vprc1 + // [19] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla // print(BUF) - // [23] call print - // [81] phi from main::@2 to print [phi:main::@2->print] - // [81] phi screen#25 = (char *) 1024 [phi:main::@2->print#0] -- pbuz1=pbuc1 + // [21] call print + // [79] phi from main::@2 to print [phi:main::@2->print] + // [79] phi screen#25 = (char *) 1024 [phi:main::@2->print#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 sta.z screen+1 jsr print - // [24] phi from main::@2 to main::@3 [phi:main::@2->main::@3] + // [22] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // snprintf(BUF, 20, "hello %s%c ", "world", '!') - // [25] call snprintf_init - // [67] phi from main::@3 to snprintf_init [phi:main::@3->snprintf_init] - // [67] phi snprintf_init::n#4 = $14 [phi:main::@3->snprintf_init#0] -- vwuz1=vbuc1 + // [23] call snprintf_init + // [65] phi from main::@3 to snprintf_init [phi:main::@3->snprintf_init] + // [65] phi snprintf_init::n#4 = $14 [phi:main::@3->snprintf_init#0] -- vwuz1=vbuc1 lda #<$14 sta.z snprintf_init.n lda #>$14 sta.z snprintf_init.n+1 jsr snprintf_init - // [26] phi from main::@3 to main::@4 [phi:main::@3->main::@4] + // [24] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 // snprintf(BUF, 20, "hello %s%c ", "world", '!') - // [27] call printf_str - // [72] phi from main::@4 to printf_str [phi:main::@4->printf_str] - // [72] phi printf_str::putc#12 = &snputc [phi:main::@4->printf_str#0] -- pprz1=pprc1 + // [25] call printf_str + // [70] phi from main::@4 to printf_str [phi:main::@4->printf_str] + // [70] phi printf_str::putc#12 = &snputc [phi:main::@4->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::s1 [phi:main::@4->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::s1 [phi:main::@4->printf_str#1] -- pbuz1=pbuc1 lda #s1 sta.z printf_str.s+1 jsr printf_str - // [28] phi from main::@4 to main::@5 [phi:main::@4->main::@5] + // [26] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // snprintf(BUF, 20, "hello %s%c ", "world", '!') - // [29] call printf_string - // [88] phi from main::@5 to printf_string [phi:main::@5->printf_string] + // [27] call printf_string + // [86] phi from main::@5 to printf_string [phi:main::@5->printf_string] jsr printf_string // main::@6 // snprintf(BUF, 20, "hello %s%c ", "world", '!') - // [30] stackpush(char) = '!' -- _stackpushbyte_=vbuc1 + // [28] stackpush(char) = '!' -- _stackpushbyte_=vbuc1 lda #'!' pha - // [31] callexecute snputc -- call_vprc1 + // [29] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla - // [33] call printf_str - // [72] phi from main::@6 to printf_str [phi:main::@6->printf_str] - // [72] phi printf_str::putc#12 = &snputc [phi:main::@6->printf_str#0] -- pprz1=pprc1 + // [31] call printf_str + // [70] phi from main::@6 to printf_str [phi:main::@6->printf_str] + // [70] phi printf_str::putc#12 = &snputc [phi:main::@6->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::s2 [phi:main::@6->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::s2 [phi:main::@6->printf_str#1] -- pbuz1=pbuc1 lda #s2 @@ -6643,89 +6603,89 @@ main: { jsr printf_str // main::@7 // snprintf(BUF, 20, "hello %s%c ", "world", '!') - // [34] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [32] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [35] callexecute snputc -- call_vprc1 + // [33] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla // print(BUF) - // [37] call print - // [81] phi from main::@7 to print [phi:main::@7->print] - // [81] phi screen#25 = screen#1 [phi:main::@7->print#0] -- register_copy + // [35] call print + // [79] phi from main::@7 to print [phi:main::@7->print] + // [79] phi screen#25 = screen#1 [phi:main::@7->print#0] -- register_copy jsr print - // [38] phi from main::@7 to main::@8 [phi:main::@7->main::@8] + // [36] phi from main::@7 to main::@8 [phi:main::@7->main::@8] // main::@8 // snprintf(BUF, 20, "hello %d+%x! ", 3,11) - // [39] call snprintf_init - // [67] phi from main::@8 to snprintf_init [phi:main::@8->snprintf_init] - // [67] phi snprintf_init::n#4 = $14 [phi:main::@8->snprintf_init#0] -- vwuz1=vbuc1 + // [37] call snprintf_init + // [65] phi from main::@8 to snprintf_init [phi:main::@8->snprintf_init] + // [65] phi snprintf_init::n#4 = $14 [phi:main::@8->snprintf_init#0] -- vwuz1=vbuc1 lda #<$14 sta.z snprintf_init.n lda #>$14 sta.z snprintf_init.n+1 jsr snprintf_init - // [40] phi from main::@8 to main::@9 [phi:main::@8->main::@9] + // [38] phi from main::@8 to main::@9 [phi:main::@8->main::@9] // main::@9 // snprintf(BUF, 20, "hello %d+%x! ", 3,11) - // [41] call printf_str - // [72] phi from main::@9 to printf_str [phi:main::@9->printf_str] - // [72] phi printf_str::putc#12 = &snputc [phi:main::@9->printf_str#0] -- pprz1=pprc1 + // [39] call printf_str + // [70] phi from main::@9 to printf_str [phi:main::@9->printf_str] + // [70] phi printf_str::putc#12 = &snputc [phi:main::@9->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::s1 [phi:main::@9->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::s1 [phi:main::@9->printf_str#1] -- pbuz1=pbuc1 lda #s1 sta.z printf_str.s+1 jsr printf_str - // [42] phi from main::@9 to main::@10 [phi:main::@9->main::@10] + // [40] phi from main::@9 to main::@10 [phi:main::@9->main::@10] // main::@10 // snprintf(BUF, 20, "hello %d+%x! ", 3,11) - // [43] call printf_sint - // [92] phi from main::@10 to printf_sint [phi:main::@10->printf_sint] - // [92] phi printf_sint::value#3 = 3 [phi:main::@10->printf_sint#0] -- vwsz1=vbsc1 + // [41] call printf_sint + // [90] phi from main::@10 to printf_sint [phi:main::@10->printf_sint] + // [90] phi printf_sint::value#3 = 3 [phi:main::@10->printf_sint#0] -- vwsz1=vbsc1 lda #<3 sta.z printf_sint.value lda #>3 sta.z printf_sint.value+1 jsr printf_sint - // [44] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + // [42] phi from main::@10 to main::@11 [phi:main::@10->main::@11] // main::@11 // snprintf(BUF, 20, "hello %d+%x! ", 3,11) - // [45] call printf_str - // [72] phi from main::@11 to printf_str [phi:main::@11->printf_str] - // [72] phi printf_str::putc#12 = &snputc [phi:main::@11->printf_str#0] -- pprz1=pprc1 + // [43] call printf_str + // [70] phi from main::@11 to printf_str [phi:main::@11->printf_str] + // [70] phi printf_str::putc#12 = &snputc [phi:main::@11->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::s4 [phi:main::@11->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::s4 [phi:main::@11->printf_str#1] -- pbuz1=pbuc1 lda #s4 sta.z printf_str.s+1 jsr printf_str - // [46] phi from main::@11 to main::@12 [phi:main::@11->main::@12] + // [44] phi from main::@11 to main::@12 [phi:main::@11->main::@12] // main::@12 // snprintf(BUF, 20, "hello %d+%x! ", 3,11) - // [47] call printf_uint - // [103] phi from main::@12 to printf_uint [phi:main::@12->printf_uint] + // [45] call printf_uint + // [101] phi from main::@12 to printf_uint [phi:main::@12->printf_uint] jsr printf_uint - // [48] phi from main::@12 to main::@13 [phi:main::@12->main::@13] + // [46] phi from main::@12 to main::@13 [phi:main::@12->main::@13] // main::@13 // snprintf(BUF, 20, "hello %d+%x! ", 3,11) - // [49] call printf_str - // [72] phi from main::@13 to printf_str [phi:main::@13->printf_str] - // [72] phi printf_str::putc#12 = &snputc [phi:main::@13->printf_str#0] -- pprz1=pprc1 + // [47] call printf_str + // [70] phi from main::@13 to printf_str [phi:main::@13->printf_str] + // [70] phi printf_str::putc#12 = &snputc [phi:main::@13->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::s5 [phi:main::@13->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::s5 [phi:main::@13->printf_str#1] -- pbuz1=pbuc1 lda #s5 @@ -6733,67 +6693,67 @@ main: { jsr printf_str // main::@14 // snprintf(BUF, 20, "hello %d+%x! ", 3,11) - // [50] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [48] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [51] callexecute snputc -- call_vprc1 + // [49] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla // print(BUF) - // [53] call print - // [81] phi from main::@14 to print [phi:main::@14->print] - // [81] phi screen#25 = screen#1 [phi:main::@14->print#0] -- register_copy + // [51] call print + // [79] phi from main::@14 to print [phi:main::@14->print] + // [79] phi screen#25 = screen#1 [phi:main::@14->print#0] -- register_copy jsr print - // [54] phi from main::@14 to main::@15 [phi:main::@14->main::@15] + // [52] phi from main::@14 to main::@15 [phi:main::@14->main::@15] // main::@15 // snprintf(BUF, 6, "hi %d! ", 22222) - // [55] call snprintf_init - // [67] phi from main::@15 to snprintf_init [phi:main::@15->snprintf_init] - // [67] phi snprintf_init::n#4 = 6 [phi:main::@15->snprintf_init#0] -- vwuz1=vbuc1 + // [53] call snprintf_init + // [65] phi from main::@15 to snprintf_init [phi:main::@15->snprintf_init] + // [65] phi snprintf_init::n#4 = 6 [phi:main::@15->snprintf_init#0] -- vwuz1=vbuc1 lda #<6 sta.z snprintf_init.n lda #>6 sta.z snprintf_init.n+1 jsr snprintf_init - // [56] phi from main::@15 to main::@16 [phi:main::@15->main::@16] + // [54] phi from main::@15 to main::@16 [phi:main::@15->main::@16] // main::@16 // snprintf(BUF, 6, "hi %d! ", 22222) - // [57] call printf_str - // [72] phi from main::@16 to printf_str [phi:main::@16->printf_str] - // [72] phi printf_str::putc#12 = &snputc [phi:main::@16->printf_str#0] -- pprz1=pprc1 + // [55] call printf_str + // [70] phi from main::@16 to printf_str [phi:main::@16->printf_str] + // [70] phi printf_str::putc#12 = &snputc [phi:main::@16->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::s6 [phi:main::@16->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::s6 [phi:main::@16->printf_str#1] -- pbuz1=pbuc1 lda #s6 sta.z printf_str.s+1 jsr printf_str - // [58] phi from main::@16 to main::@17 [phi:main::@16->main::@17] + // [56] phi from main::@16 to main::@17 [phi:main::@16->main::@17] // main::@17 // snprintf(BUF, 6, "hi %d! ", 22222) - // [59] call printf_sint - // [92] phi from main::@17 to printf_sint [phi:main::@17->printf_sint] - // [92] phi printf_sint::value#3 = $56ce [phi:main::@17->printf_sint#0] -- vwsz1=vwsc1 + // [57] call printf_sint + // [90] phi from main::@17 to printf_sint [phi:main::@17->printf_sint] + // [90] phi printf_sint::value#3 = $56ce [phi:main::@17->printf_sint#0] -- vwsz1=vwsc1 lda #<$56ce sta.z printf_sint.value lda #>$56ce sta.z printf_sint.value+1 jsr printf_sint - // [60] phi from main::@17 to main::@18 [phi:main::@17->main::@18] + // [58] phi from main::@17 to main::@18 [phi:main::@17->main::@18] // main::@18 // snprintf(BUF, 6, "hi %d! ", 22222) - // [61] call printf_str - // [72] phi from main::@18 to printf_str [phi:main::@18->printf_str] - // [72] phi printf_str::putc#12 = &snputc [phi:main::@18->printf_str#0] -- pprz1=pprc1 + // [59] call printf_str + // [70] phi from main::@18 to printf_str [phi:main::@18->printf_str] + // [70] phi printf_str::putc#12 = &snputc [phi:main::@18->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::s5 [phi:main::@18->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::s5 [phi:main::@18->printf_str#1] -- pbuz1=pbuc1 lda #s5 @@ -6801,21 +6761,21 @@ main: { jsr printf_str // main::@19 // snprintf(BUF, 6, "hi %d! ", 22222) - // [62] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [60] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [63] callexecute snputc -- call_vprc1 + // [61] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla // print(BUF) - // [65] call print - // [81] phi from main::@19 to print [phi:main::@19->print] - // [81] phi screen#25 = screen#1 [phi:main::@19->print#0] -- register_copy + // [63] call print + // [79] phi from main::@19 to print [phi:main::@19->print] + // [79] phi screen#25 = screen#1 [phi:main::@19->print#0] -- register_copy jsr print // main::@return // } - // [66] return + // [64] return rts .segment Data s: .text "hello world! " @@ -6840,25 +6800,25 @@ main: { snprintf_init: { .label n = 2 // __snprintf_capacity = n - // [68] __snprintf_capacity = snprintf_init::n#4 -- vwuz1=vwuz2 + // [66] __snprintf_capacity = snprintf_init::n#4 -- vwum1=vwuz2 lda.z n - sta.z __snprintf_capacity + sta __snprintf_capacity lda.z n+1 - sta.z __snprintf_capacity+1 + sta __snprintf_capacity+1 // __snprintf_size = 0 - // [69] __snprintf_size = 0 -- vwuz1=vbuc1 + // [67] __snprintf_size = 0 -- vwum1=vbuc1 lda #<0 - sta.z __snprintf_size - sta.z __snprintf_size+1 + sta __snprintf_size + sta __snprintf_size+1 // __snprintf_buffer = s - // [70] __snprintf_buffer = BUF -- pbuz1=pbuc1 + // [68] __snprintf_buffer = BUF -- pbuz1=pbuc1 lda #BUF sta.z __snprintf_buffer+1 // snprintf_init::@return // } - // [71] return + // [69] return rts } // printf_str @@ -6867,32 +6827,32 @@ snprintf_init: { printf_str: { .label s = 6 .label putc = 2 - // [73] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] - // [73] phi printf_str::s#11 = printf_str::s#12 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy + // [71] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] + // [71] phi printf_str::s#11 = printf_str::s#12 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy // printf_str::@1 __b1: // while(c=*s++) - // [74] printf_str::c#1 = *printf_str::s#11 -- vbuaa=_deref_pbuz1 + // [72] printf_str::c#1 = *printf_str::s#11 -- vbuaa=_deref_pbuz1 ldy #0 lda (s),y - // [75] printf_str::s#0 = ++ printf_str::s#11 -- pbuz1=_inc_pbuz1 + // [73] printf_str::s#0 = ++ printf_str::s#11 -- pbuz1=_inc_pbuz1 inc.z s bne !+ inc.z s+1 !: - // [76] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 + // [74] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 cmp #0 bne __b2 // printf_str::@return // } - // [77] return + // [75] return rts // printf_str::@2 __b2: // putc(c) - // [78] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa + // [76] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa pha - // [79] callexecute *printf_str::putc#12 -- call__deref_pprz1 + // [77] callexecute *printf_str::putc#12 -- call__deref_pprz1 jsr icall6 // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla @@ -6905,9 +6865,9 @@ printf_str: { // void print(__zp(6) char *msg) print: { .label msg = 6 - // [82] phi from print to print::@1 [phi:print->print::@1] - // [82] phi screen#1 = screen#25 [phi:print->print::@1#0] -- register_copy - // [82] phi print::msg#5 = BUF [phi:print->print::@1#1] -- pbuz1=pbuc1 + // [80] phi from print to print::@1 [phi:print->print::@1] + // [80] phi screen#1 = screen#25 [phi:print->print::@1#0] -- register_copy + // [80] phi print::msg#5 = BUF [phi:print->print::@1#1] -- pbuz1=pbuc1 lda #BUF @@ -6915,36 +6875,36 @@ print: { // print::@1 __b1: // while(*msg) - // [83] if(0!=*print::msg#5) goto print::@2 -- 0_neq__deref_pbuz1_then_la1 + // [81] if(0!=*print::msg#5) goto print::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (msg),y cmp #0 bne __b2 // print::@return // } - // [84] return + // [82] return rts // print::@2 __b2: // *(screen++) = *(msg++) - // [85] *screen#1 = *print::msg#5 -- _deref_pbuz1=_deref_pbuz2 + // [83] *screen#1 = *print::msg#5 -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (msg),y sta (screen),y // *(screen++) = *(msg++); - // [86] screen#0 = ++ screen#1 -- pbuz1=_inc_pbuz1 + // [84] screen#0 = ++ screen#1 -- pbuz1=_inc_pbuz1 inc.z screen bne !+ inc.z screen+1 !: - // [87] print::msg#0 = ++ print::msg#5 -- pbuz1=_inc_pbuz1 + // [85] print::msg#0 = ++ print::msg#5 -- pbuz1=_inc_pbuz1 inc.z msg bne !+ inc.z msg+1 !: - // [82] phi from print::@2 to print::@1 [phi:print::@2->print::@1] - // [82] phi screen#1 = screen#0 [phi:print::@2->print::@1#0] -- register_copy - // [82] phi print::msg#5 = print::msg#0 [phi:print::@2->print::@1#1] -- register_copy + // [80] phi from print::@2 to print::@1 [phi:print::@2->print::@1] + // [80] phi screen#1 = screen#0 [phi:print::@2->print::@1#0] -- register_copy + // [80] phi print::msg#5 = print::msg#0 [phi:print::@2->print::@1#1] -- register_copy jmp __b1 } // printf_string @@ -6953,17 +6913,17 @@ print: { // void printf_string(void (*putc)(char), char *str, char format_min_length, char format_justify_left) printf_string: { .label putc = snputc - // [89] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] + // [87] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] // printf_string::@1 // printf_str(putc, str) - // [90] call printf_str - // [72] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] - // [72] phi printf_str::putc#12 = printf_string::putc#0 [phi:printf_string::@1->printf_str#0] -- pprz1=pprc1 + // [88] call printf_str + // [70] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] + // [70] phi printf_str::putc#12 = printf_string::putc#0 [phi:printf_string::@1->printf_str#0] -- pprz1=pprc1 lda #putc sta.z printf_str.putc+1 - // [72] phi printf_str::s#12 = main::str [phi:printf_string::@1->printf_str#1] -- pbuz1=pbuc1 + // [70] phi printf_str::s#12 = main::str [phi:printf_string::@1->printf_str#1] -- pbuz1=pbuc1 lda #main.str @@ -6971,7 +6931,7 @@ printf_string: { jsr printf_str // printf_string::@return // } - // [91] return + // [89] return rts } // printf_sint @@ -6980,21 +6940,21 @@ printf_string: { printf_sint: { .label value = 2 // printf_buffer.sign = 0 - // [93] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [91] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer // if(value<0) - // [94] if(printf_sint::value#3<0) goto printf_sint::@1 -- vwsz1_lt_0_then_la1 + // [92] if(printf_sint::value#3<0) goto printf_sint::@1 -- vwsz1_lt_0_then_la1 lda.z value+1 bmi __b1 - // [97] phi from printf_sint printf_sint::@1 to printf_sint::@2 [phi:printf_sint/printf_sint::@1->printf_sint::@2] - // [97] phi printf_sint::value#5 = printf_sint::value#3 [phi:printf_sint/printf_sint::@1->printf_sint::@2#0] -- register_copy + // [95] phi from printf_sint printf_sint::@1 to printf_sint::@2 [phi:printf_sint/printf_sint::@1->printf_sint::@2] + // [95] phi printf_sint::value#5 = printf_sint::value#3 [phi:printf_sint/printf_sint::@1->printf_sint::@2#0] -- register_copy jmp __b2 // printf_sint::@1 __b1: // value = -value - // [95] printf_sint::value#0 = - printf_sint::value#3 -- vwsz1=_neg_vwsz1 + // [93] printf_sint::value#0 = - printf_sint::value#3 -- vwsz1=_neg_vwsz1 lda #0 sec sbc.z value @@ -7003,47 +6963,47 @@ printf_sint: { sbc.z value+1 sta.z value+1 // printf_buffer.sign = '-' - // [96] *((char *)&printf_buffer) = '-' -- _deref_pbuc1=vbuc2 + // [94] *((char *)&printf_buffer) = '-' -- _deref_pbuc1=vbuc2 lda #'-' sta printf_buffer // printf_sint::@2 __b2: // utoa(uvalue, printf_buffer.digits, format.radix) - // [98] utoa::value#1 = (unsigned int)printf_sint::value#5 - // [99] call utoa - // [109] phi from printf_sint::@2 to utoa [phi:printf_sint::@2->utoa] - // [109] phi utoa::value#10 = utoa::value#1 [phi:printf_sint::@2->utoa#0] -- register_copy - // [109] phi utoa::radix#2 = DECIMAL [phi:printf_sint::@2->utoa#1] -- vbuxx=vbuc1 + // [96] utoa::value#1 = (unsigned int)printf_sint::value#5 + // [97] call utoa + // [107] phi from printf_sint::@2 to utoa [phi:printf_sint::@2->utoa] + // [107] phi utoa::value#10 = utoa::value#1 [phi:printf_sint::@2->utoa#0] -- register_copy + // [107] phi utoa::radix#2 = DECIMAL [phi:printf_sint::@2->utoa#1] -- vbuxx=vbuc1 ldx #DECIMAL jsr utoa // printf_sint::@3 // printf_number_buffer(putc, printf_buffer, format) - // [100] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 + // [98] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 lda printf_buffer sta.z printf_number_buffer.buffer_sign - // [101] call printf_number_buffer + // [99] call printf_number_buffer // Print using format - // [140] phi from printf_sint::@3 to printf_number_buffer [phi:printf_sint::@3->printf_number_buffer] - // [140] phi printf_number_buffer::format_upper_case#10 = 0 [phi:printf_sint::@3->printf_number_buffer#0] -- vbuz1=vbuc1 + // [138] phi from printf_sint::@3 to printf_number_buffer [phi:printf_sint::@3->printf_number_buffer] + // [138] phi printf_number_buffer::format_upper_case#10 = 0 [phi:printf_sint::@3->printf_number_buffer#0] -- vbuz1=vbuc1 lda #0 sta.z printf_number_buffer.format_upper_case - // [140] phi printf_number_buffer::putc#10 = &snputc [phi:printf_sint::@3->printf_number_buffer#1] -- pprz1=pprc1 + // [138] phi printf_number_buffer::putc#10 = &snputc [phi:printf_sint::@3->printf_number_buffer#1] -- pprz1=pprc1 lda #snputc sta.z printf_number_buffer.putc+1 - // [140] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#0 [phi:printf_sint::@3->printf_number_buffer#2] -- register_copy - // [140] phi printf_number_buffer::format_zero_padding#10 = 0 [phi:printf_sint::@3->printf_number_buffer#3] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#0 [phi:printf_sint::@3->printf_number_buffer#2] -- register_copy + // [138] phi printf_number_buffer::format_zero_padding#10 = 0 [phi:printf_sint::@3->printf_number_buffer#3] -- vbuz1=vbuc1 lda #0 sta.z printf_number_buffer.format_zero_padding - // [140] phi printf_number_buffer::format_justify_left#10 = 0 [phi:printf_sint::@3->printf_number_buffer#4] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::format_justify_left#10 = 0 [phi:printf_sint::@3->printf_number_buffer#4] -- vbuz1=vbuc1 sta.z printf_number_buffer.format_justify_left - // [140] phi printf_number_buffer::format_min_length#2 = 0 [phi:printf_sint::@3->printf_number_buffer#5] -- vbuxx=vbuc1 + // [138] phi printf_number_buffer::format_min_length#2 = 0 [phi:printf_sint::@3->printf_number_buffer#5] -- vbuxx=vbuc1 tax jsr printf_number_buffer // printf_sint::@return // } - // [102] return + // [100] return rts } // printf_uint @@ -7058,51 +7018,51 @@ printf_uint: { .label putc = snputc // printf_uint::@1 // printf_buffer.sign = format.sign_always?'+':0 - // [104] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [102] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer // utoa(uvalue, printf_buffer.digits, format.radix) - // [105] call utoa + // [103] call utoa // Format number into buffer - // [109] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] - // [109] phi utoa::value#10 = printf_uint::uvalue#0 [phi:printf_uint::@1->utoa#0] -- vwuz1=vwuc1 + // [107] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] + // [107] phi utoa::value#10 = printf_uint::uvalue#0 [phi:printf_uint::@1->utoa#0] -- vwuz1=vwuc1 lda #uvalue sta.z utoa.value+1 - // [109] phi utoa::radix#2 = HEXADECIMAL [phi:printf_uint::@1->utoa#1] -- vbuxx=vbuc1 + // [107] phi utoa::radix#2 = HEXADECIMAL [phi:printf_uint::@1->utoa#1] -- vbuxx=vbuc1 ldx #HEXADECIMAL jsr utoa // printf_uint::@2 // printf_number_buffer(putc, printf_buffer, format) - // [106] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 + // [104] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 lda printf_buffer sta.z printf_number_buffer.buffer_sign - // [107] call printf_number_buffer + // [105] call printf_number_buffer // Print using format - // [140] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] - // [140] phi printf_number_buffer::format_upper_case#10 = printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + // [138] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] + // [138] phi printf_number_buffer::format_upper_case#10 = printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 lda #format_upper_case sta.z printf_number_buffer.format_upper_case - // [140] phi printf_number_buffer::putc#10 = printf_uint::putc#0 [phi:printf_uint::@2->printf_number_buffer#1] -- pprz1=pprc1 + // [138] phi printf_number_buffer::putc#10 = printf_uint::putc#0 [phi:printf_uint::@2->printf_number_buffer#1] -- pprz1=pprc1 lda #putc sta.z printf_number_buffer.putc+1 - // [140] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#1 [phi:printf_uint::@2->printf_number_buffer#2] -- register_copy - // [140] phi printf_number_buffer::format_zero_padding#10 = printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#1 [phi:printf_uint::@2->printf_number_buffer#2] -- register_copy + // [138] phi printf_number_buffer::format_zero_padding#10 = printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 lda #format_zero_padding sta.z printf_number_buffer.format_zero_padding - // [140] phi printf_number_buffer::format_justify_left#10 = printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::format_justify_left#10 = printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 lda #format_justify_left sta.z printf_number_buffer.format_justify_left - // [140] phi printf_number_buffer::format_min_length#2 = printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 + // [138] phi printf_number_buffer::format_min_length#2 = printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 ldx #format_min_length jsr printf_number_buffer // printf_uint::@return // } - // [108] return + // [106] return rts } // utoa @@ -7120,130 +7080,130 @@ utoa: { .label max_digits = $11 .label digit_values = 6 // if(radix==DECIMAL) - // [110] if(utoa::radix#2==DECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 + // [108] if(utoa::radix#2==DECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 cpx #DECIMAL beq __b2 // utoa::@2 // if(radix==HEXADECIMAL) - // [111] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 + // [109] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 cpx #HEXADECIMAL beq __b3 // utoa::@3 // if(radix==OCTAL) - // [112] if(utoa::radix#2==OCTAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 + // [110] if(utoa::radix#2==OCTAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 cpx #OCTAL beq __b4 // utoa::@4 // if(radix==BINARY) - // [113] if(utoa::radix#2==BINARY) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 + // [111] if(utoa::radix#2==BINARY) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 cpx #BINARY beq __b5 // utoa::@5 // *buffer++ = 'e' - // [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' -- _deref_pbuc1=vbuc2 + // [112] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' -- _deref_pbuc1=vbuc2 // Unknown radix lda #'e' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // *buffer++ = 'r' - // [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' -- _deref_pbuc1=vbuc2 + // [113] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' -- _deref_pbuc1=vbuc2 lda #'r' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 - // [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' -- _deref_pbuc1=vbuc2 + // [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' -- _deref_pbuc1=vbuc2 sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2 // *buffer = 0 - // [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 -- _deref_pbuc1=vbuc2 + // [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3 // utoa::@return // } - // [118] return + // [116] return rts - // [119] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] + // [117] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] __b2: - // [119] phi utoa::digit_values#8 = RADIX_DECIMAL_VALUES [phi:utoa->utoa::@1#0] -- pwuz1=pwuc1 + // [117] phi utoa::digit_values#8 = RADIX_DECIMAL_VALUES [phi:utoa->utoa::@1#0] -- pwuz1=pwuc1 lda #RADIX_DECIMAL_VALUES sta.z digit_values+1 - // [119] phi utoa::max_digits#7 = 5 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 + // [117] phi utoa::max_digits#7 = 5 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 lda #5 sta.z max_digits jmp __b1 - // [119] phi from utoa::@2 to utoa::@1 [phi:utoa::@2->utoa::@1] + // [117] phi from utoa::@2 to utoa::@1 [phi:utoa::@2->utoa::@1] __b3: - // [119] phi utoa::digit_values#8 = RADIX_HEXADECIMAL_VALUES [phi:utoa::@2->utoa::@1#0] -- pwuz1=pwuc1 + // [117] phi utoa::digit_values#8 = RADIX_HEXADECIMAL_VALUES [phi:utoa::@2->utoa::@1#0] -- pwuz1=pwuc1 lda #RADIX_HEXADECIMAL_VALUES sta.z digit_values+1 - // [119] phi utoa::max_digits#7 = 4 [phi:utoa::@2->utoa::@1#1] -- vbuz1=vbuc1 + // [117] phi utoa::max_digits#7 = 4 [phi:utoa::@2->utoa::@1#1] -- vbuz1=vbuc1 lda #4 sta.z max_digits jmp __b1 - // [119] phi from utoa::@3 to utoa::@1 [phi:utoa::@3->utoa::@1] + // [117] phi from utoa::@3 to utoa::@1 [phi:utoa::@3->utoa::@1] __b4: - // [119] phi utoa::digit_values#8 = RADIX_OCTAL_VALUES [phi:utoa::@3->utoa::@1#0] -- pwuz1=pwuc1 + // [117] phi utoa::digit_values#8 = RADIX_OCTAL_VALUES [phi:utoa::@3->utoa::@1#0] -- pwuz1=pwuc1 lda #RADIX_OCTAL_VALUES sta.z digit_values+1 - // [119] phi utoa::max_digits#7 = 6 [phi:utoa::@3->utoa::@1#1] -- vbuz1=vbuc1 + // [117] phi utoa::max_digits#7 = 6 [phi:utoa::@3->utoa::@1#1] -- vbuz1=vbuc1 lda #6 sta.z max_digits jmp __b1 - // [119] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] + // [117] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] __b5: - // [119] phi utoa::digit_values#8 = RADIX_BINARY_VALUES [phi:utoa::@4->utoa::@1#0] -- pwuz1=pwuc1 + // [117] phi utoa::digit_values#8 = RADIX_BINARY_VALUES [phi:utoa::@4->utoa::@1#0] -- pwuz1=pwuc1 lda #RADIX_BINARY_VALUES sta.z digit_values+1 - // [119] phi utoa::max_digits#7 = $10 [phi:utoa::@4->utoa::@1#1] -- vbuz1=vbuc1 + // [117] phi utoa::max_digits#7 = $10 [phi:utoa::@4->utoa::@1#1] -- vbuz1=vbuc1 lda #$10 sta.z max_digits // utoa::@1 __b1: - // [120] phi from utoa::@1 to utoa::@6 [phi:utoa::@1->utoa::@6] - // [120] phi utoa::buffer#10 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa::@1->utoa::@6#0] -- pbuz1=pbuc1 + // [118] phi from utoa::@1 to utoa::@6 [phi:utoa::@1->utoa::@6] + // [118] phi utoa::buffer#10 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa::@1->utoa::@6#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer+1 - // [120] phi utoa::started#2 = 0 [phi:utoa::@1->utoa::@6#1] -- vbuxx=vbuc1 + // [118] phi utoa::started#2 = 0 [phi:utoa::@1->utoa::@6#1] -- vbuxx=vbuc1 ldx #0 - // [120] phi utoa::value#3 = utoa::value#10 [phi:utoa::@1->utoa::@6#2] -- register_copy - // [120] phi utoa::digit#2 = 0 [phi:utoa::@1->utoa::@6#3] -- vbuz1=vbuc1 + // [118] phi utoa::value#3 = utoa::value#10 [phi:utoa::@1->utoa::@6#2] -- register_copy + // [118] phi utoa::digit#2 = 0 [phi:utoa::@1->utoa::@6#3] -- vbuz1=vbuc1 txa sta.z digit // utoa::@6 __b6: // max_digits-1 - // [121] utoa::$4 = utoa::max_digits#7 - 1 -- vbuaa=vbuz1_minus_1 + // [119] utoa::$4 = utoa::max_digits#7 - 1 -- vbuaa=vbuz1_minus_1 lda.z max_digits sec sbc #1 // for( char digit=0; digit= digit_value) - // [129] if(0!=utoa::started#2) goto utoa::@10 -- 0_neq_vbuxx_then_la1 + // [127] if(0!=utoa::started#2) goto utoa::@10 -- 0_neq_vbuxx_then_la1 cpx #0 bne __b10 // utoa::@12 - // [130] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 -- vwuz1_ge_vwuz2_then_la1 + // [128] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 -- vwuz1_ge_vwuz2_then_la1 cmp.z value+1 bne !+ lda.z digit_value @@ -7274,46 +7234,46 @@ utoa: { beq __b10 !: bcc __b10 - // [131] phi from utoa::@12 to utoa::@9 [phi:utoa::@12->utoa::@9] - // [131] phi utoa::buffer#15 = utoa::buffer#10 [phi:utoa::@12->utoa::@9#0] -- register_copy - // [131] phi utoa::started#4 = utoa::started#2 [phi:utoa::@12->utoa::@9#1] -- register_copy - // [131] phi utoa::value#7 = utoa::value#3 [phi:utoa::@12->utoa::@9#2] -- register_copy + // [129] phi from utoa::@12 to utoa::@9 [phi:utoa::@12->utoa::@9] + // [129] phi utoa::buffer#15 = utoa::buffer#10 [phi:utoa::@12->utoa::@9#0] -- register_copy + // [129] phi utoa::started#4 = utoa::started#2 [phi:utoa::@12->utoa::@9#1] -- register_copy + // [129] phi utoa::value#7 = utoa::value#3 [phi:utoa::@12->utoa::@9#2] -- register_copy // utoa::@9 __b9: // for( char digit=0; digitutoa::@6] - // [120] phi utoa::buffer#10 = utoa::buffer#15 [phi:utoa::@9->utoa::@6#0] -- register_copy - // [120] phi utoa::started#2 = utoa::started#4 [phi:utoa::@9->utoa::@6#1] -- register_copy - // [120] phi utoa::value#3 = utoa::value#7 [phi:utoa::@9->utoa::@6#2] -- register_copy - // [120] phi utoa::digit#2 = utoa::digit#1 [phi:utoa::@9->utoa::@6#3] -- register_copy + // [118] phi from utoa::@9 to utoa::@6 [phi:utoa::@9->utoa::@6] + // [118] phi utoa::buffer#10 = utoa::buffer#15 [phi:utoa::@9->utoa::@6#0] -- register_copy + // [118] phi utoa::started#2 = utoa::started#4 [phi:utoa::@9->utoa::@6#1] -- register_copy + // [118] phi utoa::value#3 = utoa::value#7 [phi:utoa::@9->utoa::@6#2] -- register_copy + // [118] phi utoa::digit#2 = utoa::digit#1 [phi:utoa::@9->utoa::@6#3] -- register_copy jmp __b6 // utoa::@10 __b10: // utoa_append(buffer++, value, digit_value) - // [133] utoa_append::buffer#0 = utoa::buffer#10 - // [134] utoa_append::value#0 = utoa::value#3 - // [135] utoa_append::sub#0 = utoa::digit_value#0 - // [136] call utoa_append - // [181] phi from utoa::@10 to utoa_append [phi:utoa::@10->utoa_append] + // [131] utoa_append::buffer#0 = utoa::buffer#10 + // [132] utoa_append::value#0 = utoa::value#3 + // [133] utoa_append::sub#0 = utoa::digit_value#0 + // [134] call utoa_append + // [179] phi from utoa::@10 to utoa_append [phi:utoa::@10->utoa_append] jsr utoa_append // utoa_append(buffer++, value, digit_value) - // [137] utoa_append::return#0 = utoa_append::value#2 + // [135] utoa_append::return#0 = utoa_append::value#2 // utoa::@11 // value = utoa_append(buffer++, value, digit_value) - // [138] utoa::value#0 = utoa_append::return#0 + // [136] utoa::value#0 = utoa_append::return#0 // value = utoa_append(buffer++, value, digit_value); - // [139] utoa::buffer#4 = ++ utoa::buffer#10 -- pbuz1=_inc_pbuz1 + // [137] utoa::buffer#4 = ++ utoa::buffer#10 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [131] phi from utoa::@11 to utoa::@9 [phi:utoa::@11->utoa::@9] - // [131] phi utoa::buffer#15 = utoa::buffer#4 [phi:utoa::@11->utoa::@9#0] -- register_copy - // [131] phi utoa::started#4 = 1 [phi:utoa::@11->utoa::@9#1] -- vbuxx=vbuc1 + // [129] phi from utoa::@11 to utoa::@9 [phi:utoa::@11->utoa::@9] + // [129] phi utoa::buffer#15 = utoa::buffer#4 [phi:utoa::@11->utoa::@9#0] -- register_copy + // [129] phi utoa::started#4 = 1 [phi:utoa::@11->utoa::@9#1] -- vbuxx=vbuc1 ldx #1 - // [131] phi utoa::value#7 = utoa::value#0 [phi:utoa::@11->utoa::@9#2] -- register_copy + // [129] phi utoa::value#7 = utoa::value#0 [phi:utoa::@11->utoa::@9#2] -- register_copy jmp __b9 } // printf_number_buffer @@ -7329,67 +7289,67 @@ printf_number_buffer: { .label format_justify_left = $11 .label format_upper_case = $13 // if(format.min_length) - // [141] if(0==printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1 -- 0_eq_vbuxx_then_la1 + // [139] if(0==printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1 -- 0_eq_vbuxx_then_la1 cpx #0 beq __b6 - // [142] phi from printf_number_buffer to printf_number_buffer::@6 [phi:printf_number_buffer->printf_number_buffer::@6] + // [140] phi from printf_number_buffer to printf_number_buffer::@6 [phi:printf_number_buffer->printf_number_buffer::@6] // printf_number_buffer::@6 // strlen(buffer.digits) - // [143] call strlen - // [188] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] + // [141] call strlen + // [186] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] jsr strlen // strlen(buffer.digits) - // [144] strlen::return#2 = strlen::len#2 + // [142] strlen::return#2 = strlen::len#2 // printf_number_buffer::@14 - // [145] printf_number_buffer::$19 = strlen::return#2 + // [143] printf_number_buffer::$19 = strlen::return#2 // signed char len = (signed char)strlen(buffer.digits) - // [146] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 -- vbsyy=_sbyte_vwuz1 + // [144] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 -- vbsyy=_sbyte_vwuz1 // There is a minimum length - work out the padding ldy.z __19 // if(buffer.sign) - // [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- 0_eq_vbuz1_then_la1 + // [145] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- 0_eq_vbuz1_then_la1 lda.z buffer_sign beq __b13 // printf_number_buffer::@7 // len++; - // [148] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 -- vbsyy=_inc_vbsyy + // [146] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 -- vbsyy=_inc_vbsyy iny - // [149] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] - // [149] phi printf_number_buffer::len#2 = printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy + // [147] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] + // [147] phi printf_number_buffer::len#2 = printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy // printf_number_buffer::@13 __b13: // padding = (signed char)format.min_length - len - // [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#2 - printf_number_buffer::len#2 -- vbsz1=vbsxx_minus_vbsyy + // [148] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#2 - printf_number_buffer::len#2 -- vbsz1=vbsxx_minus_vbsyy txa sty.z $ff sec sbc.z $ff sta.z padding // if(padding<0) - // [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 + // [149] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 cmp #0 bpl __b1 - // [153] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] + // [151] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] __b6: - // [153] phi printf_number_buffer::padding#10 = 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 + // [151] phi printf_number_buffer::padding#10 = 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 lda #0 sta.z padding - // [152] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] + // [150] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] // printf_number_buffer::@21 - // [153] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] - // [153] phi printf_number_buffer::padding#10 = printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy + // [151] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] + // [151] phi printf_number_buffer::padding#10 = printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy // printf_number_buffer::@1 __b1: // if(!format.justify_left && !format.zero_padding && padding) - // [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 + // [152] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 lda.z format_justify_left bne __b2 // printf_number_buffer::@17 - // [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 + // [153] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 lda.z format_zero_padding bne __b2 // printf_number_buffer::@16 - // [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- 0_neq_vbsz1_then_la1 + // [154] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- 0_neq_vbsz1_then_la1 lda.z padding cmp #0 bne __b8 @@ -7397,40 +7357,40 @@ printf_number_buffer: { // printf_number_buffer::@8 __b8: // printf_padding(putc, ' ',(char)padding) - // [157] printf_padding::putc#0 = printf_number_buffer::putc#10 - // [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [155] printf_padding::putc#0 = printf_number_buffer::putc#10 + // [156] printf_padding::length#0 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [159] call printf_padding - // [194] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] - // [194] phi printf_padding::putc#7 = printf_padding::putc#0 [phi:printf_number_buffer::@8->printf_padding#0] -- register_copy - // [194] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@8->printf_padding#1] -- vbuz1=vbuc1 + // [157] call printf_padding + // [192] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] + // [192] phi printf_padding::putc#7 = printf_padding::putc#0 [phi:printf_number_buffer::@8->printf_padding#0] -- register_copy + // [192] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@8->printf_padding#1] -- vbuz1=vbuc1 lda #' ' sta.z printf_padding.pad - // [194] phi printf_padding::length#6 = printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#2] -- register_copy + // [192] phi printf_padding::length#6 = printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#2] -- register_copy jsr printf_padding // printf_number_buffer::@2 __b2: // if(buffer.sign) - // [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- 0_eq_vbuz1_then_la1 + // [158] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- 0_eq_vbuz1_then_la1 lda.z buffer_sign beq __b3 // printf_number_buffer::@9 // putc(buffer.sign) - // [161] stackpush(char) = printf_number_buffer::buffer_sign#10 -- _stackpushbyte_=vbuz1 + // [159] stackpush(char) = printf_number_buffer::buffer_sign#10 -- _stackpushbyte_=vbuz1 pha - // [162] callexecute *printf_number_buffer::putc#10 -- call__deref_pprz1 + // [160] callexecute *printf_number_buffer::putc#10 -- call__deref_pprz1 jsr icall7 // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla // printf_number_buffer::@3 __b3: // if(format.zero_padding && padding) - // [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- 0_eq_vbuz1_then_la1 + // [162] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- 0_eq_vbuz1_then_la1 lda.z format_zero_padding beq __b4 // printf_number_buffer::@18 - // [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- 0_neq_vbsz1_then_la1 + // [163] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- 0_neq_vbsz1_then_la1 lda.z padding cmp #0 bne __b10 @@ -7438,38 +7398,38 @@ printf_number_buffer: { // printf_number_buffer::@10 __b10: // printf_padding(putc, '0',(char)padding) - // [166] printf_padding::putc#1 = printf_number_buffer::putc#10 - // [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [164] printf_padding::putc#1 = printf_number_buffer::putc#10 + // [165] printf_padding::length#1 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [168] call printf_padding - // [194] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] - // [194] phi printf_padding::putc#7 = printf_padding::putc#1 [phi:printf_number_buffer::@10->printf_padding#0] -- register_copy - // [194] phi printf_padding::pad#7 = '0' [phi:printf_number_buffer::@10->printf_padding#1] -- vbuz1=vbuc1 + // [166] call printf_padding + // [192] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] + // [192] phi printf_padding::putc#7 = printf_padding::putc#1 [phi:printf_number_buffer::@10->printf_padding#0] -- register_copy + // [192] phi printf_padding::pad#7 = '0' [phi:printf_number_buffer::@10->printf_padding#1] -- vbuz1=vbuc1 lda #'0' sta.z printf_padding.pad - // [194] phi printf_padding::length#6 = printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#2] -- register_copy + // [192] phi printf_padding::length#6 = printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#2] -- register_copy jsr printf_padding // printf_number_buffer::@4 __b4: // if(format.upper_case) - // [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- 0_eq_vbuz1_then_la1 + // [167] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- 0_eq_vbuz1_then_la1 lda.z format_upper_case beq __b5 - // [170] phi from printf_number_buffer::@4 to printf_number_buffer::@11 [phi:printf_number_buffer::@4->printf_number_buffer::@11] + // [168] phi from printf_number_buffer::@4 to printf_number_buffer::@11 [phi:printf_number_buffer::@4->printf_number_buffer::@11] // printf_number_buffer::@11 // strupr(buffer.digits) - // [171] call strupr - // [202] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] + // [169] call strupr + // [200] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] jsr strupr // printf_number_buffer::@5 __b5: // printf_str(putc, buffer.digits) - // [172] printf_str::putc#0 = printf_number_buffer::putc#10 - // [173] call printf_str - // [72] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] - // [72] phi printf_str::putc#12 = printf_str::putc#0 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy - // [72] phi printf_str::s#12 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_number_buffer::@5->printf_str#1] -- pbuz1=pbuc1 + // [170] printf_str::putc#0 = printf_number_buffer::putc#10 + // [171] call printf_str + // [70] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] + // [70] phi printf_str::putc#12 = printf_str::putc#0 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy + // [70] phi printf_str::s#12 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_number_buffer::@5->printf_str#1] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -7477,15 +7437,15 @@ printf_number_buffer: { jsr printf_str // printf_number_buffer::@15 // if(format.justify_left && !format.zero_padding && padding) - // [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- 0_eq_vbuz1_then_la1 + // [172] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- 0_eq_vbuz1_then_la1 lda.z format_justify_left beq __breturn // printf_number_buffer::@20 - // [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- 0_neq_vbuz1_then_la1 + // [173] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- 0_neq_vbuz1_then_la1 lda.z format_zero_padding bne __breturn // printf_number_buffer::@19 - // [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- 0_neq_vbsz1_then_la1 + // [174] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- 0_neq_vbsz1_then_la1 lda.z padding cmp #0 bne __b12 @@ -7493,22 +7453,22 @@ printf_number_buffer: { // printf_number_buffer::@12 __b12: // printf_padding(putc, ' ',(char)padding) - // [177] printf_padding::putc#2 = printf_number_buffer::putc#10 - // [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [175] printf_padding::putc#2 = printf_number_buffer::putc#10 + // [176] printf_padding::length#2 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [179] call printf_padding - // [194] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] - // [194] phi printf_padding::putc#7 = printf_padding::putc#2 [phi:printf_number_buffer::@12->printf_padding#0] -- register_copy - // [194] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@12->printf_padding#1] -- vbuz1=vbuc1 + // [177] call printf_padding + // [192] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] + // [192] phi printf_padding::putc#7 = printf_padding::putc#2 [phi:printf_number_buffer::@12->printf_padding#0] -- register_copy + // [192] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@12->printf_padding#1] -- vbuz1=vbuc1 lda #' ' sta.z printf_padding.pad - // [194] phi printf_padding::length#6 = printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#2] -- register_copy + // [192] phi printf_padding::length#6 = printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#2] -- register_copy jsr printf_padding // printf_number_buffer::@return __breturn: // } - // [180] return + // [178] return rts // Outside Flow icall7: @@ -7529,14 +7489,14 @@ utoa_append: { .label value = 2 .label sub = 4 .label return = 2 - // [182] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] - // [182] phi utoa_append::digit#2 = 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 + // [180] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] + // [180] phi utoa_append::digit#2 = 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 ldx #0 - // [182] phi utoa_append::value#2 = utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy + // [180] phi utoa_append::value#2 = utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy // utoa_append::@1 __b1: // while (value >= sub) - // [183] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 + // [181] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 lda.z sub+1 cmp.z value+1 bne !+ @@ -7547,21 +7507,21 @@ utoa_append: { bcc __b2 // utoa_append::@3 // *buffer = DIGITS[digit] - // [184] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx + // [182] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x ldy #0 sta (buffer),y // utoa_append::@return // } - // [185] return + // [183] return rts // utoa_append::@2 __b2: // digit++; - // [186] utoa_append::digit#1 = ++ utoa_append::digit#2 -- vbuxx=_inc_vbuxx + // [184] utoa_append::digit#1 = ++ utoa_append::digit#2 -- vbuxx=_inc_vbuxx inx // value -= sub - // [187] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 + // [185] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 lda.z value sec sbc.z sub @@ -7569,9 +7529,9 @@ utoa_append: { lda.z value+1 sbc.z sub+1 sta.z value+1 - // [182] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] - // [182] phi utoa_append::digit#2 = utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy - // [182] phi utoa_append::value#2 = utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy + // [180] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] + // [180] phi utoa_append::digit#2 = utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy + // [180] phi utoa_append::value#2 = utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy jmp __b1 } // strlen @@ -7581,12 +7541,12 @@ strlen: { .label len = 9 .label str = 6 .label return = 9 - // [189] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] - // [189] phi strlen::len#2 = 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 + // [187] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] + // [187] phi strlen::len#2 = 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 lda #<0 sta.z len sta.z len+1 - // [189] phi strlen::str#3 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1 + // [187] phi strlen::str#3 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -7594,32 +7554,32 @@ strlen: { // strlen::@1 __b1: // while(*str) - // [190] if(0!=*strlen::str#3) goto strlen::@2 -- 0_neq__deref_pbuz1_then_la1 + // [188] if(0!=*strlen::str#3) goto strlen::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 bne __b2 // strlen::@return // } - // [191] return + // [189] return rts // strlen::@2 __b2: // len++; - // [192] strlen::len#1 = ++ strlen::len#2 -- vwuz1=_inc_vwuz1 + // [190] strlen::len#1 = ++ strlen::len#2 -- vwuz1=_inc_vwuz1 inc.z len bne !+ inc.z len+1 !: // str++; - // [193] strlen::str#0 = ++ strlen::str#3 -- pbuz1=_inc_pbuz1 + // [191] strlen::str#0 = ++ strlen::str#3 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [189] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] - // [189] phi strlen::len#2 = strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [189] phi strlen::str#3 = strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy + // [187] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] + // [187] phi strlen::len#2 = strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy + // [187] phi strlen::str#3 = strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy jmp __b1 } // printf_padding @@ -7630,37 +7590,37 @@ printf_padding: { .label putc = 2 .label length = $b .label pad = $d - // [195] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] - // [195] phi printf_padding::i#2 = 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 + // [193] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] + // [193] phi printf_padding::i#2 = 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 lda #0 sta.z i // printf_padding::@1 __b1: // for(char i=0;iprintf_padding::@1] - // [195] phi printf_padding::i#2 = printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy + // [193] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1] + // [193] phi printf_padding::i#2 = printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy jmp __b1 // Outside Flow icall8: @@ -7672,8 +7632,8 @@ printf_padding: { strupr: { .label str = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS .label src = 4 - // [203] phi from strupr to strupr::@1 [phi:strupr->strupr::@1] - // [203] phi strupr::src#2 = strupr::str#0 [phi:strupr->strupr::@1#0] -- pbuz1=pbuc1 + // [201] phi from strupr to strupr::@1 [phi:strupr->strupr::@1] + // [201] phi strupr::src#2 = strupr::str#0 [phi:strupr->strupr::@1#0] -- pbuz1=pbuc1 lda #str @@ -7681,38 +7641,38 @@ strupr: { // strupr::@1 __b1: // while(*src) - // [204] if(0!=*strupr::src#2) goto strupr::@2 -- 0_neq__deref_pbuz1_then_la1 + // [202] if(0!=*strupr::src#2) goto strupr::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (src),y cmp #0 bne __b2 // strupr::@return // } - // [205] return + // [203] return rts // strupr::@2 __b2: // toupper(*src) - // [206] toupper::ch#0 = *strupr::src#2 -- vbuaa=_deref_pbuz1 + // [204] toupper::ch#0 = *strupr::src#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (src),y - // [207] call toupper + // [205] call toupper jsr toupper - // [208] toupper::return#3 = toupper::return#2 + // [206] toupper::return#3 = toupper::return#2 // strupr::@3 - // [209] strupr::$0 = toupper::return#3 + // [207] strupr::$0 = toupper::return#3 // *src = toupper(*src) - // [210] *strupr::src#2 = strupr::$0 -- _deref_pbuz1=vbuaa + // [208] *strupr::src#2 = strupr::$0 -- _deref_pbuz1=vbuaa ldy #0 sta (src),y // src++; - // [211] strupr::src#1 = ++ strupr::src#2 -- pbuz1=_inc_pbuz1 + // [209] strupr::src#1 = ++ strupr::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 !: - // [203] phi from strupr::@3 to strupr::@1 [phi:strupr::@3->strupr::@1] - // [203] phi strupr::src#2 = strupr::src#1 [phi:strupr::@3->strupr::@1#0] -- register_copy + // [201] phi from strupr::@3 to strupr::@1 [phi:strupr::@3->strupr::@1] + // [201] phi strupr::src#2 = strupr::src#1 [phi:strupr::@3->strupr::@1#0] -- register_copy jmp __b1 } // toupper @@ -7721,27 +7681,27 @@ strupr: { // __register(A) char toupper(__register(A) char ch) toupper: { // if(ch>='a' && ch<='z') - // [212] if(toupper::ch#0<'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 + // [210] if(toupper::ch#0<'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 cmp #'a' bcc __breturn // toupper::@2 - // [213] if(toupper::ch#0<='z') goto toupper::@1 -- vbuaa_le_vbuc1_then_la1 + // [211] if(toupper::ch#0<='z') goto toupper::@1 -- vbuaa_le_vbuc1_then_la1 cmp #'z' bcc __b1 beq __b1 - // [215] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] - // [215] phi toupper::return#2 = toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy + // [213] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] + // [213] phi toupper::return#2 = toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy rts // toupper::@1 __b1: // return ch + ('A'-'a'); - // [214] toupper::return#0 = toupper::ch#0 + 'A'-'a' -- vbuaa=vbuaa_plus_vbuc1 + // [212] toupper::return#0 = toupper::ch#0 + 'A'-'a' -- vbuaa=vbuaa_plus_vbuc1 clc adc #'A'-'a' // toupper::@return __breturn: // } - // [216] return + // [214] return rts } // File Data @@ -7759,4 +7719,10 @@ toupper: { BUF: .fill $14, 0 // Buffer used for stringified number being printed printf_buffer: .fill SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER, 0 + /// The capacity of the buffer (n passed to snprintf()) + /// Used to hold state while printing + __snprintf_capacity: .word 0 + // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity. + /// Used to hold state while printing + __snprintf_size: .word 0 diff --git a/src/test/ref/printf-17.sym b/src/test/ref/printf-17.sym index e904eeee7..e5231ac49 100644 --- a/src/test/ref/printf-17.sym +++ b/src/test/ref/printf-17.sym @@ -15,9 +15,9 @@ __constant unsigned int RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 } __constant unsigned int RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 } __constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c __constant unsigned int STACK_BASE = $103 -__loadstore char *__snprintf_buffer // zp[2]:22 9.022222222222222 -__loadstore volatile unsigned int __snprintf_capacity // zp[2]:24 6.48936170212766 -__loadstore volatile unsigned int __snprintf_size // zp[2]:20 11.021739130434781 +__loadstore char *__snprintf_buffer // zp[2]:20 9.022222222222222 +__loadstore volatile unsigned int __snprintf_capacity = 0 // mem[2] 6.446808510638299 +__loadstore volatile unsigned int __snprintf_size = 0 // mem[2] 10.978260869565217 void __start() void main() __constant char main::s[$e] = "hello world! " @@ -225,9 +225,9 @@ zp[1]:11 [ printf_padding::length#6 printf_padding::length#1 printf_padding::len zp[1]:13 [ printf_padding::pad#7 ] zp[1]:8 [ printf_padding::i#2 printf_padding::i#1 ] reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ] -zp[2]:24 [ __snprintf_capacity ] -zp[2]:20 [ __snprintf_size ] -zp[2]:22 [ __snprintf_buffer ] +zp[2]:20 [ __snprintf_buffer ] +mem[2] [ __snprintf_size ] +mem[2] [ __snprintf_capacity ] reg byte a [ printf_str::c#1 ] reg byte a [ utoa::$4 ] reg byte x [ utoa::$11 ] diff --git a/src/test/ref/printf-18.asm b/src/test/ref/printf-18.asm index 821a535b8..b899ebbd3 100644 --- a/src/test/ref/printf-18.asm +++ b/src/test/ref/printf-18.asm @@ -18,20 +18,14 @@ // The current cursor x-position .label conio_cursor_x = $12 // The current cursor y-position - .label conio_cursor_y = $15 + .label conio_cursor_y = $13 // The current text cursor line start - .label conio_line_text = $18 + .label conio_line_text = $16 // The current color cursor line start - .label conio_line_color = $1a - /// The capacity of the buffer (n passed to snprintf()) - /// Used to hold state while printing - .label __snprintf_capacity = $1c - // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity. - /// Used to hold state while printing - .label __snprintf_size = $13 + .label conio_line_color = $18 /// Current position in the buffer being filled ( initially *s passed to snprintf() /// Used to hold state while printing - .label __snprintf_buffer = $16 + .label __snprintf_buffer = $14 .segment Code __start: { // __ma char conio_cursor_x = 0 @@ -49,14 +43,8 @@ __start: { sta.z conio_line_color lda #>COLORRAM sta.z conio_line_color+1 - // volatile size_t __snprintf_capacity - lda #<0 - sta.z __snprintf_capacity - sta.z __snprintf_capacity+1 - // volatile size_t __snprintf_size - sta.z __snprintf_size - sta.z __snprintf_size+1 // char * __snprintf_buffer + lda #<0 sta.z __snprintf_buffer sta.z __snprintf_buffer+1 // #pragma constructor_for(conio_c64_init, cputc, clrscr, cscroll) @@ -74,16 +62,16 @@ snputc: { lda STACK_BASE+OFFSET_STACK_C,x tax // ++__snprintf_size; - inc.z __snprintf_size + inc __snprintf_size bne !+ - inc.z __snprintf_size+1 + inc __snprintf_size+1 !: // if(__snprintf_size > __snprintf_capacity) - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne !+ - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity beq __b1 !: bcc __b1 @@ -91,11 +79,11 @@ snputc: { rts __b1: // if(__snprintf_size==__snprintf_capacity) - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne __b2 - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity bne __b2 ldx #0 __b2: @@ -389,13 +377,13 @@ snprintf_init: { .label s = $a // __snprintf_capacity = n lda #<$14 - sta.z __snprintf_capacity + sta __snprintf_capacity lda #>$14 - sta.z __snprintf_capacity+1 + sta __snprintf_capacity+1 // __snprintf_size = 0 lda #<0 - sta.z __snprintf_size - sta.z __snprintf_size+1 + sta __snprintf_size + sta __snprintf_size+1 // __snprintf_buffer = s lda.z s sta.z __snprintf_buffer @@ -585,3 +573,9 @@ memset: { .segment Data BUF1: .fill $14, 0 BUF2: .fill $14, 0 + /// The capacity of the buffer (n passed to snprintf()) + /// Used to hold state while printing + __snprintf_capacity: .word 0 + // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity. + /// Used to hold state while printing + __snprintf_size: .word 0 diff --git a/src/test/ref/printf-18.cfg b/src/test/ref/printf-18.cfg index 3a4e4c1eb..8d7b29d61 100644 --- a/src/test/ref/printf-18.cfg +++ b/src/test/ref/printf-18.cfg @@ -8,284 +8,282 @@ __start::__init1: scope:[__start] from __start [2] conio_cursor_y = 0 [3] conio_line_text = DEFAULT_SCREEN [4] conio_line_color = COLORRAM - [5] __snprintf_capacity = 0 - [6] __snprintf_size = 0 - [7] __snprintf_buffer = (char *) 0 - [8] call conio_c64_init + [5] __snprintf_buffer = (char *) 0 + [6] call conio_c64_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - [9] phi() - [10] call main + [7] phi() + [8] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 - [11] return + [9] return to:@return __stackcall void snputc(char c) snputc: scope:[snputc] from - [12] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) - [13] __snprintf_size = ++ __snprintf_size - [14] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 + [10] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) + [11] __snprintf_size = ++ __snprintf_size + [12] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 to:snputc::@return snputc::@return: scope:[snputc] from snputc snputc::@2 - [15] return + [13] return to:@return snputc::@1: scope:[snputc] from snputc - [16] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 + [14] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 to:snputc::@2 snputc::@3: scope:[snputc] from snputc::@1 - [17] phi() + [15] phi() to:snputc::@2 snputc::@2: scope:[snputc] from snputc::@1 snputc::@3 - [18] snputc::c#2 = phi( snputc::@3/snputc::c#0, snputc::@1/0 ) - [19] *__snprintf_buffer = snputc::c#2 - [20] __snprintf_buffer = ++ __snprintf_buffer + [16] snputc::c#2 = phi( snputc::@3/snputc::c#0, snputc::@1/0 ) + [17] *__snprintf_buffer = snputc::c#2 + [18] __snprintf_buffer = ++ __snprintf_buffer to:snputc::@return void conio_c64_init() conio_c64_init: scope:[conio_c64_init] from __start::__init1 - [21] conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE - [22] if(conio_c64_init::line#0<$19) goto conio_c64_init::@2 + [19] conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE + [20] if(conio_c64_init::line#0<$19) goto conio_c64_init::@2 to:conio_c64_init::@1 conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init - [23] phi() + [21] phi() to:conio_c64_init::@1 conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 - [24] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) - [25] gotoxy::y#2 = conio_c64_init::line#2 - [26] call gotoxy + [22] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) + [23] gotoxy::y#2 = conio_c64_init::line#2 + [24] call gotoxy to:conio_c64_init::@return conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 - [27] return + [25] return to:@return __stackcall void cputc(char c) cputc: scope:[cputc] from - [28] cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C) - [29] if(cputc::c#0==' + [26] cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C) + [27] if(cputc::c#0==' ') goto cputc::@1 to:cputc::@2 cputc::@2: scope:[cputc] from cputc - [30] conio_line_text[conio_cursor_x] = cputc::c#0 - [31] conio_line_color[conio_cursor_x] = LIGHT_BLUE - [32] conio_cursor_x = ++ conio_cursor_x - [33] if(conio_cursor_x!=$28) goto cputc::@return + [28] conio_line_text[conio_cursor_x] = cputc::c#0 + [29] conio_line_color[conio_cursor_x] = LIGHT_BLUE + [30] conio_cursor_x = ++ conio_cursor_x + [31] if(conio_cursor_x!=$28) goto cputc::@return to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 - [34] phi() - [35] call cputln + [32] phi() + [33] call cputln to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 - [36] return + [34] return to:@return cputc::@1: scope:[cputc] from cputc - [37] phi() - [38] call cputln + [35] phi() + [36] call cputln to:cputc::@return void main() main: scope:[main] from __start::@1 - [39] phi() - [40] call snprintf_init + [37] phi() + [38] call snprintf_init to:main::@1 main::@1: scope:[main] from main - [41] phi() - [42] call printf_str + [39] phi() + [40] call printf_str to:main::@2 main::@2: scope:[main] from main::@1 - [43] stackpush(char) = 0 - [44] callexecute snputc + [41] stackpush(char) = 0 + [42] callexecute snputc sideeffect stackpullpadding(1) - [46] call snprintf_init + [44] call snprintf_init to:main::@3 main::@3: scope:[main] from main::@2 - [47] phi() - [48] call printf_str + [45] phi() + [46] call printf_str to:main::@4 main::@4: scope:[main] from main::@3 - [49] phi() - [50] call printf_string + [47] phi() + [48] call printf_string to:main::@5 main::@5: scope:[main] from main::@4 - [51] stackpush(char) = '!' - [52] callexecute snputc + [49] stackpush(char) = '!' + [50] callexecute snputc sideeffect stackpullpadding(1) - [54] stackpush(char) = 0 - [55] callexecute snputc + [52] stackpush(char) = 0 + [53] callexecute snputc sideeffect stackpullpadding(1) - [57] call printf_str + [55] call printf_str to:main::@6 main::@6: scope:[main] from main::@5 - [58] phi() - [59] call printf_string + [56] phi() + [57] call printf_string to:main::@7 main::@7: scope:[main] from main::@6 - [60] phi() - [61] call printf_str + [58] phi() + [59] call printf_str to:main::@8 main::@8: scope:[main] from main::@7 - [62] phi() - [63] call printf_string + [60] phi() + [61] call printf_string to:main::@9 main::@9: scope:[main] from main::@8 - [64] phi() - [65] call printf_str + [62] phi() + [63] call printf_str to:main::@return main::@return: scope:[main] from main::@9 - [66] return + [64] return to:@return void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 - [67] if(gotoxy::y#2<$19+1) goto gotoxy::@3 + [65] if(gotoxy::y#2<$19+1) goto gotoxy::@3 to:gotoxy::@1 gotoxy::@3: scope:[gotoxy] from gotoxy - [68] phi() + [66] phi() to:gotoxy::@1 gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 - [69] gotoxy::y#4 = phi( gotoxy::@3/gotoxy::y#2, gotoxy/0 ) + [67] gotoxy::y#4 = phi( gotoxy::@3/gotoxy::y#2, gotoxy/0 ) to:gotoxy::@2 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 - [70] conio_cursor_x = gotoxy::x#2 - [71] conio_cursor_y = gotoxy::y#4 - [72] gotoxy::$7 = (unsigned int)gotoxy::y#4 - [73] gotoxy::$8 = gotoxy::$7 << 2 - [74] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 - [75] gotoxy::line_offset#0 = gotoxy::$9 << 3 - [76] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0 - [77] conio_line_text = gotoxy::$5 - [78] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0 - [79] conio_line_color = gotoxy::$6 + [68] conio_cursor_x = gotoxy::x#2 + [69] conio_cursor_y = gotoxy::y#4 + [70] gotoxy::$7 = (unsigned int)gotoxy::y#4 + [71] gotoxy::$8 = gotoxy::$7 << 2 + [72] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 + [73] gotoxy::line_offset#0 = gotoxy::$9 << 3 + [74] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0 + [75] conio_line_text = gotoxy::$5 + [76] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0 + [77] conio_line_color = gotoxy::$6 to:gotoxy::@return gotoxy::@return: scope:[gotoxy] from gotoxy::@2 - [80] return + [78] return to:@return void cputln() cputln: scope:[cputln] from cputc::@1 cputc::@3 - [81] conio_line_text = conio_line_text + $28 - [82] conio_line_color = conio_line_color + $28 - [83] conio_cursor_x = 0 - [84] conio_cursor_y = ++ conio_cursor_y - [85] call cscroll + [79] conio_line_text = conio_line_text + $28 + [80] conio_line_color = conio_line_color + $28 + [81] conio_cursor_x = 0 + [82] conio_cursor_y = ++ conio_cursor_y + [83] call cscroll to:cputln::@return cputln::@return: scope:[cputln] from cputln - [86] return + [84] return to:@return void snprintf_init(char *s , unsigned int n) snprintf_init: scope:[snprintf_init] from main main::@2 - [87] snprintf_init::s#2 = phi( main/BUF1, main::@2/BUF2 ) - [88] __snprintf_capacity = $14 - [89] __snprintf_size = 0 - [90] __snprintf_buffer = snprintf_init::s#2 + [85] snprintf_init::s#2 = phi( main/BUF1, main::@2/BUF2 ) + [86] __snprintf_capacity = $14 + [87] __snprintf_size = 0 + [88] __snprintf_buffer = snprintf_init::s#2 to:snprintf_init::@return snprintf_init::@return: scope:[snprintf_init] from snprintf_init - [91] return + [89] return to:@return void printf_str(void (*putc)(char) , const char *s) printf_str: scope:[printf_str] from main::@1 main::@3 main::@5 main::@7 main::@9 printf_string::@1 - [92] printf_str::putc#8 = phi( main::@1/&snputc, main::@3/&snputc, main::@5/&cputc, main::@7/&cputc, main::@9/&cputc, printf_string::@1/printf_str::putc#0 ) - [92] printf_str::s#8 = phi( main::@1/main::s, main::@3/main::s1, main::@5/main::s2, main::@7/main::s3, main::@9/main::s2, printf_string::@1/printf_str::s#1 ) + [90] printf_str::putc#8 = phi( main::@1/&snputc, main::@3/&snputc, main::@5/&cputc, main::@7/&cputc, main::@9/&cputc, printf_string::@1/printf_str::putc#0 ) + [90] printf_str::s#8 = phi( main::@1/main::s, main::@3/main::s1, main::@5/main::s2, main::@7/main::s3, main::@9/main::s2, printf_string::@1/printf_str::s#1 ) to:printf_str::@1 printf_str::@1: scope:[printf_str] from printf_str printf_str::@2 - [93] printf_str::s#7 = phi( printf_str/printf_str::s#8, printf_str::@2/printf_str::s#0 ) - [94] printf_str::c#1 = *printf_str::s#7 - [95] printf_str::s#0 = ++ printf_str::s#7 - [96] if(0!=printf_str::c#1) goto printf_str::@2 + [91] printf_str::s#7 = phi( printf_str/printf_str::s#8, printf_str::@2/printf_str::s#0 ) + [92] printf_str::c#1 = *printf_str::s#7 + [93] printf_str::s#0 = ++ printf_str::s#7 + [94] if(0!=printf_str::c#1) goto printf_str::@2 to:printf_str::@return printf_str::@return: scope:[printf_str] from printf_str::@1 - [97] return + [95] return to:@return printf_str::@2: scope:[printf_str] from printf_str::@1 - [98] stackpush(char) = printf_str::c#1 - [99] callexecute *printf_str::putc#8 + [96] stackpush(char) = printf_str::c#1 + [97] callexecute *printf_str::putc#8 sideeffect stackpullpadding(1) to:printf_str::@1 void printf_string(void (*putc)(char) , char *str , char format_min_length , char format_justify_left) printf_string: scope:[printf_string] from main::@4 main::@6 main::@8 - [101] printf_string::putc#10 = phi( main::@4/&snputc, main::@6/&cputc, main::@8/&cputc ) - [101] printf_string::str#10 = phi( main::@4/main::str, main::@6/BUF1, main::@8/BUF2 ) + [99] printf_string::putc#10 = phi( main::@4/&snputc, main::@6/&cputc, main::@8/&cputc ) + [99] printf_string::str#10 = phi( main::@4/main::str, main::@6/BUF1, main::@8/BUF2 ) to:printf_string::@1 printf_string::@1: scope:[printf_string] from printf_string - [102] printf_str::putc#0 = printf_string::putc#10 - [103] printf_str::s#1 = printf_string::str#10 - [104] call printf_str + [100] printf_str::putc#0 = printf_string::putc#10 + [101] printf_str::s#1 = printf_string::str#10 + [102] call printf_str to:printf_string::@return printf_string::@return: scope:[printf_string] from printf_string::@1 - [105] return + [103] return to:@return void cscroll() cscroll: scope:[cscroll] from cputln - [106] if(conio_cursor_y!=$19) goto cscroll::@return + [104] if(conio_cursor_y!=$19) goto cscroll::@return to:cscroll::@1 cscroll::@1: scope:[cscroll] from cscroll - [107] phi() - [108] call memcpy + [105] phi() + [106] call memcpy to:cscroll::@2 cscroll::@2: scope:[cscroll] from cscroll::@1 - [109] phi() - [110] call memcpy + [107] phi() + [108] call memcpy to:cscroll::@3 cscroll::@3: scope:[cscroll] from cscroll::@2 - [111] phi() - [112] call memset + [109] phi() + [110] call memset to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 - [113] phi() - [114] call memset + [111] phi() + [112] call memset to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 - [115] conio_line_text = conio_line_text - $28 - [116] conio_line_color = conio_line_color - $28 - [117] conio_cursor_y = -- conio_cursor_y + [113] conio_line_text = conio_line_text - $28 + [114] conio_line_color = conio_line_color - $28 + [115] conio_cursor_y = -- conio_cursor_y to:cscroll::@return cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 - [118] return + [116] return to:@return void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [119] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) - [119] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) - [120] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 - [121] memcpy::src#4 = (char *)memcpy::source#2 - [122] memcpy::dst#4 = (char *)memcpy::destination#2 + [117] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [117] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) + [118] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 + [119] memcpy::src#4 = (char *)memcpy::source#2 + [120] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 - [123] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) - [123] memcpy::src#2 = phi( memcpy/memcpy::src#4, memcpy::@2/memcpy::src#1 ) - [124] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 + [121] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) + [121] memcpy::src#2 = phi( memcpy/memcpy::src#4, memcpy::@2/memcpy::src#1 ) + [122] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 to:memcpy::@return memcpy::@return: scope:[memcpy] from memcpy::@1 - [125] return + [123] return to:@return memcpy::@2: scope:[memcpy] from memcpy::@1 - [126] *memcpy::dst#2 = *memcpy::src#2 - [127] memcpy::dst#1 = ++ memcpy::dst#2 - [128] memcpy::src#1 = ++ memcpy::src#2 + [124] *memcpy::dst#2 = *memcpy::src#2 + [125] memcpy::dst#1 = ++ memcpy::dst#2 + [126] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 - [129] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE ) - [129] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) + [127] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE ) + [127] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) to:memset::@1 memset::@1: scope:[memset] from memset - [130] memset::end#0 = (char *)memset::str#3 + $28 - [131] memset::dst#4 = (char *)memset::str#3 + [128] memset::end#0 = (char *)memset::str#3 + $28 + [129] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 - [132] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) - [133] if(memset::dst#2!=memset::end#0) goto memset::@3 + [130] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) + [131] if(memset::dst#2!=memset::end#0) goto memset::@3 to:memset::@return memset::@return: scope:[memset] from memset::@2 - [134] return + [132] return to:@return memset::@3: scope:[memset] from memset::@2 - [135] *memset::dst#2 = memset::c#4 - [136] memset::dst#1 = ++ memset::dst#2 + [133] *memset::dst#2 = memset::c#4 + [134] memset::dst#1 = ++ memset::dst#2 to:memset::@2 diff --git a/src/test/ref/printf-18.log b/src/test/ref/printf-18.log index ef837a417..75b5bf0dc 100644 --- a/src/test/ref/printf-18.log +++ b/src/test/ref/printf-18.log @@ -588,8 +588,6 @@ __start::__init1: scope:[__start] from __start conio_line_color = COLORRAM conio_textcolor = LIGHT_BLUE conio_scroll_enable = 1 - __snprintf_capacity = 0 - __snprintf_size = 0 __snprintf_buffer = (char *) 0 call conio_c64_init to:__start::@2 @@ -616,8 +614,8 @@ __constant char RADIX::HEXADECIMAL = $10 __constant char RADIX::OCTAL = 8 __constant unsigned int STACK_BASE = $103 __loadstore char *__snprintf_buffer -__loadstore volatile unsigned int __snprintf_capacity -__loadstore volatile unsigned int __snprintf_size +__loadstore volatile unsigned int __snprintf_capacity = 0 +__loadstore volatile unsigned int __snprintf_size = 0 void __start() void conio_c64_init() bool conio_c64_init::$0 @@ -1268,8 +1266,8 @@ Identical Phi Values gotoxy::x#3 gotoxy::x#2 Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition printf_string::$1 [91] if(0==printf_string::format_justify_left#10) goto printf_string::@11 Simple Condition printf_string::$16 [104] if(0!=printf_string::format_justify_left#10) goto printf_string::@12 -Simple Condition printf_string::$17 [156] if(0!=printf_string::padding#3) goto printf_string::@5 -Simple Condition printf_string::$18 [158] if(0!=printf_string::padding#3) goto printf_string::@6 +Simple Condition printf_string::$17 [154] if(0!=printf_string::padding#3) goto printf_string::@5 +Simple Condition printf_string::$18 [156] if(0!=printf_string::padding#3) goto printf_string::@6 Successful SSA optimization Pass2ConditionalJumpSimplification Negating conditional jump and destination [91] if(0!=printf_string::format_justify_left#10) goto printf_string::@2 Negating conditional jump and destination [104] if(0==printf_string::format_justify_left#10) goto printf_string::@return @@ -1458,7 +1456,7 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant printf_padding::length#0 = (char)0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [69] if(printf_padding::i#2capacity. - /// Used to hold state while printing - .label __snprintf_size = $13 + .label conio_line_color = $18 /// Current position in the buffer being filled ( initially *s passed to snprintf() /// Used to hold state while printing - .label __snprintf_buffer = $16 + .label __snprintf_buffer = $14 .segment Code // __start __start: { @@ -2374,36 +2358,26 @@ __start: { sta.z conio_line_color lda #>COLORRAM sta.z conio_line_color+1 - // [5] __snprintf_capacity = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z __snprintf_capacity - lda #>0 - sta.z __snprintf_capacity+1 - // [6] __snprintf_size = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z __snprintf_size - lda #>0 - sta.z __snprintf_size+1 - // [7] __snprintf_buffer = (char *) 0 -- pbuz1=pbuc1 + // [5] __snprintf_buffer = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z __snprintf_buffer lda #>0 sta.z __snprintf_buffer+1 - // [8] call conio_c64_init + // [6] call conio_c64_init jsr conio_c64_init - // [9] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] + // [7] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: - // [10] call main - // [39] phi from __start::@1 to main [phi:__start::@1->main] + // [8] call main + // [37] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main jmp __breturn // __start::@return __breturn: - // [11] return + // [9] return rts } // snputc @@ -2413,60 +2387,60 @@ __start: { // void snputc(__register(X) char c) snputc: { .const OFFSET_STACK_C = 0 - // [12] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) -- vbuxx=_stackidxbyte_vbuc1 + // [10] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) -- vbuxx=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_C,x tax - // [13] __snprintf_size = ++ __snprintf_size -- vwuz1=_inc_vwuz1 - inc.z __snprintf_size + // [11] __snprintf_size = ++ __snprintf_size -- vwum1=_inc_vwum1 + inc __snprintf_size bne !+ - inc.z __snprintf_size+1 + inc __snprintf_size+1 !: - // [14] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 -- vwuz1_le_vwuz2_then_la1 - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + // [12] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 -- vwum1_le_vwum2_then_la1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne !+ - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity beq __b1 !: bcc __b1 jmp __breturn // snputc::@return __breturn: - // [15] return + // [13] return rts // snputc::@1 __b1: - // [16] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 -- vwuz1_neq_vwuz2_then_la1 - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + // [14] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 -- vwum1_neq_vwum2_then_la1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne __b3_from___b1 - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity bne __b3_from___b1 - // [18] phi from snputc::@1 to snputc::@2 [phi:snputc::@1->snputc::@2] + // [16] phi from snputc::@1 to snputc::@2 [phi:snputc::@1->snputc::@2] __b2_from___b1: - // [18] phi snputc::c#2 = 0 [phi:snputc::@1->snputc::@2#0] -- vbuxx=vbuc1 + // [16] phi snputc::c#2 = 0 [phi:snputc::@1->snputc::@2#0] -- vbuxx=vbuc1 ldx #0 jmp __b2 - // [17] phi from snputc::@1 to snputc::@3 [phi:snputc::@1->snputc::@3] + // [15] phi from snputc::@1 to snputc::@3 [phi:snputc::@1->snputc::@3] __b3_from___b1: jmp __b3 // snputc::@3 __b3: - // [18] phi from snputc::@3 to snputc::@2 [phi:snputc::@3->snputc::@2] + // [16] phi from snputc::@3 to snputc::@2 [phi:snputc::@3->snputc::@2] __b2_from___b3: - // [18] phi snputc::c#2 = snputc::c#0 [phi:snputc::@3->snputc::@2#0] -- register_copy + // [16] phi snputc::c#2 = snputc::c#0 [phi:snputc::@3->snputc::@2#0] -- register_copy jmp __b2 // snputc::@2 __b2: - // [19] *__snprintf_buffer = snputc::c#2 -- _deref_pbuz1=vbuxx + // [17] *__snprintf_buffer = snputc::c#2 -- _deref_pbuz1=vbuxx // Append char txa ldy #0 sta (__snprintf_buffer),y - // [20] __snprintf_buffer = ++ __snprintf_buffer -- pbuz1=_inc_pbuz1 + // [18] __snprintf_buffer = ++ __snprintf_buffer -- pbuz1=_inc_pbuz1 inc.z __snprintf_buffer bne !+ inc.z __snprintf_buffer+1 @@ -2478,34 +2452,34 @@ snputc: { conio_c64_init: { // Position cursor at current line .label BASIC_CURSOR_LINE = $d6 - // [21] conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE -- vbuxx=_deref_pbuc1 + // [19] conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE -- vbuxx=_deref_pbuc1 ldx.z BASIC_CURSOR_LINE - // [22] if(conio_c64_init::line#0<$19) goto conio_c64_init::@2 -- vbuxx_lt_vbuc1_then_la1 + // [20] if(conio_c64_init::line#0<$19) goto conio_c64_init::@2 -- vbuxx_lt_vbuc1_then_la1 cpx #$19 bcc __b2_from_conio_c64_init - // [24] phi from conio_c64_init to conio_c64_init::@1 [phi:conio_c64_init->conio_c64_init::@1] + // [22] phi from conio_c64_init to conio_c64_init::@1 [phi:conio_c64_init->conio_c64_init::@1] __b1_from_conio_c64_init: - // [24] phi conio_c64_init::line#2 = $19-1 [phi:conio_c64_init->conio_c64_init::@1#0] -- vbuxx=vbuc1 + // [22] phi conio_c64_init::line#2 = $19-1 [phi:conio_c64_init->conio_c64_init::@1#0] -- vbuxx=vbuc1 ldx #$19-1 jmp __b1 - // [23] phi from conio_c64_init to conio_c64_init::@2 [phi:conio_c64_init->conio_c64_init::@2] + // [21] phi from conio_c64_init to conio_c64_init::@2 [phi:conio_c64_init->conio_c64_init::@2] __b2_from_conio_c64_init: jmp __b2 // conio_c64_init::@2 __b2: - // [24] phi from conio_c64_init::@2 to conio_c64_init::@1 [phi:conio_c64_init::@2->conio_c64_init::@1] + // [22] phi from conio_c64_init::@2 to conio_c64_init::@1 [phi:conio_c64_init::@2->conio_c64_init::@1] __b1_from___b2: - // [24] phi conio_c64_init::line#2 = conio_c64_init::line#0 [phi:conio_c64_init::@2->conio_c64_init::@1#0] -- register_copy + // [22] phi conio_c64_init::line#2 = conio_c64_init::line#0 [phi:conio_c64_init::@2->conio_c64_init::@1#0] -- register_copy jmp __b1 // conio_c64_init::@1 __b1: - // [25] gotoxy::y#2 = conio_c64_init::line#2 - // [26] call gotoxy + // [23] gotoxy::y#2 = conio_c64_init::line#2 + // [24] call gotoxy jsr gotoxy jmp __breturn // conio_c64_init::@return __breturn: - // [27] return + // [25] return rts } // cputc @@ -2514,74 +2488,74 @@ conio_c64_init: { // void cputc(__register(A) char c) cputc: { .const OFFSET_STACK_C = 0 - // [28] cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C) -- vbuaa=_stackidxbyte_vbuc1 + // [26] cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_C,x - // [29] if(cputc::c#0==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 + // [27] if(cputc::c#0==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #'\n' beq __b1_from_cputc jmp __b2 // cputc::@2 __b2: - // [30] conio_line_text[conio_cursor_x] = cputc::c#0 -- pbuz1_derefidx_vbuz2=vbuaa + // [28] conio_line_text[conio_cursor_x] = cputc::c#0 -- pbuz1_derefidx_vbuz2=vbuaa ldy.z conio_cursor_x sta (conio_line_text),y - // [31] conio_line_color[conio_cursor_x] = LIGHT_BLUE -- pbuz1_derefidx_vbuz2=vbuc1 + // [29] conio_line_color[conio_cursor_x] = LIGHT_BLUE -- pbuz1_derefidx_vbuz2=vbuc1 lda #LIGHT_BLUE ldy.z conio_cursor_x sta (conio_line_color),y - // [32] conio_cursor_x = ++ conio_cursor_x -- vbuz1=_inc_vbuz1 + // [30] conio_cursor_x = ++ conio_cursor_x -- vbuz1=_inc_vbuz1 inc.z conio_cursor_x - // [33] if(conio_cursor_x!=$28) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 + // [31] if(conio_cursor_x!=$28) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 lda #$28 cmp.z conio_cursor_x bne __breturn - // [34] phi from cputc::@2 to cputc::@3 [phi:cputc::@2->cputc::@3] + // [32] phi from cputc::@2 to cputc::@3 [phi:cputc::@2->cputc::@3] __b3_from___b2: jmp __b3 // cputc::@3 __b3: - // [35] call cputln + // [33] call cputln jsr cputln jmp __breturn // cputc::@return __breturn: - // [36] return + // [34] return rts - // [37] phi from cputc to cputc::@1 [phi:cputc->cputc::@1] + // [35] phi from cputc to cputc::@1 [phi:cputc->cputc::@1] __b1_from_cputc: jmp __b1 // cputc::@1 __b1: - // [38] call cputln + // [36] call cputln jsr cputln jmp __breturn } // main main: { - // [40] call snprintf_init - // [87] phi from main to snprintf_init [phi:main->snprintf_init] + // [38] call snprintf_init + // [85] phi from main to snprintf_init [phi:main->snprintf_init] snprintf_init_from_main: - // [87] phi snprintf_init::s#2 = BUF1 [phi:main->snprintf_init#0] -- pbuz1=pbuc1 + // [85] phi snprintf_init::s#2 = BUF1 [phi:main->snprintf_init#0] -- pbuz1=pbuc1 lda #BUF1 sta.z snprintf_init.s+1 jsr snprintf_init - // [41] phi from main to main::@1 [phi:main->main::@1] + // [39] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: jmp __b1 // main::@1 __b1: - // [42] call printf_str - // [92] phi from main::@1 to printf_str [phi:main::@1->printf_str] + // [40] call printf_str + // [90] phi from main::@1 to printf_str [phi:main::@1->printf_str] printf_str_from___b1: - // [92] phi printf_str::putc#8 = &snputc [phi:main::@1->printf_str#0] -- pprz1=pprc1 + // [90] phi printf_str::putc#8 = &snputc [phi:main::@1->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [92] phi printf_str::s#8 = main::s [phi:main::@1->printf_str#1] -- pbuz1=pbuc1 + // [90] phi printf_str::s#8 = main::s [phi:main::@1->printf_str#1] -- pbuz1=pbuc1 lda #s @@ -2590,55 +2564,55 @@ main: { jmp __b2 // main::@2 __b2: - // [43] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [41] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [44] callexecute snputc -- call_vprc1 + // [42] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla - // [46] call snprintf_init - // [87] phi from main::@2 to snprintf_init [phi:main::@2->snprintf_init] + // [44] call snprintf_init + // [85] phi from main::@2 to snprintf_init [phi:main::@2->snprintf_init] snprintf_init_from___b2: - // [87] phi snprintf_init::s#2 = BUF2 [phi:main::@2->snprintf_init#0] -- pbuz1=pbuc1 + // [85] phi snprintf_init::s#2 = BUF2 [phi:main::@2->snprintf_init#0] -- pbuz1=pbuc1 lda #BUF2 sta.z snprintf_init.s+1 jsr snprintf_init - // [47] phi from main::@2 to main::@3 [phi:main::@2->main::@3] + // [45] phi from main::@2 to main::@3 [phi:main::@2->main::@3] __b3_from___b2: jmp __b3 // main::@3 __b3: - // [48] call printf_str - // [92] phi from main::@3 to printf_str [phi:main::@3->printf_str] + // [46] call printf_str + // [90] phi from main::@3 to printf_str [phi:main::@3->printf_str] printf_str_from___b3: - // [92] phi printf_str::putc#8 = &snputc [phi:main::@3->printf_str#0] -- pprz1=pprc1 + // [90] phi printf_str::putc#8 = &snputc [phi:main::@3->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [92] phi printf_str::s#8 = main::s1 [phi:main::@3->printf_str#1] -- pbuz1=pbuc1 + // [90] phi printf_str::s#8 = main::s1 [phi:main::@3->printf_str#1] -- pbuz1=pbuc1 lda #s1 sta.z printf_str.s+1 jsr printf_str - // [49] phi from main::@3 to main::@4 [phi:main::@3->main::@4] + // [47] phi from main::@3 to main::@4 [phi:main::@3->main::@4] __b4_from___b3: jmp __b4 // main::@4 __b4: - // [50] call printf_string - // [101] phi from main::@4 to printf_string [phi:main::@4->printf_string] + // [48] call printf_string + // [99] phi from main::@4 to printf_string [phi:main::@4->printf_string] printf_string_from___b4: - // [101] phi printf_string::putc#10 = &snputc [phi:main::@4->printf_string#0] -- pprz1=pprc1 + // [99] phi printf_string::putc#10 = &snputc [phi:main::@4->printf_string#0] -- pprz1=pprc1 lda #snputc sta.z printf_string.putc+1 - // [101] phi printf_string::str#10 = main::str [phi:main::@4->printf_string#1] -- pbuz1=pbuc1 + // [99] phi printf_string::str#10 = main::str [phi:main::@4->printf_string#1] -- pbuz1=pbuc1 lda #str @@ -2647,105 +2621,105 @@ main: { jmp __b5 // main::@5 __b5: - // [51] stackpush(char) = '!' -- _stackpushbyte_=vbuc1 + // [49] stackpush(char) = '!' -- _stackpushbyte_=vbuc1 lda #'!' pha - // [52] callexecute snputc -- call_vprc1 + // [50] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla - // [54] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [52] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [55] callexecute snputc -- call_vprc1 + // [53] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla - // [57] call printf_str - // [92] phi from main::@5 to printf_str [phi:main::@5->printf_str] + // [55] call printf_str + // [90] phi from main::@5 to printf_str [phi:main::@5->printf_str] printf_str_from___b5: - // [92] phi printf_str::putc#8 = &cputc [phi:main::@5->printf_str#0] -- pprz1=pprc1 + // [90] phi printf_str::putc#8 = &cputc [phi:main::@5->printf_str#0] -- pprz1=pprc1 lda #cputc sta.z printf_str.putc+1 - // [92] phi printf_str::s#8 = main::s2 [phi:main::@5->printf_str#1] -- pbuz1=pbuc1 + // [90] phi printf_str::s#8 = main::s2 [phi:main::@5->printf_str#1] -- pbuz1=pbuc1 lda #s2 sta.z printf_str.s+1 jsr printf_str - // [58] phi from main::@5 to main::@6 [phi:main::@5->main::@6] + // [56] phi from main::@5 to main::@6 [phi:main::@5->main::@6] __b6_from___b5: jmp __b6 // main::@6 __b6: - // [59] call printf_string - // [101] phi from main::@6 to printf_string [phi:main::@6->printf_string] + // [57] call printf_string + // [99] phi from main::@6 to printf_string [phi:main::@6->printf_string] printf_string_from___b6: - // [101] phi printf_string::putc#10 = &cputc [phi:main::@6->printf_string#0] -- pprz1=pprc1 + // [99] phi printf_string::putc#10 = &cputc [phi:main::@6->printf_string#0] -- pprz1=pprc1 lda #cputc sta.z printf_string.putc+1 - // [101] phi printf_string::str#10 = BUF1 [phi:main::@6->printf_string#1] -- pbuz1=pbuc1 + // [99] phi printf_string::str#10 = BUF1 [phi:main::@6->printf_string#1] -- pbuz1=pbuc1 lda #BUF1 sta.z printf_string.str+1 jsr printf_string - // [60] phi from main::@6 to main::@7 [phi:main::@6->main::@7] + // [58] phi from main::@6 to main::@7 [phi:main::@6->main::@7] __b7_from___b6: jmp __b7 // main::@7 __b7: - // [61] call printf_str - // [92] phi from main::@7 to printf_str [phi:main::@7->printf_str] + // [59] call printf_str + // [90] phi from main::@7 to printf_str [phi:main::@7->printf_str] printf_str_from___b7: - // [92] phi printf_str::putc#8 = &cputc [phi:main::@7->printf_str#0] -- pprz1=pprc1 + // [90] phi printf_str::putc#8 = &cputc [phi:main::@7->printf_str#0] -- pprz1=pprc1 lda #cputc sta.z printf_str.putc+1 - // [92] phi printf_str::s#8 = main::s3 [phi:main::@7->printf_str#1] -- pbuz1=pbuc1 + // [90] phi printf_str::s#8 = main::s3 [phi:main::@7->printf_str#1] -- pbuz1=pbuc1 lda #s3 sta.z printf_str.s+1 jsr printf_str - // [62] phi from main::@7 to main::@8 [phi:main::@7->main::@8] + // [60] phi from main::@7 to main::@8 [phi:main::@7->main::@8] __b8_from___b7: jmp __b8 // main::@8 __b8: - // [63] call printf_string - // [101] phi from main::@8 to printf_string [phi:main::@8->printf_string] + // [61] call printf_string + // [99] phi from main::@8 to printf_string [phi:main::@8->printf_string] printf_string_from___b8: - // [101] phi printf_string::putc#10 = &cputc [phi:main::@8->printf_string#0] -- pprz1=pprc1 + // [99] phi printf_string::putc#10 = &cputc [phi:main::@8->printf_string#0] -- pprz1=pprc1 lda #cputc sta.z printf_string.putc+1 - // [101] phi printf_string::str#10 = BUF2 [phi:main::@8->printf_string#1] -- pbuz1=pbuc1 + // [99] phi printf_string::str#10 = BUF2 [phi:main::@8->printf_string#1] -- pbuz1=pbuc1 lda #BUF2 sta.z printf_string.str+1 jsr printf_string - // [64] phi from main::@8 to main::@9 [phi:main::@8->main::@9] + // [62] phi from main::@8 to main::@9 [phi:main::@8->main::@9] __b9_from___b8: jmp __b9 // main::@9 __b9: - // [65] call printf_str - // [92] phi from main::@9 to printf_str [phi:main::@9->printf_str] + // [63] call printf_str + // [90] phi from main::@9 to printf_str [phi:main::@9->printf_str] printf_str_from___b9: - // [92] phi printf_str::putc#8 = &cputc [phi:main::@9->printf_str#0] -- pprz1=pprc1 + // [90] phi printf_str::putc#8 = &cputc [phi:main::@9->printf_str#0] -- pprz1=pprc1 lda #cputc sta.z printf_str.putc+1 - // [92] phi printf_str::s#8 = main::s2 [phi:main::@9->printf_str#1] -- pbuz1=pbuc1 + // [90] phi printf_str::s#8 = main::s2 [phi:main::@9->printf_str#1] -- pbuz1=pbuc1 lda #s2 @@ -2754,7 +2728,7 @@ main: { jmp __breturn // main::@return __breturn: - // [66] return + // [64] return rts .segment Data s: .text "hello world!" @@ -2780,39 +2754,39 @@ gotoxy: { .label line_offset = $c .label __8 = $e .label __9 = $c - // [67] if(gotoxy::y#2<$19+1) goto gotoxy::@3 -- vbuxx_lt_vbuc1_then_la1 + // [65] if(gotoxy::y#2<$19+1) goto gotoxy::@3 -- vbuxx_lt_vbuc1_then_la1 cpx #$19+1 bcc __b3_from_gotoxy - // [69] phi from gotoxy to gotoxy::@1 [phi:gotoxy->gotoxy::@1] + // [67] phi from gotoxy to gotoxy::@1 [phi:gotoxy->gotoxy::@1] __b1_from_gotoxy: - // [69] phi gotoxy::y#4 = 0 [phi:gotoxy->gotoxy::@1#0] -- vbuxx=vbuc1 + // [67] phi gotoxy::y#4 = 0 [phi:gotoxy->gotoxy::@1#0] -- vbuxx=vbuc1 ldx #0 jmp __b1 - // [68] phi from gotoxy to gotoxy::@3 [phi:gotoxy->gotoxy::@3] + // [66] phi from gotoxy to gotoxy::@3 [phi:gotoxy->gotoxy::@3] __b3_from_gotoxy: jmp __b3 // gotoxy::@3 __b3: - // [69] phi from gotoxy::@3 to gotoxy::@1 [phi:gotoxy::@3->gotoxy::@1] + // [67] phi from gotoxy::@3 to gotoxy::@1 [phi:gotoxy::@3->gotoxy::@1] __b1_from___b3: - // [69] phi gotoxy::y#4 = gotoxy::y#2 [phi:gotoxy::@3->gotoxy::@1#0] -- register_copy + // [67] phi gotoxy::y#4 = gotoxy::y#2 [phi:gotoxy::@3->gotoxy::@1#0] -- register_copy jmp __b1 // gotoxy::@1 __b1: jmp __b2 // gotoxy::@2 __b2: - // [70] conio_cursor_x = gotoxy::x#2 -- vbuz1=vbuc1 + // [68] conio_cursor_x = gotoxy::x#2 -- vbuz1=vbuc1 lda #x sta.z conio_cursor_x - // [71] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx + // [69] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y - // [72] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [70] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 sta.z __7+1 - // [73] gotoxy::$8 = gotoxy::$7 << 2 -- vwuz1=vwuz2_rol_2 + // [71] gotoxy::$8 = gotoxy::$7 << 2 -- vwuz1=vwuz2_rol_2 lda.z __7 asl sta.z __8 @@ -2821,7 +2795,7 @@ gotoxy: { sta.z __8+1 asl.z __8 rol.z __8+1 - // [74] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 -- vwuz1=vwuz2_plus_vwuz1 + // [72] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 -- vwuz1=vwuz2_plus_vwuz1 clc lda.z __9 adc.z __8 @@ -2829,14 +2803,14 @@ gotoxy: { lda.z __9+1 adc.z __8+1 sta.z __9+1 - // [75] gotoxy::line_offset#0 = gotoxy::$9 << 3 -- vwuz1=vwuz1_rol_3 + // [73] gotoxy::line_offset#0 = gotoxy::$9 << 3 -- vwuz1=vwuz1_rol_3 asl.z line_offset rol.z line_offset+1 asl.z line_offset rol.z line_offset+1 asl.z line_offset rol.z line_offset+1 - // [76] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0 -- pbuz1=pbuc1_plus_vwuz2 + // [74] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0 -- pbuz1=pbuc1_plus_vwuz2 lda.z line_offset clc adc #DEFAULT_SCREEN sta.z __5+1 - // [77] conio_line_text = gotoxy::$5 -- pbuz1=pbuz2 + // [75] conio_line_text = gotoxy::$5 -- pbuz1=pbuz2 lda.z __5 sta.z conio_line_text lda.z __5+1 sta.z conio_line_text+1 - // [78] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0 -- pbuz1=pbuc1_plus_vwuz1 + // [76] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0 -- pbuz1=pbuc1_plus_vwuz1 lda.z __6 clc adc #COLORRAM sta.z __6+1 - // [79] conio_line_color = gotoxy::$6 -- pbuz1=pbuz2 + // [77] conio_line_color = gotoxy::$6 -- pbuz1=pbuz2 lda.z __6 sta.z conio_line_color lda.z __6+1 @@ -2865,13 +2839,13 @@ gotoxy: { jmp __breturn // gotoxy::@return __breturn: - // [80] return + // [78] return rts } // cputln // Print a newline cputln: { - // [81] conio_line_text = conio_line_text + $28 -- pbuz1=pbuz1_plus_vbuc1 + // [79] conio_line_text = conio_line_text + $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z conio_line_text @@ -2879,7 +2853,7 @@ cputln: { bcc !+ inc.z conio_line_text+1 !: - // [82] conio_line_color = conio_line_color + $28 -- pbuz1=pbuz1_plus_vbuc1 + // [80] conio_line_color = conio_line_color + $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z conio_line_color @@ -2887,17 +2861,17 @@ cputln: { bcc !+ inc.z conio_line_color+1 !: - // [83] conio_cursor_x = 0 -- vbuz1=vbuc1 + // [81] conio_cursor_x = 0 -- vbuz1=vbuc1 lda #0 sta.z conio_cursor_x - // [84] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 + // [82] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y - // [85] call cscroll + // [83] call cscroll jsr cscroll jmp __breturn // cputln::@return __breturn: - // [86] return + // [84] return rts } // snprintf_init @@ -2905,17 +2879,17 @@ cputln: { // void snprintf_init(__zp($a) char *s, unsigned int n) snprintf_init: { .label s = $a - // [88] __snprintf_capacity = $14 -- vwuz1=vbuc1 + // [86] __snprintf_capacity = $14 -- vwum1=vbuc1 lda #<$14 - sta.z __snprintf_capacity + sta __snprintf_capacity lda #>$14 - sta.z __snprintf_capacity+1 - // [89] __snprintf_size = 0 -- vwuz1=vbuc1 + sta __snprintf_capacity+1 + // [87] __snprintf_size = 0 -- vwum1=vbuc1 lda #<0 - sta.z __snprintf_size + sta __snprintf_size lda #>0 - sta.z __snprintf_size+1 - // [90] __snprintf_buffer = snprintf_init::s#2 -- pbuz1=pbuz2 + sta __snprintf_size+1 + // [88] __snprintf_buffer = snprintf_init::s#2 -- pbuz1=pbuz2 lda.z s sta.z __snprintf_buffer lda.z s+1 @@ -2923,7 +2897,7 @@ snprintf_init: { jmp __breturn // snprintf_init::@return __breturn: - // [91] return + // [89] return rts } // printf_str @@ -2932,34 +2906,34 @@ snprintf_init: { printf_str: { .label s = 4 .label putc = $a - // [93] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] + // [91] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] __b1_from_printf_str: __b1_from___b2: - // [93] phi printf_str::s#7 = printf_str::s#8 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy + // [91] phi printf_str::s#7 = printf_str::s#8 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy jmp __b1 // printf_str::@1 __b1: - // [94] printf_str::c#1 = *printf_str::s#7 -- vbuaa=_deref_pbuz1 + // [92] printf_str::c#1 = *printf_str::s#7 -- vbuaa=_deref_pbuz1 ldy #0 lda (s),y - // [95] printf_str::s#0 = ++ printf_str::s#7 -- pbuz1=_inc_pbuz1 + // [93] printf_str::s#0 = ++ printf_str::s#7 -- pbuz1=_inc_pbuz1 inc.z s bne !+ inc.z s+1 !: - // [96] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 + // [94] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 cmp #0 bne __b2 jmp __breturn // printf_str::@return __breturn: - // [97] return + // [95] return rts // printf_str::@2 __b2: - // [98] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa + // [96] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa pha - // [99] callexecute *printf_str::putc#8 -- call__deref_pprz1 + // [97] callexecute *printf_str::putc#8 -- call__deref_pprz1 jsr icall4 // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla @@ -2978,92 +2952,92 @@ printf_string: { jmp __b1 // printf_string::@1 __b1: - // [102] printf_str::putc#0 = printf_string::putc#10 - // [103] printf_str::s#1 = printf_string::str#10 - // [104] call printf_str - // [92] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] + // [100] printf_str::putc#0 = printf_string::putc#10 + // [101] printf_str::s#1 = printf_string::str#10 + // [102] call printf_str + // [90] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] printf_str_from___b1: - // [92] phi printf_str::putc#8 = printf_str::putc#0 [phi:printf_string::@1->printf_str#0] -- register_copy - // [92] phi printf_str::s#8 = printf_str::s#1 [phi:printf_string::@1->printf_str#1] -- register_copy + // [90] phi printf_str::putc#8 = printf_str::putc#0 [phi:printf_string::@1->printf_str#0] -- register_copy + // [90] phi printf_str::s#8 = printf_str::s#1 [phi:printf_string::@1->printf_str#1] -- register_copy jsr printf_str jmp __breturn // printf_string::@return __breturn: - // [105] return + // [103] return rts } // cscroll // Scroll the entire screen if the cursor is beyond the last line cscroll: { - // [106] if(conio_cursor_y!=$19) goto cscroll::@return -- vbuz1_neq_vbuc1_then_la1 + // [104] if(conio_cursor_y!=$19) goto cscroll::@return -- vbuz1_neq_vbuc1_then_la1 lda #$19 cmp.z conio_cursor_y bne __breturn - // [107] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] + // [105] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] __b1_from_cscroll: jmp __b1 // cscroll::@1 __b1: - // [108] call memcpy - // [119] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] + // [106] call memcpy + // [117] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] memcpy_from___b1: - // [119] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [117] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [119] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [117] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 sta.z memcpy.source+1 jsr memcpy - // [109] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] + // [107] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] __b2_from___b1: jmp __b2 // cscroll::@2 __b2: - // [110] call memcpy - // [119] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] + // [108] call memcpy + // [117] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] memcpy_from___b2: - // [119] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [117] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [119] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [117] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 sta.z memcpy.source+1 jsr memcpy - // [111] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] + // [109] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] __b3_from___b2: jmp __b3 // cscroll::@3 __b3: - // [112] call memset - // [129] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] + // [110] call memset + // [127] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] memset_from___b3: - // [129] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 + // [127] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [129] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [127] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 sta.z memset.str+1 jsr memset - // [113] phi from cscroll::@3 to cscroll::@4 [phi:cscroll::@3->cscroll::@4] + // [111] phi from cscroll::@3 to cscroll::@4 [phi:cscroll::@3->cscroll::@4] __b4_from___b3: jmp __b4 // cscroll::@4 __b4: - // [114] call memset - // [129] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] + // [112] call memset + // [127] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] memset_from___b4: - // [129] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 + // [127] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [129] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [127] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -3072,7 +3046,7 @@ cscroll: { jmp __b5 // cscroll::@5 __b5: - // [115] conio_line_text = conio_line_text - $28 -- pbuz1=pbuz1_minus_vbuc1 + // [113] conio_line_text = conio_line_text - $28 -- pbuz1=pbuz1_minus_vbuc1 sec lda.z conio_line_text sbc #$28 @@ -3080,7 +3054,7 @@ cscroll: { lda.z conio_line_text+1 sbc #0 sta.z conio_line_text+1 - // [116] conio_line_color = conio_line_color - $28 -- pbuz1=pbuz1_minus_vbuc1 + // [114] conio_line_color = conio_line_color - $28 -- pbuz1=pbuz1_minus_vbuc1 sec lda.z conio_line_color sbc #$28 @@ -3088,12 +3062,12 @@ cscroll: { lda.z conio_line_color+1 sbc #0 sta.z conio_line_color+1 - // [117] conio_cursor_y = -- conio_cursor_y -- vbuz1=_dec_vbuz1 + // [115] conio_cursor_y = -- conio_cursor_y -- vbuz1=_dec_vbuz1 dec.z conio_cursor_y jmp __breturn // cscroll::@return __breturn: - // [118] return + // [116] return rts } // memcpy @@ -3106,7 +3080,7 @@ memcpy: { .label src = 2 .label source = 2 .label destination = 6 - // [120] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [118] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -3114,17 +3088,17 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [121] memcpy::src#4 = (char *)memcpy::source#2 - // [122] memcpy::dst#4 = (char *)memcpy::destination#2 - // [123] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] + // [119] memcpy::src#4 = (char *)memcpy::source#2 + // [120] memcpy::dst#4 = (char *)memcpy::destination#2 + // [121] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] __b1_from_memcpy: __b1_from___b2: - // [123] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy - // [123] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy + // [121] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy + // [121] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy jmp __b1 // memcpy::@1 __b1: - // [124] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuz2_then_la1 + // [122] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuz2_then_la1 lda.z src+1 cmp.z src_end+1 bne __b2 @@ -3134,21 +3108,21 @@ memcpy: { jmp __breturn // memcpy::@return __breturn: - // [125] return + // [123] return rts // memcpy::@2 __b2: - // [126] *memcpy::dst#2 = *memcpy::src#2 -- _deref_pbuz1=_deref_pbuz2 + // [124] *memcpy::dst#2 = *memcpy::src#2 -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (src),y ldy #0 sta (dst),y - // [127] memcpy::dst#1 = ++ memcpy::dst#2 -- pbuz1=_inc_pbuz1 + // [125] memcpy::dst#1 = ++ memcpy::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: - // [128] memcpy::src#1 = ++ memcpy::src#2 -- pbuz1=_inc_pbuz1 + // [126] memcpy::src#1 = ++ memcpy::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 @@ -3165,7 +3139,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [130] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [128] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -3173,15 +3147,15 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [131] memset::dst#4 = (char *)memset::str#3 - // [132] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + // [129] memset::dst#4 = (char *)memset::str#3 + // [130] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: - // [132] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + // [130] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy jmp __b2 // memset::@2 __b2: - // [133] if(memset::dst#2!=memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 + // [131] 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 @@ -3191,15 +3165,15 @@ memset: { jmp __breturn // memset::@return __breturn: - // [134] return + // [132] return rts // memset::@3 __b3: - // [135] *memset::dst#2 = memset::c#4 -- _deref_pbuz1=vbuxx + // [133] *memset::dst#2 = memset::c#4 -- _deref_pbuz1=vbuxx txa ldy #0 sta (dst),y - // [136] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 + // [134] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 @@ -3210,6 +3184,12 @@ memset: { .segment Data BUF1: .fill $14, 0 BUF2: .fill $14, 0 + /// The capacity of the buffer (n passed to snprintf()) + /// Used to hold state while printing + __snprintf_capacity: .word 0 + // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity. + /// Used to hold state while printing + __snprintf_size: .word 0 ASSEMBLER OPTIMIZATIONS Removing instruction jmp __init1 @@ -3259,10 +3239,6 @@ Removing instruction jmp __breturn Succesful ASM optimization Pass5NextJumpElimination Removing instruction lda #0 Removing instruction lda #>0 -Removing instruction lda #<0 -Removing instruction lda #>0 -Removing instruction lda #<0 -Removing instruction lda #>0 Removing instruction ldy.z conio_cursor_x Removing instruction lda #>0 Removing instruction ldy #0 @@ -3378,9 +3354,9 @@ __constant char RADIX::DECIMAL = $a __constant char RADIX::HEXADECIMAL = $10 __constant char RADIX::OCTAL = 8 __constant unsigned int STACK_BASE = $103 -__loadstore char *__snprintf_buffer // zp[2]:22 16.916666666666664 -__loadstore volatile unsigned int __snprintf_capacity // zp[2]:28 11.730769230769232 -__loadstore volatile unsigned int __snprintf_size // zp[2]:19 20.279999999999998 +__loadstore char *__snprintf_buffer // zp[2]:20 16.916666666666664 +__loadstore volatile unsigned int __snprintf_capacity = 0 // mem[2] 11.653846153846153 +__loadstore volatile unsigned int __snprintf_size = 0 // mem[2] 20.2 void __start() void conio_c64_init() __constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 @@ -3388,9 +3364,9 @@ char conio_c64_init::line char conio_c64_init::line#0 // reg byte x 11.0 char conio_c64_init::line#2 // reg byte x 22.0 __loadstore char conio_cursor_x // zp[1]:18 24.799999999999997 -__loadstore char conio_cursor_y // zp[1]:21 18.608695652173914 -__loadstore char *conio_line_color // zp[2]:26 14.954545454545453 -__loadstore char *conio_line_text // zp[2]:24 15.666666666666668 +__loadstore char conio_cursor_y // zp[1]:19 18.608695652173914 +__loadstore char *conio_line_color // zp[2]:24 14.954545454545453 +__loadstore char *conio_line_text // zp[2]:22 15.666666666666668 __stackcall void cputc(char c) __constant char cputc::OFFSET_STACK_C = 0 char cputc::c @@ -3485,23 +3461,23 @@ zp[2]:4 [ printf_str::s#7 printf_str::s#8 printf_str::s#1 printf_str::s#0 printf zp[2]:2 [ memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 memcpy::source#2 memcpy::src#2 memcpy::src#4 memcpy::src#1 ] reg byte x [ memset::c#4 ] zp[1]:18 [ conio_cursor_x ] -zp[1]:21 [ conio_cursor_y ] -zp[2]:24 [ conio_line_text ] -zp[2]:26 [ conio_line_color ] -zp[2]:28 [ __snprintf_capacity ] -zp[2]:19 [ __snprintf_size ] -zp[2]:22 [ __snprintf_buffer ] +zp[1]:19 [ conio_cursor_y ] +zp[2]:22 [ conio_line_text ] +zp[2]:24 [ conio_line_color ] +zp[2]:20 [ __snprintf_buffer ] +mem[2] [ __snprintf_size ] reg byte a [ cputc::c#0 ] zp[2]:12 [ gotoxy::$7 gotoxy::$9 gotoxy::line_offset#0 gotoxy::$6 ] zp[2]:14 [ gotoxy::$8 ] zp[2]:16 [ gotoxy::$5 ] +mem[2] [ __snprintf_capacity ] reg byte a [ printf_str::c#1 ] zp[2]:8 [ memcpy::src_end#0 ] zp[2]:6 [ memset::end#0 memcpy::destination#2 memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ] FINAL ASSEMBLER -Score: 2464 +Score: 2466 // File Comments // Tests snprintf function call rewriting @@ -3526,20 +3502,14 @@ Score: 2464 // The current cursor x-position .label conio_cursor_x = $12 // The current cursor y-position - .label conio_cursor_y = $15 + .label conio_cursor_y = $13 // The current text cursor line start - .label conio_line_text = $18 + .label conio_line_text = $16 // The current color cursor line start - .label conio_line_color = $1a - /// The capacity of the buffer (n passed to snprintf()) - /// Used to hold state while printing - .label __snprintf_capacity = $1c - // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity. - /// Used to hold state while printing - .label __snprintf_size = $13 + .label conio_line_color = $18 /// Current position in the buffer being filled ( initially *s passed to snprintf() /// Used to hold state while printing - .label __snprintf_buffer = $16 + .label __snprintf_buffer = $14 .segment Code // __start __start: { @@ -3563,29 +3533,21 @@ __start: { sta.z conio_line_color lda #>COLORRAM sta.z conio_line_color+1 - // volatile size_t __snprintf_capacity - // [5] __snprintf_capacity = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z __snprintf_capacity - sta.z __snprintf_capacity+1 - // volatile size_t __snprintf_size - // [6] __snprintf_size = 0 -- vwuz1=vwuc1 - sta.z __snprintf_size - sta.z __snprintf_size+1 // char * __snprintf_buffer - // [7] __snprintf_buffer = (char *) 0 -- pbuz1=pbuc1 + // [5] __snprintf_buffer = (char *) 0 -- pbuz1=pbuc1 + lda #<0 sta.z __snprintf_buffer sta.z __snprintf_buffer+1 // #pragma constructor_for(conio_c64_init, cputc, clrscr, cscroll) - // [8] call conio_c64_init + // [6] call conio_c64_init jsr conio_c64_init - // [9] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] + // [7] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [10] call main - // [39] phi from __start::@1 to main [phi:__start::@1->main] + // [8] call main + // [37] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return - // [11] return + // [9] return rts } // snputc @@ -3595,57 +3557,57 @@ __start: { // void snputc(__register(X) char c) snputc: { .const OFFSET_STACK_C = 0 - // [12] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) -- vbuxx=_stackidxbyte_vbuc1 + // [10] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) -- vbuxx=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_C,x tax // ++__snprintf_size; - // [13] __snprintf_size = ++ __snprintf_size -- vwuz1=_inc_vwuz1 - inc.z __snprintf_size + // [11] __snprintf_size = ++ __snprintf_size -- vwum1=_inc_vwum1 + inc __snprintf_size bne !+ - inc.z __snprintf_size+1 + inc __snprintf_size+1 !: // if(__snprintf_size > __snprintf_capacity) - // [14] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 -- vwuz1_le_vwuz2_then_la1 - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + // [12] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 -- vwum1_le_vwum2_then_la1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne !+ - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity beq __b1 !: bcc __b1 // snputc::@return // } - // [15] return + // [13] return rts // snputc::@1 __b1: // if(__snprintf_size==__snprintf_capacity) - // [16] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 -- vwuz1_neq_vwuz2_then_la1 - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + // [14] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 -- vwum1_neq_vwum2_then_la1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne __b2 - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity bne __b2 - // [18] phi from snputc::@1 to snputc::@2 [phi:snputc::@1->snputc::@2] - // [18] phi snputc::c#2 = 0 [phi:snputc::@1->snputc::@2#0] -- vbuxx=vbuc1 + // [16] phi from snputc::@1 to snputc::@2 [phi:snputc::@1->snputc::@2] + // [16] phi snputc::c#2 = 0 [phi:snputc::@1->snputc::@2#0] -- vbuxx=vbuc1 ldx #0 - // [17] phi from snputc::@1 to snputc::@3 [phi:snputc::@1->snputc::@3] + // [15] phi from snputc::@1 to snputc::@3 [phi:snputc::@1->snputc::@3] // snputc::@3 - // [18] phi from snputc::@3 to snputc::@2 [phi:snputc::@3->snputc::@2] - // [18] phi snputc::c#2 = snputc::c#0 [phi:snputc::@3->snputc::@2#0] -- register_copy + // [16] phi from snputc::@3 to snputc::@2 [phi:snputc::@3->snputc::@2] + // [16] phi snputc::c#2 = snputc::c#0 [phi:snputc::@3->snputc::@2#0] -- register_copy // snputc::@2 __b2: // *(__snprintf_buffer++) = c - // [19] *__snprintf_buffer = snputc::c#2 -- _deref_pbuz1=vbuxx + // [17] *__snprintf_buffer = snputc::c#2 -- _deref_pbuz1=vbuxx // Append char txa ldy #0 sta (__snprintf_buffer),y // *(__snprintf_buffer++) = c; - // [20] __snprintf_buffer = ++ __snprintf_buffer -- pbuz1=_inc_pbuz1 + // [18] __snprintf_buffer = ++ __snprintf_buffer -- pbuz1=_inc_pbuz1 inc.z __snprintf_buffer bne !+ inc.z __snprintf_buffer+1 @@ -3658,28 +3620,28 @@ conio_c64_init: { // Position cursor at current line .label BASIC_CURSOR_LINE = $d6 // char line = *BASIC_CURSOR_LINE - // [21] conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE -- vbuxx=_deref_pbuc1 + // [19] conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE -- vbuxx=_deref_pbuc1 ldx.z BASIC_CURSOR_LINE // if(line>=CONIO_HEIGHT) - // [22] if(conio_c64_init::line#0<$19) goto conio_c64_init::@2 -- vbuxx_lt_vbuc1_then_la1 + // [20] if(conio_c64_init::line#0<$19) goto conio_c64_init::@2 -- vbuxx_lt_vbuc1_then_la1 cpx #$19 bcc __b1 - // [24] phi from conio_c64_init to conio_c64_init::@1 [phi:conio_c64_init->conio_c64_init::@1] - // [24] phi conio_c64_init::line#2 = $19-1 [phi:conio_c64_init->conio_c64_init::@1#0] -- vbuxx=vbuc1 + // [22] phi from conio_c64_init to conio_c64_init::@1 [phi:conio_c64_init->conio_c64_init::@1] + // [22] phi conio_c64_init::line#2 = $19-1 [phi:conio_c64_init->conio_c64_init::@1#0] -- vbuxx=vbuc1 ldx #$19-1 - // [23] phi from conio_c64_init to conio_c64_init::@2 [phi:conio_c64_init->conio_c64_init::@2] + // [21] phi from conio_c64_init to conio_c64_init::@2 [phi:conio_c64_init->conio_c64_init::@2] // conio_c64_init::@2 - // [24] phi from conio_c64_init::@2 to conio_c64_init::@1 [phi:conio_c64_init::@2->conio_c64_init::@1] - // [24] phi conio_c64_init::line#2 = conio_c64_init::line#0 [phi:conio_c64_init::@2->conio_c64_init::@1#0] -- register_copy + // [22] phi from conio_c64_init::@2 to conio_c64_init::@1 [phi:conio_c64_init::@2->conio_c64_init::@1] + // [22] phi conio_c64_init::line#2 = conio_c64_init::line#0 [phi:conio_c64_init::@2->conio_c64_init::@1#0] -- register_copy // conio_c64_init::@1 __b1: // gotoxy(0, line) - // [25] gotoxy::y#2 = conio_c64_init::line#2 - // [26] call gotoxy + // [23] gotoxy::y#2 = conio_c64_init::line#2 + // [24] call gotoxy jsr gotoxy // conio_c64_init::@return // } - // [27] return + // [25] return rts } // cputc @@ -3688,69 +3650,69 @@ conio_c64_init: { // void cputc(__register(A) char c) cputc: { .const OFFSET_STACK_C = 0 - // [28] cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C) -- vbuaa=_stackidxbyte_vbuc1 + // [26] cputc::c#0 = stackidx(char,cputc::OFFSET_STACK_C) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_C,x // if(c=='\n') - // [29] if(cputc::c#0==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 + // [27] if(cputc::c#0==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #'\n' beq __b1 // cputc::@2 // conio_line_text[conio_cursor_x] = c - // [30] conio_line_text[conio_cursor_x] = cputc::c#0 -- pbuz1_derefidx_vbuz2=vbuaa + // [28] conio_line_text[conio_cursor_x] = cputc::c#0 -- pbuz1_derefidx_vbuz2=vbuaa ldy.z conio_cursor_x sta (conio_line_text),y // conio_line_color[conio_cursor_x] = conio_textcolor - // [31] conio_line_color[conio_cursor_x] = LIGHT_BLUE -- pbuz1_derefidx_vbuz2=vbuc1 + // [29] conio_line_color[conio_cursor_x] = LIGHT_BLUE -- pbuz1_derefidx_vbuz2=vbuc1 lda #LIGHT_BLUE sta (conio_line_color),y // if(++conio_cursor_x==CONIO_WIDTH) - // [32] conio_cursor_x = ++ conio_cursor_x -- vbuz1=_inc_vbuz1 + // [30] conio_cursor_x = ++ conio_cursor_x -- vbuz1=_inc_vbuz1 inc.z conio_cursor_x - // [33] if(conio_cursor_x!=$28) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 + // [31] if(conio_cursor_x!=$28) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 lda #$28 cmp.z conio_cursor_x bne __breturn - // [34] phi from cputc::@2 to cputc::@3 [phi:cputc::@2->cputc::@3] + // [32] phi from cputc::@2 to cputc::@3 [phi:cputc::@2->cputc::@3] // cputc::@3 // cputln() - // [35] call cputln + // [33] call cputln jsr cputln // cputc::@return __breturn: // } - // [36] return + // [34] return rts - // [37] phi from cputc to cputc::@1 [phi:cputc->cputc::@1] + // [35] phi from cputc to cputc::@1 [phi:cputc->cputc::@1] // cputc::@1 __b1: // cputln() - // [38] call cputln + // [36] call cputln jsr cputln rts } // main main: { // snprintf(BUF1, 20, "hello world!") - // [40] call snprintf_init - // [87] phi from main to snprintf_init [phi:main->snprintf_init] - // [87] phi snprintf_init::s#2 = BUF1 [phi:main->snprintf_init#0] -- pbuz1=pbuc1 + // [38] call snprintf_init + // [85] phi from main to snprintf_init [phi:main->snprintf_init] + // [85] phi snprintf_init::s#2 = BUF1 [phi:main->snprintf_init#0] -- pbuz1=pbuc1 lda #BUF1 sta.z snprintf_init.s+1 jsr snprintf_init - // [41] phi from main to main::@1 [phi:main->main::@1] + // [39] phi from main to main::@1 [phi:main->main::@1] // main::@1 // snprintf(BUF1, 20, "hello world!") - // [42] call printf_str - // [92] phi from main::@1 to printf_str [phi:main::@1->printf_str] - // [92] phi printf_str::putc#8 = &snputc [phi:main::@1->printf_str#0] -- pprz1=pprc1 + // [40] call printf_str + // [90] phi from main::@1 to printf_str [phi:main::@1->printf_str] + // [90] phi printf_str::putc#8 = &snputc [phi:main::@1->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [92] phi printf_str::s#8 = main::s [phi:main::@1->printf_str#1] -- pbuz1=pbuc1 + // [90] phi printf_str::s#8 = main::s [phi:main::@1->printf_str#1] -- pbuz1=pbuc1 lda #s @@ -3758,49 +3720,49 @@ main: { jsr printf_str // main::@2 // snprintf(BUF1, 20, "hello world!") - // [43] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [41] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [44] callexecute snputc -- call_vprc1 + // [42] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla // snprintf(BUF2, 20, "hello %s%c", "world", '!') - // [46] call snprintf_init - // [87] phi from main::@2 to snprintf_init [phi:main::@2->snprintf_init] - // [87] phi snprintf_init::s#2 = BUF2 [phi:main::@2->snprintf_init#0] -- pbuz1=pbuc1 + // [44] call snprintf_init + // [85] phi from main::@2 to snprintf_init [phi:main::@2->snprintf_init] + // [85] phi snprintf_init::s#2 = BUF2 [phi:main::@2->snprintf_init#0] -- pbuz1=pbuc1 lda #BUF2 sta.z snprintf_init.s+1 jsr snprintf_init - // [47] phi from main::@2 to main::@3 [phi:main::@2->main::@3] + // [45] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // snprintf(BUF2, 20, "hello %s%c", "world", '!') - // [48] call printf_str - // [92] phi from main::@3 to printf_str [phi:main::@3->printf_str] - // [92] phi printf_str::putc#8 = &snputc [phi:main::@3->printf_str#0] -- pprz1=pprc1 + // [46] call printf_str + // [90] phi from main::@3 to printf_str [phi:main::@3->printf_str] + // [90] phi printf_str::putc#8 = &snputc [phi:main::@3->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [92] phi printf_str::s#8 = main::s1 [phi:main::@3->printf_str#1] -- pbuz1=pbuc1 + // [90] phi printf_str::s#8 = main::s1 [phi:main::@3->printf_str#1] -- pbuz1=pbuc1 lda #s1 sta.z printf_str.s+1 jsr printf_str - // [49] phi from main::@3 to main::@4 [phi:main::@3->main::@4] + // [47] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 // snprintf(BUF2, 20, "hello %s%c", "world", '!') - // [50] call printf_string - // [101] phi from main::@4 to printf_string [phi:main::@4->printf_string] - // [101] phi printf_string::putc#10 = &snputc [phi:main::@4->printf_string#0] -- pprz1=pprc1 + // [48] call printf_string + // [99] phi from main::@4 to printf_string [phi:main::@4->printf_string] + // [99] phi printf_string::putc#10 = &snputc [phi:main::@4->printf_string#0] -- pprz1=pprc1 lda #snputc sta.z printf_string.putc+1 - // [101] phi printf_string::str#10 = main::str [phi:main::@4->printf_string#1] -- pbuz1=pbuc1 + // [99] phi printf_string::str#10 = main::str [phi:main::@4->printf_string#1] -- pbuz1=pbuc1 lda #str @@ -3808,93 +3770,93 @@ main: { jsr printf_string // main::@5 // snprintf(BUF2, 20, "hello %s%c", "world", '!') - // [51] stackpush(char) = '!' -- _stackpushbyte_=vbuc1 + // [49] stackpush(char) = '!' -- _stackpushbyte_=vbuc1 lda #'!' pha - // [52] callexecute snputc -- call_vprc1 + // [50] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla - // [54] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [52] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [55] callexecute snputc -- call_vprc1 + // [53] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla // printf("-%s- -%s-", BUF1, BUF2) - // [57] call printf_str - // [92] phi from main::@5 to printf_str [phi:main::@5->printf_str] - // [92] phi printf_str::putc#8 = &cputc [phi:main::@5->printf_str#0] -- pprz1=pprc1 + // [55] call printf_str + // [90] phi from main::@5 to printf_str [phi:main::@5->printf_str] + // [90] phi printf_str::putc#8 = &cputc [phi:main::@5->printf_str#0] -- pprz1=pprc1 lda #cputc sta.z printf_str.putc+1 - // [92] phi printf_str::s#8 = main::s2 [phi:main::@5->printf_str#1] -- pbuz1=pbuc1 + // [90] phi printf_str::s#8 = main::s2 [phi:main::@5->printf_str#1] -- pbuz1=pbuc1 lda #s2 sta.z printf_str.s+1 jsr printf_str - // [58] phi from main::@5 to main::@6 [phi:main::@5->main::@6] + // [56] phi from main::@5 to main::@6 [phi:main::@5->main::@6] // main::@6 // printf("-%s- -%s-", BUF1, BUF2) - // [59] call printf_string - // [101] phi from main::@6 to printf_string [phi:main::@6->printf_string] - // [101] phi printf_string::putc#10 = &cputc [phi:main::@6->printf_string#0] -- pprz1=pprc1 + // [57] call printf_string + // [99] phi from main::@6 to printf_string [phi:main::@6->printf_string] + // [99] phi printf_string::putc#10 = &cputc [phi:main::@6->printf_string#0] -- pprz1=pprc1 lda #cputc sta.z printf_string.putc+1 - // [101] phi printf_string::str#10 = BUF1 [phi:main::@6->printf_string#1] -- pbuz1=pbuc1 + // [99] phi printf_string::str#10 = BUF1 [phi:main::@6->printf_string#1] -- pbuz1=pbuc1 lda #BUF1 sta.z printf_string.str+1 jsr printf_string - // [60] phi from main::@6 to main::@7 [phi:main::@6->main::@7] + // [58] phi from main::@6 to main::@7 [phi:main::@6->main::@7] // main::@7 // printf("-%s- -%s-", BUF1, BUF2) - // [61] call printf_str - // [92] phi from main::@7 to printf_str [phi:main::@7->printf_str] - // [92] phi printf_str::putc#8 = &cputc [phi:main::@7->printf_str#0] -- pprz1=pprc1 + // [59] call printf_str + // [90] phi from main::@7 to printf_str [phi:main::@7->printf_str] + // [90] phi printf_str::putc#8 = &cputc [phi:main::@7->printf_str#0] -- pprz1=pprc1 lda #cputc sta.z printf_str.putc+1 - // [92] phi printf_str::s#8 = main::s3 [phi:main::@7->printf_str#1] -- pbuz1=pbuc1 + // [90] phi printf_str::s#8 = main::s3 [phi:main::@7->printf_str#1] -- pbuz1=pbuc1 lda #s3 sta.z printf_str.s+1 jsr printf_str - // [62] phi from main::@7 to main::@8 [phi:main::@7->main::@8] + // [60] phi from main::@7 to main::@8 [phi:main::@7->main::@8] // main::@8 // printf("-%s- -%s-", BUF1, BUF2) - // [63] call printf_string - // [101] phi from main::@8 to printf_string [phi:main::@8->printf_string] - // [101] phi printf_string::putc#10 = &cputc [phi:main::@8->printf_string#0] -- pprz1=pprc1 + // [61] call printf_string + // [99] phi from main::@8 to printf_string [phi:main::@8->printf_string] + // [99] phi printf_string::putc#10 = &cputc [phi:main::@8->printf_string#0] -- pprz1=pprc1 lda #cputc sta.z printf_string.putc+1 - // [101] phi printf_string::str#10 = BUF2 [phi:main::@8->printf_string#1] -- pbuz1=pbuc1 + // [99] phi printf_string::str#10 = BUF2 [phi:main::@8->printf_string#1] -- pbuz1=pbuc1 lda #BUF2 sta.z printf_string.str+1 jsr printf_string - // [64] phi from main::@8 to main::@9 [phi:main::@8->main::@9] + // [62] phi from main::@8 to main::@9 [phi:main::@8->main::@9] // main::@9 // printf("-%s- -%s-", BUF1, BUF2) - // [65] call printf_str - // [92] phi from main::@9 to printf_str [phi:main::@9->printf_str] - // [92] phi printf_str::putc#8 = &cputc [phi:main::@9->printf_str#0] -- pprz1=pprc1 + // [63] call printf_str + // [90] phi from main::@9 to printf_str [phi:main::@9->printf_str] + // [90] phi printf_str::putc#8 = &cputc [phi:main::@9->printf_str#0] -- pprz1=pprc1 lda #cputc sta.z printf_str.putc+1 - // [92] phi printf_str::s#8 = main::s2 [phi:main::@9->printf_str#1] -- pbuz1=pbuc1 + // [90] phi printf_str::s#8 = main::s2 [phi:main::@9->printf_str#1] -- pbuz1=pbuc1 lda #s2 @@ -3902,7 +3864,7 @@ main: { jsr printf_str // main::@return // } - // [66] return + // [64] return rts .segment Data s: .text "hello world!" @@ -3929,33 +3891,33 @@ gotoxy: { .label __8 = $e .label __9 = $c // if(y>CONIO_HEIGHT) - // [67] if(gotoxy::y#2<$19+1) goto gotoxy::@3 -- vbuxx_lt_vbuc1_then_la1 + // [65] if(gotoxy::y#2<$19+1) goto gotoxy::@3 -- vbuxx_lt_vbuc1_then_la1 cpx #$19+1 bcc __b2 - // [69] phi from gotoxy to gotoxy::@1 [phi:gotoxy->gotoxy::@1] - // [69] phi gotoxy::y#4 = 0 [phi:gotoxy->gotoxy::@1#0] -- vbuxx=vbuc1 + // [67] phi from gotoxy to gotoxy::@1 [phi:gotoxy->gotoxy::@1] + // [67] phi gotoxy::y#4 = 0 [phi:gotoxy->gotoxy::@1#0] -- vbuxx=vbuc1 ldx #0 - // [68] phi from gotoxy to gotoxy::@3 [phi:gotoxy->gotoxy::@3] + // [66] phi from gotoxy to gotoxy::@3 [phi:gotoxy->gotoxy::@3] // gotoxy::@3 - // [69] phi from gotoxy::@3 to gotoxy::@1 [phi:gotoxy::@3->gotoxy::@1] - // [69] phi gotoxy::y#4 = gotoxy::y#2 [phi:gotoxy::@3->gotoxy::@1#0] -- register_copy + // [67] phi from gotoxy::@3 to gotoxy::@1 [phi:gotoxy::@3->gotoxy::@1] + // [67] phi gotoxy::y#4 = gotoxy::y#2 [phi:gotoxy::@3->gotoxy::@1#0] -- register_copy // gotoxy::@1 // gotoxy::@2 __b2: // conio_cursor_x = x - // [70] conio_cursor_x = gotoxy::x#2 -- vbuz1=vbuc1 + // [68] conio_cursor_x = gotoxy::x#2 -- vbuz1=vbuc1 lda #x sta.z conio_cursor_x // conio_cursor_y = y - // [71] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx + // [69] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y // unsigned int line_offset = (unsigned int)y*CONIO_WIDTH - // [72] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [70] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 sta.z __7+1 - // [73] gotoxy::$8 = gotoxy::$7 << 2 -- vwuz1=vwuz2_rol_2 + // [71] gotoxy::$8 = gotoxy::$7 << 2 -- vwuz1=vwuz2_rol_2 lda.z __7 asl sta.z __8 @@ -3964,7 +3926,7 @@ gotoxy: { sta.z __8+1 asl.z __8 rol.z __8+1 - // [74] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 -- vwuz1=vwuz2_plus_vwuz1 + // [72] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 -- vwuz1=vwuz2_plus_vwuz1 clc lda.z __9 adc.z __8 @@ -3972,7 +3934,7 @@ gotoxy: { lda.z __9+1 adc.z __8+1 sta.z __9+1 - // [75] gotoxy::line_offset#0 = gotoxy::$9 << 3 -- vwuz1=vwuz1_rol_3 + // [73] gotoxy::line_offset#0 = gotoxy::$9 << 3 -- vwuz1=vwuz1_rol_3 asl.z line_offset rol.z line_offset+1 asl.z line_offset @@ -3980,7 +3942,7 @@ gotoxy: { asl.z line_offset rol.z line_offset+1 // CONIO_SCREEN_TEXT + line_offset - // [76] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0 -- pbuz1=pbuc1_plus_vwuz2 + // [74] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0 -- pbuz1=pbuc1_plus_vwuz2 lda.z line_offset clc adc #DEFAULT_SCREEN sta.z __5+1 // conio_line_text = CONIO_SCREEN_TEXT + line_offset - // [77] conio_line_text = gotoxy::$5 -- pbuz1=pbuz2 + // [75] conio_line_text = gotoxy::$5 -- pbuz1=pbuz2 lda.z __5 sta.z conio_line_text lda.z __5+1 sta.z conio_line_text+1 // CONIO_SCREEN_COLORS + line_offset - // [78] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0 -- pbuz1=pbuc1_plus_vwuz1 + // [76] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0 -- pbuz1=pbuc1_plus_vwuz1 lda.z __6 clc adc #COLORRAM sta.z __6+1 // conio_line_color = CONIO_SCREEN_COLORS + line_offset - // [79] conio_line_color = gotoxy::$6 -- pbuz1=pbuz2 + // [77] conio_line_color = gotoxy::$6 -- pbuz1=pbuz2 lda.z __6 sta.z conio_line_color lda.z __6+1 sta.z conio_line_color+1 // gotoxy::@return // } - // [80] return + // [78] return rts } // cputln // Print a newline cputln: { // conio_line_text += CONIO_WIDTH - // [81] conio_line_text = conio_line_text + $28 -- pbuz1=pbuz1_plus_vbuc1 + // [79] conio_line_text = conio_line_text + $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z conio_line_text @@ -4027,7 +3989,7 @@ cputln: { inc.z conio_line_text+1 !: // conio_line_color += CONIO_WIDTH - // [82] conio_line_color = conio_line_color + $28 -- pbuz1=pbuz1_plus_vbuc1 + // [80] conio_line_color = conio_line_color + $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z conio_line_color @@ -4036,18 +3998,18 @@ cputln: { inc.z conio_line_color+1 !: // conio_cursor_x = 0 - // [83] conio_cursor_x = 0 -- vbuz1=vbuc1 + // [81] conio_cursor_x = 0 -- vbuz1=vbuc1 lda #0 sta.z conio_cursor_x // conio_cursor_y++; - // [84] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 + // [82] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y // cscroll() - // [85] call cscroll + // [83] call cscroll jsr cscroll // cputln::@return // } - // [86] return + // [84] return rts } // snprintf_init @@ -4056,25 +4018,25 @@ cputln: { snprintf_init: { .label s = $a // __snprintf_capacity = n - // [88] __snprintf_capacity = $14 -- vwuz1=vbuc1 + // [86] __snprintf_capacity = $14 -- vwum1=vbuc1 lda #<$14 - sta.z __snprintf_capacity + sta __snprintf_capacity lda #>$14 - sta.z __snprintf_capacity+1 + sta __snprintf_capacity+1 // __snprintf_size = 0 - // [89] __snprintf_size = 0 -- vwuz1=vbuc1 + // [87] __snprintf_size = 0 -- vwum1=vbuc1 lda #<0 - sta.z __snprintf_size - sta.z __snprintf_size+1 + sta __snprintf_size + sta __snprintf_size+1 // __snprintf_buffer = s - // [90] __snprintf_buffer = snprintf_init::s#2 -- pbuz1=pbuz2 + // [88] __snprintf_buffer = snprintf_init::s#2 -- pbuz1=pbuz2 lda.z s sta.z __snprintf_buffer lda.z s+1 sta.z __snprintf_buffer+1 // snprintf_init::@return // } - // [91] return + // [89] return rts } // printf_str @@ -4083,32 +4045,32 @@ snprintf_init: { printf_str: { .label s = 4 .label putc = $a - // [93] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] - // [93] phi printf_str::s#7 = printf_str::s#8 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy + // [91] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] + // [91] phi printf_str::s#7 = printf_str::s#8 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy // printf_str::@1 __b1: // while(c=*s++) - // [94] printf_str::c#1 = *printf_str::s#7 -- vbuaa=_deref_pbuz1 + // [92] printf_str::c#1 = *printf_str::s#7 -- vbuaa=_deref_pbuz1 ldy #0 lda (s),y - // [95] printf_str::s#0 = ++ printf_str::s#7 -- pbuz1=_inc_pbuz1 + // [93] printf_str::s#0 = ++ printf_str::s#7 -- pbuz1=_inc_pbuz1 inc.z s bne !+ inc.z s+1 !: - // [96] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 + // [94] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 cmp #0 bne __b2 // printf_str::@return // } - // [97] return + // [95] return rts // printf_str::@2 __b2: // putc(c) - // [98] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa + // [96] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa pha - // [99] callexecute *printf_str::putc#8 -- call__deref_pprz1 + // [97] callexecute *printf_str::putc#8 -- call__deref_pprz1 jsr icall4 // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla @@ -4126,79 +4088,79 @@ printf_string: { .label str = 4 // printf_string::@1 // printf_str(putc, str) - // [102] printf_str::putc#0 = printf_string::putc#10 - // [103] printf_str::s#1 = printf_string::str#10 - // [104] call printf_str - // [92] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] - // [92] phi printf_str::putc#8 = printf_str::putc#0 [phi:printf_string::@1->printf_str#0] -- register_copy - // [92] phi printf_str::s#8 = printf_str::s#1 [phi:printf_string::@1->printf_str#1] -- register_copy + // [100] printf_str::putc#0 = printf_string::putc#10 + // [101] printf_str::s#1 = printf_string::str#10 + // [102] call printf_str + // [90] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] + // [90] phi printf_str::putc#8 = printf_str::putc#0 [phi:printf_string::@1->printf_str#0] -- register_copy + // [90] phi printf_str::s#8 = printf_str::s#1 [phi:printf_string::@1->printf_str#1] -- register_copy jsr printf_str // printf_string::@return // } - // [105] return + // [103] return rts } // cscroll // Scroll the entire screen if the cursor is beyond the last line cscroll: { // if(conio_cursor_y==CONIO_HEIGHT) - // [106] if(conio_cursor_y!=$19) goto cscroll::@return -- vbuz1_neq_vbuc1_then_la1 + // [104] if(conio_cursor_y!=$19) goto cscroll::@return -- vbuz1_neq_vbuc1_then_la1 lda #$19 cmp.z conio_cursor_y bne __breturn - // [107] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] + // [105] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] // cscroll::@1 // memcpy(CONIO_SCREEN_TEXT, CONIO_SCREEN_TEXT+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [108] call memcpy - // [119] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] - // [119] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [106] call memcpy + // [117] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] + // [117] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [119] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [117] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 sta.z memcpy.source+1 jsr memcpy - // [109] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] + // [107] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] // cscroll::@2 // memcpy(CONIO_SCREEN_COLORS, CONIO_SCREEN_COLORS+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [110] call memcpy - // [119] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] - // [119] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [108] call memcpy + // [117] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] + // [117] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [119] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [117] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 sta.z memcpy.source+1 jsr memcpy - // [111] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] + // [109] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] // cscroll::@3 // memset(CONIO_SCREEN_TEXT+CONIO_BYTES-CONIO_WIDTH, ' ', CONIO_WIDTH) - // [112] call memset - // [129] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] - // [129] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 + // [110] call memset + // [127] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] + // [127] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [129] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [127] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 sta.z memset.str+1 jsr memset - // [113] phi from cscroll::@3 to cscroll::@4 [phi:cscroll::@3->cscroll::@4] + // [111] phi from cscroll::@3 to cscroll::@4 [phi:cscroll::@3->cscroll::@4] // cscroll::@4 // memset(CONIO_SCREEN_COLORS+CONIO_BYTES-CONIO_WIDTH, conio_textcolor, CONIO_WIDTH) - // [114] call memset - // [129] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] - // [129] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 + // [112] call memset + // [127] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] + // [127] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [129] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [127] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -4206,7 +4168,7 @@ cscroll: { jsr memset // cscroll::@5 // conio_line_text -= CONIO_WIDTH - // [115] conio_line_text = conio_line_text - $28 -- pbuz1=pbuz1_minus_vbuc1 + // [113] conio_line_text = conio_line_text - $28 -- pbuz1=pbuz1_minus_vbuc1 sec lda.z conio_line_text sbc #$28 @@ -4215,7 +4177,7 @@ cscroll: { sbc #0 sta.z conio_line_text+1 // conio_line_color -= CONIO_WIDTH - // [116] conio_line_color = conio_line_color - $28 -- pbuz1=pbuz1_minus_vbuc1 + // [114] conio_line_color = conio_line_color - $28 -- pbuz1=pbuz1_minus_vbuc1 sec lda.z conio_line_color sbc #$28 @@ -4224,12 +4186,12 @@ cscroll: { sbc #0 sta.z conio_line_color+1 // conio_cursor_y--; - // [117] conio_cursor_y = -- conio_cursor_y -- vbuz1=_dec_vbuz1 + // [115] conio_cursor_y = -- conio_cursor_y -- vbuz1=_dec_vbuz1 dec.z conio_cursor_y // cscroll::@return __breturn: // } - // [118] return + // [116] return rts } // memcpy @@ -4243,7 +4205,7 @@ memcpy: { .label source = 2 .label destination = 6 // char* src_end = (char*)source+num - // [120] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [118] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -4251,15 +4213,15 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [121] memcpy::src#4 = (char *)memcpy::source#2 - // [122] memcpy::dst#4 = (char *)memcpy::destination#2 - // [123] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] - // [123] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy - // [123] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy + // [119] memcpy::src#4 = (char *)memcpy::source#2 + // [120] memcpy::dst#4 = (char *)memcpy::destination#2 + // [121] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] + // [121] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy + // [121] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy // memcpy::@1 __b1: // while(src!=src_end) - // [124] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuz2_then_la1 + // [122] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuz2_then_la1 lda.z src+1 cmp.z src_end+1 bne __b2 @@ -4268,22 +4230,22 @@ memcpy: { bne __b2 // memcpy::@return // } - // [125] return + // [123] return rts // memcpy::@2 __b2: // *dst++ = *src++ - // [126] *memcpy::dst#2 = *memcpy::src#2 -- _deref_pbuz1=_deref_pbuz2 + // [124] *memcpy::dst#2 = *memcpy::src#2 -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (src),y sta (dst),y // *dst++ = *src++; - // [127] memcpy::dst#1 = ++ memcpy::dst#2 -- pbuz1=_inc_pbuz1 + // [125] memcpy::dst#1 = ++ memcpy::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: - // [128] memcpy::src#1 = ++ memcpy::src#2 -- pbuz1=_inc_pbuz1 + // [126] memcpy::src#1 = ++ memcpy::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 @@ -4299,7 +4261,7 @@ memset: { .label str = 2 // memset::@1 // char* end = (char*)str + num - // [130] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [128] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -4307,13 +4269,13 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [131] memset::dst#4 = (char *)memset::str#3 - // [132] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] - // [132] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + // [129] memset::dst#4 = (char *)memset::str#3 + // [130] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + // [130] 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++) - // [133] if(memset::dst#2!=memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 + // [131] 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 @@ -4322,17 +4284,17 @@ memset: { bne __b3 // memset::@return // } - // [134] return + // [132] return rts // memset::@3 __b3: // *dst = c - // [135] *memset::dst#2 = memset::c#4 -- _deref_pbuz1=vbuxx + // [133] *memset::dst#2 = memset::c#4 -- _deref_pbuz1=vbuxx txa ldy #0 sta (dst),y // for(char* dst = str; dst!=end; dst++) - // [136] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 + // [134] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 @@ -4343,4 +4305,10 @@ memset: { .segment Data BUF1: .fill $14, 0 BUF2: .fill $14, 0 + /// The capacity of the buffer (n passed to snprintf()) + /// Used to hold state while printing + __snprintf_capacity: .word 0 + // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity. + /// Used to hold state while printing + __snprintf_size: .word 0 diff --git a/src/test/ref/printf-18.sym b/src/test/ref/printf-18.sym index e8fdc6959..fb7508f12 100644 --- a/src/test/ref/printf-18.sym +++ b/src/test/ref/printf-18.sym @@ -8,9 +8,9 @@ __constant char RADIX::DECIMAL = $a __constant char RADIX::HEXADECIMAL = $10 __constant char RADIX::OCTAL = 8 __constant unsigned int STACK_BASE = $103 -__loadstore char *__snprintf_buffer // zp[2]:22 16.916666666666664 -__loadstore volatile unsigned int __snprintf_capacity // zp[2]:28 11.730769230769232 -__loadstore volatile unsigned int __snprintf_size // zp[2]:19 20.279999999999998 +__loadstore char *__snprintf_buffer // zp[2]:20 16.916666666666664 +__loadstore volatile unsigned int __snprintf_capacity = 0 // mem[2] 11.653846153846153 +__loadstore volatile unsigned int __snprintf_size = 0 // mem[2] 20.2 void __start() void conio_c64_init() __constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 @@ -18,9 +18,9 @@ char conio_c64_init::line char conio_c64_init::line#0 // reg byte x 11.0 char conio_c64_init::line#2 // reg byte x 22.0 __loadstore char conio_cursor_x // zp[1]:18 24.799999999999997 -__loadstore char conio_cursor_y // zp[1]:21 18.608695652173914 -__loadstore char *conio_line_color // zp[2]:26 14.954545454545453 -__loadstore char *conio_line_text // zp[2]:24 15.666666666666668 +__loadstore char conio_cursor_y // zp[1]:19 18.608695652173914 +__loadstore char *conio_line_color // zp[2]:24 14.954545454545453 +__loadstore char *conio_line_text // zp[2]:22 15.666666666666668 __stackcall void cputc(char c) __constant char cputc::OFFSET_STACK_C = 0 char cputc::c @@ -115,16 +115,16 @@ zp[2]:4 [ printf_str::s#7 printf_str::s#8 printf_str::s#1 printf_str::s#0 printf zp[2]:2 [ memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 memcpy::source#2 memcpy::src#2 memcpy::src#4 memcpy::src#1 ] reg byte x [ memset::c#4 ] zp[1]:18 [ conio_cursor_x ] -zp[1]:21 [ conio_cursor_y ] -zp[2]:24 [ conio_line_text ] -zp[2]:26 [ conio_line_color ] -zp[2]:28 [ __snprintf_capacity ] -zp[2]:19 [ __snprintf_size ] -zp[2]:22 [ __snprintf_buffer ] +zp[1]:19 [ conio_cursor_y ] +zp[2]:22 [ conio_line_text ] +zp[2]:24 [ conio_line_color ] +zp[2]:20 [ __snprintf_buffer ] +mem[2] [ __snprintf_size ] reg byte a [ cputc::c#0 ] zp[2]:12 [ gotoxy::$7 gotoxy::$9 gotoxy::line_offset#0 gotoxy::$6 ] zp[2]:14 [ gotoxy::$8 ] zp[2]:16 [ gotoxy::$5 ] +mem[2] [ __snprintf_capacity ] reg byte a [ printf_str::c#1 ] zp[2]:8 [ memcpy::src_end#0 ] zp[2]:6 [ memset::end#0 memcpy::destination#2 memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ] diff --git a/src/test/ref/printf-19.asm b/src/test/ref/printf-19.asm index 7ef26f82a..da6e0d6e8 100644 --- a/src/test/ref/printf-19.asm +++ b/src/test/ref/printf-19.asm @@ -15,26 +15,14 @@ .const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 .const STACK_BASE = $103 .const SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c - /// The capacity of the buffer (n passed to snprintf()) - /// Used to hold state while printing - .label __snprintf_capacity = $20 - // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity. - /// Used to hold state while printing - .label __snprintf_size = $1c /// Current position in the buffer being filled ( initially *s passed to snprintf() /// Used to hold state while printing - .label __snprintf_buffer = $1e + .label __snprintf_buffer = $1c .label screen = $17 .segment Code __start: { - // volatile size_t __snprintf_capacity - lda #<0 - sta.z __snprintf_capacity - sta.z __snprintf_capacity+1 - // volatile size_t __snprintf_size - sta.z __snprintf_size - sta.z __snprintf_size+1 // char * __snprintf_buffer + lda #<0 sta.z __snprintf_buffer sta.z __snprintf_buffer+1 jsr main @@ -50,16 +38,16 @@ snputc: { lda STACK_BASE+OFFSET_STACK_C,x tax // ++__snprintf_size; - inc.z __snprintf_size + inc __snprintf_size bne !+ - inc.z __snprintf_size+1 + inc __snprintf_size+1 !: // if(__snprintf_size > __snprintf_capacity) - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne !+ - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity beq __b1 !: bcc __b1 @@ -67,11 +55,11 @@ snputc: { rts __b1: // if(__snprintf_size==__snprintf_capacity) - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne __b2 - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity bne __b2 ldx #0 __b2: @@ -244,13 +232,13 @@ main: { snprintf_init: { // __snprintf_capacity = n lda #<$ffff - sta.z __snprintf_capacity + sta __snprintf_capacity lda #>$ffff - sta.z __snprintf_capacity+1 + sta __snprintf_capacity+1 // __snprintf_size = 0 lda #<0 - sta.z __snprintf_size - sta.z __snprintf_size+1 + sta __snprintf_size + sta __snprintf_size+1 // __snprintf_buffer = s lda #capacity. + /// Used to hold state while printing + __snprintf_size: .word 0 diff --git a/src/test/ref/printf-19.cfg b/src/test/ref/printf-19.cfg index d479aca8f..42a1a2513 100644 --- a/src/test/ref/printf-19.cfg +++ b/src/test/ref/printf-19.cfg @@ -4,562 +4,560 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] __snprintf_capacity = 0 - [2] __snprintf_size = 0 - [3] __snprintf_buffer = (char *) 0 + [1] __snprintf_buffer = (char *) 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - [4] phi() - [5] call main + [2] phi() + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 - [6] return + [4] return to:@return __stackcall void snputc(char c) snputc: scope:[snputc] from - [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) - [8] __snprintf_size = ++ __snprintf_size - [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 + [5] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) + [6] __snprintf_size = ++ __snprintf_size + [7] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 to:snputc::@return snputc::@return: scope:[snputc] from snputc snputc::@2 - [10] return + [8] return to:@return snputc::@1: scope:[snputc] from snputc - [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 + [9] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 to:snputc::@2 snputc::@3: scope:[snputc] from snputc::@1 - [12] phi() + [10] phi() to:snputc::@2 snputc::@2: scope:[snputc] from snputc::@1 snputc::@3 - [13] snputc::c#2 = phi( snputc::@3/snputc::c#0, snputc::@1/0 ) - [14] *__snprintf_buffer = snputc::c#2 - [15] __snprintf_buffer = ++ __snprintf_buffer + [11] snputc::c#2 = phi( snputc::@3/snputc::c#0, snputc::@1/0 ) + [12] *__snprintf_buffer = snputc::c#2 + [13] __snprintf_buffer = ++ __snprintf_buffer to:snputc::@return void main() main: scope:[main] from __start::@1 - [16] phi() - [17] call snprintf_init + [14] phi() + [15] call snprintf_init to:main::@1 main::@1: scope:[main] from main - [18] phi() - [19] call printf_str + [16] phi() + [17] call printf_str to:main::@2 main::@2: scope:[main] from main::@1 - [20] stackpush(char) = 0 - [21] callexecute snputc + [18] stackpush(char) = 0 + [19] callexecute snputc sideeffect stackpullpadding(1) - [23] call print + [21] call print to:main::@3 main::@3: scope:[main] from main::@2 - [24] phi() - [25] call snprintf_init + [22] phi() + [23] call snprintf_init to:main::@4 main::@4: scope:[main] from main::@3 - [26] phi() - [27] call printf_str + [24] phi() + [25] call printf_str to:main::@5 main::@5: scope:[main] from main::@4 - [28] phi() - [29] call printf_string + [26] phi() + [27] call printf_string to:main::@6 main::@6: scope:[main] from main::@5 - [30] stackpush(char) = '!' - [31] callexecute snputc + [28] stackpush(char) = '!' + [29] callexecute snputc sideeffect stackpullpadding(1) - [33] call printf_str + [31] call printf_str to:main::@7 main::@7: scope:[main] from main::@6 - [34] stackpush(char) = 0 - [35] callexecute snputc + [32] stackpush(char) = 0 + [33] callexecute snputc sideeffect stackpullpadding(1) - [37] call print + [35] call print to:main::@8 main::@8: scope:[main] from main::@7 - [38] phi() - [39] call snprintf_init + [36] phi() + [37] call snprintf_init to:main::@9 main::@9: scope:[main] from main::@8 - [40] phi() - [41] call printf_str + [38] phi() + [39] call printf_str to:main::@10 main::@10: scope:[main] from main::@9 - [42] phi() - [43] call printf_sint + [40] phi() + [41] call printf_sint to:main::@11 main::@11: scope:[main] from main::@10 - [44] phi() - [45] call printf_str + [42] phi() + [43] call printf_str to:main::@12 main::@12: scope:[main] from main::@11 - [46] phi() - [47] call printf_uint + [44] phi() + [45] call printf_uint to:main::@13 main::@13: scope:[main] from main::@12 - [48] phi() - [49] call printf_str + [46] phi() + [47] call printf_str to:main::@14 main::@14: scope:[main] from main::@13 - [50] stackpush(char) = 0 - [51] callexecute snputc + [48] stackpush(char) = 0 + [49] callexecute snputc sideeffect stackpullpadding(1) - [53] call print + [51] call print to:main::@15 main::@15: scope:[main] from main::@14 - [54] phi() - [55] call snprintf_init + [52] phi() + [53] call snprintf_init to:main::@16 main::@16: scope:[main] from main::@15 - [56] phi() - [57] call printf_str + [54] phi() + [55] call printf_str to:main::@17 main::@17: scope:[main] from main::@16 - [58] phi() - [59] call printf_slong + [56] phi() + [57] call printf_slong to:main::@18 main::@18: scope:[main] from main::@17 - [60] phi() - [61] call printf_str + [58] phi() + [59] call printf_str to:main::@19 main::@19: scope:[main] from main::@18 - [62] stackpush(char) = 0 - [63] callexecute snputc + [60] stackpush(char) = 0 + [61] callexecute snputc sideeffect stackpullpadding(1) - [65] call print + [63] call print to:main::@return main::@return: scope:[main] from main::@19 - [66] return + [64] return to:@return void snprintf_init(char *s , unsigned int n) snprintf_init: scope:[snprintf_init] from main main::@15 main::@3 main::@8 - [67] __snprintf_capacity = $ffff - [68] __snprintf_size = 0 - [69] __snprintf_buffer = BUF + [65] __snprintf_capacity = $ffff + [66] __snprintf_size = 0 + [67] __snprintf_buffer = BUF to:snprintf_init::@return snprintf_init::@return: scope:[snprintf_init] from snprintf_init - [70] return + [68] return to:@return void printf_str(void (*putc)(char) , const char *s) printf_str: scope:[printf_str] from main::@1 main::@11 main::@13 main::@16 main::@18 main::@4 main::@6 main::@9 printf_number_buffer::@5 printf_string::@1 - [71] printf_str::putc#12 = phi( main::@1/&snputc, main::@11/&snputc, main::@13/&snputc, main::@16/&snputc, main::@18/&snputc, main::@4/&snputc, main::@6/&snputc, main::@9/&snputc, printf_number_buffer::@5/printf_str::putc#0, printf_string::@1/printf_string::putc#0 ) - [71] printf_str::s#12 = phi( main::@1/main::s, main::@11/main::s4, main::@13/main::s5, main::@16/main::s6, main::@18/main::s5, main::@4/main::s1, main::@6/main::s2, main::@9/main::s1, printf_number_buffer::@5/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, printf_string::@1/main::str ) + [69] printf_str::putc#12 = phi( main::@1/&snputc, main::@11/&snputc, main::@13/&snputc, main::@16/&snputc, main::@18/&snputc, main::@4/&snputc, main::@6/&snputc, main::@9/&snputc, printf_number_buffer::@5/printf_str::putc#0, printf_string::@1/printf_string::putc#0 ) + [69] printf_str::s#12 = phi( main::@1/main::s, main::@11/main::s4, main::@13/main::s5, main::@16/main::s6, main::@18/main::s5, main::@4/main::s1, main::@6/main::s2, main::@9/main::s1, printf_number_buffer::@5/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, printf_string::@1/main::str ) to:printf_str::@1 printf_str::@1: scope:[printf_str] from printf_str printf_str::@2 - [72] printf_str::s#11 = phi( printf_str/printf_str::s#12, printf_str::@2/printf_str::s#0 ) - [73] printf_str::c#1 = *printf_str::s#11 - [74] printf_str::s#0 = ++ printf_str::s#11 - [75] if(0!=printf_str::c#1) goto printf_str::@2 + [70] printf_str::s#11 = phi( printf_str/printf_str::s#12, printf_str::@2/printf_str::s#0 ) + [71] printf_str::c#1 = *printf_str::s#11 + [72] printf_str::s#0 = ++ printf_str::s#11 + [73] if(0!=printf_str::c#1) goto printf_str::@2 to:printf_str::@return printf_str::@return: scope:[printf_str] from printf_str::@1 - [76] return + [74] return to:@return printf_str::@2: scope:[printf_str] from printf_str::@1 - [77] stackpush(char) = printf_str::c#1 - [78] callexecute *printf_str::putc#12 + [75] stackpush(char) = printf_str::c#1 + [76] callexecute *printf_str::putc#12 sideeffect stackpullpadding(1) to:printf_str::@1 void print(char *msg) print: scope:[print] from main::@14 main::@19 main::@2 main::@7 - [80] screen#25 = phi( main::@14/screen#1, main::@19/screen#1, main::@2/(char *) 1024, main::@7/screen#1 ) + [78] screen#25 = phi( main::@14/screen#1, main::@19/screen#1, main::@2/(char *) 1024, main::@7/screen#1 ) to:print::@1 print::@1: scope:[print] from print print::@2 - [81] screen#1 = phi( print/screen#25, print::@2/screen#0 ) - [81] print::msg#5 = phi( print/BUF, print::@2/print::msg#0 ) - [82] if(0!=*print::msg#5) goto print::@2 + [79] screen#1 = phi( print/screen#25, print::@2/screen#0 ) + [79] print::msg#5 = phi( print/BUF, print::@2/print::msg#0 ) + [80] if(0!=*print::msg#5) goto print::@2 to:print::@return print::@return: scope:[print] from print::@1 - [83] return + [81] return to:@return print::@2: scope:[print] from print::@1 - [84] *screen#1 = *print::msg#5 - [85] screen#0 = ++ screen#1 - [86] print::msg#0 = ++ print::msg#5 + [82] *screen#1 = *print::msg#5 + [83] screen#0 = ++ screen#1 + [84] print::msg#0 = ++ print::msg#5 to:print::@1 void printf_string(void (*putc)(char) , char *str , char format_min_length , char format_justify_left) printf_string: scope:[printf_string] from main::@5 - [87] phi() + [85] phi() to:printf_string::@1 printf_string::@1: scope:[printf_string] from printf_string - [88] phi() - [89] call printf_str + [86] phi() + [87] call printf_str to:printf_string::@return printf_string::@return: scope:[printf_string] from printf_string::@1 - [90] return + [88] return to:@return void printf_sint(void (*putc)(char) , int value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_sint: scope:[printf_sint] from main::@10 - [91] *((char *)&printf_buffer) = 0 + [89] *((char *)&printf_buffer) = 0 to:printf_sint::@1 printf_sint::@1: scope:[printf_sint] from printf_sint - [92] phi() - [93] call utoa + [90] phi() + [91] call utoa to:printf_sint::@2 printf_sint::@2: scope:[printf_sint] from printf_sint::@1 - [94] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) - [95] call printf_number_buffer + [92] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) + [93] call printf_number_buffer to:printf_sint::@return printf_sint::@return: scope:[printf_sint] from printf_sint::@2 - [96] return + [94] return to:@return void printf_uint(void (*putc)(char) , unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_uint: scope:[printf_uint] from main::@12 - [97] phi() + [95] phi() to:printf_uint::@1 printf_uint::@1: scope:[printf_uint] from printf_uint - [98] *((char *)&printf_buffer) = 0 - [99] call utoa + [96] *((char *)&printf_buffer) = 0 + [97] call utoa to:printf_uint::@2 printf_uint::@2: scope:[printf_uint] from printf_uint::@1 - [100] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer) - [101] call printf_number_buffer + [98] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer) + [99] call printf_number_buffer to:printf_uint::@return printf_uint::@return: scope:[printf_uint] from printf_uint::@2 - [102] return + [100] return to:@return void printf_slong(void (*putc)(char) , long value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_slong: scope:[printf_slong] from main::@17 - [103] *((char *)&printf_buffer) = 0 + [101] *((char *)&printf_buffer) = 0 to:printf_slong::@1 printf_slong::@1: scope:[printf_slong] from printf_slong - [104] phi() - [105] call ultoa + [102] phi() + [103] call ultoa to:printf_slong::@2 printf_slong::@2: scope:[printf_slong] from printf_slong::@1 - [106] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) - [107] call printf_number_buffer + [104] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) + [105] call printf_number_buffer to:printf_slong::@return printf_slong::@return: scope:[printf_slong] from printf_slong::@2 - [108] return + [106] return to:@return void utoa(unsigned int value , char *buffer , char radix) utoa: scope:[utoa] from printf_sint::@1 printf_uint::@1 - [109] utoa::value#10 = phi( printf_sint::@1/printf_sint::uvalue#0, printf_uint::@1/printf_uint::uvalue#0 ) - [109] utoa::radix#2 = phi( printf_sint::@1/DECIMAL, printf_uint::@1/HEXADECIMAL ) - [110] if(utoa::radix#2==DECIMAL) goto utoa::@1 + [107] utoa::value#10 = phi( printf_sint::@1/printf_sint::uvalue#0, printf_uint::@1/printf_uint::uvalue#0 ) + [107] utoa::radix#2 = phi( printf_sint::@1/DECIMAL, printf_uint::@1/HEXADECIMAL ) + [108] if(utoa::radix#2==DECIMAL) goto utoa::@1 to:utoa::@2 utoa::@2: scope:[utoa] from utoa - [111] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 + [109] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 to:utoa::@3 utoa::@3: scope:[utoa] from utoa::@2 - [112] if(utoa::radix#2==OCTAL) goto utoa::@1 + [110] if(utoa::radix#2==OCTAL) goto utoa::@1 to:utoa::@4 utoa::@4: scope:[utoa] from utoa::@3 - [113] if(utoa::radix#2==BINARY) goto utoa::@1 + [111] if(utoa::radix#2==BINARY) goto utoa::@1 to:utoa::@5 utoa::@5: scope:[utoa] from utoa::@4 - [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' - [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' - [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' - [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 + [112] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' + [113] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' + [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' + [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 to:utoa::@return utoa::@return: scope:[utoa] from utoa::@5 utoa::@8 - [118] return + [116] return to:@return utoa::@1: scope:[utoa] from utoa utoa::@2 utoa::@3 utoa::@4 - [119] utoa::digit_values#8 = phi( utoa/RADIX_DECIMAL_VALUES, utoa::@2/RADIX_HEXADECIMAL_VALUES, utoa::@3/RADIX_OCTAL_VALUES, utoa::@4/RADIX_BINARY_VALUES ) - [119] utoa::max_digits#7 = phi( utoa/5, utoa::@2/4, utoa::@3/6, utoa::@4/$10 ) + [117] utoa::digit_values#8 = phi( utoa/RADIX_DECIMAL_VALUES, utoa::@2/RADIX_HEXADECIMAL_VALUES, utoa::@3/RADIX_OCTAL_VALUES, utoa::@4/RADIX_BINARY_VALUES ) + [117] utoa::max_digits#7 = phi( utoa/5, utoa::@2/4, utoa::@3/6, utoa::@4/$10 ) to:utoa::@6 utoa::@6: scope:[utoa] from utoa::@1 utoa::@9 - [120] utoa::buffer#10 = phi( utoa::@9/utoa::buffer#15, utoa::@1/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [120] utoa::started#2 = phi( utoa::@9/utoa::started#4, utoa::@1/0 ) - [120] utoa::value#3 = phi( utoa::@9/utoa::value#7, utoa::@1/utoa::value#10 ) - [120] utoa::digit#2 = phi( utoa::@9/utoa::digit#1, utoa::@1/0 ) - [121] utoa::$4 = utoa::max_digits#7 - 1 - [122] if(utoa::digit#2=utoa::digit_value#0) goto utoa::@10 + [128] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 to:utoa::@9 utoa::@9: scope:[utoa] from utoa::@11 utoa::@12 - [131] utoa::buffer#15 = phi( utoa::@12/utoa::buffer#10, utoa::@11/utoa::buffer#4 ) - [131] utoa::started#4 = phi( utoa::@12/utoa::started#2, utoa::@11/1 ) - [131] utoa::value#7 = phi( utoa::@12/utoa::value#3, utoa::@11/utoa::value#0 ) - [132] utoa::digit#1 = ++ utoa::digit#2 + [129] utoa::buffer#15 = phi( utoa::@12/utoa::buffer#10, utoa::@11/utoa::buffer#4 ) + [129] utoa::started#4 = phi( utoa::@12/utoa::started#2, utoa::@11/1 ) + [129] utoa::value#7 = phi( utoa::@12/utoa::value#3, utoa::@11/utoa::value#0 ) + [130] utoa::digit#1 = ++ utoa::digit#2 to:utoa::@6 utoa::@10: scope:[utoa] from utoa::@12 utoa::@7 - [133] utoa_append::buffer#0 = utoa::buffer#10 - [134] utoa_append::value#0 = utoa::value#3 - [135] utoa_append::sub#0 = utoa::digit_value#0 - [136] call utoa_append - [137] utoa_append::return#0 = utoa_append::value#2 + [131] utoa_append::buffer#0 = utoa::buffer#10 + [132] utoa_append::value#0 = utoa::value#3 + [133] utoa_append::sub#0 = utoa::digit_value#0 + [134] call utoa_append + [135] utoa_append::return#0 = utoa_append::value#2 to:utoa::@11 utoa::@11: scope:[utoa] from utoa::@10 - [138] utoa::value#0 = utoa_append::return#0 - [139] utoa::buffer#4 = ++ utoa::buffer#10 + [136] utoa::value#0 = utoa_append::return#0 + [137] utoa::buffer#4 = ++ utoa::buffer#10 to:utoa::@9 void printf_number_buffer(void (*putc)(char) , char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_number_buffer: scope:[printf_number_buffer] from printf_sint::@2 printf_slong::@2 printf_uint::@2 - [140] printf_number_buffer::format_upper_case#10 = phi( printf_sint::@2/printf_sint::format_upper_case#0, printf_slong::@2/printf_slong::format_upper_case#0, printf_uint::@2/printf_uint::format_upper_case#0 ) - [140] printf_number_buffer::putc#10 = phi( printf_sint::@2/printf_sint::putc#0, printf_slong::@2/printf_slong::putc#0, printf_uint::@2/printf_uint::putc#0 ) - [140] printf_number_buffer::buffer_sign#10 = phi( printf_sint::@2/printf_number_buffer::buffer_sign#1, printf_slong::@2/printf_number_buffer::buffer_sign#0, printf_uint::@2/printf_number_buffer::buffer_sign#2 ) - [140] printf_number_buffer::format_zero_padding#10 = phi( printf_sint::@2/printf_sint::format_zero_padding#0, printf_slong::@2/printf_slong::format_zero_padding#0, printf_uint::@2/printf_uint::format_zero_padding#0 ) - [140] printf_number_buffer::format_justify_left#10 = phi( printf_sint::@2/printf_sint::format_justify_left#0, printf_slong::@2/printf_slong::format_justify_left#0, printf_uint::@2/printf_uint::format_justify_left#0 ) - [140] printf_number_buffer::format_min_length#3 = phi( printf_sint::@2/printf_sint::format_min_length#0, printf_slong::@2/printf_slong::format_min_length#0, printf_uint::@2/printf_uint::format_min_length#0 ) - [141] if(0==printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 + [138] printf_number_buffer::format_upper_case#10 = phi( printf_sint::@2/printf_sint::format_upper_case#0, printf_slong::@2/printf_slong::format_upper_case#0, printf_uint::@2/printf_uint::format_upper_case#0 ) + [138] printf_number_buffer::putc#10 = phi( printf_sint::@2/printf_sint::putc#0, printf_slong::@2/printf_slong::putc#0, printf_uint::@2/printf_uint::putc#0 ) + [138] printf_number_buffer::buffer_sign#10 = phi( printf_sint::@2/printf_number_buffer::buffer_sign#1, printf_slong::@2/printf_number_buffer::buffer_sign#0, printf_uint::@2/printf_number_buffer::buffer_sign#2 ) + [138] printf_number_buffer::format_zero_padding#10 = phi( printf_sint::@2/printf_sint::format_zero_padding#0, printf_slong::@2/printf_slong::format_zero_padding#0, printf_uint::@2/printf_uint::format_zero_padding#0 ) + [138] printf_number_buffer::format_justify_left#10 = phi( printf_sint::@2/printf_sint::format_justify_left#0, printf_slong::@2/printf_slong::format_justify_left#0, printf_uint::@2/printf_uint::format_justify_left#0 ) + [138] printf_number_buffer::format_min_length#3 = phi( printf_sint::@2/printf_sint::format_min_length#0, printf_slong::@2/printf_slong::format_min_length#0, printf_uint::@2/printf_uint::format_min_length#0 ) + [139] if(0==printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 to:printf_number_buffer::@6 printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffer - [142] phi() - [143] call strlen - [144] strlen::return#2 = strlen::len#2 + [140] phi() + [141] call strlen + [142] strlen::return#2 = strlen::len#2 to:printf_number_buffer::@14 printf_number_buffer::@14: scope:[printf_number_buffer] from printf_number_buffer::@6 - [145] printf_number_buffer::$19 = strlen::return#2 - [146] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 - [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 + [143] printf_number_buffer::$19 = strlen::return#2 + [144] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 + [145] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 to:printf_number_buffer::@7 printf_number_buffer::@7: scope:[printf_number_buffer] from printf_number_buffer::@14 - [148] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 + [146] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 to:printf_number_buffer::@13 printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buffer::@14 printf_number_buffer::@7 - [149] printf_number_buffer::len#2 = phi( printf_number_buffer::@14/printf_number_buffer::len#0, printf_number_buffer::@7/printf_number_buffer::len#1 ) - [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 - [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 + [147] printf_number_buffer::len#2 = phi( printf_number_buffer::@14/printf_number_buffer::len#0, printf_number_buffer::@7/printf_number_buffer::len#1 ) + [148] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 + [149] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 to:printf_number_buffer::@1 printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@13 - [152] phi() + [150] phi() to:printf_number_buffer::@1 printf_number_buffer::@1: scope:[printf_number_buffer] from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@21 - [153] printf_number_buffer::padding#10 = phi( printf_number_buffer/0, printf_number_buffer::@21/printf_number_buffer::padding#1, printf_number_buffer::@13/0 ) - [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 + [151] printf_number_buffer::padding#10 = phi( printf_number_buffer/0, printf_number_buffer::@21/printf_number_buffer::padding#1, printf_number_buffer::@13/0 ) + [152] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 to:printf_number_buffer::@17 printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@1 - [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 + [153] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 to:printf_number_buffer::@16 printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@17 - [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 + [154] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 to:printf_number_buffer::@2 printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffer::@16 - [157] printf_padding::putc#0 = printf_number_buffer::putc#10 - [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10 - [159] call printf_padding + [155] printf_padding::putc#0 = printf_number_buffer::putc#10 + [156] printf_padding::length#0 = (char)printf_number_buffer::padding#10 + [157] call printf_padding to:printf_number_buffer::@2 printf_number_buffer::@2: scope:[printf_number_buffer] from printf_number_buffer::@1 printf_number_buffer::@16 printf_number_buffer::@17 printf_number_buffer::@8 - [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 + [158] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 to:printf_number_buffer::@9 printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffer::@2 - [161] stackpush(char) = printf_number_buffer::buffer_sign#10 - [162] callexecute *printf_number_buffer::putc#10 + [159] stackpush(char) = printf_number_buffer::buffer_sign#10 + [160] callexecute *printf_number_buffer::putc#10 sideeffect stackpullpadding(1) to:printf_number_buffer::@3 printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@2 printf_number_buffer::@9 - [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 + [162] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 to:printf_number_buffer::@18 printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@3 - [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 + [163] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 to:printf_number_buffer::@4 printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buffer::@18 - [166] printf_padding::putc#1 = printf_number_buffer::putc#10 - [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10 - [168] call printf_padding + [164] printf_padding::putc#1 = printf_number_buffer::putc#10 + [165] printf_padding::length#1 = (char)printf_number_buffer::padding#10 + [166] call printf_padding to:printf_number_buffer::@4 printf_number_buffer::@4: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::@18 printf_number_buffer::@3 - [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 + [167] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 to:printf_number_buffer::@11 printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buffer::@4 - [170] phi() - [171] call strupr + [168] phi() + [169] call strupr to:printf_number_buffer::@5 printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffer::@11 printf_number_buffer::@4 - [172] printf_str::putc#0 = printf_number_buffer::putc#10 - [173] call printf_str + [170] printf_str::putc#0 = printf_number_buffer::putc#10 + [171] call printf_str to:printf_number_buffer::@15 printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@5 - [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return + [172] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return to:printf_number_buffer::@20 printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@15 - [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return + [173] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return to:printf_number_buffer::@19 printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@20 - [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 + [174] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 to:printf_number_buffer::@return printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 - [177] printf_padding::putc#2 = printf_number_buffer::putc#10 - [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10 - [179] call printf_padding + [175] printf_padding::putc#2 = printf_number_buffer::putc#10 + [176] printf_padding::length#2 = (char)printf_number_buffer::padding#10 + [177] call printf_padding to:printf_number_buffer::@return printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@12 printf_number_buffer::@15 printf_number_buffer::@19 printf_number_buffer::@20 - [180] return + [178] return to:@return void ultoa(unsigned long value , char *buffer , char radix) ultoa: scope:[ultoa] from printf_slong::@1 - [181] phi() + [179] phi() to:ultoa::@1 ultoa::@1: scope:[ultoa] from ultoa ultoa::@4 - [182] ultoa::buffer#11 = phi( ultoa::@4/ultoa::buffer#14, ultoa/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [182] ultoa::started#2 = phi( ultoa::@4/ultoa::started#4, ultoa/0 ) - [182] ultoa::value#2 = phi( ultoa::@4/ultoa::value#6, ultoa/printf_slong::uvalue#0 ) - [182] ultoa::digit#2 = phi( ultoa::@4/ultoa::digit#1, ultoa/0 ) - [183] if(ultoa::digit#2=ultoa::digit_value#0) goto ultoa::@5 + [190] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5 to:ultoa::@4 ultoa::@4: scope:[ultoa] from ultoa::@6 ultoa::@7 - [193] ultoa::buffer#14 = phi( ultoa::@7/ultoa::buffer#11, ultoa::@6/ultoa::buffer#4 ) - [193] ultoa::started#4 = phi( ultoa::@7/ultoa::started#2, ultoa::@6/1 ) - [193] ultoa::value#6 = phi( ultoa::@7/ultoa::value#2, ultoa::@6/ultoa::value#0 ) - [194] ultoa::digit#1 = ++ ultoa::digit#2 + [191] ultoa::buffer#14 = phi( ultoa::@7/ultoa::buffer#11, ultoa::@6/ultoa::buffer#4 ) + [191] ultoa::started#4 = phi( ultoa::@7/ultoa::started#2, ultoa::@6/1 ) + [191] ultoa::value#6 = phi( ultoa::@7/ultoa::value#2, ultoa::@6/ultoa::value#0 ) + [192] ultoa::digit#1 = ++ ultoa::digit#2 to:ultoa::@1 ultoa::@5: scope:[ultoa] from ultoa::@2 ultoa::@7 - [195] ultoa_append::buffer#0 = ultoa::buffer#11 - [196] ultoa_append::value#0 = ultoa::value#2 - [197] ultoa_append::sub#0 = ultoa::digit_value#0 - [198] call ultoa_append - [199] ultoa_append::return#0 = ultoa_append::value#2 + [193] ultoa_append::buffer#0 = ultoa::buffer#11 + [194] ultoa_append::value#0 = ultoa::value#2 + [195] ultoa_append::sub#0 = ultoa::digit_value#0 + [196] call ultoa_append + [197] ultoa_append::return#0 = ultoa_append::value#2 to:ultoa::@6 ultoa::@6: scope:[ultoa] from ultoa::@5 - [200] ultoa::value#0 = ultoa_append::return#0 - [201] ultoa::buffer#4 = ++ ultoa::buffer#11 + [198] ultoa::value#0 = ultoa_append::return#0 + [199] ultoa::buffer#4 = ++ ultoa::buffer#11 to:ultoa::@4 unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) utoa_append: scope:[utoa_append] from utoa::@10 - [202] phi() + [200] phi() to:utoa_append::@1 utoa_append::@1: scope:[utoa_append] from utoa_append utoa_append::@2 - [203] utoa_append::digit#2 = phi( utoa_append/0, utoa_append::@2/utoa_append::digit#1 ) - [203] utoa_append::value#2 = phi( utoa_append/utoa_append::value#0, utoa_append::@2/utoa_append::value#1 ) - [204] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 + [201] utoa_append::digit#2 = phi( utoa_append/0, utoa_append::@2/utoa_append::digit#1 ) + [201] utoa_append::value#2 = phi( utoa_append/utoa_append::value#0, utoa_append::@2/utoa_append::value#1 ) + [202] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 to:utoa_append::@3 utoa_append::@3: scope:[utoa_append] from utoa_append::@1 - [205] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] + [203] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] to:utoa_append::@return utoa_append::@return: scope:[utoa_append] from utoa_append::@3 - [206] return + [204] return to:@return utoa_append::@2: scope:[utoa_append] from utoa_append::@1 - [207] utoa_append::digit#1 = ++ utoa_append::digit#2 - [208] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 + [205] utoa_append::digit#1 = ++ utoa_append::digit#2 + [206] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 to:utoa_append::@1 unsigned int strlen(char *str) strlen: scope:[strlen] from printf_number_buffer::@6 - [209] phi() + [207] phi() to:strlen::@1 strlen::@1: scope:[strlen] from strlen strlen::@2 - [210] strlen::len#2 = phi( strlen/0, strlen::@2/strlen::len#1 ) - [210] strlen::str#3 = phi( strlen/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, strlen::@2/strlen::str#0 ) - [211] if(0!=*strlen::str#3) goto strlen::@2 + [208] strlen::len#2 = phi( strlen/0, strlen::@2/strlen::len#1 ) + [208] strlen::str#3 = phi( strlen/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, strlen::@2/strlen::str#0 ) + [209] if(0!=*strlen::str#3) goto strlen::@2 to:strlen::@return strlen::@return: scope:[strlen] from strlen::@1 - [212] return + [210] return to:@return strlen::@2: scope:[strlen] from strlen::@1 - [213] strlen::len#1 = ++ strlen::len#2 - [214] strlen::str#0 = ++ strlen::str#3 + [211] strlen::len#1 = ++ strlen::len#2 + [212] strlen::str#0 = ++ strlen::str#3 to:strlen::@1 void printf_padding(void (*putc)(char) , char pad , char length) printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 - [215] printf_padding::putc#7 = phi( printf_number_buffer::@10/printf_padding::putc#1, printf_number_buffer::@12/printf_padding::putc#2, printf_number_buffer::@8/printf_padding::putc#0 ) - [215] printf_padding::pad#7 = phi( printf_number_buffer::@10/'0', printf_number_buffer::@12/' ', printf_number_buffer::@8/' ' ) - [215] printf_padding::length#6 = phi( printf_number_buffer::@10/printf_padding::length#1, printf_number_buffer::@12/printf_padding::length#2, printf_number_buffer::@8/printf_padding::length#0 ) + [213] printf_padding::putc#7 = phi( printf_number_buffer::@10/printf_padding::putc#1, printf_number_buffer::@12/printf_padding::putc#2, printf_number_buffer::@8/printf_padding::putc#0 ) + [213] printf_padding::pad#7 = phi( printf_number_buffer::@10/'0', printf_number_buffer::@12/' ', printf_number_buffer::@8/' ' ) + [213] printf_padding::length#6 = phi( printf_number_buffer::@10/printf_padding::length#1, printf_number_buffer::@12/printf_padding::length#2, printf_number_buffer::@8/printf_padding::length#0 ) to:printf_padding::@1 printf_padding::@1: scope:[printf_padding] from printf_padding printf_padding::@3 - [216] printf_padding::i#2 = phi( printf_padding/0, printf_padding::@3/printf_padding::i#1 ) - [217] if(printf_padding::i#2=ultoa_append::sub#0) goto ultoa_append::@2 + [232] ultoa_append::digit#2 = phi( ultoa_append/0, ultoa_append::@2/ultoa_append::digit#1 ) + [232] ultoa_append::value#2 = phi( ultoa_append/ultoa_append::value#0, ultoa_append::@2/ultoa_append::value#1 ) + [233] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2 to:ultoa_append::@3 ultoa_append::@3: scope:[ultoa_append] from ultoa_append::@1 - [236] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] + [234] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] to:ultoa_append::@return ultoa_append::@return: scope:[ultoa_append] from ultoa_append::@3 - [237] return + [235] return to:@return ultoa_append::@2: scope:[ultoa_append] from ultoa_append::@1 - [238] ultoa_append::digit#1 = ++ ultoa_append::digit#2 - [239] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 + [236] ultoa_append::digit#1 = ++ ultoa_append::digit#2 + [237] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 to:ultoa_append::@1 char toupper(char ch) toupper: scope:[toupper] from strupr::@2 - [240] if(toupper::ch#0<'a') goto toupper::@return + [238] if(toupper::ch#0<'a') goto toupper::@return to:toupper::@2 toupper::@2: scope:[toupper] from toupper - [241] if(toupper::ch#0<='z') goto toupper::@1 + [239] if(toupper::ch#0<='z') goto toupper::@1 to:toupper::@return toupper::@1: scope:[toupper] from toupper::@2 - [242] toupper::return#0 = toupper::ch#0 + 'A'-'a' + [240] toupper::return#0 = toupper::ch#0 + 'A'-'a' to:toupper::@return toupper::@return: scope:[toupper] from toupper toupper::@1 toupper::@2 - [243] toupper::return#2 = phi( toupper::@1/toupper::return#0, toupper/toupper::ch#0, toupper::@2/toupper::ch#0 ) - [244] return + [241] toupper::return#2 = phi( toupper::@1/toupper::return#0, toupper/toupper::ch#0, toupper::@2/toupper::ch#0 ) + [242] return to:@return diff --git a/src/test/ref/printf-19.log b/src/test/ref/printf-19.log index a8ac45c87..879f702f3 100644 --- a/src/test/ref/printf-19.log +++ b/src/test/ref/printf-19.log @@ -1424,8 +1424,6 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - __snprintf_capacity = 0 - __snprintf_size = 0 __snprintf_buffer = (char *) 0 screen#7 = (char *)$400 call conio_c64_init @@ -1472,8 +1470,8 @@ __constant char SIZEOF_UNSIGNED_INT = 2 __constant char SIZEOF_UNSIGNED_LONG = 4 __constant unsigned int STACK_BASE = $103 __loadstore char *__snprintf_buffer -__loadstore volatile unsigned int __snprintf_capacity -__loadstore volatile unsigned int __snprintf_size +__loadstore volatile unsigned int __snprintf_capacity = 0 +__loadstore volatile unsigned int __snprintf_size = 0 void __start() void conio_c64_init() bool conio_c64_init::$0 @@ -3208,7 +3206,7 @@ Simplifying expression containing zero (char *)&printf_buffer in [249] *((char * Simplifying expression containing zero (char *)&printf_buffer in [255] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) Simplifying expression containing zero printf_string::len#0 in [339] printf_string::padding#1 = printf_string::$13 - printf_string::len#0 Successful SSA optimization PassNSimplifyExpressionWithZero -Removing call to empty/unused procedure [483] call conio_c64_init +Removing call to empty/unused procedure [481] call conio_c64_init Successful SSA optimization PassNEliminateUnusedConstructors Eliminating variable ultoa::buffer#0 from unused block ultoa::@9 Eliminating variable ultoa::buffer#1 from unused block ultoa::@9 @@ -3348,16 +3346,16 @@ Simple Condition printf_number_buffer::$33 [152] if(0!=printf_number_buffer::for Simple Condition printf_number_buffer::$34 [165] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@25 Simple Condition printf_string::$1 [174] if(0==printf_string::format_justify_left#0) goto printf_string::@11 Simple Condition printf_string::$16 [177] if(0!=printf_string::format_justify_left#0) goto printf_string::@12 -Simple Condition toupper::$1 [244] if(toupper::ch#0<='z') goto toupper::@1 -Simple Condition utoa::$6 [245] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@14 -Simple Condition ultoa::$6 [246] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@14 -Simple Condition printf_number_buffer::$35 [248] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 -Simple Condition printf_number_buffer::$2 [249] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@21 -Simple Condition printf_number_buffer::$36 [251] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 -Simple Condition printf_number_buffer::$37 [253] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 -Simple Condition printf_number_buffer::$14 [254] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24 -Simple Condition printf_string::$17 [256] if(0!=printf_string::padding#0) goto printf_string::@5 -Simple Condition printf_string::$18 [258] if(0!=printf_string::padding#0) goto printf_string::@6 +Simple Condition toupper::$1 [242] if(toupper::ch#0<='z') goto toupper::@1 +Simple Condition utoa::$6 [243] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@14 +Simple Condition ultoa::$6 [244] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@14 +Simple Condition printf_number_buffer::$35 [246] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 +Simple Condition printf_number_buffer::$2 [247] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@21 +Simple Condition printf_number_buffer::$36 [249] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 +Simple Condition printf_number_buffer::$37 [251] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 +Simple Condition printf_number_buffer::$14 [252] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24 +Simple Condition printf_string::$17 [254] if(0!=printf_string::padding#0) goto printf_string::@5 +Simple Condition printf_string::$18 [256] if(0!=printf_string::padding#0) goto printf_string::@6 Successful SSA optimization Pass2ConditionalJumpSimplification Negating conditional jump and destination [8] if(toupper::ch#0<'a') goto toupper::@2 Negating conditional jump and destination [135] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 @@ -3365,8 +3363,8 @@ Negating conditional jump and destination [152] if(0==printf_number_buffer::form Negating conditional jump and destination [165] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return Negating conditional jump and destination [174] if(0!=printf_string::format_justify_left#0) goto printf_string::@2 Negating conditional jump and destination [177] if(0==printf_string::format_justify_left#0) goto printf_string::@return -Negating conditional jump and destination [249] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -Negating conditional jump and destination [254] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return +Negating conditional jump and destination [247] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 +Negating conditional jump and destination [252] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return Successful SSA optimization Pass2ConditionalJumpSequenceImprovement Constant right-side identified [59] ultoa::$4 = ultoa::max_digits#1 - 1 Constant right-side identified [110] printf_slong::uvalue#0 = (unsigned long)printf_slong::value#1 @@ -3385,8 +3383,8 @@ Constant utoa::value#1 = printf_sint::uvalue#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [174] if(0!=printf_string::format_justify_left#0) goto printf_string::@2 if() condition always true - replacing block destination [177] if(0==printf_string::format_justify_left#0) goto printf_string::@return -if() condition always false - eliminating [256] if(0!=printf_string::padding#0) goto printf_string::@5 -if() condition always false - eliminating [258] if(0!=printf_string::padding#0) goto printf_string::@6 +if() condition always false - eliminating [254] if(0!=printf_string::padding#0) goto printf_string::@5 +if() condition always false - eliminating [256] if(0!=printf_string::padding#0) goto printf_string::@6 Successful SSA optimization Pass2ConstantIfs Simplifying constant evaluating to zero (char)printf_string::padding#0 in Simplifying constant evaluating to zero (char)printf_string::padding#0 in @@ -3722,73 +3720,73 @@ Adding NOP phi() at start of strlen::@3 Adding NOP phi() at start of strupr Adding NOP phi() at start of strupr::@3 CALL GRAPH -Calls in [__start] to main:6 -Calls in [main] to snprintf_init:20 printf_str:22 snputc:24 print:26 snprintf_init:28 printf_str:30 printf_string:32 snputc:34 printf_str:36 snputc:38 print:41 snprintf_init:43 printf_str:45 printf_sint:47 printf_str:49 printf_uint:51 printf_str:53 snputc:55 print:58 snprintf_init:60 printf_str:62 printf_slong:64 printf_str:66 snputc:68 print:71 -Calls in [printf_str] to null:86 -Calls in [printf_string] to printf_str:103 -Calls in [printf_sint] to utoa:109 printf_number_buffer:112 -Calls in [printf_uint] to utoa:118 printf_number_buffer:121 -Calls in [printf_slong] to ultoa:127 printf_number_buffer:130 -Calls in [utoa] to utoa_append:169 -Calls in [printf_number_buffer] to strlen:181 null:198 strupr:204 printf_str:208 printf_padding:217 printf_padding:223 printf_padding:229 -Calls in [ultoa] to ultoa_append:259 -Calls in [strupr] to toupper:289 -Calls in [printf_padding] to null:300 +Calls in [__start] to main:4 +Calls in [main] to snprintf_init:18 printf_str:20 snputc:22 print:24 snprintf_init:26 printf_str:28 printf_string:30 snputc:32 printf_str:34 snputc:36 print:39 snprintf_init:41 printf_str:43 printf_sint:45 printf_str:47 printf_uint:49 printf_str:51 snputc:53 print:56 snprintf_init:58 printf_str:60 printf_slong:62 printf_str:64 snputc:66 print:69 +Calls in [printf_str] to null:84 +Calls in [printf_string] to printf_str:101 +Calls in [printf_sint] to utoa:107 printf_number_buffer:110 +Calls in [printf_uint] to utoa:116 printf_number_buffer:119 +Calls in [printf_slong] to ultoa:125 printf_number_buffer:128 +Calls in [utoa] to utoa_append:167 +Calls in [printf_number_buffer] to strlen:179 null:196 strupr:202 printf_str:206 printf_padding:215 printf_padding:221 printf_padding:227 +Calls in [ultoa] to ultoa_append:257 +Calls in [strupr] to toupper:287 +Calls in [printf_padding] to null:298 Created 45 initial phi equivalence classes -Coalesced [18] snputc::c#4 = snputc::c#0 -Coalesced [40] screen#42 = screen#1 -Coalesced (already) [57] screen#40 = screen#1 -Coalesced (already) [70] screen#41 = screen#1 -Coalesced [79] printf_str::s#14 = printf_str::s#12 -Coalesced [88] printf_str::s#15 = printf_str::s#0 -Coalesced (already) [90] screen#43 = screen#25 -Coalesced [97] print::msg#8 = print::msg#0 -Coalesced [98] screen#44 = screen#0 -Coalesced [111] printf_number_buffer::buffer_sign#14 = printf_number_buffer::buffer_sign#1 -Coalesced [120] printf_number_buffer::buffer_sign#16 = printf_number_buffer::buffer_sign#2 -Coalesced [129] printf_number_buffer::buffer_sign#15 = printf_number_buffer::buffer_sign#0 -Coalesced [145] utoa::value#18 = utoa::value#10 -Coalesced [157] utoa::value#19 = utoa::value#3 -Coalesced [158] utoa::started#6 = utoa::started#2 -Coalesced [159] utoa::buffer#24 = utoa::buffer#10 -Coalesced [162] utoa::digit#7 = utoa::digit#1 -Coalesced (already) [163] utoa::value#17 = utoa::value#7 -Coalesced (already) [164] utoa::started#5 = utoa::started#4 -Coalesced (already) [165] utoa::buffer#23 = utoa::buffer#15 -Coalesced [173] utoa::value#20 = utoa::value#0 -Coalesced [174] utoa::buffer#25 = utoa::buffer#4 -Coalesced [187] printf_number_buffer::len#5 = printf_number_buffer::len#1 -Coalesced [207] printf_str::putc#13 = printf_str::putc#0 -Coalesced [215] printf_padding::length#10 = printf_padding::length#2 -Coalesced [216] printf_padding::putc#10 = printf_padding::putc#2 -Coalesced [221] printf_padding::length#9 = printf_padding::length#1 -Coalesced [222] printf_padding::putc#9 = printf_padding::putc#1 -Coalesced [227] printf_padding::length#11 = printf_padding::length#0 -Coalesced [228] printf_padding::putc#11 = printf_padding::putc#0 -Coalesced [231] printf_number_buffer::padding#17 = printf_number_buffer::padding#1 -Coalesced [232] printf_number_buffer::len#4 = printf_number_buffer::len#0 -Coalesced [247] ultoa::value#17 = ultoa::value#2 -Coalesced [248] ultoa::started#6 = ultoa::started#2 -Coalesced [249] ultoa::buffer#23 = ultoa::buffer#11 -Coalesced [252] ultoa::digit#7 = ultoa::digit#1 -Coalesced (already) [253] ultoa::value#16 = ultoa::value#6 -Coalesced (already) [254] ultoa::started#5 = ultoa::started#4 -Coalesced (already) [255] ultoa::buffer#22 = ultoa::buffer#14 -Coalesced [263] ultoa::value#18 = ultoa::value#0 -Coalesced [264] ultoa::buffer#24 = ultoa::buffer#4 -Coalesced [265] utoa_append::value#6 = utoa_append::value#0 -Coalesced [272] utoa_append::value#7 = utoa_append::value#1 -Coalesced [273] utoa_append::digit#5 = utoa_append::digit#1 -Coalesced [281] strlen::str#6 = strlen::str#0 -Coalesced [282] strlen::len#5 = strlen::len#1 -Coalesced [294] strupr::src#5 = strupr::src#1 -Coalesced [303] printf_padding::i#5 = printf_padding::i#1 -Coalesced [304] ultoa_append::value#6 = ultoa_append::value#0 -Coalesced [311] ultoa_append::value#7 = ultoa_append::value#1 -Coalesced [312] ultoa_append::digit#5 = ultoa_append::digit#1 -Coalesced [315] toupper::return#7 = toupper::ch#0 -Coalesced [319] toupper::return#6 = toupper::return#0 +Coalesced [16] snputc::c#4 = snputc::c#0 +Coalesced [38] screen#42 = screen#1 +Coalesced (already) [55] screen#40 = screen#1 +Coalesced (already) [68] screen#41 = screen#1 +Coalesced [77] printf_str::s#14 = printf_str::s#12 +Coalesced [86] printf_str::s#15 = printf_str::s#0 +Coalesced (already) [88] screen#43 = screen#25 +Coalesced [95] print::msg#8 = print::msg#0 +Coalesced [96] screen#44 = screen#0 +Coalesced [109] printf_number_buffer::buffer_sign#14 = printf_number_buffer::buffer_sign#1 +Coalesced [118] printf_number_buffer::buffer_sign#16 = printf_number_buffer::buffer_sign#2 +Coalesced [127] printf_number_buffer::buffer_sign#15 = printf_number_buffer::buffer_sign#0 +Coalesced [143] utoa::value#18 = utoa::value#10 +Coalesced [155] utoa::value#19 = utoa::value#3 +Coalesced [156] utoa::started#6 = utoa::started#2 +Coalesced [157] utoa::buffer#24 = utoa::buffer#10 +Coalesced [160] utoa::digit#7 = utoa::digit#1 +Coalesced (already) [161] utoa::value#17 = utoa::value#7 +Coalesced (already) [162] utoa::started#5 = utoa::started#4 +Coalesced (already) [163] utoa::buffer#23 = utoa::buffer#15 +Coalesced [171] utoa::value#20 = utoa::value#0 +Coalesced [172] utoa::buffer#25 = utoa::buffer#4 +Coalesced [185] printf_number_buffer::len#5 = printf_number_buffer::len#1 +Coalesced [205] printf_str::putc#13 = printf_str::putc#0 +Coalesced [213] printf_padding::length#10 = printf_padding::length#2 +Coalesced [214] printf_padding::putc#10 = printf_padding::putc#2 +Coalesced [219] printf_padding::length#9 = printf_padding::length#1 +Coalesced [220] printf_padding::putc#9 = printf_padding::putc#1 +Coalesced [225] printf_padding::length#11 = printf_padding::length#0 +Coalesced [226] printf_padding::putc#11 = printf_padding::putc#0 +Coalesced [229] printf_number_buffer::padding#17 = printf_number_buffer::padding#1 +Coalesced [230] printf_number_buffer::len#4 = printf_number_buffer::len#0 +Coalesced [245] ultoa::value#17 = ultoa::value#2 +Coalesced [246] ultoa::started#6 = ultoa::started#2 +Coalesced [247] ultoa::buffer#23 = ultoa::buffer#11 +Coalesced [250] ultoa::digit#7 = ultoa::digit#1 +Coalesced (already) [251] ultoa::value#16 = ultoa::value#6 +Coalesced (already) [252] ultoa::started#5 = ultoa::started#4 +Coalesced (already) [253] ultoa::buffer#22 = ultoa::buffer#14 +Coalesced [261] ultoa::value#18 = ultoa::value#0 +Coalesced [262] ultoa::buffer#24 = ultoa::buffer#4 +Coalesced [263] utoa_append::value#6 = utoa_append::value#0 +Coalesced [270] utoa_append::value#7 = utoa_append::value#1 +Coalesced [271] utoa_append::digit#5 = utoa_append::digit#1 +Coalesced [279] strlen::str#6 = strlen::str#0 +Coalesced [280] strlen::len#5 = strlen::len#1 +Coalesced [292] strupr::src#5 = strupr::src#1 +Coalesced [301] printf_padding::i#5 = printf_padding::i#1 +Coalesced [302] ultoa_append::value#6 = ultoa_append::value#0 +Coalesced [309] ultoa_append::value#7 = ultoa_append::value#1 +Coalesced [310] ultoa_append::digit#5 = ultoa_append::digit#1 +Coalesced [313] toupper::return#7 = toupper::ch#0 +Coalesced [317] toupper::return#6 = toupper::return#0 Coalesced down to 36 phi equivalence classes Culled Empty Block label __start::@2 Culled Empty Block label __start::@3 @@ -3896,571 +3894,569 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] __snprintf_capacity = 0 - [2] __snprintf_size = 0 - [3] __snprintf_buffer = (char *) 0 + [1] __snprintf_buffer = (char *) 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - [4] phi() - [5] call main + [2] phi() + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 - [6] return + [4] return to:@return __stackcall void snputc(char c) snputc: scope:[snputc] from - [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) - [8] __snprintf_size = ++ __snprintf_size - [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 + [5] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) + [6] __snprintf_size = ++ __snprintf_size + [7] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 to:snputc::@return snputc::@return: scope:[snputc] from snputc snputc::@2 - [10] return + [8] return to:@return snputc::@1: scope:[snputc] from snputc - [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 + [9] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 to:snputc::@2 snputc::@3: scope:[snputc] from snputc::@1 - [12] phi() + [10] phi() to:snputc::@2 snputc::@2: scope:[snputc] from snputc::@1 snputc::@3 - [13] snputc::c#2 = phi( snputc::@3/snputc::c#0, snputc::@1/0 ) - [14] *__snprintf_buffer = snputc::c#2 - [15] __snprintf_buffer = ++ __snprintf_buffer + [11] snputc::c#2 = phi( snputc::@3/snputc::c#0, snputc::@1/0 ) + [12] *__snprintf_buffer = snputc::c#2 + [13] __snprintf_buffer = ++ __snprintf_buffer to:snputc::@return void main() main: scope:[main] from __start::@1 - [16] phi() - [17] call snprintf_init + [14] phi() + [15] call snprintf_init to:main::@1 main::@1: scope:[main] from main - [18] phi() - [19] call printf_str + [16] phi() + [17] call printf_str to:main::@2 main::@2: scope:[main] from main::@1 - [20] stackpush(char) = 0 - [21] callexecute snputc + [18] stackpush(char) = 0 + [19] callexecute snputc sideeffect stackpullpadding(1) - [23] call print + [21] call print to:main::@3 main::@3: scope:[main] from main::@2 - [24] phi() - [25] call snprintf_init + [22] phi() + [23] call snprintf_init to:main::@4 main::@4: scope:[main] from main::@3 - [26] phi() - [27] call printf_str + [24] phi() + [25] call printf_str to:main::@5 main::@5: scope:[main] from main::@4 - [28] phi() - [29] call printf_string + [26] phi() + [27] call printf_string to:main::@6 main::@6: scope:[main] from main::@5 - [30] stackpush(char) = '!' - [31] callexecute snputc + [28] stackpush(char) = '!' + [29] callexecute snputc sideeffect stackpullpadding(1) - [33] call printf_str + [31] call printf_str to:main::@7 main::@7: scope:[main] from main::@6 - [34] stackpush(char) = 0 - [35] callexecute snputc + [32] stackpush(char) = 0 + [33] callexecute snputc sideeffect stackpullpadding(1) - [37] call print + [35] call print to:main::@8 main::@8: scope:[main] from main::@7 - [38] phi() - [39] call snprintf_init + [36] phi() + [37] call snprintf_init to:main::@9 main::@9: scope:[main] from main::@8 - [40] phi() - [41] call printf_str + [38] phi() + [39] call printf_str to:main::@10 main::@10: scope:[main] from main::@9 - [42] phi() - [43] call printf_sint + [40] phi() + [41] call printf_sint to:main::@11 main::@11: scope:[main] from main::@10 - [44] phi() - [45] call printf_str + [42] phi() + [43] call printf_str to:main::@12 main::@12: scope:[main] from main::@11 - [46] phi() - [47] call printf_uint + [44] phi() + [45] call printf_uint to:main::@13 main::@13: scope:[main] from main::@12 - [48] phi() - [49] call printf_str + [46] phi() + [47] call printf_str to:main::@14 main::@14: scope:[main] from main::@13 - [50] stackpush(char) = 0 - [51] callexecute snputc + [48] stackpush(char) = 0 + [49] callexecute snputc sideeffect stackpullpadding(1) - [53] call print + [51] call print to:main::@15 main::@15: scope:[main] from main::@14 - [54] phi() - [55] call snprintf_init + [52] phi() + [53] call snprintf_init to:main::@16 main::@16: scope:[main] from main::@15 - [56] phi() - [57] call printf_str + [54] phi() + [55] call printf_str to:main::@17 main::@17: scope:[main] from main::@16 - [58] phi() - [59] call printf_slong + [56] phi() + [57] call printf_slong to:main::@18 main::@18: scope:[main] from main::@17 - [60] phi() - [61] call printf_str + [58] phi() + [59] call printf_str to:main::@19 main::@19: scope:[main] from main::@18 - [62] stackpush(char) = 0 - [63] callexecute snputc + [60] stackpush(char) = 0 + [61] callexecute snputc sideeffect stackpullpadding(1) - [65] call print + [63] call print to:main::@return main::@return: scope:[main] from main::@19 - [66] return + [64] return to:@return void snprintf_init(char *s , unsigned int n) snprintf_init: scope:[snprintf_init] from main main::@15 main::@3 main::@8 - [67] __snprintf_capacity = $ffff - [68] __snprintf_size = 0 - [69] __snprintf_buffer = BUF + [65] __snprintf_capacity = $ffff + [66] __snprintf_size = 0 + [67] __snprintf_buffer = BUF to:snprintf_init::@return snprintf_init::@return: scope:[snprintf_init] from snprintf_init - [70] return + [68] return to:@return void printf_str(void (*putc)(char) , const char *s) printf_str: scope:[printf_str] from main::@1 main::@11 main::@13 main::@16 main::@18 main::@4 main::@6 main::@9 printf_number_buffer::@5 printf_string::@1 - [71] printf_str::putc#12 = phi( main::@1/&snputc, main::@11/&snputc, main::@13/&snputc, main::@16/&snputc, main::@18/&snputc, main::@4/&snputc, main::@6/&snputc, main::@9/&snputc, printf_number_buffer::@5/printf_str::putc#0, printf_string::@1/printf_string::putc#0 ) - [71] printf_str::s#12 = phi( main::@1/main::s, main::@11/main::s4, main::@13/main::s5, main::@16/main::s6, main::@18/main::s5, main::@4/main::s1, main::@6/main::s2, main::@9/main::s1, printf_number_buffer::@5/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, printf_string::@1/main::str ) + [69] printf_str::putc#12 = phi( main::@1/&snputc, main::@11/&snputc, main::@13/&snputc, main::@16/&snputc, main::@18/&snputc, main::@4/&snputc, main::@6/&snputc, main::@9/&snputc, printf_number_buffer::@5/printf_str::putc#0, printf_string::@1/printf_string::putc#0 ) + [69] printf_str::s#12 = phi( main::@1/main::s, main::@11/main::s4, main::@13/main::s5, main::@16/main::s6, main::@18/main::s5, main::@4/main::s1, main::@6/main::s2, main::@9/main::s1, printf_number_buffer::@5/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, printf_string::@1/main::str ) to:printf_str::@1 printf_str::@1: scope:[printf_str] from printf_str printf_str::@2 - [72] printf_str::s#11 = phi( printf_str/printf_str::s#12, printf_str::@2/printf_str::s#0 ) - [73] printf_str::c#1 = *printf_str::s#11 - [74] printf_str::s#0 = ++ printf_str::s#11 - [75] if(0!=printf_str::c#1) goto printf_str::@2 + [70] printf_str::s#11 = phi( printf_str/printf_str::s#12, printf_str::@2/printf_str::s#0 ) + [71] printf_str::c#1 = *printf_str::s#11 + [72] printf_str::s#0 = ++ printf_str::s#11 + [73] if(0!=printf_str::c#1) goto printf_str::@2 to:printf_str::@return printf_str::@return: scope:[printf_str] from printf_str::@1 - [76] return + [74] return to:@return printf_str::@2: scope:[printf_str] from printf_str::@1 - [77] stackpush(char) = printf_str::c#1 - [78] callexecute *printf_str::putc#12 + [75] stackpush(char) = printf_str::c#1 + [76] callexecute *printf_str::putc#12 sideeffect stackpullpadding(1) to:printf_str::@1 void print(char *msg) print: scope:[print] from main::@14 main::@19 main::@2 main::@7 - [80] screen#25 = phi( main::@14/screen#1, main::@19/screen#1, main::@2/(char *) 1024, main::@7/screen#1 ) + [78] screen#25 = phi( main::@14/screen#1, main::@19/screen#1, main::@2/(char *) 1024, main::@7/screen#1 ) to:print::@1 print::@1: scope:[print] from print print::@2 - [81] screen#1 = phi( print/screen#25, print::@2/screen#0 ) - [81] print::msg#5 = phi( print/BUF, print::@2/print::msg#0 ) - [82] if(0!=*print::msg#5) goto print::@2 + [79] screen#1 = phi( print/screen#25, print::@2/screen#0 ) + [79] print::msg#5 = phi( print/BUF, print::@2/print::msg#0 ) + [80] if(0!=*print::msg#5) goto print::@2 to:print::@return print::@return: scope:[print] from print::@1 - [83] return + [81] return to:@return print::@2: scope:[print] from print::@1 - [84] *screen#1 = *print::msg#5 - [85] screen#0 = ++ screen#1 - [86] print::msg#0 = ++ print::msg#5 + [82] *screen#1 = *print::msg#5 + [83] screen#0 = ++ screen#1 + [84] print::msg#0 = ++ print::msg#5 to:print::@1 void printf_string(void (*putc)(char) , char *str , char format_min_length , char format_justify_left) printf_string: scope:[printf_string] from main::@5 - [87] phi() + [85] phi() to:printf_string::@1 printf_string::@1: scope:[printf_string] from printf_string - [88] phi() - [89] call printf_str + [86] phi() + [87] call printf_str to:printf_string::@return printf_string::@return: scope:[printf_string] from printf_string::@1 - [90] return + [88] return to:@return void printf_sint(void (*putc)(char) , int value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_sint: scope:[printf_sint] from main::@10 - [91] *((char *)&printf_buffer) = 0 + [89] *((char *)&printf_buffer) = 0 to:printf_sint::@1 printf_sint::@1: scope:[printf_sint] from printf_sint - [92] phi() - [93] call utoa + [90] phi() + [91] call utoa to:printf_sint::@2 printf_sint::@2: scope:[printf_sint] from printf_sint::@1 - [94] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) - [95] call printf_number_buffer + [92] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) + [93] call printf_number_buffer to:printf_sint::@return printf_sint::@return: scope:[printf_sint] from printf_sint::@2 - [96] return + [94] return to:@return void printf_uint(void (*putc)(char) , unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_uint: scope:[printf_uint] from main::@12 - [97] phi() + [95] phi() to:printf_uint::@1 printf_uint::@1: scope:[printf_uint] from printf_uint - [98] *((char *)&printf_buffer) = 0 - [99] call utoa + [96] *((char *)&printf_buffer) = 0 + [97] call utoa to:printf_uint::@2 printf_uint::@2: scope:[printf_uint] from printf_uint::@1 - [100] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer) - [101] call printf_number_buffer + [98] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer) + [99] call printf_number_buffer to:printf_uint::@return printf_uint::@return: scope:[printf_uint] from printf_uint::@2 - [102] return + [100] return to:@return void printf_slong(void (*putc)(char) , long value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_slong: scope:[printf_slong] from main::@17 - [103] *((char *)&printf_buffer) = 0 + [101] *((char *)&printf_buffer) = 0 to:printf_slong::@1 printf_slong::@1: scope:[printf_slong] from printf_slong - [104] phi() - [105] call ultoa + [102] phi() + [103] call ultoa to:printf_slong::@2 printf_slong::@2: scope:[printf_slong] from printf_slong::@1 - [106] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) - [107] call printf_number_buffer + [104] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) + [105] call printf_number_buffer to:printf_slong::@return printf_slong::@return: scope:[printf_slong] from printf_slong::@2 - [108] return + [106] return to:@return void utoa(unsigned int value , char *buffer , char radix) utoa: scope:[utoa] from printf_sint::@1 printf_uint::@1 - [109] utoa::value#10 = phi( printf_sint::@1/printf_sint::uvalue#0, printf_uint::@1/printf_uint::uvalue#0 ) - [109] utoa::radix#2 = phi( printf_sint::@1/DECIMAL, printf_uint::@1/HEXADECIMAL ) - [110] if(utoa::radix#2==DECIMAL) goto utoa::@1 + [107] utoa::value#10 = phi( printf_sint::@1/printf_sint::uvalue#0, printf_uint::@1/printf_uint::uvalue#0 ) + [107] utoa::radix#2 = phi( printf_sint::@1/DECIMAL, printf_uint::@1/HEXADECIMAL ) + [108] if(utoa::radix#2==DECIMAL) goto utoa::@1 to:utoa::@2 utoa::@2: scope:[utoa] from utoa - [111] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 + [109] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 to:utoa::@3 utoa::@3: scope:[utoa] from utoa::@2 - [112] if(utoa::radix#2==OCTAL) goto utoa::@1 + [110] if(utoa::radix#2==OCTAL) goto utoa::@1 to:utoa::@4 utoa::@4: scope:[utoa] from utoa::@3 - [113] if(utoa::radix#2==BINARY) goto utoa::@1 + [111] if(utoa::radix#2==BINARY) goto utoa::@1 to:utoa::@5 utoa::@5: scope:[utoa] from utoa::@4 - [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' - [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' - [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' - [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 + [112] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' + [113] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' + [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' + [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 to:utoa::@return utoa::@return: scope:[utoa] from utoa::@5 utoa::@8 - [118] return + [116] return to:@return utoa::@1: scope:[utoa] from utoa utoa::@2 utoa::@3 utoa::@4 - [119] utoa::digit_values#8 = phi( utoa/RADIX_DECIMAL_VALUES, utoa::@2/RADIX_HEXADECIMAL_VALUES, utoa::@3/RADIX_OCTAL_VALUES, utoa::@4/RADIX_BINARY_VALUES ) - [119] utoa::max_digits#7 = phi( utoa/5, utoa::@2/4, utoa::@3/6, utoa::@4/$10 ) + [117] utoa::digit_values#8 = phi( utoa/RADIX_DECIMAL_VALUES, utoa::@2/RADIX_HEXADECIMAL_VALUES, utoa::@3/RADIX_OCTAL_VALUES, utoa::@4/RADIX_BINARY_VALUES ) + [117] utoa::max_digits#7 = phi( utoa/5, utoa::@2/4, utoa::@3/6, utoa::@4/$10 ) to:utoa::@6 utoa::@6: scope:[utoa] from utoa::@1 utoa::@9 - [120] utoa::buffer#10 = phi( utoa::@9/utoa::buffer#15, utoa::@1/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [120] utoa::started#2 = phi( utoa::@9/utoa::started#4, utoa::@1/0 ) - [120] utoa::value#3 = phi( utoa::@9/utoa::value#7, utoa::@1/utoa::value#10 ) - [120] utoa::digit#2 = phi( utoa::@9/utoa::digit#1, utoa::@1/0 ) - [121] utoa::$4 = utoa::max_digits#7 - 1 - [122] if(utoa::digit#2=utoa::digit_value#0) goto utoa::@10 + [128] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 to:utoa::@9 utoa::@9: scope:[utoa] from utoa::@11 utoa::@12 - [131] utoa::buffer#15 = phi( utoa::@12/utoa::buffer#10, utoa::@11/utoa::buffer#4 ) - [131] utoa::started#4 = phi( utoa::@12/utoa::started#2, utoa::@11/1 ) - [131] utoa::value#7 = phi( utoa::@12/utoa::value#3, utoa::@11/utoa::value#0 ) - [132] utoa::digit#1 = ++ utoa::digit#2 + [129] utoa::buffer#15 = phi( utoa::@12/utoa::buffer#10, utoa::@11/utoa::buffer#4 ) + [129] utoa::started#4 = phi( utoa::@12/utoa::started#2, utoa::@11/1 ) + [129] utoa::value#7 = phi( utoa::@12/utoa::value#3, utoa::@11/utoa::value#0 ) + [130] utoa::digit#1 = ++ utoa::digit#2 to:utoa::@6 utoa::@10: scope:[utoa] from utoa::@12 utoa::@7 - [133] utoa_append::buffer#0 = utoa::buffer#10 - [134] utoa_append::value#0 = utoa::value#3 - [135] utoa_append::sub#0 = utoa::digit_value#0 - [136] call utoa_append - [137] utoa_append::return#0 = utoa_append::value#2 + [131] utoa_append::buffer#0 = utoa::buffer#10 + [132] utoa_append::value#0 = utoa::value#3 + [133] utoa_append::sub#0 = utoa::digit_value#0 + [134] call utoa_append + [135] utoa_append::return#0 = utoa_append::value#2 to:utoa::@11 utoa::@11: scope:[utoa] from utoa::@10 - [138] utoa::value#0 = utoa_append::return#0 - [139] utoa::buffer#4 = ++ utoa::buffer#10 + [136] utoa::value#0 = utoa_append::return#0 + [137] utoa::buffer#4 = ++ utoa::buffer#10 to:utoa::@9 void printf_number_buffer(void (*putc)(char) , char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_number_buffer: scope:[printf_number_buffer] from printf_sint::@2 printf_slong::@2 printf_uint::@2 - [140] printf_number_buffer::format_upper_case#10 = phi( printf_sint::@2/printf_sint::format_upper_case#0, printf_slong::@2/printf_slong::format_upper_case#0, printf_uint::@2/printf_uint::format_upper_case#0 ) - [140] printf_number_buffer::putc#10 = phi( printf_sint::@2/printf_sint::putc#0, printf_slong::@2/printf_slong::putc#0, printf_uint::@2/printf_uint::putc#0 ) - [140] printf_number_buffer::buffer_sign#10 = phi( printf_sint::@2/printf_number_buffer::buffer_sign#1, printf_slong::@2/printf_number_buffer::buffer_sign#0, printf_uint::@2/printf_number_buffer::buffer_sign#2 ) - [140] printf_number_buffer::format_zero_padding#10 = phi( printf_sint::@2/printf_sint::format_zero_padding#0, printf_slong::@2/printf_slong::format_zero_padding#0, printf_uint::@2/printf_uint::format_zero_padding#0 ) - [140] printf_number_buffer::format_justify_left#10 = phi( printf_sint::@2/printf_sint::format_justify_left#0, printf_slong::@2/printf_slong::format_justify_left#0, printf_uint::@2/printf_uint::format_justify_left#0 ) - [140] printf_number_buffer::format_min_length#3 = phi( printf_sint::@2/printf_sint::format_min_length#0, printf_slong::@2/printf_slong::format_min_length#0, printf_uint::@2/printf_uint::format_min_length#0 ) - [141] if(0==printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 + [138] printf_number_buffer::format_upper_case#10 = phi( printf_sint::@2/printf_sint::format_upper_case#0, printf_slong::@2/printf_slong::format_upper_case#0, printf_uint::@2/printf_uint::format_upper_case#0 ) + [138] printf_number_buffer::putc#10 = phi( printf_sint::@2/printf_sint::putc#0, printf_slong::@2/printf_slong::putc#0, printf_uint::@2/printf_uint::putc#0 ) + [138] printf_number_buffer::buffer_sign#10 = phi( printf_sint::@2/printf_number_buffer::buffer_sign#1, printf_slong::@2/printf_number_buffer::buffer_sign#0, printf_uint::@2/printf_number_buffer::buffer_sign#2 ) + [138] printf_number_buffer::format_zero_padding#10 = phi( printf_sint::@2/printf_sint::format_zero_padding#0, printf_slong::@2/printf_slong::format_zero_padding#0, printf_uint::@2/printf_uint::format_zero_padding#0 ) + [138] printf_number_buffer::format_justify_left#10 = phi( printf_sint::@2/printf_sint::format_justify_left#0, printf_slong::@2/printf_slong::format_justify_left#0, printf_uint::@2/printf_uint::format_justify_left#0 ) + [138] printf_number_buffer::format_min_length#3 = phi( printf_sint::@2/printf_sint::format_min_length#0, printf_slong::@2/printf_slong::format_min_length#0, printf_uint::@2/printf_uint::format_min_length#0 ) + [139] if(0==printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 to:printf_number_buffer::@6 printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffer - [142] phi() - [143] call strlen - [144] strlen::return#2 = strlen::len#2 + [140] phi() + [141] call strlen + [142] strlen::return#2 = strlen::len#2 to:printf_number_buffer::@14 printf_number_buffer::@14: scope:[printf_number_buffer] from printf_number_buffer::@6 - [145] printf_number_buffer::$19 = strlen::return#2 - [146] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 - [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 + [143] printf_number_buffer::$19 = strlen::return#2 + [144] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 + [145] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 to:printf_number_buffer::@7 printf_number_buffer::@7: scope:[printf_number_buffer] from printf_number_buffer::@14 - [148] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 + [146] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 to:printf_number_buffer::@13 printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buffer::@14 printf_number_buffer::@7 - [149] printf_number_buffer::len#2 = phi( printf_number_buffer::@14/printf_number_buffer::len#0, printf_number_buffer::@7/printf_number_buffer::len#1 ) - [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 - [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 + [147] printf_number_buffer::len#2 = phi( printf_number_buffer::@14/printf_number_buffer::len#0, printf_number_buffer::@7/printf_number_buffer::len#1 ) + [148] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 + [149] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 to:printf_number_buffer::@1 printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@13 - [152] phi() + [150] phi() to:printf_number_buffer::@1 printf_number_buffer::@1: scope:[printf_number_buffer] from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@21 - [153] printf_number_buffer::padding#10 = phi( printf_number_buffer/0, printf_number_buffer::@21/printf_number_buffer::padding#1, printf_number_buffer::@13/0 ) - [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 + [151] printf_number_buffer::padding#10 = phi( printf_number_buffer/0, printf_number_buffer::@21/printf_number_buffer::padding#1, printf_number_buffer::@13/0 ) + [152] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 to:printf_number_buffer::@17 printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@1 - [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 + [153] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 to:printf_number_buffer::@16 printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@17 - [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 + [154] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 to:printf_number_buffer::@2 printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffer::@16 - [157] printf_padding::putc#0 = printf_number_buffer::putc#10 - [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10 - [159] call printf_padding + [155] printf_padding::putc#0 = printf_number_buffer::putc#10 + [156] printf_padding::length#0 = (char)printf_number_buffer::padding#10 + [157] call printf_padding to:printf_number_buffer::@2 printf_number_buffer::@2: scope:[printf_number_buffer] from printf_number_buffer::@1 printf_number_buffer::@16 printf_number_buffer::@17 printf_number_buffer::@8 - [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 + [158] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 to:printf_number_buffer::@9 printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffer::@2 - [161] stackpush(char) = printf_number_buffer::buffer_sign#10 - [162] callexecute *printf_number_buffer::putc#10 + [159] stackpush(char) = printf_number_buffer::buffer_sign#10 + [160] callexecute *printf_number_buffer::putc#10 sideeffect stackpullpadding(1) to:printf_number_buffer::@3 printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@2 printf_number_buffer::@9 - [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 + [162] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 to:printf_number_buffer::@18 printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@3 - [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 + [163] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 to:printf_number_buffer::@4 printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buffer::@18 - [166] printf_padding::putc#1 = printf_number_buffer::putc#10 - [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10 - [168] call printf_padding + [164] printf_padding::putc#1 = printf_number_buffer::putc#10 + [165] printf_padding::length#1 = (char)printf_number_buffer::padding#10 + [166] call printf_padding to:printf_number_buffer::@4 printf_number_buffer::@4: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::@18 printf_number_buffer::@3 - [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 + [167] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 to:printf_number_buffer::@11 printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buffer::@4 - [170] phi() - [171] call strupr + [168] phi() + [169] call strupr to:printf_number_buffer::@5 printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffer::@11 printf_number_buffer::@4 - [172] printf_str::putc#0 = printf_number_buffer::putc#10 - [173] call printf_str + [170] printf_str::putc#0 = printf_number_buffer::putc#10 + [171] call printf_str to:printf_number_buffer::@15 printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@5 - [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return + [172] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return to:printf_number_buffer::@20 printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@15 - [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return + [173] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return to:printf_number_buffer::@19 printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@20 - [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 + [174] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 to:printf_number_buffer::@return printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 - [177] printf_padding::putc#2 = printf_number_buffer::putc#10 - [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10 - [179] call printf_padding + [175] printf_padding::putc#2 = printf_number_buffer::putc#10 + [176] printf_padding::length#2 = (char)printf_number_buffer::padding#10 + [177] call printf_padding to:printf_number_buffer::@return printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@12 printf_number_buffer::@15 printf_number_buffer::@19 printf_number_buffer::@20 - [180] return + [178] return to:@return void ultoa(unsigned long value , char *buffer , char radix) ultoa: scope:[ultoa] from printf_slong::@1 - [181] phi() + [179] phi() to:ultoa::@1 ultoa::@1: scope:[ultoa] from ultoa ultoa::@4 - [182] ultoa::buffer#11 = phi( ultoa::@4/ultoa::buffer#14, ultoa/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [182] ultoa::started#2 = phi( ultoa::@4/ultoa::started#4, ultoa/0 ) - [182] ultoa::value#2 = phi( ultoa::@4/ultoa::value#6, ultoa/printf_slong::uvalue#0 ) - [182] ultoa::digit#2 = phi( ultoa::@4/ultoa::digit#1, ultoa/0 ) - [183] if(ultoa::digit#2=ultoa::digit_value#0) goto ultoa::@5 + [190] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5 to:ultoa::@4 ultoa::@4: scope:[ultoa] from ultoa::@6 ultoa::@7 - [193] ultoa::buffer#14 = phi( ultoa::@7/ultoa::buffer#11, ultoa::@6/ultoa::buffer#4 ) - [193] ultoa::started#4 = phi( ultoa::@7/ultoa::started#2, ultoa::@6/1 ) - [193] ultoa::value#6 = phi( ultoa::@7/ultoa::value#2, ultoa::@6/ultoa::value#0 ) - [194] ultoa::digit#1 = ++ ultoa::digit#2 + [191] ultoa::buffer#14 = phi( ultoa::@7/ultoa::buffer#11, ultoa::@6/ultoa::buffer#4 ) + [191] ultoa::started#4 = phi( ultoa::@7/ultoa::started#2, ultoa::@6/1 ) + [191] ultoa::value#6 = phi( ultoa::@7/ultoa::value#2, ultoa::@6/ultoa::value#0 ) + [192] ultoa::digit#1 = ++ ultoa::digit#2 to:ultoa::@1 ultoa::@5: scope:[ultoa] from ultoa::@2 ultoa::@7 - [195] ultoa_append::buffer#0 = ultoa::buffer#11 - [196] ultoa_append::value#0 = ultoa::value#2 - [197] ultoa_append::sub#0 = ultoa::digit_value#0 - [198] call ultoa_append - [199] ultoa_append::return#0 = ultoa_append::value#2 + [193] ultoa_append::buffer#0 = ultoa::buffer#11 + [194] ultoa_append::value#0 = ultoa::value#2 + [195] ultoa_append::sub#0 = ultoa::digit_value#0 + [196] call ultoa_append + [197] ultoa_append::return#0 = ultoa_append::value#2 to:ultoa::@6 ultoa::@6: scope:[ultoa] from ultoa::@5 - [200] ultoa::value#0 = ultoa_append::return#0 - [201] ultoa::buffer#4 = ++ ultoa::buffer#11 + [198] ultoa::value#0 = ultoa_append::return#0 + [199] ultoa::buffer#4 = ++ ultoa::buffer#11 to:ultoa::@4 unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) utoa_append: scope:[utoa_append] from utoa::@10 - [202] phi() + [200] phi() to:utoa_append::@1 utoa_append::@1: scope:[utoa_append] from utoa_append utoa_append::@2 - [203] utoa_append::digit#2 = phi( utoa_append/0, utoa_append::@2/utoa_append::digit#1 ) - [203] utoa_append::value#2 = phi( utoa_append/utoa_append::value#0, utoa_append::@2/utoa_append::value#1 ) - [204] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 + [201] utoa_append::digit#2 = phi( utoa_append/0, utoa_append::@2/utoa_append::digit#1 ) + [201] utoa_append::value#2 = phi( utoa_append/utoa_append::value#0, utoa_append::@2/utoa_append::value#1 ) + [202] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 to:utoa_append::@3 utoa_append::@3: scope:[utoa_append] from utoa_append::@1 - [205] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] + [203] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] to:utoa_append::@return utoa_append::@return: scope:[utoa_append] from utoa_append::@3 - [206] return + [204] return to:@return utoa_append::@2: scope:[utoa_append] from utoa_append::@1 - [207] utoa_append::digit#1 = ++ utoa_append::digit#2 - [208] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 + [205] utoa_append::digit#1 = ++ utoa_append::digit#2 + [206] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 to:utoa_append::@1 unsigned int strlen(char *str) strlen: scope:[strlen] from printf_number_buffer::@6 - [209] phi() + [207] phi() to:strlen::@1 strlen::@1: scope:[strlen] from strlen strlen::@2 - [210] strlen::len#2 = phi( strlen/0, strlen::@2/strlen::len#1 ) - [210] strlen::str#3 = phi( strlen/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, strlen::@2/strlen::str#0 ) - [211] if(0!=*strlen::str#3) goto strlen::@2 + [208] strlen::len#2 = phi( strlen/0, strlen::@2/strlen::len#1 ) + [208] strlen::str#3 = phi( strlen/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, strlen::@2/strlen::str#0 ) + [209] if(0!=*strlen::str#3) goto strlen::@2 to:strlen::@return strlen::@return: scope:[strlen] from strlen::@1 - [212] return + [210] return to:@return strlen::@2: scope:[strlen] from strlen::@1 - [213] strlen::len#1 = ++ strlen::len#2 - [214] strlen::str#0 = ++ strlen::str#3 + [211] strlen::len#1 = ++ strlen::len#2 + [212] strlen::str#0 = ++ strlen::str#3 to:strlen::@1 void printf_padding(void (*putc)(char) , char pad , char length) printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 - [215] printf_padding::putc#7 = phi( printf_number_buffer::@10/printf_padding::putc#1, printf_number_buffer::@12/printf_padding::putc#2, printf_number_buffer::@8/printf_padding::putc#0 ) - [215] printf_padding::pad#7 = phi( printf_number_buffer::@10/'0', printf_number_buffer::@12/' ', printf_number_buffer::@8/' ' ) - [215] printf_padding::length#6 = phi( printf_number_buffer::@10/printf_padding::length#1, printf_number_buffer::@12/printf_padding::length#2, printf_number_buffer::@8/printf_padding::length#0 ) + [213] printf_padding::putc#7 = phi( printf_number_buffer::@10/printf_padding::putc#1, printf_number_buffer::@12/printf_padding::putc#2, printf_number_buffer::@8/printf_padding::putc#0 ) + [213] printf_padding::pad#7 = phi( printf_number_buffer::@10/'0', printf_number_buffer::@12/' ', printf_number_buffer::@8/' ' ) + [213] printf_padding::length#6 = phi( printf_number_buffer::@10/printf_padding::length#1, printf_number_buffer::@12/printf_padding::length#2, printf_number_buffer::@8/printf_padding::length#0 ) to:printf_padding::@1 printf_padding::@1: scope:[printf_padding] from printf_padding printf_padding::@3 - [216] printf_padding::i#2 = phi( printf_padding/0, printf_padding::@3/printf_padding::i#1 ) - [217] if(printf_padding::i#2=ultoa_append::sub#0) goto ultoa_append::@2 + [232] ultoa_append::digit#2 = phi( ultoa_append/0, ultoa_append::@2/ultoa_append::digit#1 ) + [232] ultoa_append::value#2 = phi( ultoa_append/ultoa_append::value#0, ultoa_append::@2/ultoa_append::value#1 ) + [233] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2 to:ultoa_append::@3 ultoa_append::@3: scope:[ultoa_append] from ultoa_append::@1 - [236] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] + [234] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] to:ultoa_append::@return ultoa_append::@return: scope:[ultoa_append] from ultoa_append::@3 - [237] return + [235] return to:@return ultoa_append::@2: scope:[ultoa_append] from ultoa_append::@1 - [238] ultoa_append::digit#1 = ++ ultoa_append::digit#2 - [239] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 + [236] ultoa_append::digit#1 = ++ ultoa_append::digit#2 + [237] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 to:ultoa_append::@1 char toupper(char ch) toupper: scope:[toupper] from strupr::@2 - [240] if(toupper::ch#0<'a') goto toupper::@return + [238] if(toupper::ch#0<'a') goto toupper::@return to:toupper::@2 toupper::@2: scope:[toupper] from toupper - [241] if(toupper::ch#0<='z') goto toupper::@1 + [239] if(toupper::ch#0<='z') goto toupper::@1 to:toupper::@return toupper::@1: scope:[toupper] from toupper::@2 - [242] toupper::return#0 = toupper::ch#0 + 'A'-'a' + [240] toupper::return#0 = toupper::ch#0 + 'A'-'a' to:toupper::@return toupper::@return: scope:[toupper] from toupper toupper::@1 toupper::@2 - [243] toupper::return#2 = phi( toupper::@1/toupper::return#0, toupper/toupper::ch#0, toupper::@2/toupper::ch#0 ) - [244] return + [241] toupper::return#2 = phi( toupper::@1/toupper::return#0, toupper/toupper::ch#0, toupper::@2/toupper::ch#0 ) + [242] return to:@return VARIABLE REGISTER WEIGHTS __loadstore char *__snprintf_buffer // 9.022222222222222 -__loadstore volatile unsigned int __snprintf_capacity // 6.48936170212766 -__loadstore volatile unsigned int __snprintf_size // 11.021739130434781 +__loadstore volatile unsigned int __snprintf_capacity = 0 // 6.446808510638299 +__loadstore volatile unsigned int __snprintf_size = 0 // 10.978260869565217 void __start() void main() void print(char *msg) @@ -4714,9 +4710,9 @@ Initial phi equivalence classes [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] [ ultoa_append::digit#2 ultoa_append::digit#1 ] [ toupper::return#2 toupper::return#0 toupper::ch#0 ] -Added variable __snprintf_capacity to live range equivalence class [ __snprintf_capacity ] -Added variable __snprintf_size to live range equivalence class [ __snprintf_size ] Added variable __snprintf_buffer to live range equivalence class [ __snprintf_buffer ] +Added variable __snprintf_size to live range equivalence class [ __snprintf_size ] +Added variable __snprintf_capacity to live range equivalence class [ __snprintf_capacity ] Added variable printf_str::c#1 to live range equivalence class [ printf_str::c#1 ] Added variable utoa::$4 to live range equivalence class [ utoa::$4 ] Added variable utoa::$11 to live range equivalence class [ utoa::$11 ] @@ -4775,9 +4771,9 @@ Complete equivalence classes [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] [ ultoa_append::digit#2 ultoa_append::digit#1 ] [ toupper::return#2 toupper::return#0 toupper::ch#0 ] -[ __snprintf_capacity ] -[ __snprintf_size ] [ __snprintf_buffer ] +[ __snprintf_size ] +[ __snprintf_capacity ] [ printf_str::c#1 ] [ utoa::$4 ] [ utoa::$11 ] @@ -4855,117 +4851,115 @@ Allocated zp[1]:92 [ printf_number_buffer::format_min_length#3 ] Allocated zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ] Allocated zp[1]:94 [ printf_number_buffer::format_justify_left#10 ] Allocated zp[1]:95 [ printf_number_buffer::format_upper_case#10 ] -Allocated zp[2]:96 [ __snprintf_size ] -Allocated zp[2]:98 [ __snprintf_buffer ] -Allocated zp[2]:100 [ __snprintf_capacity ] +Allocated mem[2] [ __snprintf_size ] +Allocated zp[2]:96 [ __snprintf_buffer ] +Allocated mem[2] [ __snprintf_capacity ] Allocated mem[12] [ printf_buffer ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] __snprintf_capacity = 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [2] __snprintf_size = 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [3] __snprintf_buffer = (char *) 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] ( [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } ) always clobbers reg byte a reg byte x -Statement [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] ( [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } ) always clobbers reg byte a +Statement [1] __snprintf_buffer = (char *) 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a +Statement [5] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] ( [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:19 [ printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:29 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:33 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:49 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:61 [ screen#1 __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a reg byte x +Statement [7] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] ( [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:19 [ printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:29 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:33 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:49 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:61 [ screen#1 __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:89 [ snputc::c#2 snputc::c#0 ] -Statement [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] ( [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } ) always clobbers reg byte a -Statement [14] *__snprintf_buffer = snputc::c#2 [ __snprintf_capacity __snprintf_size __snprintf_buffer ] ( [ __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [20] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_buffer ] { } ) always clobbers reg byte a +Statement [9] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] ( [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:19 [ printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:29 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:33 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:49 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:61 [ screen#1 __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [12] *__snprintf_buffer = snputc::c#2 [ __snprintf_buffer __snprintf_size __snprintf_capacity ] ( [ __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:19 [ printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:29 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:33 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:49 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:61 [ screen#1 __snprintf_buffer __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a reg byte y +Statement [18] stackpush(char) = 0 [ __snprintf_buffer __snprintf_size __snprintf_capacity printf_buffer ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity printf_buffer ] { } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [30] stackpush(char) = '!' [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [28] stackpush(char) = '!' [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [34] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { screen#1 = screen#25 } } ) always clobbers reg byte a +Statement [32] stackpush(char) = 0 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { screen#1 = screen#25 } } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [50] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { screen#1 = screen#25 } } ) always clobbers reg byte a +Statement [48] stackpush(char) = 0 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { screen#1 = screen#25 } } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [62] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a +Statement [60] stackpush(char) = 0 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [67] __snprintf_capacity = $ffff [ __snprintf_capacity ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity ] { } main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity ] { } main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity ] { } main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity ] { } ) always clobbers reg byte a -Statement [68] __snprintf_size = 0 [ __snprintf_capacity __snprintf_size ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity __snprintf_size ] { } main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { } main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { } main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { } ) always clobbers reg byte a -Statement [69] __snprintf_buffer = BUF [ __snprintf_capacity __snprintf_size __snprintf_buffer ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } ) always clobbers reg byte a -Statement [73] printf_str::c#1 = *printf_str::s#11 [ printf_str::s#11 printf_str::c#1 printf_buffer ] ( main:5::printf_str:19 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:27 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:33 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:41 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:45 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:49 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:57 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:61 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_string:29::printf_str:89 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_sint:43::printf_number_buffer:95::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte y +Statement [65] __snprintf_capacity = $ffff [ __snprintf_capacity ] ( main:3::snprintf_init:15 [ printf_buffer __snprintf_capacity ] { } main:3::snprintf_init:23 [ screen#1 printf_buffer __snprintf_capacity ] { } main:3::snprintf_init:37 [ screen#1 printf_buffer __snprintf_capacity ] { } main:3::snprintf_init:53 [ screen#1 printf_buffer __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [66] __snprintf_size = 0 [ __snprintf_size __snprintf_capacity ] ( main:3::snprintf_init:15 [ printf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:23 [ screen#1 printf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:37 [ screen#1 printf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:53 [ screen#1 printf_buffer __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [67] __snprintf_buffer = BUF [ __snprintf_buffer __snprintf_size __snprintf_capacity ] ( main:3::snprintf_init:15 [ printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:23 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:37 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:53 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [71] printf_str::c#1 = *printf_str::s#11 [ printf_str::s#11 printf_str::c#1 printf_buffer ] ( main:3::printf_str:17 [ __snprintf_buffer __snprintf_size __snprintf_capacity printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:25 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:31 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:39 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:43 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:47 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:55 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:59 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_string:27::printf_str:87 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_sint:41::printf_number_buffer:93::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:94 [ printf_number_buffer::format_justify_left#10 ] Removing always clobbered register reg byte y as potential for zp[1]:94 [ printf_number_buffer::format_justify_left#10 ] Removing always clobbered register reg byte a as potential for zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ] Removing always clobbered register reg byte y as potential for zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ] Removing always clobbered register reg byte a as potential for zp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] Removing always clobbered register reg byte y as potential for zp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Statement [78] callexecute *printf_str::putc#12 [ printf_str::s#0 printf_buffer ] ( main:5::printf_str:19 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_str::s#0 printf_buffer ] { } main:5::printf_str:27 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:33 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:41 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:45 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:49 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:57 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:61 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_string:29::printf_str:89 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_sint:43::printf_number_buffer:95::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte x reg byte y +Statement [76] callexecute *printf_str::putc#12 [ printf_str::s#0 printf_buffer ] ( main:3::printf_str:17 [ __snprintf_buffer __snprintf_size __snprintf_capacity printf_str::s#0 printf_buffer ] { } main:3::printf_str:25 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:31 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:39 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:43 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:47 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:55 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:59 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_string:27::printf_str:87 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_sint:41::printf_number_buffer:93::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte x reg byte y Removing always clobbered register reg byte x as potential for zp[1]:94 [ printf_number_buffer::format_justify_left#10 ] Removing always clobbered register reg byte x as potential for zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ] Removing always clobbered register reg byte x as potential for zp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [82] if(0!=*print::msg#5) goto print::@2 [ screen#1 print::msg#5 ] ( main:5::print:23 [ printf_buffer screen#1 print::msg#5 ] { } main:5::print:37 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:5::print:53 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:5::print:65 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y -Statement [84] *screen#1 = *print::msg#5 [ screen#1 print::msg#5 ] ( main:5::print:23 [ printf_buffer screen#1 print::msg#5 ] { } main:5::print:37 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:5::print:53 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:5::print:65 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y -Statement [91] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_sint:43 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [98] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_uint:47 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [103] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_slong:59 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [124] *utoa::buffer#10 = DIGITS[utoa::$11] [ printf_buffer utoa::buffer#10 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#10 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#10 ] { } ) always clobbers reg byte a reg byte y -Statement [125] utoa::buffer#3 = ++ utoa::buffer#10 [ printf_buffer utoa::buffer#3 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#3 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a -Statement [126] *utoa::buffer#3 = 0 [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [127] utoa::$10 = utoa::digit#2 << 1 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { } ) always clobbers reg byte a +Statement [80] if(0!=*print::msg#5) goto print::@2 [ screen#1 print::msg#5 ] ( main:3::print:21 [ printf_buffer screen#1 print::msg#5 ] { } main:3::print:35 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:51 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:63 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y +Statement [82] *screen#1 = *print::msg#5 [ screen#1 print::msg#5 ] ( main:3::print:21 [ printf_buffer screen#1 print::msg#5 ] { } main:3::print:35 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:51 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:63 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y +Statement [89] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [96] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:3::printf_uint:45 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [101] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:3::printf_slong:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [112] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' [ printf_buffer ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [113] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' [ printf_buffer ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' [ printf_buffer ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 [ printf_buffer ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [122] *utoa::buffer#10 = DIGITS[utoa::$11] [ printf_buffer utoa::buffer#10 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#10 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#10 ] { } ) always clobbers reg byte a reg byte y +Statement [123] utoa::buffer#3 = ++ utoa::buffer#10 [ printf_buffer utoa::buffer#3 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#3 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a +Statement [124] *utoa::buffer#3 = 0 [ printf_buffer ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a reg byte y +Statement [125] utoa::$10 = utoa::digit#2 << 1 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:86 [ utoa::max_digits#7 ] Removing always clobbered register reg byte a as potential for zp[1]:43 [ utoa::digit#2 utoa::digit#1 ] Removing always clobbered register reg byte a as potential for zp[1]:55 [ utoa::started#2 utoa::started#4 ] -Statement [128] utoa::digit_value#0 = utoa::digit_values#8[utoa::$10] [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a reg byte y +Statement [126] utoa::digit_value#0 = utoa::digit_values#8[utoa::$10] [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:86 [ utoa::max_digits#7 ] Removing always clobbered register reg byte y as potential for zp[1]:43 [ utoa::digit#2 utoa::digit#1 ] Removing always clobbered register reg byte y as potential for zp[1]:55 [ utoa::started#2 utoa::started#4 ] -Statement [130] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [133] utoa_append::buffer#0 = utoa::buffer#10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [134] utoa_append::value#0 = utoa::value#3 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [135] utoa_append::sub#0 = utoa::digit_value#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [137] utoa_append::return#0 = utoa_append::value#2 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [138] utoa::value#0 = utoa_append::return#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } ) always clobbers reg byte a -Statement [144] strlen::return#2 = strlen::len#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a +Statement [128] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [131] utoa_append::buffer#0 = utoa::buffer#10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [132] utoa_append::value#0 = utoa::value#3 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [133] utoa_append::sub#0 = utoa::digit_value#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [135] utoa_append::return#0 = utoa_append::value#2 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [136] utoa::value#0 = utoa_append::return#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } ) always clobbers reg byte a +Statement [142] strlen::return#2 = strlen::len#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:92 [ printf_number_buffer::format_min_length#3 ] Removing always clobbered register reg byte a as potential for zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ] Removing always clobbered register reg byte a as potential for zp[1]:95 [ printf_number_buffer::format_upper_case#10 ] -Statement [145] printf_number_buffer::$19 = strlen::return#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [157] printf_padding::putc#0 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [161] stackpush(char) = printf_number_buffer::buffer_sign#10 [ ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [162] callexecute *printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte x reg byte y +Statement [143] printf_number_buffer::$19 = strlen::return#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [148] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [149] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [152] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [153] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [154] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [155] printf_padding::putc#0 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a +Statement [159] stackpush(char) = printf_number_buffer::buffer_sign#10 [ ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [160] callexecute *printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte x reg byte y Removing always clobbered register reg byte x as potential for zp[1]:95 [ printf_number_buffer::format_upper_case#10 ] Removing always clobbered register reg byte y as potential for zp[1]:95 [ printf_number_buffer::format_upper_case#10 ] Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [166] printf_padding::putc#1 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [172] printf_str::putc#0 = printf_number_buffer::putc#10 [ printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [177] printf_padding::putc#2 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [184] ultoa::$11 = (char)ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#11 ultoa::$11 ] { } ) always clobbers reg byte a -Statement [185] *ultoa::buffer#11 = DIGITS[ultoa::$11] [ printf_buffer ultoa::buffer#11 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y -Statement [186] ultoa::buffer#3 = ++ ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#3 ] { } ) always clobbers reg byte a -Statement [187] *ultoa::buffer#3 = 0 [ printf_buffer ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [189] ultoa::$10 = ultoa::digit#2 << 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { } ) always clobbers reg byte a +Statement [162] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [163] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [164] printf_padding::putc#1 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a +Statement [167] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [170] printf_str::putc#0 = printf_number_buffer::putc#10 [ printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a +Statement [172] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [173] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [174] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [175] printf_padding::putc#2 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a +Statement [182] ultoa::$11 = (char)ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::buffer#11 ultoa::$11 ] { } ) always clobbers reg byte a +Statement [183] *ultoa::buffer#11 = DIGITS[ultoa::$11] [ printf_buffer ultoa::buffer#11 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y +Statement [184] ultoa::buffer#3 = ++ ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::buffer#3 ] { } ) always clobbers reg byte a +Statement [185] *ultoa::buffer#3 = 0 [ printf_buffer ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a reg byte y +Statement [187] ultoa::$10 = ultoa::digit#2 << 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ] Removing always clobbered register reg byte a as potential for zp[1]:54 [ ultoa::started#2 ultoa::started#4 ] -Statement [190] ultoa::digit_value#0 = RADIX_DECIMAL_VALUES_LONG[ultoa::$10] [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [192] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [195] ultoa_append::buffer#0 = ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [196] ultoa_append::value#0 = ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [197] ultoa_append::sub#0 = ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [199] ultoa_append::return#0 = ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [200] ultoa::value#0 = ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { } ) always clobbers reg byte a -Statement [204] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [188] ultoa::digit_value#0 = RADIX_DECIMAL_VALUES_LONG[ultoa::$10] [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [190] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [193] ultoa_append::buffer#0 = ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [194] ultoa_append::value#0 = ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [195] ultoa_append::sub#0 = ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [197] ultoa_append::return#0 = ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [198] ultoa::value#0 = ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { } ) always clobbers reg byte a +Statement [202] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:3::printf_sint:41::utoa:91::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:8 [ utoa_append::digit#2 utoa_append::digit#1 ] -Statement [205] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Statement [208] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [211] if(0!=*strlen::str#3) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#3 ] ( main:5::printf_sint:43::printf_number_buffer:95::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:47::printf_number_buffer:101::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } } main:5::printf_slong:59::printf_number_buffer:107::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y +Statement [203] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:3::printf_sint:41::utoa:91::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [206] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:3::printf_sint:41::utoa:91::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [209] if(0!=*strlen::str#3) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#3 ] ( main:3::printf_sint:41::printf_number_buffer:93::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_uint:45::printf_number_buffer:99::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } } main:3::printf_slong:57::printf_number_buffer:105::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:92 [ printf_number_buffer::format_min_length#3 ] Removing always clobbered register reg byte y as potential for zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ] -Statement [220] callexecute *printf_padding::putc#7 [ printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] ( main:5::printf_sint:43::printf_number_buffer:95::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107::printf_padding:159 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:43::printf_number_buffer:95::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107::printf_padding:168 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_sint:43::printf_number_buffer:95::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107::printf_padding:179 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte x reg byte y +Statement [218] callexecute *printf_padding::putc#7 [ printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] ( main:3::printf_sint:41::printf_number_buffer:93::printf_padding:157 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99::printf_padding:157 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105::printf_padding:157 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_sint:41::printf_number_buffer:93::printf_padding:166 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99::printf_padding:166 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105::printf_padding:166 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_sint:41::printf_number_buffer:93::printf_padding:177 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99::printf_padding:177 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105::printf_padding:177 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte x reg byte y Removing always clobbered register reg byte x as potential for zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ] Removing always clobbered register reg byte a as potential for zp[1]:41 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] Removing always clobbered register reg byte x as potential for zp[1]:41 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] @@ -4977,212 +4971,208 @@ Removing always clobbered register reg byte a as potential for zp[1]:19 [ printf Removing always clobbered register reg byte x as potential for zp[1]:19 [ printf_padding::i#2 printf_padding::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:19 [ printf_padding::i#2 printf_padding::i#1 ] Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [225] if(0!=*strupr::src#2) goto strupr::@2 [ strupr::src#2 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte y -Statement [227] toupper::ch#0 = *strupr::src#2 [ strupr::src#2 toupper::ch#0 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:5::printf_uint:47::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { toupper::return#2 = toupper::return#3 } } main:5::printf_slong:59::printf_number_buffer:107::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a reg byte y -Statement [231] *strupr::src#2 = strupr::$0 [ strupr::src#2 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107::strupr:171 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte y -Statement [235] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [223] if(0!=*strupr::src#2) goto strupr::@2 [ strupr::src#2 ] ( main:3::printf_sint:41::printf_number_buffer:93::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte y +Statement [225] toupper::ch#0 = *strupr::src#2 [ strupr::src#2 toupper::ch#0 ] ( main:3::printf_sint:41::printf_number_buffer:93::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:3::printf_uint:45::printf_number_buffer:99::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { toupper::return#2 = toupper::return#3 } } main:3::printf_slong:57::printf_number_buffer:105::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a reg byte y +Statement [229] *strupr::src#2 = strupr::$0 [ strupr::src#2 ] ( main:3::printf_sint:41::printf_number_buffer:93::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte y +Statement [233] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:3::printf_slong:57::ultoa:103::ultoa_append:196 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:9 [ ultoa_append::digit#2 ultoa_append::digit#1 ] -Statement [236] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] [ ultoa_append::value#2 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [234] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] [ ultoa_append::value#2 ] ( main:3::printf_slong:57::ultoa:103::ultoa_append:196 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ] -Statement [239] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [242] toupper::return#0 = toupper::ch#0 + 'A'-'a' [ toupper::return#0 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:5::printf_uint:47::printf_number_buffer:101::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { toupper::return#2 = toupper::return#3 } } main:5::printf_slong:59::printf_number_buffer:107::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a -Statement [1] __snprintf_capacity = 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [2] __snprintf_size = 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [3] __snprintf_buffer = (char *) 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] ( [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } ) always clobbers reg byte a reg byte x -Statement [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] ( [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } ) always clobbers reg byte a -Statement [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] ( [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } ) always clobbers reg byte a -Statement [14] *__snprintf_buffer = snputc::c#2 [ __snprintf_capacity __snprintf_size __snprintf_buffer ] ( [ __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [20] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_buffer ] { } ) always clobbers reg byte a +Statement [237] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:3::printf_slong:57::ultoa:103::ultoa_append:196 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [240] toupper::return#0 = toupper::ch#0 + 'A'-'a' [ toupper::return#0 ] ( main:3::printf_sint:41::printf_number_buffer:93::strupr:169::toupper:226 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:3::printf_uint:45::printf_number_buffer:99::strupr:169::toupper:226 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { toupper::return#2 = toupper::return#3 } } main:3::printf_slong:57::printf_number_buffer:105::strupr:169::toupper:226 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a +Statement [1] __snprintf_buffer = (char *) 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a +Statement [5] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] ( [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:19 [ printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:29 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:33 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:49 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:61 [ screen#1 __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a reg byte x +Statement [7] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] ( [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:19 [ printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:29 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:33 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:49 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:61 [ screen#1 __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [9] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] ( [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:19 [ printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:29 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:33 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:49 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:61 [ screen#1 __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [12] *__snprintf_buffer = snputc::c#2 [ __snprintf_buffer __snprintf_size __snprintf_capacity ] ( [ __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:19 [ printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:29 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:33 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:49 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:61 [ screen#1 __snprintf_buffer __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a reg byte y +Statement [18] stackpush(char) = 0 [ __snprintf_buffer __snprintf_size __snprintf_capacity printf_buffer ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity printf_buffer ] { } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [30] stackpush(char) = '!' [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [28] stackpush(char) = '!' [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [34] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { screen#1 = screen#25 } } ) always clobbers reg byte a +Statement [32] stackpush(char) = 0 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { screen#1 = screen#25 } } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [50] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { screen#1 = screen#25 } } ) always clobbers reg byte a +Statement [48] stackpush(char) = 0 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { screen#1 = screen#25 } } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [62] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a +Statement [60] stackpush(char) = 0 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [67] __snprintf_capacity = $ffff [ __snprintf_capacity ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity ] { } main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity ] { } main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity ] { } main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity ] { } ) always clobbers reg byte a -Statement [68] __snprintf_size = 0 [ __snprintf_capacity __snprintf_size ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity __snprintf_size ] { } main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { } main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { } main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { } ) always clobbers reg byte a -Statement [69] __snprintf_buffer = BUF [ __snprintf_capacity __snprintf_size __snprintf_buffer ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } ) always clobbers reg byte a -Statement [73] printf_str::c#1 = *printf_str::s#11 [ printf_str::s#11 printf_str::c#1 printf_buffer ] ( main:5::printf_str:19 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:27 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:33 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:41 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:45 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:49 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:57 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:61 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_string:29::printf_str:89 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_sint:43::printf_number_buffer:95::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte y -Statement [78] callexecute *printf_str::putc#12 [ printf_str::s#0 printf_buffer ] ( main:5::printf_str:19 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_str::s#0 printf_buffer ] { } main:5::printf_str:27 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:33 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:41 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:45 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:49 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:57 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:61 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_string:29::printf_str:89 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_sint:43::printf_number_buffer:95::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte x reg byte y +Statement [65] __snprintf_capacity = $ffff [ __snprintf_capacity ] ( main:3::snprintf_init:15 [ printf_buffer __snprintf_capacity ] { } main:3::snprintf_init:23 [ screen#1 printf_buffer __snprintf_capacity ] { } main:3::snprintf_init:37 [ screen#1 printf_buffer __snprintf_capacity ] { } main:3::snprintf_init:53 [ screen#1 printf_buffer __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [66] __snprintf_size = 0 [ __snprintf_size __snprintf_capacity ] ( main:3::snprintf_init:15 [ printf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:23 [ screen#1 printf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:37 [ screen#1 printf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:53 [ screen#1 printf_buffer __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [67] __snprintf_buffer = BUF [ __snprintf_buffer __snprintf_size __snprintf_capacity ] ( main:3::snprintf_init:15 [ printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:23 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:37 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:53 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [71] printf_str::c#1 = *printf_str::s#11 [ printf_str::s#11 printf_str::c#1 printf_buffer ] ( main:3::printf_str:17 [ __snprintf_buffer __snprintf_size __snprintf_capacity printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:25 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:31 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:39 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:43 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:47 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:55 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:59 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_string:27::printf_str:87 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_sint:41::printf_number_buffer:93::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte y +Statement [76] callexecute *printf_str::putc#12 [ printf_str::s#0 printf_buffer ] ( main:3::printf_str:17 [ __snprintf_buffer __snprintf_size __snprintf_capacity printf_str::s#0 printf_buffer ] { } main:3::printf_str:25 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:31 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:39 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:43 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:47 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:55 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:59 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_string:27::printf_str:87 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_sint:41::printf_number_buffer:93::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte x reg byte y Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [82] if(0!=*print::msg#5) goto print::@2 [ screen#1 print::msg#5 ] ( main:5::print:23 [ printf_buffer screen#1 print::msg#5 ] { } main:5::print:37 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:5::print:53 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:5::print:65 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y -Statement [84] *screen#1 = *print::msg#5 [ screen#1 print::msg#5 ] ( main:5::print:23 [ printf_buffer screen#1 print::msg#5 ] { } main:5::print:37 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:5::print:53 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:5::print:65 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y -Statement [91] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_sint:43 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [94] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#1 ] ( main:5::printf_sint:43 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::buffer_sign#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [98] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_uint:47 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [100] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#2 ] ( main:5::printf_uint:47 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::buffer_sign#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } ) always clobbers reg byte a -Statement [103] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_slong:59 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [106] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#0 ] ( main:5::printf_slong:59 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::buffer_sign#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [124] *utoa::buffer#10 = DIGITS[utoa::$11] [ printf_buffer utoa::buffer#10 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#10 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#10 ] { } ) always clobbers reg byte a reg byte y -Statement [125] utoa::buffer#3 = ++ utoa::buffer#10 [ printf_buffer utoa::buffer#3 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#3 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a -Statement [126] *utoa::buffer#3 = 0 [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [127] utoa::$10 = utoa::digit#2 << 1 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { } ) always clobbers reg byte a -Statement [128] utoa::digit_value#0 = utoa::digit_values#8[utoa::$10] [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a reg byte y -Statement [130] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [133] utoa_append::buffer#0 = utoa::buffer#10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [134] utoa_append::value#0 = utoa::value#3 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [135] utoa_append::sub#0 = utoa::digit_value#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [137] utoa_append::return#0 = utoa_append::value#2 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [138] utoa::value#0 = utoa_append::return#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } ) always clobbers reg byte a -Statement [144] strlen::return#2 = strlen::len#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a -Statement [145] printf_number_buffer::$19 = strlen::return#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [80] if(0!=*print::msg#5) goto print::@2 [ screen#1 print::msg#5 ] ( main:3::print:21 [ printf_buffer screen#1 print::msg#5 ] { } main:3::print:35 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:51 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:63 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y +Statement [82] *screen#1 = *print::msg#5 [ screen#1 print::msg#5 ] ( main:3::print:21 [ printf_buffer screen#1 print::msg#5 ] { } main:3::print:35 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:51 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:63 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y +Statement [89] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [92] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#1 ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::buffer_sign#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [96] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:3::printf_uint:45 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [98] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#2 ] ( main:3::printf_uint:45 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::buffer_sign#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } ) always clobbers reg byte a +Statement [101] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:3::printf_slong:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [104] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#0 ] ( main:3::printf_slong:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::buffer_sign#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [112] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' [ printf_buffer ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [113] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' [ printf_buffer ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' [ printf_buffer ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 [ printf_buffer ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [122] *utoa::buffer#10 = DIGITS[utoa::$11] [ printf_buffer utoa::buffer#10 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#10 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#10 ] { } ) always clobbers reg byte a reg byte y +Statement [123] utoa::buffer#3 = ++ utoa::buffer#10 [ printf_buffer utoa::buffer#3 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#3 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a +Statement [124] *utoa::buffer#3 = 0 [ printf_buffer ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a reg byte y +Statement [125] utoa::$10 = utoa::digit#2 << 1 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { } ) always clobbers reg byte a +Statement [126] utoa::digit_value#0 = utoa::digit_values#8[utoa::$10] [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a reg byte y +Statement [128] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [131] utoa_append::buffer#0 = utoa::buffer#10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [132] utoa_append::value#0 = utoa::value#3 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [133] utoa_append::sub#0 = utoa::digit_value#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [135] utoa_append::return#0 = utoa_append::value#2 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [136] utoa::value#0 = utoa_append::return#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } ) always clobbers reg byte a +Statement [142] strlen::return#2 = strlen::len#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a +Statement [143] printf_number_buffer::$19 = strlen::return#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [145] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:62 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] -Statement [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [157] printf_padding::putc#0 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [161] stackpush(char) = printf_number_buffer::buffer_sign#10 [ ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [162] callexecute *printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte x reg byte y +Statement [148] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [149] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [152] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [153] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [154] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [155] printf_padding::putc#0 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a +Statement [156] printf_padding::length#0 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a +Statement [158] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [159] stackpush(char) = printf_number_buffer::buffer_sign#10 [ ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [160] callexecute *printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte x reg byte y Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [166] printf_padding::putc#1 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [172] printf_str::putc#0 = printf_number_buffer::putc#10 [ printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [177] printf_padding::putc#2 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_padding::putc#2 printf_padding::length#2 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [184] ultoa::$11 = (char)ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#11 ultoa::$11 ] { } ) always clobbers reg byte a -Statement [185] *ultoa::buffer#11 = DIGITS[ultoa::$11] [ printf_buffer ultoa::buffer#11 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y -Statement [186] ultoa::buffer#3 = ++ ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#3 ] { } ) always clobbers reg byte a -Statement [187] *ultoa::buffer#3 = 0 [ printf_buffer ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [189] ultoa::$10 = ultoa::digit#2 << 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { } ) always clobbers reg byte a -Statement [190] ultoa::digit_value#0 = RADIX_DECIMAL_VALUES_LONG[ultoa::$10] [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [192] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [195] ultoa_append::buffer#0 = ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [196] ultoa_append::value#0 = ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [197] ultoa_append::sub#0 = ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [199] ultoa_append::return#0 = ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [200] ultoa::value#0 = ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { } ) always clobbers reg byte a -Statement [204] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [205] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Statement [208] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [211] if(0!=*strlen::str#3) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#3 ] ( main:5::printf_sint:43::printf_number_buffer:95::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:47::printf_number_buffer:101::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } } main:5::printf_slong:59::printf_number_buffer:107::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y -Statement [217] if(printf_padding::i#2=ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [193] ultoa_append::buffer#0 = ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [194] ultoa_append::value#0 = ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [195] ultoa_append::sub#0 = ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [197] ultoa_append::return#0 = ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [198] ultoa::value#0 = ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { } ) always clobbers reg byte a +Statement [202] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:3::printf_sint:41::utoa:91::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [203] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:3::printf_sint:41::utoa:91::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [206] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:3::printf_sint:41::utoa:91::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [209] if(0!=*strlen::str#3) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#3 ] ( main:3::printf_sint:41::printf_number_buffer:93::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_uint:45::printf_number_buffer:99::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } } main:3::printf_slong:57::printf_number_buffer:105::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y +Statement [215] if(printf_padding::i#2=ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [236] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] [ ultoa_append::value#2 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Statement [239] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [242] toupper::return#0 = toupper::ch#0 + 'A'-'a' [ toupper::return#0 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:5::printf_uint:47::printf_number_buffer:101::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { toupper::return#2 = toupper::return#3 } } main:5::printf_slong:59::printf_number_buffer:107::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a -Statement [1] __snprintf_capacity = 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [2] __snprintf_size = 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [3] __snprintf_buffer = (char *) 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] ( [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } ) always clobbers reg byte a reg byte x -Statement [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] ( [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } ) always clobbers reg byte a -Statement [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] ( [ __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer snputc::c#0 ] { } ) always clobbers reg byte a -Statement [14] *__snprintf_buffer = snputc::c#2 [ __snprintf_capacity __snprintf_size __snprintf_buffer ] ( [ __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:21 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:31 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:35 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:51 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snputc:63 [ screen#1 __snprintf_capacity __snprintf_size __snprintf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [20] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_buffer ] { } ) always clobbers reg byte a +Statement [223] if(0!=*strupr::src#2) goto strupr::@2 [ strupr::src#2 ] ( main:3::printf_sint:41::printf_number_buffer:93::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte y +Statement [225] toupper::ch#0 = *strupr::src#2 [ strupr::src#2 toupper::ch#0 ] ( main:3::printf_sint:41::printf_number_buffer:93::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:3::printf_uint:45::printf_number_buffer:99::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { toupper::return#2 = toupper::return#3 } } main:3::printf_slong:57::printf_number_buffer:105::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a reg byte y +Statement [229] *strupr::src#2 = strupr::$0 [ strupr::src#2 ] ( main:3::printf_sint:41::printf_number_buffer:93::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte y +Statement [233] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:3::printf_slong:57::ultoa:103::ultoa_append:196 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [234] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] [ ultoa_append::value#2 ] ( main:3::printf_slong:57::ultoa:103::ultoa_append:196 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [237] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:3::printf_slong:57::ultoa:103::ultoa_append:196 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [240] toupper::return#0 = toupper::ch#0 + 'A'-'a' [ toupper::return#0 ] ( main:3::printf_sint:41::printf_number_buffer:93::strupr:169::toupper:226 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:3::printf_uint:45::printf_number_buffer:99::strupr:169::toupper:226 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { toupper::return#2 = toupper::return#3 } } main:3::printf_slong:57::printf_number_buffer:105::strupr:169::toupper:226 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a +Statement [1] __snprintf_buffer = (char *) 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a +Statement [5] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] ( [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:19 [ printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:29 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:33 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:49 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:61 [ screen#1 __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a reg byte x +Statement [7] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] ( [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:19 [ printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:29 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:33 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:49 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:61 [ screen#1 __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [9] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] ( [ __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:19 [ printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:29 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:33 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:49 [ screen#1 printf_buffer __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } main:3::snputc:61 [ screen#1 __snprintf_buffer snputc::c#0 __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [12] *__snprintf_buffer = snputc::c#2 [ __snprintf_buffer __snprintf_size __snprintf_capacity ] ( [ __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:19 [ printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:29 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:33 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:49 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snputc:61 [ screen#1 __snprintf_buffer __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a reg byte y +Statement [18] stackpush(char) = 0 [ __snprintf_buffer __snprintf_size __snprintf_capacity printf_buffer ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity printf_buffer ] { } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [30] stackpush(char) = '!' [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [28] stackpush(char) = '!' [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [34] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { screen#1 = screen#25 } } ) always clobbers reg byte a +Statement [32] stackpush(char) = 0 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { screen#1 = screen#25 } } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [50] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { { screen#1 = screen#25 } } ) always clobbers reg byte a +Statement [48] stackpush(char) = 0 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { { screen#1 = screen#25 } } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [62] stackpush(char) = 0 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] ( main:5 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a +Statement [60] stackpush(char) = 0 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] ( main:3 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [67] __snprintf_capacity = $ffff [ __snprintf_capacity ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity ] { } main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity ] { } main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity ] { } main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity ] { } ) always clobbers reg byte a -Statement [68] __snprintf_size = 0 [ __snprintf_capacity __snprintf_size ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity __snprintf_size ] { } main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { } main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { } main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size ] { } ) always clobbers reg byte a -Statement [69] __snprintf_buffer = BUF [ __snprintf_capacity __snprintf_size __snprintf_buffer ] ( main:5::snprintf_init:17 [ printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snprintf_init:25 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snprintf_init:39 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } main:5::snprintf_init:55 [ screen#1 printf_buffer __snprintf_capacity __snprintf_size __snprintf_buffer ] { } ) always clobbers reg byte a -Statement [73] printf_str::c#1 = *printf_str::s#11 [ printf_str::s#11 printf_str::c#1 printf_buffer ] ( main:5::printf_str:19 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:27 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:33 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:41 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:45 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:49 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:57 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_str:61 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_string:29::printf_str:89 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:5::printf_sint:43::printf_number_buffer:95::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte y -Statement [78] callexecute *printf_str::putc#12 [ printf_str::s#0 printf_buffer ] ( main:5::printf_str:19 [ __snprintf_capacity __snprintf_size __snprintf_buffer printf_str::s#0 printf_buffer ] { } main:5::printf_str:27 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:33 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:41 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:45 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:49 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:57 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_str:61 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_string:29::printf_str:89 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::s#0 printf_buffer ] { } main:5::printf_sint:43::printf_number_buffer:95::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107::printf_str:173 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte x reg byte y +Statement [65] __snprintf_capacity = $ffff [ __snprintf_capacity ] ( main:3::snprintf_init:15 [ printf_buffer __snprintf_capacity ] { } main:3::snprintf_init:23 [ screen#1 printf_buffer __snprintf_capacity ] { } main:3::snprintf_init:37 [ screen#1 printf_buffer __snprintf_capacity ] { } main:3::snprintf_init:53 [ screen#1 printf_buffer __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [66] __snprintf_size = 0 [ __snprintf_size __snprintf_capacity ] ( main:3::snprintf_init:15 [ printf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:23 [ screen#1 printf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:37 [ screen#1 printf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:53 [ screen#1 printf_buffer __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [67] __snprintf_buffer = BUF [ __snprintf_buffer __snprintf_size __snprintf_capacity ] ( main:3::snprintf_init:15 [ printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:23 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:37 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } main:3::snprintf_init:53 [ screen#1 printf_buffer __snprintf_buffer __snprintf_size __snprintf_capacity ] { } ) always clobbers reg byte a +Statement [71] printf_str::c#1 = *printf_str::s#11 [ printf_str::s#11 printf_str::c#1 printf_buffer ] ( main:3::printf_str:17 [ __snprintf_buffer __snprintf_size __snprintf_capacity printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:25 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:31 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:39 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:43 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:47 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:55 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_str:59 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_string:27::printf_str:87 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#11 printf_str::c#1 printf_buffer ] { } main:3::printf_sint:41::printf_number_buffer:93::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#11 printf_str::c#1 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte y +Statement [76] callexecute *printf_str::putc#12 [ printf_str::s#0 printf_buffer ] ( main:3::printf_str:17 [ __snprintf_buffer __snprintf_size __snprintf_capacity printf_str::s#0 printf_buffer ] { } main:3::printf_str:25 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:31 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:39 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:43 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:47 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:55 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_str:59 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_string:27::printf_str:87 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_str::s#0 printf_buffer ] { } main:3::printf_sint:41::printf_number_buffer:93::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105::printf_str:171 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 printf_str::s#0 printf_buffer ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a reg byte x reg byte y Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [82] if(0!=*print::msg#5) goto print::@2 [ screen#1 print::msg#5 ] ( main:5::print:23 [ printf_buffer screen#1 print::msg#5 ] { } main:5::print:37 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:5::print:53 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:5::print:65 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y -Statement [84] *screen#1 = *print::msg#5 [ screen#1 print::msg#5 ] ( main:5::print:23 [ printf_buffer screen#1 print::msg#5 ] { } main:5::print:37 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:5::print:53 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:5::print:65 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y -Statement [91] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_sint:43 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [94] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#1 ] ( main:5::printf_sint:43 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::buffer_sign#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [98] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_uint:47 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [100] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#2 ] ( main:5::printf_uint:47 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::buffer_sign#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } ) always clobbers reg byte a -Statement [103] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:5::printf_slong:59 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [106] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#0 ] ( main:5::printf_slong:59 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::buffer_sign#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [124] *utoa::buffer#10 = DIGITS[utoa::$11] [ printf_buffer utoa::buffer#10 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#10 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#10 ] { } ) always clobbers reg byte a reg byte y -Statement [125] utoa::buffer#3 = ++ utoa::buffer#10 [ printf_buffer utoa::buffer#3 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#3 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a -Statement [126] *utoa::buffer#3 = 0 [ printf_buffer ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [127] utoa::$10 = utoa::digit#2 << 1 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { } ) always clobbers reg byte a -Statement [128] utoa::digit_value#0 = utoa::digit_values#8[utoa::$10] [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a reg byte y -Statement [130] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [133] utoa_append::buffer#0 = utoa::buffer#10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [134] utoa_append::value#0 = utoa::value#3 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [135] utoa_append::sub#0 = utoa::digit_value#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [137] utoa_append::return#0 = utoa_append::value#2 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [138] utoa::value#0 = utoa_append::return#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:5::printf_sint:43::utoa:93 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } main:5::printf_uint:47::utoa:99 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } ) always clobbers reg byte a -Statement [144] strlen::return#2 = strlen::len#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a -Statement [145] printf_number_buffer::$19 = strlen::return#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [157] printf_padding::putc#0 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [161] stackpush(char) = printf_number_buffer::buffer_sign#10 [ ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [162] callexecute *printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte x reg byte y +Statement [80] if(0!=*print::msg#5) goto print::@2 [ screen#1 print::msg#5 ] ( main:3::print:21 [ printf_buffer screen#1 print::msg#5 ] { } main:3::print:35 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:51 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:63 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y +Statement [82] *screen#1 = *print::msg#5 [ screen#1 print::msg#5 ] ( main:3::print:21 [ printf_buffer screen#1 print::msg#5 ] { } main:3::print:35 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:51 [ printf_buffer screen#1 print::msg#5 ] { { screen#1 = screen#25 } } main:3::print:63 [ screen#1 print::msg#5 ] { { screen#1 = screen#25 } } ) always clobbers reg byte a reg byte y +Statement [89] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [92] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#1 ] ( main:3::printf_sint:41 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::buffer_sign#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [96] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:3::printf_uint:45 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [98] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#2 ] ( main:3::printf_uint:45 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::buffer_sign#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } ) always clobbers reg byte a +Statement [101] *((char *)&printf_buffer) = 0 [ printf_buffer ] ( main:3::printf_slong:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [104] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) [ printf_buffer printf_number_buffer::buffer_sign#0 ] ( main:3::printf_slong:57 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::buffer_sign#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [112] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' [ printf_buffer ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [113] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' [ printf_buffer ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' [ printf_buffer ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 [ printf_buffer ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [122] *utoa::buffer#10 = DIGITS[utoa::$11] [ printf_buffer utoa::buffer#10 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#10 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#10 ] { } ) always clobbers reg byte a reg byte y +Statement [123] utoa::buffer#3 = ++ utoa::buffer#10 [ printf_buffer utoa::buffer#3 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#3 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a +Statement [124] *utoa::buffer#3 = 0 [ printf_buffer ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ] { } ) always clobbers reg byte a reg byte y +Statement [125] utoa::$10 = utoa::digit#2 << 1 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { } ) always clobbers reg byte a +Statement [126] utoa::digit_value#0 = utoa::digit_values#8[utoa::$10] [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a reg byte y +Statement [128] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [131] utoa_append::buffer#0 = utoa::buffer#10 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [132] utoa_append::value#0 = utoa::value#3 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [133] utoa_append::sub#0 = utoa::digit_value#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [135] utoa_append::return#0 = utoa_append::value#2 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [136] utoa::value#0 = utoa_append::return#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:3::printf_sint:41::utoa:91 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } main:3::printf_uint:45::utoa:97 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } ) always clobbers reg byte a +Statement [142] strlen::return#2 = strlen::len#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a +Statement [143] printf_number_buffer::$19 = strlen::return#2 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [145] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 [ printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [148] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [149] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [152] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [153] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [154] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [155] printf_padding::putc#0 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a +Statement [156] printf_padding::length#0 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#0 printf_padding::length#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_padding::putc#0 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a +Statement [158] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [159] stackpush(char) = printf_number_buffer::buffer_sign#10 [ ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [160] callexecute *printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:3::printf_sint:41::printf_number_buffer:93 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte x reg byte y Statement sideeffect stackpullpadding(1) always clobbers reg byte a -Statement [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [166] printf_padding::putc#1 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::putc#1 printf_padding::length#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_padding::putc#1 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [172] printf_str::putc#0 = printf_number_buffer::putc#10 [ printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_str::putc#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::putc#0 = printf_str::putc#12 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 [ printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::putc#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [177] printf_padding::putc#2 = printf_number_buffer::putc#10 [ printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::padding#10 printf_padding::putc#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10 [ printf_buffer printf_padding::putc#2 printf_padding::length#2 ] ( main:5::printf_sint:43::printf_number_buffer:95 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_uint:47::printf_number_buffer:101 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } main:5::printf_slong:59::printf_number_buffer:107 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_padding::putc#2 printf_padding::length#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_padding::putc#2 = printf_padding::putc#7 printf_number_buffer::putc#10 } } ) always clobbers reg byte a -Statement [184] ultoa::$11 = (char)ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#11 ultoa::$11 ] { } ) always clobbers reg byte a -Statement [185] *ultoa::buffer#11 = DIGITS[ultoa::$11] [ printf_buffer ultoa::buffer#11 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y -Statement [186] ultoa::buffer#3 = ++ ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::buffer#3 ] { } ) always clobbers reg byte a -Statement [187] *ultoa::buffer#3 = 0 [ printf_buffer ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [189] ultoa::$10 = ultoa::digit#2 << 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { } ) always clobbers reg byte a -Statement [190] ultoa::digit_value#0 = RADIX_DECIMAL_VALUES_LONG[ultoa::$10] [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [192] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [195] ultoa_append::buffer#0 = ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [196] ultoa_append::value#0 = ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [197] ultoa_append::sub#0 = ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [199] ultoa_append::return#0 = ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [200] ultoa::value#0 = ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:5::printf_slong:59::ultoa:105 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { } ) always clobbers reg byte a -Statement [204] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [205] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Statement [208] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:5::printf_sint:43::utoa:93::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:5::printf_uint:47::utoa:99::utoa_append:136 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [211] if(0!=*strlen::str#3) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#3 ] ( main:5::printf_sint:43::printf_number_buffer:95::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:47::printf_number_buffer:101::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } } main:5::printf_slong:59::printf_number_buffer:107::strlen:143 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y -Statement [217] if(printf_padding::i#2=ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [193] ultoa_append::buffer#0 = ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [194] ultoa_append::value#0 = ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [195] ultoa_append::sub#0 = ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [197] ultoa_append::return#0 = ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [198] ultoa::value#0 = ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:3::printf_slong:57::ultoa:103 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { } ) always clobbers reg byte a +Statement [202] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:3::printf_sint:41::utoa:91::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [203] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:3::printf_sint:41::utoa:91::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [206] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:3::printf_sint:41::utoa:91::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:3::printf_uint:45::utoa:97::utoa_append:134 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [209] if(0!=*strlen::str#3) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#3 ] ( main:3::printf_sint:41::printf_number_buffer:93::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:3::printf_uint:45::printf_number_buffer:99::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } } main:3::printf_slong:57::printf_number_buffer:105::strlen:141 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::putc#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#3 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y +Statement [215] if(printf_padding::i#2=ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [236] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] [ ultoa_append::value#2 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Statement [239] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:5::printf_slong:59::ultoa:105::ultoa_append:198 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [242] toupper::return#0 = toupper::ch#0 + 'A'-'a' [ toupper::return#0 ] ( main:5::printf_sint:43::printf_number_buffer:95::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:5::printf_uint:47::printf_number_buffer:101::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { toupper::return#2 = toupper::return#3 } } main:5::printf_slong:59::printf_number_buffer:107::strupr:171::toupper:228 [ __snprintf_capacity __snprintf_size __snprintf_buffer screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a +Statement [223] if(0!=*strupr::src#2) goto strupr::@2 [ strupr::src#2 ] ( main:3::printf_sint:41::printf_number_buffer:93::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte y +Statement [225] toupper::ch#0 = *strupr::src#2 [ strupr::src#2 toupper::ch#0 ] ( main:3::printf_sint:41::printf_number_buffer:93::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:3::printf_uint:45::printf_number_buffer:99::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { toupper::return#2 = toupper::return#3 } } main:3::printf_slong:57::printf_number_buffer:105::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a reg byte y +Statement [229] *strupr::src#2 = strupr::$0 [ strupr::src#2 ] ( main:3::printf_sint:41::printf_number_buffer:93::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:3::printf_uint:45::printf_number_buffer:99::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:3::printf_slong:57::printf_number_buffer:105::strupr:169 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte y +Statement [233] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:3::printf_slong:57::ultoa:103::ultoa_append:196 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [234] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] [ ultoa_append::value#2 ] ( main:3::printf_slong:57::ultoa:103::ultoa_append:196 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [237] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:3::printf_slong:57::ultoa:103::ultoa_append:196 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [240] toupper::return#0 = toupper::ch#0 + 'A'-'a' [ toupper::return#0 ] ( main:3::printf_sint:41::printf_number_buffer:93::strupr:169::toupper:226 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:3::printf_uint:45::printf_number_buffer:99::strupr:169::toupper:226 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { toupper::return#2 = toupper::return#3 } } main:3::printf_slong:57::printf_number_buffer:105::strupr:169::toupper:226 [ __snprintf_buffer __snprintf_size __snprintf_capacity screen#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::putc#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a Potential registers zp[1]:89 [ snputc::c#2 snputc::c#0 ] : zp[1]:89 , reg byte x , reg byte y , Potential registers zp[2]:60 [ printf_str::putc#12 printf_str::putc#0 ] : zp[2]:60 , Potential registers zp[2]:22 [ printf_str::s#11 printf_str::s#12 printf_str::s#0 ] : zp[2]:22 , @@ -5219,9 +5209,9 @@ Potential registers zp[2]:20 [ strupr::src#2 strupr::src#1 ] : zp[2]:20 , Potential registers zp[4]:4 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] : zp[4]:4 , Potential registers zp[1]:9 [ ultoa_append::digit#2 ultoa_append::digit#1 ] : zp[1]:9 , reg byte x , reg byte y , Potential registers zp[1]:10 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] : zp[1]:10 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:100 [ __snprintf_capacity ] : zp[2]:100 , -Potential registers zp[2]:96 [ __snprintf_size ] : zp[2]:96 , -Potential registers zp[2]:98 [ __snprintf_buffer ] : zp[2]:98 , +Potential registers zp[2]:96 [ __snprintf_buffer ] : zp[2]:96 , +Potential registers mem[2] [ __snprintf_size ] : mem[2] , +Potential registers mem[2] [ __snprintf_capacity ] : mem[2] , Potential registers zp[1]:28 [ printf_str::c#1 ] : zp[1]:28 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:44 [ utoa::$4 ] : zp[1]:44 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:71 [ utoa::$11 ] : zp[1]:71 , reg byte a , reg byte x , reg byte y , @@ -5256,7 +5246,7 @@ Uplift Scope [utoa] 37,803.9: zp[2]:31 [ utoa::buffer#10 utoa::buffer#15 utoa::b Uplift Scope [ultoa] 38,003.93: zp[2]:29 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] 30,717.36: zp[4]:35 [ ultoa::value#2 ultoa::value#6 ultoa::value#0 ] 22,859.43: zp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ] 20,002: zp[1]:48 [ ultoa::$10 ] 15,001.5: zp[1]:54 [ ultoa::started#2 ultoa::started#4 ] 6,000.6: zp[4]:65 [ ultoa::digit_value#0 ] 2,002: zp[1]:76 [ ultoa::$11 ] 2,002: zp[2]:77 [ ultoa::buffer#3 ] Uplift Scope [printf_number_buffer] 6,506.5: zp[1]:62 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] 1,167.83: zp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] 1,001: zp[2]:83 [ printf_number_buffer::$19 ] 763.43: zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ] 111.22: zp[2]:90 [ printf_number_buffer::putc#10 ] 100.1: zp[1]:92 [ printf_number_buffer::format_min_length#3 ] 88.32: zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ] 60.67: zp[1]:94 [ printf_number_buffer::format_justify_left#10 ] 35.75: zp[1]:95 [ printf_number_buffer::format_upper_case#10 ] Uplift Scope [print] 3,003: zp[2]:69 [ print::msg#5 print::msg#0 ] -Uplift Scope [] 1,203.2: zp[2]:79 [ screen#25 screen#1 screen#0 ] 11.02: zp[2]:96 [ __snprintf_size ] 9.02: zp[2]:98 [ __snprintf_buffer ] 6.49: zp[2]:100 [ __snprintf_capacity ] 0: mem[12] [ printf_buffer ] +Uplift Scope [] 1,203.2: zp[2]:79 [ screen#25 screen#1 screen#0 ] 10.98: mem[2] [ __snprintf_size ] 9.02: zp[2]:96 [ __snprintf_buffer ] 6.45: mem[2] [ __snprintf_capacity ] 0: mem[12] [ printf_buffer ] Uplift Scope [snputc] 242.4: zp[1]:89 [ snputc::c#2 snputc::c#0 ] Uplift Scope [RADIX] Uplift Scope [MOS6526_CIA] @@ -5273,60 +5263,60 @@ Uplift Scope [snprintf_init] Uplift Scope [main] Uplift Scope [__start] -Uplifting [utoa_append] best 25005 combination zp[2]:2 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] reg byte x [ utoa_append::digit#2 utoa_append::digit#1 ] zp[2]:11 [ utoa_append::sub#0 ] zp[2]:46 [ utoa_append::return#0 ] zp[2]:56 [ utoa_append::buffer#0 ] -Uplifting [ultoa_append] best 24402 combination zp[4]:4 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] reg byte x [ ultoa_append::digit#2 ultoa_append::digit#1 ] zp[4]:13 [ ultoa_append::sub#0 ] zp[4]:49 [ ultoa_append::return#0 ] zp[2]:58 [ ultoa_append::buffer#0 ] -Uplifting [toupper] best 24275 combination reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ] reg byte a [ toupper::return#3 ] -Uplifting [strupr] best 24215 combination zp[2]:20 [ strupr::src#2 strupr::src#1 ] reg byte a [ strupr::$0 ] -Uplifting [strlen] best 24215 combination zp[2]:17 [ strlen::str#3 strlen::str#0 ] zp[2]:26 [ strlen::len#2 strlen::len#1 ] zp[2]:74 [ strlen::return#2 ] -Uplifting [printf_str] best 24145 combination zp[2]:22 [ printf_str::s#11 printf_str::s#12 printf_str::s#0 ] reg byte a [ printf_str::c#1 ] zp[2]:60 [ printf_str::putc#12 printf_str::putc#0 ] -Uplifting [printf_padding] best 24145 combination zp[1]:19 [ printf_padding::i#2 printf_padding::i#1 ] zp[2]:33 [ printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 ] zp[1]:41 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] zp[1]:53 [ printf_padding::pad#7 ] -Uplifting [utoa] best 24020 combination zp[2]:31 [ utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 ] zp[2]:39 [ utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#0 ] zp[1]:43 [ utoa::digit#2 utoa::digit#1 ] reg byte a [ utoa::$4 ] reg byte a [ utoa::$10 ] reg byte x [ utoa::started#2 utoa::started#4 ] zp[2]:63 [ utoa::digit_value#0 ] zp[1]:71 [ utoa::$11 ] zp[2]:72 [ utoa::buffer#3 ] zp[1]:82 [ utoa::radix#2 ] zp[1]:86 [ utoa::max_digits#7 ] zp[2]:87 [ utoa::digit_values#8 ] +Uplifting [utoa_append] best 24999 combination zp[2]:2 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] reg byte x [ utoa_append::digit#2 utoa_append::digit#1 ] zp[2]:11 [ utoa_append::sub#0 ] zp[2]:46 [ utoa_append::return#0 ] zp[2]:56 [ utoa_append::buffer#0 ] +Uplifting [ultoa_append] best 24396 combination zp[4]:4 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] reg byte x [ ultoa_append::digit#2 ultoa_append::digit#1 ] zp[4]:13 [ ultoa_append::sub#0 ] zp[4]:49 [ ultoa_append::return#0 ] zp[2]:58 [ ultoa_append::buffer#0 ] +Uplifting [toupper] best 24269 combination reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ] reg byte a [ toupper::return#3 ] +Uplifting [strupr] best 24209 combination zp[2]:20 [ strupr::src#2 strupr::src#1 ] reg byte a [ strupr::$0 ] +Uplifting [strlen] best 24209 combination zp[2]:17 [ strlen::str#3 strlen::str#0 ] zp[2]:26 [ strlen::len#2 strlen::len#1 ] zp[2]:74 [ strlen::return#2 ] +Uplifting [printf_str] best 24139 combination zp[2]:22 [ printf_str::s#11 printf_str::s#12 printf_str::s#0 ] reg byte a [ printf_str::c#1 ] zp[2]:60 [ printf_str::putc#12 printf_str::putc#0 ] +Uplifting [printf_padding] best 24139 combination zp[1]:19 [ printf_padding::i#2 printf_padding::i#1 ] zp[2]:33 [ printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 ] zp[1]:41 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] zp[1]:53 [ printf_padding::pad#7 ] +Uplifting [utoa] best 24014 combination zp[2]:31 [ utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 ] zp[2]:39 [ utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#0 ] zp[1]:43 [ utoa::digit#2 utoa::digit#1 ] reg byte a [ utoa::$4 ] reg byte a [ utoa::$10 ] reg byte x [ utoa::started#2 utoa::started#4 ] zp[2]:63 [ utoa::digit_value#0 ] zp[1]:71 [ utoa::$11 ] zp[2]:72 [ utoa::buffer#3 ] zp[1]:82 [ utoa::radix#2 ] zp[1]:86 [ utoa::max_digits#7 ] zp[2]:87 [ utoa::digit_values#8 ] Limited combination testing to 100 combinations of 2048 possible. -Uplifting [ultoa] best 23906 combination zp[2]:29 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] zp[4]:35 [ ultoa::value#2 ultoa::value#6 ultoa::value#0 ] zp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ] reg byte a [ ultoa::$10 ] reg byte x [ ultoa::started#2 ultoa::started#4 ] zp[4]:65 [ ultoa::digit_value#0 ] reg byte a [ ultoa::$11 ] zp[2]:77 [ ultoa::buffer#3 ] -Uplifting [printf_number_buffer] best 23892 combination reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] zp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] zp[2]:83 [ printf_number_buffer::$19 ] zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ] zp[2]:90 [ printf_number_buffer::putc#10 ] reg byte x [ printf_number_buffer::format_min_length#3 ] zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ] zp[1]:94 [ printf_number_buffer::format_justify_left#10 ] zp[1]:95 [ printf_number_buffer::format_upper_case#10 ] -Uplifting [print] best 23892 combination zp[2]:69 [ print::msg#5 print::msg#0 ] -Uplifting [] best 23892 combination zp[2]:79 [ screen#25 screen#1 screen#0 ] zp[2]:96 [ __snprintf_size ] zp[2]:98 [ __snprintf_buffer ] zp[2]:100 [ __snprintf_capacity ] mem[12] [ printf_buffer ] -Uplifting [snputc] best 23887 combination reg byte x [ snputc::c#2 snputc::c#0 ] -Uplifting [RADIX] best 23887 combination -Uplifting [MOS6526_CIA] best 23887 combination -Uplifting [MOS6569_VICII] best 23887 combination -Uplifting [MOS6581_SID] best 23887 combination -Uplifting [printf_format_number] best 23887 combination -Uplifting [printf_buffer_number] best 23887 combination -Uplifting [printf_slong] best 23887 combination -Uplifting [printf_sint] best 23887 combination -Uplifting [printf_uint] best 23887 combination -Uplifting [printf_format_string] best 23887 combination -Uplifting [printf_string] best 23887 combination -Uplifting [snprintf_init] best 23887 combination -Uplifting [main] best 23887 combination -Uplifting [__start] best 23887 combination +Uplifting [ultoa] best 23900 combination zp[2]:29 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] zp[4]:35 [ ultoa::value#2 ultoa::value#6 ultoa::value#0 ] zp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ] reg byte a [ ultoa::$10 ] reg byte x [ ultoa::started#2 ultoa::started#4 ] zp[4]:65 [ ultoa::digit_value#0 ] reg byte a [ ultoa::$11 ] zp[2]:77 [ ultoa::buffer#3 ] +Uplifting [printf_number_buffer] best 23886 combination reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] zp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] zp[2]:83 [ printf_number_buffer::$19 ] zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ] zp[2]:90 [ printf_number_buffer::putc#10 ] reg byte x [ printf_number_buffer::format_min_length#3 ] zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ] zp[1]:94 [ printf_number_buffer::format_justify_left#10 ] zp[1]:95 [ printf_number_buffer::format_upper_case#10 ] +Uplifting [print] best 23886 combination zp[2]:69 [ print::msg#5 print::msg#0 ] +Uplifting [] best 23886 combination zp[2]:79 [ screen#25 screen#1 screen#0 ] mem[2] [ __snprintf_size ] zp[2]:96 [ __snprintf_buffer ] mem[2] [ __snprintf_capacity ] mem[12] [ printf_buffer ] +Uplifting [snputc] best 23881 combination reg byte x [ snputc::c#2 snputc::c#0 ] +Uplifting [RADIX] best 23881 combination +Uplifting [MOS6526_CIA] best 23881 combination +Uplifting [MOS6569_VICII] best 23881 combination +Uplifting [MOS6581_SID] best 23881 combination +Uplifting [printf_format_number] best 23881 combination +Uplifting [printf_buffer_number] best 23881 combination +Uplifting [printf_slong] best 23881 combination +Uplifting [printf_sint] best 23881 combination +Uplifting [printf_uint] best 23881 combination +Uplifting [printf_format_string] best 23881 combination +Uplifting [printf_string] best 23881 combination +Uplifting [snprintf_init] best 23881 combination +Uplifting [main] best 23881 combination +Uplifting [__start] best 23881 combination Attempting to uplift remaining variables inzp[1]:19 [ printf_padding::i#2 printf_padding::i#1 ] -Uplifting [printf_padding] best 23887 combination zp[1]:19 [ printf_padding::i#2 printf_padding::i#1 ] +Uplifting [printf_padding] best 23881 combination zp[1]:19 [ printf_padding::i#2 printf_padding::i#1 ] Attempting to uplift remaining variables inzp[1]:41 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Uplifting [printf_padding] best 23887 combination zp[1]:41 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +Uplifting [printf_padding] best 23881 combination zp[1]:41 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] Attempting to uplift remaining variables inzp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ] -Uplifting [ultoa] best 23887 combination zp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ] +Uplifting [ultoa] best 23881 combination zp[1]:42 [ ultoa::digit#2 ultoa::digit#1 ] Attempting to uplift remaining variables inzp[1]:43 [ utoa::digit#2 utoa::digit#1 ] -Uplifting [utoa] best 23887 combination zp[1]:43 [ utoa::digit#2 utoa::digit#1 ] +Uplifting [utoa] best 23881 combination zp[1]:43 [ utoa::digit#2 utoa::digit#1 ] Attempting to uplift remaining variables inzp[1]:53 [ printf_padding::pad#7 ] -Uplifting [printf_padding] best 23887 combination zp[1]:53 [ printf_padding::pad#7 ] +Uplifting [printf_padding] best 23881 combination zp[1]:53 [ printf_padding::pad#7 ] Attempting to uplift remaining variables inzp[1]:71 [ utoa::$11 ] -Uplifting [utoa] best 23881 combination reg byte x [ utoa::$11 ] +Uplifting [utoa] best 23875 combination reg byte x [ utoa::$11 ] Attempting to uplift remaining variables inzp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Uplifting [printf_number_buffer] best 23881 combination zp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] +Uplifting [printf_number_buffer] best 23875 combination zp[1]:81 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] Attempting to uplift remaining variables inzp[1]:82 [ utoa::radix#2 ] -Uplifting [utoa] best 23863 combination reg byte x [ utoa::radix#2 ] +Uplifting [utoa] best 23857 combination reg byte x [ utoa::radix#2 ] Attempting to uplift remaining variables inzp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ] -Uplifting [printf_number_buffer] best 23863 combination zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ] +Uplifting [printf_number_buffer] best 23857 combination zp[1]:85 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#2 ] Attempting to uplift remaining variables inzp[1]:86 [ utoa::max_digits#7 ] -Uplifting [utoa] best 23863 combination zp[1]:86 [ utoa::max_digits#7 ] +Uplifting [utoa] best 23857 combination zp[1]:86 [ utoa::max_digits#7 ] Attempting to uplift remaining variables inzp[1]:93 [ printf_number_buffer::format_zero_padding#10 ] -Uplifting [printf_number_buffer] best 23863 combination zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ] +Uplifting [printf_number_buffer] best 23857 combination zp[1]:93 [ printf_number_buffer::format_zero_padding#10 ] Attempting to uplift remaining variables inzp[1]:94 [ printf_number_buffer::format_justify_left#10 ] -Uplifting [printf_number_buffer] best 23863 combination zp[1]:94 [ printf_number_buffer::format_justify_left#10 ] +Uplifting [printf_number_buffer] best 23857 combination zp[1]:94 [ printf_number_buffer::format_justify_left#10 ] Attempting to uplift remaining variables inzp[1]:95 [ printf_number_buffer::format_upper_case#10 ] -Uplifting [printf_number_buffer] best 23863 combination zp[1]:95 [ printf_number_buffer::format_upper_case#10 ] +Uplifting [printf_number_buffer] best 23857 combination zp[1]:95 [ printf_number_buffer::format_upper_case#10 ] Coalescing zero page register [ zp[2]:90 [ printf_number_buffer::putc#10 ] ] with [ zp[2]:33 [ printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 ] ] - score: 3 Coalescing zero page register [ zp[2]:60 [ printf_str::putc#12 printf_str::putc#0 ] ] with [ zp[2]:90 [ printf_number_buffer::putc#10 printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 ] ] - score: 1 Coalescing zero page register [ zp[2]:39 [ utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#0 ] ] with [ zp[2]:2 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] ] - score: 1 @@ -5366,9 +5356,7 @@ Allocated (was zp[2]:79) zp[2]:23 [ screen#25 screen#1 screen#0 ] Allocated (was zp[1]:81) zp[1]:25 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] Allocated (was zp[1]:94) zp[1]:26 [ printf_number_buffer::format_justify_left#10 utoa::max_digits#7 ] Allocated (was zp[1]:95) zp[1]:27 [ printf_number_buffer::format_upper_case#10 ] -Allocated (was zp[2]:96) zp[2]:28 [ __snprintf_size ] -Allocated (was zp[2]:98) zp[2]:30 [ __snprintf_buffer ] -Allocated (was zp[2]:100) zp[2]:32 [ __snprintf_capacity ] +Allocated (was zp[2]:96) zp[2]:28 [ __snprintf_buffer ] ASSEMBLER BEFORE OPTIMIZATION // File Comments @@ -5391,15 +5379,9 @@ ASSEMBLER BEFORE OPTIMIZATION .const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 .const STACK_BASE = $103 .const SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c - /// The capacity of the buffer (n passed to snprintf()) - /// Used to hold state while printing - .label __snprintf_capacity = $20 - // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity. - /// Used to hold state while printing - .label __snprintf_size = $1c /// Current position in the buffer being filled ( initially *s passed to snprintf() /// Used to hold state while printing - .label __snprintf_buffer = $1e + .label __snprintf_buffer = $1c .label screen = $17 .segment Code // __start @@ -5407,34 +5389,24 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [1] __snprintf_capacity = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z __snprintf_capacity - lda #>0 - sta.z __snprintf_capacity+1 - // [2] __snprintf_size = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z __snprintf_size - lda #>0 - sta.z __snprintf_size+1 - // [3] __snprintf_buffer = (char *) 0 -- pbuz1=pbuc1 + // [1] __snprintf_buffer = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z __snprintf_buffer lda #>0 sta.z __snprintf_buffer+1 - // [4] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] + // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: - // [5] call main - // [16] phi from __start::@1 to main [phi:__start::@1->main] + // [3] call main + // [14] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main jmp __breturn // __start::@return __breturn: - // [6] return + // [4] return rts } // snputc @@ -5444,60 +5416,60 @@ __start: { // void snputc(__register(X) char c) snputc: { .const OFFSET_STACK_C = 0 - // [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) -- vbuxx=_stackidxbyte_vbuc1 + // [5] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) -- vbuxx=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_C,x tax - // [8] __snprintf_size = ++ __snprintf_size -- vwuz1=_inc_vwuz1 - inc.z __snprintf_size + // [6] __snprintf_size = ++ __snprintf_size -- vwum1=_inc_vwum1 + inc __snprintf_size bne !+ - inc.z __snprintf_size+1 + inc __snprintf_size+1 !: - // [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 -- vwuz1_le_vwuz2_then_la1 - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + // [7] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 -- vwum1_le_vwum2_then_la1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne !+ - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity beq __b1 !: bcc __b1 jmp __breturn // snputc::@return __breturn: - // [10] return + // [8] return rts // snputc::@1 __b1: - // [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 -- vwuz1_neq_vwuz2_then_la1 - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + // [9] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 -- vwum1_neq_vwum2_then_la1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne __b3_from___b1 - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity bne __b3_from___b1 - // [13] phi from snputc::@1 to snputc::@2 [phi:snputc::@1->snputc::@2] + // [11] phi from snputc::@1 to snputc::@2 [phi:snputc::@1->snputc::@2] __b2_from___b1: - // [13] phi snputc::c#2 = 0 [phi:snputc::@1->snputc::@2#0] -- vbuxx=vbuc1 + // [11] phi snputc::c#2 = 0 [phi:snputc::@1->snputc::@2#0] -- vbuxx=vbuc1 ldx #0 jmp __b2 - // [12] phi from snputc::@1 to snputc::@3 [phi:snputc::@1->snputc::@3] + // [10] phi from snputc::@1 to snputc::@3 [phi:snputc::@1->snputc::@3] __b3_from___b1: jmp __b3 // snputc::@3 __b3: - // [13] phi from snputc::@3 to snputc::@2 [phi:snputc::@3->snputc::@2] + // [11] phi from snputc::@3 to snputc::@2 [phi:snputc::@3->snputc::@2] __b2_from___b3: - // [13] phi snputc::c#2 = snputc::c#0 [phi:snputc::@3->snputc::@2#0] -- register_copy + // [11] phi snputc::c#2 = snputc::c#0 [phi:snputc::@3->snputc::@2#0] -- register_copy jmp __b2 // snputc::@2 __b2: - // [14] *__snprintf_buffer = snputc::c#2 -- _deref_pbuz1=vbuxx + // [12] *__snprintf_buffer = snputc::c#2 -- _deref_pbuz1=vbuxx // Append char txa ldy #0 sta (__snprintf_buffer),y - // [15] __snprintf_buffer = ++ __snprintf_buffer -- pbuz1=_inc_pbuz1 + // [13] __snprintf_buffer = ++ __snprintf_buffer -- pbuz1=_inc_pbuz1 inc.z __snprintf_buffer bne !+ inc.z __snprintf_buffer+1 @@ -5506,22 +5478,22 @@ snputc: { } // main main: { - // [17] call snprintf_init + // [15] call snprintf_init jsr snprintf_init - // [18] phi from main to main::@1 [phi:main->main::@1] + // [16] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: jmp __b1 // main::@1 __b1: - // [19] call printf_str - // [71] phi from main::@1 to printf_str [phi:main::@1->printf_str] + // [17] call printf_str + // [69] phi from main::@1 to printf_str [phi:main::@1->printf_str] printf_str_from___b1: - // [71] phi printf_str::putc#12 = &snputc [phi:main::@1->printf_str#0] -- pprz1=pprc1 + // [69] phi printf_str::putc#12 = &snputc [phi:main::@1->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::s [phi:main::@1->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::s [phi:main::@1->printf_str#1] -- pbuz1=pbuc1 lda #s @@ -5530,76 +5502,76 @@ main: { jmp __b2 // main::@2 __b2: - // [20] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [18] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [21] callexecute snputc -- call_vprc1 + // [19] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla - // [23] call print - // [80] phi from main::@2 to print [phi:main::@2->print] + // [21] call print + // [78] phi from main::@2 to print [phi:main::@2->print] print_from___b2: - // [80] phi screen#25 = (char *) 1024 [phi:main::@2->print#0] -- pbuz1=pbuc1 + // [78] phi screen#25 = (char *) 1024 [phi:main::@2->print#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 sta.z screen+1 jsr print - // [24] phi from main::@2 to main::@3 [phi:main::@2->main::@3] + // [22] phi from main::@2 to main::@3 [phi:main::@2->main::@3] __b3_from___b2: jmp __b3 // main::@3 __b3: - // [25] call snprintf_init + // [23] call snprintf_init jsr snprintf_init - // [26] phi from main::@3 to main::@4 [phi:main::@3->main::@4] + // [24] phi from main::@3 to main::@4 [phi:main::@3->main::@4] __b4_from___b3: jmp __b4 // main::@4 __b4: - // [27] call printf_str - // [71] phi from main::@4 to printf_str [phi:main::@4->printf_str] + // [25] call printf_str + // [69] phi from main::@4 to printf_str [phi:main::@4->printf_str] printf_str_from___b4: - // [71] phi printf_str::putc#12 = &snputc [phi:main::@4->printf_str#0] -- pprz1=pprc1 + // [69] phi printf_str::putc#12 = &snputc [phi:main::@4->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::s1 [phi:main::@4->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::s1 [phi:main::@4->printf_str#1] -- pbuz1=pbuc1 lda #s1 sta.z printf_str.s+1 jsr printf_str - // [28] phi from main::@4 to main::@5 [phi:main::@4->main::@5] + // [26] phi from main::@4 to main::@5 [phi:main::@4->main::@5] __b5_from___b4: jmp __b5 // main::@5 __b5: - // [29] call printf_string - // [87] phi from main::@5 to printf_string [phi:main::@5->printf_string] + // [27] call printf_string + // [85] phi from main::@5 to printf_string [phi:main::@5->printf_string] printf_string_from___b5: jsr printf_string jmp __b6 // main::@6 __b6: - // [30] stackpush(char) = '!' -- _stackpushbyte_=vbuc1 + // [28] stackpush(char) = '!' -- _stackpushbyte_=vbuc1 lda #'!' pha - // [31] callexecute snputc -- call_vprc1 + // [29] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla - // [33] call printf_str - // [71] phi from main::@6 to printf_str [phi:main::@6->printf_str] + // [31] call printf_str + // [69] phi from main::@6 to printf_str [phi:main::@6->printf_str] printf_str_from___b6: - // [71] phi printf_str::putc#12 = &snputc [phi:main::@6->printf_str#0] -- pprz1=pprc1 + // [69] phi printf_str::putc#12 = &snputc [phi:main::@6->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::s2 [phi:main::@6->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::s2 [phi:main::@6->printf_str#1] -- pbuz1=pbuc1 lda #s2 @@ -5608,93 +5580,93 @@ main: { jmp __b7 // main::@7 __b7: - // [34] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [32] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [35] callexecute snputc -- call_vprc1 + // [33] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla - // [37] call print - // [80] phi from main::@7 to print [phi:main::@7->print] + // [35] call print + // [78] phi from main::@7 to print [phi:main::@7->print] print_from___b7: - // [80] phi screen#25 = screen#1 [phi:main::@7->print#0] -- register_copy + // [78] phi screen#25 = screen#1 [phi:main::@7->print#0] -- register_copy jsr print - // [38] phi from main::@7 to main::@8 [phi:main::@7->main::@8] + // [36] phi from main::@7 to main::@8 [phi:main::@7->main::@8] __b8_from___b7: jmp __b8 // main::@8 __b8: - // [39] call snprintf_init + // [37] call snprintf_init jsr snprintf_init - // [40] phi from main::@8 to main::@9 [phi:main::@8->main::@9] + // [38] phi from main::@8 to main::@9 [phi:main::@8->main::@9] __b9_from___b8: jmp __b9 // main::@9 __b9: - // [41] call printf_str - // [71] phi from main::@9 to printf_str [phi:main::@9->printf_str] + // [39] call printf_str + // [69] phi from main::@9 to printf_str [phi:main::@9->printf_str] printf_str_from___b9: - // [71] phi printf_str::putc#12 = &snputc [phi:main::@9->printf_str#0] -- pprz1=pprc1 + // [69] phi printf_str::putc#12 = &snputc [phi:main::@9->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::s1 [phi:main::@9->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::s1 [phi:main::@9->printf_str#1] -- pbuz1=pbuc1 lda #s1 sta.z printf_str.s+1 jsr printf_str - // [42] phi from main::@9 to main::@10 [phi:main::@9->main::@10] + // [40] phi from main::@9 to main::@10 [phi:main::@9->main::@10] __b10_from___b9: jmp __b10 // main::@10 __b10: - // [43] call printf_sint + // [41] call printf_sint jsr printf_sint - // [44] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + // [42] phi from main::@10 to main::@11 [phi:main::@10->main::@11] __b11_from___b10: jmp __b11 // main::@11 __b11: - // [45] call printf_str - // [71] phi from main::@11 to printf_str [phi:main::@11->printf_str] + // [43] call printf_str + // [69] phi from main::@11 to printf_str [phi:main::@11->printf_str] printf_str_from___b11: - // [71] phi printf_str::putc#12 = &snputc [phi:main::@11->printf_str#0] -- pprz1=pprc1 + // [69] phi printf_str::putc#12 = &snputc [phi:main::@11->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::s4 [phi:main::@11->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::s4 [phi:main::@11->printf_str#1] -- pbuz1=pbuc1 lda #s4 sta.z printf_str.s+1 jsr printf_str - // [46] phi from main::@11 to main::@12 [phi:main::@11->main::@12] + // [44] phi from main::@11 to main::@12 [phi:main::@11->main::@12] __b12_from___b11: jmp __b12 // main::@12 __b12: - // [47] call printf_uint - // [97] phi from main::@12 to printf_uint [phi:main::@12->printf_uint] + // [45] call printf_uint + // [95] phi from main::@12 to printf_uint [phi:main::@12->printf_uint] printf_uint_from___b12: jsr printf_uint - // [48] phi from main::@12 to main::@13 [phi:main::@12->main::@13] + // [46] phi from main::@12 to main::@13 [phi:main::@12->main::@13] __b13_from___b12: jmp __b13 // main::@13 __b13: - // [49] call printf_str - // [71] phi from main::@13 to printf_str [phi:main::@13->printf_str] + // [47] call printf_str + // [69] phi from main::@13 to printf_str [phi:main::@13->printf_str] printf_str_from___b13: - // [71] phi printf_str::putc#12 = &snputc [phi:main::@13->printf_str#0] -- pprz1=pprc1 + // [69] phi printf_str::putc#12 = &snputc [phi:main::@13->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::s5 [phi:main::@13->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::s5 [phi:main::@13->printf_str#1] -- pbuz1=pbuc1 lda #s5 @@ -5703,65 +5675,65 @@ main: { jmp __b14 // main::@14 __b14: - // [50] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [48] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [51] callexecute snputc -- call_vprc1 + // [49] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla - // [53] call print - // [80] phi from main::@14 to print [phi:main::@14->print] + // [51] call print + // [78] phi from main::@14 to print [phi:main::@14->print] print_from___b14: - // [80] phi screen#25 = screen#1 [phi:main::@14->print#0] -- register_copy + // [78] phi screen#25 = screen#1 [phi:main::@14->print#0] -- register_copy jsr print - // [54] phi from main::@14 to main::@15 [phi:main::@14->main::@15] + // [52] phi from main::@14 to main::@15 [phi:main::@14->main::@15] __b15_from___b14: jmp __b15 // main::@15 __b15: - // [55] call snprintf_init + // [53] call snprintf_init jsr snprintf_init - // [56] phi from main::@15 to main::@16 [phi:main::@15->main::@16] + // [54] phi from main::@15 to main::@16 [phi:main::@15->main::@16] __b16_from___b15: jmp __b16 // main::@16 __b16: - // [57] call printf_str - // [71] phi from main::@16 to printf_str [phi:main::@16->printf_str] + // [55] call printf_str + // [69] phi from main::@16 to printf_str [phi:main::@16->printf_str] printf_str_from___b16: - // [71] phi printf_str::putc#12 = &snputc [phi:main::@16->printf_str#0] -- pprz1=pprc1 + // [69] phi printf_str::putc#12 = &snputc [phi:main::@16->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::s6 [phi:main::@16->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::s6 [phi:main::@16->printf_str#1] -- pbuz1=pbuc1 lda #s6 sta.z printf_str.s+1 jsr printf_str - // [58] phi from main::@16 to main::@17 [phi:main::@16->main::@17] + // [56] phi from main::@16 to main::@17 [phi:main::@16->main::@17] __b17_from___b16: jmp __b17 // main::@17 __b17: - // [59] call printf_slong + // [57] call printf_slong jsr printf_slong - // [60] phi from main::@17 to main::@18 [phi:main::@17->main::@18] + // [58] phi from main::@17 to main::@18 [phi:main::@17->main::@18] __b18_from___b17: jmp __b18 // main::@18 __b18: - // [61] call printf_str - // [71] phi from main::@18 to printf_str [phi:main::@18->printf_str] + // [59] call printf_str + // [69] phi from main::@18 to printf_str [phi:main::@18->printf_str] printf_str_from___b18: - // [71] phi printf_str::putc#12 = &snputc [phi:main::@18->printf_str#0] -- pprz1=pprc1 + // [69] phi printf_str::putc#12 = &snputc [phi:main::@18->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::s5 [phi:main::@18->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::s5 [phi:main::@18->printf_str#1] -- pbuz1=pbuc1 lda #s5 @@ -5770,22 +5742,22 @@ main: { jmp __b19 // main::@19 __b19: - // [62] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [60] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [63] callexecute snputc -- call_vprc1 + // [61] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla - // [65] call print - // [80] phi from main::@19 to print [phi:main::@19->print] + // [63] call print + // [78] phi from main::@19 to print [phi:main::@19->print] print_from___b19: - // [80] phi screen#25 = screen#1 [phi:main::@19->print#0] -- register_copy + // [78] phi screen#25 = screen#1 [phi:main::@19->print#0] -- register_copy jsr print jmp __breturn // main::@return __breturn: - // [66] return + // [64] return rts .segment Data s: .text "hello world! " @@ -5808,17 +5780,17 @@ main: { /// Initialize the snprintf() state // void snprintf_init(char *s, unsigned int n) snprintf_init: { - // [67] __snprintf_capacity = $ffff -- vwuz1=vwuc1 + // [65] __snprintf_capacity = $ffff -- vwum1=vwuc1 lda #<$ffff - sta.z __snprintf_capacity + sta __snprintf_capacity lda #>$ffff - sta.z __snprintf_capacity+1 - // [68] __snprintf_size = 0 -- vwuz1=vbuc1 + sta __snprintf_capacity+1 + // [66] __snprintf_size = 0 -- vwum1=vbuc1 lda #<0 - sta.z __snprintf_size + sta __snprintf_size lda #>0 - sta.z __snprintf_size+1 - // [69] __snprintf_buffer = BUF -- pbuz1=pbuc1 + sta __snprintf_size+1 + // [67] __snprintf_buffer = BUF -- pbuz1=pbuc1 lda #BUF @@ -5826,7 +5798,7 @@ snprintf_init: { jmp __breturn // snprintf_init::@return __breturn: - // [70] return + // [68] return rts } // printf_str @@ -5835,34 +5807,34 @@ snprintf_init: { printf_str: { .label s = $e .label putc = 2 - // [72] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] + // [70] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] __b1_from_printf_str: __b1_from___b2: - // [72] phi printf_str::s#11 = printf_str::s#12 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy + // [70] phi printf_str::s#11 = printf_str::s#12 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy jmp __b1 // printf_str::@1 __b1: - // [73] printf_str::c#1 = *printf_str::s#11 -- vbuaa=_deref_pbuz1 + // [71] printf_str::c#1 = *printf_str::s#11 -- vbuaa=_deref_pbuz1 ldy #0 lda (s),y - // [74] printf_str::s#0 = ++ printf_str::s#11 -- pbuz1=_inc_pbuz1 + // [72] printf_str::s#0 = ++ printf_str::s#11 -- pbuz1=_inc_pbuz1 inc.z s bne !+ inc.z s+1 !: - // [75] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 + // [73] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 cmp #0 bne __b2 jmp __breturn // printf_str::@return __breturn: - // [76] return + // [74] return rts // printf_str::@2 __b2: - // [77] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa + // [75] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa pha - // [78] callexecute *printf_str::putc#12 -- call__deref_pprz1 + // [76] callexecute *printf_str::putc#12 -- call__deref_pprz1 jsr icall6 // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla @@ -5875,10 +5847,10 @@ printf_str: { // void print(__zp(2) char *msg) print: { .label msg = 2 - // [81] phi from print to print::@1 [phi:print->print::@1] + // [79] phi from print to print::@1 [phi:print->print::@1] __b1_from_print: - // [81] phi screen#1 = screen#25 [phi:print->print::@1#0] -- register_copy - // [81] phi print::msg#5 = BUF [phi:print->print::@1#1] -- pbuz1=pbuc1 + // [79] phi screen#1 = screen#25 [phi:print->print::@1#0] -- register_copy + // [79] phi print::msg#5 = BUF [phi:print->print::@1#1] -- pbuz1=pbuc1 lda #BUF @@ -5886,7 +5858,7 @@ print: { jmp __b1 // print::@1 __b1: - // [82] if(0!=*print::msg#5) goto print::@2 -- 0_neq__deref_pbuz1_then_la1 + // [80] if(0!=*print::msg#5) goto print::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (msg),y cmp #0 @@ -5894,29 +5866,29 @@ print: { jmp __breturn // print::@return __breturn: - // [83] return + // [81] return rts // print::@2 __b2: - // [84] *screen#1 = *print::msg#5 -- _deref_pbuz1=_deref_pbuz2 + // [82] *screen#1 = *print::msg#5 -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (msg),y ldy #0 sta (screen),y - // [85] screen#0 = ++ screen#1 -- pbuz1=_inc_pbuz1 + // [83] screen#0 = ++ screen#1 -- pbuz1=_inc_pbuz1 inc.z screen bne !+ inc.z screen+1 !: - // [86] print::msg#0 = ++ print::msg#5 -- pbuz1=_inc_pbuz1 + // [84] print::msg#0 = ++ print::msg#5 -- pbuz1=_inc_pbuz1 inc.z msg bne !+ inc.z msg+1 !: - // [81] phi from print::@2 to print::@1 [phi:print::@2->print::@1] + // [79] phi from print::@2 to print::@1 [phi:print::@2->print::@1] __b1_from___b2: - // [81] phi screen#1 = screen#0 [phi:print::@2->print::@1#0] -- register_copy - // [81] phi print::msg#5 = print::msg#0 [phi:print::@2->print::@1#1] -- register_copy + // [79] phi screen#1 = screen#0 [phi:print::@2->print::@1#0] -- register_copy + // [79] phi print::msg#5 = print::msg#0 [phi:print::@2->print::@1#1] -- register_copy jmp __b1 } // printf_string @@ -5925,20 +5897,20 @@ print: { // void printf_string(void (*putc)(char), char *str, char format_min_length, char format_justify_left) printf_string: { .label putc = snputc - // [88] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] + // [86] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] __b1_from_printf_string: jmp __b1 // printf_string::@1 __b1: - // [89] call printf_str - // [71] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] + // [87] call printf_str + // [69] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] printf_str_from___b1: - // [71] phi printf_str::putc#12 = printf_string::putc#0 [phi:printf_string::@1->printf_str#0] -- pprz1=pprc1 + // [69] phi printf_str::putc#12 = printf_string::putc#0 [phi:printf_string::@1->printf_str#0] -- pprz1=pprc1 lda #putc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::str [phi:printf_string::@1->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::str [phi:printf_string::@1->printf_str#1] -- pbuz1=pbuc1 lda #main.str @@ -5947,7 +5919,7 @@ printf_string: { jmp __breturn // printf_string::@return __breturn: - // [90] return + // [88] return rts } // printf_sint @@ -5962,58 +5934,58 @@ printf_sint: { // Format number into buffer .const uvalue = value .label putc = snputc - // [91] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [89] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer - // [92] phi from printf_sint to printf_sint::@1 [phi:printf_sint->printf_sint::@1] + // [90] phi from printf_sint to printf_sint::@1 [phi:printf_sint->printf_sint::@1] __b1_from_printf_sint: jmp __b1 // printf_sint::@1 __b1: - // [93] call utoa - // [109] phi from printf_sint::@1 to utoa [phi:printf_sint::@1->utoa] + // [91] call utoa + // [107] phi from printf_sint::@1 to utoa [phi:printf_sint::@1->utoa] utoa_from___b1: - // [109] phi utoa::value#10 = printf_sint::uvalue#0 [phi:printf_sint::@1->utoa#0] -- vwuz1=vwuc1 + // [107] phi utoa::value#10 = printf_sint::uvalue#0 [phi:printf_sint::@1->utoa#0] -- vwuz1=vwuc1 lda #uvalue sta.z utoa.value+1 - // [109] phi utoa::radix#2 = DECIMAL [phi:printf_sint::@1->utoa#1] -- vbuxx=vbuc1 + // [107] phi utoa::radix#2 = DECIMAL [phi:printf_sint::@1->utoa#1] -- vbuxx=vbuc1 ldx #DECIMAL jsr utoa jmp __b2 // printf_sint::@2 __b2: - // [94] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 + // [92] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 lda printf_buffer sta.z printf_number_buffer.buffer_sign - // [95] call printf_number_buffer + // [93] call printf_number_buffer // Print using format - // [140] phi from printf_sint::@2 to printf_number_buffer [phi:printf_sint::@2->printf_number_buffer] + // [138] phi from printf_sint::@2 to printf_number_buffer [phi:printf_sint::@2->printf_number_buffer] printf_number_buffer_from___b2: - // [140] phi printf_number_buffer::format_upper_case#10 = printf_sint::format_upper_case#0 [phi:printf_sint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::format_upper_case#10 = printf_sint::format_upper_case#0 [phi:printf_sint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 lda #format_upper_case sta.z printf_number_buffer.format_upper_case - // [140] phi printf_number_buffer::putc#10 = printf_sint::putc#0 [phi:printf_sint::@2->printf_number_buffer#1] -- pprz1=pprc1 + // [138] phi printf_number_buffer::putc#10 = printf_sint::putc#0 [phi:printf_sint::@2->printf_number_buffer#1] -- pprz1=pprc1 lda #putc sta.z printf_number_buffer.putc+1 - // [140] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#1 [phi:printf_sint::@2->printf_number_buffer#2] -- register_copy - // [140] phi printf_number_buffer::format_zero_padding#10 = printf_sint::format_zero_padding#0 [phi:printf_sint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#1 [phi:printf_sint::@2->printf_number_buffer#2] -- register_copy + // [138] phi printf_number_buffer::format_zero_padding#10 = printf_sint::format_zero_padding#0 [phi:printf_sint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 lda #format_zero_padding sta.z printf_number_buffer.format_zero_padding - // [140] phi printf_number_buffer::format_justify_left#10 = printf_sint::format_justify_left#0 [phi:printf_sint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::format_justify_left#10 = printf_sint::format_justify_left#0 [phi:printf_sint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 lda #format_justify_left sta.z printf_number_buffer.format_justify_left - // [140] phi printf_number_buffer::format_min_length#3 = printf_sint::format_min_length#0 [phi:printf_sint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 + // [138] phi printf_number_buffer::format_min_length#3 = printf_sint::format_min_length#0 [phi:printf_sint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 ldx #format_min_length jsr printf_number_buffer jmp __breturn // printf_sint::@return __breturn: - // [96] return + // [94] return rts } // printf_uint @@ -6029,54 +6001,54 @@ printf_uint: { jmp __b1 // printf_uint::@1 __b1: - // [98] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [96] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer - // [99] call utoa + // [97] call utoa // Format number into buffer - // [109] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] + // [107] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] utoa_from___b1: - // [109] phi utoa::value#10 = printf_uint::uvalue#0 [phi:printf_uint::@1->utoa#0] -- vwuz1=vwuc1 + // [107] phi utoa::value#10 = printf_uint::uvalue#0 [phi:printf_uint::@1->utoa#0] -- vwuz1=vwuc1 lda #uvalue sta.z utoa.value+1 - // [109] phi utoa::radix#2 = HEXADECIMAL [phi:printf_uint::@1->utoa#1] -- vbuxx=vbuc1 + // [107] phi utoa::radix#2 = HEXADECIMAL [phi:printf_uint::@1->utoa#1] -- vbuxx=vbuc1 ldx #HEXADECIMAL jsr utoa jmp __b2 // printf_uint::@2 __b2: - // [100] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 + // [98] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 lda printf_buffer sta.z printf_number_buffer.buffer_sign - // [101] call printf_number_buffer + // [99] call printf_number_buffer // Print using format - // [140] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] + // [138] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] printf_number_buffer_from___b2: - // [140] phi printf_number_buffer::format_upper_case#10 = printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::format_upper_case#10 = printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 lda #format_upper_case sta.z printf_number_buffer.format_upper_case - // [140] phi printf_number_buffer::putc#10 = printf_uint::putc#0 [phi:printf_uint::@2->printf_number_buffer#1] -- pprz1=pprc1 + // [138] phi printf_number_buffer::putc#10 = printf_uint::putc#0 [phi:printf_uint::@2->printf_number_buffer#1] -- pprz1=pprc1 lda #putc sta.z printf_number_buffer.putc+1 - // [140] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 [phi:printf_uint::@2->printf_number_buffer#2] -- register_copy - // [140] phi printf_number_buffer::format_zero_padding#10 = printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 [phi:printf_uint::@2->printf_number_buffer#2] -- register_copy + // [138] phi printf_number_buffer::format_zero_padding#10 = printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 lda #format_zero_padding sta.z printf_number_buffer.format_zero_padding - // [140] phi printf_number_buffer::format_justify_left#10 = printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::format_justify_left#10 = printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 lda #format_justify_left sta.z printf_number_buffer.format_justify_left - // [140] phi printf_number_buffer::format_min_length#3 = printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 + // [138] phi printf_number_buffer::format_min_length#3 = printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 ldx #format_min_length jsr printf_number_buffer jmp __breturn // printf_uint::@return __breturn: - // [102] return + // [100] return rts } // printf_slong @@ -6091,51 +6063,51 @@ printf_slong: { .label putc = snputc // Format number into buffer .label uvalue = value - // [103] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [101] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer - // [104] phi from printf_slong to printf_slong::@1 [phi:printf_slong->printf_slong::@1] + // [102] phi from printf_slong to printf_slong::@1 [phi:printf_slong->printf_slong::@1] __b1_from_printf_slong: jmp __b1 // printf_slong::@1 __b1: - // [105] call ultoa - // [181] phi from printf_slong::@1 to ultoa [phi:printf_slong::@1->ultoa] + // [103] call ultoa + // [179] phi from printf_slong::@1 to ultoa [phi:printf_slong::@1->ultoa] ultoa_from___b1: jsr ultoa jmp __b2 // printf_slong::@2 __b2: - // [106] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 + // [104] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 lda printf_buffer sta.z printf_number_buffer.buffer_sign - // [107] call printf_number_buffer + // [105] call printf_number_buffer // Print using format - // [140] phi from printf_slong::@2 to printf_number_buffer [phi:printf_slong::@2->printf_number_buffer] + // [138] phi from printf_slong::@2 to printf_number_buffer [phi:printf_slong::@2->printf_number_buffer] printf_number_buffer_from___b2: - // [140] phi printf_number_buffer::format_upper_case#10 = printf_slong::format_upper_case#0 [phi:printf_slong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::format_upper_case#10 = printf_slong::format_upper_case#0 [phi:printf_slong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 lda #format_upper_case sta.z printf_number_buffer.format_upper_case - // [140] phi printf_number_buffer::putc#10 = printf_slong::putc#0 [phi:printf_slong::@2->printf_number_buffer#1] -- pprz1=pprc1 + // [138] phi printf_number_buffer::putc#10 = printf_slong::putc#0 [phi:printf_slong::@2->printf_number_buffer#1] -- pprz1=pprc1 lda #putc sta.z printf_number_buffer.putc+1 - // [140] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#0 [phi:printf_slong::@2->printf_number_buffer#2] -- register_copy - // [140] phi printf_number_buffer::format_zero_padding#10 = printf_slong::format_zero_padding#0 [phi:printf_slong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#0 [phi:printf_slong::@2->printf_number_buffer#2] -- register_copy + // [138] phi printf_number_buffer::format_zero_padding#10 = printf_slong::format_zero_padding#0 [phi:printf_slong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 lda #format_zero_padding sta.z printf_number_buffer.format_zero_padding - // [140] phi printf_number_buffer::format_justify_left#10 = printf_slong::format_justify_left#0 [phi:printf_slong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::format_justify_left#10 = printf_slong::format_justify_left#0 [phi:printf_slong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 lda #format_justify_left sta.z printf_number_buffer.format_justify_left - // [140] phi printf_number_buffer::format_min_length#3 = printf_slong::format_min_length#0 [phi:printf_slong::@2->printf_number_buffer#5] -- vbuxx=vbuc1 + // [138] phi printf_number_buffer::format_min_length#3 = printf_slong::format_min_length#0 [phi:printf_slong::@2->printf_number_buffer#5] -- vbuxx=vbuc1 ldx #format_min_length jsr printf_number_buffer jmp __breturn // printf_slong::@return __breturn: - // [108] return + // [106] return rts } // utoa @@ -6152,115 +6124,115 @@ utoa: { .label value = 2 .label max_digits = $1a .label digit_values = $e - // [110] if(utoa::radix#2==DECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 + // [108] if(utoa::radix#2==DECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 cpx #DECIMAL beq __b1_from_utoa jmp __b2 // utoa::@2 __b2: - // [111] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 + // [109] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 cpx #HEXADECIMAL beq __b1_from___b2 jmp __b3 // utoa::@3 __b3: - // [112] if(utoa::radix#2==OCTAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 + // [110] if(utoa::radix#2==OCTAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 cpx #OCTAL beq __b1_from___b3 jmp __b4 // utoa::@4 __b4: - // [113] if(utoa::radix#2==BINARY) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 + // [111] if(utoa::radix#2==BINARY) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 cpx #BINARY beq __b1_from___b4 jmp __b5 // utoa::@5 __b5: - // [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' -- _deref_pbuc1=vbuc2 + // [112] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' -- _deref_pbuc1=vbuc2 // Unknown radix lda #'e' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - // [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' -- _deref_pbuc1=vbuc2 + // [113] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' -- _deref_pbuc1=vbuc2 lda #'r' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 - // [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' -- _deref_pbuc1=vbuc2 + // [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' -- _deref_pbuc1=vbuc2 lda #'r' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2 - // [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 -- _deref_pbuc1=vbuc2 + // [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3 jmp __breturn // utoa::@return __breturn: - // [118] return + // [116] return rts - // [119] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] + // [117] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] __b1_from_utoa: - // [119] phi utoa::digit_values#8 = RADIX_DECIMAL_VALUES [phi:utoa->utoa::@1#0] -- pwuz1=pwuc1 + // [117] phi utoa::digit_values#8 = RADIX_DECIMAL_VALUES [phi:utoa->utoa::@1#0] -- pwuz1=pwuc1 lda #RADIX_DECIMAL_VALUES sta.z digit_values+1 - // [119] phi utoa::max_digits#7 = 5 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 + // [117] phi utoa::max_digits#7 = 5 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 lda #5 sta.z max_digits jmp __b1 - // [119] phi from utoa::@2 to utoa::@1 [phi:utoa::@2->utoa::@1] + // [117] phi from utoa::@2 to utoa::@1 [phi:utoa::@2->utoa::@1] __b1_from___b2: - // [119] phi utoa::digit_values#8 = RADIX_HEXADECIMAL_VALUES [phi:utoa::@2->utoa::@1#0] -- pwuz1=pwuc1 + // [117] phi utoa::digit_values#8 = RADIX_HEXADECIMAL_VALUES [phi:utoa::@2->utoa::@1#0] -- pwuz1=pwuc1 lda #RADIX_HEXADECIMAL_VALUES sta.z digit_values+1 - // [119] phi utoa::max_digits#7 = 4 [phi:utoa::@2->utoa::@1#1] -- vbuz1=vbuc1 + // [117] phi utoa::max_digits#7 = 4 [phi:utoa::@2->utoa::@1#1] -- vbuz1=vbuc1 lda #4 sta.z max_digits jmp __b1 - // [119] phi from utoa::@3 to utoa::@1 [phi:utoa::@3->utoa::@1] + // [117] phi from utoa::@3 to utoa::@1 [phi:utoa::@3->utoa::@1] __b1_from___b3: - // [119] phi utoa::digit_values#8 = RADIX_OCTAL_VALUES [phi:utoa::@3->utoa::@1#0] -- pwuz1=pwuc1 + // [117] phi utoa::digit_values#8 = RADIX_OCTAL_VALUES [phi:utoa::@3->utoa::@1#0] -- pwuz1=pwuc1 lda #RADIX_OCTAL_VALUES sta.z digit_values+1 - // [119] phi utoa::max_digits#7 = 6 [phi:utoa::@3->utoa::@1#1] -- vbuz1=vbuc1 + // [117] phi utoa::max_digits#7 = 6 [phi:utoa::@3->utoa::@1#1] -- vbuz1=vbuc1 lda #6 sta.z max_digits jmp __b1 - // [119] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] + // [117] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] __b1_from___b4: - // [119] phi utoa::digit_values#8 = RADIX_BINARY_VALUES [phi:utoa::@4->utoa::@1#0] -- pwuz1=pwuc1 + // [117] phi utoa::digit_values#8 = RADIX_BINARY_VALUES [phi:utoa::@4->utoa::@1#0] -- pwuz1=pwuc1 lda #RADIX_BINARY_VALUES sta.z digit_values+1 - // [119] phi utoa::max_digits#7 = $10 [phi:utoa::@4->utoa::@1#1] -- vbuz1=vbuc1 + // [117] phi utoa::max_digits#7 = $10 [phi:utoa::@4->utoa::@1#1] -- vbuz1=vbuc1 lda #$10 sta.z max_digits jmp __b1 // utoa::@1 __b1: - // [120] phi from utoa::@1 to utoa::@6 [phi:utoa::@1->utoa::@6] + // [118] phi from utoa::@1 to utoa::@6 [phi:utoa::@1->utoa::@6] __b6_from___b1: - // [120] phi utoa::buffer#10 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa::@1->utoa::@6#0] -- pbuz1=pbuc1 + // [118] phi utoa::buffer#10 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa::@1->utoa::@6#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer+1 - // [120] phi utoa::started#2 = 0 [phi:utoa::@1->utoa::@6#1] -- vbuxx=vbuc1 + // [118] phi utoa::started#2 = 0 [phi:utoa::@1->utoa::@6#1] -- vbuxx=vbuc1 ldx #0 - // [120] phi utoa::value#3 = utoa::value#10 [phi:utoa::@1->utoa::@6#2] -- register_copy - // [120] phi utoa::digit#2 = 0 [phi:utoa::@1->utoa::@6#3] -- vbuz1=vbuc1 + // [118] phi utoa::value#3 = utoa::value#10 [phi:utoa::@1->utoa::@6#2] -- register_copy + // [118] phi utoa::digit#2 = 0 [phi:utoa::@1->utoa::@6#3] -- vbuz1=vbuc1 lda #0 sta.z digit jmp __b6 // utoa::@6 __b6: - // [121] utoa::$4 = utoa::max_digits#7 - 1 -- vbuaa=vbuz1_minus_1 + // [119] utoa::$4 = utoa::max_digits#7 - 1 -- vbuaa=vbuz1_minus_1 lda.z max_digits sec sbc #1 - // [122] if(utoa::digit#2=utoa::digit_value#0) goto utoa::@10 -- vwuz1_ge_vwuz2_then_la1 + // [128] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 -- vwuz1_ge_vwuz2_then_la1 lda.z digit_value+1 cmp.z value+1 bne !+ @@ -6311,48 +6283,48 @@ utoa: { beq __b10 !: bcc __b10 - // [131] phi from utoa::@12 to utoa::@9 [phi:utoa::@12->utoa::@9] + // [129] phi from utoa::@12 to utoa::@9 [phi:utoa::@12->utoa::@9] __b9_from___b12: - // [131] phi utoa::buffer#15 = utoa::buffer#10 [phi:utoa::@12->utoa::@9#0] -- register_copy - // [131] phi utoa::started#4 = utoa::started#2 [phi:utoa::@12->utoa::@9#1] -- register_copy - // [131] phi utoa::value#7 = utoa::value#3 [phi:utoa::@12->utoa::@9#2] -- register_copy + // [129] phi utoa::buffer#15 = utoa::buffer#10 [phi:utoa::@12->utoa::@9#0] -- register_copy + // [129] phi utoa::started#4 = utoa::started#2 [phi:utoa::@12->utoa::@9#1] -- register_copy + // [129] phi utoa::value#7 = utoa::value#3 [phi:utoa::@12->utoa::@9#2] -- register_copy jmp __b9 // utoa::@9 __b9: - // [132] utoa::digit#1 = ++ utoa::digit#2 -- vbuz1=_inc_vbuz1 + // [130] utoa::digit#1 = ++ utoa::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [120] phi from utoa::@9 to utoa::@6 [phi:utoa::@9->utoa::@6] + // [118] phi from utoa::@9 to utoa::@6 [phi:utoa::@9->utoa::@6] __b6_from___b9: - // [120] phi utoa::buffer#10 = utoa::buffer#15 [phi:utoa::@9->utoa::@6#0] -- register_copy - // [120] phi utoa::started#2 = utoa::started#4 [phi:utoa::@9->utoa::@6#1] -- register_copy - // [120] phi utoa::value#3 = utoa::value#7 [phi:utoa::@9->utoa::@6#2] -- register_copy - // [120] phi utoa::digit#2 = utoa::digit#1 [phi:utoa::@9->utoa::@6#3] -- register_copy + // [118] phi utoa::buffer#10 = utoa::buffer#15 [phi:utoa::@9->utoa::@6#0] -- register_copy + // [118] phi utoa::started#2 = utoa::started#4 [phi:utoa::@9->utoa::@6#1] -- register_copy + // [118] phi utoa::value#3 = utoa::value#7 [phi:utoa::@9->utoa::@6#2] -- register_copy + // [118] phi utoa::digit#2 = utoa::digit#1 [phi:utoa::@9->utoa::@6#3] -- register_copy jmp __b6 // utoa::@10 __b10: - // [133] utoa_append::buffer#0 = utoa::buffer#10 - // [134] utoa_append::value#0 = utoa::value#3 - // [135] utoa_append::sub#0 = utoa::digit_value#0 - // [136] call utoa_append - // [202] phi from utoa::@10 to utoa_append [phi:utoa::@10->utoa_append] + // [131] utoa_append::buffer#0 = utoa::buffer#10 + // [132] utoa_append::value#0 = utoa::value#3 + // [133] utoa_append::sub#0 = utoa::digit_value#0 + // [134] call utoa_append + // [200] phi from utoa::@10 to utoa_append [phi:utoa::@10->utoa_append] utoa_append_from___b10: jsr utoa_append - // [137] utoa_append::return#0 = utoa_append::value#2 + // [135] utoa_append::return#0 = utoa_append::value#2 jmp __b11 // utoa::@11 __b11: - // [138] utoa::value#0 = utoa_append::return#0 - // [139] utoa::buffer#4 = ++ utoa::buffer#10 -- pbuz1=_inc_pbuz1 + // [136] utoa::value#0 = utoa_append::return#0 + // [137] utoa::buffer#4 = ++ utoa::buffer#10 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [131] phi from utoa::@11 to utoa::@9 [phi:utoa::@11->utoa::@9] + // [129] phi from utoa::@11 to utoa::@9 [phi:utoa::@11->utoa::@9] __b9_from___b11: - // [131] phi utoa::buffer#15 = utoa::buffer#4 [phi:utoa::@11->utoa::@9#0] -- register_copy - // [131] phi utoa::started#4 = 1 [phi:utoa::@11->utoa::@9#1] -- vbuxx=vbuc1 + // [129] phi utoa::buffer#15 = utoa::buffer#4 [phi:utoa::@11->utoa::@9#0] -- register_copy + // [129] phi utoa::started#4 = 1 [phi:utoa::@11->utoa::@9#1] -- vbuxx=vbuc1 ldx #1 - // [131] phi utoa::value#7 = utoa::value#0 [phi:utoa::@11->utoa::@9#2] -- register_copy + // [129] phi utoa::value#7 = utoa::value#0 [phi:utoa::@11->utoa::@9#2] -- register_copy jmp __b9 } // printf_number_buffer @@ -6367,170 +6339,170 @@ printf_number_buffer: { .label putc = 2 .label format_justify_left = $1a .label format_upper_case = $1b - // [141] if(0==printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- 0_eq_vbuxx_then_la1 + // [139] if(0==printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- 0_eq_vbuxx_then_la1 cpx #0 beq __b1_from_printf_number_buffer - // [142] phi from printf_number_buffer to printf_number_buffer::@6 [phi:printf_number_buffer->printf_number_buffer::@6] + // [140] phi from printf_number_buffer to printf_number_buffer::@6 [phi:printf_number_buffer->printf_number_buffer::@6] __b6_from_printf_number_buffer: jmp __b6 // printf_number_buffer::@6 __b6: - // [143] call strlen - // [209] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] + // [141] call strlen + // [207] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] strlen_from___b6: jsr strlen - // [144] strlen::return#2 = strlen::len#2 + // [142] strlen::return#2 = strlen::len#2 jmp __b14 // printf_number_buffer::@14 __b14: - // [145] printf_number_buffer::$19 = strlen::return#2 - // [146] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 -- vbsyy=_sbyte_vwuz1 + // [143] printf_number_buffer::$19 = strlen::return#2 + // [144] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 -- vbsyy=_sbyte_vwuz1 // There is a minimum length - work out the padding ldy.z __19 - // [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- 0_eq_vbuz1_then_la1 + // [145] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- 0_eq_vbuz1_then_la1 lda.z buffer_sign beq __b13_from___b14 jmp __b7 // printf_number_buffer::@7 __b7: - // [148] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 -- vbsyy=_inc_vbsyy + // [146] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 -- vbsyy=_inc_vbsyy iny - // [149] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] + // [147] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] __b13_from___b14: __b13_from___b7: - // [149] phi printf_number_buffer::len#2 = printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy + // [147] phi printf_number_buffer::len#2 = printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy jmp __b13 // printf_number_buffer::@13 __b13: - // [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 -- vbsz1=vbsxx_minus_vbsyy + // [148] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 -- vbsz1=vbsxx_minus_vbsyy txa sty.z $ff sec sbc.z $ff sta.z padding - // [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 + // [149] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 lda.z padding cmp #0 bpl __b21_from___b13 - // [153] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] + // [151] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] __b1_from_printf_number_buffer: __b1_from___b13: - // [153] phi printf_number_buffer::padding#10 = 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 + // [151] phi printf_number_buffer::padding#10 = 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 lda #0 sta.z padding jmp __b1 - // [152] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] + // [150] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] __b21_from___b13: jmp __b21 // printf_number_buffer::@21 __b21: - // [153] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] + // [151] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] __b1_from___b21: - // [153] phi printf_number_buffer::padding#10 = printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy + // [151] phi printf_number_buffer::padding#10 = printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy jmp __b1 // printf_number_buffer::@1 __b1: - // [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 + // [152] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 lda.z format_justify_left bne __b2 jmp __b17 // printf_number_buffer::@17 __b17: - // [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 + // [153] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 lda.z format_zero_padding bne __b2 jmp __b16 // printf_number_buffer::@16 __b16: - // [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- 0_neq_vbsz1_then_la1 + // [154] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- 0_neq_vbsz1_then_la1 lda.z padding cmp #0 bne __b8 jmp __b2 // printf_number_buffer::@8 __b8: - // [157] printf_padding::putc#0 = printf_number_buffer::putc#10 - // [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [155] printf_padding::putc#0 = printf_number_buffer::putc#10 + // [156] printf_padding::length#0 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [159] call printf_padding - // [215] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] + // [157] call printf_padding + // [213] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] printf_padding_from___b8: - // [215] phi printf_padding::putc#7 = printf_padding::putc#0 [phi:printf_number_buffer::@8->printf_padding#0] -- register_copy - // [215] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@8->printf_padding#1] -- vbuz1=vbuc1 + // [213] phi printf_padding::putc#7 = printf_padding::putc#0 [phi:printf_number_buffer::@8->printf_padding#0] -- register_copy + // [213] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@8->printf_padding#1] -- vbuz1=vbuc1 lda #' ' sta.z printf_padding.pad - // [215] phi printf_padding::length#6 = printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#2] -- register_copy + // [213] phi printf_padding::length#6 = printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#2] -- register_copy jsr printf_padding jmp __b2 // printf_number_buffer::@2 __b2: - // [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- 0_eq_vbuz1_then_la1 + // [158] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- 0_eq_vbuz1_then_la1 lda.z buffer_sign beq __b3 jmp __b9 // printf_number_buffer::@9 __b9: - // [161] stackpush(char) = printf_number_buffer::buffer_sign#10 -- _stackpushbyte_=vbuz1 + // [159] stackpush(char) = printf_number_buffer::buffer_sign#10 -- _stackpushbyte_=vbuz1 lda.z buffer_sign pha - // [162] callexecute *printf_number_buffer::putc#10 -- call__deref_pprz1 + // [160] callexecute *printf_number_buffer::putc#10 -- call__deref_pprz1 jsr icall7 // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla jmp __b3 // printf_number_buffer::@3 __b3: - // [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- 0_eq_vbuz1_then_la1 + // [162] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- 0_eq_vbuz1_then_la1 lda.z format_zero_padding beq __b4 jmp __b18 // printf_number_buffer::@18 __b18: - // [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- 0_neq_vbsz1_then_la1 + // [163] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- 0_neq_vbsz1_then_la1 lda.z padding cmp #0 bne __b10 jmp __b4 // printf_number_buffer::@10 __b10: - // [166] printf_padding::putc#1 = printf_number_buffer::putc#10 - // [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [164] printf_padding::putc#1 = printf_number_buffer::putc#10 + // [165] printf_padding::length#1 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [168] call printf_padding - // [215] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] + // [166] call printf_padding + // [213] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] printf_padding_from___b10: - // [215] phi printf_padding::putc#7 = printf_padding::putc#1 [phi:printf_number_buffer::@10->printf_padding#0] -- register_copy - // [215] phi printf_padding::pad#7 = '0' [phi:printf_number_buffer::@10->printf_padding#1] -- vbuz1=vbuc1 + // [213] phi printf_padding::putc#7 = printf_padding::putc#1 [phi:printf_number_buffer::@10->printf_padding#0] -- register_copy + // [213] phi printf_padding::pad#7 = '0' [phi:printf_number_buffer::@10->printf_padding#1] -- vbuz1=vbuc1 lda #'0' sta.z printf_padding.pad - // [215] phi printf_padding::length#6 = printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#2] -- register_copy + // [213] phi printf_padding::length#6 = printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#2] -- register_copy jsr printf_padding jmp __b4 // printf_number_buffer::@4 __b4: - // [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- 0_eq_vbuz1_then_la1 + // [167] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- 0_eq_vbuz1_then_la1 lda.z format_upper_case beq __b5 - // [170] phi from printf_number_buffer::@4 to printf_number_buffer::@11 [phi:printf_number_buffer::@4->printf_number_buffer::@11] + // [168] phi from printf_number_buffer::@4 to printf_number_buffer::@11 [phi:printf_number_buffer::@4->printf_number_buffer::@11] __b11_from___b4: jmp __b11 // printf_number_buffer::@11 __b11: - // [171] call strupr - // [223] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] + // [169] call strupr + // [221] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] strupr_from___b11: jsr strupr jmp __b5 // printf_number_buffer::@5 __b5: - // [172] printf_str::putc#0 = printf_number_buffer::putc#10 - // [173] call printf_str - // [71] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] + // [170] printf_str::putc#0 = printf_number_buffer::putc#10 + // [171] call printf_str + // [69] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] printf_str_from___b5: - // [71] phi printf_str::putc#12 = printf_str::putc#0 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy - // [71] phi printf_str::s#12 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_number_buffer::@5->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::putc#12 = printf_str::putc#0 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy + // [69] phi printf_str::s#12 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_number_buffer::@5->printf_str#1] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -6539,42 +6511,42 @@ printf_number_buffer: { jmp __b15 // printf_number_buffer::@15 __b15: - // [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- 0_eq_vbuz1_then_la1 + // [172] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- 0_eq_vbuz1_then_la1 lda.z format_justify_left beq __breturn jmp __b20 // printf_number_buffer::@20 __b20: - // [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- 0_neq_vbuz1_then_la1 + // [173] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- 0_neq_vbuz1_then_la1 lda.z format_zero_padding bne __breturn jmp __b19 // printf_number_buffer::@19 __b19: - // [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- 0_neq_vbsz1_then_la1 + // [174] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- 0_neq_vbsz1_then_la1 lda.z padding cmp #0 bne __b12 jmp __breturn // printf_number_buffer::@12 __b12: - // [177] printf_padding::putc#2 = printf_number_buffer::putc#10 - // [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [175] printf_padding::putc#2 = printf_number_buffer::putc#10 + // [176] printf_padding::length#2 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [179] call printf_padding - // [215] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] + // [177] call printf_padding + // [213] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] printf_padding_from___b12: - // [215] phi printf_padding::putc#7 = printf_padding::putc#2 [phi:printf_number_buffer::@12->printf_padding#0] -- register_copy - // [215] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@12->printf_padding#1] -- vbuz1=vbuc1 + // [213] phi printf_padding::putc#7 = printf_padding::putc#2 [phi:printf_number_buffer::@12->printf_padding#0] -- register_copy + // [213] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@12->printf_padding#1] -- vbuz1=vbuc1 lda #' ' sta.z printf_padding.pad - // [215] phi printf_padding::length#6 = printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#2] -- register_copy + // [213] phi printf_padding::length#6 = printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#2] -- register_copy jsr printf_padding jmp __breturn // printf_number_buffer::@return __breturn: - // [180] return + // [178] return rts // Outside Flow icall7: @@ -6593,16 +6565,16 @@ ultoa: { .label buffer = 2 .label digit = $14 .label value = 4 - // [182] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] + // [180] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] __b1_from_ultoa: - // [182] phi ultoa::buffer#11 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 + // [180] phi ultoa::buffer#11 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer+1 - // [182] phi ultoa::started#2 = 0 [phi:ultoa->ultoa::@1#1] -- vbuxx=vbuc1 + // [180] phi ultoa::started#2 = 0 [phi:ultoa->ultoa::@1#1] -- vbuxx=vbuc1 ldx #0 - // [182] phi ultoa::value#2 = printf_slong::uvalue#0 [phi:ultoa->ultoa::@1#2] -- vduz1=vduc1 + // [180] phi ultoa::value#2 = printf_slong::uvalue#0 [phi:ultoa->ultoa::@1#2] -- vduz1=vduc1 lda #printf_slong.uvalue @@ -6611,47 +6583,47 @@ ultoa: { sta.z value+2 lda #>printf_slong.uvalue>>$10 sta.z value+3 - // [182] phi ultoa::digit#2 = 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 + // [180] phi ultoa::digit#2 = 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 lda #0 sta.z digit jmp __b1 // ultoa::@1 __b1: - // [183] if(ultoa::digit#2=ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 + // [190] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 lda.z value+3 cmp.z digit_value+3 bcc !+ @@ -6684,48 +6656,48 @@ ultoa: { cmp.z digit_value bcs __b5 !: - // [193] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] + // [191] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] __b4_from___b7: - // [193] phi ultoa::buffer#14 = ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy - // [193] phi ultoa::started#4 = ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy - // [193] phi ultoa::value#6 = ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy + // [191] phi ultoa::buffer#14 = ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy + // [191] phi ultoa::started#4 = ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy + // [191] phi ultoa::value#6 = ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy jmp __b4 // ultoa::@4 __b4: - // [194] ultoa::digit#1 = ++ ultoa::digit#2 -- vbuz1=_inc_vbuz1 + // [192] ultoa::digit#1 = ++ ultoa::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [182] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1] + // [180] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1] __b1_from___b4: - // [182] phi ultoa::buffer#11 = ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy - // [182] phi ultoa::started#2 = ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy - // [182] phi ultoa::value#2 = ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy - // [182] phi ultoa::digit#2 = ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy + // [180] phi ultoa::buffer#11 = ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy + // [180] phi ultoa::started#2 = ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy + // [180] phi ultoa::value#2 = ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy + // [180] phi ultoa::digit#2 = ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy jmp __b1 // ultoa::@5 __b5: - // [195] ultoa_append::buffer#0 = ultoa::buffer#11 - // [196] ultoa_append::value#0 = ultoa::value#2 - // [197] ultoa_append::sub#0 = ultoa::digit_value#0 - // [198] call ultoa_append - // [233] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] + // [193] ultoa_append::buffer#0 = ultoa::buffer#11 + // [194] ultoa_append::value#0 = ultoa::value#2 + // [195] ultoa_append::sub#0 = ultoa::digit_value#0 + // [196] call ultoa_append + // [231] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] ultoa_append_from___b5: jsr ultoa_append - // [199] ultoa_append::return#0 = ultoa_append::value#2 + // [197] ultoa_append::return#0 = ultoa_append::value#2 jmp __b6 // ultoa::@6 __b6: - // [200] ultoa::value#0 = ultoa_append::return#0 - // [201] ultoa::buffer#4 = ++ ultoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [198] ultoa::value#0 = ultoa_append::return#0 + // [199] ultoa::buffer#4 = ++ ultoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [193] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] + // [191] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] __b4_from___b6: - // [193] phi ultoa::buffer#14 = ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy - // [193] phi ultoa::started#4 = 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuxx=vbuc1 + // [191] phi ultoa::buffer#14 = ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy + // [191] phi ultoa::started#4 = 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuxx=vbuc1 ldx #1 - // [193] phi ultoa::value#6 = ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy + // [191] phi ultoa::value#6 = ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy jmp __b4 } // utoa_append @@ -6743,15 +6715,15 @@ utoa_append: { .label value = 2 .label sub = 8 .label return = 2 - // [203] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] + // [201] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] __b1_from_utoa_append: - // [203] phi utoa_append::digit#2 = 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 + // [201] phi utoa_append::digit#2 = 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 ldx #0 - // [203] phi utoa_append::value#2 = utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy + // [201] phi utoa_append::value#2 = utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy jmp __b1 // utoa_append::@1 __b1: - // [204] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 + // [202] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 lda.z sub+1 cmp.z value+1 bne !+ @@ -6763,20 +6735,20 @@ utoa_append: { jmp __b3 // utoa_append::@3 __b3: - // [205] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx + // [203] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x ldy #0 sta (buffer),y jmp __breturn // utoa_append::@return __breturn: - // [206] return + // [204] return rts // utoa_append::@2 __b2: - // [207] utoa_append::digit#1 = ++ utoa_append::digit#2 -- vbuxx=_inc_vbuxx + // [205] utoa_append::digit#1 = ++ utoa_append::digit#2 -- vbuxx=_inc_vbuxx inx - // [208] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 + // [206] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 lda.z value sec sbc.z sub @@ -6784,10 +6756,10 @@ utoa_append: { lda.z value+1 sbc.z sub+1 sta.z value+1 - // [203] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] + // [201] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] __b1_from___b2: - // [203] phi utoa_append::digit#2 = utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy - // [203] phi utoa_append::value#2 = utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy + // [201] phi utoa_append::digit#2 = utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy + // [201] phi utoa_append::value#2 = utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy jmp __b1 } // strlen @@ -6797,14 +6769,14 @@ strlen: { .label len = 8 .label str = $10 .label return = 8 - // [210] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] + // [208] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] __b1_from_strlen: - // [210] phi strlen::len#2 = 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 + // [208] phi strlen::len#2 = 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 lda #<0 sta.z len lda #>0 sta.z len+1 - // [210] phi strlen::str#3 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1 + // [208] phi strlen::str#3 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -6812,7 +6784,7 @@ strlen: { jmp __b1 // strlen::@1 __b1: - // [211] if(0!=*strlen::str#3) goto strlen::@2 -- 0_neq__deref_pbuz1_then_la1 + // [209] if(0!=*strlen::str#3) goto strlen::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 @@ -6820,24 +6792,24 @@ strlen: { jmp __breturn // strlen::@return __breturn: - // [212] return + // [210] return rts // strlen::@2 __b2: - // [213] strlen::len#1 = ++ strlen::len#2 -- vwuz1=_inc_vwuz1 + // [211] strlen::len#1 = ++ strlen::len#2 -- vwuz1=_inc_vwuz1 inc.z len bne !+ inc.z len+1 !: - // [214] strlen::str#0 = ++ strlen::str#3 -- pbuz1=_inc_pbuz1 + // [212] strlen::str#0 = ++ strlen::str#3 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [210] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] + // [208] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] __b1_from___b2: - // [210] phi strlen::len#2 = strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [210] phi strlen::str#3 = strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy + // [208] phi strlen::len#2 = strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy + // [208] phi strlen::str#3 = strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy jmp __b1 } // printf_padding @@ -6848,40 +6820,40 @@ printf_padding: { .label putc = 2 .label length = $13 .label pad = $16 - // [216] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] + // [214] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] __b1_from_printf_padding: - // [216] phi printf_padding::i#2 = 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 + // [214] phi printf_padding::i#2 = 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 lda #0 sta.z i jmp __b1 // printf_padding::@1 __b1: - // [217] if(printf_padding::i#2printf_padding::@1] + // [214] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1] __b1_from___b3: - // [216] phi printf_padding::i#2 = printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy + // [214] phi printf_padding::i#2 = printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy jmp __b1 // Outside Flow icall8: @@ -6893,9 +6865,9 @@ printf_padding: { strupr: { .label str = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS .label src = $e - // [224] phi from strupr to strupr::@1 [phi:strupr->strupr::@1] + // [222] phi from strupr to strupr::@1 [phi:strupr->strupr::@1] __b1_from_strupr: - // [224] phi strupr::src#2 = strupr::str#0 [phi:strupr->strupr::@1#0] -- pbuz1=pbuc1 + // [222] phi strupr::src#2 = strupr::str#0 [phi:strupr->strupr::@1#0] -- pbuz1=pbuc1 lda #str @@ -6903,7 +6875,7 @@ strupr: { jmp __b1 // strupr::@1 __b1: - // [225] if(0!=*strupr::src#2) goto strupr::@2 -- 0_neq__deref_pbuz1_then_la1 + // [223] if(0!=*strupr::src#2) goto strupr::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (src),y cmp #0 @@ -6911,31 +6883,31 @@ strupr: { jmp __breturn // strupr::@return __breturn: - // [226] return + // [224] return rts // strupr::@2 __b2: - // [227] toupper::ch#0 = *strupr::src#2 -- vbuaa=_deref_pbuz1 + // [225] toupper::ch#0 = *strupr::src#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (src),y - // [228] call toupper + // [226] call toupper jsr toupper - // [229] toupper::return#3 = toupper::return#2 + // [227] toupper::return#3 = toupper::return#2 jmp __b3 // strupr::@3 __b3: - // [230] strupr::$0 = toupper::return#3 - // [231] *strupr::src#2 = strupr::$0 -- _deref_pbuz1=vbuaa + // [228] strupr::$0 = toupper::return#3 + // [229] *strupr::src#2 = strupr::$0 -- _deref_pbuz1=vbuaa ldy #0 sta (src),y - // [232] strupr::src#1 = ++ strupr::src#2 -- pbuz1=_inc_pbuz1 + // [230] strupr::src#1 = ++ strupr::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 !: - // [224] phi from strupr::@3 to strupr::@1 [phi:strupr::@3->strupr::@1] + // [222] phi from strupr::@3 to strupr::@1 [phi:strupr::@3->strupr::@1] __b1_from___b3: - // [224] phi strupr::src#2 = strupr::src#1 [phi:strupr::@3->strupr::@1#0] -- register_copy + // [222] phi strupr::src#2 = strupr::src#1 [phi:strupr::@3->strupr::@1#0] -- register_copy jmp __b1 } // ultoa_append @@ -6953,15 +6925,15 @@ ultoa_append: { .label value = 4 .label sub = $a .label return = 4 - // [234] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] + // [232] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] __b1_from_ultoa_append: - // [234] phi ultoa_append::digit#2 = 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuxx=vbuc1 + // [232] phi ultoa_append::digit#2 = 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuxx=vbuc1 ldx #0 - // [234] phi ultoa_append::value#2 = ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy + // [232] phi ultoa_append::value#2 = ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy jmp __b1 // ultoa_append::@1 __b1: - // [235] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 + // [233] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 lda.z value+3 cmp.z sub+3 bcc !+ @@ -6981,20 +6953,20 @@ ultoa_append: { jmp __b3 // ultoa_append::@3 __b3: - // [236] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx + // [234] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x ldy #0 sta (buffer),y jmp __breturn // ultoa_append::@return __breturn: - // [237] return + // [235] return rts // ultoa_append::@2 __b2: - // [238] ultoa_append::digit#1 = ++ ultoa_append::digit#2 -- vbuxx=_inc_vbuxx + // [236] ultoa_append::digit#1 = ++ ultoa_append::digit#2 -- vbuxx=_inc_vbuxx inx - // [239] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 + // [237] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 lda.z value sec sbc.z sub @@ -7008,10 +6980,10 @@ ultoa_append: { lda.z value+3 sbc.z sub+3 sta.z value+3 - // [234] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] + // [232] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] __b1_from___b2: - // [234] phi ultoa_append::digit#2 = ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy - // [234] phi ultoa_append::value#2 = ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy + // [232] phi ultoa_append::digit#2 = ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy + // [232] phi ultoa_append::value#2 = ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy jmp __b1 } // toupper @@ -7019,31 +6991,31 @@ ultoa_append: { // Returns uppercase equivalent to c, if such value exists, else c remains unchanged // __register(A) char toupper(__register(A) char ch) toupper: { - // [240] if(toupper::ch#0<'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 + // [238] if(toupper::ch#0<'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 cmp #'a' bcc __breturn_from_toupper jmp __b2 // toupper::@2 __b2: - // [241] if(toupper::ch#0<='z') goto toupper::@1 -- vbuaa_le_vbuc1_then_la1 + // [239] if(toupper::ch#0<='z') goto toupper::@1 -- vbuaa_le_vbuc1_then_la1 cmp #'z' bcc __b1 beq __b1 - // [243] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] + // [241] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] __breturn_from_toupper: __breturn_from___b1: __breturn_from___b2: - // [243] phi toupper::return#2 = toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy + // [241] phi toupper::return#2 = toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy jmp __breturn // toupper::@1 __b1: - // [242] toupper::return#0 = toupper::ch#0 + 'A'-'a' -- vbuaa=vbuaa_plus_vbuc1 + // [240] toupper::return#0 = toupper::ch#0 + 'A'-'a' -- vbuaa=vbuaa_plus_vbuc1 clc adc #'A'-'a' jmp __breturn_from___b1 // toupper::@return __breturn: - // [244] return + // [242] return rts } // File Data @@ -7063,6 +7035,12 @@ toupper: { BUF: .fill $14, 0 // Buffer used for stringified number being printed printf_buffer: .fill SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER, 0 + /// The capacity of the buffer (n passed to snprintf()) + /// Used to hold state while printing + __snprintf_capacity: .word 0 + // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity. + /// Used to hold state while printing + __snprintf_size: .word 0 ASSEMBLER OPTIMIZATIONS Removing instruction jmp __init1 @@ -7160,10 +7138,6 @@ Removing instruction jmp __breturn Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination Removing instruction lda #>0 -Removing instruction lda #<0 -Removing instruction lda #>0 -Removing instruction lda #<0 -Removing instruction lda #>0 Removing instruction lda #>0 Removing instruction ldy #0 Removing instruction lda #'r' @@ -7382,9 +7356,9 @@ __constant unsigned int RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 } __constant unsigned int RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 } __constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c __constant unsigned int STACK_BASE = $103 -__loadstore char *__snprintf_buffer // zp[2]:30 9.022222222222222 -__loadstore volatile unsigned int __snprintf_capacity // zp[2]:32 6.48936170212766 -__loadstore volatile unsigned int __snprintf_size // zp[2]:28 11.021739130434781 +__loadstore char *__snprintf_buffer // zp[2]:28 9.022222222222222 +__loadstore volatile unsigned int __snprintf_capacity = 0 // mem[2] 6.446808510638299 +__loadstore volatile unsigned int __snprintf_size = 0 // mem[2] 10.978260869565217 void __start() void main() __constant char main::s[$e] = "hello world! " @@ -7654,9 +7628,9 @@ zp[1]:18 [ printf_padding::i#2 printf_padding::i#1 ] zp[2]:14 [ strupr::src#2 strupr::src#1 utoa::digit_values#8 printf_str::s#11 printf_str::s#12 printf_str::s#0 ] reg byte x [ ultoa_append::digit#2 ultoa_append::digit#1 ] reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ] -zp[2]:32 [ __snprintf_capacity ] -zp[2]:28 [ __snprintf_size ] -zp[2]:30 [ __snprintf_buffer ] +zp[2]:28 [ __snprintf_buffer ] +mem[2] [ __snprintf_size ] +mem[2] [ __snprintf_capacity ] reg byte a [ printf_str::c#1 ] reg byte a [ utoa::$4 ] reg byte x [ utoa::$11 ] @@ -7671,7 +7645,7 @@ mem[12] [ printf_buffer ] FINAL ASSEMBLER -Score: 19897 +Score: 19899 // File Comments // Tests sprintf function call rewriting @@ -7693,40 +7667,26 @@ Score: 19897 .const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 .const STACK_BASE = $103 .const SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c - /// The capacity of the buffer (n passed to snprintf()) - /// Used to hold state while printing - .label __snprintf_capacity = $20 - // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity. - /// Used to hold state while printing - .label __snprintf_size = $1c /// Current position in the buffer being filled ( initially *s passed to snprintf() /// Used to hold state while printing - .label __snprintf_buffer = $1e + .label __snprintf_buffer = $1c .label screen = $17 .segment Code // __start __start: { // __start::__init1 - // volatile size_t __snprintf_capacity - // [1] __snprintf_capacity = 0 -- vwuz1=vwuc1 - lda #<0 - sta.z __snprintf_capacity - sta.z __snprintf_capacity+1 - // volatile size_t __snprintf_size - // [2] __snprintf_size = 0 -- vwuz1=vwuc1 - sta.z __snprintf_size - sta.z __snprintf_size+1 // char * __snprintf_buffer - // [3] __snprintf_buffer = (char *) 0 -- pbuz1=pbuc1 + // [1] __snprintf_buffer = (char *) 0 -- pbuz1=pbuc1 + lda #<0 sta.z __snprintf_buffer sta.z __snprintf_buffer+1 - // [4] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] + // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [5] call main - // [16] phi from __start::@1 to main [phi:__start::@1->main] + // [3] call main + // [14] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return - // [6] return + // [4] return rts } // snputc @@ -7736,57 +7696,57 @@ __start: { // void snputc(__register(X) char c) snputc: { .const OFFSET_STACK_C = 0 - // [7] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) -- vbuxx=_stackidxbyte_vbuc1 + // [5] snputc::c#0 = stackidx(char,snputc::OFFSET_STACK_C) -- vbuxx=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_C,x tax // ++__snprintf_size; - // [8] __snprintf_size = ++ __snprintf_size -- vwuz1=_inc_vwuz1 - inc.z __snprintf_size + // [6] __snprintf_size = ++ __snprintf_size -- vwum1=_inc_vwum1 + inc __snprintf_size bne !+ - inc.z __snprintf_size+1 + inc __snprintf_size+1 !: // if(__snprintf_size > __snprintf_capacity) - // [9] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 -- vwuz1_le_vwuz2_then_la1 - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + // [7] if(__snprintf_size<=__snprintf_capacity) goto snputc::@1 -- vwum1_le_vwum2_then_la1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne !+ - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity beq __b1 !: bcc __b1 // snputc::@return // } - // [10] return + // [8] return rts // snputc::@1 __b1: // if(__snprintf_size==__snprintf_capacity) - // [11] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 -- vwuz1_neq_vwuz2_then_la1 - lda.z __snprintf_size+1 - cmp.z __snprintf_capacity+1 + // [9] if(__snprintf_size!=__snprintf_capacity) goto snputc::@3 -- vwum1_neq_vwum2_then_la1 + lda __snprintf_size+1 + cmp __snprintf_capacity+1 bne __b2 - lda.z __snprintf_size - cmp.z __snprintf_capacity + lda __snprintf_size + cmp __snprintf_capacity bne __b2 - // [13] phi from snputc::@1 to snputc::@2 [phi:snputc::@1->snputc::@2] - // [13] phi snputc::c#2 = 0 [phi:snputc::@1->snputc::@2#0] -- vbuxx=vbuc1 + // [11] phi from snputc::@1 to snputc::@2 [phi:snputc::@1->snputc::@2] + // [11] phi snputc::c#2 = 0 [phi:snputc::@1->snputc::@2#0] -- vbuxx=vbuc1 ldx #0 - // [12] phi from snputc::@1 to snputc::@3 [phi:snputc::@1->snputc::@3] + // [10] phi from snputc::@1 to snputc::@3 [phi:snputc::@1->snputc::@3] // snputc::@3 - // [13] phi from snputc::@3 to snputc::@2 [phi:snputc::@3->snputc::@2] - // [13] phi snputc::c#2 = snputc::c#0 [phi:snputc::@3->snputc::@2#0] -- register_copy + // [11] phi from snputc::@3 to snputc::@2 [phi:snputc::@3->snputc::@2] + // [11] phi snputc::c#2 = snputc::c#0 [phi:snputc::@3->snputc::@2#0] -- register_copy // snputc::@2 __b2: // *(__snprintf_buffer++) = c - // [14] *__snprintf_buffer = snputc::c#2 -- _deref_pbuz1=vbuxx + // [12] *__snprintf_buffer = snputc::c#2 -- _deref_pbuz1=vbuxx // Append char txa ldy #0 sta (__snprintf_buffer),y // *(__snprintf_buffer++) = c; - // [15] __snprintf_buffer = ++ __snprintf_buffer -- pbuz1=_inc_pbuz1 + // [13] __snprintf_buffer = ++ __snprintf_buffer -- pbuz1=_inc_pbuz1 inc.z __snprintf_buffer bne !+ inc.z __snprintf_buffer+1 @@ -7796,19 +7756,19 @@ snputc: { // main main: { // sprintf(BUF, "hello world! ") - // [17] call snprintf_init + // [15] call snprintf_init jsr snprintf_init - // [18] phi from main to main::@1 [phi:main->main::@1] + // [16] phi from main to main::@1 [phi:main->main::@1] // main::@1 // sprintf(BUF, "hello world! ") - // [19] call printf_str - // [71] phi from main::@1 to printf_str [phi:main::@1->printf_str] - // [71] phi printf_str::putc#12 = &snputc [phi:main::@1->printf_str#0] -- pprz1=pprc1 + // [17] call printf_str + // [69] phi from main::@1 to printf_str [phi:main::@1->printf_str] + // [69] phi printf_str::putc#12 = &snputc [phi:main::@1->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::s [phi:main::@1->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::s [phi:main::@1->printf_str#1] -- pbuz1=pbuc1 lda #s @@ -7816,66 +7776,66 @@ main: { jsr printf_str // main::@2 // sprintf(BUF, "hello world! ") - // [20] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [18] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [21] callexecute snputc -- call_vprc1 + // [19] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla // print(BUF) - // [23] call print - // [80] phi from main::@2 to print [phi:main::@2->print] - // [80] phi screen#25 = (char *) 1024 [phi:main::@2->print#0] -- pbuz1=pbuc1 + // [21] call print + // [78] phi from main::@2 to print [phi:main::@2->print] + // [78] phi screen#25 = (char *) 1024 [phi:main::@2->print#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 sta.z screen+1 jsr print - // [24] phi from main::@2 to main::@3 [phi:main::@2->main::@3] + // [22] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // sprintf(BUF, "hello %s%c ", "world", '!') - // [25] call snprintf_init + // [23] call snprintf_init jsr snprintf_init - // [26] phi from main::@3 to main::@4 [phi:main::@3->main::@4] + // [24] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 // sprintf(BUF, "hello %s%c ", "world", '!') - // [27] call printf_str - // [71] phi from main::@4 to printf_str [phi:main::@4->printf_str] - // [71] phi printf_str::putc#12 = &snputc [phi:main::@4->printf_str#0] -- pprz1=pprc1 + // [25] call printf_str + // [69] phi from main::@4 to printf_str [phi:main::@4->printf_str] + // [69] phi printf_str::putc#12 = &snputc [phi:main::@4->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::s1 [phi:main::@4->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::s1 [phi:main::@4->printf_str#1] -- pbuz1=pbuc1 lda #s1 sta.z printf_str.s+1 jsr printf_str - // [28] phi from main::@4 to main::@5 [phi:main::@4->main::@5] + // [26] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // sprintf(BUF, "hello %s%c ", "world", '!') - // [29] call printf_string - // [87] phi from main::@5 to printf_string [phi:main::@5->printf_string] + // [27] call printf_string + // [85] phi from main::@5 to printf_string [phi:main::@5->printf_string] jsr printf_string // main::@6 // sprintf(BUF, "hello %s%c ", "world", '!') - // [30] stackpush(char) = '!' -- _stackpushbyte_=vbuc1 + // [28] stackpush(char) = '!' -- _stackpushbyte_=vbuc1 lda #'!' pha - // [31] callexecute snputc -- call_vprc1 + // [29] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla - // [33] call printf_str - // [71] phi from main::@6 to printf_str [phi:main::@6->printf_str] - // [71] phi printf_str::putc#12 = &snputc [phi:main::@6->printf_str#0] -- pprz1=pprc1 + // [31] call printf_str + // [69] phi from main::@6 to printf_str [phi:main::@6->printf_str] + // [69] phi printf_str::putc#12 = &snputc [phi:main::@6->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::s2 [phi:main::@6->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::s2 [phi:main::@6->printf_str#1] -- pbuz1=pbuc1 lda #s2 @@ -7883,77 +7843,77 @@ main: { jsr printf_str // main::@7 // sprintf(BUF, "hello %s%c ", "world", '!') - // [34] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [32] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [35] callexecute snputc -- call_vprc1 + // [33] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla // print(BUF) - // [37] call print - // [80] phi from main::@7 to print [phi:main::@7->print] - // [80] phi screen#25 = screen#1 [phi:main::@7->print#0] -- register_copy + // [35] call print + // [78] phi from main::@7 to print [phi:main::@7->print] + // [78] phi screen#25 = screen#1 [phi:main::@7->print#0] -- register_copy jsr print - // [38] phi from main::@7 to main::@8 [phi:main::@7->main::@8] + // [36] phi from main::@7 to main::@8 [phi:main::@7->main::@8] // main::@8 // sprintf(BUF, "hello %d+%x! ", 3,11) - // [39] call snprintf_init + // [37] call snprintf_init jsr snprintf_init - // [40] phi from main::@8 to main::@9 [phi:main::@8->main::@9] + // [38] phi from main::@8 to main::@9 [phi:main::@8->main::@9] // main::@9 // sprintf(BUF, "hello %d+%x! ", 3,11) - // [41] call printf_str - // [71] phi from main::@9 to printf_str [phi:main::@9->printf_str] - // [71] phi printf_str::putc#12 = &snputc [phi:main::@9->printf_str#0] -- pprz1=pprc1 + // [39] call printf_str + // [69] phi from main::@9 to printf_str [phi:main::@9->printf_str] + // [69] phi printf_str::putc#12 = &snputc [phi:main::@9->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::s1 [phi:main::@9->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::s1 [phi:main::@9->printf_str#1] -- pbuz1=pbuc1 lda #s1 sta.z printf_str.s+1 jsr printf_str - // [42] phi from main::@9 to main::@10 [phi:main::@9->main::@10] + // [40] phi from main::@9 to main::@10 [phi:main::@9->main::@10] // main::@10 // sprintf(BUF, "hello %d+%x! ", 3,11) - // [43] call printf_sint + // [41] call printf_sint jsr printf_sint - // [44] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + // [42] phi from main::@10 to main::@11 [phi:main::@10->main::@11] // main::@11 // sprintf(BUF, "hello %d+%x! ", 3,11) - // [45] call printf_str - // [71] phi from main::@11 to printf_str [phi:main::@11->printf_str] - // [71] phi printf_str::putc#12 = &snputc [phi:main::@11->printf_str#0] -- pprz1=pprc1 + // [43] call printf_str + // [69] phi from main::@11 to printf_str [phi:main::@11->printf_str] + // [69] phi printf_str::putc#12 = &snputc [phi:main::@11->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::s4 [phi:main::@11->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::s4 [phi:main::@11->printf_str#1] -- pbuz1=pbuc1 lda #s4 sta.z printf_str.s+1 jsr printf_str - // [46] phi from main::@11 to main::@12 [phi:main::@11->main::@12] + // [44] phi from main::@11 to main::@12 [phi:main::@11->main::@12] // main::@12 // sprintf(BUF, "hello %d+%x! ", 3,11) - // [47] call printf_uint - // [97] phi from main::@12 to printf_uint [phi:main::@12->printf_uint] + // [45] call printf_uint + // [95] phi from main::@12 to printf_uint [phi:main::@12->printf_uint] jsr printf_uint - // [48] phi from main::@12 to main::@13 [phi:main::@12->main::@13] + // [46] phi from main::@12 to main::@13 [phi:main::@12->main::@13] // main::@13 // sprintf(BUF, "hello %d+%x! ", 3,11) - // [49] call printf_str - // [71] phi from main::@13 to printf_str [phi:main::@13->printf_str] - // [71] phi printf_str::putc#12 = &snputc [phi:main::@13->printf_str#0] -- pprz1=pprc1 + // [47] call printf_str + // [69] phi from main::@13 to printf_str [phi:main::@13->printf_str] + // [69] phi printf_str::putc#12 = &snputc [phi:main::@13->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::s5 [phi:main::@13->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::s5 [phi:main::@13->printf_str#1] -- pbuz1=pbuc1 lda #s5 @@ -7961,55 +7921,55 @@ main: { jsr printf_str // main::@14 // sprintf(BUF, "hello %d+%x! ", 3,11) - // [50] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [48] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [51] callexecute snputc -- call_vprc1 + // [49] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla // print(BUF) - // [53] call print - // [80] phi from main::@14 to print [phi:main::@14->print] - // [80] phi screen#25 = screen#1 [phi:main::@14->print#0] -- register_copy + // [51] call print + // [78] phi from main::@14 to print [phi:main::@14->print] + // [78] phi screen#25 = screen#1 [phi:main::@14->print#0] -- register_copy jsr print - // [54] phi from main::@14 to main::@15 [phi:main::@14->main::@15] + // [52] phi from main::@14 to main::@15 [phi:main::@14->main::@15] // main::@15 // sprintf(BUF, "hi %ld! ", 22222222l) - // [55] call snprintf_init + // [53] call snprintf_init jsr snprintf_init - // [56] phi from main::@15 to main::@16 [phi:main::@15->main::@16] + // [54] phi from main::@15 to main::@16 [phi:main::@15->main::@16] // main::@16 // sprintf(BUF, "hi %ld! ", 22222222l) - // [57] call printf_str - // [71] phi from main::@16 to printf_str [phi:main::@16->printf_str] - // [71] phi printf_str::putc#12 = &snputc [phi:main::@16->printf_str#0] -- pprz1=pprc1 + // [55] call printf_str + // [69] phi from main::@16 to printf_str [phi:main::@16->printf_str] + // [69] phi printf_str::putc#12 = &snputc [phi:main::@16->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::s6 [phi:main::@16->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::s6 [phi:main::@16->printf_str#1] -- pbuz1=pbuc1 lda #s6 sta.z printf_str.s+1 jsr printf_str - // [58] phi from main::@16 to main::@17 [phi:main::@16->main::@17] + // [56] phi from main::@16 to main::@17 [phi:main::@16->main::@17] // main::@17 // sprintf(BUF, "hi %ld! ", 22222222l) - // [59] call printf_slong + // [57] call printf_slong jsr printf_slong - // [60] phi from main::@17 to main::@18 [phi:main::@17->main::@18] + // [58] phi from main::@17 to main::@18 [phi:main::@17->main::@18] // main::@18 // sprintf(BUF, "hi %ld! ", 22222222l) - // [61] call printf_str - // [71] phi from main::@18 to printf_str [phi:main::@18->printf_str] - // [71] phi printf_str::putc#12 = &snputc [phi:main::@18->printf_str#0] -- pprz1=pprc1 + // [59] call printf_str + // [69] phi from main::@18 to printf_str [phi:main::@18->printf_str] + // [69] phi printf_str::putc#12 = &snputc [phi:main::@18->printf_str#0] -- pprz1=pprc1 lda #snputc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::s5 [phi:main::@18->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::s5 [phi:main::@18->printf_str#1] -- pbuz1=pbuc1 lda #s5 @@ -8017,21 +7977,21 @@ main: { jsr printf_str // main::@19 // sprintf(BUF, "hi %ld! ", 22222222l) - // [62] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 + // [60] stackpush(char) = 0 -- _stackpushbyte_=vbuc1 lda #0 pha - // [63] callexecute snputc -- call_vprc1 + // [61] callexecute snputc -- call_vprc1 jsr snputc // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla // print(BUF) - // [65] call print - // [80] phi from main::@19 to print [phi:main::@19->print] - // [80] phi screen#25 = screen#1 [phi:main::@19->print#0] -- register_copy + // [63] call print + // [78] phi from main::@19 to print [phi:main::@19->print] + // [78] phi screen#25 = screen#1 [phi:main::@19->print#0] -- register_copy jsr print // main::@return // } - // [66] return + // [64] return rts .segment Data s: .text "hello world! " @@ -8055,25 +8015,25 @@ main: { // void snprintf_init(char *s, unsigned int n) snprintf_init: { // __snprintf_capacity = n - // [67] __snprintf_capacity = $ffff -- vwuz1=vwuc1 + // [65] __snprintf_capacity = $ffff -- vwum1=vwuc1 lda #<$ffff - sta.z __snprintf_capacity + sta __snprintf_capacity lda #>$ffff - sta.z __snprintf_capacity+1 + sta __snprintf_capacity+1 // __snprintf_size = 0 - // [68] __snprintf_size = 0 -- vwuz1=vbuc1 + // [66] __snprintf_size = 0 -- vwum1=vbuc1 lda #<0 - sta.z __snprintf_size - sta.z __snprintf_size+1 + sta __snprintf_size + sta __snprintf_size+1 // __snprintf_buffer = s - // [69] __snprintf_buffer = BUF -- pbuz1=pbuc1 + // [67] __snprintf_buffer = BUF -- pbuz1=pbuc1 lda #BUF sta.z __snprintf_buffer+1 // snprintf_init::@return // } - // [70] return + // [68] return rts } // printf_str @@ -8082,32 +8042,32 @@ snprintf_init: { printf_str: { .label s = $e .label putc = 2 - // [72] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] - // [72] phi printf_str::s#11 = printf_str::s#12 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy + // [70] phi from printf_str printf_str::@2 to printf_str::@1 [phi:printf_str/printf_str::@2->printf_str::@1] + // [70] phi printf_str::s#11 = printf_str::s#12 [phi:printf_str/printf_str::@2->printf_str::@1#0] -- register_copy // printf_str::@1 __b1: // while(c=*s++) - // [73] printf_str::c#1 = *printf_str::s#11 -- vbuaa=_deref_pbuz1 + // [71] printf_str::c#1 = *printf_str::s#11 -- vbuaa=_deref_pbuz1 ldy #0 lda (s),y - // [74] printf_str::s#0 = ++ printf_str::s#11 -- pbuz1=_inc_pbuz1 + // [72] printf_str::s#0 = ++ printf_str::s#11 -- pbuz1=_inc_pbuz1 inc.z s bne !+ inc.z s+1 !: - // [75] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 + // [73] if(0!=printf_str::c#1) goto printf_str::@2 -- 0_neq_vbuaa_then_la1 cmp #0 bne __b2 // printf_str::@return // } - // [76] return + // [74] return rts // printf_str::@2 __b2: // putc(c) - // [77] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa + // [75] stackpush(char) = printf_str::c#1 -- _stackpushbyte_=vbuaa pha - // [78] callexecute *printf_str::putc#12 -- call__deref_pprz1 + // [76] callexecute *printf_str::putc#12 -- call__deref_pprz1 jsr icall6 // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla @@ -8120,9 +8080,9 @@ printf_str: { // void print(__zp(2) char *msg) print: { .label msg = 2 - // [81] phi from print to print::@1 [phi:print->print::@1] - // [81] phi screen#1 = screen#25 [phi:print->print::@1#0] -- register_copy - // [81] phi print::msg#5 = BUF [phi:print->print::@1#1] -- pbuz1=pbuc1 + // [79] phi from print to print::@1 [phi:print->print::@1] + // [79] phi screen#1 = screen#25 [phi:print->print::@1#0] -- register_copy + // [79] phi print::msg#5 = BUF [phi:print->print::@1#1] -- pbuz1=pbuc1 lda #BUF @@ -8130,36 +8090,36 @@ print: { // print::@1 __b1: // while(*msg) - // [82] if(0!=*print::msg#5) goto print::@2 -- 0_neq__deref_pbuz1_then_la1 + // [80] if(0!=*print::msg#5) goto print::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (msg),y cmp #0 bne __b2 // print::@return // } - // [83] return + // [81] return rts // print::@2 __b2: // *(screen++) = *(msg++) - // [84] *screen#1 = *print::msg#5 -- _deref_pbuz1=_deref_pbuz2 + // [82] *screen#1 = *print::msg#5 -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (msg),y sta (screen),y // *(screen++) = *(msg++); - // [85] screen#0 = ++ screen#1 -- pbuz1=_inc_pbuz1 + // [83] screen#0 = ++ screen#1 -- pbuz1=_inc_pbuz1 inc.z screen bne !+ inc.z screen+1 !: - // [86] print::msg#0 = ++ print::msg#5 -- pbuz1=_inc_pbuz1 + // [84] print::msg#0 = ++ print::msg#5 -- pbuz1=_inc_pbuz1 inc.z msg bne !+ inc.z msg+1 !: - // [81] phi from print::@2 to print::@1 [phi:print::@2->print::@1] - // [81] phi screen#1 = screen#0 [phi:print::@2->print::@1#0] -- register_copy - // [81] phi print::msg#5 = print::msg#0 [phi:print::@2->print::@1#1] -- register_copy + // [79] phi from print::@2 to print::@1 [phi:print::@2->print::@1] + // [79] phi screen#1 = screen#0 [phi:print::@2->print::@1#0] -- register_copy + // [79] phi print::msg#5 = print::msg#0 [phi:print::@2->print::@1#1] -- register_copy jmp __b1 } // printf_string @@ -8168,17 +8128,17 @@ print: { // void printf_string(void (*putc)(char), char *str, char format_min_length, char format_justify_left) printf_string: { .label putc = snputc - // [88] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] + // [86] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] // printf_string::@1 // printf_str(putc, str) - // [89] call printf_str - // [71] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] - // [71] phi printf_str::putc#12 = printf_string::putc#0 [phi:printf_string::@1->printf_str#0] -- pprz1=pprc1 + // [87] call printf_str + // [69] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] + // [69] phi printf_str::putc#12 = printf_string::putc#0 [phi:printf_string::@1->printf_str#0] -- pprz1=pprc1 lda #putc sta.z printf_str.putc+1 - // [71] phi printf_str::s#12 = main::str [phi:printf_string::@1->printf_str#1] -- pbuz1=pbuc1 + // [69] phi printf_str::s#12 = main::str [phi:printf_string::@1->printf_str#1] -- pbuz1=pbuc1 lda #main.str @@ -8186,7 +8146,7 @@ printf_string: { jsr printf_str // printf_string::@return // } - // [90] return + // [88] return rts } // printf_sint @@ -8202,52 +8162,52 @@ printf_sint: { .const uvalue = value .label putc = snputc // printf_buffer.sign = 0 - // [91] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [89] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer - // [92] phi from printf_sint to printf_sint::@1 [phi:printf_sint->printf_sint::@1] + // [90] phi from printf_sint to printf_sint::@1 [phi:printf_sint->printf_sint::@1] // printf_sint::@1 // utoa(uvalue, printf_buffer.digits, format.radix) - // [93] call utoa - // [109] phi from printf_sint::@1 to utoa [phi:printf_sint::@1->utoa] - // [109] phi utoa::value#10 = printf_sint::uvalue#0 [phi:printf_sint::@1->utoa#0] -- vwuz1=vwuc1 + // [91] call utoa + // [107] phi from printf_sint::@1 to utoa [phi:printf_sint::@1->utoa] + // [107] phi utoa::value#10 = printf_sint::uvalue#0 [phi:printf_sint::@1->utoa#0] -- vwuz1=vwuc1 lda #uvalue sta.z utoa.value+1 - // [109] phi utoa::radix#2 = DECIMAL [phi:printf_sint::@1->utoa#1] -- vbuxx=vbuc1 + // [107] phi utoa::radix#2 = DECIMAL [phi:printf_sint::@1->utoa#1] -- vbuxx=vbuc1 ldx #DECIMAL jsr utoa // printf_sint::@2 // printf_number_buffer(putc, printf_buffer, format) - // [94] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 + // [92] printf_number_buffer::buffer_sign#1 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 lda printf_buffer sta.z printf_number_buffer.buffer_sign - // [95] call printf_number_buffer + // [93] call printf_number_buffer // Print using format - // [140] phi from printf_sint::@2 to printf_number_buffer [phi:printf_sint::@2->printf_number_buffer] - // [140] phi printf_number_buffer::format_upper_case#10 = printf_sint::format_upper_case#0 [phi:printf_sint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + // [138] phi from printf_sint::@2 to printf_number_buffer [phi:printf_sint::@2->printf_number_buffer] + // [138] phi printf_number_buffer::format_upper_case#10 = printf_sint::format_upper_case#0 [phi:printf_sint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 lda #format_upper_case sta.z printf_number_buffer.format_upper_case - // [140] phi printf_number_buffer::putc#10 = printf_sint::putc#0 [phi:printf_sint::@2->printf_number_buffer#1] -- pprz1=pprc1 + // [138] phi printf_number_buffer::putc#10 = printf_sint::putc#0 [phi:printf_sint::@2->printf_number_buffer#1] -- pprz1=pprc1 lda #putc sta.z printf_number_buffer.putc+1 - // [140] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#1 [phi:printf_sint::@2->printf_number_buffer#2] -- register_copy - // [140] phi printf_number_buffer::format_zero_padding#10 = printf_sint::format_zero_padding#0 [phi:printf_sint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#1 [phi:printf_sint::@2->printf_number_buffer#2] -- register_copy + // [138] phi printf_number_buffer::format_zero_padding#10 = printf_sint::format_zero_padding#0 [phi:printf_sint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 lda #format_zero_padding sta.z printf_number_buffer.format_zero_padding - // [140] phi printf_number_buffer::format_justify_left#10 = printf_sint::format_justify_left#0 [phi:printf_sint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::format_justify_left#10 = printf_sint::format_justify_left#0 [phi:printf_sint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 lda #format_justify_left sta.z printf_number_buffer.format_justify_left - // [140] phi printf_number_buffer::format_min_length#3 = printf_sint::format_min_length#0 [phi:printf_sint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 + // [138] phi printf_number_buffer::format_min_length#3 = printf_sint::format_min_length#0 [phi:printf_sint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 ldx #format_min_length jsr printf_number_buffer // printf_sint::@return // } - // [96] return + // [94] return rts } // printf_uint @@ -8262,51 +8222,51 @@ printf_uint: { .label putc = snputc // printf_uint::@1 // printf_buffer.sign = format.sign_always?'+':0 - // [98] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [96] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer // utoa(uvalue, printf_buffer.digits, format.radix) - // [99] call utoa + // [97] call utoa // Format number into buffer - // [109] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] - // [109] phi utoa::value#10 = printf_uint::uvalue#0 [phi:printf_uint::@1->utoa#0] -- vwuz1=vwuc1 + // [107] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] + // [107] phi utoa::value#10 = printf_uint::uvalue#0 [phi:printf_uint::@1->utoa#0] -- vwuz1=vwuc1 lda #uvalue sta.z utoa.value+1 - // [109] phi utoa::radix#2 = HEXADECIMAL [phi:printf_uint::@1->utoa#1] -- vbuxx=vbuc1 + // [107] phi utoa::radix#2 = HEXADECIMAL [phi:printf_uint::@1->utoa#1] -- vbuxx=vbuc1 ldx #HEXADECIMAL jsr utoa // printf_uint::@2 // printf_number_buffer(putc, printf_buffer, format) - // [100] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 + // [98] printf_number_buffer::buffer_sign#2 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 lda printf_buffer sta.z printf_number_buffer.buffer_sign - // [101] call printf_number_buffer + // [99] call printf_number_buffer // Print using format - // [140] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] - // [140] phi printf_number_buffer::format_upper_case#10 = printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + // [138] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] + // [138] phi printf_number_buffer::format_upper_case#10 = printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 lda #format_upper_case sta.z printf_number_buffer.format_upper_case - // [140] phi printf_number_buffer::putc#10 = printf_uint::putc#0 [phi:printf_uint::@2->printf_number_buffer#1] -- pprz1=pprc1 + // [138] phi printf_number_buffer::putc#10 = printf_uint::putc#0 [phi:printf_uint::@2->printf_number_buffer#1] -- pprz1=pprc1 lda #putc sta.z printf_number_buffer.putc+1 - // [140] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 [phi:printf_uint::@2->printf_number_buffer#2] -- register_copy - // [140] phi printf_number_buffer::format_zero_padding#10 = printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 [phi:printf_uint::@2->printf_number_buffer#2] -- register_copy + // [138] phi printf_number_buffer::format_zero_padding#10 = printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 lda #format_zero_padding sta.z printf_number_buffer.format_zero_padding - // [140] phi printf_number_buffer::format_justify_left#10 = printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::format_justify_left#10 = printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 lda #format_justify_left sta.z printf_number_buffer.format_justify_left - // [140] phi printf_number_buffer::format_min_length#3 = printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 + // [138] phi printf_number_buffer::format_min_length#3 = printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 ldx #format_min_length jsr printf_number_buffer // printf_uint::@return // } - // [102] return + // [100] return rts } // printf_slong @@ -8322,45 +8282,45 @@ printf_slong: { // Format number into buffer .label uvalue = value // printf_buffer.sign = 0 - // [103] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [101] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer - // [104] phi from printf_slong to printf_slong::@1 [phi:printf_slong->printf_slong::@1] + // [102] phi from printf_slong to printf_slong::@1 [phi:printf_slong->printf_slong::@1] // printf_slong::@1 // ultoa(uvalue, printf_buffer.digits, format.radix) - // [105] call ultoa - // [181] phi from printf_slong::@1 to ultoa [phi:printf_slong::@1->ultoa] + // [103] call ultoa + // [179] phi from printf_slong::@1 to ultoa [phi:printf_slong::@1->ultoa] jsr ultoa // printf_slong::@2 // printf_number_buffer(putc, printf_buffer, format) - // [106] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 + // [104] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuz1=_deref_pbuc1 lda printf_buffer sta.z printf_number_buffer.buffer_sign - // [107] call printf_number_buffer + // [105] call printf_number_buffer // Print using format - // [140] phi from printf_slong::@2 to printf_number_buffer [phi:printf_slong::@2->printf_number_buffer] - // [140] phi printf_number_buffer::format_upper_case#10 = printf_slong::format_upper_case#0 [phi:printf_slong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + // [138] phi from printf_slong::@2 to printf_number_buffer [phi:printf_slong::@2->printf_number_buffer] + // [138] phi printf_number_buffer::format_upper_case#10 = printf_slong::format_upper_case#0 [phi:printf_slong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 lda #format_upper_case sta.z printf_number_buffer.format_upper_case - // [140] phi printf_number_buffer::putc#10 = printf_slong::putc#0 [phi:printf_slong::@2->printf_number_buffer#1] -- pprz1=pprc1 + // [138] phi printf_number_buffer::putc#10 = printf_slong::putc#0 [phi:printf_slong::@2->printf_number_buffer#1] -- pprz1=pprc1 lda #putc sta.z printf_number_buffer.putc+1 - // [140] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#0 [phi:printf_slong::@2->printf_number_buffer#2] -- register_copy - // [140] phi printf_number_buffer::format_zero_padding#10 = printf_slong::format_zero_padding#0 [phi:printf_slong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#0 [phi:printf_slong::@2->printf_number_buffer#2] -- register_copy + // [138] phi printf_number_buffer::format_zero_padding#10 = printf_slong::format_zero_padding#0 [phi:printf_slong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 lda #format_zero_padding sta.z printf_number_buffer.format_zero_padding - // [140] phi printf_number_buffer::format_justify_left#10 = printf_slong::format_justify_left#0 [phi:printf_slong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + // [138] phi printf_number_buffer::format_justify_left#10 = printf_slong::format_justify_left#0 [phi:printf_slong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 lda #format_justify_left sta.z printf_number_buffer.format_justify_left - // [140] phi printf_number_buffer::format_min_length#3 = printf_slong::format_min_length#0 [phi:printf_slong::@2->printf_number_buffer#5] -- vbuxx=vbuc1 + // [138] phi printf_number_buffer::format_min_length#3 = printf_slong::format_min_length#0 [phi:printf_slong::@2->printf_number_buffer#5] -- vbuxx=vbuc1 ldx #format_min_length jsr printf_number_buffer // printf_slong::@return // } - // [108] return + // [106] return rts } // utoa @@ -8378,130 +8338,130 @@ utoa: { .label max_digits = $1a .label digit_values = $e // if(radix==DECIMAL) - // [110] if(utoa::radix#2==DECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 + // [108] if(utoa::radix#2==DECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 cpx #DECIMAL beq __b2 // utoa::@2 // if(radix==HEXADECIMAL) - // [111] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 + // [109] if(utoa::radix#2==HEXADECIMAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 cpx #HEXADECIMAL beq __b3 // utoa::@3 // if(radix==OCTAL) - // [112] if(utoa::radix#2==OCTAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 + // [110] if(utoa::radix#2==OCTAL) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 cpx #OCTAL beq __b4 // utoa::@4 // if(radix==BINARY) - // [113] if(utoa::radix#2==BINARY) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 + // [111] if(utoa::radix#2==BINARY) goto utoa::@1 -- vbuxx_eq_vbuc1_then_la1 cpx #BINARY beq __b5 // utoa::@5 // *buffer++ = 'e' - // [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' -- _deref_pbuc1=vbuc2 + // [112] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) = 'e' -- _deref_pbuc1=vbuc2 // Unknown radix lda #'e' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // *buffer++ = 'r' - // [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' -- _deref_pbuc1=vbuc2 + // [113] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' -- _deref_pbuc1=vbuc2 lda #'r' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 - // [116] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' -- _deref_pbuc1=vbuc2 + // [114] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' -- _deref_pbuc1=vbuc2 sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2 // *buffer = 0 - // [117] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 -- _deref_pbuc1=vbuc2 + // [115] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3 // utoa::@return // } - // [118] return + // [116] return rts - // [119] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] + // [117] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] __b2: - // [119] phi utoa::digit_values#8 = RADIX_DECIMAL_VALUES [phi:utoa->utoa::@1#0] -- pwuz1=pwuc1 + // [117] phi utoa::digit_values#8 = RADIX_DECIMAL_VALUES [phi:utoa->utoa::@1#0] -- pwuz1=pwuc1 lda #RADIX_DECIMAL_VALUES sta.z digit_values+1 - // [119] phi utoa::max_digits#7 = 5 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 + // [117] phi utoa::max_digits#7 = 5 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 lda #5 sta.z max_digits jmp __b1 - // [119] phi from utoa::@2 to utoa::@1 [phi:utoa::@2->utoa::@1] + // [117] phi from utoa::@2 to utoa::@1 [phi:utoa::@2->utoa::@1] __b3: - // [119] phi utoa::digit_values#8 = RADIX_HEXADECIMAL_VALUES [phi:utoa::@2->utoa::@1#0] -- pwuz1=pwuc1 + // [117] phi utoa::digit_values#8 = RADIX_HEXADECIMAL_VALUES [phi:utoa::@2->utoa::@1#0] -- pwuz1=pwuc1 lda #RADIX_HEXADECIMAL_VALUES sta.z digit_values+1 - // [119] phi utoa::max_digits#7 = 4 [phi:utoa::@2->utoa::@1#1] -- vbuz1=vbuc1 + // [117] phi utoa::max_digits#7 = 4 [phi:utoa::@2->utoa::@1#1] -- vbuz1=vbuc1 lda #4 sta.z max_digits jmp __b1 - // [119] phi from utoa::@3 to utoa::@1 [phi:utoa::@3->utoa::@1] + // [117] phi from utoa::@3 to utoa::@1 [phi:utoa::@3->utoa::@1] __b4: - // [119] phi utoa::digit_values#8 = RADIX_OCTAL_VALUES [phi:utoa::@3->utoa::@1#0] -- pwuz1=pwuc1 + // [117] phi utoa::digit_values#8 = RADIX_OCTAL_VALUES [phi:utoa::@3->utoa::@1#0] -- pwuz1=pwuc1 lda #RADIX_OCTAL_VALUES sta.z digit_values+1 - // [119] phi utoa::max_digits#7 = 6 [phi:utoa::@3->utoa::@1#1] -- vbuz1=vbuc1 + // [117] phi utoa::max_digits#7 = 6 [phi:utoa::@3->utoa::@1#1] -- vbuz1=vbuc1 lda #6 sta.z max_digits jmp __b1 - // [119] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] + // [117] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] __b5: - // [119] phi utoa::digit_values#8 = RADIX_BINARY_VALUES [phi:utoa::@4->utoa::@1#0] -- pwuz1=pwuc1 + // [117] phi utoa::digit_values#8 = RADIX_BINARY_VALUES [phi:utoa::@4->utoa::@1#0] -- pwuz1=pwuc1 lda #RADIX_BINARY_VALUES sta.z digit_values+1 - // [119] phi utoa::max_digits#7 = $10 [phi:utoa::@4->utoa::@1#1] -- vbuz1=vbuc1 + // [117] phi utoa::max_digits#7 = $10 [phi:utoa::@4->utoa::@1#1] -- vbuz1=vbuc1 lda #$10 sta.z max_digits // utoa::@1 __b1: - // [120] phi from utoa::@1 to utoa::@6 [phi:utoa::@1->utoa::@6] - // [120] phi utoa::buffer#10 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa::@1->utoa::@6#0] -- pbuz1=pbuc1 + // [118] phi from utoa::@1 to utoa::@6 [phi:utoa::@1->utoa::@6] + // [118] phi utoa::buffer#10 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa::@1->utoa::@6#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer+1 - // [120] phi utoa::started#2 = 0 [phi:utoa::@1->utoa::@6#1] -- vbuxx=vbuc1 + // [118] phi utoa::started#2 = 0 [phi:utoa::@1->utoa::@6#1] -- vbuxx=vbuc1 ldx #0 - // [120] phi utoa::value#3 = utoa::value#10 [phi:utoa::@1->utoa::@6#2] -- register_copy - // [120] phi utoa::digit#2 = 0 [phi:utoa::@1->utoa::@6#3] -- vbuz1=vbuc1 + // [118] phi utoa::value#3 = utoa::value#10 [phi:utoa::@1->utoa::@6#2] -- register_copy + // [118] phi utoa::digit#2 = 0 [phi:utoa::@1->utoa::@6#3] -- vbuz1=vbuc1 txa sta.z digit // utoa::@6 __b6: // max_digits-1 - // [121] utoa::$4 = utoa::max_digits#7 - 1 -- vbuaa=vbuz1_minus_1 + // [119] utoa::$4 = utoa::max_digits#7 - 1 -- vbuaa=vbuz1_minus_1 lda.z max_digits sec sbc #1 // for( char digit=0; digit= digit_value) - // [129] if(0!=utoa::started#2) goto utoa::@10 -- 0_neq_vbuxx_then_la1 + // [127] if(0!=utoa::started#2) goto utoa::@10 -- 0_neq_vbuxx_then_la1 cpx #0 bne __b10 // utoa::@12 - // [130] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 -- vwuz1_ge_vwuz2_then_la1 + // [128] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@10 -- vwuz1_ge_vwuz2_then_la1 cmp.z value+1 bne !+ lda.z digit_value @@ -8532,46 +8492,46 @@ utoa: { beq __b10 !: bcc __b10 - // [131] phi from utoa::@12 to utoa::@9 [phi:utoa::@12->utoa::@9] - // [131] phi utoa::buffer#15 = utoa::buffer#10 [phi:utoa::@12->utoa::@9#0] -- register_copy - // [131] phi utoa::started#4 = utoa::started#2 [phi:utoa::@12->utoa::@9#1] -- register_copy - // [131] phi utoa::value#7 = utoa::value#3 [phi:utoa::@12->utoa::@9#2] -- register_copy + // [129] phi from utoa::@12 to utoa::@9 [phi:utoa::@12->utoa::@9] + // [129] phi utoa::buffer#15 = utoa::buffer#10 [phi:utoa::@12->utoa::@9#0] -- register_copy + // [129] phi utoa::started#4 = utoa::started#2 [phi:utoa::@12->utoa::@9#1] -- register_copy + // [129] phi utoa::value#7 = utoa::value#3 [phi:utoa::@12->utoa::@9#2] -- register_copy // utoa::@9 __b9: // for( char digit=0; digitutoa::@6] - // [120] phi utoa::buffer#10 = utoa::buffer#15 [phi:utoa::@9->utoa::@6#0] -- register_copy - // [120] phi utoa::started#2 = utoa::started#4 [phi:utoa::@9->utoa::@6#1] -- register_copy - // [120] phi utoa::value#3 = utoa::value#7 [phi:utoa::@9->utoa::@6#2] -- register_copy - // [120] phi utoa::digit#2 = utoa::digit#1 [phi:utoa::@9->utoa::@6#3] -- register_copy + // [118] phi from utoa::@9 to utoa::@6 [phi:utoa::@9->utoa::@6] + // [118] phi utoa::buffer#10 = utoa::buffer#15 [phi:utoa::@9->utoa::@6#0] -- register_copy + // [118] phi utoa::started#2 = utoa::started#4 [phi:utoa::@9->utoa::@6#1] -- register_copy + // [118] phi utoa::value#3 = utoa::value#7 [phi:utoa::@9->utoa::@6#2] -- register_copy + // [118] phi utoa::digit#2 = utoa::digit#1 [phi:utoa::@9->utoa::@6#3] -- register_copy jmp __b6 // utoa::@10 __b10: // utoa_append(buffer++, value, digit_value) - // [133] utoa_append::buffer#0 = utoa::buffer#10 - // [134] utoa_append::value#0 = utoa::value#3 - // [135] utoa_append::sub#0 = utoa::digit_value#0 - // [136] call utoa_append - // [202] phi from utoa::@10 to utoa_append [phi:utoa::@10->utoa_append] + // [131] utoa_append::buffer#0 = utoa::buffer#10 + // [132] utoa_append::value#0 = utoa::value#3 + // [133] utoa_append::sub#0 = utoa::digit_value#0 + // [134] call utoa_append + // [200] phi from utoa::@10 to utoa_append [phi:utoa::@10->utoa_append] jsr utoa_append // utoa_append(buffer++, value, digit_value) - // [137] utoa_append::return#0 = utoa_append::value#2 + // [135] utoa_append::return#0 = utoa_append::value#2 // utoa::@11 // value = utoa_append(buffer++, value, digit_value) - // [138] utoa::value#0 = utoa_append::return#0 + // [136] utoa::value#0 = utoa_append::return#0 // value = utoa_append(buffer++, value, digit_value); - // [139] utoa::buffer#4 = ++ utoa::buffer#10 -- pbuz1=_inc_pbuz1 + // [137] utoa::buffer#4 = ++ utoa::buffer#10 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [131] phi from utoa::@11 to utoa::@9 [phi:utoa::@11->utoa::@9] - // [131] phi utoa::buffer#15 = utoa::buffer#4 [phi:utoa::@11->utoa::@9#0] -- register_copy - // [131] phi utoa::started#4 = 1 [phi:utoa::@11->utoa::@9#1] -- vbuxx=vbuc1 + // [129] phi from utoa::@11 to utoa::@9 [phi:utoa::@11->utoa::@9] + // [129] phi utoa::buffer#15 = utoa::buffer#4 [phi:utoa::@11->utoa::@9#0] -- register_copy + // [129] phi utoa::started#4 = 1 [phi:utoa::@11->utoa::@9#1] -- vbuxx=vbuc1 ldx #1 - // [131] phi utoa::value#7 = utoa::value#0 [phi:utoa::@11->utoa::@9#2] -- register_copy + // [129] phi utoa::value#7 = utoa::value#0 [phi:utoa::@11->utoa::@9#2] -- register_copy jmp __b9 } // printf_number_buffer @@ -8587,67 +8547,67 @@ printf_number_buffer: { .label format_justify_left = $1a .label format_upper_case = $1b // if(format.min_length) - // [141] if(0==printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- 0_eq_vbuxx_then_la1 + // [139] if(0==printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- 0_eq_vbuxx_then_la1 cpx #0 beq __b6 - // [142] phi from printf_number_buffer to printf_number_buffer::@6 [phi:printf_number_buffer->printf_number_buffer::@6] + // [140] phi from printf_number_buffer to printf_number_buffer::@6 [phi:printf_number_buffer->printf_number_buffer::@6] // printf_number_buffer::@6 // strlen(buffer.digits) - // [143] call strlen - // [209] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] + // [141] call strlen + // [207] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] jsr strlen // strlen(buffer.digits) - // [144] strlen::return#2 = strlen::len#2 + // [142] strlen::return#2 = strlen::len#2 // printf_number_buffer::@14 - // [145] printf_number_buffer::$19 = strlen::return#2 + // [143] printf_number_buffer::$19 = strlen::return#2 // signed char len = (signed char)strlen(buffer.digits) - // [146] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 -- vbsyy=_sbyte_vwuz1 + // [144] printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 -- vbsyy=_sbyte_vwuz1 // There is a minimum length - work out the padding ldy.z __19 // if(buffer.sign) - // [147] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- 0_eq_vbuz1_then_la1 + // [145] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- 0_eq_vbuz1_then_la1 lda.z buffer_sign beq __b13 // printf_number_buffer::@7 // len++; - // [148] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 -- vbsyy=_inc_vbsyy + // [146] printf_number_buffer::len#1 = ++ printf_number_buffer::len#0 -- vbsyy=_inc_vbsyy iny - // [149] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] - // [149] phi printf_number_buffer::len#2 = printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy + // [147] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] + // [147] phi printf_number_buffer::len#2 = printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy // printf_number_buffer::@13 __b13: // padding = (signed char)format.min_length - len - // [150] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 -- vbsz1=vbsxx_minus_vbsyy + // [148] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#3 - printf_number_buffer::len#2 -- vbsz1=vbsxx_minus_vbsyy txa sty.z $ff sec sbc.z $ff sta.z padding // if(padding<0) - // [151] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 + // [149] if(printf_number_buffer::padding#1>=0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 cmp #0 bpl __b1 - // [153] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] + // [151] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] __b6: - // [153] phi printf_number_buffer::padding#10 = 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 + // [151] phi printf_number_buffer::padding#10 = 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 lda #0 sta.z padding - // [152] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] + // [150] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] // printf_number_buffer::@21 - // [153] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] - // [153] phi printf_number_buffer::padding#10 = printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy + // [151] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] + // [151] phi printf_number_buffer::padding#10 = printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy // printf_number_buffer::@1 __b1: // if(!format.justify_left && !format.zero_padding && padding) - // [154] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 + // [152] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 lda.z format_justify_left bne __b2 // printf_number_buffer::@17 - // [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 + // [153] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- 0_neq_vbuz1_then_la1 lda.z format_zero_padding bne __b2 // printf_number_buffer::@16 - // [156] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- 0_neq_vbsz1_then_la1 + // [154] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- 0_neq_vbsz1_then_la1 lda.z padding cmp #0 bne __b8 @@ -8655,40 +8615,40 @@ printf_number_buffer: { // printf_number_buffer::@8 __b8: // printf_padding(putc, ' ',(char)padding) - // [157] printf_padding::putc#0 = printf_number_buffer::putc#10 - // [158] printf_padding::length#0 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [155] printf_padding::putc#0 = printf_number_buffer::putc#10 + // [156] printf_padding::length#0 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [159] call printf_padding - // [215] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] - // [215] phi printf_padding::putc#7 = printf_padding::putc#0 [phi:printf_number_buffer::@8->printf_padding#0] -- register_copy - // [215] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@8->printf_padding#1] -- vbuz1=vbuc1 + // [157] call printf_padding + // [213] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] + // [213] phi printf_padding::putc#7 = printf_padding::putc#0 [phi:printf_number_buffer::@8->printf_padding#0] -- register_copy + // [213] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@8->printf_padding#1] -- vbuz1=vbuc1 lda #' ' sta.z printf_padding.pad - // [215] phi printf_padding::length#6 = printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#2] -- register_copy + // [213] phi printf_padding::length#6 = printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#2] -- register_copy jsr printf_padding // printf_number_buffer::@2 __b2: // if(buffer.sign) - // [160] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- 0_eq_vbuz1_then_la1 + // [158] if(0==printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- 0_eq_vbuz1_then_la1 lda.z buffer_sign beq __b3 // printf_number_buffer::@9 // putc(buffer.sign) - // [161] stackpush(char) = printf_number_buffer::buffer_sign#10 -- _stackpushbyte_=vbuz1 + // [159] stackpush(char) = printf_number_buffer::buffer_sign#10 -- _stackpushbyte_=vbuz1 pha - // [162] callexecute *printf_number_buffer::putc#10 -- call__deref_pprz1 + // [160] callexecute *printf_number_buffer::putc#10 -- call__deref_pprz1 jsr icall7 // sideeffect stackpullpadding(1) -- _stackpullpadding_1 pla // printf_number_buffer::@3 __b3: // if(format.zero_padding && padding) - // [164] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- 0_eq_vbuz1_then_la1 + // [162] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- 0_eq_vbuz1_then_la1 lda.z format_zero_padding beq __b4 // printf_number_buffer::@18 - // [165] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- 0_neq_vbsz1_then_la1 + // [163] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- 0_neq_vbsz1_then_la1 lda.z padding cmp #0 bne __b10 @@ -8696,38 +8656,38 @@ printf_number_buffer: { // printf_number_buffer::@10 __b10: // printf_padding(putc, '0',(char)padding) - // [166] printf_padding::putc#1 = printf_number_buffer::putc#10 - // [167] printf_padding::length#1 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [164] printf_padding::putc#1 = printf_number_buffer::putc#10 + // [165] printf_padding::length#1 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [168] call printf_padding - // [215] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] - // [215] phi printf_padding::putc#7 = printf_padding::putc#1 [phi:printf_number_buffer::@10->printf_padding#0] -- register_copy - // [215] phi printf_padding::pad#7 = '0' [phi:printf_number_buffer::@10->printf_padding#1] -- vbuz1=vbuc1 + // [166] call printf_padding + // [213] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] + // [213] phi printf_padding::putc#7 = printf_padding::putc#1 [phi:printf_number_buffer::@10->printf_padding#0] -- register_copy + // [213] phi printf_padding::pad#7 = '0' [phi:printf_number_buffer::@10->printf_padding#1] -- vbuz1=vbuc1 lda #'0' sta.z printf_padding.pad - // [215] phi printf_padding::length#6 = printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#2] -- register_copy + // [213] phi printf_padding::length#6 = printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#2] -- register_copy jsr printf_padding // printf_number_buffer::@4 __b4: // if(format.upper_case) - // [169] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- 0_eq_vbuz1_then_la1 + // [167] if(0==printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- 0_eq_vbuz1_then_la1 lda.z format_upper_case beq __b5 - // [170] phi from printf_number_buffer::@4 to printf_number_buffer::@11 [phi:printf_number_buffer::@4->printf_number_buffer::@11] + // [168] phi from printf_number_buffer::@4 to printf_number_buffer::@11 [phi:printf_number_buffer::@4->printf_number_buffer::@11] // printf_number_buffer::@11 // strupr(buffer.digits) - // [171] call strupr - // [223] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] + // [169] call strupr + // [221] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] jsr strupr // printf_number_buffer::@5 __b5: // printf_str(putc, buffer.digits) - // [172] printf_str::putc#0 = printf_number_buffer::putc#10 - // [173] call printf_str - // [71] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] - // [71] phi printf_str::putc#12 = printf_str::putc#0 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy - // [71] phi printf_str::s#12 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_number_buffer::@5->printf_str#1] -- pbuz1=pbuc1 + // [170] printf_str::putc#0 = printf_number_buffer::putc#10 + // [171] call printf_str + // [69] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] + // [69] phi printf_str::putc#12 = printf_str::putc#0 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy + // [69] phi printf_str::s#12 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_number_buffer::@5->printf_str#1] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -8735,15 +8695,15 @@ printf_number_buffer: { jsr printf_str // printf_number_buffer::@15 // if(format.justify_left && !format.zero_padding && padding) - // [174] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- 0_eq_vbuz1_then_la1 + // [172] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- 0_eq_vbuz1_then_la1 lda.z format_justify_left beq __breturn // printf_number_buffer::@20 - // [175] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- 0_neq_vbuz1_then_la1 + // [173] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- 0_neq_vbuz1_then_la1 lda.z format_zero_padding bne __breturn // printf_number_buffer::@19 - // [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- 0_neq_vbsz1_then_la1 + // [174] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- 0_neq_vbsz1_then_la1 lda.z padding cmp #0 bne __b12 @@ -8751,22 +8711,22 @@ printf_number_buffer: { // printf_number_buffer::@12 __b12: // printf_padding(putc, ' ',(char)padding) - // [177] printf_padding::putc#2 = printf_number_buffer::putc#10 - // [178] printf_padding::length#2 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [175] printf_padding::putc#2 = printf_number_buffer::putc#10 + // [176] printf_padding::length#2 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [179] call printf_padding - // [215] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] - // [215] phi printf_padding::putc#7 = printf_padding::putc#2 [phi:printf_number_buffer::@12->printf_padding#0] -- register_copy - // [215] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@12->printf_padding#1] -- vbuz1=vbuc1 + // [177] call printf_padding + // [213] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] + // [213] phi printf_padding::putc#7 = printf_padding::putc#2 [phi:printf_number_buffer::@12->printf_padding#0] -- register_copy + // [213] phi printf_padding::pad#7 = ' ' [phi:printf_number_buffer::@12->printf_padding#1] -- vbuz1=vbuc1 lda #' ' sta.z printf_padding.pad - // [215] phi printf_padding::length#6 = printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#2] -- register_copy + // [213] phi printf_padding::length#6 = printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#2] -- register_copy jsr printf_padding // printf_number_buffer::@return __breturn: // } - // [180] return + // [178] return rts // Outside Flow icall7: @@ -8785,15 +8745,15 @@ ultoa: { .label buffer = 2 .label digit = $14 .label value = 4 - // [182] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] - // [182] phi ultoa::buffer#11 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 + // [180] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] + // [180] phi ultoa::buffer#11 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer+1 - // [182] phi ultoa::started#2 = 0 [phi:ultoa->ultoa::@1#1] -- vbuxx=vbuc1 + // [180] phi ultoa::started#2 = 0 [phi:ultoa->ultoa::@1#1] -- vbuxx=vbuc1 ldx #0 - // [182] phi ultoa::value#2 = printf_slong::uvalue#0 [phi:ultoa->ultoa::@1#2] -- vduz1=vduc1 + // [180] phi ultoa::value#2 = printf_slong::uvalue#0 [phi:ultoa->ultoa::@1#2] -- vduz1=vduc1 lda #printf_slong.uvalue @@ -8802,48 +8762,48 @@ ultoa: { sta.z value+2 lda #>printf_slong.uvalue>>$10 sta.z value+3 - // [182] phi ultoa::digit#2 = 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 + // [180] phi ultoa::digit#2 = 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 txa sta.z digit // ultoa::@1 __b1: // for( char digit=0; digit= digit_value) - // [191] if(0!=ultoa::started#2) goto ultoa::@5 -- 0_neq_vbuxx_then_la1 + // [189] if(0!=ultoa::started#2) goto ultoa::@5 -- 0_neq_vbuxx_then_la1 cpx #0 bne __b5 // ultoa::@7 - // [192] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 + // [190] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 lda.z value+3 cmp.z digit_value+3 bcc !+ @@ -8875,46 +8835,46 @@ ultoa: { cmp.z digit_value bcs __b5 !: - // [193] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] - // [193] phi ultoa::buffer#14 = ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy - // [193] phi ultoa::started#4 = ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy - // [193] phi ultoa::value#6 = ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy + // [191] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] + // [191] phi ultoa::buffer#14 = ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy + // [191] phi ultoa::started#4 = ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy + // [191] phi ultoa::value#6 = ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy // ultoa::@4 __b4: // for( char digit=0; digitultoa::@1] - // [182] phi ultoa::buffer#11 = ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy - // [182] phi ultoa::started#2 = ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy - // [182] phi ultoa::value#2 = ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy - // [182] phi ultoa::digit#2 = ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy + // [180] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1] + // [180] phi ultoa::buffer#11 = ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy + // [180] phi ultoa::started#2 = ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy + // [180] phi ultoa::value#2 = ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy + // [180] phi ultoa::digit#2 = ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy jmp __b1 // ultoa::@5 __b5: // ultoa_append(buffer++, value, digit_value) - // [195] ultoa_append::buffer#0 = ultoa::buffer#11 - // [196] ultoa_append::value#0 = ultoa::value#2 - // [197] ultoa_append::sub#0 = ultoa::digit_value#0 - // [198] call ultoa_append - // [233] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] + // [193] ultoa_append::buffer#0 = ultoa::buffer#11 + // [194] ultoa_append::value#0 = ultoa::value#2 + // [195] ultoa_append::sub#0 = ultoa::digit_value#0 + // [196] call ultoa_append + // [231] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] jsr ultoa_append // ultoa_append(buffer++, value, digit_value) - // [199] ultoa_append::return#0 = ultoa_append::value#2 + // [197] ultoa_append::return#0 = ultoa_append::value#2 // ultoa::@6 // value = ultoa_append(buffer++, value, digit_value) - // [200] ultoa::value#0 = ultoa_append::return#0 + // [198] ultoa::value#0 = ultoa_append::return#0 // value = ultoa_append(buffer++, value, digit_value); - // [201] ultoa::buffer#4 = ++ ultoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [199] ultoa::buffer#4 = ++ ultoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [193] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] - // [193] phi ultoa::buffer#14 = ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy - // [193] phi ultoa::started#4 = 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuxx=vbuc1 + // [191] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] + // [191] phi ultoa::buffer#14 = ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy + // [191] phi ultoa::started#4 = 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuxx=vbuc1 ldx #1 - // [193] phi ultoa::value#6 = ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy + // [191] phi ultoa::value#6 = ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy jmp __b4 } // utoa_append @@ -8932,14 +8892,14 @@ utoa_append: { .label value = 2 .label sub = 8 .label return = 2 - // [203] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] - // [203] phi utoa_append::digit#2 = 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 + // [201] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] + // [201] phi utoa_append::digit#2 = 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 ldx #0 - // [203] phi utoa_append::value#2 = utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy + // [201] phi utoa_append::value#2 = utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy // utoa_append::@1 __b1: // while (value >= sub) - // [204] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 + // [202] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 lda.z sub+1 cmp.z value+1 bne !+ @@ -8950,21 +8910,21 @@ utoa_append: { bcc __b2 // utoa_append::@3 // *buffer = DIGITS[digit] - // [205] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx + // [203] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x ldy #0 sta (buffer),y // utoa_append::@return // } - // [206] return + // [204] return rts // utoa_append::@2 __b2: // digit++; - // [207] utoa_append::digit#1 = ++ utoa_append::digit#2 -- vbuxx=_inc_vbuxx + // [205] utoa_append::digit#1 = ++ utoa_append::digit#2 -- vbuxx=_inc_vbuxx inx // value -= sub - // [208] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 + // [206] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 lda.z value sec sbc.z sub @@ -8972,9 +8932,9 @@ utoa_append: { lda.z value+1 sbc.z sub+1 sta.z value+1 - // [203] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] - // [203] phi utoa_append::digit#2 = utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy - // [203] phi utoa_append::value#2 = utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy + // [201] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] + // [201] phi utoa_append::digit#2 = utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy + // [201] phi utoa_append::value#2 = utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy jmp __b1 } // strlen @@ -8984,12 +8944,12 @@ strlen: { .label len = 8 .label str = $10 .label return = 8 - // [210] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] - // [210] phi strlen::len#2 = 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 + // [208] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] + // [208] phi strlen::len#2 = 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 lda #<0 sta.z len sta.z len+1 - // [210] phi strlen::str#3 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1 + // [208] phi strlen::str#3 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -8997,32 +8957,32 @@ strlen: { // strlen::@1 __b1: // while(*str) - // [211] if(0!=*strlen::str#3) goto strlen::@2 -- 0_neq__deref_pbuz1_then_la1 + // [209] if(0!=*strlen::str#3) goto strlen::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 bne __b2 // strlen::@return // } - // [212] return + // [210] return rts // strlen::@2 __b2: // len++; - // [213] strlen::len#1 = ++ strlen::len#2 -- vwuz1=_inc_vwuz1 + // [211] strlen::len#1 = ++ strlen::len#2 -- vwuz1=_inc_vwuz1 inc.z len bne !+ inc.z len+1 !: // str++; - // [214] strlen::str#0 = ++ strlen::str#3 -- pbuz1=_inc_pbuz1 + // [212] strlen::str#0 = ++ strlen::str#3 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [210] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] - // [210] phi strlen::len#2 = strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [210] phi strlen::str#3 = strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy + // [208] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] + // [208] phi strlen::len#2 = strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy + // [208] phi strlen::str#3 = strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy jmp __b1 } // printf_padding @@ -9033,37 +8993,37 @@ printf_padding: { .label putc = 2 .label length = $13 .label pad = $16 - // [216] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] - // [216] phi printf_padding::i#2 = 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 + // [214] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] + // [214] phi printf_padding::i#2 = 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 lda #0 sta.z i // printf_padding::@1 __b1: // for(char i=0;iprintf_padding::@1] - // [216] phi printf_padding::i#2 = printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy + // [214] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1] + // [214] phi printf_padding::i#2 = printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy jmp __b1 // Outside Flow icall8: @@ -9075,8 +9035,8 @@ printf_padding: { strupr: { .label str = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS .label src = $e - // [224] phi from strupr to strupr::@1 [phi:strupr->strupr::@1] - // [224] phi strupr::src#2 = strupr::str#0 [phi:strupr->strupr::@1#0] -- pbuz1=pbuc1 + // [222] phi from strupr to strupr::@1 [phi:strupr->strupr::@1] + // [222] phi strupr::src#2 = strupr::str#0 [phi:strupr->strupr::@1#0] -- pbuz1=pbuc1 lda #str @@ -9084,38 +9044,38 @@ strupr: { // strupr::@1 __b1: // while(*src) - // [225] if(0!=*strupr::src#2) goto strupr::@2 -- 0_neq__deref_pbuz1_then_la1 + // [223] if(0!=*strupr::src#2) goto strupr::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (src),y cmp #0 bne __b2 // strupr::@return // } - // [226] return + // [224] return rts // strupr::@2 __b2: // toupper(*src) - // [227] toupper::ch#0 = *strupr::src#2 -- vbuaa=_deref_pbuz1 + // [225] toupper::ch#0 = *strupr::src#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (src),y - // [228] call toupper + // [226] call toupper jsr toupper - // [229] toupper::return#3 = toupper::return#2 + // [227] toupper::return#3 = toupper::return#2 // strupr::@3 - // [230] strupr::$0 = toupper::return#3 + // [228] strupr::$0 = toupper::return#3 // *src = toupper(*src) - // [231] *strupr::src#2 = strupr::$0 -- _deref_pbuz1=vbuaa + // [229] *strupr::src#2 = strupr::$0 -- _deref_pbuz1=vbuaa ldy #0 sta (src),y // src++; - // [232] strupr::src#1 = ++ strupr::src#2 -- pbuz1=_inc_pbuz1 + // [230] strupr::src#1 = ++ strupr::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 !: - // [224] phi from strupr::@3 to strupr::@1 [phi:strupr::@3->strupr::@1] - // [224] phi strupr::src#2 = strupr::src#1 [phi:strupr::@3->strupr::@1#0] -- register_copy + // [222] phi from strupr::@3 to strupr::@1 [phi:strupr::@3->strupr::@1] + // [222] phi strupr::src#2 = strupr::src#1 [phi:strupr::@3->strupr::@1#0] -- register_copy jmp __b1 } // ultoa_append @@ -9133,14 +9093,14 @@ ultoa_append: { .label value = 4 .label sub = $a .label return = 4 - // [234] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] - // [234] phi ultoa_append::digit#2 = 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuxx=vbuc1 + // [232] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] + // [232] phi ultoa_append::digit#2 = 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuxx=vbuc1 ldx #0 - // [234] phi ultoa_append::value#2 = ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy + // [232] phi ultoa_append::value#2 = ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy // ultoa_append::@1 __b1: // while (value >= sub) - // [235] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 + // [233] if(ultoa_append::value#2>=ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 lda.z value+3 cmp.z sub+3 bcc !+ @@ -9159,21 +9119,21 @@ ultoa_append: { !: // ultoa_append::@3 // *buffer = DIGITS[digit] - // [236] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx + // [234] *ultoa_append::buffer#0 = DIGITS[ultoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x ldy #0 sta (buffer),y // ultoa_append::@return // } - // [237] return + // [235] return rts // ultoa_append::@2 __b2: // digit++; - // [238] ultoa_append::digit#1 = ++ ultoa_append::digit#2 -- vbuxx=_inc_vbuxx + // [236] ultoa_append::digit#1 = ++ ultoa_append::digit#2 -- vbuxx=_inc_vbuxx inx // value -= sub - // [239] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 + // [237] ultoa_append::value#1 = ultoa_append::value#2 - ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 lda.z value sec sbc.z sub @@ -9187,9 +9147,9 @@ ultoa_append: { lda.z value+3 sbc.z sub+3 sta.z value+3 - // [234] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] - // [234] phi ultoa_append::digit#2 = ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy - // [234] phi ultoa_append::value#2 = ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy + // [232] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] + // [232] phi ultoa_append::digit#2 = ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy + // [232] phi ultoa_append::value#2 = ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy jmp __b1 } // toupper @@ -9198,27 +9158,27 @@ ultoa_append: { // __register(A) char toupper(__register(A) char ch) toupper: { // if(ch>='a' && ch<='z') - // [240] if(toupper::ch#0<'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 + // [238] if(toupper::ch#0<'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 cmp #'a' bcc __breturn // toupper::@2 - // [241] if(toupper::ch#0<='z') goto toupper::@1 -- vbuaa_le_vbuc1_then_la1 + // [239] if(toupper::ch#0<='z') goto toupper::@1 -- vbuaa_le_vbuc1_then_la1 cmp #'z' bcc __b1 beq __b1 - // [243] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] - // [243] phi toupper::return#2 = toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy + // [241] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] + // [241] phi toupper::return#2 = toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy rts // toupper::@1 __b1: // return ch + ('A'-'a'); - // [242] toupper::return#0 = toupper::ch#0 + 'A'-'a' -- vbuaa=vbuaa_plus_vbuc1 + // [240] toupper::return#0 = toupper::ch#0 + 'A'-'a' -- vbuaa=vbuaa_plus_vbuc1 clc adc #'A'-'a' // toupper::@return __breturn: // } - // [244] return + // [242] return rts } // File Data @@ -9238,4 +9198,10 @@ toupper: { BUF: .fill $14, 0 // Buffer used for stringified number being printed printf_buffer: .fill SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER, 0 + /// The capacity of the buffer (n passed to snprintf()) + /// Used to hold state while printing + __snprintf_capacity: .word 0 + // The number of chars that would have been filled when printing without capacity. Grows even after size>capacity. + /// Used to hold state while printing + __snprintf_size: .word 0 diff --git a/src/test/ref/printf-19.sym b/src/test/ref/printf-19.sym index 7666c2698..e94fd5214 100644 --- a/src/test/ref/printf-19.sym +++ b/src/test/ref/printf-19.sym @@ -16,9 +16,9 @@ __constant unsigned int RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 } __constant unsigned int RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 } __constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c __constant unsigned int STACK_BASE = $103 -__loadstore char *__snprintf_buffer // zp[2]:30 9.022222222222222 -__loadstore volatile unsigned int __snprintf_capacity // zp[2]:32 6.48936170212766 -__loadstore volatile unsigned int __snprintf_size // zp[2]:28 11.021739130434781 +__loadstore char *__snprintf_buffer // zp[2]:28 9.022222222222222 +__loadstore volatile unsigned int __snprintf_capacity = 0 // mem[2] 6.446808510638299 +__loadstore volatile unsigned int __snprintf_size = 0 // mem[2] 10.978260869565217 void __start() void main() __constant char main::s[$e] = "hello world! " @@ -288,9 +288,9 @@ zp[1]:18 [ printf_padding::i#2 printf_padding::i#1 ] zp[2]:14 [ strupr::src#2 strupr::src#1 utoa::digit_values#8 printf_str::s#11 printf_str::s#12 printf_str::s#0 ] reg byte x [ ultoa_append::digit#2 ultoa_append::digit#1 ] reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ] -zp[2]:32 [ __snprintf_capacity ] -zp[2]:28 [ __snprintf_size ] -zp[2]:30 [ __snprintf_buffer ] +zp[2]:28 [ __snprintf_buffer ] +mem[2] [ __snprintf_size ] +mem[2] [ __snprintf_capacity ] reg byte a [ printf_str::c#1 ] reg byte a [ utoa::$4 ] reg byte x [ utoa::$11 ] diff --git a/src/test/ref/stars-2.log b/src/test/ref/stars-2.log index ef8de9f69..b18f77bf6 100644 --- a/src/test/ref/stars-2.log +++ b/src/test/ref/stars-2.log @@ -16,6 +16,8 @@ Inlined call call __init Eliminating unused variable with no statement memcpy::$0 Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement gotoxy::$4 +Eliminating unused variable with no statement __snprintf_capacity +Eliminating unused variable with no statement __snprintf_size Eliminating unused variable with no statement main::$2 Calling convention STACK_CALL adding prepare/execute/finalize for call *printf_str::putc printf_str::c Calling convention STACK_CALL adding prepare/execute/finalize for call *printf_padding::putc printf_padding::pad diff --git a/src/test/ref/strcmp-0.log b/src/test/ref/strcmp-0.log index 3f97576c7..2295ba337 100644 --- a/src/test/ref/strcmp-0.log +++ b/src/test/ref/strcmp-0.log @@ -25,6 +25,8 @@ Inlined call call __init Eliminating unused variable with no statement memcpy::$0 Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement gotoxy::$4 +Eliminating unused variable with no statement __snprintf_capacity +Eliminating unused variable with no statement __snprintf_size Eliminating unused variable with no statement assert_cmp::$4 Eliminating unused variable with no statement assert_cmp::$6 Calling convention STACK_CALL adding prepare/execute/finalize for call *printf_str::putc printf_str::c diff --git a/src/test/ref/tod-1.asm b/src/test/ref/tod-1.asm index 9b4bbc9ec..5ff04acb5 100644 --- a/src/test/ref/tod-1.asm +++ b/src/test/ref/tod-1.asm @@ -5,7 +5,7 @@ /// Implements similar functions as conio.h from CC65 for compatibility /// See https://github.com/cc65/cc65/blob/master/include/conio.h // -/// Currently C64/PLUS4/VIC20 platforms are supported +/// Currently CX16/C64/PLUS4/VIC20 platforms are supported // Commodore 64 PRG executable file .file [name="tod-1.prg", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] diff --git a/src/test/ref/tod-1.log b/src/test/ref/tod-1.log index 2a06ad9f5..fc5915e6f 100644 --- a/src/test/ref/tod-1.log +++ b/src/test/ref/tod-1.log @@ -2069,7 +2069,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Implements similar functions as conio.h from CC65 for compatibility /// See https://github.com/cc65/cc65/blob/master/include/conio.h // -/// Currently C64/PLUS4/VIC20 platforms are supported +/// Currently CX16/C64/PLUS4/VIC20 platforms are supported // Upstart // Commodore 64 PRG executable file .file [name="tod-1.prg", type="prg", segments="Program"] @@ -3137,7 +3137,7 @@ Score: 106430 /// Implements similar functions as conio.h from CC65 for compatibility /// See https://github.com/cc65/cc65/blob/master/include/conio.h // -/// Currently C64/PLUS4/VIC20 platforms are supported +/// Currently CX16/C64/PLUS4/VIC20 platforms are supported // Upstart // Commodore 64 PRG executable file .file [name="tod-1.prg", type="prg", segments="Program"] diff --git a/src/test/ref/weeip-bbslist.log b/src/test/ref/weeip-bbslist.log index b8f240724..83782917e 100644 --- a/src/test/ref/weeip-bbslist.log +++ b/src/test/ref/weeip-bbslist.log @@ -19,6 +19,8 @@ Inlined call call __init Eliminating unused variable with no statement memcpy::$0 Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement gotoxy::$4 +Eliminating unused variable with no statement __snprintf_capacity +Eliminating unused variable with no statement __snprintf_size Eliminating unused variable with no statement main::$0 Calling convention STACK_CALL adding prepare/execute/finalize for call *printf_str::putc printf_str::c Calling convention STACK_CALL adding prepare/execute/finalize for call *printf_padding::putc printf_padding::pad